I read entirely and watched (most of) Chris Wanstrath’s Ruby Hoedown 2008‘s keynote, one of the guys behind github. It was somewhat amusing, but most importantly, there were a few interesting points about the importance of working on side projects, because it’s fun, useful, and pays back in the long term.
So here are my highlights (and in fact all quotes from Wanstrath), divided in 3 sections.
The Von Newmann Machine
- In the 1940s, von Neumann and a group of, basically, geniuses got together to build a computer. It wasn’t the first computer, mind you. In fact, ‘computer’ is a term once used to describe individuals who computed numbers.
- Guys like Alan Turing got in on the action and came up with ideas which would eventually produce machines such as ENIAC, the first programmable digital computer. While ENIAC was a breakthrough, von Neumann’s architecture was different in an important way: it stored both program instructions and user data in RAM. Prior to von Neumann’s ideas, program instructions, while modifiable, were stored separately from data.
- Like I said, this idea (called the von Neumann or stored-program architecture) is what we use today. When you’re writing your Rubys in your TextMates, both the Rubys and TextMates are stored together in RAM.
- the [first von Neumann] machine then carried out its intended purpose: Help design hydrogen bombs.
Examples of (Now Successful) Side Projects
- Ruby on Rails itself was extracted from Basecamp, which was a website the 37signals guys were doing on the side. At the time, they were a design firm and David Hansson was a contractor.
- Rubinius now has five people working full time on it, but began humbly in 2006 as Evan Phoenix’s side project. He wanted to build his own Ruby.
- No one really knows what _why does with his time, but Shoes is certainly moving full steam ahead with no mention of monetary gain. Just for hack’s sake, to make things better for people wanting to put together GUIs in their favorite language, for fun.
- Merb started as a pastie, a thin layer on top of Mongrel to allow for fast, concurrent file uploads. Developers at Engine Yard now actively work on the framework.
The Importance of Side Projects
- Something I learned from that experience is that you don’t need to make money from code to make money thanks to code.
- But it wasn’t an overnight eureka, and it wasn’t intentional. I didn’t just walk out of high school, pick up a Ruby book, meet Tom and PJ, then launch the site GitHub. Before GitHub came, in chronological order, Spyc, Ozimodo, my ozmm.org tumblelog, ftpd.rb, Choice, Err the Blog, acts_as_textiled, Cheat!, acts_as_cached, Mofo, Subtlety, cache_fu, Sexy Migrations, Gibberish, nginx_config_generator, fixture scenarios builder, Sake, Ambition, and Facebox. And that’s just the stuff I released.
- My plea to you today is to start a side project. Scratch your own itch. Be creative. Share something with the world, or keep it to yourself.
- Side projects are less masturbatory than reading RSS, often more useful than MobileMe, more educational than the comments on Reddit, and usually more fun than listening to keynotes.