How I Set Up My Mac

Some time ago I switched to Mac OS X for my day to day work, using Windows only in a virtual machine for when I absolutely needed to use Visual Studio.

I just got a new 15″ MacBook Pro as part of an initiative to roll my entire team over to Mac as our day to day platform (story for another day) and thought I would document my setup for their benefit (and anyone else’s).

Step 1 – System Settings

Updates – Do Software Updates until you can’t do any more.

Seriously. Just get it out of the way now.

The equivalent of “lock workstation” from Windows

  1. Open System Preferences
  2. Choose “Desktop & Screensaver”
  3. Choose “Screen Saver” at the top
  4. Go to “Hot Corners” and set a corner to activate screen saver
  5. Go back to System Preferences and choose Security
  6. Under “General” check “Require password to wake…”
  7. Check “Disable automatic login”

That done, you roll your mouse to your hot corner, activate the screen saver, and your station is locked. No getting goated!

Trackpad Settings

I like my trackpad a certain way. Tap to click, and tap two fingers to “right-click”. These settings are found in System Preferences under Trackpad

My Dock

I don’t like to see my dock, so I make it small and auto-hide. I also remove all applications from the dock so that at any given time the only ones there are the ones that are active.

GitHub Setup

If you use Github regularly, then on a new machine you will need to generate your SSH key and set it up in GitHub. Follow the instructions on your account page.

Step 2 – Critical Software

To get up and running immediately, I install the following:

  1. Xcode – Get it from the OS disk. Do it first since gems stuff needs it. Later, sign up for ADC and get the iPhone SDK too. Also MacRuby.
  2. AppCleaner – I like this for doing “uninstalls” and keeping down orphaned file bloat.
  3. Install a launcher. I like Quicksilver
  4. Adium – Chat/IM/IRC (though I use Colloquy for IRC). Let Adium install Growl.
  5. TextExpander – Awesome snippet tool. Add the HTML and CSS bundles from the preferences if you do web work. Add the symbols and accented words bundles too.
  6. TextMate – My editor of choice for most things.
  7. RazorSQL – Manage SQL Server, SQLite, MySql, and many more in this excellent free tool.
  8. Dropbox – for syncing to multiple machines and sharing with people
  9. Mono and MonoDevelop – Doing a lot more of my .net work in MonoDevelop as time goes on. Launching that Windows VM less and less.
  10. Git for OS X
  11. VMWare Fusion – I keep a Vista VM on a separate drive to use when I need it. Running your VMs on an external drive seems faster (slower to start up) for some reason.

I use a lot more in terms of software, but this is the base package needed to get up and running and be productive at work.

Step 3 – Ruby and Rails setup

Setting my rails environment up fresh is a nice couple of minutes of command line goodness. Fire up terminal and do the following:

  1. gem update –system (update the preinstalled stuff)
  2. gem sources -a http://gems.github.com (add github to gem sources)
  3. gem install rspec
  4. gem install rspec-rails
  5. gem install cucumber
  6. gem install webrat
  7. gem install wirble
  8. gem install nokogiri
  9. gem install ZenTest

Next, I edit ~/.irbrc in my favorite editor and make it look like so:

require 'rubygems'
require 'wirble'

Wirble.init
Wirble.colorize

alias q exit

This puts rubygrms and wirble into irb, wirble providing you things like colorizing, history, tab-completion and more. The alias q exit bit is so that q will exit irb for me, giving it a kind of vim-y feel. This is optional.

Step 4 – TextMate Bundles

Being a big TextMate user, I install the following bundles right away:

The easiest way to get these installed is to create the Bundles directory if it doesn’t exist:

mkdir -p ~/Library/Application Support/Textmate/Bundles/

then go to that directory and start git-cloneing the bundles. Each should have the git-clone command on their readme or wiki.
A handy snippet when installing bundles is a little script that will tell TextMate to reload bundles without you having to do it manually:

osascript -e 'tell app "TextMate" to reload bundles'

Other Applications

Other applications that I find useful and install after all of the above:

  • Colloquy – IRC
  • Cyberduck – FTP
  • MarsEdit – Blogging
  • TweetDeck – Twitter
  • Evernote – Note keeping and lists. Syncs with the Evernote on my iPhone. Life is good.
  • Appshelf – App to keep your registrations and serial numbers all in one place. Nicely done.
  • iStat Menus – System Monitoring in the Menu Bar
  • VLC – Plays like…any media format. Seriously.
  • Skype – You know…for skype stuff

Technorati Tags:
, , , , ,

Related Articles:

Post Footer automatically generated by Add Post Footer Plugin for wordpress.

About Scott Reynolds

Scott C. Reynolds is a developer with over a decade of experience creating enterprise solutions, primarily in healthcare and biotechnology. He is passionate about the art and craft of applying software solutions to business problems. He is a frequent speaker and participant of community events nationwide.
This entry was posted in mac. Bookmark the permalink. Follow any comments here with the RSS feed for this post.

3 Responses to How I Set Up My Mac

  1. pablo says:

    I use http://www.virtualbox.org/ for my VMs. What’s your feeling about MonoDevelop? Is it really possible to replace VS for it? It would be really nice to use my Mac for work too.

  2. Tobin Harris says:

    Fab post Scott! We have *large* overlap in our OSX setup.

    Just downloading QuickSilver now and investigating EverNote…

    What MonoDevelop do you download? Do you use the MacPreview that’s in Alpha?

  3. @tobin

    I use the Mac Preview. It works pretty well. I’m not a heavy user yet, but it’s coming along.

    @pablo I can’t switch totally to mono yet. Not everything works. Particularly 3rd party dependencies (like component suites) are fail with it. But for a lot of my work, I am using MonoDevelop on the mac instead of launching into the VM