Roshan Book

My Tech Notebook

Monthly Archives: December 2011

Install Broadcom wireless 802.11 driver in Fedora 16 / 15 / 14

Originally published at : http://www.howopensource.com/2011/08/install-broadcom-wireless-802-11-driver-in-fedora-15-14/

Broadcom wireless driver can be installed from source package or you can install the pre-compiled version. In this post you can find information on how to install pre-compiled version using yum install. This package can be install the same way how we install Firefox 6 or UNRAR in Fedora 15 / 14. If you have already upgraded your rpmfusion free and non-free release in your system then skip the dependencies.

Dependencies

Run the following command in terminal one by one and type the password for the root when prompted.

For rpmfusion free release

$ su -c 'rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm'

For rpmfusion non free release

$ su -c 'rpm -Uvh http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm'

Once you have upgraded the rpmfusion free and non-free release in your system then update the system using the following command. Type the password for the user when prompted.

$ sudo yum update

To install Broadcom Wireless driver

To install the driver run the following command in terminal.

$ sudo yum install kmod-wl

Now restart your system. It should work.

Hope this will be helpful for you!!!

Advertisements

Make ubuntu faster

Originally published at http://www.pelagodesign.com/blog/2009/07/21/how-to-make-ubuntu-linux-run-faster-on-a-laptop/

How to make Ubuntu Linux run faster on a laptop

If you google around on the web you will find there are several tutorials on how to make your Ubuntu Linux installation run faster — especially on older hardware. These tips are very useful and range from minor tweaks to major overhauls. Being an intermediate Linux user myself, I found some of the more difficult optimizations to be overwhelming and not something I would want to try at home — changes to how Linux writes to the hard drive, for example. While researching and implementing the optimizations I felt comfortable with on my older Dell laptop and my new Asus eeePC 901, I jotted down all of my notes for future reference. Below are some tips for the intermediate user on how to optimize your laptop (or desktop) running Ubuntu Linux.

 

Reduce Swappiness

Most laptops have enough RAM installed that the swap space on the hard disk shouldn’t really be used. Yet the default setting for swappiness in Ubuntu is 60. By lowering it to 10 we can reduce the number of read/writes the the hard disk. This is especially handy for netbooks with solid state drives in them. To reduce the swappiness, follow these steps:

  1. sudo sysctl -w vm.swappiness=10
  2. Add the following line to /etc/sysctl.conf
    vm.swappiness=10

 

Preload

Preload is an adaptive read-ahead daemon that monitors running applications and analyzes them for commonalities. It then uses this data to predict what applications you might run and preloads them into memory. The result is faster startup times for commonly used programs. Installing preload is as easy. Just run the following line in a terminal window:

sudo apt-get install preload

» For further explanation, read this article on loading applications quicker in Ubuntu using preload.

 

Boot-Up Manager

The Boot-Up Manager (BUM) is a useful utility for starting and stopping boot-up scripts. Once installed it will appear in the System -> Administration menu. You can use BUM disable unnecessary boot-up scripts that may be slowing down your boot time. For example, I disabled saned, an API library for scanners, because I know I’ll never be attaching a flatbed scanner to my laptop. To install BUM:

sudo apt-get install bum

» Read the documentation for Boot-Up Manager

 

Startup Applications

If you are using Gnome for your desktop manager there will be an option to select which applications are started when you login. Go to System -> Preferences -> Startup Applications and uncheck the programs you don’t need. For example, I disabled the Evolution Alarm Notifier because I don’t use Evolution for setting alarms. I also disabled the Remote Desktop server, UME Desktop Launcher, and UNR Launcher. Just be careful to uncheck them and not remove them. In the case that you’ve removed something critical, you’ll want to be able to get it back.

 

Replace Metacity with Openbox

Openbox is a minimalistic and lightweight window manager that is known to run much faster than metacity, its bulkier counterpart. And you can easily get it working while still using Gnome as your window manager / desktop environment. By running Openbox inside the Gnome environment your desktop will become cleaner and faster. To install it, follow these steps:

  1. Install openbox using:
    sudo apt-get install openbox obconf openbox-themes
  2. Setup openbox as the default window manager by adding an entry in Startup Applications.
    To do this, go to System -> Preferences -> Startup Applications and enter the following: 

    • Name: Openbox
    • Command: openbox ––replace

    Note: According to the Openbox documentation you can make it the default by choosing the GNOME/Openbox session when logging in and saving this as your default session. However, this functionality is broken in 9.04. The above steps are a workaround until this is fixed.

  3. Choosing the Openbox theme and other configuration settings
    Go to System -> Preferences -> Openbox Configuration Manager to choose a theme you like and to update other settings such as Appearance and Windows.
    Note: changing the Desktops setting doesn’t effect the Gnome applet controlling the number of desktops. To change the number of desktops, you will need to revert back to Metacity and change them, then re-enable Openbox

» More information, documentation and screenshots available at the Openbox web site

Setup Samba peer-to-peer with Windows

As many fellow Ubuntu users seem to have trouble setting up samba peer-to-peer with Windows I decided to write a small howto on this matter.

NOTE: I am aware that there’s a wiki-page as well as several other howto’s around – but by looking at the constant “how do I setup samba” posts that are floating around in the forum I simply see the need for a more thourough guide on this matter.

Feel free to contribute and suggest – it’ll only help to make this howto a better guide.

The goal of this howto is to have samba act like a Windows Workstation in the LAN. As a “value added bonus” we will use samba to do netbios name resolution so that you can use the names of the workstations for network drive mapping instead of their ip-addresses (i.e.: \MY_WINDOWS_BOX\SHARE) – but only for as long as your Linux box has an static ip-address and is up and running.

This guide is based on Ubuntu 6.06 LTS and intended for all architectures (i386, AMD64, …) – if you are still using Breezy it’s safe to follow this guide as there should be no differencies.

A second guide on how to setup samba as Primary Domain Controller along with several other services such as DHCP, DNS and NTP will follow later on as this topic will be a little more thourough.

1. Prerequisites

– Your Linux box should have an static ip-address.
In case you’re getting your ip from a router/server via DHCP make sure it’s configured to provide a fixed dhcp-lease. If that’s no valid option you cannot use WINS … more on this way down.

– You need to have samba installed.
If you haven’t done so already open a terminal and type:

Code:
sudo apt-get install samba

Don’t close the terminal upon installation – we still need the commandline to get several tasks done!

2. Getting samba configured

First, let us make sure samba isn’t running:

Code:
sudo /etc/init.d/samba stop

As a starting point I included an smb.conf below, and there are only a few simple things you may need to tweak.

Since the installation of samba just installed a rather useless template file we’re going to rename it – we keep the file just in case.

Code:
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.template

Next we create a new empty file

Code:
sudo touch /etc/samba/smb.conf

And finally we need to open the file inside an editor

Code:
sudo gedit /etc/samba/smb.conf

NOTE: If you’re on KDE replace “gedit” with “kate”

Copy / Paste the contents of the code-section below into your editor and read on …

Code:
[global]
    ; General server settings
    netbios name = YOUR_HOSTNAME
    server string =
    workgroup = YOUR_WORKGROUP
    announce version = 5.0
    socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=8192 SO_SNDBUF=8192

    passdb backend = tdbsam
    security = user
    null passwords = true
    username map = /etc/samba/smbusers
    name resolve order = hosts wins bcast

    wins support = yes

    printing = CUPS
    printcap name = CUPS

    syslog = 1
    syslog only = yes

; NOTE: If you need access to the user home directories uncomment the
; lines below and adjust the settings to your hearts content.
;[homes]
    ;valid users = %S
    ;create mode = 0600
    ;directory mode = 0755
    ;browseable = no
    ;read only = no
    ;veto files = /*.{*}/.*/mail/bin/

; NOTE: Only needed if you run samba as a primary domain controller.
; Not needed as this config doesn't cover that matter.
;[netlogon]
    ;path = /var/lib/samba/netlogon
    ;admin users = Administrator
    ;valid users = %U
    ;read only = no

; NOTE: Again - only needed if you're running a primary domain controller.
;[Profiles]
    ;path = /var/lib/samba/profiles
    ;valid users = %U
    ;create mode = 0600
    ;directory mode = 0700
    ;writeable = yes
    ;browseable = no

; NOTE: Inside this place you may build a printer driver repository for
; Windows - I'll cover this topic in another HOWTO.
[print$]
    path = /var/lib/samba/printers
    browseable = yes
    guest ok = yes
    read only = yes
    write list = root
    create mask = 0664
    directory mask = 0775

[printers]
    path = /tmp
    printable = yes
    guest ok = yes
    browseable = no

; Uncomment if you need to share your CD-/DVD-ROM Drive
;[DVD-ROM Drive]
    ;path = /media/cdrom
    ;browseable = yes
    ;read only = yes
    ;guest ok = yes

[MyFiles]
    path = /media/samba/
    browseable = yes
    read only = no
    guest ok = no
    create mask = 0644
    directory mask = 0755
    force user = YOUR_USERNAME
    force group = YOUR_USERGROUP

Ok, I already mentioned that there are a few simple things you may need to tweak; so here they are:

-> netbios name = YOUR_HOSTNAME

Replace “YOUR_HOSTNAME” with your desired hostname (don’t use spaces!). Best pratice would be to use the same name you configured upon installation.

Example:

netbios name = DAPPER

-> workgroup = YOUR_WORKGROUP

Replace “YOUR_WORKGROUP” with the name of your workgroup, but make sure you’re using the same as configured in Windows.

To find out the Workgroup name in Windows follow these steps:

– Click “START”
– Click “Control Panel”
– Click “System”
– Click the 2nd Tab entitled “Computername” and find the name of the Workgroup there.

Example:

workgroup = MSHOME

-> wins support = yes

If your box doesn’t have a static ip-address, or you cannot configure your router/server to provide you with a fixed dhcp-lease, change this configuration parameter to “no”.

In this case you cannot use the benefits of WINS.

-> [MyFiles]

This is the name of the share. Leave it as it is or adjust it to whatever you prefer. Don’t use more than 31 characters and try to avoid spaces!

-> path = /media/samba/

This suggests that you’ve mounted an hard drive or partition on /media/samba where all the shared files will be stored.

In case you don’t have an extra hard drive/partition you may also create folder.

I assume you’ve been wise enough to put /home onto a separate partition having an reasonable amount of storage space.

To create the folder type (inside a new terminal) …

Code:
sudo mkdir /home/samba

… and adjust “path =” to read …

path = /home/samba/

Remember that this is just an example – you are free to put things wherever you like.

-> force user = YOUR_USERNAME
-> force group = YOUR_USERNAME

Well, this should say it all. Replace “YOUR_USERNAME” with the name you use for login (no spaces!).

Example:

force user = stormbringer
force group = stormbringer

Now we completed the part of editing smb.conf

Save the file and close gedit.

Since we are going to share the folder with other users we should now make sure that the permissions are set. Type:

Code:
sudo chmod 0777 /media/samba

NOTE: Don’t forget to correct the path to the location you chose above!

That’s it – now we need to start samba …

1.1 Starting samba and setting up user accounts

Let us fire up samba for the first time. Type:

Code:
sudo /etc/init.d/samba start

There shouldn’t be any errors – if you are presented with an error message make sure everything is correct (search for typos and/or invalid paths).

Time to add yourself as an samba user.

NOTE: You will be asked for a password – make sure you use the same as you use for login!

Code:
sudo smbpasswd -L -a your_username
sudo smbpasswd -L -e your_username

In case you need other users to be able to access the share you need to add them to your system AND samba as well. Make sure you use the very same Windows usernames and passwords!

NOTE: Windows XP doesn’t set passwords for its useraccount per default. If you haven’t set a password on your XP box just press enter when prompted to enter a password for the user account you’re about to create!

In the following example we will add an user called “mark” …

Example:

Code:
sudo useradd -s /bin/true mark
sudo smbpasswd -L -a mark
sudo smbpasswd -L -e mark

The “-s /bin/true” in the first line prevents the users from being able to access the commandline of your linux box (“-s” stands for “shell”). I strongly advise you to follow this recommendation! Don’t change that setting to a valid login-shell unless you really know what you are doing!

Repeat this step until you configured all user accounts!

Now that we configured samba and created the user accounts we are done with the Linux-part – there’s one more thing to do in Windows.

2. Changing network settings in Windows

Now we should let Windows know that there’s a WINS server active in the network.

If you had to change “wins support” to “no” above skip this step!

– Click “START”
– Click “Control Panel”
– Click “Network Connections”
– Find your “LAN Connection”
– Right-click the icon and select “Properties”
– Select the “TCP/IP” Protocol and click the “Properties” button
– Click “Advanced”
– Select the third Tab entitled “WINS”
– Click “Add”
– Type in the ip-address of your Linux box
– Click “Add”
– Select “Use NetBIOS over TCP/IP”
– Click “OK”
– Click “OK”
– Click “OK”
– Reboot Windows

Upon reboot you may now map the network drive within Windows.

With WINS enabled:
– Click “START”
– Right-click “My Computer”
– Select “Map network drive”
– Choose the drive letter
– Type \\DAPPER\MyFiles
NOTE: Adjust this to the hostname and sharename you chose above!
– Click “Finish”

With WINS disabled:
– Click “START”
– Right-click “My Computer”
– Select “Map network drive”
– Choose the drive letter
– Type \\<ip-address>\MyFiles
NOTE: To find out the ip-address of your Linux box type “ifconfig” inside a terminal and find the ip for the correct interface (i.e. eth0). Don’t forget to adjust the sharename to the name you chose above.
– Click “Finish”

That’s it – samba is up and running now.

3. Security consideration

This is the right time to think about security right away.

In case your computer has more than one network connection (i.e. wired and wireless ethernet) you may want to restrict access to samba.

If not especially configured samba will bind its service to all available network interfaces.

So, let us assume you only want your wired network to have access and that the network card is called eth0.

Add the following lines to the [general] section of your smb.conf to achieve that goal:

Code:
interfaces = lo, eth0
bind interfaces only = true

If you did it correctly it should look similar to this:

Code:
[global]
    ; General server settings
    netbios name = YOUR_HOSTNAME
    server string =
    workgroup = YOUR_WORKGROUP
    announce version = 5.0
    socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=8192 SO_SNDBUF=8192
    interfaces = lo, eth0
    bind interfaces only = true

Now only the local loopback interface (dubbed “lo”) and eth0 are able to access samba – there’s no need to fear that someone might break into your system by wireless as the interface isn’t bound to the service.

4. Final words

If you happen to have any questions feel free to ask – I’ll try to help as soon as possible.

If you find any mistakes in this howto please let me know so that I can fix them.

Feel free to contribute and suggest – help to make this howto a better guide.

5. Addendum: Useful links

Here are some links you may find useful.

The onsite links refer to other samba-guides and to ubuntu_daemon’s “Important Links” thread.

– Onsite
Ubuntu Help: Windows Networkworking
Ubuntu Documentation: Setting up Samba

READ THIS FIRST prior to posting – IMPORTANT links (by ubuntu_daemon)

The offsite links refer to the offical Samba homepage and to a selected choice of their official documentation; these links are useful if you like to dig yourself into the mysteries of samba’s configuration and usage as well as troubleshooting problems.

– Offsite
Samba Homepage

Practical Exercises in Successful Samba Deployment
The Official Samba-3 HOWTO and Reference Guide
Using Samba, 2nd Edition

Installing NFS on ubuntu

NFS allows a system to share directories and files with others over a network. By using NFS, users and programs can access files on remote systems almost as if they were local files.

Some of the most notable benefits that NFS can provide are:

  • Local workstations use less disk space because commonly used data can be stored on a single machine and still remain accessible to others over the network.
  • There is no need for users to have separate home directories on every network machine. Home directories could be set up on the NFS server and made available throughout the network.
  • Storage devices such as floppy disks, CDROM drives, and USB Thumb drives can be used by other machines on the network. This may reduce the number of removable media drives throughout the network.

Installation

At a terminal prompt enter the following command to install the NFS Server:

 

sudo apt-get install nfs-kernel-server

 

Configuration

You can configure the directories to be exported by adding them to the /etc/exports file. For example:

 

/ubuntu  *(ro,sync,no_root_squash)
/home    *(rw,sync,no_root_squash)

 

You can replace * with one of the hostname formats. Make the hostname declaration as specific as possible so unwanted systems cannot access the NFS mount.

To start the NFS server, you can run the following command at a terminal prompt:

 

sudo /etc/init.d/nfs-kernel-server start

 

NFS Client Configuration

Use the mount command to mount a shared NFS directory from another machine, by typing a command line similar to the following at a terminal prompt:

 

sudo mount example.hostname.com:/ubuntu /local/ubuntu

 

[Warning]
The mount point directory /local/ubuntu must exist. There should be no files or subdirectories in the/local/ubuntu directory.

An alternate way to mount an NFS share from another machine is to add a line to the /etc/fstab file. The line must state the hostname of the NFS server, the directory on the server being exported, and the directory on the local machine where the NFS share is to be mounted.

The general syntax for the line in /etc/fstab file is as follows:

 

example.hostname.com:/ubuntu /local/ubuntu nfs rsize=8192,wsize=8192,timeo=14,intr

 

If you have trouble mounting an NFS share, make sure the nfs-common package is installed on your client. To install nfs-common enter the following command at the terminal prompt:

sudo apt-get install nfs-common

 

How to install MySQLdb in a virtualenv on Ubuntu Karmic

Source : http://www.saltycrane.com/blog/2010/02/install-mysqldb-virtualenv-ubuntu-karmic/

Install dependencies
sudo apt-get build-dep python-mysqldb
Install MySQLdb with pip/virtualenv
cd ~/lib/python-environments
virtualenv –distribute –no-site-packages default
pip install -E default/ MySQL-python

Django email setup on Hostgator

Originally published at http://szunyog.blogspot.com/2011/07/django-email-setup-on-hostgator.html
On Hostgator it is possible to run Django applications with FastCgi, but it has only sendmail as email back-end which is not included in Django.

Hopefully there is a snipets to resolve this limitation. You just needed to change the path of the sendmail file and it was ready to run. The location of sendmail is “/usr/sbin/sendmail” on our Hostgator server.

And the email backend should be configured in your settings.py by adding the following line:

EMAIL_BACKEND = ‘sendmail.EmailBackend’

LIST OF LINUX SOFTWARE WHICH ARE EQUIVALENTS AND ALTERNATIVES OF WINDOWS SOFTWARE

Post originally published at : http://immonir.wordpress.com/2011/12/14/list-of-linux-software-which-are-equivalents-and-alternatives-of-windows-software/

01. 3D Home Architect

02. 3D Studio Max

03. ACDSee

04. Adobe Acrobat Reader

05. Adobe Audition

06. Adobe Illustrator

07. Adobe Lightroom

08. Adobe PageMaker

09. Adobe Photoshop

10. Ant Movie Catalog

11. AOL Instant Messenger (AIM)

12. APC PowerChute

13. Collectorz

14. DAMN NFO Viewer

15. Dreamweaver

16. DVDShrink

17. Everest

18. Evernote

19. Finale

20. FL Studio

21. Fontographer

22. foobar2000

23. Forte Agent

24. Fraps

25. FreeRIP

26. FruityLoops

27. Google Desktop Search

28. Google Earth

29. Guitar Pro

30. Legacy Family Tree

31. LimeWire

32. Meal Master

33. Microsoft Access

34. Microsoft Excel

35. Microsoft HyperTerminal

36. Microsoft Internet Explorer

37. Microsoft Money

38. Microsoft Office

39. Microsoft Outlook (Express)

40. Microsoft Powerpoint

41. Microsoft Project

42. Microsoft Visio

43. Microsoft Windows Media Center

44. Microsoft Word

45. mIRC

46. Mp3tag

47. MS Paint

48. MSN messenger

49. Mudbox

50. Nero Burning Rom

51. NetMeeting

52. NetStumbler

53. NewzCrawler

54. Notepad

55. OrangeCD Catalog

56. Origin

57. Partition Magic

58. PhotoME

59. Picasa

60. SoulSeek

61. SoundForge

62. Total Commander

63. Traktor DJ

64. TweetDeck

65. uTorrent

66. Videora

67. Winamp

68. Windows Media Player

69. Windows Movie Maker

70. WinIso

71. WinMerge

72. WinTV

73. WS_FTP

74. ZoneAlarm

75. Zscreen

N.B All credit goes to

The Linux Alternative Project

Installing Sun Java in ubuntu

Originally published at http://www.cyberciti.biz/faq/howto-ubuntu-linux-install-configure-jdk-jre/

Q. How do I install Sun Java Development Kit (JDK) and Java Runtime Environment (JRE) under Ubuntu Linux? It appears that there are multiple JRE installed by default under Ubuntu. How do I select and use Sun JRE only? Can you explain steps required to set the environment to run java programs or apps?

A. Ubuntu Linux 7.10 has following packages from Sun:
=> sun-java6-bin : Sun Java Runtime Environment (JRE) 6

=> sun-java6-demo : Sun Java Development Kit (JDK) 6 demos

=> sun-java6-jdk : Sun Java Development Kit (JDK) 6

=> sun-java6-jre : Sun Java Runtime Environment (JRE) 6

Install Sun Java 6

To install proprietary Java, you must have the Multiverse repository enabled. Click on System > Administration > Software Source > Select Multisource > Close
Adding the Universe and Multiverse Repositories

Open a shell prompt (terminal) and type the following to install JDK and JRE:
$ sudo apt-get install sun-java6-bin sun-java6-jre sun-java6-jdk

Setup the default Java version

Ubuntu Linux comes with update-java-alternatives utility to updates all alternatives belonging to one runtime or development kit for the Java language. To select, Sun’s JVM as provided in Ubuntu 7.10, enter:
$ sudo update-java-alternatives -s java-6-sun
You also need to edit a file called /etc/jvm. This file defines the default system JVM search order. Each JVM should list their JAVA_HOME compatible directory in this file. The default system JVM is the first one available from top to bottom. Open /etc/jvm
$ sudo vi /etc/jvm
Make sure /usr/lib/jvm/java-6-sun is added to the top of JVM list
/usr/lib/jvm/java-6-sun
At the end your file should read as follows:
/usr/lib/jvm/java-6-sun
/usr/lib/jvm/java-gcj
/usr/lib/jvm/ia32-java-1.5.0-sun
/usr/lib/jvm/java-1.5.0-sun
/usr

Save and close the file.

Setup the environment variable

You also need to setup JAVA_HOME and PATH variable. Open your $HOME/.bash_profile or /etc/profile (system wide) configuration. Open your .bash_profile file:
$ vi $HOME/.bash_profile
Append following line:
export JAVA_HOME=/usr/lib/jvm/java-6-sun
export PATH=$PATH:$JAVA_HOME/bin

Save and close the file.

Test your new JDK

Type the following command to display version:
$ java -version
Output:

java version "1.6.0_03"
Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
Java HotSpot(TM) Server VM (build 1.6.0_03-b05, mixed mode)

Try HelloWorld.java – first java program

$ vi HelloWorld.java
Append code:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

Save and close the file. Compile HelloWorld.java and execute program by typing following two instructions:
$ javac HelloWorld.java
$ java HelloWorld

Output:

Hello, World!

Code completion in vim

Originally published at http://www.belchak.com/2011/01/31/code-completion-for-python-and-django-in-vim/

You can fire vim tutor in terminal by typing  vimtutor

VIM has been my editor of choice for at least 15 years. I love how fast I can edit files, perform menial tasks, and wreak general havoc on any code project I am working on at any given moment. One of the things that I have missed about VIM from an IDE perspective has been code completion (a.k.a. “IntelliSense”). I have spent a lot of time on websites and man pages trying to figure out syntax and function names for several types of languages, and just recently discovered a long-included feature of VIM called omni completion, or Omnicomplete.

Since my life is mostly centered around django these days, I will discuss how I’ve benefited from omnicomplete and how I’ve set it up in my own environment.

First, since django is a web development framework, I want to make sure that I can get omnicompletion for HTML, Python, JavaScript and CSS. Omnicompletion works for almost any programming language that VIM has syntax highlighting support for, and these languages are no exception.

Here’s what omnicomplete looks like for CSS files, for example:

omnicomplete for cssomnicomplete for css

Setting this up for your django project is simple as pie. It is helpful to have all your django projects in one parent directory for the following setup. You can obviously customize this to your needs, but this is the way I’ve set it up in my environment.

Add the following to a script in a directory of your choosing (~/bin/vim_wrapper is where mine is):

1
2
3
4
5
#!/bin/bash
export PROJECT=`python -c "import os; print os.path.basename(os.getcwd())"`
export PYTHONPATH="/path/to/your/projects/parent/directory/"
export DJANGO_SETTINGS_MODULE=$PROJECT.settings vim
$@

Then add the following line to your ~/.bash_profile or equivalent:

alias vi="vim_wrapper"

Or, you can call your vim_wrapper script by hand. (vim_wrapper file_to_edit.py)

Next, add the following lines to your ~/.vimrc file:

1
2
3
4
5
filetype plugin on
autocmd FileType python set omnifunc=pythoncomplete#Complete
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
autocmd FileType css set omnifunc=csscomplete#CompleteCSS

I also prefer to re-map the default key binding (<C-x><C-o>) to <C-space>, so I accomplish this by also adding the following line to my ~/.vimrc file:

1
inoremap <C-space> <C-x><C-o>

I also found this trick today while searching around…

What this function does is that if there is no completion that could happen it will insert a tab. Otherwise it checks to see if there is an omnifunction available and, if so, uses it. Otherwise it falls back to Dictionary completion if there is a dictionary defined. Finally it resorts to simple known word completion. In general, hitting the Tab key will just do the right thing for you in any given situation.

Add the following to your ~/.vimrc and you should be good to go. It works like a charm for me.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function! SuperCleverTab()
    if strpart(getline('.'), 0, col('.') - 1) =~ '^\s*$'
        return "\"
    else
        if &omnifunc != ''
            return "\\"
        elseif &dictionary != ''
            return "\"
        else
            return "\"
        endif
    endif
endfunction

inoremap <Tab> <C-R>=SuperCleverTab()<cr>

If you find yourself writing code in other languages, the following lines in your vimrc should be adequate:

1
2
filetype plugin on
set ofu=syntaxcomplete#Complete

You can now test that your installation works by changing directories to one of your django projects, firing up vim and running the following command:

1
:python from django import db

If you do not get a horrible error, you are good to go!

You can now access code completion by the following methods:

  • <C-p> – Shows a list of all local symbols. This is good if you do not have a tags file associated with the file you are editing.
  • <C-space> – Shows a list of all available symbols. You need to set up a tags file, which is outside the scope of this blog post
  • <C-x><C-o> – The original keystroke sequence that we re-mapped C-space to.
  • <Tab> – The all-powerful tab!

Setting up rancho in django

Follow instructions listed in here http://www.getrancho.com/media/files/README.pdf

Installing psycopg2 : http://www.saltycrane.com/blog/2009/07/using-psycopg2-virtualenv-ubuntu-jaunty/

Installing mysqldb –https://roshanbook.wordpress.com/2011/12/20/how-to-install-mysqldb-in-a-virtualenv-on-ubuntu-karmic/

to install dependencies inside virtual env:

install virtuaev -pip install virtualenv
install python image library-
pip install --no-index -f http://dist.plone.org/thirdparty/ -U PIL
install mysqldb- pip install MySQL-python
install pytz - pip install pytz
install pisa - pip install pisa
 
 

Go to wikiboard view change ho.pisa module to xhtml2pdf.pisa

add ’django.middleware.csrf.CsrfResponseMiddleware’, to settings

add mysql only as database setting

install all rancho needed module via sudo easy_install modulename

When you implement the project you get an error where you are unable to upload and message under any project. To solve this refer

http://code.google.com/p/django-tagging/issues/detail?id=233

Patch is at http://code.google.com/p/django-tagging/issues/attachmentText?id=233&aid=-8130674876521494184&name=patch_prealpha_fix.diff&token=jHsKmdEwdlE38gHO-m86Q6BH3MY%3A1324220044756

 

To resolve tinymce>>widget.py error – cannot import smart_unicode

see patch http://code.google.com/p/django-tinymce/issues/attachmentText?id=63&aid=-4089731018218914032&name=tinymce-django12alpha.diff&token=giMV8_cMwqMy7s8gzL2Rv19uKic%3A1324448267646

%d bloggers like this: