If you don’t want to do a complete fresh re-install like I did, Jonathan Dance covers how to get things like the MySQL gem working again.

When I received my Snow Leopard disk I did a fresh re-install as I felt my computer was full of cruft and it was time to take out the trash. Of course, this meant also taking out all the cool apps / utilities etc that I use on a day-to-day basis. So here’s the stuff I’ve installed on my development box since I started.

Snow Leopard

Self-explanatory.

From the disk

Whilst you still have the disk handy (and by that I mean in the drive), it’d be wise of you to install from “Optional Installs” the “XCode” package. This provides gcc and other goodies, such as XCode (whodathunkit?). gcc will come in handy later on.

Utilities

MacPorts

I installed this from source and then installed curl with it. Apparently all the “important” packages are available and compatible, but you may find an edge case. Curl installed fine with this.

curl

Useful for retrieving websites or that odd XML feed from a provider. Installed via sudo port install curl

Git

To install Git I used the git-osx-installer, specifically the 1.6.4.1 version.

MySQL

Installing MySQL from package didn’t work for me (I don’t remember the error, or even if it was with the package or the gem, but it was a showstopper) so it was suggested via Google that I compile it from source. That I did and it worked out fine for me.

Other people have suggested to install the Mac OS X 10.5 (x86_64) version and to install the mysql gem using sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- -with-mysql-config=/usr/local/mysql/bin/mysql_config.

PostgreSQL

Installed from source, the package complains that I do not have an appropriate version of Mac OS X installed. I tend to disagree. Installing the gem is possible, again suggested via Google and then promptly ignored and then brought up on Twitter.

Sphinx

When you go about installing this you probably want to configure it with BOTH MySQL support and PostgreSQL support. Just specify the --with-mysql and --with-pgsql options to ./configure.

Teleport

Teleport is an awesome app that allows you to send the keyboard and mouse from one computer to another to control it. Really awesome for when you’re pairing because you can both connect to one machine and then if you need to go off and do something independently the other person can continue working whilst you do that. To change screens move the mouse to the edge and keep it moving like you’re using dual-displays. Then you’ll have a teleport icon appear in the middle identifying what computer you’re on.

Caffeine

Caffeine will keep your Mac wide-awake whilst it’s switched on. Helpful for presentations where you’re talking for a long period of time and the screen dims.

smcFanControl

Do you live in a climate where dropbears run rampant and temperatures below 35 celcius (in summer) are classed as “cold” days? Then you’ll need SMC Fan Control. This little app speeds up your fans so your laptop can keep cool so you can too!

Rip

Rip is another package manager (think RubyGems done right) and some Ruby apps I’ve used (such as Integrity) use it for installing their packages.

Applications

Firefox

Firefox is now the most widely used browser in the world, so it’s just about mandatory that as a web user you have this installed. Of course along with Firefox you’re going to want to install Firebug too. Firebug gives you a window to inspect your HTML in, a console to test Javascript and a lot more; very, very powerful.

Tweetie

Tweetie is essential Mac-based twittering. Very hot and very intuitive (by that I mean Cmd+1 = public, Cmd+2 = mentions, etc.).

LaunchBar

A paid app, but well worth the money. This provides a box that you can type app / file / whatever names (partial + full) into and it’ll find them. Default shortcut is Command+Space and this is probably the app I cannot live without.

TextMate

If you’re developing Ruby on Rails on Mac you’ll need this, or an eidetic memory for all those vim shortcuts.

Limechat

RubyCocoa IRC Client.

Mailplane

Application for Gmail, I find it much better than the standard Mail app as it supports all of Gmail’s features (it’s effectively a wrapper for Gmail), costs money but worth it.

Skype

VoIP chatting thingo. Helpful for chatting with clients / faraway colleagues. You may want to go into Preferences -> Advanced and uncheck “Enable Mood Messages”, as this always makes Skype appear like it’s got a message when all that’s happened is someone’s changed the status.

Adium

Instant Messaging program, supports many different protocols.

Skitch

Screenshot + Annotation, one of my favourite apps on any platform.

AquaPath

Helpful little tool for testing out your XPath expressions.

Remote Desktop Connection

A surprisingly good piece of software from Microsoft. For those of you familiar with Windows XP and so on you may know of Remote Desktop Connection. This allows you to control another Windows computer, but in this case a Windows computer from a Mac.

TextMate Bundles

Cucumber

I mainly have this one for the syntax highlighting, but the shortcuts are good also.

Javascript Tools

Used mainly for syntax checking of Javascript, but has other tools like JSLint and compressng.

Ruby on Rails

drnic’s updated Ruby on Rails TextMate bundle. Contains all your favourite useful shortcuts.

Ruby HAML

Used for its syntax highlighting capabilities.

RubyAMP

Used to jump to class / method definitions throughout applications, contains other features too.

Gem Stuff

First of all you’re going to want to run gem update --system to get the latest and greatest RubyGems and then just about immediately after that you’re going to want gem source -a http://gems.github.com. If you’re upgrading rather than doing a fresh install it’s recommended by wycats to run gem pristine --all to recompile all natives.

Then you’re going to want to install:

  • rails
  • cucumber
  • mysql
  • sqlite3-ruby
  • rspec
  • rspec-rails
  • haml
  • chronic
  • launchy
  • thoughtbot-shoulda
  • thoughtbot-paperclip
  • mislav-will_paginate
  • mocha
  • passenger
  • sinatra
  • sequel
  • find_gem
  • nokogiri
  • faker
  • fakeweb
  • notahat-machinist
  • mongrel
  • fastercsv
  • justinfrench-formtastic
  • adamcooke-codebase
  • capistrano
  • deprec
  • capistrano-ext and;
  • webrat
  • </ul> By using: `sudo gem install rails cucumber mysql sqlite3-ruby rspec rspec-rails haml chronic launchy thoughtbot-shoulda thoughtbot-paperclip mislav-will_paginate mocha passenger sinatra sequel find_gem nokogiri faker fakeweb notahat-machinist mongrel fastercsv justinfrench-formtastic adamcooke-codebase capistrano deprec capistrano-ext webrat`. There are probably more gems I should install, feel free to specify these in the comments.

    Dot Files

    Some people have created repositories on github for their "dot files", you know, `.bashrc`, `.inputrc`, `.gitconfig` and so on, the ones living in the home folder. I've done that too and you can find mine on Github too but be wary that rake install will overwrite your existing ones.

    Misc

    This is the stuff I can't think to fit anywhere else:
    • Change your terminal to the Pro theme (because it is pro)
    • Anti-alias the terminal font
    • Change the hostname of your box (to something short and snappy)
    • Mac out the key repeat delay in Keyboard preferences
    • Change the "delay until repeat" option to be shorter, but not all the way
    • Keeping in Keyboard preferences, second tab, turn on all control tabbing.
    • Change the Dock minimisation effect: ? -> Dock -> Dock Preferences -> Minimize windows using: "Scale effect"
    • Security preferences, ask for password on resuming from sleep / screen saver
    • Change TextMate to have soft tabs
    • Turn off terminal audible (and visual, but I don't think this is enabled by default) bell
    • Turn off Front Row shortcut
    If you can think of anything I've missed, please do not hesitate to leave a comment.