Monday, August 29, 2011

San Francisco Giants Half-Marathon

Call me Fred.

At least that was my name as I lined up yesterday for the San Francisco Giants Half Marathon. We lined up on Terry Francois Boulevard, on the opposite side of Mission Creek from Pac Bell Park. When I looked down at my left shoe I saw a "D-Tag" plastic-encapsulated timing chip which clearly identified me as Fred.

An offer for the ticket had been posted to a mailing list I read on Thursday. I'd just gotten back from a 20.3 km lunch run, which I'd finished fairly briskly, so by my usual standards I'd not be ready to run again until Sunday. But this was too good to pass up, a "big" race happening less than 2 miles of home, and at a distance longer than I'd raced before on the road.

At the starting line they had three self-selected groups: under 7 minutes, 7 - 9 minutes, and over 9 minutes per mile. I expected to be around 7:10 - 7:15 per mile, or around 4:30/km. On my lunch runs, this had been a fairly good pace, and I'd only done it for a few km at a time, never sustaining for close to this race's 21.1 km distance. So it was fairly clear: I should be in group B.

But then I saw the pacers. There was a guy holding up a sign for "1:40", which is 7.62 minutes per mile (7:37/mile). I initially joined him. That pace I certainly knew I should be able to do, unless my still-tired legs let me down. Up the road a bit was a sign for 1:30. 10 minutes doesn't seem like a big jump, but that corresponds to 6.86 minutes / mile (6:51/mile). That's a huge difference in pacing. So I had the choice: go out a bit harder than I could sustain, slower than I could sustain, or self-pace? I knew self-pacing is tough, and I think the advantage of drafting in running is often underestimated, so I preferred to be in a group. It's very tough to come back from too slow a start, so I finally moved my way through the crowd to the 1:30 group, even if this risked me blowing up. Running with the group would allow me to run and think only about economy, not about speed, which I figured was a considerable advantage. I always had the option of dropping off the pace if it was digging me into a hole.

So there I was with some rather fast-looking people as ten minutes after the start the horn blew and we were off.

Immediately I could feel I was out of my comfort zone. I knew from previous road races, in particular the 10 miler I did with Dolphin, that a brisk start was typically closer to 6:30 than 7:00, and this felt similar. But these pacers know their stuff (I'd had a nice talk with the 1:40 pacer, who'd been meticulous in his preparation, before I promoted myself to the 1:30 group), so it must have been my tired legs.

The first water station came sooner than I anticipated. I guessed this was due to the 5 km runners. Despite having run for only a few minutes, I decided to take a drink; I hadn't drunk since leaving home. The first table was inaccessible due to paper cups littering a wide swath next to the table (who were all these riders up the road drinking this early?) but the second table was clear, so I grabbed my cup and actually managed to get most of the water down my throat. A bit went down my nose, more on my shirt, but overall a success. I was glad I'd watched DC Rainmaker's video tutorial on drinking at races. Despite having handled this fairly well, I still lost time on the pacer, and had to increase my pace yet more to close that gap.

The pace finally subdued a bit, but despite this we hit mile 3 I looked at my watch and saw 20:05. That's a 6:42 per mile pace, well above the 6:51 target which I'd considered a reach. "Is everyone feeling okay?" the pacer asked cheerfully. Err... that's not how it's supposed to work, I thought, but didn't say anything. This was a race, after all: no whining allowed.

"Pick up the pace!" a volunteer called from the side of the road. I laughed.

Water stops followed with remarkable frequency. I drank sports drink at the second: it was a bit too strong but I handled it. I decided to alternate water and sports drink. But for the rest of the race I drank at only two more stops. For a 90 minute effort, with drink cups the size they were using, even with the considerable loss of liquid onto my shirt and into my nose with each drink I was still hydrating ahead of the schedule I normally sustain at trail runs, let alone on training runs. Overdrinking can cause stomach problems, and in the cool morning air dehydration was a diminished concern.

There was still a decently dozen or so together with the pacer when we reached the "climb" on the course, the bump of Fort Mason. I run this hill regularly, so have it fairly dialed, and did my best shuffle-step climbing pace up the hill, letting the pacer, leading the group, gap me a bit. I was later surprised to see I PRed the climb on my Strava record: my previous PR I'd been trying to chase down a cyclist, not worried about maintaining a sustainable effort.

But here's where things went wrong. Following the climb there's a gradual descent back to base elevation, and apparently the pacer wanted to immediately make up for the time lost climbing. He immediately threw open throttle, and I simply couldn't respond to the acceleration without putting myself into the red zone. And the red zone is exactly where I didn't want to be less than halfway into the race.

near turn-around

So now I faced the western run along Marina alone, unfortunate since there was a stiff headwind. I was questioning my decision to let the pacer go, but clearly they were faster than pace at this point, and at some point you've simply got to pull the plug. Another runner soon caught me from behind, however, and after pacing him for a bit, I slowed slightly and pulled over to let him eat the wind for awhile. He complied.

Another runner caught and passed us, causing my partner to pick up his pace as well. This caused more discomfort. But I was able to hold on and get at least some shelter from the wind before the turn-around.

As we turned onto my preferred dirt surface here, and the headwind became a tail, I immediately felt better. Add in I was now running toward the finish rather than away from it, and my spirits clearly notched upward. I as running here with a very fit, fast looking woman who ran with a high cadence and smooth style which was encouraging. Honestly the shuffle of riders which led to this point is lost in the mental haze: my focus was distracted. On this section we needed dodge other runners, walkers, and mountain bikers using the popular path. I'm fairly obsessive about keeping the optimal line so prefer to apex turns if i can.

The woman and I caught and passed a guy whose style was in market contrast: a bounding, bouncing stride with notably slower foot turnover. After I checked to see he had a number on his shirt, I wondered how he'd gotten so far ahead of me running like that. I suppressed the temptation to give him advice: after all he'd been ahead of me for the previous 8 miles. But the woman and I managed to quickly leave him behind.

Fort Mason came and went quickly: in this direction the climb is easier. There was a slight confusion of the exact route due to the increasing morning crowds. As I've noted, I have a neurotic paranoia about going off course, but there were enough runners within sight that I assured myself I was unlikely to make a mistake.

Mile marker 9, the flag in mirror image due to the wind direction. My pace had not surprisingly slipped: I was still ahead of 7-minutes-per-mile but by less than before. I imagined the broom wagon was following at that pace, ready to disqualify and sweep up any unqualified runners who had placed themselves in the first wave.

But I was running well, and only 5 km to go. 5 km is around when it's time to ratchet up the discomfort threshold. Sustaining the pace was no longer much of an issue: it's only around 20 minutes of pain left, then the finish. So my protocol became regular: focus on relaxation to minimize the effort at my present rate of speed (relax the head, relax the shoulders, relax the torso, relax the legs), then increase the rate of speed, repeat. Speed doesn't actually increase, of course, but if I didn't try to keep it increasing it would otherwise start to drop.

Around a half-mile later we hit the 10 km turn-around (the course was longer out than back). This was a bit of a problem, as we were no overtaking more relaxed 10 km'ers, who'd started with us. Many if not most were walking, too many several abreast. Since I viewed every second as precious in this run, I wasn't as patient as I might have been with people taking up a majority of the path, and in one case I threaded a gap between two walk-runners who were cutting an exceptionally wide profile. "EXCUSE me" I heard indignantly as I ran by. For a second, just a second, I thought maybe I was taking myself too seriously, and should have swerved around them rather than taking the straight line between them. But I recovered from this thought quickly: they realized they were in a race on a shared course, and they were clearly giving zero consideration to the faster racers coming through. So I felt I had at worst only recipricated.

The route here was extremely familiar. The Bay Bridge loomed ahead, and I knew the stadium was less than a mile from the bridge. I kept my stride to the bridge, playing my game of relaxation alternating with acceleration. Soon, very soon, I would be on the baseball field. Cool.

Approaching the field, volunteers were everywhere, directing us towards the stadium entrance. I knew this entrance well: it's a spot at field level, separated from the outfield by a fence, where fans can stand and watch the game for free, a nice public relations move by the team. But now there was no fence. I ran among other runners onto the dirt margin of the field. There was a barrier blocking our access to the grass.

The finish wasn't far: between 3rd base and home plate. In contrast to our run, the field seemed puny, miniature. I sprinted as I could first over one tag reader, then over a second which was under the banner.

1:30:56. I could say I'm disappointed to not have broken 1:30, but that would be goal creep of the worst kind. Honestly, I never anticipated I would be able to run that fast, especially with tired legs from a long run two days prior. So that was very encouraging, not only for this day, but also for a Boston-qualifying marathon in my not-too-distant future, perhaps.

After crossing the line things got surrealistic. We were immediately handled medal, then a bottle of drinking water, then a yogurt and a spoon, then a back-pack-like bag. I walked a bit, admiring the hyper-groomed field, looking in the perfectly kept dugout. Looking up at the seats made them seem so very close. What a special experience it must be to play here, I thought.

I stopped to eat my yogurt: my hands were full otherwise. "Keep moving!" someone shouted. I was supposed to move into the stands and walk up some steps.

My shirt was soaked, not only with sweat but also a mixture of sports drink and water from fumbled drinking at aid stations (I'd managed to get most of the liquid down, but there was always significant spillage). I was starting to chill, and wanted my jacket, and I needed to pee.

freezing in the park

But there was more. We were led onto the mezzanine where we were handed a Safeway bag (???), then a T-shirt, then a Giant bobble-head.... somewhere along the line I'd also been given a banana and an apple. I could barely hold it all.

After stopping in a men's room, I continued on. Clif bar samples, coconut juice, some sort of "healthy" chips, a photo with our medals, and booth after booth. There was a booth showing some shoes which looked interesting, but I ignored it: I just wanted my jacket.

Finally I was through the gauntlet. The FedEx trucks which had our drop bags was outside. I got my jacket and sweat pants, now quite cold in the chilly air which not so long ago felt warm, and began the walk back to the start area to pick up the bike I'd locked there. Hopefully it was still there...

When results were posted, I'd scored 6th in age group for Fred. I was glad I hadn't let him down. For the other runners in his age group, I was qualified, so there was no problem with contaminating the results. I'm not sure I'll enter this race again next year. The orgy of swag is a downer. But the support was fantastic, and I'm glad I did the race.

Friday, August 26, 2011

Garmin Edge 500 sample time and Strava lap time determination

Last post I noted there had been a difference between the reported lap time up Old La Honda and the extracted time for the segment. The lap time had been reported by Strava as 18:12, while the segment time was quoted as 18:22, a ten second difference. But looking at the difference between the point at which the end of the segment was tagged and the end point of the lap I had a difficult time imagining that was worth ten seconds. After all, while I slowed there, not just coasting but actively braking to check for cross-traffic, I never came to a complete stop (law enforcement: my account here seems to have been hacked).

So it occurred to me I was assigning the full error on the segment time, but assuming the lap time was correct.

Back when I was making suffer score test files, I used a 3 second sampling time, the same as is used by my Android phone. Since each sample represents 3 seconds of ride data and since there are 3600 seconds in an hour, I generated 1200 samples. I figured I was calculating the suffer score associated with exactly a one-hour (3600 second) ride.

But to my surprise, the rides reported a duration of only 1197 seconds. Strava was taking the difference between the first and last point, not included the time included in the first point.

So with this experience, I went into the FIT file itself (using fitdump) and checked what the lap time was. The result: 18:14.55. Ah! So it turned out the difference between the segment time and the actual time I recorded with my lap timer wasn't quite ten seconds after all: it was only 7.45 seconds. That's still a big error, and the conclusion still applies you should use your lap timer, but you can't trust strava to report the proper lap time.

Suppose I have ten data points taken at 3 second intervals. Here's the points along with the lap numbers.

3 1
6 1
9 1
12 1
15 1
18 2
21 2
24 3
27 3
30 3

With Strava's apparent approach, the first lap was 15 - 3 seconds = 12 seconds, the second lap was 21 - 18 = 3 seconds, and the third lap is 30 - 24 seconds = 6 seconds. If I add these up I get 12 + 3 + 6 seconds = 21 seconds. Strava would then calculate the ride time as 30 seconds - 3 seconds = 27 seconds. So I've lost 6 seconds: one sampling time for each time I've hit the lap button.

Back to my ride: lap 1 = 56:13, lap 2 = 18:12, lap 3 = 68:54. That's, 2:23:19. But my ride time is reported as 2:23:28. So I lost 9 seconds there.

I checked and my Garmin was on "smart sampling". Whoops. That means while it typically samples at one-second intervals, if nothing interesting is happening according to its assessment then it goes to a longer sampling interval.

Here's the sample intervals found in my file:
intervals from ride

Honestly I though I'd shut smart sampling off. One thing it's important to remember is Strava doesn't like smart sampling. So why have I been so stupid to use smart sampling?

Honestly I didn't try. I'n running version 2.60 of the Edge 500 firmware. At that time, sampling time wasn't an option: if you used a power meter you got one second sampling, but if no power meter was detected you got "smart" sampling. Garmin figured the only remotely sophisticated data analysis was being done to power data.

But that was pre-Strava: now position data is also very important. So it's time I upgrade my firmware... the option to force one-second sampling was put in in version 2.70, and they're already up to 2.80, so I'm upgrading my firmware as I type this.

So basically Strava is makes a lower-bound assumption on each lap time, and this will result in the sum of lap times being less than total ride time (assuming multiple laps). This is especially an issue if using a smart phone with a long sampling interval, or if you're using a Garmin Edge 500 with firmare version 2.60 or older. In either case the precise lap time is stored in the FIT file as a lap record. But Strava doesn't pay attention to this number, instead calculating lap times based on the difference between the first and last sample in the interval.

Thursday, August 25, 2011

Wednesday Noon ride and Strava timing accuracy

After working at my job for close to year, I decided it was finally time to indulge in the Wednesday Noon Ride this week.

The weather was perfect: warm but not hot, a so-very-welcome liberation from the tights and long sleeves which have been part of virtually every ride I've done this year thanks to San Francisco's persistent "marine layer". And Matt has done a great job of championing the often-neglected Wednesday ride which has climbed Old La Honda since the Egyptians were first domesticating cats.

I'd done two of the Friday rides so far and the experiment was generally a success: out the door by a drop-dead time of 11:30, back before the 1:30 pm time when the cafeteria shut down its main lunch service. Obviously it's not something to do every day but since my typical lunch break is a line-dependent 7-12 minutes it takes to go to the cafeteria, buy something, then get back to my terminal, it'd still be doable to go even once per week and still average less than a half-hour per day of lunch time. I figured adding the Old La Honda climb - 84 descent and cutting out a missing portion of the Friday loop would add around 20 minutes to this, assuming I didn't wait for the traditional regroup at the top. That's an extra 4 minutes per day.

So there I was, and what a turn-out! Once we'd picked up Greg, who'd ridden from San Francisco, with Kieran also in the group we had three riders who'd done sub-16:15 times. Matt in particular had been on a tear, getting sub-16:05 PR's each of the previous two weeks. So it was going to be an interesting climb.

No way I was going to PR, though. I've barely been climbing this year, a "long climb" for me being over two minutes. I'd done a few north-gate Diablos, which went surprisingly well (not great times, but not suffering my usual Juniper parking lot fade). But other than this my two Kings Mountains and three Old La Hondas had been on the north side of slow. Indeed, when I'd left home Wed morning I'd brought my steel Ritchey Breakaway rather than my much lighter, weenied-out Fuji SL/1. It wasn't worth risking the carbon on the Caltrain commute to work, or for that matter race tires on the glass-strewn Central Expressway which was the quickest route to and from the ride.

I was impressed by the pace to the climb: none of the attacks or surges which virtually always characterize the nooner, no leg-breaking suffer-fest up Alpine Road. It was clear under Matt's leadership this was all about Old La Honda. He was posting a list of times on Facebook, and there was no credit given for a good Woodside town line sprint.

So here was the main point of this post: times on the Facebook post were self-timed, old school stopwatch. Linda, a long-time noon-rider, had suggested that self-timing was obsolete thanks to Strava. I responded that Strava still has significant errors. As I documented here with data recorded by Alan Weatherall using two Garmin GPS units mounted to the same handlebars, times typically differ by up to 4 seconds, which is twice the default Garmin sampling time (Garmin also offers 1-second sampling time). But sometimes differences are larger.

As we hit the base of the climb I hit my lap timer right on schedule. Okay, so I did it at the trailing edge of the bridge, while some claim the leading edge is the official start. Public confession: I time from the trailing edge. I figure the leading edge convention some proclaim is sufficently obscure that many if not most don't follow it. "Bridge to stop sign" is all most people know.

I'll spare the details of the climb. I felt good, though: a good pace for me feels easy at the start slowly increasing in difficulty as the climb progresses. However, drinking from my mostly-empty bottle left me in gasping for air, a good sign I was still working close to my aerobic limit. And indeed the difficulty did increase. At the end, I tried to drop the rider I was with, but he repassed me, and I followed his wheel to 100 meters from the finish, when he gapped me. I tried to close, but couldn't quite recatch his wheel.

I hit the Garmin Edge 500 lap button again right at the stop sign. The last time I'd seen on the lap timer was 18:08, so add a few seconds to that. I then continued on, more slowly of course, up the remaining short climb on Skyline Boulevard before beginning the descent to the Hwy 84 junction where I stopped for water.

Despite my rush to get back to work I took an indirect route so I could chat with Greg (who'd joined me on the way to the store). I still made it back with just six minutes to spare before my self-imposed 2 pm deadline. Within two minutes of reaching my desk I'd uploaded my data and Strava had reported my segment times.

On the plus side, I'd gotten overall second places on two of my favorite segments associated with my normal commute: the Central Sprint and the Ringstorf to Moffitt Sprint. But the focus today was on Old La Honda. Sure enough, I had a Strava PR for the climb. But the claimed time was a bit shocking: 18:22. Whoa -- had really that much time passed from my last glance at the clock as I began my final sprint to the stop sign?

So then I checked my lap time: 18:14.55. Even that was longer than I had figured, but I always seem to underestimate the passage of time at the end of climbs. But that was 7.45 seconds faster than Strava estimated. As I previously noted, if a segment is defined too close to a congregation point, for example the Old La Honda - Skyline junction, then when a rider stops Strava may include waiting time in the segment timing. However, I'd never stopped here: I'd ridden on past the junction in my rush to get back to work. To see the problem you need to look at the data tracks.

Here's the start of the climb, comparing the lap to the segment. They agree fairly well:

But the top of the climb is a different story. Here I overlay the two plots in a GIF animation (reload or click on the image if the animation has stopped). The error in the GPS signal is obviously substantial. It's so substantial, in fact, that it's notable that Strava even gave me credit for the segment. The end of the lap, which is within a sampling time of the stop sign, and the identified end of the segment are way off:

So the result of this little "experiment": if you want a credible Old La Honda time, still time it yourself. The Strava-Garmin combo simply isn't up to the task.

From the work perspective I think the occassional Wed nooner can be worked into the schedule and still be well under the 5 hours per week "standard" for lunch. And on the cycling side that 18:14.55 wasn't bad at all given my lack of climbing this year and all the extra weight I had on the climb yesterday. So even if it did mean I was left eating the Cream of Rice I had at my desk as an emergency ration for lunch, it was worth it.

Tuesday, August 23, 2011

Strava segment creation tips

By now, I think most cyclists reading this would be aware of what Strava is. Strava's exponential growth model is dependent on users defining segments. Segments are what provide the arenas for competition which provides the incentive for new users to join, then those users define segments, etc. There can be only one king of a hill, but if you have an unlimited supply of hills, then everyone can be a king (or queen).

But the weakness of allowing anyone to define a segment is there's limited quality control over the segments. Here Strava has a check: a "flag" option whereby users can tag a segment as flawed in various ways. But responding to tags requires human intervention, and human bandwidth is unlikely to keep up with the exponentially user growth model. So at least until they develop a way for automated tag resolution (for example implementing some sort of "thumbs up" versus "thumbs down" voting scheme where segments can be voted off the public database), users rely on segment definers to do a good job in their definition.

Here's some of my ideas in how to define a good segment:
  1. Start with good data. This is by far the most important suggestion. If data are of poor quality, for example shifted versus the actual roadway ridden, then don't use it. Try again another day to collect segment-worthy data, or use another user's ride data (you can define segments from any ride, not just your own) to define the segment. It's likely your ride data will still match the segment if both you and this "reference" ride rode the same path, as Strava's segment matching algorithm is loose enough to allow for typical GPS errors. But it's important the original data be of the best available quality. I've noticed iPhone data tends to be particularly problematic. With me, the Garmin 500 is decent, but my HTC Incredible phone is regularly in better agreement with the Google map than my Garmin.
  2. Avoid starting or finishing the segment too close to a congregation point. The starting point and finishing points should be far enough (at least 10 meters, preferably 20 meters or more) where riders would typically pause before starting a climb, or grouping after the climb. It's very frustrating to do a hard effort on a climb only to discover later that your time was padded by time spent at the bottom of the climb preparing to start. It's okay to click the start point a few sample points into the climb: that's unlikely to change the rankings much.
  3. Avoid starting or finishing a segment on a steep section. Position errors translate into timing errors: GPS is remarkably good, but not good enough for second-resolution timing. The slower riders are going when they start or finish a segment, the greater the timing error resulting from an error in position. So if there's a nasty short climb you want to include, it's actually better to start a segment slightly before, and end it slightly after, the short steep bit. Unfortunately this often conflicts with the "congregation point" suggestion. So sometimes you can't avoid this one.
  4. Try to clearly differentiate segments from other segments. A classic problem is if a dirt path runs next to a paved road, for example, a segment defined for the dirt path will be dominated by riders who used the road instead. The segment matching isn't picky enough, nor GPS accurate enough, to always determine which a rider was one. So the best segments are cleanly separated from faster nearby routes.
  5. Avoid tight switchbacks at the start or finish of a segment. If the route passes close to the finish point, Strava may tag a rider as done (or just starting) at the wrong point on the course. It would be better to terminate the segment either well after or before the switchback.
  6. Avoid segments with obvious short-cuts. Strava has to allow some variation in course along the way, and may well match data for a rider who "shortcutted" a segment. Preferably a segment would be over the shortest distance connecting a few well-differentiated points. For example, for a major climb, the road is likely the fastest way from the bottom point to the top.
  7. Be more inclusive where it won't compromise the segment. For example, I recently did a good effort up Polhemus Road, a local climb. At the top it's common to cut through a short parking lot to a bike path. The official segment continued on the road to the end of the parking lot. As a result my timing included time spent waiting in the parking lot. Had the segment been terminated at the leading edge of the lot rather than the trailing edge, it would have been more likely to have given good timings to riders turning through the lot rather than just those continuing along the road.
Okay, so that's a lot of suggestions. Strava promised to improve segment matching, but there's no substitute for robust, accurate reference data. And since Strava doesn't use map data for segments, instead relying on user-recorded coordinates, it's especially important that users at least try to make that data as good as possible.

Saturday, August 20, 2011

Mount Diablo "road plan": my proposal

Diablo summit
Ron Brunner photo of parking lot at Diablo summit

I just saw this on the official Mount Diablo Parks page:

What is a Road and Trail Plan?
A Road and Trail Plan is a recommended management plan for the roads and trails within Mount Diablo State Park. At this time Mount Diablo State Park is developing a Road and Trail Plan for the park. The staff at Mount Diablo State Park is very excited to be able to a part of this process. This plan will be used as a long term guiding document and takes into consideration all of the elements of the park's values, goals and mission.

Key components in the Road and Trail plan are:
  1. Maximize visitor uses and experiences.
  2. Reduce potential safety conflicts.
  3. Minimize natural and cultural resource impacts.
  4. Coordinate with local and regional planning efforts.
  5. Provide access to surrounding public lands.
Public input An essential part of the Road and Trail Plan is creating an opportunity for the public to provide meaningful input. The park staff of Mount Diablo State Park will be setting up a series of public meetings during which time comments will be accepted. Times and dates of these meetings will be posted in the near future.
I'm glad they asked.

The problem with Mt Diablo is the summit road. It's a gorgeous 4.2 mile road from the junction to the summit. It carries moderate car traffic.

The mountain would be a much more serene place if it wasn't for all of these private cars driving up and down to the summit. It's simply silly. Instead I propose to the park service to close that road to cars. Run an electric shuttle bus every hour for those who can't hike or bike. The experience on the mountain for everyone would be improved. The only roar one should have to hear during a hike should be the roar of a swiftly flowing stream, not of an 8-cylinder engine, the only risk should be from mountain lions, not from getting hit by a speeding vehicle when crossing the road.

So how does this proposal compare with the priorities enumerated by the park?
  1. "Maximize visitor uses and experiences": unless those "experiences" involve driving on a dangerous mountain road, clearly the experiences of hiking and admiring the natural serenity of the hill are maximized if there's fewer cars driving.
  2. "Reduce potential safety conflicts": no brainer; big win.
  3. "Minimize natural and cultural resource impacts": no brainer, even bigger win. Few things have a more negative natural and cultural impact than private automobiles on winding, hilly roads.
  4. "Coordinate with local and regional planning efforts": neutral.

  5. "provide access to surrounding public lands.": that is adequately addressed with a shuttle bus or even, I would argue, maintained trails.

Indeed, a few years ago the road was closed due to repaving. Toward the end of the project I went around the barriers and rode it on my bike: the few sections of gravel were trivially passable and not a problem at all, especially since I saw them during the climb and so couldn't possibly be surprised by them on the subsequent descent. I wasn't the only scofflaw: there were a few groups of hikers and even other cyclists I saw during my trip. It was wonderful: no worries about cars speeding around corners, no loud engines to break the peace.

It's a very 1950's mentality that people access = car access. I'd like to hope we're able to move beyond that very flawed vision. It's unfortunate our parks, which should be leading in this movement, are actually well behind the standard set by our more enlightened cities.

Thursday, August 18, 2011

Vector launched!

Garmin announced today the launch of the Vector pedal.


Pretty exciting stuff. I've written a lot here about the then-Metrigear Vector. This certainly looks a lot like the Metrigear version did. Of course the devil's in the details, and I know a lot of development has occurred since Garmin bought Metrigear.

It will be very interesting to see how this plays out. I know that when I'm riding sometimes I feel asymmetric, that my left leg maybe isn't working as hard as my right. But that's based on perceived exertion... now you'll be able to see real numbers.

And for tandems. I don't think there's another option (other than the Look/Polar) for independently measuring stoker and captain power. How many times have I seen a guy pulling his 8-year-old kid on a Trail-A-Bike and the kid (or kids in the case of the linked version) are slacking off? Slap some Vectors on that puppy and keep an eye on those little parasites.

For portability it's a bit of a wash. Swapping wheels (PowerTap), cranks (SRM and Quarq), or pedals (Polar/Look or Garmin) can all be done within a few minutes. But for travel, I think it's fair to say the pedal system is the most portable. You probably travel with your pedals anyway when you are going to rent a bike.

On Polar/Look versus Garmin: I think there's not much contest here in terms of ANT+ Sport or Polar's proprietary communications protocol. Big advantage Garmin. It will be interesting to see when each of the units get exposed to third-party scrutiny how they compare.

I am disappointed the pedals are Exustar Look-compatibles, as I'm a Speedplay fan, or particularly a fan of low-stack light double-sided pedals. Tyler Farrar was testing these pedals last December, so no surprise here.

Anyway, I'm sure there will a lot more to say on this...

Tuesday, August 16, 2011

Dolphin South End Runners Club Brisbane Scenic 12 km

Last week I decided I wanted to do a short-ish running race, something close to home and easy to get to. Fitting the bill perfectly: Dolphin South End Runners' Club Brisbane "Scenic" 12 km race.

I'd proposed to Cara that I ride down there, do the race, then she could meet me at the finish and we'd do a little post-race ride together. We could do something flat, as she's just getting back to outdoor riding after back and knee issues. Instead, she said, she'd go down with me at the start and while I ran she'd do a little loop in Brisbane: a circuit with e little hill which has been used for the Brisbane Circuit Race.

The start (Cara Coburn).

So as I got ready to start, Cara left on her bike. I mostly did a few form drills and rolled my legs and shoulders with a massage stick. Then I did some shoulder stretches.

This race was a mixed 5 km/12 km start at a ball field in Brisbane, near the eastern base of Guadalupe Canyon Road. Both courses ran over a short climb on Mission Blue before merging with Guadalupe Canyon for the main climb of around 1000 vertical feet. Up Guadalupe, gradual in steps, then left around a closed gate to Radio Road which averages 7.2% to the summit. The turn-around was close to the summit finish of the New Years bike race. Then it was back to the start.

I noticed at the start line one guy in particular looked particularly ready to go. He had the chiseled look of super-fit guys like Leor Pantelot or Gary Gellin. Curiously he had two ribbons, one for the 5 km and the other for the 12 km race. I wasn’t sure what that was about…. Joining him on the front row were a bunch of other shirtless guys who seemed to all know each other. Hmm…. At least none of them had water, which seemed to validate my choice to leave the bottle behind. 12 km is close to my threshold for carrying water given there was none available on the course. Given the unusually warm sunshine at the start, the security blanket of water would have been comforting.

Soon enough the start, and these guys shot off in a sprint. What? Didn’t these guys realize we had a mountain to climb? I checked out quickly, and they were gone.

As I turned from Mission Blue to the curiously overbuilt Guadalupe Canyon Road (a sign of housing developments thankfully deterred?) I could see what was happening ahead. WAY off in the distance was the shirtless pack. Then there was a larger group including the lead woman. Then two solo guys, then me. I wasn’t worried, however: I could run the pace I could run and that’s all there was too it. I knew most of those following the early rabbits couldn't sustain that pace.

Sure enough I picked off people steadily on Guadalupe. Approaching the 5 km turnaround, I was surprised how many of the shirtless crew were coming back -- they were running the 5 km, obviously, including the double-tagged guy. It seemed wrong -- the quality on this run is all on the upper portion.

Soon I was at the gate, trailing one guy who I was clearly outclimbing at this point (“Alex”) and another on whom I seemed to be slowly making ground only because I was apexing corners he was taking at constant radius. I passed Alex soon enough, and tried to focus on catching the rider ahead of him. The sunshine was now gone as we’d entered the fog which enshrouded the top of the mountain.

Approaching the summit I saw a rider emerge from the mist wearing a Team Roaring Mouse vest. A teammate on a training ride? No -- it was Cara. I was shocked to see her here -- so much for her little Brisbane loop! I was very happy to see she had the confidence to try and the strength to succeed.

almost to the top
almost to the top (Cara Coburn)

The turn-around came a bit sooner than I’d expected. I still felt good, which I immediately tagged as a possible pacing error. I’ve been focusing on trail runs, where this would have been the first in a series of climbs. There you can’t go into the red or there will be a high price to pay later. But here, how much did I need to save for the descent? Maybe I should have hurt a bit more on the climb, given the descent would shift the load to different muscles, and I’d be limited by impact other than aerobic condition. If it had been 6 km into a 12 km flat race, fine, but the mixed terrain had me suspecting I should have pushed it a bit harder in the second 3 km.

Descents are my weakness. I tried to limit the losses to the runner I’d been chasing. But any thoughts of improvement here were shattered when Alex came blowing by. He literally seemed to be flying down the hill, making me look silly. Within seconds he’d passed the runner ahead of me and disappeared into the mist. I wasn’t even breathing hard: what was limiting my speed was instead the stride-by-stride impact of bounding down tarmac at grades up to 10%.

As the grade leveled out near the gate, I was able to actually run again instead of my inefficient downhill stomp. Passing through the gate I was surprised to see that fast 4 km runner heading back up. Later I heard he was doing both races today, the reason for his having both ribbons. Impressive: not so much running 17 km, but doing it with an opening 5 km done at an essentially maximal effort.

I tried to keep my Garmin at over 15 kph from here, but goals didn’t mean much at this point, it was just a matter of going as quickly as possible, of avoiding getting in the way of gravity. Back into sunshine, Alex was still out of view. The guy I’d been chasing was up the road but out of range. I glanced back and the closest chaser was too far back to be a concern. This was essentially a time trial.

My left leg in particular causes me issues on descents (although my right leg isn’t much better): probably some muscular imbalance. But it held out okay, and with the gravity assist I was soon enough back to Mission Blue. Back over the climb and to the finish… 55:04, I think. That was 4 seconds off my rough goal for the run. Ah, well: I couldn’t complain about that.

Approaching the finish (Cara Coburn).

I think I was 7th, but am not sure. Ribbons went 5 deep and I missed out on those. I think what would help my descending, in addition to practice, would be shoes with a bit more padding. I use 6 ounce Nike track shoes, pre-minimalist miminals, and I love them on the flats and especially on climbs but on the bounding downhills I think my muscles could use a break. Even the New Balance Minimalist road show looks beefy in comparison. Also I really need to work on the cycling-related muscle imbalances. A few minutes a day with a theraband might do wonders.

But no complaints: it was s fun day and I certainly can’t be disappointed with my result, especially given the fun, low-key nature of these races.

finisher's ribbon! (Cara Coburn)

Tuesday, August 9, 2011

Strava Suffer Score decoded

Strava recently debuted its "Suffer Score", which attempts to quantify in one way how hard an activity was. Suffer score, they claim, is based on heartrate: ride further or harder and suffer score is higher.

Suffer score is a good move for Strava. Strava's market segment is informal competition. Other web sites have logged how far people ride, and where, but Strava really locked into the demand for competition: competition via social networking. To date these rankings have been based primarily on speed over "segments": routes defined by users, for example on roads or trails, typically up climbs. They then added contests for volume: most miles ridden in a week and most feet climbed, for example. But with Suffer Score, they combine the two: a metric combining both quantity and quantity.

Why's this important? Of course not everyone can climb fast enough to compete for KOMs on popular climbs. But a heartrate-based metric levels the playing field to a large extent. Anyone who's been riding regularly for long enough can go out with the goal of generating an "epic" suffer score for the day.

Suffer score is an obvious correlary with the Coggan "training stress score" (TSS). TSS is an attempt to quantify the training stress of a ride: it's effect on fatigue and its stimulus for physiological adaptation. That both of these can be captured with the same simple metric is far from obvious, but TSS is a blunt instrument, and its popularity among hardcore power meter fans proves people find it useful.

But Strava's focus isn't on hard-core training junkies. It's on the typical Mission Cycling or SF2G rider: people who like to ride, and when they ride like to ride quickly, and as a consequence of this quick riding tend to acquire fitness. However, the goal of every ride is still the joy of the ride, not strictly to improve fitness. So "suffer score" is a "don't take me quite so seriously" number by which long-hard-rides can be compared. "Pain is good", it suggests, not only for it's "training stress".

The big question, however, is how Suffer Score is calculated? To test this, I used a Perl script to generate ride data at constant heartrate. My "rides" consoisted of perfect 1 km radius circules in the Bonneville Salt Flats ridden at a perfect 10 meters per second. Each ride had a different heart rate, perfectly constant, or a different duration.

First I tried using the GPX file format for this purpose, but Strava wouldn't digest the heartrate numbers. So I switched to TCX. This worked nicely.

Here's one of my rides:

From a few tests, I was able to guess the following formula was used for Suffer Score:

Suffer score = K1 t1 + K2 t2 + K3 t3 + K4 t4 + K5 t5

t1 = time in hours in zone 1
t2 = time in hours in zone 2
t3 = time in hours in zone 3
t4 = time in hours in zone 4
t5 = time in hours in zone 5

With coefficient roughly equal to the following (may be off by 1/hr):
K1 = 12/hr
K2 = 24/hr
K3 = 45/hr
K4 = 100/hr
K5 = 120/hr

I like this approach, although I'd be tempted to increase K5, for example to 200. Time in Z5 is very, very painful. Of course this depends on having a good number for maximum heart rate, which may not be the case. In fact a geometric progression would have worked well here: 12, 24, 48, 96, 192. I think this would have helped the criticism I've been reading that it's too endurance-focused.

Sunday, August 7, 2011

Aero mass-start frames and the Tour de France

The trend continues that the big bike companies (manufacturers isn't quite the term, since so few of them actually manufacture anything... perhaps "branders" is a better term...) are delivering aerodynamically optimized road frames designed for use in mass-start road races. These bikes go way back, at least as far back as the Kestrel Talon. But the use of the bikes at the top pro level really began with the Cervelo Soloist (Bobby Julich won Paris-Nice on the bike). Then the Cervelo SLC and SLC-SL really got things rolling. Then Ridley came out with the Noah and Felt with the AR, and Fuji with the SST. And these are just the bikes of top-level pro teams. Kestrel updated the Talon (and Talon-SL), and Litespeed came out with its stunning Archon-CF; neither of these bikes got pro-level attention, however (Kestrel briefly sponsored third-tier Rock Racing, but Rock used their stiffer RT-800).

Yet except for the Cervelo, all of these frames seemed to encounter resistance from riders on the teams using the brands. What was up? The frames were heavier, typically around 250-300 grams heavier than a frame designed without consideration for aerodynamics other than fork shaping, but with the UCI mass limit at a relatively beefy 6.8 kg, with carbon-rimmed wheels there's still plenty of room for heavy frames for bike at the rule-limited mass. And even with Cervelo, many of the riders chose the R3 (or R3-SL) over the SLC-SL, despite Cervelo super-engineer Gerard Vroomen's claims the SLC-SL was the far faster bike on virtually all terrain, even without a weight limit to equalize mass. The epitome of this was the 2008 Tour de France, where team leader Carlos Sastre flaunted the wind tunnel by riding the R3. He then won the yellow jersey.

The issue, obviously, was the feel of the bikes. Aero frames have a reputation for a poor trade-off between ride quality and stiffness. The Kestrels have a reputation for smooth ride, but poor stiffness. On the other side, the Ridley was said to be super-stiff, but an uncomfortable ride.

In the 2008 Olympics Cervelo released the S-series, with the pro-level frame being the S3. Now even more of the riders on Cervelo-sponsored teams were using this over the R-bike. It was the first aero-optimized frame to get relatively wide acceptance among pro riders.

But this was just the start. Scott revealed the F1 (later called Foil) at the 2010 Tour. The entire HTC-High Road team road the bike, with the exception of Mark Cavendish who switched back to his customized (extra beef) Addict bike after the first few stages. After the switch, Mark went on to win five of the final 15 mass-start stages.

But this year saw some of the biggest brands in cycling deliver the goods. First Specialized debuted the Venge at Milan San Remo, and the bike promptly won that epic classic with a rider, Matt Goss, who wasn't a favorite. All about the bike, right? Then Cervelo came out with the impressive R5, which looks a lot like a Felt AR but with a skinnier head tube.

Cervelo S5 from its most flattering view

Both frames showed impressive success in the Tour this year. Mark Cavendish rode his Venge to five stage wins, while Thor Hoshovd rode his S5 to two stage wins and a remarkable seven-day run in the yellow jersey (he started the Tour on an S3, but switched to a yellow S5 when he got the jersey). Hoshovd's reign seemed to validate Vroomen's claim of the benefits of aerodynamics on hilly terrain, as he against hope managed to twice cling onto lead groups of GC favorites to defend his GC lead against eventual winner Cadel Evans by just a few seconds.

So it seems the revolution was finally being won by the aero frames. After years of wind tunnel data showing that only a fool would take a round-tube bike into anything more competitive than a friendly bike commute, the pros were finally coming to their senses and the aero road frames were rising to a position of permanent dominance.

So when the dust had settled on the final sprint into Paris, how did they do in the final GC? In the Tour, top 20 is generally considered a noteworthy result: below that and a large number of the riders were burdened with other priorities, like team duties or focusing on stage wins, so actual placing is far less meaningful. So I'll focus on top 20. How many of the top 20 were on aero-optimized frames? Here's the result (from CyclingNews):
1  Cadel Evans (Aus) BMC Racing Team                86:12:22
2  Andy Schleck (Lux) Leopard Trek                  0:01:34
3  Fränk Schleck (Lux) Leopard Trek                 0:02:30
4  Thomas Voeckler (Fra) Team Europcar              0:03:20
5  Alberto Contador Velasco (Spa) Saxo Bank Sungard 0:03:57
6  Samuel Sanchez Gonzalez (Spa) Euskaltel-Euskadi  0:04:55
7  Damiano Cunego (Ita) Lampre - ISD                0:06:05
8  Ivan Basso (Ita) Liquigas-Cannondale             0:07:23
9  Thomas Danielson (USA) Team Garmin-Cervelo       0:08:15
10 Jean-Christophe Peraud (Fra) AG2R La Mondiale    0:10:11
11 Pierre Rolland (Fra) Team Europcar               0:10:43
12 Rein Taaramae (Est) Cofidis, Le Credit En Ligne  0:11:29
13 Kevin De Weert (Bel) Quickstep Cycling Team      0:16:29
14 Jerome Coppel (Fra) Saur - Sojasun               0:18:36
15 Arnold Jeannesson (Fra) FDJ                      0:21:20
16 Haimar Zubeldia Agirre (Spa) Team RadioShack     0:26:23
17 Christian Vande Velde (USA) Team Garmin-Cervelo  0:27:12
18 Ryder Hesjedal (Can) Team Garmin-Cervelo         0:27:14
19 Peter Velits (Svk) HTC-Highroad                  0:28:54
20 Jelle Vanendert (Bel) Omega Pharma-Lotto         0:32:41

The answer: none of the top 20 riders were on aero-optimized road frames (reference). Sure, the Garmin-Cervelo riders had the option of the S3 or S5, but Tom Danielson, Ryder Hesjdal, and Christian Vande Velde were all on R5's. And taking these riders as the prime contributors to their team's win in the team general classification, none of the top 3 teams in GC got there aero road frames. The team GC podium teams, Leopard-Trek and Europcar (on Colnagos) were on round-tube frames.

So what do you conclude from this? Two choices:
1. The fools! Every one of the top twenty would have been even faster had they seen the light of science and ridden aerodynamically optimized bikes. Wind tunnel data do not lie!
2. There's a lot more to bike racing than wind tunnel data.

It's remarkable, really. Every single test shows these bikes a substantial (on order 5%) reduction in wind drag from riding an aerodynamically optimized frame. Even if this is less important during crunch time on the climbs, the advantage, even while drafting, should be enough that it leaves riders fresher to deliver power during these critical periods. But the results simple don't show it.

Word is Cannondale and Trek will both enter the game soon. Maybe the aero-optimized frames will finally show their advantage. Or maybe the advantage is less than simple analysis suggests.

Saturday, August 6, 2011

San Francisco "summer"

It's been regularly chilly in San Francisco this past month. The marine layer blows fog in from the coast, and while it can be toasty warm in east of the Bay, on San Francisco streets sweaters, jackets, and scarves are common.

Here's a photo I took from the train on Sunday as the evening fog engulfs San Bruno mountain:

I wrote a little Perl script to download and process data archived on Weather Underground for Mission Bay, one of the warmest neighborhoods in San Francisco. Data are recorded every 15 minutes. For each of the years 2006-2011 for which data are available at that weather station, I took daytime (6 am to 9 pm) data from the period 08 July to 07 August (the past month as I write this) and binned the data between 6 am in 9 pm in 1 F bins. I then generated cumulative distribution plots for each year. So for each temperature I indicate the percentage of daytime samples which were less than the given temperature.
temperature data

There's a clear pattern here. For 2006-2008, temperatures in the 70's where fairly common, with even some numbers reaching into the 80's. However, these last three years, 2009-2011, there've been no data in the '80's, and last year the temperature even failed to get out of the 60's during this one-month period. The median temperature, even at warm Mission Bay, was only 61F. This year it's almost 63F.

temperature data

While the rest of the northern hemisphere laments the dog days of August marking the end of the hot summer, here the warmest months are September and October, when the fog has the least influence. Ironic that these hottest months mark the end of the road cycling season and the beginning of cyclocross.

So my standard dress on rides continues to be knickers or full tights with long-sleeve undershirts under my jersey with a vest. I actually enjoy the heat, at least to a limit, so I look forward to those September and October days when I can ride with just a jersey and shorts.

Friday, August 5, 2011

San Francisco Marathon encounter

On Sunday morning I forgot the San Francisco Marathon was happening. It's easy to do -- there's not much said about it. The primary publicity is of inconvenience more than anything: car travel across the race route would be delayed.

My first encounter with watching a marathon was when I lived in the Boston area and watching The Marathon was virtually mandatory on Patriot's Day, the day which marks Massachussetts' emergence from a long, grey, cold winter. The huge number of runners in the race were dwarfed by the number of spectators, with many sections stacked on both sides with cheering viewers.

Later I lived in Austin, Texas, and while the marathon there wasn't in the same class as Austin, it was still a popular event, and people would follow the race and cheer the runners all along the fast route.

San Francisco, on the other hand, despite providing probably the best terrain for a marathon in the country, treats the race as a necessary evil to be gotten out of the way as painlessly as possible. With an ungodly early start on Sunday morning, well before most potential spectators are awake, earlier even than many East coasters are awake despite their three-zone head start, there's very few accidental pedestrian encounters with the race. The winners finish the race before most first-tier marathons even begin.

Austin in Texas starts bright & early @ 7 am. Chicago starts at 7:30 am. Boston starts at 10 am (elite men; women start at 9:30 am). And at New York the first wave starts at 9:40 am. Each of these races embraces spectators. In the case of Boston it's a virtual obsession.

At San Francisco the elites heads out into the darkness at 5:30 am. Spectators? Hardly any.

So back to Sunday -- I headed out on my bike at 10:56. I heard whistles ahead -- what was that? Oh, no -- the marathon, I realized; I'd forgotten!

Fortunately runners were still out there. These guys had been on the road for a bit more than 5 hours: the slowest wave at started at 6:32 am. I saw a mix. Some were jogging along at a steady pace, no doubt close to their goal. Others, perhaps from optimistically earlier waves, were asymmetrically limping, barely walking. I asked a runner how far to the finish: 3.5 miles, I was told.

After stopping in Whole Foods for some bars for my upcoming hike, I rode my bike along the sidewalk, upstream on the route. At an intersection a cop was waving traffic through. A runner waited to cross, glancing nervously at his watch. First one car, then another, than another crossed the intersection at the cop's encouragement. Then a big rig slowly, carefully, entered the intersection as it began a turn, perhaps to deliver a load to the market I'd recently left. The runner was still waiting.

I moved on. The irony of this was the intersection had been unsignaled. Without a light, pedestrians have right of way. On a normal training run he'd have been able to head right across after a brief check to make sure drivers were aware of him. And even if there'd been a light, the signal phases in San Francisco are mercifully short: he'd have been waiting far less time than he was forced to by the cop. And this was supposed to be the signature marathon of a major U.S. city?

Next intersection and the cop was more sympathetic to the runners. A few cars were waved by, then a group of runners apprached. She put out her arm, stopping the next group of cars. Another gap, and more cars were allowed to pass, but then a solo runner approached. She put out her arm, blowing her whistle. But this time, an approaching car didn't stop, instead accelerating and veering around her. Fortunately the runner hadn't trusted her right to pass, and waited.

This all made me very sad. Marathons are great events, a celebration of the human body, of dedication to training and perseverance. Yet San Francisco seems to view its event as an unfortunate obligation to be executed with as little inconvenience to Sunday morning drivers as possible. For example, it would not do at all if they were late to church.

The "complete streets" movement is premised on the paradigm shift that roads are too valuable a resource to restrict only to car use. Yet people view it as a violation of their fundamental human rights if they can't drive their vehicles where they want, when they want, as rapidly as their engines, handling and reflexes allow. Once again San Francisco shows it lags behind east coast cities like New York and Boston in this realization.