Serious birthday dining

Today is Diane’s birthday, and so, as usual, we’ve invited some friends over for dinner and New Year’s Eve TV-watching.

Diane does most of the cooking (somehow, this seems unfair, but no one ever said life was fair); she made “Michelle’s Chicken” (from the IBM Research cookbook), Butternut Squash with Ginger, and Amaretto Carrots, all of which were delicious.

I made dessert; at Alwin’s recommendation, I made the “Simple Chocolate Sheet Cake” from America’s Test Kitchen. But, rather than make the Creamy Milk Chocolate Frosting that went with it, I chose Hershey’s “Especially Dark” frosting on the theory that a dark chocolate cake deserves dark chocolate frosting (that, and the fact that I’d’ve had to buy a whole bottle of Karo Syrup for two spoonfuls if I wanted to do the milk chocolate frosting). The consensus at the table was that this was a good decision — even Sam, who’s not a chocolate person, had a slice (though he didn’t have seconds, so I failed to convert him). I inadvertently modified the frosting recipe by omitting the vanilla (the phone was ringing a lot as I was making the frosting), but no one seemed to mind.

The diet starts tomorrow.

Happy New Year!

Game On!

The Tech Museum usually has a special exhibit; currently, it’s Game On, which was actually mounted by the Barbican Museum in London. But it’s very appropriate for Silicon Valley, since it’s an interactive history of the video game, both arcade and home versions. I knew I wanted to see it, but hadn’t gotten around to suggesting it until today (partially motivated by realizing that the exhibit closes Monday). So we spent the afternoon at the Tech.

Well, Jeff and I did. Diane got tired of the exhibit pretty quickly and went across the street to the San Jose Museum of Art, while Jeff and I enjoyed the exhibit. Especially playing the old games, like Pong and Spacewar and Space Invaders. I remember losing many quarters to those during college, but here, they were free. And I was able to compete with him moderately well, unlike the case with newer games (they had plenty of those, too, but they all blur together in my mind).

After an hour or so, we’d played all of the interesting games, so we joined Diane at the art museum. We took a quick look at the downstairs exhibition, Visual Politics, and then caught up with her on a small docent-led tour, just as they were starting on the Selections from the Permanent Collection. Touring with a docent was a definite improvement over wandering around independently — she asked us questions and forced us to interact with the works on display, instead of just looking at them (or, worse, reading the descriptions adjacent to the works and not really looking at the art itself, which I’ve been known to do). After the tour, Diane went to the museum shop and Jeff and I visited Sandow Birk’s Divine Comedy, which is a retelling of The Divine Comedy in images set in Los Angeles, San Francisco, and New York. Well worth viewing.

From there, it was a quick walk to Ben and Jerry’s, and then home. Not a bad way to spend what was, effectively, the last day of vacation (we have Monday off, but Jeff doesn’t, so we’ll be getting up at a ridiculous hour to get him to school on time. *sigh*).

Shabbat Shalom!

The movies are too popular for me

I had hoped to see several movies during this break. So far, the grand total is zero. We actually tried to go see either King Kong or Harry Potter 4 yesterday, but by the time we got to the theater, the first available showing was a couple of hours away. And, while we did need to be out of the house for a few hours, we didn’t need to be gone quite that long. So we went to Barnes and Noble instead, where I did some research for an upcoming trip to Finland (brrr!) and read a book which I’d seen while we were in England this summer: A Year in the Merde. Time magazine’s review sums it up well. I enjoyed reading it, but I’m glad I didn’t actually buy it.

Today, after working out at the JCC, I’ve spent far too much of the day dealing with financial records and catching up on my Quicken duty.

What I haven’t done today is write a single line of code. I’m waiting for Userland to set up the CNAME so that gets you to this blog. Then I’ll look at the 404 log and see if there’s any traffic worth redirecting programatically; I also plan to create a custom 404 page as suggested by the Sacramento Web Developers SIG, which will point people to the popular places on the site.

But that’s all for tomorrow; for tonight, it’s time to write those last minute tax-deductible checks….

Migrated, with minimal breakage

I’ve just finally transferred most of the content of my old blog, Defenestration Corner, to this blog. I wound up writing a bunch of bad Python code to do much of the work, but still had to do quite a bit of manual cleanup (and someday, I may yet get around to categorizing the posts I transferred). I lost all the comments to the blog in the process; there are few enough (and many of them were spam, anyway) that I’ll look at them by hand rather than bother to try to write yet more single-purpose code.

One of the areas which caused me the most trouble was my use, in the early days, of a non-empty posting to hold a picture. I finally decided that those few comments were not worth the effort and tossed them, changing the link to the picture itself instead of the posting.

I also learned, yet again, to Keep It Simple, Stupid. My original plans, months ago, involved writing wonderfully clever code to go through the old site, grabbing each posting, examining it to see if it had any references which needed changing, and, if so, finding the target posting and updating it. This would have involved a stack, worrying about circular references, and many other perils. I eventually (months later) took a simpler path; I made a first pass over all of the articles, capturing essential information about them, such as the date as rendered by Manila (rather than trying to figure it out from the UTC date, sometimes badly-formed, passed back through the Manila SOAP interface into Python) and the title of the article. I used the date and title to create a slug for WordPress; I probably didn’t use the same algorithm WordPress would have used, but it didn’t matter.

After that, it was fairly easy to go through the rendered, content-only version of each article (thereby letting Manila resolve its internal “shortcuts”), find all the internal references, convert them to the new version (or, for images, just go to the underlying image), and use the MySQLdb Python module to directly insert the articles into the database on

I ran into a few problems where Manila did, ummm, odd things; rather than program around them, I just manually fixed up the results. And I’ll probably be doing more manual fixups later.

I still have to arrange for a redirect from to this site, and I still will have to convert from the Manila forms (like /discuss/msgReader$nn) to the renamed postings here, but that’s fairly simple. I hope.

GTD and GMail

Tessa Lau wrote a comment to my posting on the joys of an empty inbox, asking whether Gmail and Getting Things Done might not be incompatible, since Gmail discourages filing, while GTD discourages leaving things in one’s inbox (physical, computer, or metaphorical).

I don’t think they’re incompatible. I archive things in GMail to get them out of my inbox (and therefore, out of my face) unless I expect to deal with them almost immediately. The only filing I do in GMail is to automatically move some mailing lists into their own folders, never letting them into the inbox at all — and to be honest, I’m not sure that’s really a good idea for most of them, because then I’m tempted to let them sit. For everything else, I rely on search.

That’s actually fairly similar to the way I work in Lotus Notes, too; I have a few folders I use for active projects or obviously-related things (all of my electronic paystubs get filed in their own folder, for example), but most of my stuff gets “filed” in “Miscellaneous” (which could just as well be named “not the inbox”) and I rely on search to find anything I need. Keeping my Notes inbox empty is a harder task than my GMail inbox; I haven’t looked at it since I left for vacation nearly two weeks ago, and I dread what I’ll find when I do look.