Archive for May, 2008

Winesburg, OH in Kansas City, MO

Posted by on Tuesday, 27 May, 2008

In case you forgot, I used to have an active career in as a composer for theater. From 1995-2005 my buddy Andre and I worked our way up the theater ladder, starting as a couple of naive college kids who had written a college rock-musical adaptation based on Dante’s Inferno. We wrote hundreds of scores for plays, and at least five more musicals as contracted by various small theaters. Over the years, though, our career paths slowly diverged. As the theaters got bigger and more professional, rehearsals moved to daytime hours — and thus we had to quit our day jobs to keep going. Andre took the leap to become a “pro” designer; with my family and mortgage, though, I wasn’t able to bring myself to walk away from the lucrative and exciting world of professional software development.

Andre now travels around the country writing scores for dozens of regional theaters, and he’s been gracious enough to let me ride his coattails now and then. When a rare “musical theater” opportunity presents itself, we’ll still work together in the studio like the old days. Since I had a kid in 2005, I’ve had even less time to work with Andre, though we did write a children’s musical adaptation of Ray Bradbury’s “Dandelion Wine” for the Steppenwolf theater last year.

The work I’m most proud of, though, was a very dark musical adaptation of Sherwood Anderson’s Winesburg, Ohio. If you’re not familiar with the book, you should be — it’s a collection of twisted short stories about life in a small town around 1900. Think “Our Town” on crack. Sherwoood Anderson’s book was scandalous when it was released about about 100 years ago, but his groundbreaking style had a (self-admitted) heavy influence on later writers such as Steinbeck, Hemingway, and Faulkner.

In any case, as with all decent musical theater, our “Winesburg” show has gone through numereous evolutionary iterations. It started as a tiny production in 2002, followed by more workshops, followed by a bigger production in Chicago which garnered a regional Jeff Award… then a workshop in NYC, a production by some kids at an arts college in Connecticut, and finally a much larger regional production in Philadelphia which won a Barrymore Award. (The Philly show actually produced box-office royalities, which paid for my banjo!) While I’m skeptical the show will ever go to Broadway, I do hope it gets refined and popular enough to get published and make the rounds at regional theaters around the country.

So: we’re ready for round 7! The show will be playing at the Kansas City Repertory in March 2009. Mark your calendars. One more chance to improve, rewrite, or add new music. I’m pretty excited to be involved again.

Incidentally, this musical is the reason why — about five years ago — I gave up my life as a jazz pianist for folk music on stringed instruments. It was the first show Andre and I had written where the piano plays only a minor role. Many songs have no piano at all, in fact. I remember running rehearsals without Andre, and discovering that certain songs simply couldn’t be rendered at the piano… the only solution was for me to quickly take some guitar lessons. From there, my teacher introduced me bluegrass, and then off I sailed into banjo-land. I’ve not really gone back to the piano since then!

Somebody try this, please.

Posted by on Thursday, 22 May, 2008

Allow me to geek out for a second. I’ve come up with a new recipe for ultimate geekiness:

  1. Build this c-compiler for the z-machine platform.
  2. Use the c-compiler to build this super-simple lisp interpreter.
  3. Distribute the lisp interpreter as a .z5 game
  4. Profit!

If you have no idea what any of this means, it’s ok. I have a strange sense of humor today.

Subversion 1.5 merge-tracking in a nutshell

Posted by on Saturday, 10 May, 2008

As I’ve mentioned in other posts, the Subversion project is on the verge of releasing version 1.5, a culmination of nearly two years of work. The release is jam-packed with some huge new features, but the one everyone’s excited about is “merge tracking”.

Merge-tracking is when your version control system keeps track of how lines of development (branches) diverge and re-form together. Historically, open source tools such as CVS and Subversion haven’t done this at all; they’ve relied on “advanced” users carefully examining history and typing arcane commands with just the right arguments. Branching and merging is possible, but it sure ain’t easy. Of course, distributed version control systems have now started to remove the fear and paranoia around branching and merging—they’re actually designed around merging as a core competency. While Subversion 1.5 doesn’t make it merging as easy as a system like Git or Mercurial, it certainly solves common points of pain. As a famous quote goes, “it makes easy things easy, and hard things possible.” Subversion is now beginning to match features in larger, commercial tools such as Clearcase and Perforce.

My collaborators and I are gearing up to release a 2nd Edition of the free online Subversion book soon (and you should be able to buy it from O’Reilly in hardcopy this summer.) If you want gritty details about how merging works, you can glance over Chapter 4 right now, but I thought a “nutshell” summary would make a great short blog post, just to show people how easy the common case now is.

  1. Make a branch for your experimental work:

    $ svn cp trunkURL branchURL
    $ svn switch branchURL

  2. Work on the branch for a while:

    # ...edit files
    $ svn commit
    # ...edit files
    $ svn commit

  3. Sync your branch with the trunk, so it doesn’t fall behind:

    $ svn merge trunkURL
    --- Merging r3452 through r3580 into '.':
    U button.c
    U integer.c
    ...

    $ svn commit

  4. Repeat the prior two steps until you’re done coding.
  5. Merge your branch back into the trunk:

    $ svn switch trunkURL
    $ svn merge --reintegrate branchURL
    --- Merging differences between repository URLs into '.':
    U button.c
    U integer.c
    ...

    $ svn commit

  6. Go have a beer, and live in fear of feature branches no more.

Notice how I never had to type a single revision number in my example: Subversion 1.5 knows when the branch was created, which changes need to be synced from branch to trunk, and which changes need to be merged back into the trunk when I’m done. It’s all magic now. This is how it should have been in the first place. 🙂

Subversion 1.5 isn’t officially released yet, but we’re looking for people to test one of our final release candidate source tarballs. CollabNet has also created some nice binary packages for testing, as part of their early adopter program. Try it out and report any bugs!

Banjo trade-o

Posted by on Sunday, 4 May, 2008

Remember that awesome folding travel banjo I bought a year ago? It was really cool, but I traded it away for something better.

My original itch was the fact that I was flying to California (and other places) at least five times per year, and wanted to be able to join in jams in other cities. It’s really nervewracking to carry a banjo on a plane — usually the attendants will let you store it in the coat-hanging closet, but you live in constant fear of being forced to “gate check” the thing into the bottom of the plane. And that means burly men throwing the thing around. You can fill your hardshell case with bubble wrap all you want, but there are still a lot of horror stories out there. So the Tranjo was perfect: the neck just popped off (with strings still attached!), and the whole thing fit in a backpack. I went through airport security five times last year before anyone even noticed I had a banjo in my bag — it only got searched on the 6th flight. Great peace of mind!

Unfortunately, the Tranjo had one big drawback: it was too quiet. I’d take it to jams and couldn’t even hear myself playing. The instrument was great for practicing quietly in hotel rooms, or playing solo around a campfire (which I did once)… but that’s it. No group jamming. So, I stopped carrying it with me on trips, and discovered it was easier to just ask friends to lend me banjos on the other side. Turns out there are several Googlers in Mountain View who have banjos I can borrow. 🙂

Thus, I decided to trade in my Tranjo for a really nice “traditional” open-back banjo. It’s a beautiful, light-weight thing, with a rock maple rim and mahogany neck. It sounds great, and is perfect for old-time “clawhammer” frailing. (Clawhammer is a whole different school of banjo-playing that doesn’t involve picks at all—the music pre-dates bluegrass by centuries, long before the bluegrass-heads added resonators to make banjos louder.) The banjo is made by a single artisan in Michigan, Bart Reiter. So now I have my big-ass resonator banjo for bluegrass jams, and my smaller (less expensive) open-back banjo for camping, car trips, and practicing at my office. It’s a joy to play!

(Pictures below are taken from Turtle Hill Banjo’s website.)