Blog

  • The Great Tire Showdown

    Summer’s over, and that means that the joys of cold weather bike commuting are right around the corner.  I’m still trying to find an all-season commuting tire that provides the best combination of speed and resistance to flats.  And of course, nothing provides a better test bed for tires than Maryland roads in the winter.

    The ultimate tire for flat resistance (at least in my experience) is the Specialized Armadillo.  I’ve ridden a set of these for over 3000 miles, until the sidewall wore out, without a single flat.  They’ve worked as advertised for me.  The only problem with them is they’re heavy and somewhat slow.  I’m not racing with them, so that’s not a huge problem.  But if I can find something a little lighter and faster with the same resistance to flats, so much the better.  If not, I have no problems sticking with the Armadillos.

    Last winter I ran a set of Vredestein Fortezza SEs.  These are more known as racing tires than as all-seasons, and they also have the advantage of being relatively cheap at under $30/tire.  The Vredesteins rode well, but the back tire only lasted around 2000 miles before it started flatting on me regularly (the front tire is still going strong).

    After buying a second bike this past summer, I now have 2 bikes to use for commuting, so this winter I’m putting 2 different tires through their paces:  Continental Ultra Gatorskin on the road bike, and Bontrager Race Lite Hardcase on the fixed gear/single speed bike.  Both sets are 700x23C, and both are new as of this writing.  I’ll be running both sets at 110psi, give or take.  NB – I never seem to get flats on the front tire, so I’m only comparing performance for the back tires.  The fixie has a set of 2 Bontragers, and the road bike has a new Continental on the back and an older Vredestein on the front.

    It’ll take a little more time to get the results in, as I’m now splitting my commutes across 2 bikes, so it’ll take longer to rack up miles on the tires.  But I’m looking forward to seeing which tire lasts longer under similar conditions.  Took my first ride on the Continental this morning, and surprise surprise, it rides a lot faster than the Armadillo it replaced.  Stay tuned!

  • Brewing…

    Thinking about brewing this yummy-sounding brown ale this fall…

    Oak Leaf Brown Ale

    • 6 2/3 pounds light malt extract
    • 1 pound crystal malt (80L or higher)
    • 1/2 pound chocolate malt
    • 1 pound dark brown sugar
    • 1 ounce Kent Goldings hops (bittering)
    • 1/2 ounce Perle hops (flavoring)
    • 1 package British ale yeast
    • 3/4 cup corn sugar (priming)

    Place crystal malt and chocolate malt in water and steep at 155 degrees for 30 minutes.  Remove spent grains and bring water to a boil.  Add malt extract, brown sugar, and Kent Goldings hops.  Boil for 1 hour, adding the Perle hops after 30 minutes.  Cool the wort and pitch the yeast.  Ferment for 7 to 10 days.  Bottle, using corn sugar.  Age in bottle for 7 days.

    Original Gravity:  1.044

    Looks pretty easy. The recipe is from “The Homebrewer’s Recipe Guide” by Higgins, Kilgore and Hertlein.

    At the same time, we’re going to brew a second batch of the holiday ale we brewed in 2007, which turned out really good.

    The big question is, when are we going to find a free day to brew 2 batches of beer?  Hoping to do it in early October, when the basement should be getting to a good temperature for ale fermentation.  Stay tuned!

  • This morning’s fun

    Today’s pool maintenance fun..

    1. Spend 30 minutes with the leafmaster, vacuuming up all the junk at the bottom of the pool from the storms last night.
    2. Achieve pleasant sense of accomplishment and well-being as I begin to remove the leafmaster from the now-clean pool.
    3. Watch leafmaster bag separate from leafmaster as I’m pulling it out of the pool, spewing all the junk back into the pool where it immediately settles back to the bottom.
    4. Mutter some choice words as I attempt to re-attach bag to leafmaster while it helpfully sprays water all over me and the pool deck.
    5. Check that bag is secure and repeat step 1.
    6. Pull leafmaster out of pool, this time with no mishaps, but now, instead of being happy, I’m sweaty and irritable.  But at least the pool is clean again.

    Ever think you might want your own pool?  Forget it and go join the neighborhood pool.  Thank me later 🙂

  • Beep. Beep. Beep.

    So.  We were without air conditioning in our building for awhile today.  Fortunately it’s a nice day out with unseasonably low humidity and a breeze, so I was able to open the window to make it tolerable.

    It’s amazing how much beeping you hear in populated regions (like college campuses) nowadays.  Seems like all day long, there’s beeping somewhere from a truck backing up.  There’s so much of it that it just kind of fades into the background with other stuff like birds chirping.  After awhile you don’t even hear it.  Something about the sound makes it carry over really long distances, and it’s also very non directional, making it hard to tell where it’s coming from.  It could be right around the corner, or it could be a mile away.  You can’t tell.  It’s just sort of “there.”

    Last fall I put fenders on my road bike, which I use daily for commuting.  They work great, but they make the bike really noisy.  Now that summer is here and the weather is drier, I decided to try to figure out why the fenders are so noisy.  I took the front fender off and rode to work with just the rear fender.  The bike was TONS quieter without the front fender.  I think that’s the culprit.  The fender itself doesn’t rattle, so apparently something is vibrating against the bike frame.  My front fork doesn’t have dropouts to mount fenders, so I had to use zip ties to attach the struts.  Could be the struts vibrating against the fork, or the front of the fender vibrating against the underside of the brake, or who knows what else.  If I can’t figure it out and make it stop, I may end up getting a clip-on fender to use on the front.  Or I could replace my front fork, or I could forget about fenders on the road bike and get a hybrid or cyclocross bike (with better clearance for fenders) to use in wet weather.  One can certainly never have too many bikes…

  • This and That

    So..  another summer is upon us.  Howard County schools finally let out at the end of this week.  I remember when I was a kid, summer vacation was almost 3 months long, and now it’s down to barely two.  Instead, there are tons more random days off during the school year, for “professional teacher work days” and the like.  Not sure if it’s a step forward or back, but I think if I was a kid I’d feel a bit gypped.

    Three weeks after uncovering, the pool is finally clear, clean and up to a reasonable swimming temperature.  It was more of a swamp than usual this spring.  Over 3 weeks I’d say it took 20 gallons of 12.5% sodium hypochlorite, 10 pounds of dry acid, 15 pounds of baking soda, and 3 pounds of aluminum sulfate (a flocculent) to get it cleared up.  I had to vacuum to waste 4 times, compared to twice on an average year.  Not sure what the deal was this year, but I’m sure the April heat wave didn’t help.  It also didn’t help that the pool was already starting an algae bloom when we covered it in late September.  Didn’t feel like dealing with it then, knew at the time it was going to give me headaches come spring, covered it anyway.  Lesson for the day:  Never put off fixing pool water problems..  they never go away, they just become bigger problems over time.

    The big new thing for the pool this summer is the salt water generator.  I installed it over the winter and early spring, in the hopes that it would cut down on work and help prevent water problems.  One of the problems with manual chlorination is that during the summer, you can’t neglect it, even for a single day, or you will end up with algae.  Automatic chlorine feeders are a step up, but you still have to buy, store and handle the chlorine, and you have to remember to keep the feeder full.  With the SWG, you dump an initial amount of salt into the pool, then you set the SWG and forget it.  Obviously they still require maintenance, but they eliminate the day-to-day drugdery of manual chlorination and eliminate the need to handle and store lots of chlorine.  Now, I keep a little bit on hand for “shocking,” but that’s it.  The jury will be out on the SWG until I’ve had it for a whole season, but up to now, it’s lived up to the hype and seems like the best thing to come along for pools since automatic cleaners.

  • Today’s Ride

    I got an early start on the commute this morning, so I decided to try an alternate, longer route to get from Elkridge to UMBC on the bike:

    • West on Montgomery Rd
    • Right on Rockburn Dr
    • Right on Montgomery Rd
    • Right on Kerger Rd
    • Right on Ilchester Rd
    • Left on Beechwood Rd
    • Left on Bonnie Branch Rd
    • Right on Montgomery Rd
    • Right on New Cut Rd
    • Left on College Ave/St Paul St
    • Right on Frederick Rd
    • Left on Oella Ave
    • Left onto Ellicott City Trolley Trail
    • Straight onto Edmondson Ave
    • Right on Melvin Ave
    • Left on Frederick Rd
    • Right on Mellor Ave
    • Bear right onto Hilltop Rd
    • Ride onto campus

    Sort of a 1-hour tour of Elkridge, Ellicott City and Catonsville.  Total distance around 18 miles.

    Almost all of my morning commutes take me through Patapsco State Park, so this was kind of a departure from the routine.  I’m looking for options for longer rides, and I wanted to see what the traffic was like on this route.  Turns out the traffic is not too bad, except for Ilchester Rd between Kerger and Landing, and Frederick Rd in Ellicott City.  But Ilchester is only busy on school days, and I’m only on Frederick Rd for about ¼ mile.  So all in all, I’d say this route is a winner.  Other observations:

    • The route has some challenging hills, but not until more than halfway in, when I’m fully warmed up.  Also the descent into the river valley on New Cut Rd. is much nicer than my usual white-knuckled descent down Ilchester Rd.
    • I swear I must have gone over at least 30 speed humps.  Next time I’m going to keep count just for kicks.  Maryland: Traffic Calming Capital of the World.
    • Not sure I’ll be riding on the Ellicott City Trolley Trail again.  Parts of it are pretty torn up by roots.  Not too road-bike-friendly.  The alternative is to take Westchester Rd, which shouldn’t be bad.
  • A tale of two web sites

    I’m a frequent shopper at my local big-box home improvement warehouse chains.  I’ve got my pick of them, too — at last count there were 3 Lowes and around 8 Home Depots within 30 minutes drive of my house.  Welcome to the Baltimore-Washington corridor.

    I’m also a web surfer.  I like to plan projects at home and then look for the stuff I need online before I actually get in the car.  I’m sure there are many more like me.  And for the longest time, neither of these two retailers seemed to “get” this.  Searching for stuff on their web sites was mostly an exercise in futility.  In most cases, the search results I got back were either incomplete or totally unrelated to what I was looking for.

    Lowes has made some improvements to their web site in recent years.  Case in point: recently I was looking for some PVC electrical conduit and fittings.  Both Home Depot and Lowes carry a fairly complete line of PVC conduit manufactured by Carlon.  I went to both retailers’ web sites and searched for “carlon.”  Lowes’ site worked great, returning several pages of relevant results.  Home Depot’s site “helpfully” corrected my search term to “gallon,” and returned several pages of shop-vacs and pressure washers.  Guess where I ended up going?

    I guess the moral here is that retailers need to start realizing that their web sites are extensions of their store fronts.  Online catalogs should be easy to search and results should reflect what’s actually on the shelves in the stores.  I’m sure that’s much easier said than done, but ultimately, modern consumers are going to be driven to the stores that have the best web sites.

    Disclaimer:  I am a Home Depot shareholder.

  • Chlorine Generator Manifold Repair

    I’m in the process of installing a salt-water chlorine generator (model DIG-60 from AutoPilot) for my swimming pool.  As part of this, I need to plumb the salt cell in downstream of my filter.  The cell is part of a big inline manifold which includes a 3lb spring check valve.  The valve’s purpose is to limit the water pressure going through the salt cell, theoretically extending the cell’s life.  Anyhow, as I was preparing to install the manifold, I dropped it (don’t ask) and the check valve broke away from one of its adjoining tees:

    Broken AutoPilot Manifold
    Broken AutoPilot Manifold

    What to do here?  The whole manifold is solvent-welded together, and the tees are attached to proprietary unions.  At first glance there appeared to be no way to fix it other than ordering a replacement manifold, at a cost of over $100.  By contrast, a replacement check valve can be had online for $15-20.  So I decided to think outside the box a bit.  The check valve is made by Flo-Control and is commonly sold as an air check valve for spa blowers.  It has a 1½” socket and a 2″ spigot, meaning one can either attach a 1½” pipe “inside” it, or a 2″ pipe “around” it.  AutoPilot ships it with 2″ tees cemented to either side, which attach to the pool’s plumbing.  My pool has 1½” plumbing, so I would ordinarily need a reducer bushing to attach to the tees on the manifold.  When the manifold broke, the 1½” socket end of the valve was left stuck inside the tee.  Eventually, it occurred to me that if I cut the other tee away from the valve, I could flip the tees around and cement a new valve to the intact ends. The other ends, with the remains of the original valve, would then accommodate my 1½” plumbing without the need for reducer bushings.  It seemed like a great plan, so I pulled out my trusty miter saw and cut the intact tee away from the old valve, leaving me with 3 pieces:

    AutoPilot Manifold Parts
    AutoPilot Manifold Parts

    I then went online to look for a replacement valve, and promptly ran into another problem.  It turns out that this particular valve is sold in a bunch of different spring weights:  .75, 5, 10, and 15 pounds, to name a few.  The version that ships with the AutoPilot has a 3lb spring.  And here’s the problem:  I wasn’t able to find the valve with a 3lb spring anywhere.  It’s not even listed on Flo-Control’s web site.  They’re apparently made special-order for AutoPilot.

    Makeshift check valve spring removal tools
    Makeshift check valve spring removal tools

    Undeterred, I wondered if I could remove the spring from the broken valve and reuse it in a new valve. With the help of a couple of makeshift “spring removal” tools I fashioned out of copper wire, I was able to extract the spring. As a proof-of-concept, I then replaced the spring with the help of some needle-nose pliers.  Encouraged, I went ahead and ordered an identical valve with a .75lb spring.  I chose the model with the lightest spring I could find, figuring it’d be the easiest to get out without damaging the valve.  The valve arrived a few days later, and happily, it was identical to the original valve, other than having a different weight spring and not being broken.  The lighter-weight spring easily came out of the new valve, and with a little effort I was able to insert the 3lb spring.  Turns out direction matters when re-inserting the spring:  it initially wouldn’t seat properly, but when I flipped it around it went right in.  With that, I had a working, non-broken 3lb check valve.  I then cemented the two tees onto either end of the valve, completing the repair:

    Repaired AutoPilot Manifold
    Repaired AutoPilot Manifold

    All that’s left to do is plumb it in and make sure it works.  Assuming it does, my little accident (dropping the manifold) cost me a lot less than I had feared.

  • Perl rocks

    I’m doing a bit of tidying-up of my online music library for consistency..  editing tags, renaming files, that kind of thing.  My library consists mainly of FLAC files ripped from my CD collection.  My music player of choice on my Ubuntu box is Banshee.  Banshee has an “Edit Metadata” feature which looks very handy on the surface, but it appears to have a bug where it doesn’t actually save the metadata edits back to the file.  It does, however, update the metadata in Banshee’s internal database, so in Banshee, it appears that the changes have “taken”, but when I play the music files elsewhere it becomes apparent that the changes haven’t been saved out to the files.  Of course, I didn’t discover this problem until I had made edits to 250 files or so.  Nothing against Banshee here of course..  it’s free and no warranty was ever implied or expected.  But, I did have some files to fix.

    Fortunately, as I mentioned earlier, the edits I made were saved in Banshee’s internal SQLite database.  So all I really needed to do was whip something up to compare the database with the actual tags in the files.  First, I dumped Banshee’s SQLite database to a flat file:

    sqlite3 banshee.db 'select * from Tracks'

    Then I wrote a quick Perl script that extracted the FLAC tags from each of the files in the database dump and compared them to the corresponding fields in the SQLite table:

    #!/usr/bin/perl
    
    use URI::Escape;
    use Audio::FLAC::Header;
    
    print "Key\tPath\tFLAC tag\tDB tag\n";
    while (<>) {
        chop;
        my %dbTags = ();
        my($path);
        ($path, $dbTags{ARTIST}, $dbTags{ALBUM}, $dbTags{TITLE},
         $dbTags{GENRE}, $dbTags{DATE}) =
            (split(/\|/))[1, 3, 5, 9, 10, 11];
        next unless ($path =~ /^file:\/\//);
        next unless ($path =~ /\.flac$/);
        next if ($path =~ /\/untagged\//);
    
        $path =~ s/^file:\/\///;
        $path = uri_unescape($path);
        if (! -f $path) {
            print STDERR "Can't find $path\n";
            next;
        }
    
        my $flac = Audio::FLAC::Header->new($path);
        my $tags = $flac->tags();
    
        # Strip extra date info..
        $tags->{DATE} = substr($tags->{DATE}, 0, 4);
    
        for (keys %dbTags) {
            if ($tags->{$_} ne $dbTags{$_}) {
                print "$_\t$path\t$tags->{$_}\t$dbTags{$_}\n";
            }
        }
    }
    
    exit 0;

    This script outputs a tab-separated file that shows all of the discrepancies, suitable for loading into your spreadsheet of choice.  I only had to make a small number of edits, so I made the changes manually with EasyTag.  But if I had wanted to take this farther, I could have had the Audio::FLAC::Header module actually save the corrections to the files.

    Yet another reason to love Perl.

  • Today’s ride

    It was my coldest morning commute of the year today.  14° with a wind chill of 2°.  I usually check the temperature before getting on the bike, so I can figure out what to wear.  Didn’t bother today..  already knew it was going to be cold, so I just bundled up.  In hindsight, I’m glad I didn’t check, because it would have made the ride seem colder, and may have deterred me from biking at all.  Sometimes, ignorance is bliss.

    Stuff I wore..  Head: balaclava, helmet and Uvex glasses.  Torso: short sleeve exercise top, arm warmers, Under Armour long sleeve top, PolarTec top, outer shell.  Legs: thermal tights under cycling shorts.  Feet:  SmartWool socks, “toasty toes” chemical toe warmers, cycling shoes, slip-on toe covers, and neoprene thermal shoe boots.  Hands: thick winter gloves.

    I kept pretty warm with the above.  My hands and wrists were a little sweaty at the end.  This was the first time I tried the chemical toe warmers, and they worked pretty well, that is to say, my toes weren’t numb at the end, unlike the last time I rode when it was south of 20 degrees.  My face got a little cold when riding into the wind, but not unbearably so.

    20° seems to be the magic ice-in-the-water-bottle cutoff temperature.  I’ve had ice on both my sub-20 rides, but never anything when it’s 20 or above.

    Last but not least..  I’d recommend staying away from the “Zero Xposur” brand.  They make various kinds of winter outerwear.  I’ve had the zipper break on a winter coat, and the stitching is coming apart on a pair of heavy gloves, both after relatively light and infrequent use.  Might just be a coincidence, but I’m going to be avoiding them in the future.