First things first...
- Swap Control and Caps Lock in System Preferences -> Keyboard -> Modifier Keys
- Google Chrome http://www.google.com/chrome/
- iTerm2 http://www.iterm2.com/
- Oh my zsh https://github.com/robbyrussell/oh-my-zsh/
- XCode (from the mac app store)
- XCode command line tools (run XCode, go to Preferences -> Downloads -> Command Line Tools)
- Homebrew https://github.com/mxcl/homebrew/wiki/installation
Fire up your database
- Edit /etc/paths to put /usr/local/bin on top, so that lion's psql doesnt win
Install postgres and init the db
brew install postgres initdb /usr/local/var/postgres
Add aliases to your shell for spinning postgres up/down (and while we're at it, put brew's python packages on the path so we can run mapnik later and tell zsh not to autocorrect a couple things)
alias postgresup='pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start' alias postgresdown='pg_ctl -D /usr/local/var/postgres stop -s -m fast' export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH alias mvim='nocorrect mvim' alias rbenv='nocorrect rbenv'
Okay, now install the GIS fun after postgres is happy
brew install gdal --with-postgres brew install postgis
(creating geo databases got easier, no need to install the templates, see http://postgis.refractions.net/documentation/manual-2.0/postgis_installation.html#create_new_db_extensions)
Higher-level GIS tools
Tap the homebrew/science repo and build QGIS
brew install libspatialite brew tap homebrew/science brew install qgis --with-grass --with-postgis
Follow the instructions to make it a pretty bundle...
brew install mapnik
And of course, you must have virtualenv
Get pip, if you haven't already, then vitrualenv. And then virtualenvwrapper (http://virtualenvwrapper.readthedocs.org/) cuz its awesome. (Adding the setup to the end of my .zshrc, use .bash_profile or whatever if you like.)
sudo easy_install pip sudo pip install virtualenv sudo pip install virtualenvwrapper echo 'source /usr/local/bin/virtualenvwrapper.sh' >> ~/.zshrc
Get rbenv (https://github.com/sstephenson/rbenv).
Note, I'm modifying my .zshrc cuz I do zsh. You'd do your .bash_profile if you're normal.
brew install rbenv brew install ruby-build echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc echo 'eval "$(rbenv init -)"' >> ~/.zshrc
You'll want to open a new shell to get that stuff we just put on your path. Here's how you see what fancy new ruby versions you can install, and how to get one w/ rbenv:
rbenv install rbenv install 1.9.3-p194
Other tools I love
- TileMill http://mapbox.com/tilemill/
- macvim (Trying vim. We'll see how this goes.) http://code.google.com/p/macvim/
- iStat Menus http://bjango.com/mac/istatmenus/
- The Unarchiver http://wakaba.c3.cx/s/apps/unarchiver
- CrashPlan http://www.crashplan.com/
- Divvy http://mizage.com/
- BusySync http://www.busymac.com/busysync/ (Not necessary for dev, but necessary for keeping Google Calendar and Exchange in sync.)
- Skype (direct download link) http://www.skype.com/intl/en-us/get-skype/on-your-computer/macosx/post-download/
Vim is pretty rad once you get used to it. I've been building a cheat sheet, lemme know if you want it.
You'll wanna add these things to your ~./vimrc file, trust me.
" big E goes to end of line, big B goes to beginning
map E $
map B 0
" jk as a shorcut for Escape in Insert and Command modes
" ... in Visual and Select modes
This way you can mash j and k keys to get out of insert mode, and it's much easier to go to beginning and end of line. Also apparently you can intergrate vim an ipython so you get ipython-esque autocompletion, though I haven't futzed with that yet.
I like to use vim inside iterm because you can split screen cli and vim. You can enable most of the macvim mouse functionality for vim by adding this to .vimrc