Projects
I love coding. Over the years I’ve created several projects, of which several are listed below. Enjoy!
MongoMapper
MongoDB is the best features of key/values stores, document databases and RDBMS in one. I fell in love with it at first contact and because there weren’t any good ActiveRecord like libraries for it, I created MongoMapper. MongoMapper is a mix of ActiveRecord and DataMapper with a MongoDB twist. It is still young, but has a lot of potential.
HTTParty
By far the most well known project I’ve worked on, HTTParty makes HTTP fun again! As you can see from this list of projects, most of them deal with consuming web services in one fashion or another. From this repeated act, I discovered some patterns, and wrapped them up into a gem. I’ve written several articles on HTTParty over the years as well.
HappyMapper
HappyMapper was purely an academic exercise. No matter what the language I’ve programmed in, XML has always been a pain. I discovered ROXML one day and decided that I loved the idea but not the implementation so I whipped the beginnings of HappyMapper together over the course of a weekend. I let it rot for a few months and then thought what the heck, packaged it up and released it.
Twitter Gem
The Twitter gem is one of the oldest projects I’ve created. It provides a simple interface to the Twitter API, supporting both HTTP authentication and OAuth. I’ve even created a simple example app and posted an article on OAuth for those that are new to it.
Crack
In an effort to get rid of dependencies in HTTParty, I pulled in the XML parsing from extlib and the JSON parsing from ActiveSupport, both of which were built off core libraries. Then one day it hit me that this functionality would be handy on its own without HTTParty, so I extracted both the parsers and named it crack.
Columbus
Christopher Columbus was an explorer and so is this gem. Given a URL, it follows redirects and then parses link tags to auto discover RSS and Atom feed urls. Nothing fancy, but occasionally handy.
Google Weather
Not sure how it happened, but one day I discovered that Google provides weather information. An hour or so later, I had a simple wrapper written that allowed accessing that information, even from the command line if that is your thing. This gem was also the first project that I used shoulda on.
Wufoo
After running into some issues with our contact form, we decided to switch to Wufoo. Wufoo has a great API, but no one had written a good ruby wrapper, so I took a day and whipped together one for the submission API. I used a few new (at the time) testing libraries, context and stump as well which was fun.
Lorem
Lorem ipsum is the standard for placeholder text. I got tired of going to a website to generate some, so I made a simple command line gem to generate the text for you. It will even put the generated text on your pasteboard if you are on a Mac.
Scrobbler
Last.fm is a wonderful service for tracking the music you listen to and suggesting new music. Another one of my older projects, Scrobbler allows accessing all your scrobbled music in a programatic way.
User Stamp
In an effort to make it easier to automatically stamp models with the currently logged in user when information gets updated, I whipped this simple plugin together. I now use it on almost every project.


