Monday, December 18, 2006

Brew #28 Belgian Dubbel

The other day (December 16) I brewed a Belgian Dubbel all-grain kit from Northern Brewer. It was a real party, as Heidi, John, Sylvia, and Steve came over to hang out, watch, help brew, and help drink the Irish Red (#25) that was on tap. (The Winter Warmer (#26), incidentally, ran out yesterday.)


  • 10 lbs Dingemans Pale Ale
  • 0.5 lbs Dingemans Caramunich
  • 0.25 lbs Dingemans Special B
  • 1 lb Dark Belgian Candi Sugar
  • 1 oz Hersbrucker (60 min)
  • 1 oz Saaz (1 min)
Mash Schedule
  • 60 mins at 153 degrees.
  • Volume of Wort: 5.5 gal
  • Treatment: Oxygenated for one minute
  • Yeast: Wyeast #1214 Begian Ale Yeast
  • O.G.: 1.050

The actual mash schedule given in the recipe is more complex, but I wasn't sure how to go about that, so I used the simpler one above. I used 13 quarts of water to the 11 lbs of grain for the strike water. The temperature in the pot was 180F, which yielded a strike temperature of 154F. I was very happy to have gotten the temperature so close to where I wanted it.

I made 5.5 gal of sparge water, also heated it to 180F, and collected 6 gal of wort for the boil. There was maybe half a gallon of water left in the pot when I poured the wort into it; I think that helps explain the low specific gravity.

I did get a yeast scare. The kit was sent to me during a cold snap, and while we all thought the Wyeast package swelled a little bit, 24 hours later there was no fermentation visible. That was the case as of 2:00am this morning! I was all ready to make a trip to the local homebrew shop for an emergency replacement today, but this morning at 8:00 there was a beautiful creamy foam on the top. The wee yeasties had decided to make a useful contribution to the universe after all! So, we have a lag time of 36 hours...!

Possible reasons: it may be that the yeast was damaged in transit by the cold. (There is a "DO NOT FREEZE" warning on it.) It could be that the yeast had not warmed sufficiently and merely got shocked when I added it to the fermenter. I will try to remember to take it out earlier next time.

I'm expecting this will be a lower-alcohol brew. That's fine by me, as long as the flavor is nice. The Irish Red was also lower alcohol, and it was nice to have that around because we could all have more of it than would have been wise had it been a higher alcohol version.

Wednesday, December 13, 2006

Mean People Suck

Monday was a very very full day. I gave two final exams, and received a nice surprise at the department holiday party: I'd been selected for the Teacher of the Year award for the department! It is nice to feel like people appreciate what you do.

My web server went down at about noon though, and I could tell by the way it went down that it involved files missing. When I got home, I discovered it wasn't just files missing. Someone had broken into my apartment and stolen my computer! And right during finals week, when my students need to be accessing the course materials I have posted online.... They also got my digital cameras.

It could have been worse. I wasn't home when they entered: surprised burglars are bad news. They don't appear to have taken any of my financial stuff; a ziplock bag full of credit cards was tossed to the side where they took the computer, and all the quarters were still in the drawer. And they did do me one favor, unintentional though it may be: they left my backup device. With that I was able to get things back running again relatively quickly. Without it, it would have taken several years to recover from the damage. I'm setting up an off-site backup solution now. As the proverbs goes, "trust God, but tie up your mule".

How they broke in was surprising. I've known for a while that the window is usually the point of entry. There is a window by the back steps. It had some hooks on it so that it would not open more than four inches. What they did was take the top window and pull it down very hard, busting the hooks off. They then climbed over the window and into the apartment. The police advised me to get some bars for the window, install them, and worry about how the landlord feels later. Probably not a bad idea....

We'll see how the State Farm people handle this. The cameras and the old cell phone were insured with a no-deductible replacement policy. Hopefully the policy is worth it....

Friday, December 1, 2006

Brew 27: Carmenere/Cabernet Sauvignon

This is another Wine Expert Limited Edition kit. The grapes were from Chile, Maipo Valley. Brew #24 is still in the V-Vessel, and will be bottled Real Soon Now, so I tried an experiment; I ordered some Better Bottles with ports, racking adapters, and high-flow valves. Those adapters are expensive! I think it's because they use a special plastic for it. All I know is, I'm really looking forward to not having to siphon, or worry about sanitizing when I want to draw a sample.

This wine comes with a lot of oak, and some bentonite. It was the bentonite that made me think of using the Better Bottles to begin with. Bentonite is a clay, and in the past it had clogged up my v-vessel. So I tried using a 6-gallon Better Bottle as a primary fermenter.

First observation: there is a reason they say in the instructions to use a container that can hold 8 gallons for your primary. There is not much room left over once all the stuff is added. I placed a carboy hood on it and left if for the next day.

This morning, I took a look at things and noticed that there didn't seem to be that much activity. I pulled the stopper from the carboy hood and it was like opening a coke---a huge amount of pressure had built up! I'm glad I checked it; had I left it for the day it likely would have popped the hood, or worse. Once nice benefit though; with all that pressure, I have good verification that the racking adapter and valve assembly is sound.

So, stats on the wine: I took a S.G. reading, it was as 1.120. In one week I will need to rack this to the V-Vessel.

Friday, November 24, 2006

Google Toolbar for Ubuntu Edgy Firefox

I installed ubuntu's Edgy-Eft distribution early this month. I'm very happy with it. But... the Google toolbar wouldn't install in the firefox version that came with the distribution. Firefox would tell me that it wanted plugins compatible with linux-gnu_x86-gcc3.

Happily, it's easy to fix. First, you download the .xpi file. Despite the extension, it's in zip format. Unzip it, and open the file install.rdf and look for where it says


and replace it with


This package is signed, so you also have to delete the signatures for firefox to take it. Just delete the directory called META-INF to erase the signatures.

Finally, zip the contents back into your .xpi file, and point your browser at it. It should install without a problem.

Of course, I disclaim all liability for anything that might happen if there are problems... and while I don't thing the nice people at Google will have a problem with you doing this, I expect they'll also prefer that you keep the modified package to yourself.

I was able to get the Mozex plugin working using a similar method (tell it that it is, in fact, compatible with firefox 2.0.*).

Happy hacking!

Wednesday, November 22, 2006

Adventures on the CTA: Snakes on the Train!

I got a new pet yesterday!

Her name is "Mrs. Snake", a seven year old albino corn snake. She is about four feet long, and likes to be worn around people's necks.

I got her from a friend Sylvia who lives in town. I had brought a pillowcase in which to transport her, but Mrs. Snake had climbed into my my shirt when it was time to leave, so I just put on my jacket and headed back to the El.

Walking over to the train, Mrs. Snake started to wonder what was up, so she climbed into my coat sleeve and poked her head out to investigate. It was chilly out, so she didn't to much more than that. I made her go back in when I got on the El, since I wasn't sure what the CTA people would have to say about this. (I did see a guy wearing a ferret in his jacket before, though....)

On the car were a bunch of girls all talking simultaneously on their cell phones, a few people heading back from a late night at work, and some vaguely european-looking guy staring across the car yelling "yummy! yummy!" like he was constipated. (No, I don't know what yelling constipated people sound like. But if you were to tell me that he was constipated, and that that was why he was yelling "yummy! yummy!" on the train, I would admit that this is how I would expect such a person to sound.) The girls on their cell phones would glance his way periodically to make sure that he was content to stay in his own seat while yelling "yummy yummy".

I started to wonder what would happen if Mrs. Snake chose that particular moment to become curious of her surroundings. I decided it would be best not to find out, and made sure she stayed in my coat sleeve for the rest of the ride home. But imagining the scene was a lot of fun.

For her cage, I repaired the cage that G'Kar used to have (G'Kar was my old corn snake, who escaped during my move to Chicago, and is probably now in the sewers, and will grow to be 100 feet long and start eating tourists in Lincoln Park) with the help of some Gorilla Glue ("The strongest glue on the planet!"), and put in some coconut shavings as substrate. She seemed to like the coconut substrate, and burrowed into in almost immediately. I was glad to see that; I want her to like her new home.

Tuesday, November 7, 2006


It's official...

What American accent do you have?
Your Result: The Midland

"You have a Midland accent" is just another way of saying "you don't have an accent." You probably are from the Midland (Pennsylvania, southern Ohio, southern Indiana, southern Illinois, and Missouri) but then for all we know you could be from Florida or Charleston or one of those big southern cities like Atlanta or Dallas. You have a good voice for TV and radio.

The Northeast
The Inland North
The South
The West
North Central
What American accent do you have?
Take More Quizzes
Looks like they forgot to put the CSS in the "cut this and paste it" part, but basically, the top three bars should be red nearly 3/4 the way across, and all the same length. The rest drop off quite a bit after that. And yes, for those who wondered, I told them that "pin" and "pen" sound the same! :-)

Sunday, October 8, 2006

Brew 26 -- Winter Warmer

Yep, the second brew in as many weeks. This time it's a Northern Brewer all-grain kit called Winter Warmer. It's supposed to be a higher-alcohol kit, and the 1.060 original gravity seems to confirm that. :-) This time I had much better results with the mash temperature; I heated the water to 180 degrees, added it directly to the mash-tun, and then added the grains, all in one go. I had 4 gallons of water, and just over 12 lbs of grain. The temperature after all that was about 156F, so I added some cold water to bring the temperature down. Next time I will use a 1:1 ratio instead of 1.33 qt H20 : 1 lb grain. Anyway, here's the recipe....
Date of Brew: October 7, 2006
Date of Bottling: Not yet!

  • Grains
    11.5 lbs Crisp Maris Otter
    1 lb Simpson's Crystal
    0.25 lbs Simpon's Chocolate
  • Hops
    1 oz Northern Brewer (60 mins)
    1 oz Fuggle (30 mins)
    1 oz Kent Goldings (1 min)
  • Yeast
    Wyeast #1728 Scottish Ale Yeast #1145261

4 gallons, 153 F for 60 min.
There was supposed to be a 170 F for 10 min, but I couldn't get the water temperature to budge, because there was too much thermal inertia from the initial four gallons.
Number of Gallons in Boil: 6
Boil Time: 60 mins
Gallons in Fermenter: 5

Saturday, September 30, 2006

Brew 25 -- Irish Red Ale

This brew is dedicated to Hunahpu, the All Grain Evangelist, for encouraging me via his blog to start all-grain brewing.

Yes, this is my very first all-grain brew. I learned a lot from this; perhaps the most important thing I learned is that it's easier than it sounds from the instructions.

Special notes: I was unable to get the mash temperature to 150; I got it to 145F, but by then there was so much water that it was hard to get it to budge. So, I expect that this is why my original gravity is so low (1.042). I suspect this will result in a dry, perhaps cloudy (I didn't have any idodine to check for starches. I have no idea what happened in there....!) beer. But, the next batch will be a very high-gravity Christmas beer, so it's just fine by me that this one is more of a "session" beer. (I hope I'm using that term correctly. I *think* it means that the alcohol content is low, so it's fine to quaff a few in one go.)

Also, this is my first time using Wyeast. I have to say, I do like the "smack pack"... instead of a vial, the yeast comes in a mylar like package. Inside is a pack of nutrients. You smack the package, the nutrient pack busts open, and the yeast gets jumpstarted. You can then see from the package swelling that the yeast is alive and active. The last two yeast vials I got from White Labs/ morebeer were DOA. Not their fault really---I placed the order in the summertime, and during the 5 day trip from LA I'm sure they got baked. I'll have to be more careful next time. This batch came from Northern Brewer, located in Minnesota.

Date of Brew: September 30, 2006

  • Malt Extracts
    None! It's an all-grain!
  • Grains
    9lbs 2-Row
    1lb Crystal 120L
    8oz Aromatic
    8oz Caramunich
    2oz Black Roasted
    2oz Special B
  • Hops
    1oz Magnum Hops (60 min boil)
    2oz Willamette Hops (5 min boil)
  • Water Treatments
    1 tablet Whirfloc (20 min boil)
    Oxygen, after adding to carboy

Number of Gallons in Boil: 6.5
Boil Time: 60 mins
Original Specific Gravity: 1.042
Expected Final Specific Gravity: 1.02
Expected Alcohol Content: 2.8%
Gallons in Fermenter: 5
Temperature of Wort at Pitching of Yeast: 75F
Yeast: Wyeast 1084 Irish Ale (Pkg #1517256)
Quantity: 125mL, 100B cells
Time of Pitching: 17:50

Saturday, September 23, 2006

It got out....

From the title of the blog, you might suspect that this whole blog is about tarantulas. It is true, I do own five of them right now, but I haven't been writing much about them. I have had one of them for over 13 years now. The reason I haven't written more is, well, they're kind of boring. Don't get me wrong, I love looking at them and watching their individual behaviors, learning the nuances of each different species and each different animal. But it usually doesn't make good blogging material.

Until one gets loose.

About two weeks ago, right before my California trip, I went to add water to the cages, and noticed that one of the cages was empty. Uhoh.... This particular cage has a lid that's not immediately obvious when it hasn't been secured. But the spider (this was the Zebra Knee) occasionally tests the perimeter, much like the velociraptors in Jurassic Park, and this time her persistence paid off.

I had no idea how long she had been gone.

I spent a few days looking in all the spots I could imagine going if I were a tarantula, and hoping that I found it before a neighbor or a visitor did. I wasn't too worried; they are scary looking if you're not used to them, but this particular one is quite unlikely to hurt someone... the bite does have venom, but nothing more serious than a bee sting, and it would not try to do that anyway unless someone cornered it and started poking at it to provoke it. But I was worried that I'd hear a scream from one of the other apartments, followed by a *whump* sound, and know that there was one less tarantula in the world and one more stained Chicago phone book to take its place.

It all ended well, though. Wednesday morning I got a call from my new neighbor across the hall. "I just found this huge tarantula in the hallway. Do you know anyone here who has one? I'm not sure what to do with it!" She had the presence of mind to get a shoe box, catch it, tape the box shut, and even added some air holes. I'm thankful to have friendly, understanding neighbors! :-) So, the spider is safely back home. Hopefully now we can go back to our normal boring routine!

Saturday, September 16, 2006

Brew 24: Italian Piedmont Nebbiolo d"Alba

I wanted to do an all-grain brew today, but I think that will take six hours, and I have too much work to do, so I decided to do a wine instead. This batch, brew 24, is the Selection Limited Edition Italian Piedmont Nebbiolo d'Alba. The initial gravity was 1.094, at the high end of the acceptable range for this variety. There's only 5 bottles left of Brew 19, so I really need to get with it if I'm going to have that nice four batch queue like I wanted.

In other brewing news, Heidi and John's wedding was a blast! I had made some sparkling wine for the wedding, and the response was very favorable. I had pressurized it to 10psi, and that made it very subtly bubbly; I think next time I'll try 20 or 30psi. There are still four bottles left; we had just the right amount at the wedding itself.

Oh, yeah, the wedding itself was great, too! :-) The weather was perfect, the food was excellent, and I got to spend time with a lot of friends. It was great watching Heidi's younger relatives working the dance floor, too!

Thursday, August 24, 2006

Swapping Caps_Lock and Escape

Since I recently "switched religions"---i.e., I use vim now instead of xemacs, I find that I need to hit the escape key quite a bit more frequently for some reason. :-) Now, one of the major advantages of the vi-class editors is that you don't need to move your hands from the home row that often. If you happen to know how to touch-type, then this is a major advantage.

On my keyboard, the escape key is located way at the top. This is inefficient. Insprired by a recent discussion on slashdot, I decided to swap the escape and caps-lock keys. The slashdot people helped get me started by reminding me of xmodmap, but the poster was trying to remove capslock altogether. Acutally, I do use capslock on occasion. (I touchtype....)

I used xev to figure out the keycodes for the keys that I wanted to remap. Just run xev and hit the key you want. When I hit Escape, here's what it printed out:

KeyPress event, serial 29, synthetic NO, window 0x2600001,
    root 0x4c, subw 0x0, time 1088941543, (43,83), root:(594,518),
    state 0x0, keycode 9 (keysym 0xff1b, Escape), same_screen YES,
    XLookupString gives 1 bytes: (1b) "
    XmbLookupString gives 1 bytes: (1b) "
    XFilterEvent returns: False
The "keycode 9" is the part you want. A similar action shows you that capslock is keycode 66.

Now you are ready to write your .xmodmap file. Here is mine:

remove Lock = Caps_Lock
keycode 0x42 = Escape
keycode 0x09 = Caps_Lock
add Lock = Caps_Lock
First, it removes the "lock" functionality from the capslock key. Then I tell it that key 66 (0x42 is hexadecimal for 66) is now the escape key, and that key 09 (the old escape key) is now capslock. Finally, I add the Lock functionality back to the new capslock.

It works very well. Typing in vim is much faster, since I can switch modes with the same ease that I can shift letters. And if I do decide to use capslock, it is still there, not that far away. Now that I've reprogrammed my keyboard, all I have to do is reprogram my hands....

Thursday, August 17, 2006

The Mother of All Blenders

I've been making my own soymilk for a while now, but the filter in my SoyaJoy finally wore out. I started making soymilk with my blender, and discovered that it was actually a lot easier than I thought it would be.

Until the magic smoke started coming out of the blender. It seems that grinding soybeans is very hard on a blender.

I'd wanted one for years, and now I had the perfect excuse. It Was Time.

I got the vitamix blender.

Imagine, if you will, a blender with settings from 1 to 10, and High. You then notice that 3 is labelled "liquidate". It's like in spinal tap where the amp can go up to 11, but in this case, it's more like 30.

The nice thing about this machine is that it can turn a vegetable into a juice (albeit a thick one) easily. It obliterates anything you put in there. The advantage is that you end up eating the whole fruit, skin, seeds, fiber, and all. Much better for you.

Other tricks it can do: ice and strawberries become icecream if you leave it in there for about 60 seconds. A blend left in there for 4-5 minutes will become soup, the friction heats it to boiling. It also can grind wheat berries into flour.

I've eaten more vegetables today than I usually do in a week. I had two carrot juices (one with a tomato and some ginger, one with some lemon); a soymilk and strawberry smoothy, a bowl of soup (carrots, tomato, potato, celery, etc.) which was very filling, and I made some lemonade. Of course, I also got to make my soymilk, which was the stated purpose of getting this in the first place.

I've been wanting to go more "whole food" for a while, this sure makes it easier.

Saturday, August 5, 2006

Brew 23 -- Orange Blossom Spice Mead

This is an old favorite of mine. The spices and the orange blossom honey make a great Christmas mead. Further, since this is National Mead Brewing Day, I decided to take lots of pictures. They're at the bottom.

First, here's the recipe I used:
Date of Brew: August 5, 2006
Date of Bottling: Not yet!

  • Honey
    6lbs Orange Blossom Honey
  • Spices
    2T freshly crushed allspice
    1t freshly ground ginger
    0.5C golden raisins
  • Water Treatments
    2 Gal Water

Number of Gallons: 2.5
Original Specific Gravity: 1.085
Expected Final Specific Gravity: 1.0
Expected Alcohol Content: 11.3\%
Yeast: White Labs Champaign Yeast, which didn't work (It was past the expiry date, I think that's what went wrong), and Red Star Bread Yeast, which started fermentation very quickly.
Quantity: 5mL of White Labs, 2 T of Red Star
Time of Pitching: 18:15

How to Make Mead

Making mead is very easy. If you are thinking about getting into brewing, and are concerned about the complexity, this is the easiest starting point.

You will need, at a minimum...

  • a fermenter, such as a 3 gallon carboy.
  • an airlock and stopper,
  • honey,
  • something to use for yeast nutrient
  • sanitizing fluid,
  • and yeast.
Life is easier if you also have...
  • a hygrometer, to measure the specific gravity of the brew. This allows you to tell how much alcohol is in your final product. This, of course, is optional. If you like how it tastes, you've done what you set out to do!
  • oxygenation equipment, to oxygenate the must (unfermented honey solution). You could just shake up the fermenter after you add everything; that will probably be enough. Using an oxygenation system will lower the risk of contamination, and take less time.

First, you need to get out your equipment. Here is the fermenter, (a three gallon carboy), 6 lbs of Orange Blossom Honey, and the yeast.

You also want some sanitizing fluid. Really, the only two non-negotiables in homebrewing are 1. start with good ingredients, and 2. cleanliness is Godliness. Any bacteria that get into your must/wort is going to have a party, so make sure not too many get in there.

Now, add the honey to the fermenter.

You may want to rinse out the honey jar to get the remaining bits.

Next, take a sample. You need to measure the specific gravity to know how much alcohol is in the final product. Don't worry if you don't have the equipment for this; it will still taste just fine.

Here I am reading the hygrometer. It's at 1.085. You should drink the sample, or throw it out. Never return a sample to an unfermented wort; you risk contamination that way.

After adding other ingredients, I added the yeast.

Then I forced oxygen through the must to give oxygen to the yeast cells. You usually don't really have to do this, but it helps the yeast.

Finally, you add an airlock. You want the carbon dioxide to get out, but you don't want anything outside (oxygen, which will spoil the mead once it has fermented; and bacteria) to get in. I'm putting Soju in it, a kind of Korean vodka. It's sterile, and if some of it accidentally gets inside the mead nothing bad will happen.

Now all I need to do is wait....

Wednesday, August 2, 2006

End of the Summer

The summer semester is finally over. Teaching two courses over the summer is a lot of work! Especially when one is a new prep. I have about three weeks before the next classes start. I have a few projects in mind....

  • Course development! No, I'm not a workaholic. I just don't want to stop.... I have three courses next semester. Two of them are well-prepped, but a course (if you care about it) is like a book or a painting---you never really finish it. If you have a passion for anything creative, you know what I mean.

    One thing I want to work on is my Question Database. That came in really handy this semester; the text book had very little in the way of examples (not the authors' fault--it's still in progress), so the ability to post many examples with solutions really helped the students out.

  • I'm thinking about making some more web pages for my course, especially data-structures and programming languages. I was inspired by this Biology text. Tons of extra content on the web... I'd like my courses to have stuff like that. Hm... pod-casts about lambda calculus? Maybe not. But there have been some very interesting posts about Java, the antifunctional programming language, and a related post about fold and map, two higher order functions, and how they are used by Google to get real work done. As a specialist in functional programming languages, I have to say I approve.
  • Learning Statistics and the R programming language. This language reminds me of APL. I love collecting data, but don't have much reason to do so, except analyzing exam scores. Next semester I am going to start taking attendance and correlate those with exam grades. It would be nice to have some data about how much attendance affects learning outcomes.
  • Rewrite my file cabinet software. I put a number on each file in the cabinet, and put a description in a searchable database. Pretty obvious really, except hardly anyone ever does it. You can find something in the cabinet in about 5 seconds or so if you do it right. Oh, bad things happen if you lose that database though....

    I hosed my computer this summer, and ended up installing xubuntu, the XFCE version. I didn't want to reinstall mod_python, so I'll have to redo the pages in ruby.

  • Brew some Mead. August 5 is National Mead Brewing day. I also recently got an All Grain brewing kit, so I'll try that out once the temperatures reach something approaching reasonable. And I have two wine kits I need to get started....
  • Weddings! I have five of them to go to in the next two months! I got a good deal on a car rental, though, with I-go cars, a car-sharing network in Chicago. For $60/day, you get a car and 200 miles. This includes gas and insurance! (If you sign up, let them know you heard about it from me, okay? I get a referral credit!)
  • I'm starting to do research again, too....
Another busy vacation...

Thursday, July 6, 2006

The Kegerator

I finally got the tower installed on my kegerator!

I got a power tool just for this project, called the Rotozip. It's a spiral saw; I'd never heard of one of these things before. It looks like (and apparently can be used as) a router. Very good control, once you get used to it. I'm sure I'll have many other uses for this thing.

I've also posted an album of the construction process.

The first beer on tap is an Extra Special Bitter.

Friday, June 2, 2006

Sick and Sushi

I've been sick the last few days. The first day, Tuesday, was the worst. I spent most of the day in bed with a 103 fever. Or at least, it would have been, except that the times I wasn't in bed I was getting up to drink fluids and eat Ibuprofen. That Ibuprofen stuff is wonderful. The next few days the fever stayed at or below 100. The only realy problem is at night my throat gets dry and tickles, so I can't sleep because I'm coughing.

I'm mostly better now, I think my immune system has almost finished off the last pockets of resistance. Nothing too uncomfortable, but I find it nearly impossible to concentrate when I have a fever. So it ended up being a forced vacation. Hopefully tonight I will be able to sleep okay.

Yesterday, I decided to learn how to cook some new dishes. I like gormet cooking, and I've decided that I need to do a lot more of it, even if it takes a little more time, since I end up eating food that's a lot healthier than what is available quickly.

I learned how to make Dashi stock, thanks to a blog about Japanese food, and in particular this post. I used it to make miso soup with udon noodles. It's suprisingly easy to make!

The next day, I got some nori, made some sushi-rice, and made some kim-bop (that's Korean for "maki" or "sushi rolls", I think), and some sushi with smoked salmon. Note, you need a really sharp knife to cut kim-bop. Here's the result:

Note to parents: no, this fish is not raw, it's smoked.

I'll use raw fish next time. :-)

Monday, May 8, 2006

AJAX and mod_ruby

I decided to take advantage of the fact that my colleague's computer was down to rewrite the question database that I maintain for my students. Since it was going to be work moving it to my home machine anyway, I may as well enable ajax on it, right?

The process went smoothly for the most part. One snag was that the server often choked on an include file. Once every 7 or 8 loads it would complain that a method was not found.

It turns out that the problem was the way apache and mod_ruby cache ruby code. The require command apparently doesn't cache the code for each of the running subprocesses for apache. When you hit one of the non-cached ones, you get trouble. The solution is to replace "require" with "load".

Thanks to Tim Bates for posting a message about how to fix it. His post is here.

Tuesday, April 25, 2006

The Kegerator, Part 1

One of my hobbies has taken a new twist: I have decided to go to a draft system. Homebrewing has taught me a very interesting principle: don't buy a tool until you understand why you need it. This saves you money, and it also teaches you how to proceed if the tool suddenly becomes unavailable.

My last wine #19 got exposed to a bit too much oxygen in the last stages of the fermentation. Not a big deal; the flavor changed, but if I merely pretend that's what I was going for then nothing bad happens. The brew is still good, just not what I was shooting for. But... if I had a CO2 tank handy, then I could have gotten closer to my target. Also, not having central air, it distresses me about the temperature fluctuations under which my brew is stored. Finally, I need to make some champagne. It would seem that force-carbonating is the way to go, this time at least. Clearly, it is time to go to a draft system.

The first parts arrived today. I got a Fridgidaire 7 cu ft. freezer chest, and a thermostat from Here's a picture of the freezer. It should fit four kegs inside it, not that I plan to have that much on tap at once, but my bottled stuff will fit in there nicely.

On Thursday, the keg and CO2 tank should arrive....

Tuesday, April 4, 2006

Book Review: The Little Book that Beats the Market

One of my hobbies is stock market investing. You learn a lot about how businesses work, how the economy works, and you even can make a bit of money if you can keep your head when the market drops.

When I started, I gave myself three years to figure it out. If I didn't do well, I figured I would just buy an index fund and forget about it. With a lot of help from The Motley Fool, I've been able to learn quite a bit. And, it's nice to have a hobby that gives you money rather than takes it away. Not that I have put a lot in yet... and I still have tons to learn.

Anyway, the Motley Fool sent me this book. It was written by an analyst who wanted to explain investing to his kids, and he figured that if he could do that then he could explain it to adults as well.

This is a dangerous activity. The danger is that you could simplify things so much that the kids understand it only because there is no content, and make it inane and boring for the adults; or else you will simply fail, lose both the kids and the adults, and end up saying things that ought not be said, like "but the strike price of an option is obvious!".

This author succeeded, however. This is one of the most interesting investing books I've read. It's very short, and it explains a pretty simple strategy for building a portfolio that consistently beats the market over time. They explain the concepts very well, and very clearly. It was fun just to sit down and read it. Here's a bit of how their system works.

They use two criteria to pick stocks. The first is return on capital. A company that spends $1,000,000 on a store, then earns $500,000 has a 50% return on capital. They sort all the companies based on who has the best ROC, the top one gets a ranking of one, etc.

The second is earnings over price. If a company made $5/share, and a share costs $25, then the E/P ratio is 0.2 (which is actually pretty good). Again, the companies are sorted and ranked.

Then, they take the company's ROC score and add it to the E/P score. Sort again. Out of the 4000+ companies that you run this sort of analysis for, pick a bunch from the top 50 and buy them. What you will have purchased are companies that are able to make lots of money with their business (good performance), and companies that earn a lot of money compared to the price you have to pay for them (good price).

There's a bit more. They spend some time answering the obvious question "if this is so good, why doesn't everybody do it?", and give instructions for how to get started.

I'd say, if you wanted to own stocks in order to get a good return, had a 3-5 year investment horizon, then I highly recommend this book, especially if you don't have much time on your hands to do lots of research. And, if you do want to do further research, then the technique they publish will give you a lot of ideas of companies to investigate.

Thursday, March 9, 2006

Brew #19 Bottled!

I bottled the Woodbridge Cabernet Sauvignon today. The yield was 24 bottles, or 18 L. It should be "ready" to drink around May, and should be good for 2-5 years.

Some notes:

  • I did not add water to the fermentation at any time (other than the initial mixing). This should concentrate the flavor and decrease the yield, I expect.
  • I used a bare minimum of sulfite. We'll have to see if that causes problems with oxidation or not.
  • The V-Vessel seemed to work well, for the most part. The sediment ball was half full of sediment, but there was still a good bit in the fermenter itself. I think next time I will do some regular stirrings to make sure things settle into the ball.
  • To prepare the bottles, I have a three part regimen:
    • After a bottle is empty, rinse it out, and place it in the "labeled bottles" pile.
    • When you have about six of these, soak them overnight. Some labels will peel off, other will need your fingernails, many will need a copper wool scrubber (those are fantastic!). If there is sticky stuff left over after the paper is gone, regular dish soap and a scrubby sponge seem to get it off.
    • When ready to bottle, stick them in the dishwasher and use Powder Brew Wash as a detergent. I used one tablespoon (15mL) this time. Put the dishwasher on heat dry. This should clean any last remaining bits, and sanitize as well.
  • Did I mention, there was a lot of sediment?
The next brews will be a white wine that will be champagnified for a certain special party, and an extra special bitter. The ESP is also special because it will be my last regularly scheduled extract brew! After that, I'm going get the equipment for allgrain brewing. Hunaphu, you've done your job!

Wednesday, March 8, 2006

How Can They Be Jamming Us If They Don't Know We're Coming?
The Sears Tower, a Router, a LinkSys WPC54G, and LVM.

It all started when I moved the router in my office to get a better signal in the lecture room. I put it on top of the monitor of the computer next to where I set, so that my Dell Inspiron 8600 laptop could load a web page from across the building. That worked just fine. Except....

Two days later, I noticed two people with an oscilloscope and radar dish going up and down the hallway. "I wonder what that is?" I thought. A few hours later, one of them rolled it up to my door, knocked, and asked "Do you have anything in here emitting a 2.6 GHz signal?" as if it were a perfectly natural thing to ask and the most people would know the answer off the top of their head.

I mentioned that I was running a wireless router, a piece of junk from Hawking Technology that has been nothing but trouble ever since I got it. The network connection has always been flaky. My visitor mentions that such things run on a 2.4 GHz frequency, and should not be a problem. Wanting to be helpful, I offered to unplug it for him, to verify whether or not it was the source of the rogue signal. Sure enough, it was.

As it happens, IIT broadcasts their online courses from a dish on top of my building to another antenna on top of the Sears Tower. The signal is at 2.6 GHz. My router was causing all kinds of interference, and they had spent the last two days trying to hunt it down. Wow... I'm responsible for a signal being jammed at the source! Last time I saw a signal jammed at the source, it was the fault of some people who went to Ceti Alpha 5 and got eels put down their ears. Fortunately, that didn't happen to me. But in any event, that router is an FCC violation and can no longer be used.

A true hacker is happy when equipment breaks, because it's an excuse to buy new equipment. I went to the office supply store and picked up a new LinkSys WRK54G wireless router with a bundled WPC54G v.4 PCMCIA card. I got the extra card because I had wanted to replace my Orinoco card for a long time now with something that supported the 802.11g protocol, and that could scan for available networks (for some reason, my Orinoco card can't do that).

LinkSys routers are pretty solid. I haven't even tested it yet, feeling pretty confident that when I get to the office I can plug it in and it will Just Work with a minimum of configuration. The network card, on the other hand, would require some tinkering. For some reason, most wireless network card manufacturers hate Linux users. Or perhaps they simply can't be bothered with us, because very few will actually release drivers for their cards.

My new card's model is INPROCOMM IPN2220. Doing a quick Google search, I discovered two choices: either use the freeware ndiswrapper utility, or else use the Linuxant driverloader, which costs $20 for a license. The ndiswrapper didn't work at all, so I took Linuxant up on their offer of a free 30-day evaluation license. The basic idea is that these utilities load the Windows drivers and make a compatibility interface for Linux.

With the Linuxant driver I had partial success... the card was recognized, but it wouldn't connect to my router. The installer said that Windows uses a 12k stack, but my kernel was compiled with a 4k stack, and warned that this could cause problems. So, I recompiled my kernel for 8k stacks to see if it changed anything.

It did.

The kernel wouldn't boot anymore.

The LVM (Linux Volume Manager) software that manages the partitions on the hard drive wouldn't run anymore. No hard drive manager means no using the hard drive. The computer is not very useful without one of those. Ironically enough, about an hour before this I had helped someone set up a wireless network over the phone. That's the problem with being a computer guru. If someone else's computer breaks, they can call you. But if your computer breaks, you don't have anyone to call.

The next morning, I tried a few different things to fix the computer. The backup kernel (always keep an older kernel as a backup!) worked just fine, but the new one didn't, so I tried recompiling and reinstalling a few times. This didn't work. I tried rebuilding the LVM program, and noticed that at the end of the build process it reran the ldconfig program. Aha! LVM needs the kernel modules, and when I changed them, it broke LVM! Rebooting confirmed the suspicion; the machine would boot now. Moral: if you recompile the LVM kernel modules (ds and md_mod), make sure you relink your LVM utilities.

Now I could focus on the original task: to get wireless working. Note, I'm using a Gentoo distribution. I tried iwlist scan and was able to get a list of the networks. I used iwconfig to set the essid, nickname, and WEP key. But dhcp still would not connect.

It seemed that everything was set properly, but it still would not find the access point. I tried using iwconfig eth0 ap XXXXXX (where the Xs are my router's address), and it connected! This is somewhat annoying... I would have expected the connection to happen automatically. But at least I have a working internet connection now.

There's still a bit of work to do. The Gentoo network script needs to be made to handle this automatically. When I plug in the card, it sets the nickname to be what the essid should be (I don't get why it's doing that), and at boot time it no longer starts the PCMCIA utilities (though it thinks it's doing it). But at least the computer works again, and maybe this writeup will help someone else in the same situation.

Saturday, February 11, 2006

Brew #20; Bottled!

I decided it was time to bottle Brew #20, the Blackberry Honey and Cherry mead. Of course, I made sure to sample some. It's a cloudy yellow color, it actually looks quite like a belgian beer, because I didn't have any bentonite and didn't care too much what it looked like. :-) It has cherries on the nose and finish. It tastes like there is just a hint of carbonation, but it's only there if you look for it. Here is the final chart.
Date of Mixing: November 30, 2005
Date of Bottling: February 11, 2006

  • Honey
    6lb Blackberry Honey
  • Fruit
    2.2 oz dried Cherries
  • Water
    circa 2 gallons
  • Other
    About 2t Yeast Nutrient

Original Specific Gravity: 1.082 (quite low)
Expected Final Specific Gravity: 0.998
Expected Alcohol Content: 12%
Gallons in Fermenter: about 3 gallons
Yeast: Red Star dried Champaign yeast
Quantity: 900mL
Time of Pitching: 23:00
Lag Time: < 1 day
Number of Days in Fermenter: 73
Final Gravity: 0.998
Alcohol Content: 12%
Yield: 2.5 gallons

Tuesday, January 31, 2006

Black Bean Burgers

I've decided to try developing a recipe for black bean burgers. Here's my first go at it.

  • 12 oz dried black beans; or 4.5 C soaked beans.
  • 1 onion
  • 1 bunch of celery
  • 1 large carrot
  • 3 t soy sauce
  • 3 t garlic juice (or 3 cloves of garlic)
  • 2 t cumin
  • 0.5 C pinot noir, or other red wine
  • 3.5 C minute oatmeal


If starting from dried beans, soak overnight. Discard the soaking water, or else these burgers will be the gift that keeps on giving.

Put beans in a large pot, cover in water; you should use about twice as much water as there are beans. Bring to a boil for 10 minutes, then simmer covered for two hours.

Chop the onions and celeries, shred the carrot in a food processor, and fry in a pan with olive oil.

When the onions, celery, and carrots are done, puree them in the food processor.

In a large container (a kitchenaid mixer bowl is best!) add the puree, and then add the beans, reserving the boiling water.

Add cumin, garlic, wine, soysauce, and oatmeal. Mix with a mixing paddle until it all clumps together. Add more oatmeal if needed.

Let it rest for a while, maybe 15 minutes to an hour, so that it sets.

Shape into patties, and fry on a lightly oiled pan. Makes about 12 burgers.

The cumin was just right. They taste like they could use more salt, so next time I'll increase the amount of soy sauce. If you serve with ketchup the flavors blend very nicely, though, so salt would not be necessary. Also, next time I will not puree the carrots; I think it will look better to see the shreddings in the burger.

Friday, January 27, 2006

Genesis 3:6

She took...and she ate: so simple the act, so hard its undoing. God will taste poverty and death before `take and eat' become verbs of salvation.
-- Derek Kidner, Tyndale Old Testament Commentary on Genesis

Monday, January 16, 2006

Stardust@Home - pre-registration

Stardust@Home - pre-registration Many of you have probably heard of the probe that returned to earth the other day containing comet samples. That probe also contains (we think!) interstellar dust. But the estimate is that there will be about 40 grains.... so the UCB people are calling for volunteers to look at the scanned images of the aerogel returned from the probe to help them hunt for the grains. So if you've always wanted to do some NASA science, here's your big chance!