A Ruby on Rails developer's toolbox for Mac OS X

01 Aug 2010,

I spend most of my time doing Ruby on Rails development. Here are some of the tools that help me do it.

Hardware

  • My main workstation is a Hackintosh, running Snow Leopard. It is powered by a Quad-Core Intel Xeon, 8 GB of RAM, 1.5 TB storage and GeForce 8800 GTS graphics card pushing pixels to two Dell G2210 monitors.
  • Acting as backup and 3rd monitor is my 15” 2007 MacBook Pro. It was my first Mac and I consider it to be the best investment in technology I ever made.
  • Blue Snowball USB mic - for recording BDDCasts.

Unix apps (updated from comments):

  • Homebrew UNIX Package manager for OS X; MacPorts/Fink replacement. I use this to install things like MySQL, Git etc. Thanks to Pieter Nikolai for reminding me of this in the comments.
  • RVM - Ruby Version Manager. Very handy for having multiple versions of Ruby installed or just to have separate gemsets. Also reminded by Pieter Nikolai.
  • mod_passeger - Phusion Passenger aka mod_rails. Apache module for enabling copy-and-run PHP-like deployment of Rack applications. I also use it in development, along with the Passenger Pref Pane to avoid having to spin up “script/server” every time.

Mac OS X apps

  • TextMate - My text editor of choice. The nice thing about it is that you can jump in and use it right away without a big learning curve. It has some shortcomings and the community is becoming increasingly frustrated that version 2 is following in the footsteps of Duke Nukem Forever. However, it has an impressive array of features, and some if its shortcomings can be worked around using some 3rd party plugins which I will discuss in a separate post.
  • Firefox + Firebug. Chrome has become my main browser, but I still use Firefox for development because of Firebug. Chrome’s developer tools look like the have all the features that Firebug does, but I have not gotten used to them yet.
  • iTerm - Terminal emulator. Using it instead of Terminal.app because it supports tab switching from the keyboard using the same bindings as Chrome, Firefox and TextMate.
  • Sequel Pro - Elegant MySQL client for OS X.
  • Mailplane Gmail client. Basically a site specific browser, with user scripts, bundled up in a nice UI package. It handles multiple accounts, notifications, drag-and-drop attachments, integrates with the OS X Address Book and lots more.
  • SynergyKM - Software KVM switch. Makes it easy to control the main workstation and my laptop using one keyboard and mouse.
  • Dropbox - Cloud storage and sync. Best solution I could find for having files synched across machines and easily share them with other people. Integrates well with Android and the iPad.
  • Skitch Screen grab, image annotation and sharing tool.
  • GitX - Very nice Git GUI. I actually use brotherbard’s experimental fork which has several nice improvements over the original version, although it can be crashy at times.
  • Launchbar Application launcher, clipboard manager. Quicksilver alternative. Switched over to it when Quicksilver seemed to be abandonned.
  • OmniFocus GTD Application, or a glorified TODO list manager.
  • ScreenSharing - OS X’s built-in VNC client and server. Using them for pair programming and remote demos.
  • Little Snitch - Outbound firewall. A very good second line of defense for when I am developing webapps that need access to external services. If I forget to stub out a network call, Little Snitch will alert me and offer to block or allow it. Very customizable, good UI and sensible defaults.
  • ScreenFlow - Screencast production tool. I use it to record BDDCasts with Jeff Schoolcraft.
  • Skype. For pair programming remotely and general conference calls.
  • VirtualBox Oracle’s excellent free virtualization solution. Allows me to run multiple operating systems, mainly for the purpose of testing out webapps on various browsers. I have a separate Windows XP VM for each version of Internet Explorer.
  • Transmit: Excellent FTP, SFTP, S3 client. Helps administer servers, editing config files, managing backups, uploading media.
  • Transmission: BitTorrent client - for downloading… Linux distros.

First post

04 Dec 2009,

I am finally setting up hoka.ro as my personal blog as an aggregator of my online activity.

Deciding what to use to power this site was not an easy task. I wanted it to be easy to maintain, lightweight and fun.

This is the list of solutions I considered:

  • Wordpress - first thing that comes to mind when thinking about blogging.
  • RadiantCMS - Ruby on Rails based CMS I have used to power websites for clients and some of my own.
  • Adva-cms - Newcomer to the CMS world, based on Ruby on Rails.
  • Jekyll - Static site generator written in Ruby, built and used by the folks at GitHub.
  • StaticMatic - Another static site generator written in Ruby.

Eventually I decided on Jekyll, for various reasons:

  • I wanted a technology that was close to what I am currently working with: Ruby and Rails, HAML, SASS
  • I hate upgrading Wordpress every time a new version comes out and not updating it is an open invitation for hackers.
  • RadiantCMS is not really a blogging platform, although you could force it to behave as a blog by installing various extensions.
  • Adva-cms is not really ready for production.
  • StaticMatic is more geared towards prototyping and does not have built-in support for blog-like behavior.

Anyway, here it is.