Setting up a new machine for Ruby development

Setting up a new machine for Ruby development:

It used to be a jarring experience to setup a new machine for development, but progress has paved the dirt road into a silky smooth autobahn. These are the tools we use today:

  1. Homebrew: Remember how painful it used to be to get imagemagick installed? Now it takes about a minute. “brew install imagemagick”. Same story for git and other Linux dependencies.
  2. rbenv/ruby-build: We have some apps running on Ruby 1.8.7, some on 1.9.2, and some on 1.9.3. ruby-build makes it easy to compile all three, rbenv makes it easy to switch between them on a per-project basis. We run rbenv in production as well, so all you need to do to change the Ruby version there is alter .rbenv-version—development and production is always on the same page.
  3. Bundler: Not everyone at 37signals loved Bundler at first, but now that it’s stable, they’ve been won over. I now curse whenever I have to use an old application that hasn’t been setup with Bundler. Manually tracing down dependencies?! How prehistoric!
  4. rake setup: All our apps has a rake setup task that’ll run bundler, create the databases, import seeds, and install any auxiliary software (little these days) or do any other setup. So when you git clone a new app, you know that “rake setup” will take care of you.
  5. Pow: No more messing with Apache or nginx for local development. All it takes for Pow to add another app is a symlink. All the apps are always configured and available at,, etc without messing with the hosts file either.

Thanks to Max Howell for Homebrew, Sam Stephenson for rbenv/ruby-build and Pow, and Carl Lerche/Yehuda Katz for Bundler. Thanks to them, starting from scratch has never been easier.

[Some new stuff to try out. RVM hasn’t really lit me up…]

The Acquisition: An Open Letter to our Customers – Competitive Cyclist

alloy/macvim: The Acquisition: An Open Letter to our Customers – Competitive Cyclist:

Unlike the current essential structure of the bike industry, where dealer interests take priority over consumer convenience, our focus at Competitive Cyclist has always been on you. For those who asked if we sold out of financial desperation, the answer is a definitive “no.” We sold out of a sense of aggression. If nothing else, 20 years of bike racing has honed my sense of timing for an all-in attack. The moment is perfect for us to fast-track our ultimate vision for Competitive Cyclist.

[My local guys need to embrace this more than they have…]