W&OD Trail Conditions redux

They plowed the W&OD Trail! Woo-hoo! It's now rideable with a road bike, without studded tires, at least until the next time it snows. Great job by the park maintenance crews, and thanks to whoever made the decision to finally do this.

And all the fallen trees I saw on Wednesday were gone by Thursday. (Well, not quite gone — you can see what's left of them on the sides of the trail — but they're not blocking the trail.)

Be careful out there, though — there will be black ice in the mornings as the melted snow from the sides of the trail refreezes, and there are still some large low-hanging branches.

Bicycles

Comments (0)

Permalink

W&OD Trail Conditions

If you somehow haven't heard, the Washington DC area got about 30 inches of snow in early February.  Too much to bike through.  They plowed the big roads, and then the small roads, and then most of the very small roads.  But not the bike paths.

My commute is from Ashburn to Herndon, Virginia.  Exurb to outer suburb.  It' s about a mile of nice calm local roads and nine miles of W&OD Trail, each way.  Usually takes me about 35 minutes when there's no snow.  Less with a tailwind or if I'm really trying hard, more with a headwind or if I'm sick or on the mountain bike.

Today, I tried it for the first time since the big snow.  I didn't know what the trail would be like.  I have alternate safe road routes for about 90% of my commute, so if it was really bad I could take roads for most of the way and just walk the bike down the W&OD for the mile between Loudoun County Parkway and Route 28, where there are no bike-safe roads.  (There are two stream crossings there, and no bike-friendly roads bridge them.  Only the W&OD and big high-speed highways like 7, 267, 606, and Waxpool.  267 is a limited access toll road and actually illegal to bike on; the others are unsafe to bike on in my opinion, at least during rush hour with their shoulders unrideable due to piled snow.  So if anyone from VDOT or NVRPA reads this, if you can only afford to plow one mile of the W&OD, it should be that mile.)

Anyway, I took local roads to Wild Meadow, which has a small paved side trail leading to the W&OD.  That side trail was covered with several inches of uneven refreeze, so I walked the bike over it.  But the W&OD in Ashburn was actually plowed!  Awesome.  It was only about 5′ wide, but that was more than enough.

Around the Ashburn Village Road underpass, the trail went from perfectly plowed to doubletrack.  There were two slushy pickup-truck tire tracks, and then a bunch of footprints.  And a mix of snow, slush, ice, crust, black ice, and occasional bare pavement.  This is rideable with skill and studded tires.  I don't have much icebiking skill (it's like mountain biking, with fewer trees to hit but much worse traction), so I had to put a foot down in places, but it wasn't bad.

After crossing Smith's Switch Road, the tree-lined section of trail was plowed, with evidence of much recent tree work.  Looks like some trees fell and blocked the trail there, but the work crews already got out there and cleared them away, and also got rid of some snow while they were at it.  So I stayed on the trail rather than detouring through the adjacent commercial area's parking lots and roads.

The stretch between Loudoun County Parkway and Route 28 was double-track with lots of melted snow, slush, etc. again.  Rideable with studded tires, but not easy.  I was getting hot at this point (it was about 40 degrees, and the mix of low-speed cycling and scootering and pushing the bike that I was doing is hot work and does not provide the cooling headwind of normal cycling) and removed my balaclava.

Once I crossed 28 I could have taken my road detour (Ruritan, Church, W Holly, E Holly, S Lincoln, Crestview, Herndon, Ferndale, Vine, Spring), but I wanted to see how the trail was.  Bad idea.  Just west of Sterling Road, the trail was blocked by several stopped work crew vehicles.  I pushed the bike around and saw that the crew was removing 3 or 4 large fallen trees.  I should have turned around at this point, but pressed on, walking the bike.  Once I got past where they were working, the double-track went away, showing that no vehicles had gone through.  So the snow in this part of the trail was mostly 4-6″ deep refreeze, with footprints and a few refrozen mountain bike tracks but no vehicle tracks.  So I had to mostly walk rather than ride.

I should have turned onto Sterling Road, but I didn't.  Just on the east side of Sterling Road was another large fallen tree that the work crews hadn't reached yet.  I pushed my bike around it.  The next chance to get off the trail (without turning around, which would have been admitting defeat) was at the Oak Grove Baptist Church.  I didn't know where the road there went, but I took it anyway, hoping it hooked up to Crestview.  Nope, it connected to 606, which was crawling with bumper-to-bumper traffic.  I could have ridden in that mess (it's no fun, but the cars are moving slowly enough that it's not that dangerous), but instead I turned around and rode back to the trail.  Then I pushed the bike up to the trail until I reached the largest fallen tree yet, which was big enough that it completely blocked the trail.  I had to climb the snowy embankment on one side to get around it, which would have been slightly annoying even without a bike to push.

That was the last fallen tree until I reached Crestview.  By that point I was hot, tired, and late for work, so I took roads the rest of the way in.  The roads were fine.

Temperatures have been in the 40s lately, so it's all melting.  The parts that are kind of slushy and icy should be clear by the end of the week, if it doesn't snow again.  And the work crews are working on the fallen trees, though I'm not sure how long it'll take them to remove them all.  I recommend taking roads instead of the W&OD through Sterling, at least for a few more days.

Bicycles

Comments (0)

Permalink

PyCon 2010

PyCon was in Atlanta this year, which got me away from the record snow in the DC area.  Yay for winter conferences being in warm places.  (Nothing against Chicago, but Chicago conferences should be in the summer.)

Attendance was about 1100, a little more than last year, but nothing like the crazy growth PyCon saw when the economy was strong. I think that Python is still growing but travel and recruiting budgets are down.

The best talk I attended was Raymond Hettinger's.  It was about using the right container classes to solve computationally expensive problems.  He pointed out that every ordered dict implementation except the one he just added to Python 3.1 had O(n) deletes due to using a list for storing the order, while his had O(1) deletes because he used a linked list with a dict index.  I hung my head in shame because I've written odict twice (once at a former employer, again from scratch for Slugathon) and done it "wrong" both times.

The most useful thing I attended was the Twisted Open Space.   Because my employer really wants IPv6 in Twisted, and I've submitted a patch but not had it accepted because of reverse compatibility concerns.  Actually talking to most of the core Twisted team at once in person really helped clarify what we need to do to break the logjam and get the patch moving forward again.  That ten minutes probably justified the cost of sending me to PyCon this year.  (And I wish I could go to the sprints and maybe actually get this change into Twisted this week, but I can't.  Next year I really want to go to at least a couple of sprint days.)

Rackspace Cloud was there as a sponsor with a booth, which reminded me that I should have blogged about my experience using Rackspace Cloud.  Basically, they stood up a virtual small Ubuntu (they have other choices too) server for me in about 5 minutes, for about $12 per month (plus bandwidth, more money for more memory), and it just stinking worked.  I've since turned it off because Slugathon isn't done yet so I don't really need a dedicated game server yet, but I'll definitely be back when it is.  The only negative is that there's no way to setup a cap at which the server turns itself off, so if you get Slashdotted or DOS attacked you may get a high bandwidth bill.

Negatives:

Airline travel sucks.  You already know this.

Guido's keynote was just taking questions via Twitter, and the signal-to-noise ratio was awful.  (Yes, I'm an old Angry Unix Guy.  Get off my lawn and take your Twitter and your Facebook and your iPhone with you.)  If Guido doesn't want to do a real keynote, that's fine; why not let someone else have the slot?

I'm no longer in favor of invited talks, because one of them was just content-free pattern metababble that never would have been accepted if the speaker had had to do a proposal.  (But, in fairness, all the other invited talks I attended were excellent.)

There were several talks that I really enjoyed and thought were great fun, but where I didn't really learn anything.  So they validated my existing opinions but didn't stretch my brain at all.  (Larry Hastings actually pointed out before his talk about micro-optimizations that it was just nerd porn and that it would be entertaining but nobody would learn much.  I applaud him for his honesty.)  I guess that's natural when you've been doing something for a long time and have attended the same conference a bunch of times.  I need to attend fewer talks and spend more time just talking to people.

The board game social wasn't as awesome as last year because there wasn't a huge pile of games to pick from.  (I think last year a game store donated some games, and you can't expect that to happen every year.)  So I will bring at least one game next year.

My 7-year-old laptop lost its WiFi connection whenever things got crowded.  The networking people do their best, but 1000 laptops crammed into a small area means the newer stronger ruder WiFi cards will crowd out the older weaker more-polite ones, no matter how many access points there are.  I plugged into a switch when I could, and lived without WiFi when I couldn't.  My laptop is heavy and has poor battery life anyway, so I think it's time to retire it in favor of a netbook.

Python

Comments (0)

Permalink

Moved Slugathon to github

I've been working on Slugathon on-and-off (but mostly off) since 2003. The bare minimum feature set that I consider necessary to do a serious alpha release is almost done. (Release early, release often; but if you release before you actually do anything useful you might just leave a bad first impression and scare off your potential users.) So I've been thinking about installers, and portability to MacOS and Windows, and whether my current hosting solution (svn and Trac provided for free to open source Python projects by WebFaction; thanks WebFaction) would cut it when I had users and possibly more contributors.

I like Trac, a lot. I now strongly prefer Git to Subversion. You can use Git and Trac together with the GitTracPlugin, but it's hard to find a host that has it installed. (SourceForge, for example, now offers both Git and Trac, but not together.) So I decided to go with github. They're the most popular Git host, their paid hosting business seems to be solid enough that they're unlikely to go away anytime soon, they offer free hosting for open source projects, and they have a wiki and an issue tracker.

So this morning I experimentally moved everything from Subversion+Trac to github. I've administered both Svn/Trac and Git/Trac installations at work, so I knew how to do this on a local machine where I had control, but doing things locally is different from doing things on a remote hosting service.

Here's what I did on github:

1. Signed up for an account. (I've poked around github plenty of times, and cloned other people's repositories there to my local box, but I never needed to register until I actually wanted to move my own repository there. Which is exactly the way it should work.)

2. Uploaded an ssh key. I already know ssh so it was just a matter of posting ~/.ssh/id_rsa.pub into a web form.

3. Re-cloned my Subversion repository to my local box, using git-svn, using the –no-metadata option to remove all the ugly "git-svn-id" blobs in the log. I'd done this before when we switched from Subversion to Git at work, but I didn't remember the exact syntax. Luckily it was right there on Github's help page so I didn't even need to check a Git man page.

4. Uploaded my new local Git repository to Github.

5. Realized that I'd forgotten to use the –authors-file option to convert the author metadata from Subversion format (bare username) to Git format (firstname lastname email). Oops, this was also on github's help page but I'd been in too much of a hurry. I poked around github until I found out how to delete a repository, deleted the one I'd just made, redid the git-svn clone with the missing option, and re-uploaded my repository.

6. Basically cut-and-pasted my wiki pages (there were only 8 of them) from Trac to Github's wiki. I did a little tweaking to convert formatting from Trac format to the Textile format that Github uses, but didn't obsess about getting every little format perfect. One thing that github's wiki doesn't support well is images; they let you link to external images, but not post attachments directly into the wiki. So for now the thumbnail screenshots are there, but they don't link to the larger versions.

7. Manually ported all my Trac tickets to github issues. I had 62 tickets, 30 closed and 32 open. Both Trac and the github issue tracker share the same #number format for referring to issues, and I mention ticket numbers inside commit messages, so I thought it was necessary to add all the already-closed issues for historical reasons. I also changed any references to Subversion commit numbers to Git commit ids inside the issues. This was an annoying data entry task, but with only 62 tickets it was faster to just do it by hand than to write some awesome Trac to github conversion script. (Which would require either cooperation from github, or advanced web scraping, since github is a rather fancy web site with JavaScript everywhere.)

8. Changed Slugathon's SourceForge page to point at github rather than WebFaction. (I'm keeping a SourceForge presence for the project because they offer useful things that Github does not, like project mailing lists. Also, if SourceForge ever integrates Git and Trac and I become dissatisfied with Github's new and fairly minimal issue tracker, I might move everything to SourceForge.)

9. Changed the main wiki page at WebFaction to point to github, too. (I will eventually ask WebFaction to delete the project, but first I want to make sure that the move was a good idea. And give Google enough time to cache the version of the page that shows the redirect to github, so people don't think the project just disappeared.)

10. Created a static web page using the instructions at pages.github.com. This feels somewhat redundant with the github wiki, but it gave me a place to park my images.

My conclusion so far: I still like Git a lot more than Subversion. I like github's wiki and issue tracker less than Trac, but they seem to be good enough.

Games
Programming
Python

Comments (0)

Permalink

DC Randonneurs Flatbread 200k Ride Report

When the Flatbread 200k was announced, I thought it sounded like fun. A brevet with no hills? Like Florida, without as many dangerous ancient drivers? Sign me up. I'll choose between just setting a personal best time, or riding it on my junker fixed gear, or just goofing off.

Then it rained last week. Hard. The weather forecasters kept guessing that the rain would stop soon, and they kept being wrong.

So I got up at 4:30 a.m. Saturday morning to head for the ride, expecting only a dozen or so of the most hardcore randonneurs to be there. (It's not nice to call people insane, so we have polite codenames for it, like "R-12.") It rained most of the way to the start.

But then, as the sun came up, the rain stopped. And when I got to the start, I saw about 40 people there, way more than expected for a November brevet with iffy weather. It appears a lot of people like flat rides, and nobody was afraid of the weather. Also, this ride was closer to Baltimore and Philly and New Jersey than most of our rides, so a bunch of people from the northeastern branch of DC Randonneurs showed up. (It was a two-hour drive for me, since I live in the western exurbs of Northern Virginia, but that's the price you pay if you want to ride in the flatlands.)

Another concern was flooding. The downside of doing a flat ride at low elevation right after a week of rain is that half the route might be underwater. But ride organizer Chip re-scouted the route at the last minute and rerouted around the washed-out areas. So now there are two cue sheets for this ride, Low Water and High Water. Thanks Chip for going above and beyond.

I was on my junker fixie with 52×20 gearing. I'd just put a new chain on the night before, and the chain had about a tenth of a mile of testing on it. So I was a bit concerned about whether the chain tension was correct. (It was; no mechanical problems all day.)

The weather was low 50s with a bit of mist in the air and a lot of puddles on the roads, so I chose my Lake winter boots over my summer mountain bike shoes. I went with cotton socks, wool socks, tights, short-sleeved jersey, long-sleeved jersey, light windbreaker, and full-fingered gloves. I had a balaclava, arm warmers and lobster gloves in the rack trunk. This was almost correct. My feet got a bit hot near the end, but I think that if I'd gone with summer shoes they would have been really cold and wet. So maybe I should have gone with just the wool socks without the cotton socks underneath. And I got hot with three layers on top near the beginning and should have started without the jacket. Finally, my hands got cold near the end, but not cold enough to justify stopping to change gloves.

At the start in Centreville MD I was near the front of the pack. Unfortunately the usual hammerfest ensued and I wasn't in the mood to spin 120 RPM, so a couple dozen people passed me, and I was on the back of the front group, going 20 mph. I fought for a while to hang on, then realized I didn't need to spend all that energy, and slowed down to 18. (My newbie dumbassitude may be slowly receding.) In theory, 20 with a draft is probably easier than 18 without a draft. In practice, drafting really closely on a wet road means you get a bunch of road spray in your face. Also, on a fixie, the faster you go the faster you have to spin, and being outside your cadence comfort zone isn't fun.

There was an info control at a wooden bridge around the 8-mile point, where I stopped to write down the bridge's load limit and also pack away my jacket. Then I realized that there were still a bunch more riders behind me, as they blew past failing to stop for the control. I yelled out "control" and some of them turned around and came back to the bridge. I hope nobody got disqualified 8 miles in for not listening to the pre-ride speech or reading their cue sheet.

Just after the first control someone told me my bag was tipping over. I guess the extra weight of a damp jacket on top was too much for the Velcro straps on my $15 Nashbar rack trunk. (I have a fancy Carradice on my usual brevet bike, but it just wouldn't match the junker fixie.) I recentered it and continued. It was lopsided all day but didn't fall off. At some point I realized that, despite hardly drinking anything due to the cold and wet, I wouldn't be able to make it to the bathroom at the first control. The woods and cornfields are less common in the Eastern Shore than further inland, but I eventually found a suitable (except for the thorns) stretch of woods and watered a tree. Then reminded myself to drink because you can dehydrate even in the winter.

I ended up in a small group with Chip (the other one) and George and a tandem and a couple of other single bikes. (Having so many new-to-me riders on one brevet really stretched my name-recollection ability; sorry.) We stopped at a non-control store in Greensboro at the 28-mile point. Normally I'd just press on, but the constant motion required by the fixie was already getting to me a bit, and it felt like a good idea to rest off the bike for a few minutes. I ate a Clif Bar.

The route went through Greensboro MD, then turned into Delaware. The second control was at the Dolce Bakery in Milford. The staff were extremely friendly. I hadn't eaten much and figured my blah performance might reflect a bit of bonk, so I got a breakfast cookie, a chocolate chip cookie, and a ham and cheese croissant. I was slightly confused when the total came to exactly $4.95, then remembered that there's no sales tax in Delaware. That really simplifies small retail cash purchases, since most will come up just short of an even number of dollars, rather than a bit over. All the food was delicious. While eating my carb-feast outside, an older gentleman walked up and started telling me that he couldn't ride a bike. That every time he'd tried, he'd crashed and bled, until he'd stopped trying. Ouch.

Continuing through Delaware alone, I got my first bonus miles of the day. The (revised-at-the-last-minute-in-the-dark) cue sheet said "BR Cabbage Pond Rd". Unfortunately the turn onto Cabbage Pond was unmarked, but the cue sheet was missing the usual "UM." Also, in my opinion it was a full right turn, not a bear right. That said, I kind of thought that was the turn, so I only went a bit farther to confirm, and saw Paul coming back the other way. So it wasn't that much extra riding. There were a lot more unmarked turns than usual on this ride; maybe Delaware doesn't spend as much on signs as other places, since the road grid in such a flat area is more like the simple grids you see out West, less like the random mess we get in most of the mid-Atlantic. (Heck, maybe in the future when GPS is everywhere, localities will stop bothering with road signs. Just like most phone booths have gone away.)

The next control was at the Iguana Grill in Milton. The place was empty except for about a dozen cyclists; it's probably more of a night spot. I think there were only two people working there so the food delivery was a bit slow, but the service was friendly and the burger and fries I had were okay, and I needed the break, so no problem. Got to chat with a few more cyclists from the far northeastern branch of DC Randonneurs.

The big group leaving Iguana Grill was dawdling, so I decided not to wait any longer, figuring they'd catch me soon enough. They did. And most of them eventually dropped me, but then I caught up again at the next control at 85 miles in Bridgeville. Where I grabbed a big Gatorade, didn't wait in the long line for the bathroom, and left early again, trying to make up for my slow riding speed with fast control speed. This time Chip followed me and caught me right away, and we rode together for a while, with me navigating. (For the first brevet ever, I made no navigation errors on this ride, other than the minor bobble I already described, which I'm not counting because the cue sheet was confusing and I was just double-checking both options, not actually lost.) Then we heard the big group coming up behind us, led by Chuck and Crista on the fast tandem. We were absorbed into the group, but the 18 mph pace was too fast for me on my fixie while digesting a meal, so after a couple of miles I dropped off the back and resumed riding solo. So yet another ride where I failed to finish with the C&C group, which I consider to be "par" for brevet speed. (They're consistently fast, but not crazy win-the-brevet fast.) Though I think that if I'd been on my usual brevet bike, I would have stuck to the group. (Normally I fall off the back on either a big climb or a big descent, but there were none of either.)

The route turned back toward Maryland. There was another confusing cue in Denton where we were supposed to skip the marked turn onto Gay St., then later take an unmarked turn onto Gay St. (I wonder if someone stole the second sign, and it's hanging in a fraternity house somewhere?) The unmarked turn looked like a big highway because it featured a big high bridge over a small river. (Possibly the biggest climb on this ride, maybe 30′ vertical. I stood up to climb it.) But there was a "No Outlet" sign if you went straight there, so I figured that was the correct turn. And it was. A couple of miles later I saw a rider going the wrong way, who stopped when he saw me coming. It was Mike, who'd had the same questions I had about the previous turn and was doubling back to check. I was pretty confident that I was on the right track and that our next turn was 0.7 miles ahead, and I guess I convinced him that I knew what I was doing, so we rode together for the rest of the way. (And I was right once again. I am going to get so seriously lost of the next brevet to make up for this one ride's worth of good navigation.) Mike's done a bunch of brevets in the past but not much lately, since he'd been training for an Ironman. So I got to grill him about swimming and wetsuits and getting kicked in the head underwater and whatnot for the last 20 miles of the ride, to distract both of us from how much our legs were hurting. (Me because of the unfamiliarity of spinning at a constant rate for so many miles, him from not having done many long bike rides lately while he worked on his swimming.)

We made it to the end before dark, and there was pizza and beer. So I think despite the horrible weather preceding the ride and the last-minute rerouting, this was a very successful brevet. Turnout was impressive for a November ride, and it drew people from far away. Kudos to Chip for organizing it so well.

So why did I do this one on a fixed gear? Well, I'm no super-hardcore fixie rider who can climb mountains on one, so this was just about my only chance to do a brevet on one. I'd never ridden my junker fixie more than 40 miles before (and that was just an easy out-and-back on the W&OD Trail), so I wanted to see if I could do it, and if it was as easy as on a multispeed bike with a freewheel. Looks like the answers are yes and no. The ability to coast once in a while, or vary your cadence without varying your speed, are helpful for maintaining comfort and controlling fatigue on a long ride. Even if there are no hills where you really need an easier gear. Of course there are superstar riders who can do 1200 km rides on a fixed gear, but I don't think your average PBP finisher could just hop on a fixie and repeat the performance, without a lot of fixie-specific distance training first.

Beyond the self-inflicted handicap of riding a weird bike, everything went perfectly for me on this ride. I had the right clothes, ate and drank enough that I didn't seriously dehydrate or bonk, didn't eat or drink anything that disagreed with me to the point of illness (despite recklessly continuing to eat whatever looked good rather than sticking to a few known-safe foods), didn't get lost, didn't get chased by any mean dogs (there was one dog but he just wanted to play, and actually stopped when I yelled "Stay."), didn't get buzzed by any bad drivers, didn't have any mechanical problems, and finished before dark. My legs are more sore today than they usually are after 200km, but nowhere near as bad as they were after the 400k in May. I have a bit of pain in the outside of my left knee, but not enough to keep me from riding to work tomorrow. Sorry this ride report is so boring; I'm sure I'll do something entertainingly dumb next time.

Bicycles

Comments (0)

Permalink

Cleaning up after gtk-builder-convert

I switched Slugathon from libglade to gtk.Builder back in August, using gtk-builder-convert on the XML files, then a few small boillerplate API changes in the Python code.

Just noticed today that a few dialogs weren't working correctly anymore. (This is the problem with waiting until something is "done" to actually release it — you have to find all the bugs yourself.)

The differences introduced were missing action-widget tags for some buttons, and changes in the ordering of the children within the dialog ActionArea.

Once I figured out what had happened, it was trivial to fix things up. But be sure to test all your dialogs after running gtk-builder-convert. Slugathon has unit tests, but they don't cover the user interface, so I didn't notice the bugs until I played a long test game to verify other changes.

Uncategorized

Comments (0)

Permalink

Chain gang cleaning up the W&OD

For the second time this week, this morning there was a group of prisoners clearing brush on the W&OD Trail in Sterling.  They were wearing what looked like pajamas with green-and-white horizontal stripes, like in old movies.  (Okay, they're usually black-and-white in old movies, but then so is everything else.)  The work crew appeared to be well-behaved and well-supervised, at least while I was there.

I wonder if this is an attempt to teach prisoners a useful skill, or an attempt to save money on park maintenance?

Bicycles

Comments (0)

Permalink

DC Randonneurs Civil War Tour 200km Brevet Ride Report

I tried signing up for the Baltimore Bike Club's Civil War Century last year, but it was full.  I thought of trying again this year, but then DC Randonneurs announced this 200k brevet, with the same theme (ride around Antietam and Gettysburg battlefields and the nice rural Maryland and southern PA roads between them) but 30 more miles of riding, a much smaller crowd, and a lower price.  (At the usual cost of no SAG wagon, no T-shirt, convenience stores instead of staffed rest stops, and more paperwork.)

On my last couple of brevets, I went too fast too early and had food and drink issues.  So my goal for this one was to pace myself early, eat and drink the right amount of the right stuff at the right time, and finish in a reasonable time feeling okay.

I went through my brevet checklist the night before and remembered to pack most of the stuff on it.  (Somehow I forgot my spare tire but didn't need it.)  Highs were predicted to be in the 70s, so there was no need for a CamelBak.  (Lots of riders had one anyway, but I prefer bottles.)  I also drove my car for an errand the night before, since I hadn't driven it in two weeks and wanted to make sure it would start.

I woke up at 5 a.m., ate a very small bowl of cereal for breakfast (eating too much before the ride in an attempt to ward off bonk may have contributed to stomach trouble on previous brevets), and left the house by 6.  The drive up Route 15 to Frederick at 6 a.m. was uneventful, with little traffic.  I didn't get lost, arrived 15 minutes early for the start of the ride, and was preregistered so I just needed to sign the waiver and the emergency contact sheet and grab a map and a backup cue sheet.  I didn't end up needing the map, but I appreciated the overview it gave of the route, and it may have been useful if I got seriously lost like on the 400k.

About 35 riders left together at 7 a.m.  There was an information control right off Urbana Pike, only three tenths of a mile from the start.  I guess that was the "make sure you didn't forget your pen because you'll need it later" control.  There was a monument there saying that this is where the Lee wrote the order to split his forces so that he could both invade Maryland and capture Harpers Ferry simultaneously.  Some Confederate officer (it's not conclusively proven who, though many historians and Civil War buffs have a prime suspect) lost the order (which was not encrypted), some Union troops found it and were smart enough to read it and figure out that it might be important and pass it up the chain of command, and then even McClellan was able to figure out that he should attack half of Lee's army while the other half was away.  Which led to the Battle of Antietam / Sharpsburg.

So after we all wrote down the answer we remounted and proceeded west as the usual large early-brevet group.  A small group of fast riders split off the front and I managed to stick with the plan and avoid chasing them.  By the time we reached Mar-Lu ridge, the steepest climb of the ride (yay for having the steepest climb near the beginning) I was with about 20 riders.  Of course the climb fractured the group.  I'm not a good climber by randonneur standards, and I didn't have my climbing legs that day, and I was supposed to be taking it easy early.  So I went over it nice and slow (7 mph) near the back of the group.  I was pleased to note that my bike stayed in my lowest gear rather than popping out of it like it had last time; my cable adjustment had worked.  Shifting back up to the big ring at the summit took a couple of tries, but I didn't throw the chain off to the outside, then or later in the ride, so the front derailleur high limit adjustment worked too.

On the big fast descent down Mar-Lu the last couple of riders in the group passed me (yep, I'm still a wimpy descender), so I got to ride alone for a while.  I eventually realized that I hadn't eaten anything yet so I ate a Clif Bar.  Approaching Burkittsville I remembered that the descent down Townsend Road is shady and bumpy, so I put my sunglasses away during the climb so I'd be able to see the bumps.  I caught a couple of the riders who had passed me on the descent.  Once again we rode down Burnside Bridge Road and once again I failed to actually see the bridge, but I wasn't looking very hard.

The first control was in Sharpsburg, and there were a bunch of riders still there when I arrived, so I hadn't been too far off the back of the second big group.  I controlled as quickly as possible so that I could leave with people who'd arrived ahead of me.  I bought a 32-oz. Gatorade, drank some of it, ate a Gu packet (Chocolate Outrage, which isn't as yummy as the Vanilla Bean, which is why I had some of it left) and refilled my water bottle with the rest of the Gatorade.  Then I left following Chuck and Crista and Mark, with a whole bunch of others a bit ahead or a bit behind.

We entered Antietam Battlefield Park and immediately hit another info control.  This one was more challenging because there were a whole bunch of statues and plaques and signs in the immediate vicinity so we had to find the right one.  Luckily we had a bunch of riders so it only took a couple of minutes to divide and conquer.  Mark found the right sign and we all wrote down the answer and took off down the pretty battlefield roads.  I found myself at the front of our little group and decided to do my fair share of navigating for the day, while it was flat and I still had energy.  Before we even left the battlefield, there was a secret control, Bill and Keith with a DC Randonneurs sign off to the side of the road.  Because I'd been leading I made it through this bottleneck first, and I kept going rather than waiting for the rest.  So I got to ride my usual too-fast early pace for a while, even though my goal was to avoid that.

I was soon out of the battlefield and onto MD 34 for a long stretch.  Somewhere along there I got caught by Chuck and Crista and Mark and Bennett, so I clearly hadn't been going too ridiculously fast on my little solo escapade.  We all rode together for a while, then Mark fell off the back.  He hadn't said anything about a problem so I figured he was just wanted a slightly slower pace and we'd see him again later.  Eventually we reached Raven Rock Drive, for a 5.8 mile gradual climb on a nice, wide, smooth shoulder.  Thank you Maryland for putting these wonderful shoulders on some of your highways.

We weren't going all that fast, but long hills tend to separate groups.  Bennett went off the front and then I went off the back and then I re-passed Chuck and Crista when they stopped for a nature break, and then they passed me back when I took my turn to water the local trees.  And then all the randonneurs were out of sight but I caught a local rider and talked to him for a bit.  It's against brevet rules to draft off someone who's not in the ride, but the shoulder was wide enough to ride two abreast, which I figured was okay.  Anyway, the guy said he'd had a heart attack two years before and now rode 30 miles per day to keep his heart healthy.  And we were having this conversation on a 5.8-mile climb, and he was keeping up with my pace despite being at least a couple of decades older and having the aforementioned heart history (though he did have the advantages of being skinnier than me and on a nicer lighter bike with less baggage), so I've got another guy to add to the people I want to be like when I grow up list.

Somewhere near the Pennsylvania border, I started slowing down due to creeping fatigue, and Mark caught me from behind.  I sped up a bit to match his pace, figuring it would be good to have the navigational aid through Gettysburg Battlefield, which features road signs that tend to be pretty rather than usefully placed.  (For example, they don't necessarily put them at intersections.) As we entered the park we got caught up in battlefield tourist traffic, lots of people driving really slowly and trying to see the sights without getting out of their cars.  Scary.  It's weird for me to be on a bike, being held up by cars.  (I guess it's common in city traffic but I mostly ride in the suburbs.)  It's unfortunately not at all unusual to be on a bike, being endangered by cars who are paying attention to something other than the fact that they are driving two-ton machines that can easily kill people.  But here they were doing their stupid dance in slow motion.

While dodging the Sunday drivers on Saturday, we were brought to a stop by a fake World War 2 MPs leading a convoy of WW2-style vehicles.  No tanks, unfortunately, just old motorcycles and old Jeeps, all painted olive drab, with drivers and passengers in WW2 US Army fatigues.  One of the jeeps had a machine gun, probably fake or inoperable.  We're used to seeing reenactors in Gettysburg, but these guys had the wrong war by 80 years.  After we escaped from the parade and finished telling all the obvious jokes, we missed the next turn.  Luckily Mark figured it out pretty quickly so we only got about a quarter of a bonus mile, and then rode out of the park and into the city for the second real control at a 7-11.

I'd been fading so I decided I needed some real food.  Since it was a 7-11 my choices were somewhat limited, but I got a decent-sized Jalapeno turkey wrap (I eat hot food all the time so I didn't think mere Jalapenos would be a problem), some Doritos (because they were free with the wrap, and I needed calories and salt couldn't hurt), a bottle of chocolate milk, and a big jug of water.  It took a while to wolf all that down and rest the legs a bit, and then we were off to re-enter the battlefield and be endangered by more tourists.  (We heard later that Tyler got hit by one of these menaces.  Sounds like it was a low-speed incident and he's okay, but he couldn't finish the ride.)  There was of course another information control on the battlefield. The question was amusing: what's the fine for defacing this statue? George caught up with Mark and me around that control, and the three of us continued together out of the park and back toward Maryland.

We must not have been going that fast, because we got caught from behind first by Roger, and then by a couple of other guys. Maybe they were riding fast and controlling slow. Anyway, adding more riders picked up the pace of the group, and eventually I started falling off the back and fighting to catch back up, and then decided to stop fighting and let the group go. I was tired enough that I was coasting on all the downhills and easing up the climbs, and I was spending most of my time riding on the tops rather than the hoods or the drops for comfort, but my head was clear so I figured it was just fatigue, not dehydration or bonk. So I ate a bit more and drank a bit more just to be sure, and made an extra stop for more Gatorade at 110 miles just to be extra sure I wouldn't run dry before the end, and finished 20 minutes behind Mark and 25 behind George. That's a lot of time to lose in just the last 30 miles, but when you're out of gas you're out of gas. And 9h38m was actually my second-fastest finish for a 200k, so I don't think I did that badly.

All in all, it was a good ride. There were a lot of information controls, which we all joked about, but they needed to be there to avoid shortcuts, and with the exception of the one in an overly sign-infested part of Antietam, they were quick on-offs.

My only real complaint was the amount of traffic in Gettysburg Battlefield, and moreover how incredibly clueless and distracted most of the drivers were. Seriously, it was like a gigantic mall or church or elementary school parking lot that went on for miles. I really think they should close the roads within the park to private vehicle traffic, since most of the drivers seem focused on sightseeing not driving, and a two-ton vehicle with an inattentive driver is deadly. Let them walk or ride bikes or Segways or ride in tour buses driven by someone who's already seen the sights. Anyway, I'm not enthusiastic about riding there again on a nice summer weekend. (I hear it's much less crowded on weekdays or away from tourist season.)

Other random stuff:

I saw 5 dead snakes on this ride. Coincidence, or do a lot of snakes die at the end of the summer? (On a semi-related note, I ran over a live snake on the W&OD trail today on the way to work. Saw it right before I hit it, but had no time to swerve. Third time that's happened to me. I hope it's okay.)

In addition to the ubiquitous split-rail fences, I saw one unmortared stone fence in Gettysburg, like the ones you see in upscale Virginia horse country. I had always assumed that such fences were too labor-intensive to economically build without slave labor, but Pennsylvania was a free state, so maybe not. Or maybe it wasn't economically sound but rather a form of conspicuous consumption, the 18th-century equivalent of a Ferrari or a private jet?

Bicycles

Comments (0)

Permalink

DC Randonneurs Woodbine Wallop 200k ride report

I had a really hard time finishing the 400k in May. But I was fine for the first 150 miles except for some minor digestive issues, probably caused by eating too much Gu at once. So I resolved not to do that and assumed that the next 200k would be easy. Ha!

The start was fun. It was a nice cool morning, and there was a big, pretty fast group at the front, and I stayed mostly at the back of it where I belong. There was one really sharp blind left turn, which led to a rider falling and hurting his shoulder and needing to quit the ride. Get well soon Jim. I'm glad that nobody else piled onto him. Several people stopped with him to make sure he was okay, and the rest of the group kept going.

On one medium-sized roller, for no good reason that I can recall, I decided that everyone was climbing too slowly and charged off the front. My solo break lasted for a few minutes before a smaller group caught me again, and it was a dumb waste of energy. I need to stop doing that.

By the time we reached the first control, my stomach was acting up a bit, even though I hadn't eaten anything funny yet. (Pasta with chicken for dinner the night before, two bowls of cereal for breakfast.) Maybe just riding too hard? I didn't want to bonk, so I ate a Clif bar and a banana, both of which are usually safe foods for me. (Though the banana was a bit on the ripe side.) I left with the second group, Chuck and Crista and Mark. I was still feeling too full of energy and still pushing too hard at the front of the group.

We went up over Mar-Lu Ridge. My bike has 50/34 compact double and a 13-29 cassette. But it kept autoshifting out of the 29 cog into the 26. So I was climbing in 34×26 instead of 34×29. That first tough climb finally cured my desire to go too fast, and I dropped to the back of the group, which had been joined by Chip and Eric.

At the top of Mar-Lu Ridge, when I shifted back up to the big ring, the chain overshot and fell off on the outside. This time I managed to get it back on while still on the bike, by soft-peddling while fidding with the front shifter.

I'm a wimpy descender, and Chuck and Crista descend like Evel Knievel, so I got dropped going down the other side. I caught up again on the flats (wasting a bunch more energy to do so) and rode with the same group (minus Chip, who had flown off the front) up the big hill after Burkittsville, but then got permanently dropped on the big descent down Townsend Road (which was bumpy, and shady enough that it was hard to see the bumps with my half-fogged sunglasses).

I almost missed a left turn at a traffic light in Sharpsburg, and had to make a U-turn and wait for the light again. Tyler caught up with me, and we rode together from there to the second control at the Shepherdstown Sweet Shop. I love that place — indoor plumbing and yummy food. Unfortunately, my stomach was still unhappy, so I limited myself to a cheese danish, a cranberry juice drink, and another Clif bar. I really should have skipped the danish and picked something blander like bread.

The weather was cool enough (mid-80s) that I thought 2 24-ounce Polar bottles would be enough. I failed to notice the 50-mile gap between the second and third controls when I looked at the cue sheet before the ride. I should have brought my Camelbak or a third bottle, or looked harder for water along that section.

I left the control with Chuck and Crista and Mark again, but C&C had a flat in Shepherdstown so Mark and I kept going, knowing they'd catch us eventually. Then I hit a big bump on MD 34 and lost a water bottle, and by the time I retrieved it and adjusted the taillight that I'd knocked into my spokes in my rush to retrieve the bottle before a car hit it, Mark was out of sight. So I rode fast, and he eventually realized I was missing and rode slowly, and I caught him again. And then Chuck and Crista caught us, before the big climb up Reno Monument Road.

I'd done that climb once before, and I remembered that I'd had to stop and rest a couple of times. So my goal this time was just to make it over without stopping. I made it up the first steep part in my 34×26, and caught back up to the others on the flat bit, but then started suffering badly on the second part and decided to let them drop me rather than to keep wasting energy keeping up. So I stopped and rested for a minute until I no longer felt my heart pounding in my throat, and got a drink, and then started moving again (which took two tries because I didn't manage to get the second foot over the top and clipped in the first time, a sign that my brain was a bit fried) and slowly climbed up and around the next curve — and realized it was the summit. If I'd known the top was so close I would have kept going and rested on the bike going downhill.

Tyler caught me again while I was waiting for a red light in Middletown. We rode together for a while, then I almost missed a right turn. I finally saw the sign before I was completely past it, but but I'd been going fast downhill in high gear and forgot to downshift while looking for the street sign, and the turn was back uphill, and I couldn't manage to pedal uphill far enough to downshift, so I had to get off and lift the rear wheel and hand-spin the pedals to downshift it. It took a while to remember how to do that; my brain was clearly a bit cooked. So while I was rediscovering things that I'd learned about bikes when I was about 6, Tyler dropped me going up the big hill on US 40, and then went out of sight up Shooktown Rd.

I rode solo for several miles, then saw Tyler on the side of the road with a flat. He had a big gash in his tire, and had forgotten his tire levers. So I lent him mine and stayed with him while he fixed it, in case he needed more help. His patch failed a while later, so I stopped again and waited while he swapped a tube. Then a few miles later his new tube blew up with a bang. The hole in the tire needed patching. He tried booting it with a dollar bill, but wasn't confident that it would hold. Eventually Eric came by with a tire boot, which held for the rest of the ride.

The cue sheet showed a 7-11 10 miles before the next control, and I was almost out of water, so we headed there at a pretty good clip. We re-passed several of the people who'd gone by while Tyler was fixing his tire. Tyler pulled the whole way and I just followed; I was pretty dead at this point. When we got to the 7-11 (featuring a picnic table in the shade!) I drank a bottle of chocolate milk and filled my bottles and used the bathroom and let everyone else go, so that I wouldn't be tempted to ride too fast to catch up. Unfortunately, the chocolate milk didn't help settle my stomach, and I was starting to bonk by this point because I couldn't make myself eat enough.

Then it was 10 miles to the next control (another 7-11, this one without a picnic table). I still felt bad so I drank a 32-ounce Gatorade and took another bathroom break, then resumed riding alone. Went over a nasty hill on Buffalo Road, then a moderately steep hill on Watersville Road, then we were done. I took this last section very slowly, coasting on all the downhills, spinning slowly on the flats, and climbing the steep bits at 4 mph.

At the end my stomach still hadn't recovered so I didn't eat any post-ride pizza. Just headed home, showered, ate a banana, and went to bed early.

The moral of this story? Don't go too fast early. Make sure your lowest gear works okay before a hilly ride. Bring enough water. Eat. Same as every time. (Except this time I didn't get lost or suffer any serious mechanical problems, other than not being able to use my easiest cog.)

I don't really know what made me sick, since I didn't eat anything weird. Maybe just riding too hard early on?

Bicycles

Comments (0)

Permalink

Wendy's Drive-Through Scam

I was just scammed at a Wendy's drive-through window. I figured out what the guy was doing while he did it, but let him continue because I was curious and the amount of money was small.

This drive-through has a outside intercom, a money window, and then a food window. One person takes the order via the intercom. A second person takes the money and gives change. A third person hands you the food and your receipt.

So what the guy at the second window does is quote a higher price. (In my case, the order was $5.94 but he said $10.94.) The intercom isn't very great, and most of the people who work there have strong foreign accents, so it's quite possible that many customers don't hear the price correctly over the intercom, and even if they do and they correct him, he can just pretend they heard him wrong. If they don't object, he pockets $5. Assuming this guy is paid about $8 per hour, he only has to pull this scam twice per hour to more than double his income. If he does it often enough, he's probably making more than the store manager.

The critical flaws in Wendy's process that make this scam easy are:
1. The price isn't displayed on a screen for the customer, either near the order intercom or near the money window
2. You get the receipt at the food window, not the money window. So if you check your receipt against your change, you've already moved away from the guy running the scam, and now it's your word against his.

Note that most McDonalds do both of these things correctly. Perhaps this partially explains why McDonalds does a lot better than Wendy's financially, despite having much worse food.

Anyway, I called the store, asked for the manager, and explained what was going on. I'll go back to that Wendy's soon and see if the guy who ripped me off is still working there. If he is, I'm never eating at that Wendy's again.

(Note that if, even if he does get fired, he still wins big. It's not like he can't find another $8 per hour fast food job in about five minutes, and there's no record of how much he's stolen so they'll never get it back. He only loses if someone actually prosecutes him. But Wendy's loses big, from customers who realize they were ripped off and then never eat there again.)

Security

Comments (0)

Permalink