Fruddled Gruntbugglies

Enthralling readers since 2005

Author: lpaulriddle

  • 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.

  • 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.