Tuesday, December 02, 2008 
Bikes

I look out the window. Drizzling—not too heavy—I'll ride to work. Pack my clothes into the panier bag. Spandex tights, coat, yellow jacket, helmet, gloves: on they go. Bike's in the garage, seems okay, slap on the bag. Pull it out, reset the odometer. 17 minutes today?

Ignite the blinky lights, pull away. Down the side roads, until I'm compelled to take the arterial. Press the crosswalk button, wait for a break in the traffic. Two minutes, three, does this fucking light ever change? Off like a shot, past Jefferson Park. Maybe they'll finish by next summer. Hit the next light at 2:30. A long, gentle uphill for the next 8 minutes. Next left, zig and zag back to 14th. The prettiest block on the whole ride: gardens, a much-tended traffic circle, craftsman bungalows.

Keep going past the apartment blocks. Wait my turn at Beacon Ave, go through. Busier now, buses on 14th here. Past Mira's, past the school, road zigs. Pass the highest point, buses go left, I don't. Road narrows, start descending gently. It's all downhill from here.

Brake hard at PacMed when 14th runs out. Wait to get onto 15th. A break in the traffic. Off again. Hurtling down to the Rizal Bridge. Amazon's overflow parking on either side. If I don't have to stop at the light, I'll hit 30 without breaking a sweat. Fly across the bridge, hope to fuck it's not icy.

Watch my mirror. Can I get into the left lane? Yes, then turn left at Weller. Down the hill, hard right at 10th. I'm in the International District now, unmissable when I take a left at King. Downhill again, slower this time. Too many intersections, oblivious pedestrians, parkers heedlessly opening doors.

Right at Sixth, around the Post Office. Jackson, wait to make the left. Only two blocks, dodge the buses. Fourth and Jackson, nasty, nasty. Make the right, get into the left lane. Two more blocks. Prefontaine's diagonal gets me to Third and Yesler. Half a block to Smith Tower. Eighteen minutes. Slipping. Do better next time.

Up the steps, through the corridor. Into the bike cage. Not too crowded today–the rain's good for something. Wiggle the bike down the ramp. Grunt, hoist bike into the air, impale the wheel on a hook. A bicycle abattoir it is. Climb the stairs to Seven. Read email, cool down, shower soon.

posted on Tuesday, December 02, 2008 8:37:59 AM (Pacific Standard Time, UTC-08:00) 
#    Comments [0]
Monday, December 01, 2008 
Cryptonomicon
Title: Cryptonomicon
Author: Neal Stephenson
Rating: 4 stars out of 5
Publisher: Avon
Copyright: 1999
Pages: 1168
Keywords: science fiction
Reading period: 22–30 November, 2008

The Baroque Cycle books were a prequel, of sorts, to Cryptonomicon. In World War II, Lawrence Waterhouse is an American cryptographer, a peer of Alan Turing, and someone who will be the father of the digital computer; while Bobby Shaftoe is a US Marine who works on black ops. Now, Randy Waterhouse, computer nerd and Lawrence's grandson, is setting up a data haven in the Pacific. Amy Shaftoe, Bobby's granddaughter, and her father, Doug, are marine salvage experts working for Randy, who find a gold-filled Nazi submarine off the Philippines. Somehow, the events of the past and the present will come together, as the narrative bounces back and forth.

Randy, Lawrence, and Bobby all hold our interest as the viewpoint moves between them. Lawrence and his peers break the secret codes of the Germans and the Japanese; Randy's data haven uses cryptography to safeguard data from modern governments. Bobby ultimately just wants to rejoin his girlfriend and son in Manila.

Cryptonomicon is an effective combination of nerdiness and thriller, and a definitive portrayal of geeks in fiction.

posted on Monday, December 01, 2008 8:29:57 AM (Pacific Standard Time, UTC-08:00) 
#    Comments [0]
Sunday, November 30, 2008 
Irish Brown Bread

There's little that I miss about Irish cooking. One notable exception is Brown Bread aka Brown Soda Bread. I don't know of any bakery that makes it in the States, though I've found it at a couple of Irish pubs. The main difficulty in making it is finding the coarse-ground wholemeal flour. The usual fine-ground stuff has the wrong texture.

I know of only one place in the Seattle area that carries the right flour and that's The Grainery, 13629 1st Ave S, Burien, WA 98168; (206) 244-5015. I bought some flour there today, made a loaf, and brought the loaf and a 10lb bag of flour to an Irish friend's birthday party.

This recipe is adapted from Best of Irish Home Baking by Biddy White Lennon. The quantities shown here make a 6" loaf.

1 cup coarse-ground wholemeal wheat flour
¾ cup plain white flour
½ tsp (generous) bicarbonate of soda
½ tsp salt
1¼ cup buttermilk
Called a ‘cake’ in many homes and just brown bread in others, this is the national loaf. It is made with varying amounts of wholemeal and plain white flour and (depending on the mood of the cook) small amounts of extra ingredients like wheat germ, wheat bran, oatmeal, or various seeds. Sometimes a small amount of butter, or even an egg, is added and occasionally, a little treacle/molasses. The exact amount of buttermilk needed depends on the flour and the weather–I mean it!

Pre-heat the oven to 200C/400F/Gas 6. The reaction of bicarbonate of soda [baking soda] and buttermilk is swift and the duration of their interaction short—speed is of the essence.

Mix the flours, salt and soda in a mixing bowl. Add only enough buttermilk to make a soft dough. [The original recipe calls for one scant cup of buttermilk; I always need more than a cup to absorb the flour.] Flour your hands and the work surface and knead lightly (by hand, never with a machine) until the dough is smooth. It is important to understand that this is quite unlike making a yeast-risen dough. Shape into a circle about 4cm/1½ inches deep. Take a sharp, well-floured knife and cut a deep cross in the top. Place on a baking sheet and bake for 40–45 minutes.

To see if it is fully cooked test by tapping the bottom and listening for a hollow sound. Cool on a rack or, if you like a soft crust, wrapped in a linen or cotton tea-cloth. Eat the same day.

[Best eaten with butter or jam. Great when toasted too.]

Variations

A slightly more open texture may be achieved by adding two heaped tablespoons of wheat or oat bran and enough extra liquid to absorb the bran (about 60 ml/2 fl oz/¼ US cup).

Adding grains and seeds

There are probably as many ‘secret’ additions to the basic loaf of soda bread as there are home cooks (and chefs in restaurants who pride themselves on baking bread daily). Pinhead oatmeal and oatflakes are common additions, so too is wheat germ. While sesame seeds and sunflower seeds probably head the list of common additions today, caraway seeds have a long history in Irish baking, particularly in seed cake, sometimes known as Convent Cake probably because it continued to be made in Irish convents long after its popularity waned in ordinary households. Caraway seeds are still, occasionally, added to soda bread as a surprise extra.

posted on Sunday, November 30, 2008 10:25:49 AM (Pacific Standard Time, UTC-08:00) 
#    Comments [0]
Saturday, November 29, 2008 
Reach

Perusing Eric S. Raymond's blog recently, I noticed his claim that as a one-time maintainer of GIFLIB, just about every cellphone and browser has some of his software running in it.

That got me thinking about my own reach and where software that I've contributed to can be found.

‘Oh that a man's reach should exceed his grasp, or what's a Heaven for?’

—Robert Browning

I spent seven years on the IIS (Internet Information Services) development team at Microsoft. By any measure, that's a successful product, running one-third of all websites. There are over 100 million registered websites. Many of them are parked and many others see negligible volume, but that's millions, perhaps tens of millions of Windows Server boxes.

Two of those years were spent working on http.sys, the kernel-mode driver that underpins IIS 6. Http.sys was back-ported to Windows XP and released as part of XP SP2 (though IIS 6 never was), and it's an integral part of all later versions of Windows. That's hundreds of millions of Windows boxes.

And then there's Vim. I wrote much of the Win32-specific code–and all the Win64-specific code–but I also made contributions to the core code. Vim has long been the standard implementation of vi in most Linux distributions. And Vim is installed on all recent versions of Mac OS X.

So, I can claim Windows and Linux and Mac–though few cellphones. Not too shabby.

(I'm also one of a small number of people thanked in ESR's Jargon File; in my case, for TeX arcana and painstaking proofreading.)

posted on Saturday, November 29, 2008 9:07:26 AM (Pacific Standard Time, UTC-08:00) 
#    Comments [0]
Thursday, November 27, 2008 
let the pilgrims and indians live together in peace and harmony

My first Thanksgiving took place nineteen years ago. I was a 24-year-old graduate student, recently arrived at Brown. One of my officemates and her husband insisted that I and a Swedish grad student accompany them to her parents' house for Thanksgiving dinner. It snowed that day, the first snow of the winter. We set off in what seemed like a blizzard, up I-95 into Massachusetts. The day was cold, but the reception was warm. A houseful of Patrice's relatives made us most welcome.

Ever since, I've always sat down to a large, convivial dinner at Thanksgiving. At first, others welcomed me into their homes. For the last decade, Emma and I have played host to others who, like us, have no relatives in the area.

In the early years, Thanksgiving had little emotional resonance for me. It had not been part of my childhood. Unlike Christmas, it had no deep-seated associations for me. I had no family traditions to draw upon. I had not grown up eagerly anticipating Thanksgiving every year.

Now, I do look forward to it. Thanksgiving is a fine day to beat back the winter gloom, to share in the warmth of our friends. Halloween and Christmas are rankly commercial, but the merchants have never managed to draw Thanksgiving down to the same depths.

I give thanks for my lovely wife, for my health and prosperity, and for my dear friends.

posted on Friday, November 28, 2008 7:26:26 AM (Pacific Standard Time, UTC-08:00) 
#    Comments [0]

How to Carve a Turkey

Just in case you need some tips for tomorrow's feast.

We're hosting a dinner. My Irish friends, Paul and Maggie, who moved to San Jose at the end of last year, have come up for a few days. It will be their first Thanksgiving together in the States. We'll also be joined by Frank & Lyndol, Raven & Iain, and Peter & Carol.

We're cooking the turkey at high heat, using Barbara Kafka's 500F recipe. The others are bringing everything else. Yum.

posted on Thursday, November 27, 2008 8:38:03 AM (Pacific Standard Time, UTC-08:00) 
#    Comments [0]
Wednesday, November 26, 2008 
Eee on MacBook

I've been very happy with my MacBook Pro. It's my primary home machine, sitting on the living room coffee table, and getting far more use than the desktop system in my office upstairs.

But it rarely leaves the house. It's big–a 17" screen–and it's heavy. I seldom carry it anywhere and I hardly ever bring it to a coffee shop.

I bought myself a netbook last month, an Asus Eee 1000H: 10" screen, 1024x600, 1.6GHz dual core Atom, 1GB RAM, 160GB hard disk, 3lbs, $479. Look at how much bigger the MacBook is in the photo! For reference, the Eee 1000H is the same size as a magazine. It's small enough and light enough that I take it with me every day, and it's been inside many a coffee shop.

The Eee came with Windows XP Home. I immediately repartitioned it and put Ubuntu Eee on the second partition. I don't think I've booted back into Windows after the first few days. All the devices (webcam, sound) and apps (Skype, Flash) work and I have all the Ubuntu goodness, optimized for this form factor, instead of a seven-year-old operating system.

The keyboard is adequate for my slender hands, though I would not care to do a lot of writing on it. The main problem that I continue to have with it is the placement of the right-hand Shift key, to the right of the Up-arrow key. My touch-typing fingers expect to find Shift beside the /, dammit.

The Elantech trackpad drove me nuts initially. Under both XP and Ubuntu Eee, it's configured with all kinds of multitouch gestures. Far too often, I inadvertently clicked or selected merely by hovering over the trackpad while typing. With some pain (especially on Ubuntu), I figured out how to turn all that crap off, so that it merely moves the mouse around and the right edge scrolls.

The screen is a little too small at 1024x600. The Netbook Remix interface replaces the GNOME desktop with a custom launcher. Each window runs maximized by default with minimal trimmings.

For a low-power machine, it's surprisingly fast. The Atom has two cores, so even if one is maxed out, the other one keeps the machine responsive. 1GB has been sufficient so far, but I'll probably get a 2GB stick because RAM is cheap.

I'm very pleased with the Eee. It nicely complements my MacBook.

posted on Wednesday, November 26, 2008 8:33:24 AM (Pacific Standard Time, UTC-08:00) 
#    Comments [0]
Monday, November 24, 2008 
Shaun the Sheep

By a serendipitous accident poking around on the TiVo a few weeks ago, we found that the Disney channel is broadcasting Shaun the Sheep. It's a series of seven-minute shorts spun off from Wallace and Gromit.

Shaun is the one smart sheep on a smallholding. His inquisitive nature leads to all kinds of mischief. The flock follow along; the sheepdog sometimes helps, sometimes hinders. All the while, the farmer is oblivious. No dialog, just slapstick. Highly recommended.

I learned today that a new 30-minute Wallace and Gromit, A Matter of Loaf and Death, premieres on BBC TV at Christmas. I'm not sure when it'll be shown in the US. We'll be in Dublin for two weeks then, so we'll be sure to watch it.

posted on Tuesday, November 25, 2008 7:35:33 AM (Pacific Standard Time, UTC-08:00) 
#    Comments [1]
Sunday, November 23, 2008 
reStructuredText

I hate composing anything longer than a couple of paragraphs in an online HTML editor. Specifically, I hate writing posts for this blog online. I'd much rather write in Vim and upload HTML. But I don't want to compose in raw HTML either.

I use reStructuredText (reST), an unobtrusive plaintext markup language popular in the Python world. reST can generate HTML, LaTeX, native PDF, ODF, and other formats. The picture at right shows a draft of this document in MacVim; reST is, as you can see, quite readable (though I work with a larger font). I use restview to preview the HTML locally and Pygments for syntax highlighting of code. Vim has its own syntax highlighting for reST and I've developed a set of keyboard macros for my own use.

The weak link in this scheme is posting to the blog. Right now, I have a little wrapper that generates HTML, extracts the body, and copies it to the pasteboard (clipboard). I then manually paste that into a raw HTML textarea in the blog's editor. Someday, I have to adapt mtsend or Firedrop2 to make this less painful. Or I could hack dasBlog to support reST in IronPython, or switch over to a blog that supports reST natively. Someday.

For a long time, I used VST (Vim reStructuredText) to generate HTML from reST. As I began using Python more and more, I realized that I was far better off with the real thing, which is well designed and quite fast. The VimL scripting language is not that good and VST pushes it to its limits.

As of the recent Python 2.6 release, all the official Python documentation is in reST format. Sphinx is a documentation build system that wraps a collection of reST documents into a larger navigable entity.

There are many other lightweight markup languages, such as Textile, Markdown, and AsciiDoc. No doubt they have their strengths, but I now have a significant investment in reST and it's well supported by the Python community.

posted on Monday, November 24, 2008 5:14:40 AM (Pacific Standard Time, UTC-08:00) 
#    Comments [0]
Saturday, November 22, 2008 
Field of Blood
Title: Field of Blood
Author: Denise Mina
Rating: 4 stars out of 5
Publisher: Little, Brown and Company
Copyright: 2005
Pages: 424
Keywords: mystery
Reading period: 15–21 November, 2008

A new series from the author of Garnethill. 1981: Paddy Meehan is an 18-year-old Catholic, living at home in working-class Glasgow. She works as a copy boy at a newspaper and aspires to be a journalist. In what seems to be an open-and-shut case, a three-year-old boy is murdered by two unnamed ten-year-olds. One of them is her fiancé's cousin. She blurts that out in shock; the newspaper publishes it, causing her tight-knit community to shun her.

Paddy is forced to do a lot of growing up, while she investigates who led the ten-year-olds on. The shunning changes her. She realizes that she's not cut out to be the good little housewife expected by her family and fiancé, that she'd really rather be a journalist. Quick witted, she learns to give as good as she gets in the overwhelmingly male newsroom. Her duplicity causes one death and causes other havoc; the realizations will hit her hard.

posted on Sunday, November 23, 2008 5:01:49 AM (Pacific Standard Time, UTC-08:00) 
#    Comments [0]
Quantum of Solace
Title: Quantum of Solace
Star: Daniel Craig
Rating: 4 stars out of 5
Copyright: 2008

Daniel Craig once again plays James Bond in Quantum of Solace. Casino Royale rebooted the Bond franchise, going back to Bond's first 00 mission to recreate the character. The plot takes up where Casino Royale left off, as MI6 becomes aware of a hitherto secret organization, Quantum, a sort of latter-day SPECTRE.

Said plot makes as little sense as these plots normally do. Rich, evil mastermind wants to corner the market on <substance> as a stepping stone towards world domination; Bond follows villain and henchmen across several continents, blowing stuff up and killing people; sexy women are bedded along the way; nice suits, fast cars, and gadgets all get a workout.

Emotionally, Quantum is on a sounder footing. Bond still grieves for Vesper, who died at the end of Casino Royale. His need for revenge drives him, compounded by the treachery of a Quantum mole. This Bond is tough, but not impervious. Events have gotten under his skin. Under M's too: initially disdainful, she develops some trust for Bond.

The action is more than adequate. The first half hour is a blur of car and foot chases, bruising fights, and shootouts. A great deal more action will follow later.

Connery used to be my favorite Bond. If Craig keeps this up, he'll take the crown.

posted on Saturday, November 22, 2008 8:33:43 AM (Pacific Standard Time, UTC-08:00) 
#    Comments [0]
Thursday, November 20, 2008 
Slumdog Millionaire
Title: Slumdog Millionaire
Director: Danny Boyle
Rating: 4 stars out of 5
Copyright: 2008

Eric and I got advance screening tickets to Slumdog Millionaire, Danny Boyle's new movie about a former Indian street kid who wins round after round on Who Wants to be a Millionaire?. The show can't believe that he's not cheating, he's arrested, and the police beat the truth out of him. As Jamal tells his tale, we learn how an 18-year-old chai wallah in a call center came to know the answers.

Although there's little doubt about the ending, the journey is unpredictable. Jamal and his older brother Salim are orphaned at a young age. Latika, a girl, joins them, and they form the three musketeers. A Fagin takes them in thrall; the boys escape, Latika does not. They spend years scamming their way across India, before returning to Mumbai so that Jamal can look for her.

The teeming millions of the slums of India provide the backdrop for this movie. The brothers may be poor nobodies, but they have spirit and energy and a fierce camaraderie until they fall out.

Engrossing.

posted on Friday, November 21, 2008 6:56:10 AM (Pacific Standard Time, UTC-08:00) 
#    Comments [0]
Wednesday, November 19, 2008 
The Bankruptcy of Detroit

For decades, Detroit has fought a rearguard action against change—seatbelts, CAFE standards for increased fuel efficiency, metrication, renewable energy, building gas guzzling SUVs instead of hybrids, all come to mind.

Change is needed. The current management must go. The big three must build vehicles that make sense.

It's not often that I agree with Mitt Romney, but his op-ed piece, Let Detroit Go Bankrupt, in Wednesday's NYT lands in the vicinity of the mark.

He ignores one big reason for the higher costs of American cars, the cost of company-funded healthcare.

But another article in the same day's paper, Advantage of Corporate Bankruptcy Is Dwindling, points out:

Harsh as it is, a bankruptcy filing has always offered a glimmer of hope for a business hobbled by debt or a downturn. A company could slim down, negotiate manageable payments to workers and suppliers and keep going, preserving jobs.

...

So companies battling for survival have lost another lifeline. While they might have once gotten together with their creditors and worked out a plan in the common interest, they are avoiding bankruptcy court if at all possible because they know that without ready access to credit, the odds of emerging from legal proceedings are slim.

It's going to get a lot worse before it gets better, I fear.

posted on Thursday, November 20, 2008 7:38:33 AM (Pacific Standard Time, UTC-08:00) 
#    Comments [0]
#1 Technical Blog on Google, revisited

A week ago, I said that my technical blog somehow comes up as #1 technical blog on Google.

Several people pointed out that in my screenshot, I was logged in to Google. As you can see if you click on this screenshot, I can reproduce this result even when I'm not signed in.

I'm still confounded by that ranking. My content is good, but largely unremarkable—though I'm unduly fond of A Use for Octal; my style is understated; my traffic is uncongested; and my top billing is undeserved.

But none of the technical blogs listed on that first page are of the first order, except Mark Russinovich's.

If I thought it made sense, I'd be flattered. Alas, I cannot make it so.

posted on Wednesday, November 19, 2008 8:00:05 AM (Pacific Standard Time, UTC-08:00) 
#    Comments [0]
Tuesday, November 18, 2008 
Maxtor OneTouch III disassembly

My formerly trusty Casio Exilim EX-Z1000 camera went berserk one night in September. The zoom lens wedged open and nothing I did would persuade it to retract into the case or take more photos. The zoom had grown a little tempermental in the preceding month, but I didn't expect catastrophic failure.

The other hardware failure was far more upsetting.

From Christmas until August, I ripped most of our CD collection with Exact Audio Copy to FLAC (Free Lossless Audio Codec). Since FLAC is lossless and open source, I figured I'd never need to rip the CDs again. I also wrote a Python script to convert the FLACs to MP3s with LAME, since MP3s are far smaller and all players handle MP3s. I stored the FLACs on a Maxtor OneTouch III drive, twin 750GB SATA drives configured as NTFS on mirrored RAID 1.

A few minutes changing CDs here and there; a few more minutes entering album metadata into Readerware AW. Over the months, it really added up: 775 albums, 250 GB of FLACs, 45GB of MP3s. The MP3s were replicated on several machines, but the FLACs and the Readerware AW database were stored only on the OneTouch's mirrored drives. This drive became my primary backup solution. When I had copied the latest data to it, I'd power it down and store it in the fire safe.

You can guess what's coming next. The OneTouch stopped working one day. Refused to do a damn thing on any machine that I connected it to. I was very unhappy.

I was going to return it to Maxtor, until I read the fine print. They'd replace it, but they'd send me back different drives and would make no attempt to get the data off the old drives.

Well, that was completely unacceptable! I found the Maxtor OneTouch III disassembly guide online, but didn't get around to doing anything about it until tonight. I bought two 3.5" external enclosures at Fry's yesterday. A couple of hours ago, I voided the warranty by prising the case off, extracting the drives, and putting them into the enclosures.

They worked! Both of them appear to be fine and the data is accessible. Until tonight, I wasn't completely sure that I would be able to get the data off the disks even if they were okay. I had visions of having to extract sectors and rebuild the files by hand.

Presumably it's the RAID controller or something else in the Maxtor case that died. I'm going to throw that piece of crap away. One of the drives is undergoing a full chkdsk; the other will get the same treatment tomorrow.

Not only that, but I also plugged the camera in for the first time since it had died. The battery had completely drained and I had to reset the clock. And now it's decided to work too. I'm not sure that I trust it, but should it die again, it's no great loss.

posted on Tuesday, November 18, 2008 9:21:07 AM (Pacific Standard Time, UTC-08:00) 
#    Comments [0]