Author Archive

My Folding Banjo

Posted by on Friday, 16 February, 2007

Folding? Yes, you heard right.

I fly around so much now (5 or 6 times a year, at least), that’s it’s become an annoyance to leave my banjo behind. I hate spending a week in North Carolina or California with no opportunity to practice. I did manage to carry my mega-banjo into the cabin of an airplane once; the very nice attendants let me stow it in the coat closet. But the thing is crazy heavy to lug around an airport, and you can’t always depend on kind attendants. There’s always that looming risk of some jerk forcing you to check the instrument, and no hard-shell case can withstand the abuse of a baggage guy throwing your instrument 20 feet into a hold.

So the solution? Sell my first ‘beginner’ banjo, and buy a travel banjo. This thing is tiny and light (only 5 pounds!), yet has a full size banjo neck. This is a huge improvement over other travel banjos which are perfectly to-scale, but look like they’re sized for a preschooler — I don’t want to play ukelele, I want to play banjo.

What’s truly amazing about this banjo is that after unscrewing a bolt, the whole neck just pops off and lays across the body, with all the strings still attached. This allows the thing to compact down into your gym bag or backpack for easy carry-on. And it only takes a moment to reassemble — no restringing necessary!

I love this thing. It has a smaller, more muted sound, but it still feels like a banjo and sounds like one. The tuners are weirdly located inside the drumhead, but hey, they work!

Monitoring Subversion

Posted by on Thursday, 8 February, 2007

A confession: for many months now, I’ve been using the Google Alerts service to help me tune into general net buzz about Subversion. If you haven’t tried the service, I really recommend it. It’s like having a personal PR agent sending you updates about whatever topic you want. Each day, I get an email from Google showing all the latest web pages it’s found that mention all the words “subversion”, “version”, “control”. What I mostly see are blogs talking about people’s experiences with Subversion, but that’s still really interesting stuff. If you have your own pet topic that you want to monitor, give it a try.

In any case, allow me to make one bold statement to the public: the name of the system is “Subversion”, not “SubVersion”. There is no capital V, and there never has been. It’s kind of amazing to me how many times I see “SubVersion” written in these alert-emails.

Our “Poisonous People” Talk…

Posted by on Wednesday, 31 January, 2007

When Fitz and I were visiting Google Headquarters in Mountain View last week, we gave a tech-talk to the public… one which we given many times before at conferences. Only this time, it was recorded and posted on Google Video. Enjoy!

The Spatula System

Posted by on Sunday, 14 January, 2007

My good buddy Ben Gross is researching group dyamics, and asked me if there was a good writeup anywhere of the “Spatula System” that my friends and I have been using to track food credits. We couldn’t find one, so I agreed to briefly blog about how it works.

It all started back in 2000, when I worked in a small office with my friend Karl Fogel — just the two of us. Every day we’d go out to lunch and take turns treating each other. Lunch was always about $10 per person, so on Monday I’d spend $20 for both of us, on Tuesday Karl would spend $20, and we’d keep alternating like that. Eventually it got hard for us to remember whose turn it was to buy lunch each day, so we grabbed a spatula from the office kitchen, and kept it on our desks. Whoever had the spatula on his desk had to buy lunch that day. When we’d return from lunch, we’d simply move the spatula to the other person’s desk.

This worked for a year, but then we got a third person (Mike Pilato) in the office. We started moving the spatula in a circuit around all three desks, and we now spent $30 when it was our turn to treat the group to lunch.

Then we hit a snag.

What happens if somebody doesn’t come to work on a certain day? Does that person simply get away with only spending $20 on lunch? It didn’t seem fair.

So our response was to essentially reinvent the concept of currency. Our currency units were simply called “lunch points”, and each point was worth “about $10”. We started keeping track on a whiteboard of how many imaginary lunch points each person had. We all started at 0 points. If I treated Karl to lunch, then I’d gain 1 lunch point, and Karl would lose a lunch point. My positive currency total (+1) meant that “I was owed a lunch by someone” and Karl’s negative total (-1) meant that “Karl owed a lunch to someone.” If Mike then treated all of us to lunch the next day, he’d gain two lunch points, and Karl and I would each lose a lunch point.

What this currency system gave us was flexibility. It was now perfectly fine for random combinations of people to treat each other to lunch, in any order at all… as long as the points were all tracked. It also allowed us to pass debts around transitively: person A might owe person B a lunch, but person B might owe C a lunch, so in theory then, person A really owes C a lunch. Yikes! Intsead of trying to keep track of these specific debts individually, our currency system automatically allows person B to just ‘drop out’ of the system. Why? Person B starts at 0 points, goes to +1 when he buys lunch for person A, and then loses a point when C buys him a lunch. Voila, person B is back at 0 points, meaning he neither owes — nor is owed — by the community. And there was no need to track who specifically owed who.

So these days, we just keep track of points in a Subversion repository which you can browse. Anytime anyone treats any number of people to food, we check the file. Whotever has the lowest point total (typically negative points) ends up treating the group and gaining a bunch of points back all at once. By following this algorithm, debts tend to get equalized gradually over time. It’s pretty neat. (And of course, running ‘svn log’ gives us a complete history of shifting points!)

To be clear: I don’t think this system is particularly profound. As I already mentioned, we simply reinvented the idea of currency, and found a new appreciation for why it’s such a useful concept. It effectively anonymizes all transactions between people, yet still accurately tracks each person’s contribution to (and reward from) society.

What I Did on my Winter Vacation

Posted by on Tuesday, 2 January, 2007

Lots of things!

I spent a lot of time rolling on the floor with my son. That’s good.

I did a bunch of work on a new 2nd Edition of the Subversion Book, which is busy being updated to send off to O’Reilly in the spring. We’re not only updating it to cover Subversion 1.3 and 1.4 features, but doing a pretty big reorganization of the outline and topics as well. We’re also going to put a bunch of “best practices” recommendations into it, which people have been asking for.

I start experimenting with new features on my camera, which I discussed in a previous post. Lots of fun.

I finally finished my wife’s Cookbook Recipe Database, now online at last! It only took me four years and four complete restarts to get it done! First I wrote a bunch of homemade LAMP stuff (my own SQL stuff, my own python object model, my own CGI scripts…), but it turned into a huge mess. Then I tried Zope, but that was too complex for me. Then I tried Plone , which was great, but pretty much overkill. I wasn’t writing a content management system, just a simple web-based database. Finally I discovered Django, which is effectively “Python on Rails”. It was exactly the wheel I had been trying to invent way back in my first attempt! In a matter of an hour or two, I had crafted the whole database in some simple python declarations. Anyway, all the site needs now is some CSS, poor ugly thing.

I supercharged my banjo during the break too. After nine months of playing the one, I finally put new strings on the beast. And while on vacation in North Carolina, I discovered brass fingerpicks in a store (instead of the usual nickel ones)… as well as metal thumbpick, instead of the usual plastic ones. Finally, as a holiday gift I got a torque wrench that allows me to evenly tighten all the screws on my drum head to a precise tension. So between the tightened head, the brass picks, and the new strings, the banjo sounds even better than when I first got it. At last Friday’s jam, someone said it sounded “like a laser beam” from across the room. Woo!

Ooh, that’s raw.

Posted by on Sunday, 24 December, 2006

Ever since buying a Canon 30D last summer, I’ve been thrilled with the picture quality. My guilty admission, however, is that I’ve fallen down on the job of being a tech geek. I’ve barely read the manual, and only know how to make the camera do the most rudimentary things. I still use the camera in semi-automatic mode, whereby I choose an aperture (depth of field), and let the camera choose the shutter speed for me. Sometimes I follow up on the auto-focus with a bit of manual focus. Because I hate the built-in flash, in low-light situations I set the ISO to 800 or 1000 and then open up to f/2 or so. I also manually choose the white balance… but that’s about it.

This week, visiting inlaws in North Carolina, I had some downtime to really look at the camera again. I ended up buying a nice book which is both a introduction to photographic techniques in general, and a hands-on tour of my specific camera. I’m pretty happy with it.

Keep in mind, I’m not a complete photography newbie. I took a photography class in high school, and did lots of black & white shooting on an old 1980 Pentax ME-Super with an f/1.4 lens. I had to set the aperture and shutter speed manually, and the most the camera would do is blink a little LED light-meter at me, to tell me if I was over- or under-exposing. I wish the class had taught me something about the artistic side of photography (like theory of composition), but instead I spent the whole semester learning how to develop black & white film by hand, getting covered with smelly chemicals.

Anyway, my new book inspired me to do two crazy things: (1) turn on my camera’s auto-exposure bracketing feature, and (2) stop recording huge JPEG files, and switch to RAW files instead.

The auto-bracketing thing is neat. I push my button and get three pictures instead of one. I’m not sure I’m going to use it all the time… but I can see that if I’m really worried about getting a good photo, it’s a nice form of insurance.

The RAW file thing has left many impressions on me. First, I noticed that the camera displays the picture on its LCD faster, presumably because it’s not trying to do JPEG compression. Second, I noticed that the files are 9MB each, instead of 3MB. Yikes. Next, I’m hugely impressed with OS X: it just natively understands Canon’s raw (.CR2) format. I double-click on a file, and Preview.app displays it without fuss. (Alas, when I try to import my 30 .CR2 files into iPhoto, a few get in, but then the whole app crashes.) Finally, there is definitely a quality difference between JPEG and RAW. It’s immediately obvious when I open the photo, and especially obvious when I start zooming. No artifacts, no blurs anywhere. I’m sold!

I guess my next project is to actually learn to do something with RAW files. I don’t own Photoshop, so I gotta find some free (or Free) software to play with white balance, color temperature, and so on. I can’t see color very well, so this could get… interesting.

Geek Chic

Posted by on Saturday, 9 December, 2006

I love my new wristwatch. It’s cool.

No, really. It’s cool.

Sleeping Like a Baby

Posted by on Sunday, 3 December, 2006

Toddlers sleep anywhere. I’m always amazed. Here are some low-res photos from my phone.

In the car:

In the store:

In the shopping cart!

My Local Taqueria

Posted by on Saturday, 2 December, 2006

I love my local taqueria:

Oh noes! Application not responding!

Posted by on Wednesday, 8 November, 2006