[Disclaimer] I don’t like to spend much of my time setting up the tools I want to use; I prefer to be making stuff with them. So this may well not be the best way to setup a development environment, but… having done it twice this week (shiny new MacBook Air and fresh install on iMac), I figured I’d keep notes for future reference. What I do is:
Development environment
- Run software update
-
Homebrew
-
Ruby
- If gem -v is old (0.8.5 – 1.2.0), update rubygems (
sudo gem update --system) - Install RVM
- Install some rubies
- Set a default Ruby
rvm --default use 1.9.2
- If gem -v is old (0.8.5 – 1.2.0), update rubygems (
-
Some common gems
gem install rails
gem install bundler
gem install mysql
gem install passenger
gem install gem-open
-
Main dev software
- Text editor: Textmate
- Positioning windows on screen: Size Up
- MySQL database manager: Sequel Pro
- Viewer for git history and commits: GitX
-
Customize system
- I use TinkerTool to see hidden files in Finder.
- Fork Ryan B’s .dotfiles and customize to suit yourself.
- Copy over ~/.gitconfig file from a backup
- Copy over any extra Textmate bundles from a backup
-
SSH Keys
I copy over my .ssh config and keys from a backup.
-
Setup your projects
- Clone your project files, e.g. from github
- Install necessary gems, e.g. in each (Rails 3) project:
bundle install - Setup databases, e.g. for Rails projects
rake db:setup
-
General software
- Storing software serials (synced with MobileMe): Yojimbo
- Storing passwords: 1Password
- Storing all sorts of notes, with syncing between devices: Evernote
- To-do lists: OmniFocus
- Twitter client: Echofon
- Sync files between devices, and/or with others: Dropbox
- Chat: Adium and Skype
- IRC: Colloquy
- Campfire chat: Propane
- Backup: SuperDuper!
- Image editing: Acorn
Anything faster, smarter… feel free to share.
Comments
Cinderella takes a lot of the heavy lifting out of getting a ruby dev environment set up. Uses chef to automate installing rvm / homebrew etc.
Installs everything in your home directory, including homebrew. This may or may not be a good thing for you.
http://www.atmos.org/cinderella/
Great tips!
When I switched computers a fee months ago I used OS X built in Migration Assistant. Copied everything over from my old mac including hostname and other obscure system files. Though I had problems with, and had to reinstall MacPorts because I migrated from 10.5 to 10.6! Another thing to note is that you’ll get all the old crap you forgot you had on the new machine which could be a bad thing but it avoids loosing something too! No installing software either, just works! Boom!
I was tempted to use migration assistant with the MBA, but I bought it the night before I needed to travel with it and the estimated transfer was ~12hrs. Didn’t time this, but certainly got me up and running for current projects pretty quickly and painlessly. Plus, I do just like the clean start feeling
I agree with you, the clean start feeling is great! Previously I’ve done a lot of diverse development (php/ruby/python, solr/sphinx, mysql/postgres/sqlite, photshop/illustrator (ok, thats not dev work)) so MA has REALLY saved me a lot of installation hours.
Time Machine can do a pretty good job of migrating just files and apps. Just make sure all files are on the TM disk. First time I did that all Apps weren’t on it ’cause too many new files had taken all the space (oldest (apps) goes first).
If you’d like to see branches and merge in git in a really nice GUI environment, I highly recommend Git Tower: http://www.git-tower.com/
I think a better Mac OSX MySQL administration tool is:
http://dev.mysql.com/downloads/workbench/