Coffee optimization

Doctoring the coffee after brewing added a good twenty or thirty seconds to the total coffee preparation time, a substantial increase over the time needed by the machine. But the machine’s user waits idly for seventy-four seconds; why not put that time to better use?

When I started at YouTube a few years ago I encountered fancy coffee machines in the break rooms (or in Google parlance, “minikitchens”). At the touch of a button it would dispense a single serving’s worth of coffee beans from a hopper into its internal grinder, grind them up, add water from a supply line, and brew and serve a cup of hot coffee, all in seventy-four seconds. (I timed it.)

Occasionally a line would form of coffee addicts needing their fix. Most had the same routine: when one brew cycle was finished, the next person in line would place his or her cup in the machine and press the button. Seventy-four seconds later they’d withdraw their cup, add sugar, carry it over to the cooler, take out the half-and-half, and add that; then leave.

Doctoring the coffee after brewing added a good twenty or thirty seconds to the total coffee preparation time, a substantial increase over the time needed by the machine per se. But the machine’s user waits idly for seventy-four seconds; why not put that time to better use? After several months it dawned on me to change my routine. As soon as the previous user’s cycle ended, I pressed the start button without putting a cup in the machine. Instead, during the first thirty or so seconds of grind-and-brew time, I put sugar and half-and-half into my empty coffee cup, then placed it in the machine. By the time the machine was finished, I was all ready to go, about 25% faster than everyone else.

In hindsight it was an obvious optimization to make, and in an office full of bright, busy engineers I was surprised that I was the only one I had ever observed making it. I did occasionally get some appreciative glances from others on seeing my technique in action, and finally within the past year I’ve noticed my method catching on. It’s gratifying to be a trendsetter, but frustrating to be unacknowledged. At least I can tell you about it.

The arrow that springs from the bow

In 1996, some friends and I started our own software company, Zanshin. But by 1999, suffering from a lack of focus and a tendency toward overengineering, we had still not managed to produce a salable version of our world-changing software. Luckily for us we got a consulting gig for Amazon.com (unrelated to my involvement with the Internet Movie Database). That contract went so well that after a few months of it, in early 2000, Amazon offered to hire us all. We would have to close Zanshin and move up to Seattle. Andrea and I, newly married, got as far as scoping out Seattle neighborhoods. We were leaning toward accepting Amazon’s offer. Zanshin clearly was going nowhere, and Amazon had interesting work for us.

We had a Zanshin company meeting to talk it over. Some of us wanted to accept, some wanted to keep trying with Zanshin. We had the frank discussion about our plans and lack of progress that we should have been having all along. In the process, we brainstormed some exciting new ideas. In the days that followed we fleshed those out. The uninspired daily grind that working at Zanshin had become took on a new feeling of hopefulness. My co-worker Steve, who had also been in favor of the Amazon offer, gave a stirring speech about continuing on our own.

When it came time to give Amazon our final decision, we voted unanimously to turn them down. Knowing I’d previously been the strongest vote in favor of the Amazon offer, my co-worker Greg asked if I was sure. I replied, “I’m like the arrow that springs from the bow. No hesitation.”

It was a line spoken by Michael O’Hare as Jeffrey Sinclair in Babylon 5. I have used that sentiment a few times since then as a way to gauge my readiness for something — starting a family, for instance. If I can’t say that line with conviction I know I’m kidding myself.

Today came news that Michael O’Hare died. Nerds all over the web are paying him tribute for his role in a beloved space adventure, but his legacy is a little more personally meaningful to me. His memorable reading of that one line has attended every important decision of my life since he spoke it.

Quickie sex ed

It was the spring of 1979 and seventh grade was almost over. Time was running short for our Health Ed. class to cover sex education, as had been promised earlier in the semester. We’d all been anticipating it in giggly fashion for months.

Now just a couple of classes remained before the end of the school year. At that time and place I’m not aware of any political controversy about sex education in public schools; as far as I know the semester simply got away from Mr. Washington, our young and hip teacher. In one of the final classes he apologized and suggested a way to cover the eagerly awaited topic quickly: we’d all write down one or two anonymous questions about sex, drop them in a hat (or a bag or a box, I don’t quite remember), and Mr. Washington would pick some at random and answer them. No question was out of bounds, nothing was too big or small to ask. Mr. Washington pledged a complete and honest answer to every question, all but promising to kill the fun with an excess of earnestness.

I can’t remember what question I dropped into the hat, nor do I remember most of the other questions that eventually came out of it. Some were no doubt excellent ones based on real curiosity. Information about sex was not quite as easy to come by then as it is now. After all, this was before the frankness made necessary by AIDS, before Dr. Drew and even Dr. Ruth, back in the days when “Internet porn” consisted of an academic in some university office printing a topless woman made of typographical symbols on six sheets of green-and-white fanfold paper.

The hat (or bag or box) passed solemnly around the room. Each of us dropped a folded piece of paper into it, apprehensive in spite of the anonymity that some humiliating bit of cluelessness would be revealed to all. Mr. Washington received it back and, just as solemnly, fished around for the first slip of paper to answer.

He unfolded it — and cracked up laughing, bent over double! It took several long seconds for him to regain his composure; meanwhile, the tension was broken for the rest of us. Finally he read the question: “What’s it like?”

I can still hear Mr. Washington’s immortal and carefully enunciated answer, after our own laughter died down: “It is as good as they say it is.”

Counterintuitive counting

You know those greedy media companies who are so afraid of relaxing control over every aspect of a book’s/song’s/movie’s commercial life that they crush innovators trying to add value, sue the fans on whom their livelihood depends, subvert public policy, poison international treaties, and spend more money on lawyers and lobbyists than on, you know, actually producing more of the content they guard so jealously?

I have a data point for them.

Fourteen years ago I wrote a book called Writing GNU Emacs Extensions. It was a technical book on an obscure topic, with a decidedly limited audience. I had some modest income from it for a few years, then the royalties petered out to less than nothing — not surprising, since it had become very outdated with respect to the latest versions of Emacs, the technology it described.

Around that time, eBooks were starting to get big. My publisher, O’Reilly, asked whether I would consent to making my book available online, at a lower sale price, in a format that would all but ensure the spread of pirated copies. Why not, I thought, and agreed.

Sure enough, pirated copies of my book now exist on the web, but something else happened — sales began to increase again. My royalties went from a low point of negative $1.71 for 3q2006 to a whopping $78 in the check I received yesterday! …OK, $78 isn’t exactly whopping, but it’s positive — much more so than -1.71 — and represents a sales volume for my old, outdated, limited-appeal book that O’Reilly and I haven’t seen in probably ten years.

So greedy media companies, relax your intellectual property sphincters, let the content flow, and enjoy the multiplier effect that comes from making your titles more available instead of less. For as Princess Leia™ warned, “The more you tighten your grip, Tarkin,™ the more star systems will slip through your fingers.” (® and © 1977 Lucasfilm Ltd. and 20th Century Fox.)

Quitting time

On this date fifteen years ago, several employees of NCD Software, formerly Z-Code, resigned simultaneously. I was one of them.

Two years earlier, Z-Code’s founder, Dan, sold out to Network Computing Devices over the objections of most of his staff. NCD, whose line of business had no discernable overlap with Z-Code’s, proceeded to drive Z-Code and itself right into the ground. Dan was the first casualty, lasting only a few months after the merger. NCD’s CEO and top VP, informally known as “the Bill and Judy show,” followed not long after. A lot of clueless mismanagement ensued. The energy of our once terrific engineering team dissipated before our eyes. We tried to turn things around, to make our bosses understand (for instance) that you can’t just tell an e-mail software team to make their e-mail suite into one of those newfangled web browsers that the new CEO had heard so much about, or that if you don’t pay your salespeople a commission for selling the company’s software, they won’t sell the company’s software.

Each time management did something boneheaded, we convened a session of “The Alarmists’ Club,” which met at lunch over beers and tried to think of ways to effect change at NCD. After enough of those proved fruitless, our discussions turned to how we could do things better ourselves. And so some time early in 1996 we sought the advice of a Silicon Valley lawyer about how to leave NCD en masse with minimal legal repercussions. The bulk of the advice was to put off discussion of any new venture until after the separation was complete; and to be aware that NCD was liable to use veiled threats, emotional pleas, and vague promises in an attempt to get us not to leave.

On 14 February 1996, NCD did all these things. We had prepared our terse resignation letters, offering two weeks notice, and delivered them in the morning. Within a couple of hours, Mike Dolan, one of the bigwigs from NCD headquarters in Mountain View, made the trip to the Z-Code offices in Novato to meet with us individually.

I was not yet 30, and when Dolan, an industry veteran, leaned on me in our one-on-one meeting I was definitely cowed. But my co-resigners and I had coached one another on how to withstand exactly the sort of combined intimidation and guilt trip that I was now getting, and so I stuck to my guns, kept the pointless justifications to a minimum, and refrained from blame or recrimination.

We maintained our solidarity, and because NCD declined our offer of two weeks’ notice, that was our last day there. We left feeling victorious, though what exactly we had won was never clear, and our sense of triumph was tempered by having effectively sandbagged our erstwhile coworkers.

After enjoying a few days of freedom it was time to start planning our new enterprise. But that’s another story…

Nerd alert

I got this book for Christmas:

It describes the sometimes-fascinating stories behind most of the sound effects from the Star Wars films and includes a sound chip that can play them back individually.

Reading the stories and listening to the sounds last night, I ran across one that I was sure was mislabeled: “X-Wing taking off” should have been “Millennium Falcon arriving over Yavin 4.” I pointed this out to my wife and my sister, who were skeptical that I could even tell the difference. So I whipped out my laptop, cued up the scenes in question — from the copy of Star Wars that I just happened to have on my hard drive — and proved my point. As Mr. Ng said, it is the kind of success on which reputations such as mine are constructed (dubious as that reputation may be).

Up in the air

It wasn’t until I happened to take my kids to the Two Niner Diner at Petaluma Airport for lunch this weekend that I realized an anniversary had almost passed by unnoticed — fifteen years, this month, since I earned my private pilot license.

Five years earlier, Andrea bought me an introductory flight lesson as a Christmas gift, knowing that I’d long dreamed of flying. As a kid growing up in Queens, I would take the bus to LaGuardia Airport to watch takeoffs and landings (in the days before the “land of the free and the home of the brave” decided it was too terrifying to allow anyone to do this and roped off all observation areas, sucking the last bits of glamor and romance out of aviation). I checked out FAA training manuals from the library and learned them. I became an expert in Microsoft Flight Simulator (which I started using in the days when it was still the subLOGIC Flight Simulator for the TRS-80).

In spite of all that, it had somehow never occurred to me to actually go and do something about learning to fly. It took Andrea giving me that certificate to get me in the air. So one cold day in January 1991 I drove to Phoenix Aviation (issuer of the gift certificate) at Allegheny County airport, and a flight instructor named Jay Domenico took me aloft in N6575Q, a bright yellow Cessna 152, and handed me the controls.

I was hooked, and I continued flight training at Phoenix with Jay. But between my meager finances, my job workload, and the unreliable weather around Pittsburgh, I didn’t train often enough to earn my license during the next two years, following which I moved to California to join a tiny software startup. The weather there was a lot more conducive to flying, but as often happens to those who commit themselves to tiny software startups, my available time and money dwindled to almost nothing.

By 1994 that situation had improved. I celebrated a successful major software release with a resumption of my flight training, and by September of the following year I’d passed my checkride and earned my license — just as enormously satisfying an accomplishment as you can imagine.


Circa 1998, ferrying friends Rob and Holly
to a so-called $100 hamburger
in Columbia, California.

I used my license on only a handful of occasions over the next few years, renting a plane from my local flying club for a day trip, sometimes solo, sometimes with one or two friends or family members. No trip was longer than a couple of hours; each was memorable in a different way. A few highlights:

  • My dad’s nonstop astonishment — and white knuckles — on our trip to Monterey;
  • Leaving Petaluma on a perfectly clear morning with Andrea and returning late in the day to a giant dome of forest-fire smoke;
  • Overflying Skywalker Ranch with my friend Steve, neither of us entirely certain that George Lucas couldn’t launch a squadron of TIE fighters after us;
  • Strolling around the airport in sleepy Lakeport on my birthday, befriending some hangar-dwelling artists and helping ourselves to fresh-fallen walnuts from an orchard across the road;
  • Landing in Fresno, discovering the airport restaurant had closed (for good), but being in luck anyway because a big public barbecue was under way in one of the hangars; later, flying home with a brand-new, honest-to-goodness cowboy hat from a nearby western-wear store;
  • Best of all, sharing the controls on a trip to Harris Ranch with my childhood friend Chuck, who used to come with me to watch those planes at LaGuardia and who also earned a pilot license after moving abroad for college.

Private pilots must undergo so-called biennial flight reviews (at two-year intervals, hence “biennial”) to maintain the validity of their licenses; it’s sort of like having to take your driving test again and again if you want to keep driving (which wouldn’t be a terrible idea, if you ask me). Having earned my license in September of 1995, and having renewed my BFR promptly every other September after that, I had a BFR due in September of 2001. A few days before my appointment, some murderous idiots hijacked some jetliners and flew them into some landmarks, and all aircraft nationwide were grounded for a period of days. My BFR was canceled. When the opportunity arose to reschedule it, I didn’t — because by this point, Andrea and I were expecting our first child. I never thought of flying as an especially dangerous hobby, but it’s certainly more dangerous than not flying, and the prospect of new-parenthood was enough to ground me, at least temporarily.

That spring, Jonah was born, and two years later so was his brother Archer. It had been three years since I’d flown and I was missing it terribly. Worse, I knew that my flying knowledge and skills were decaying, and that it would take several hours of refresher instruction before I felt comfortable flying again by myself. With two young kids, a new job, and a new house, that simply wasn’t in the time or money budget, but I consoled myself with this plan: I would keep my flying ability secret from my kids, and then one day, when they were old enough to be properly impressed — around 8 and 6, I figured — I’d spring it on them, taking them to the airport and surprising them with a flight over the local area, their dad at the controls. By then I would surely have worked some refresher training into the budget.

Well, the kids are now 8 and 6 and there is still no flying in the foreseeable future. But they still don’t know their dad’s a pilot, and they still don’t read this blog, so the possibility still exists — though maybe not for long — that I can blow their minds someday.

“His own quotes are his greatest pleasure.”

I’m going to take this as a compliment: John Perich has written a critique of the Internet Movie Database’s “memorable quotes” section, noting how quality control seems to have declined and wondering when and how it happened.

I can tell him exactly when and how: October 2001. That’s when my association with the IMDb, and my six-year stewardship of its Quotes section, came to an abrupt end, and not an amicable one. The less said about that, the better.

While Quotes Editor, I enforced a style that Perich recalls fondly, one in which quotes were by and large pithy, could stand on their own with minimal context (e.g. stage directions), and stated something truly memorable: something about the human condition, for instance, or something that could whisk the reader right back into the emotional heart of a scene.

During my tenure we had no quotes from movie trailers, no quotes that could not be understood out of context, and few overlong scenes. The ones of those that I did include came from prolific and reliable quote submitters whom I did not wish to alienate by disregarding the work they’d put into transcribing them; and even then, I usually managed to carve them up into separate bite-sized quote morsels.

Problem was (as Perich rightly points out) that ensuring the accuracy and suitability of quotes that IMDb users submitted — in ever-increasing numbers, with an ever-decreasing signal-to-noise ratio — was nearly a full-time job all by itself; and when I agreed to take on the Trivia and Goofs sections too as a favor to one of my colleagues, and then software development on top of that, I was often at the point of despair. I was disappointed but not entirely unhappy when it came time to separate from the IMDb.

I don’t know who has held the Quotes Editor post since my departure, and whoever has, I do not wish to cast aspersions on the job they’ve done. It’s not an easy one, especially if their efforts are split between Quotes and any other part of the site. But as I’ve noted myself over the past few years (with the occasional sigh and sorry head-shake), it’s clear that they’ve abandoned the aesthetic that John Perich and I prefer.

Thermody-nom-ics

Imagine a car rolling down the highway at a constant speed. Now imagine a refueling truck keeping pace with that car and adding a constant trickle of gas to the car’s tank, so that the level in the tank neither falls nor rises.

Now imagine that the driver of the car presses harder on the accelerator, and the car speeds up. The refueling truck speeds up too to stay with the car, but the trickle of gas stays the same — it doesn’t increase to compensate for the faster-running engine.

According to common sense — and the laws of thermodynamics — the level of fuel in the tank must now begin to drop. Right? Right?

Well, I’m now in week four of vigorous exercise almost every damn day, and the pounds are not coming off. I weigh exactly as much as I did when I started. My eating habits are the same as before, and my level of physical activity is notably higher. If I could build a car that worked like me, the world’s fossil fuel woes would be over.

In the past I’ve announced my weight-loss efforts on this blog as way to compel myself to stick with them (reasoning that I wouldn’t be able to let my millions of loyal readers down, natch). This time I kept it quiet, hoping for more success than in other recent attempts, so as to have a little momentum going when I broke the news here. Happily, sticking with my new fitness regime no longer seems to be the main challenge. Unhappily, the effect of all that exercise seems to be nothing other than an increase in the efficiency with which I metabolize my food intake. I have no choice but to change my eating habits. Let’s see if that does anything, or if I continue to defy the laws of nature.

Phase one: eliminating sweets for two weeks. This better work.

Elbows deep

Last week I replaced my six-year-old home server (which serves this website among many other functions) with a newer, faster, quieter computer. Transferring all the data and functions was a considerable effort in system administration. For the record, here are the steps I had to take.

  1. Download Fedora 12 install-CD image.
  2. Burn Fedora 12 install CD.
  3. Shut down sendmail and Apache.
  4. Dump MySQL database contents.
  5. Dump Postgresql database contents.
  6. Bring up new computer with temporary hostname.
  7. Install Fedora 12 on new computer.
  8. Create user accounts.
  9. Copy all data from old computer to new, under /old tree.
  10. Shut down old computer (permanently).
  11. Take over old computer’s hostname and IP address.
  12. Restore firewall config from /old.
  13. Restore DNS config from /old, bring up DNS.
  14. Restore sshd config from /old, bring up sshd.
  15. Restore Maildir trees from /old.
  16. Restore IMAP server config from /old, bring up IMAP server.
  17. Restore sendmail config from /old, bring up sendmail.
  18. Restore WordPress environment from /old.
  19. Bring up MySQL, restore contents from MySQL dump.
  20. Bring up Postgresql, restore contents from Postgresql dump.
  21. Restore Apache config from /old, bring up Apache.
  22. Restore Mailman environment from /old, bring up Mailman.
  23. Bring up apcupsd.
  24. Add printer.
  25. Set up network printing.
  26. Set up NFS.
  27. Resume backups.

Naturally not everything went according to plan. So in addition to the steps above I also had to solve:

  • Why all of my domains but one could be resolved;
  • Why the firewall was getting reset at startup;
  • Why inbound mail was not flowing;
  • Why the Ethernet interface had the wrong parameters at startup;
  • Why the monitor would not go into power-save mode;
  • How to get the Flash plugin running under x86_64;
  • Why the DVD-RW drive wasn’t visible some of the time.

Throughout all this, I frequently had to pause to locate and install needed software packages and Perl modules that weren’t part of the default Fedora setup. For good measure I also had to replace an external hard drive that was about to fail. (Thanks for the warning, Palimpsest!)

Happily all these things are now done, except that the monitor issue is a bona fide bug in the xorg video driver (duly filed) that someone else will have to deal with. Until then I just have to remember to switch the monitor off when I walk away.

This may all sound like deep wizardry, but it doesn’t feel like it to me. Having spent a lifetime coping and communing with these sometimes-cantankerous machines, it’s just busywork. Then I think of the number of other people in the world who could do all of this single-handedly and I become impressed with myself.