Author Archive

New VW

Posted by on Thursday, 31 December, 2009

I wonder if it’s possible to post about a new car without boring readers too much. I mean, I’m not a Car Person, I never have been. I’ve always viewed them as boring utilitarian objects. In a perfect world, I wouldn’t own one at all; I capitulate to necessity, however. At least we’re only a one-car family. And at least we strive for getting super-energy-efficient models.

My first car was a 1996 Honda Civic. I bought it because everyone told me Hondas have this amazing reputation for lasting forever. It died in 2002 from transmission problems with only 6 years and 62K miles. “Must be a freak lemon”, my friends suggested. So then we bought a first-generation 2003 Civic Hybrid. Pretty much the same car, except with better mileage. And guess what? This month it also crossed the Styx. Transmission problems. 7.5 years old, 73K miles. “But my friend’s Honda has 150K miles on it!”, my buddies shout. Yeah, yeah, great. No more Hondas for me.

The thing is, with two very small kids, we were overflowing the Civic anyway. The trunk was never big enough for kid crap. No way to fit an adult between the two kid seats in the back. My wife and I resigned ourselves to getting a wagon. The thing is, how do you reconcile a wagon-ish vehicle with efficient gas usage? There’s no such thing as a “hybrid” wagon out there.

We tried the Prius, and it was nice, but not big enough. Certainly bigger than the Civic’s trunk, but not big enough. We also looked at a Volvo wagon. We loved the safety ratings and built-in kid booster seats (the seat cushion just pops up… why doesn’t every car have that feature??), but the MPG was totally generic. After driving a Hybrid for years, a rating of 30/20 MPG feels like a gas-guzzler.

So ultimately, we settled on a VW Jetta diesel wagon. Yes, you heard right: diesel. Diesel isn’t dead in the USA, as so many thought. Rumor is that California passed some super-strict emission laws a couple of years ago in an attempt to outlaw diesel cars and encourage electric ones. Volkswagon’s response was to go off and invent some crazy new diesel engine with “ultra low” emissions. It not only passes the California standards, it gets 40/30 MPG. That’s darn close to the 45 MPG we were getting with the Hybrid car! No more funny sulfur smells either, or overly-loud noise. And it’s a Turbo engine too, so, well, it actually has real pickup… something I forgot about after years of driving a Hybrid.

It seems silly to say this, but this is the first time I’ve actually been excited about a car. There’s something about this vehicle that goes beyond the stark utilitarianism of my Hondas, something which makes me want to be a “car person”. It’s like they want to make driving fun, as if you should be excited to get in the car. They’ve thrown in all these little details that make me giggle or say “ooh” when I notice them:

  • heated seats
  • heated windshield wipers and side mirrors
  • leather steering wheel
  • a 5.5′ sunroof; the whole roof is glass!
  • fancy computer between the tachometer and speedometer with adjustible stats
  • satellite radio
  • 6 CD changer
  • direct iPod connection, driven through touch-screen
  • ability to play music right off an sd-card
  • rear blowers for the kids
  • an actual 115V power outlet for “normal” devices
  • bluetooth pairing with my phone, OMG!
  • has both automatic and manual transmissions

New VW diesel wagon

My guess is that a lot of this stuff is now standard on most new cars, so many readers aren’t impressed. But that’s sort of the magic of the car-buying process. You buy a car, then live stuck in that year for most of a decade. When you finally buy a new car, it’s like a sudden time-travel jump forward: “ooh, so this is what cars have been doing for all these years.” For example, in 2002 cars all had in-dash CD players. Now all cars seem to have giant computer touchscreens. Still feels Buck Rogers to me!

I know my wife isn’t as thrilled; she would much prefer the ultra-simple user interface of the Volvo. But as a techie, I love these details. I feel like I’m climbing into a fighter-jet cockpit! I love that when I start the car, it automatically bonds to the phone in my pocket. Incoming calls make the whole car ring, I push a button on the steering wheel, and do the whole conversation through the sound system. (Yes, every car does this now; but it’s still FROM THE FUTURE I tell you!) The transmission is freaky too. It’s automatic, but then if you flip the shifter to the right, it “emulates” a stick shift. There’s no clutch, but you just tap the stick up or down to force the car to shift gears. If I knew how to drive stick, this would be so cool. 🙂

My only slight disappointment is with the sd-card feature. I bought a 32GB sd-card thinking I could just dump all 25GB of iTunes music onto it, then leave it permanently in my dashboard. No need to use CDs ever again. But whoops, no dice: the computer insists on scanning all of the files on the card and storing the list in memory, and the manual states that the card can only contain a maximum of 2048 mp3 files. So it only scans the first 8GB of files, then shows you a vastly incomplete list of albums. Super lame. I guess I’m going to have to sell my 32GB card and split the collection into four 8GB cards.

Whatever the case, this is the first time I’ve ever been excited about a car. There’s just some sort of indescribable ethos about the VW that excites me. Whereas my Hondas always screamed “I’m here because sometimes you need to drive, sorry; I hope to make driving tolerable.”, the VW screams “woo, let’s have fun driving!” No, I’m not being paid by VW to say this. 🙂

The Year in Portraits

Posted by on Sunday, 6 December, 2009

I’ve been getting increasingly more serious about photography over the last two years, and I’m not just talking about the expense of my equipment. 🙂 I’ve started reading photography books and blogs, and have gradually discovered I have real passion for portraiture. Perhaps it’s just a new outlet for creativity (since it’s been essentially impossible to write theater music since the kids were born)… but I also harbor a secret fantasy of becoming professional someday, perhaps when I retire.

In any case, I went through the last year (or two years, really), and pulled out my favorite portraits into a single album. I’ve organized them into roughly four categories: pets, kids, family, and friends. I think you’ll enjoy this collection; there’s definitely an emergent style in there somewhere.

Click to view. I recommend choosing ‘slideshow’:

Favorite Portraits

Growing Your Own Mushrooms

Posted by on Sunday, 22 November, 2009

On the last farmer’s market day of the year (around Halloween), we bought a Grow-Your-Own-Mushrooms kit from the farmer we usually buy mushrooms from. Great novelty gift, to be sure. We couldn’t resist.

It’s a medium-sized box that’s really heavy, a solid 30lb brick of soil which is pre-seeded with mycelium. In case you missed Mycology 101, mycelium is the white stringy mat of threads which is the real fungus itself. When mycelium threads intersect from different organisms, they combine DNA and produce mushrooms as a ‘fruit’; the mushroom then releases spores from its vents (on the bottom of the cap) to spread new mycelium. In a nutshell.

(For the pictures below, click to get the bigger photo)

From Mushrooms

Opening the box, you can see the mycelium throughout the soil:

From Mushrooms

…just add some peat moss to the top, water the whole thing, then wait 2 weeks.

From Mushrooms

On day 14, things started to get interesting:

From Mushrooms

Day 16:

From Mushrooms

Day 19:

From Mushrooms

Day 21, time to harvest! The cap’s diameter is twice the size of the stem length.

From Mushrooms

Here’s a tiny youtube video of us ripping up the first big one:

Picking the shroom

…which we then ate in an omelette. Yum. Many more mushrooms to come over the next month.

1st Place in the Interactive Fiction Competition

Posted by on Wednesday, 18 November, 2009

Jack and I are giddy with glee, as our recently released text adventure just won 1st place in the 2009 Interactive Fiction Competition. As someone who’s been tracking the community of IF authors for 15 years, this is a bit of a fantasy come true. Most of the really accomplished, famous authors didn’t enter games this year (or released games outside the competition), thus making room for a new generation of authors. We owe the old-timers big thanks for inspiring us, writing great tools, and giving us a chance to shine!

If you haven’t played the game yet, go do so! Cuddle up with a laptop and cup of cocoa. You can get the game (and the source code too) from the main main website we set up. You can file bugs there too.

Note: My one frustration is that genre seems to have a bad reputation among gamers. The natural-language parser is mocked for being overly primitive and unfriendly to casual players. Paraphrased (from a friend):

The creature approaches!

> swing sword
What do you want to swing the sword at?

> creature
What about the creature?

> attack creature
What do you want to attack it with?

> the swod
I don't understand "swod".

> sword
What do you want to do with the sword?

I'm sorry, the creature has eaten you.

In reality, enthusiasts of text adventures consider the primitive parser to be a feature, not a bug. It expects commands of the form “verb noun” and only understands about 30 verbs. So it’s an easy interface to master; experienced players know them all by heart. If you haven’t played text adventures before, be sure to have this crib sheet with you, as it explains the sort of commands most games understand.

And now the obligatory post-mortem on the experience, taken from a post I made on the newsgroup yesterday.

  1. The methodology of “write the transcript first” really works. Emily Short mentioned this technique on her blog, and I’m here to testify. As a programmer, I’m always tempted to start fiddling in I7 in technical ways, wondering if I can implement some clever algorithm — and then later trying to figure out a way to justify its use. This is not the way to write a good game. Instead, come up with a GOOD STORY first (or partner yourself with a great writer like Jack), and write out the entire hypothetical transcript first. Think of it like a screenplay: first conceive the whole experience from the user’s point of view, and decide if it’s a good script. If it is, then worry about the implementation. (For the curious, the original transcript Jack wrote — before a single line of code existed — is over here.)
  2. Keep the player captivated at all times! We goofed by requiring too much repetition of mundane routine for the first half of the game. IF geeks and programmers generally had the patience to muddle through (or noticed the status bar changing, and were intrigued about the double-meaning of things). But at least half of the players out there — including some beta-testers — rightfully had no patience for such a thing. “Just let me do something INTERESTING already!” Many people simply weren’t able to delay gratification (or keep faith) as long as we’d hoped. Especially when you have 20 other games standing by, ready to test. Given the blog reviews, we were convinced we were headed right for the Banana of Discord. Emily’s review and Jim Aikin’s reaction were the canonical example of this. We’ve learned our lesson here.
  3. Avoid linearity. This was my fear all along, when I first read Jack’s transcript… particularly in the second half of the game. I liked the story enough to overlook it, but reviewers correctly called us out. Killing invading bots may be fun, but this still ain’t no Photopia. In the future, we need to really construct some non-linear mid-game plot flow.
  4. Write a hint system.This seems to be the most requested feature, and I was surprised. I grew up playing Infocom games, when games were supposed to take weeks to solve and ‘walkthroughs’ were expensive InvisiClues you had to mail away for. Ordering the walkthrough was a badge of shame, an admission of defeat. These days, the culture seems to have changed quite a bit. People not only expect every game to have a walkthrough, but they check it after being stuck for 10 minutes (!) Maybe that’s just the environment of the Comp (when people are in a rush to “get through” quickly and judge), but clearly an in-game hints would make the game much more accessible to a wider audience. Perhaps fewer people would have run screaming from the repetition. 🙂

Early review of Canon 5D Mark II

Posted by on Saturday, 7 November, 2009

I just upgraded from a Canon 30D DSLR to a 5D Mark II. Here are my preliminary thoughts after a day of use, as someone who’s never owned a full-frame DSLR before.

The first and most obvious thought I have is: what unbelievable clarity. It seems to come from a combination of a massive LCD on the back with 4x more resolution and seeing MUCH more of the world through the viewfinder. It’s like getting a new set of eyes — I had no idea all this stuff was out there. I also feel less removed from the scene, more immersed. Looking through the old 30D now feels like peering through a tunnel.

The next big shock is that my lenses are all different now. Not having the 1.6x zoom factor is a big deal. I used to have a 30mm prime (effective 48mm), but usually rely on my 24-70mm lens as my main “walk around lens”, because it was effectively 38-112mm. Now my 24-70 is *really* 24-70, and it’s amazing to see how truly wide-angle 24mm really is. I even get a bit of moving-fisheye effect. Considering I have very little interest in landscape photography (and mostly focus on portraits), the whole 24-50mm range isn’t very interesting to me. I find myself either using the ‘nifty 50’ for simple creative stuff, or using my 70-200 as the walk-around lens. What a shift!

A scary thing is that RAW file size has gone from from ~8MB to ~24MB. It’s no longer painless to access my photos over a NAS drive via 802.11N wi-fi. I’m clearly going to have to move the whole photo library to a ‘miniature’ 500GB disk plugged directly into USB, and then be sure to back up this disk alongside my NAS disk.

There’s a nice bevy of UI improvements. It’s clear that Canon knows their target audience is professional photographers, since the cheesy “automatic modes” (portrait, sports, landscape, etc.) are gone from the dial. Fair enough. But I’m baffled as to why they added a dedicated button on the back to flip “picture modes”, which are modes that strategically modify the hues and saturations of photos as you take them. Does anyone actually use them, even in older generations of this camera? Everyone I’ve ever met turns off the feature altogether (selects ‘neutral’ or ‘faithful’ modes). We all adjust the colors in post-production anyway. The whole feature smells of the automatic modes they’ve already nixed.

The two party tricks of this DSLR are the live-view feature (just like point-n-shoot cameras) and the ability to record HD 1080p video at 30 frames/sec. Pretty impressive stuff. I doubt I’ll ever use the live view mode, and I’ve not quite figured out how to shoot video well. Of course, when 3 minutes of video takes up a whole gigabyte of space, I’m going to be conservative with it!

But still, if somebody said, “hey, your DSLR now has live-view mode on its rear LCD”, what would you expect the interface to be? Just a button that flips it on and off, right? Sure. What else would it possibly be? Hmmm. There’s definitely a dedicated button to activate the feature, but pushing the button seems to convert the camera into an entirely different beast. Suddenly controls don’t work the same, you have to choose one of three alien autofocusing modes (including one which does continuous facial recognition!). Making it autofocus actually momentarily *interrupts* the live view. Everything seems weird, and even weirder when shooting video. I’ve still not figured out how to make it continuously autofocus during video recording — maybe it’s not possible at all. I need to study the manual more. (But the video quality is VERY impressive nonetheless. One less gadget to carry on outings with kids!)

Overall, I’m amazed. But as with any new tool, I’ve got a lot of learning to do.

Subversion moving to the Apache Software Foundation

Posted by on Thursday, 5 November, 2009

It’s no longer a secret, but now a public press release.

Not that this should shock anybody, but in case you didn’t know, now you do. The overlap between Apache and Subversion communities has always been huge since day one — with essentially identical cultures. We’ve talked about doing this for years. It means we can finally dissolve the ‘Subversion corporation’ and let ASF handle all our finances and legal needs.

“Why didn’t this happen sooner? Why now?”, you may ask. There are several answers.

First, the intellectual property was scattered. Collabnet owned a huge chunk of it, but so did other corporations and a large handful of other random volunteers from the internet. The ASF requires software grants to join, and we didn’t have our eggs in one basket.

Second, when the Subversion project first developed legal needs a few years ago — and also started receiving money from Google’s Summer of Code — it was relatively easy to set up our own non-profit. It gave us a place for money to live, and an entity to defend the Subversion trademark from a number of abusive third parties.

But over time, running our own non-profit turned out to be an awkward time suck. So about a year ago I started focusing on collecting Contributor License Agreements (CLAs) from both individuals and corporations, including Collabnet itself. Once the IP was all concentrated in the Subversion Corporation, it freed us up to move to the ASF of dump all of the bureaucracy on them. 🙂

So this announcement is also a bit of a point of pride for myself. I’ve long stopped working on Subversion code, but I wanted to make sure the project was parked in a good place before I could really walk away guilt-free. I now feel like my “work is done”, and that the ASF will be an excellent long-term home for the project. This is exactly what the ASF specializes in: being a financial and legal umbrella for a host of communities over the long haul. The project is in excellent hands now.

Of course, Collabnet has always been the main supplier of “human capital” for the project in terms of full-time programmers writing code, and that’s not going to change as far as I can see. Collabnet deserves huge kudos for the massive financial investment (and risk) in funding this project for nearly 10 years, and it seems clear they’re going to continue to be the “center” of project direction and corporate support for years to come. And this pattern isn’t uncommon either: the Apache HTTPD Server itself is mostly made up of committers working on behalf of interested corporations.

What’s interesting to me, however, are all the comments on the net about how this is a “death knell” for Subversion — as though the ASF were some sort of graveyard. That seems like a very typical viewpoint from the open source universe — mistaking mature software like Apache or Subversion (or anything not new and shiny) for “old and crappy”. In my opinion, the open source world seems to ignore the other 90% of programmers working in tiny software shops that utterly rely on these technologies as foundational. Even though I’ve become a Mercurial user myself, I can assure you that these other products aren’t going away anytime soon!

Hm. I smell another talk here.

New game released!

Posted by on Friday, 2 October, 2009

What did I do with my summer?

Answer: helped a friend write a new text adventure game. After extensive beta-testing on our friends, we’ve released it to the public this week and submitted it to the yearly Interactive Fiction Competition to compete against twenty-something other new games.

The whole experience was really fun. Jack normally writes brilliant D&D adventures, and bunches of us travel the country to gather once a year and play them for a day. This year Jack decided to write the adventure as a solo text-adventure concept. Emily Short has written quite a lot about methodologies for writing a text adventure, and Jack used the “transcript fully” method: he started the entire process by emailing me a complete script — that is, a hypothetical start-to-finish transcript of what the entire game would look like to somebody playing it. The plot and puzzles were fantastic, so I got excited and volunteered to help him code it.

Over the next few months, I did help with some coding, but I mostly played ‘product manager’ and ‘editor’ roles. Jack has huge ideas, and I helped him edit them down, sculpt the shape of the plot, sanity-check puzzles and assumptions, manage beta-testers. As my buddy Andre would say, “everybody needs a friend who can be an ass-filter.” I also forced us to use standard software engineering tools and discipline: a real bug tracker, version control, tagging, etc. (Writing interactive fiction is traditionally a solo sport, so I think the whole experience of applying traditional collaborative software-development processes was particularly interesting.) All of our collaboration took place (of course) on this Google Code Project. We’ve released the source to the public under a Creative Commons license; however, I don’t recommend you start reading through it until you’ve played the game first. Spoilers, you know. 🙂

To play the game:

If you’ve never played a text-adventure before, it takes a little while to get used to the paradigm and limited parser-syntax. The IFComp website has some great pointers which introduce the genre, but here are my nutshell tips:

  1. Always type commands in the imperative: “look at dog”, rather than “I want to look at the dog”. Your best bet is the form verb noun.
  2. Examine everything to get a better understanding of your surroundings and objects available to you (abbreviation is “x”, as in “x chair”)
  3. In this particular game, you can learn a lot of backstory by typing remember THING.
  4. If you’re stuck, try typing “help”.
  5. Save your game often (“save”), so you can resume progress whenever you wish (“restore”).

Foundation: the short version

Posted by on Tuesday, 29 September, 2009

I’ve been reading Asimov’s original Foundation trilogy, and have almost finished it. (Yes, I can’t believe I haven’t read it before!) I love the fact that the novels are essentially a series of political dialogues, and all of the action happens completely offstage. Here’s my quick parody, written during a moment of boredom.

The two men faced each other quietly in the metallic room, each pensively smoking their rare cigars. Outside, hundreds of warships screamed in the dead of space, blowing each other to smithereens and ejecting boiling flesh into the void. The fate of all human civilization once again hung the balance.

“It appears yet another Crisis is upon us, as was predicted.”

“Yes, you *would* want me to think that, wouldn’t you?”

“Would I now? Are you sure?”

“Don’t play your mind games with me, I’ve already anticipated your latest move. Did you really think I was so gullible as to allow my ships to attack yours first?”

“Galaxy! Well apparently you just did.”

“You only *think* I did. You see, I’ve been leading you all along, making you think I would, but that’s only because you didn’t know that I already knew of your plan.”

“Precisely, which is exactly why you fell into my trap.”

“Excuse me?”

“Indeed! I knew you wouldn’t actually go where I was hoping you would, and thus I coaxed you into doing exactly what I wanted all along. You’ve been my pawn from the beginning.”

“And that’s exactly what I KNEW you would say, because I WANTED you to think I was your pawn! That’s why I have 50 soldiers outside this door ready to kill you the moment I nod my head. You miscalculated my genius once again, thinking you were in control.”

“Ah, but YOU underestimated ME, don’t you see? This ENTIRE CONVERSATION has already been predicted by Seldon himself, and my top-secret troop of 300 has been sitting here for 20 years waiting for this exact moment, waiting to do nothing but surprise you. I’m afraid they’ve already destroyed your 50 soldiers outside the door and are now waiting to arrest you personally.”

“But isn’t that just too obvious? I knew you’d plan such a silly thing, from my earliest days in service. I made it my personal mission — 20 years ago — to make sure your secretive squad was destroyed before they were even established. Their entire existence has been a decades-long illusion performed only for your personal deception. I’m afraid you’re powerless.”

“Powerless, that is, to withhold the truth from you any more. Your entire LIFE among the Galactic Empire has been one gigantic simulation, something I just implanted via insidious mind probe. The truth is that you’re a lifetime resident of an insane asylum in Bloomsbury, New Jersey. Tea time is over and visitors are now going home. Goodbye, sir.”


New Theme.

Posted by on Tuesday, 15 September, 2009

…because I got tired of the old theme. I’m truly impressed with the community of designers around WordPress! So many themes, widgets, plugins. What an amazing ecosystem.


Posted by on Tuesday, 1 September, 2009

(Apologies to the original poster. I noticed the ‘name’ line of the git manpage today and got inspired.)

From: (Ben Collins-Sussman)
Subject: The True Path (long)
Date: 01 Sep 09 03:17:31 GMT
Newsgroups: alt.religion.version-control

When I log into my SunOS 4.2 system with my 28.8kbps modem, both svn
*and* hg are just too damn slow. They print useless messages like,
"Type 'svn help' for usage" and "abort: There is no Mercurial
repository here". So I use the version control system that doesn't
waste my VALUABLE time.

git, man! !man git

GIT(7) Git Manual GIT(7)

git - the stupid content tracker

git [--version] [--exec-path[=GIT_EXEC_PATH]]
[--bare] [--git-dir=GIT_DIR] [--work-tree=GIT_WORK_TREE]
[--help] COMMAND [ARGS]

Git is a fast, scalable, distributed revision control
system with an unusually rich command set that provides both
high-level operations and full access to internals.


Computer Scientists love git, not just because it comes first
alphabetically, but because it's stupid. Everyone else loves git
because it's GIT!

"Git is the stupid content tracker."

And git doesn't waste space on my Newton MessagePad. Just look:

-rwxr-xr-x 1 root 24 Oct 29 2009 /bin/git
-rwxr-xr-t 4 root 1310720 Jan 1 2005 /usr/bin/hg
-rwxr-xr-x 1 root 5.89824e37 Oct 22 2001 /usr/local/subversion/bin/svn

Of course, on the system *I* administrate, hg is symlinked to git.
svn has been replaced by a shell script which 1) Generates a syslog
message at level LOG_EMERG; 2) reduces the user's disk quota by 10GB;
and 3) RUNS GIT!!!!!!

"Git is the stupid content tracker."

Let's look at a typical novice's session with the mighty git:

$ git add *
fatal: Not a git repository

$ git checkout
fatal: Not a git repository
Failed to find a valid git directory.

$ git git
git: 'git' is not a git-command. See 'git --help'.

$ git --help

$ git over here
git: 'over' is not a git-command. See 'git --help'.

$ git "eat flaming death"

Note the consistent user interface and error reportage. Git is
generous enough to flag errors and pack repositories as dense as
neutron stars, yet prudent enough not to overwhelm the novice with
useless details. If users REALLY want to know what git commands are
available, a simple 'man git' will reveal them all, sheer genius
in its simplicity:


"Git is the stupid content tracker."

Git, the greatest WYGIWYG revision control system of all.


When I use a version control system, I don't want eight extra
MEGABYTES of worthless HTTP protocol support. I just want to GIT on
with my coding! I don't want to subvert away or mercurialize!
Those aren't even WORDS!!! GIT! GIT! GIT IS THE STUPID!!!


When Linus, in his ever-present omnipotence, needed to base his patch
juggling habits on existing tools, did he mimic svn? No. Hg? Surely
you jest. He created the most karmic version tracker of all. The
stupid one.

Git is for those who can *remember* what project they are working on.
If you are an idiot, you should use subversion. If you are
subversive, you should not be mercurial. If you use GIT, you are on