Lost in Code.

Hopes and dreams

As a creative, I get inspirations from time to time -- inklings of ideas that have the potential to blossom into full-fledged realities or deeper sensations from some invisible muse leading me to branch off in a new direction. I haven't really enumerated these dreams because none of them have become realities yet, and no one is proud of their failures. At the same time, I come back to them over and over in my head, so they're obviously a part of me, and they obviously mean something. So I might as well make a list.

Building gems with Jenkins

Rubygems.org is great. Before it existed, publishing your gem to Rubyforge was complicated. Now you just gem push and you're done. But what if you want to host gems inside an internal network? In this post I show you how to set up a gem server, and provide a workflow that offloads the gem building process to Jenkins, the popular CI server software.

Turns out it isn't terribly difficult.


Array set operations

For some reason, I can't ever remember how to do set operations on arrays. Here are the common problems I run into and their solutions.

Ruby’s strftime options

It turns out that Ruby on OS X and Ruby on Linux accept slightly different options for strftime. Here is a handy table that lists the differences.


You need to install Homebrew on your Mac. Here's why.

git-svn (or the Perl/Ruby frontend svn2git) is great for converting a simple Subversion repo to Git -- that is, as long as the structure of your SVN repo (trunk/branches/tags or just flat) remained the same through the repo's history. In this post I talk about techniques I found (along with a script I wrote) that makes it possible to fully convert these types of repos.

Two levels of software

The casual user vs. the power user...

I always get Ruby's redo and retry keywords mixed up. They're flow control commands, but they both do slightly different things.

Testing sure becomes more important when there's more than one developer involved.