Oh, baby! I put a bottle of the Kansas City Pale Ale in the refrigerator earlier today, and we opened it for dinner. (Okay, with dinner.) It turned out better than I expected. The color is a deep amber, and it carried a thick, creamy head. (Not as much as a Guinness, but then again, what else does?) The hops have mellowed; it's still on the high side as far as I'm concerned, but not as assertively so as it was early on. As far as I'm concerned, this is ready to drink now.

Perhaps the highest praise came from our daughter: "Wow! It looks like real beer!"


We bottled the Kansas City Pale Ale yesterday, during the Chiefs-Raiders squeaker. The yield was only 44 bottles, but I cracked the mouth of one capping it (note to self: apply less pressure to the capper), so I had a sample for testing and tasting. I was surprised that the gravity hadn't come down any since racking to the secondary fermenter; then I remembered that the addition of priming sugar brought it up. It tastes a little sweet—again due to the priming sugar—and I think the hops have mellowed a little (though it's still pretty hoppy). I'm looking forward to opening a bottle in a week and seeing how it's carbonating.


This may seem insignificant at first: I'm posting this from my basement.

"So what?" Well, I mentioned a few posts back that I'm finally running wires into my office. I'm plugged into the first one, and this means that the line works.


I transferred the Kansas City Pale Ale to the secondary fermenter today, and pulled a sample for testing and tasting. The specific gravity is still high—1.019, compared to a final gravity of 1.010-1.014 according to the recipe—but since I didn't take a starting gravity reading, I really don't know how far along it is.

As I suspected, it's very hoppy. When I was siphoning the hot wort into the primary fermenter, first the siphon broke, then the siphoning equipment broke. There's a long story behind that, but I'll summarize by saying that my lovely bride fixed it with a piece of thread and a twist tie. By the time we finished transferring into the fermenter, the hops had been sitting in the hot wort for an additional 15 minutes or so. You can definitely taste the result; it's not undrinkable, but I think it's hoppier than the style calls for.


Don't get me wrong—using tools to make stuff is fun. But what's really fun is using tools to make other tools.

Case in point. My office at home is a spare bedroom, and the builder (for reasons known only to him) ran no phone lines into it. As a result, I use my cell phone as an office phone (side effect: I never have to forward my phone when I leave the office) and I connect to the Internet via a cable TV cable that's stapled to the ceiling down our hallway.

I'm finally getting around to running some lines into the office; the idea is to drop down into the garage below, where I can staple them to the ceiling and walls and my wife won't complain. The problem is that the floor structure between the office and the garage is about 12" thick, which is the length of the longest drill bit I could find (short of one of those highly-flexible ones which are about 4' long). By the time you chuck it in the drill, it's not long enough to reach through the floor.

I dug out a piece of steel rod about 1/4" in diameter that I had lying around that's about 3' long. Using a bench grinder, I ground four faces into one end at about a 45° angle. Then, with the Dremel and a carbide cutter, I ground hollows out of two opposing faces. Presto—instant drill bit, minus the spiral cuts to remove waste. Still, it did the trick, and was a lot of fun to make.


I think my fermentation may be stuck. The fermenter is no longer bubbling, but it's been only 48 hours. The good news is, the beer smells like beer, and not like something that died. Good thing I'm going to the Lawrence Brewers Guild meeting tomorrow.


My wife gave me a homebrew starter kit for my birthday, and I fired up my first batch last night. My first impression is it's just like cooking, but messier. The whole house smells like Grape-Nuts. The fermenter is happily bubbling away.

It turns out that Everything to Everyone by Barenaked Ladies (a birthday present from my four-year-old daughter—she's a big fan of "If I Had $1,000,000") is good music by which to make beer, the way the soundtrack from The Big Chill is good music by which to cook pasta for a lot of people. I look forward to trying this with other albums.

Another busy week last week (and in to this one). I guess that's what happens when you get old.


How 'bout that. Amazon has posted its top 50 books for 2003, and I just finished reading #3 last weekend.


We had quite the multimedia weekend.

In print, I not only finished Jarhead by Anthony Swofford, but also Kim by Rudyard Kipling. On the nightstand now is Ring of Truth by Nancy Pickard.

On what NTK would call the "Red Book audio" front, I went to Half Price Books to get a Louis L'Amour paperback to put in a geocache (it's a long story; follow the links if you're really that interested) and came away with two CDs from the clearance rack. I remember hearing Amanda Marshall's Birmingham on the radio when it first came out, and I'm surprised and happy to say that it's not the strongest track on her first, self-titled album. I also got The Promise by T'Pau—I've only listened to it once, and so far I think it's not quite as strong as their first album, but I think it will grow on me.

At the other end of the 5" polycarbonate disc spectrum, we rented Jungle Book 2 (if it's possible for a performance by animated characters to be phoned in, this was it—but our daughter enjoyed it, which is really all that matters), Identity (I actually figured out the twist about a minute and a half before they revealed it, which was faster than for other movies, but on the other hand, like The Crying Game, the twist wasn't the whole story), and The Matrix Reloaded (which my wife claims to have enjoyed, at least until she fell asleep; she hasn't seen the first one, and apparently my thirty second synopsis wasn't good enough to keep her from still being confused).


Not much in the way of notable or creative costumes among the trick-or-treaters that came to our door last night. Then again, maybe it's just that my memory is failing.

I finished reading Jarhead: A Marine's Chronicle of the Gulf War and Other Battles by Anthony Swofford this morning. I've been reading a lot about the military lately—Breakout: The Chosin Reservoir Campaign by Martin Russ and Black Hawk Down by Mark Bowden come to mind—but this account stands out for its, well, humanity. Other chronicles portray soldiers as somewhat no-nonsense; they don't necessarily like the job they're doing but they do it because it's their job to do it. Jarhead shows us that it's possible to intensely hate the service and intensely love it at the same time.


Here's an interesting discussion. Apparently, Mac OS X 10.3 defragments files as it reads them. (That's a simplistic synopsis, but there's only so much you can put in a hyperlink.)

For my part, I'm inspired to put ASCII graphics and sound effects in my source comments.

Hard to believe nothing worth blogging happened yesterday. It must be true, though; not only did I not blog anything, but I frankly can't remember much of yesterday at all.

Note that I haven't mentioned anything that happened today, either. That's okay; the interesting stuff comes later tonight.


Drive-by linking: The Roasterie

This seems like a big omission: the URL class in JDK 1.3 allows you to get the various pieces of a URL, but not to set them individually. So, if you want to add a query parameter to a URL, you have to do it manually, which means checking for existing parameters. Maybe I'm just missing something.

In case you didn't notice, I'm starting to rework the layout for my blog. Props to Jason Kottke for providing the inspiration.


I've been having all kinds of problems with my ISP lately. This time, DNS names aren't resolving, as if they've misconfigured a router and big chunks of the backbone are no longer accessable. Unfortunately, my upstream DNS servers are in one of those chunks, so I couldn't even get to the ISP's support website or Google.

("So, how are you blogging this now?" I hear you ask. I phoned a coworker in the Washington DC area, got the IP addresses for some DNS servers from him, and hacked them into my local DNS server config.)

("So, why aren't you using your ISP's DNS servers?" Full of questions today, aren't you? :-) I'd like to, but nowhere on their website do they give the IP addresses for those. I can't pick them up from the DHCP lease, because I've got a firewall between my computer and the ISP, and it has the DHCP lease.)

Add to this the fact that the activity lights on my cable modem are going nuts even when the firewall is powered down, and I'm starting to think that I need to start shopping for a new ISP.


8-0, baby!


I'm still reading Kim, but I worked in two other books this week. One was the calculus primer; the other is Villa Incognito by Tom Robbins. He's something of a guilty pleasure for me—I rarely end up caring much about the characters, but the prose is a hell of a lot of fun to read.


Mmm. Chinese food.


Drive-by linking: Bay View Farm

The new refrigerator just arrived. The compressor went out on the old one, and the cost to repair was going to be almost as much as a whole new fridge.

What's the first thing that comes to mind when I tell you that the new fridge has the freezer on the bottom? Everyone—and I mean that literally—so far has said, "My grandmother used to have one like that." I didn't realize our refrigerator was retro. :-)


Must be like falling off of a bicycle: you never really forget how. This still makes sense.

I picked up a primer on calculus at the library yesterday, thinking I needed to brush up on it before tackling differential equations, which I figured I needed to relearn before tackling heat transfer (specifically, the design of counterflow heat exchangers). Maybe I don't have to worry about that after all.


Now reading: Kim by Rudyard Kipling. Actually, I'm rereading it; it was originally given to me by a friend in college.


The obsession du jour is homebrewing. I just read—well, skimmed—through The Home Brewer's Companion by Charlie Papazian; it feels like it's more for people who already know what they're doing. (Actually, I'm not that lost, since (a) I have a degree in chemical engineering and (b) I like to drink beer.) I've also been reading a lot online, as well as browsing through the web sites for mail-order suppliers. Next, I think, is a visit to the nearby homebrew shop.


I finished reading Pattern Recognition tonight. I have roughly the same feeling I had after reading his first three novels—something akin to "What just happened?"

Neuromancer, Count Zero, and Mona Lisa Overdrive all followed the same pattern, to my experience. Gibson starts with a great hook, spins it out using several seemingly-unrelated plotlines and characters, weaving them together as the story progresses. Then, about three-quarters of the way through the book, it's as if he realizes that he's forgotten where he was going and why, rushes to the conclusion with the literary equivalent (albeit much more verbosely, and far more interesting to read) of "yadda yadda yadda", but still only delivers 95%, leaving the reader to fill in the rest. I freely admit to a tendency to inhale fiction—I'll suddenly notice a character, or an object, and have to back up several pages to see where it was introduced. With Gibson, though, it's consistent in how and when in the book it happens. Either his writing sucks me in, or he elides big chunks of it, or, I suspect, both.

I thought Virtual Light, Idoru, and All Tomorrow's Parties were tighter, and I figured maybe Gibson had reached a different stage in his writing style. Pattern Recognition feels like a step backwards. There's only one overt plotline, but at the end I had the same feeling that I was lacking closure.

On the positive side, I learned about Curtas.


Drive-by linking: Ben Vollmayr-Lee

We have a goldfish, a red & white ryukin our daughter named Dennis. He's been having problems swimming lately, and today we found him floating on his back, not moving. When I went to fish him out (if you pardon the expression) with the net, he woke up and began swimming around again.

So I did some research, and have decided that he has a swim bladder problem. And how do you cure an ornamental goldfish with a swim bladder problem?

Frozen peas.

Drive-by linking: Web Economy BS Generator

I didn't watch the game last night; I couldn't bear to. I grew up listening to the Royals on the radio, through that period where the Yankees took the pennant from us four years running. I had a feeling it was going to happen again.

On the other hand, I did finish watching Failure is Not an Option on The History Channel. (Gotta love TiVo.) I own Gene Kranz's memoir of the same name, and the video relates to it about the same way that the film A Brief History of Time related to the book of that name, but in reverse. ABHoT the book is facts, while the film is a biography of Stephen Hawking; FiNaO is the other way around. No matter; I highly recommend watching it if it comes around again.


Drive-by linking: Dr. Rob Spence, MD.

I just started reading Pattern Recognition by William Gibson on Tuesday. It starts out by saying, in effect, "If you Google Cayce Pollard [the main character], you'll find out such-and-such." That sounded too much like deliberate viral marketing, so I tried it out, figuring to find web pages put up by the author and/or publisher. Instead, what I get is a page full of links to what look like discussions on the book—which I assume contain spoilers, so I haven't looked at any of them.

So much for dead-tree media. :-)

I can't seem to get the hang of blogging. Anyone who's met me in person can tell you that I'm more than capable of rambling on and on about nothing in particular for hours on end. Apparently, I'm not terribly inclined to do so with my fingers.


Today is my last day with my current employer. They decided there wasn't enough money in web application development, and so they let me go. On Monday, I start with my new employer, doing web application development. Plus ca change, plus c'est la même chose.

This weblog entry was posted with Frequency by Brad Rhine.


I'm trying out blogging clients for Mac OS X, so posts may be oddly formatted for a little while.


There used to be a company named Digital Archaeology (may still be; they got absorbed in October 2000). Their line of business was data mining -- sifting through all the myriad data that a company collects and generates, looking for interesting and useful patterns.

I'm finding out the hard way that they didn't know what real digital archaeology is like.

I bought a new computer recently. Okay, new for me; it's an HP Vectra VL, with a Pentium II processor and 64MB of memory. I picked it up for $25 from a company that upgraded all of their desktops. It's replacing my old desktop machine, a Compaq 486. You can see how I'm happy about this.

In the process of transferring all of the data from the old disk to the new one, I managed to wipe the old disk. Completely. No backups. (Please, no smart-aleck comments. Yes, I screwed up. Keep reading.) All of my personal email going back a couple of years was gone, as was my GPG key. I still haven't figured out what else was lost; I keep thinking of things.

Fortunately, what I lack in better judgement, I make up for in tenacity. After a few attempts to "repair" the disk (I didn't expect much success, since the disk wasn't really damaged to start with), I downloaded The Coroner's Toolkit. It copied all of the unallocated blocks (basically, the entire disk) to another disk, classifying them (as text, email, HTML, programs, etc.) as it went. It took the better part of two days to run, primarily because either it keeps a lot of history in memory as it works or it has a memory leak -- I set up 384MB of swap space, and about 300MB of it was in use at the end.

Now I have 2GB worth of raw disk blocks to try to string back together.

I'm working on my mailbox file first, and to be honest it's more tedious than heartbreaking. My email address is unique enough that I was able to find most of the appropriate blocks by grepping for it. Now I'm filling in the gaps, caused mainly by TCT classifying blocks containing mail from certain mail programs (*cough*Outlook*cough*) that send HTML by default. It helps immensely that ext2 keeps file fragmentation to a minimum, so usually all I have to do is look at all blocks between this one and that one, sequentially -- and it's usually just one or two.

That's the good news. The bad news is that I have a lot more of this to do. The good news is that most of the contents of the disk were part of Linux rather than data that needs to be found. The bad news is that the data that does need to be found is buried in the haystack of other data.

I finally read Paul Graham's seminal paper on Bayesian spam filtering yesterday (thanks to Jason Kottke for pointing me to it). I have to admit that my feelings are mixed.

On the one hand, I like the idea of an adaptive spam filter. To paraphrase somebody (was it a Supreme Court justice?), "I know spam when I see it." Besides, one man's spam is another man's portable, canned, processed meat product. So to speak.

On the other hand, it feels like closing the pantry door after the cans have gotten out. So to speak. By the time spam gets to the mail client, it's already done its primary damage, wasting bandwidth. If you try to push the spam filter further upstream, you lose the ability to define what constitutes spam; it becomes a collaborative definition or (worse) someone else (like your bandwidth provider) defines it for you.


Take two.