My Mistress is a Machine

Computers are a sort of love affair for me, providing opportunities in abundance to express creativity and problem-solving skill. Much of this I do through working on various software projects.

My primary project is Subversion, a version control system aimed at dethroning CVS in the realm of open-source software version control systems. My employer, CollabNet, is the premier financial backer of the Subversion project. I generally describe Subversion as a mechanism for taking and sharing snapshots of how other files on your computer look at various points in time so that even after you've made hundreds of edits to a particular document, you can remember how it looked in each of those intermediate stages of revision.

Since Subversion's stated goal is to usurp CVS's authority, I've been hacking away at a couple of other pieces of related software— ViewVC and cvs2svn. ViewVC (formerly known as ViewCVS) is a CGI program that provides a Web interface to CVS repositories and, since I've joined the project, Subversion repositories as well. And cvs2svn converts CVS repositories into Subversion repositories so folks migrating from CVS to Subversion can preserve their years and years of versioned historical data.

My connection to Subversion has provided another wonderful opportunity—the chance to write a book for O'Reilly Media about Subversion. I and two of my friends, Ben Collins-Sussman and Brian "Fitz" Fitzpatrick, have completed the first edition of Version Control with Subversion. You can order it from We're also right now in the process of writing the second edition. These books are interesting not just because they cover an amazing new open-source software technology, but because the books themselves are "open-source"—their license permits anyone to publish them who so pleases!

When not hacking on something Subversion-related, I occasionally spend a moment or two working on ThotKeeper, a piece of journaling software I wrote for my wife. It's Python based, drives the wxPython GUI toolkit, and basically provides a way for her to track her memories about our family life. And it stores everything in XML, so changes are diff-able — I get access to her thinking by reading her Subversion commit mails after she adds journal entries!

Another side project of mine is phidx (a CGI photo indexing script). And there'll probably be other little programs of general interest in the future … at least I hope so.

Also, I'm a pretty regular graphic design and website hacker, too. I've designed or implemented countless CD artwork layouts, websites, T-shirts, and so on for clients of various sorts: producers of music (Kraynight Productions, Autumn War), theatre companies (Lookingglass, Steppenwolf), churches (Plaza Baptist Church), nationally recognized charities (World Relief), local businesses (Rocky River Coffee Co.) and everything in-between. Just another thing to fill up my already busy life….

I suppose I came to the computer scene a little later than the average geek—I wasn't writing C code in the womb, and my childhood included normal kid stuff (sports, music, and so on) in addition to the state-wide math contests and spelling bees. But I'm in the scene now, and especially since I've been introduced to the open-source culture, I'm enjoying every minute of it.

That said, I will (most likely) not fix your computer.

Valid XHTML 1.0 Strict