07 Jan 2014

My OSX Mavericks Setup for Django development

I recently had to setup my machine for Python development from scratch. I had a couple of bookmarks of guides that run you through the process, but I soon found out they were pretty outdated. My co-founders blog post was a good start, but I wanted to improve it a bit. So here goes.

Install OSX and enable FileVault

OSX installation is pretty straight forward. I did not fiddle with any advanced settings, except for region and keyboard configuration. Only suggestion I would have here is to use the US keyboard layout because special characters that are often used in programming are most easy to access (;'\/.,[]{}()?=-+). If you do occasionally need non-english characters, OSX has a really handy interface which is enabled when you hold down a key. Alternately, you can use multiple keyboards and switch with CTRL + SPACE.

FireVault is in my opinion essential and is easily enabled in the Security section of System Preferences. Just make sure to use a strong login password that you can remember. If you happen to forget it, and you trust Apple, you can have a security backup of your encryption key stored on iCloud.

OSX configuration

Enable apps from everywhere

By default, in OSX, some applications that you download from the Web cannot be run, since they do not originate from “identified developers”. If you want to disable this functionality go to Security and Privacy and set “Allow apps downloaded from” to “Anywhere”

Lock screen

If you work in an open office environment and are concerned about other people snooping your computer while you leave, you can get a handy lock screen shortcut on your task bar by opening Keychain Access, then going to Preferences and selecting “Show Keychain status in menu bar”. There is also a shortcut for it: CTRL + SHIFT + EJECT.

Must have software

Terminal

While some people suggest to install iTerm2, I prefer sticking to the default Terminal app. One small issue I had with it was the DELETE key not working as expected. It would type a tilde (~) instead of deleting forward. Luckily, the key is easily configurable in the app itself. Just go to Preferences, Keyboard and map the delete key to CTRL + Option + D. The action should show \004.

Oh My ZSH

Oh My ZHS enables use of advanced shell scripts. I use scripts by Kristian Oellegaard. More info can be found here.

Homebrew

Homebrew is kinf-of like apt-get for Mac. It’s a must. Install it with:

ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

PostgreSQL

brew install postgresql

To run postgres on startup:

ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents

Install setuptools and PIP

Installing setuptools and PIP has changed a bit since the last time I did it. Best way to do it is to download the provided script and run it as described here.

That’s it!

Now you are pretty much ready to go. Not as hard as I remembered it to be. Happy programming!