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.

Aargh, I hate winter

Forces of nature are conspiring to keep me off my bike lately.

I managed to bike to work twice last week in spite of the big ice storm that hit the Baltimore/Washington area.  Then I went out for a quick 20-miler this past Sunday, and promptly broke a spoke on my back wheel.  This was the third broken spoke for me since last fall.  The first, I replaced myself.  After the second, I dropped the wheel off at the bike shop.  They replaced the spoke, trued my wheel up and informed me that my rim was bent and this likely wouldn’t be the end of my problem.  Sure enough, they were right.

So…  the bike spent Monday and Tuesday in the shop getting a wheel rebuild with a new rim and spokes.  Naturally, the weather both days would have been fine for bike commuting, if I had had a working bike.  Tuesday evening I bring the bike home from the shop, anxious to ride in this morning.  And of course, this morning I wake up to a “surprise” 2-inch snowfall.  Bummer.

The snow prompted UMBC to delay opening till 10am (caution on their part because of all the bad press they got after the ice storm, I guess).  By 9:45, conditions had improved to the point where I probably could have biked in, but I had a 10am meeting scheduled, which didn’t leave me enough time.  So I drove in, and found out the meeting had been cancelled.  And now it’s beautiful out.  A Murphy’s Law day if there ever was one.

It looks like the snow is out of the forecast for awhile, but tomorrow is going to be arctic with a high of 28 and a wind chill of probably half that.  Damned if that’s going to stop me, though. 🙂

Back on the bike after ice storm

I rode my bike to work today for the first time since the ice storm that hit the Baltimore/Washington area this past Tuesday and Wednesday.  My usual commute takes me through Elkridge, Relay, and Arbutus, MD, including a short trip through the Patapsco State Park Avalon Area.  Today, the roads were fine for the most part, actually a little drier and less salt-strewn than I expected.  The park, however, was still a massive sheet of ice, and being that I was on a road bike with skinny non-ice-friendly tires, I skipped the park and did a short detour onto U.S. 1 instead.  Biking on U.S. 1 is never my first choice, but it was only 1/4 mile on a stretch that has adequate shoulders.  All the same, it was the first time I had ever biked this stretch, and fortunately it wasn’t too bad (aided, I’m sure, by the fact that it was 9:30am and traffic was thinning out).  Nice to know that I have this option available in the future on days when the park is impassable.

The roads weren’t too bad on the UMBC campus (my destination) either, other than maybe a little more salt than the county roads.  The sidewalks were passable.  On the roads they use what appears to be the same salt the county uses, but for the sidewalks they use this weird white foamy-pellety stuff that sticks to shoes and tires, and gets tracked all over the place inside the buildings.  Thanks to full fenders, my bike stayed pretty clean for the entire ride, until the very end when I rode on the sidewalk.  Now the tires are covered with this crap, and I’m sure there’s a long trail of it leading from the front door to my office suite.  (Update — apparently this is Calcium Chloride, and come to think of it, it looks suspiciously similar to the Calcium Chloride “Hardness Plus” pellets I put in my swimming pool.  Wonder if it’s cheaper per pound…)

The ride home should be interesting.  It’s sunny right now, but apparently it’s supposed to cloud up through the afternoon and there’s a chance of snow showers.  We’ll see how it goes.

Snowblower

It’s actually snowing here in the mid-atlantic, although I’m predicting another non-event similar to so many others we’ve had in the past 3 winters.  I think that when all is said and done, we’ll end up with maybe an inch and a half of snow, not quite enough to cover the grass, topped with a light glaze of ice – A typical Maryland “wintry mix”.  Of course, the local news media has been in high gear since last night, leading off their 11pm broadcasts with radar maps, reporters standing in front of salt trucks, and dire predictions of rush-hour road catastrophes.  But for the most part, snowstorms in these parts rarely live up to the hype.

I have a snowblower that I bought back in late 2002, just in time for the big blizzard of 2003 (one of the rare storms that did live up to the hype).  It last saw action in February 2006, and since then it’s sat in my garage collecting dust.  I used to store it with the gas tank empty, but it would be an absolute bear to start that way..  so a couple years ago I started storing it with a full tank and a healthy dose of gas stabilizer.  That seems to keep it happy, providing I drain and replace the gas at least once a year.   Twice a year or so I’ll start it up to make sure it still runs.  I hadn’t done it for awhile, so I figured I’d fire it up this morning in case this latest round of wintry weather actually yields any “blow”able amount of snow.  And indeed, the snowblower started up pretty easily on its 9-month-old tank of stabilized gas.  The winning formula seems to be:

  1. Insert starter key.
  2. Check spark plug.
  3. Plug in electric starter.
  4. Close choke.
  5. Set throttle to full.
  6. Pump primer bulb 10-15 times.
  7. Crank electric starter until engine fires.
  8. Unplug starter.
  9. Slowly open choke as engine warms up.

I always feel sad starting up the snowblower, only to shut it off after 5 minutes or so of idling and return it to its resting place to collect more dust.  This morning, we had a slight powdering of snow on the driveway, just enough that the blower was able to pick a bit of it up and eject it through the chute.  So, I spent a minute or so blowing the powder off the driveway near the garage, which I could just as easily have done with a broom (or probably my mouth for that matter).  It was the first time the snowblower actually touched snow in almost 3 years.

Can’t wait to drive home this evening, when the roads will undoubtedly look like salt mines and the talking heads will be crowing about how we “dodged that bullet” yet again.

Welcome to Winter in Maryland..

The Joys of Winter Biking

Took my first fall of 2009 yesterday.  We were coming off two straight days of rain, it was 7:45am and the temperature was right around freezing.  All of that adds up to (you guessed it) ice on the road.  Most of the roads were treated and in pretty good shape, but in my infinite wisdom I decided to extend the ride with a lap through the State Park.  And in the park, the roads were..  not good.  Long story short, I was coming down a hill, braking a bit, hit a previously-unseen patch of black ice, and the bike promptly came out from under me.

Falls happen so quickly and suddenly that it’s often hard to tell right away what happened and if there’s been any damage.  Sometimes it doesn’t become apparent until you try to get back on the bike and resume the ride.  In my case, I ended up completely undamaged (yay for slippery ice and multiple layers of winter clothing) but my front wheel was knocked out of true.  Turned out to be a loose spoke.  A quick twist with a spoke wrench got me back on the road.  I also had to re-position my front fender, which I did after the ride.  So apparently my front wheel must have taken some kind of impact, although the fall was so smooth that it’s hard to picture how it could have happened.

I guess I should count myself lucky that this was such an easy fall and it happened in the park where there’s no traffic.  It’s been north of 20 years since I last did any regular riding in the winter, but this was enough to remind me of the perils of icy roads..

Fenders on a Road Bike, Part 2

This is part 2 of my story about how I put fenders on my road bike.  Read about my motivation for doing this in the first installment.

There are a couple types of fenders made for road bikes.   “Full” fenders cover the back wheel all the way down to the bottom bracket, and the front wheel from below the cranks to just past the front brake.  There are also “clip-on” quick-release fenders made specifically for road bikes.  An example of these is the SKS “Race Blade.”  These work, but they are smaller and provide less wheel coverage than full fenders. I knew that full fenders would be a bigger job to mount on my bike, but I figured if I absolutely could not get them to fit, I could always fall back on the clip-ons.  With that in mind, I went shopping for a set of full fenders.  The two biggest names in inexpensive road bike fenders seem to be SKS and Planet Bike. I read up on both, and eventually decided to go with a set of Planet Bike “Cascadia” fenders, which I ordered from Niagra Cycle Works.  The fenders arrived after a few days and I went to work putting them on.

Full fenders typically attach to the bike in two places.  The top of the fender attaches to the front fork or rear brake bridge, and the back of the fender is supported by struts that attach to threaded holes in the bike frame near the hubs.  The rear fender is usually also attached to the “seat stay bridge,” a short horizontal piece between the bottom bracket and the rear wheel.  On a road bike with caliper brakes, the fender goes between the brake caliper and the tire, and typically shares the same mounting hole with the brake.  So, to accommodate fenders, the bike needs:

  • Adequate vertical clearance underneath the front fork and between the brake calipers and the tire
  • Threaded holes on the front fork and rear seat/chainstays, near the hubs
  • Some way to attach the tops of the fenders to the front fork / rear brake bridge (possibly sharing the brake mounting hole)
  • A seat stay bridge piece to attach the front end of the rear fender

My bike met some of the criteria.  All of the clearances were adequate, and it had a seat stay bridge and the necessary mounting holes for the rear fender (although I was currently using them for my rack).  The problems:  It had no mounting holes on the front fork, and no easy way to attach the tops of the fenders to the brake mounts.  So I would need to work around these limitations somehow.

I began by mounting the rear fender.  I unbolted my rack and attached the fender struts underneath the rack supports.  Conveniently, the rack’s mounting bolt was long enough to accommodate both the fender struts and the rack supports, so I bolted them both to the same hole.  The front of the fender attached easily to the chain stay bridge using a zip tie.  For the top, Planet Bike uses a snap-on plastic clip.  The clip has a bolt slot that’s intended to mount behind the rear brake, but as mentioned above, there’s nowhere there I can bolt it; the rear brake is attached with a recessed hex nut that does not have threads to accept a fender bolt.  However, I was able to use zip ties to attach the mounting clip to the seat stays (this is covered in Planet Bike’s instructions), so problem solved there.  This mounting method does slightly reduce the fender’s clearance underneath the brake, though, so it may not be usable on a bike with extremely limited clearance.  Once the fender was mounted, I adjusted the struts until it didn’t rub the tire, and I was done.  That was pretty easy.

The front fender was more of a challenge.  My fork doesn’t have holes to mount the struts, so I had to improvise.  A couple of web sites recommended using metal or nylon p-clamps, but I can’t use these on my fork because its arms are not round enough.  Instead, I opted to just zip-tie the struts to the fork.  This is not an ideal solution, but it works well enough.  the quick-release skewer caps keep the ties from slipping off the fork, and the ties seem to stay in place otherwise.  But I’d still like to come up with something more elegant.  On to the top.  The front fender has a permanently-attached metal bracket instead of a plastic clip.  The front brake uses the same type of recessed nut as the rear brake, so there’s nowhere to attach the bracket behind the fork.  But unlike the rear, there’s nowhere on the fork to zip-tie the bracket either.  So my only option was to remove the front brake and mount the bracket between the brake and the fork (actually behind the lock nut that retains the brake spring — otherwise the bracket didn’t clear the steering tube).  I did this, and wasn’t happy with the results.  It made it impossible to adjust the fender’s position without also affecting the brake, and it also made it impossible to easily remove the fender.  I needed a better solution, so I went web surfing again, and found out about Problem Solvers Sheldon Fender Nuts.

Sheldon Fender Nuts replace the recessed nuts that hold the brake calipers in place.  The difference is, the Sheldon nuts are slightly longer, so they protrude outside the brake mounting hole, and they have a thread to accept a fender mounting bolt.  The front fender can then mount behind the fork as intended, and the fenders can be adjusted independently of the brakes.  The nuts come in sets of 2 (one for back and one for front).  I ordered a set from Jenson USA.  The front nut was an extremely tight fit in my fork.  Initially, I had to tap it with a hammer to seat it enough to mate with the threads on the brake, but eventually it “broke in” enough that I could thread it on and off the brake without too much trouble.  I was worried I’d torque it apart or otherwise destroy it, but it turned out to be pretty sturdy.  The mounting bolts that came with the Cascadia fenders did not fit the thread on the Sheldon nut — I had to scrounge up some matching bolts and washers from my parts drawer.  After that, though, the fender went on easily and was a snap to adjust.  So far I’ve only used the Sheldon nut on the front fender.  Eventually I’ll take the zip ties off the back fender and remount it with the Sheldon nut, but the nuts were worth the price just for the front.

Initially, I couldn’t get the front wheel to stop rubbing the fender.  No amount of fiddling with the fender seemed to help.  Finally I figured out that my wheel was not properly centered in the fork.  I undid the quick release and centered the wheel, and suddenly the fender no longer rubbed.  There’s not a whole lot of side-to-side tolerance with these fenders, so buyer beware.  I’m a little worried at what might happen if I break a spoke..

After the fenders were on, I didn’t have to wait long to test them out.  I took the bike out shortly after a storm, and the fenders worked like a champ.  I hit my first puddle and watched all the water squirt out the front of the fender, instead of up on the bike, my clothes, etc.  In normal riding conditions, I don’t really notice the fenders except for maybe a rattle here or there when I hit a bump.  The fenders don’t get in my way at all.  The instructions warn that my foot might touch the front fender during slow turns, but I haven’t had that problem.  All in all, even if the installation was a bit of a pain, the fenders were well worth it and I highly recommend them for all-weather commuting.

Fenders on a Road Bike, Part 1

I’ve been an occasional bike commuter for a little over three years.  My commuter bike is a 2001 Giant OCR-1, a road bike with an aluminum frame and a carbon fork.  Back in the big 1980s, I spent my teen years delivering newspapers, and went through a seemingly-endless string of cheap 10-speed beater bikes.  I rode the bikes year-round in all kinds of weather conditions.  Every one of them had fenders – the big, heavy, metal kind that start to rust after a couple days in the elements.  The fenders may not have been stylish, but they did their job, keeping mud and grime off the bike and its rider.  Of course, back then I didn’t appreciate them.

Flash forward to the 1990s.  At some point, bike manufacturers stopped putting fenders on bikes.  I bought a mountain bike in 1994 – no fenders.  Ditto for my road bike, bought in 2002.  Nowadays, most bikes in the U.S. are sold for recreation.  Road bikes, in particular, now seem to be mostly geared towards racing and weekend club rides.  And indeed, when I bought my bikes in the 90s and 00s, I first used them for recreation.  I took the mountain bike out on trails, and used the road bike for weekend club rides.  I only rode the bikes in good weather, so I never missed the fenders from my old bikes.  Somewhere along the way, I forgot about the more utilitarian uses for bikes – commuting, errand-running, etc.  I had a college degree and a desk job, and no longer needed a bike for work, or so I thought.

Flash forward another few years.  With young kids, I no longer had as much time for leisure riding.  I wasn’t in quite the shape I was a few years before.  I wanted to find a way to do some more riding, so I decided to try riding my bike to work.  Gas prices were high at the time, so I figured I could save some money on gas and improve my fitness at the same time.  My ride to work is only about 8 miles, which is long enough to get a decent workout, yet short enough that it doesn’t take too long (with small children and a busy family life, time is at a premium).  I tried commuting by bike a few times and discovered that I enjoyed it, so I kept it up for 3 years.  At first I rode only in the summer, and then only when it was sunny and dry out.  It wasn’t until 2008 that I took the plunge into all-season bike commuting, and it wasn’t until then that I missed fenders.  Summers here on the east coast tend to be pretty dry, with occasional thunderstorms providing most of the precipitation.  That all changes in the Fall, when we have lots of damp, misty, drizzly weather.  After my first couple of wet rides, my fender-less bike (and most of its cargo) was completely covered in mud and other junk that splashed up from the road.  Not only was this bad for the bike (bottom brackets don’t like road grit), I had to spend an hour or so after each ride hosing the bike down, wiping off the grime, and re-lubing everything.  It was a major hassle, and I quickly reached the conclusion that cold-season commuting wasn’t going to happen regularly if I couldn’t come up with a better alternative.  That’s when I remembered fenders.  If I could somehow retrofit fenders onto my bike, they should solve most of my problems.

My next post will describe the process I went through to research, choose, and mount a set of fenders on my road bike.  It was a tricky and occasionally frustrating exercise, but the end result was well worth the effort.