Posts

Showing posts from 2013

blog posts per year: 2013 update

Image
As the year ends, it's time to check on my post rate for 2013... I plot the accumulated posts per year by month: 2013 is a purple line. There's a weak period following my injury in June, but then I had a burst of inspiration, and I ended up right up there with 2009 and 2011. 2010 was the most productive year, whereas 2012 was a slow year. Here's the totals by year, along with a trend line I established last year, as well as a revised trend line: 2013 was tied with 2009 for 2nd most after 2010, while 2011 was only one post less for 3rd. I recovered from the reducing post trajectory I seemed to be following last year. The new fit uses a somewhat different formula consisting of two components: a hyperbolic tangent for the upward transient followed by an exponential decay. My 2012 formula uses a linear ramp for the upward transient, but hyperbolic transient is better, as it saturates: posts = 169.2 tanh [ 1.13 ( year - 2007.89 ) ] exp [ -0.063 ( year - 2007.89 ) ]

some 2014 New Years resolutions

It's approaching the end of 2013, and it's time for some New Years resolutions. I used to be against New Years resolutions, because I felt if there was something worth doing, it should be done immediately, not held off until New Years for the purpose of providing a resolution. Indeed, that may be true, but it's still worthwhile to take time to reflect at the end of the calendar year and think about changes worth making. So with that in mind, some resolutions: to eat more apples to get my hair cut -- it's getting long to work from home more often. This requires definable goals for the day. I spend too much time on the Caltrain commuter rail. to ride from home to work at least 52 times during the year, barring issues such as the injury which got in the way of me doing so this year. This is not a top-priority goal, as riding to work gets in the way of other goals, such as running at lunch, or going to yoga class after work, since it gets me to work later. But 5

running km per day: more trend analysis

Image
Yesterday I did a run followed by a hilly hike, each approximately 10.5 km. This put a 21 km point on my trend analysis plot. I then redid the plot, including my least-square regression of an exponential curve. Here's the result, along with two other curves I'll explain in a bit: This was my longest day so far, but it was just one day. However, the result was a profound change in the exponential trend line. Small aside: in the plot I did yesterday, I made a small error, which was to assume when you fit a curve K exp(α t) to time-series data, if &alpha is in units 1/week, then this represents a 100×&alpha% per week increase. This is a good approximation only for small values of &alpha. I corrected this error in the text of yesterday's blog (not the plot), and did it correctly in this plot. Anyway, the problem with the exponential trend line is least-square fits are highly influenced by outliers, especially when they occur at the edge of the data. So

running km per day trend analysis

Image
With December travel now complete following completion of my post-injury physical therapy, I've been focusing the past weeks on running versus cycling. I decided to analyze how my trend has been in running distance. It's common to plot running distance versus week, but this can yield artifacts. For example, if the week starts on Sunday versus Monday, it could shift a Sunday long run a full week. This is too crude a time precision for good trend analysis. So instead I plotted distance per day, including running and hiking but not walking (since walking is so ubiquitous in daily activity it's hopeless to try and track it without wearable sensors). I then fit an exponential curve using an unweighted least-squares fit to analyze the trend. The plotted data extend back to when I started running again post-injury. I had done a few treadmill workouts well before this, in August, but these left me hobbled, and so I basically restarted from scratch on 31 Oct due to the encou

2014 Low-Key Hillclimbs pages posted today

Image
Every year it seems like more work than the year before, and that's probably because it is more work than the year before. But I just finished preparing a workable draft for the 2014 Low-Key Hillclimbs web pages. They're here . The default page remains 2013, as I want to keep the results from this year up at least through the end of the calendar year, which is just a few days away. Why more work? Two reasons. One is the increased prevalence of new courses. In the past, when I'd select climbs for the next season (with rider input) I'd intentionally go for a mix: the annuals (Montebello and Hamilton), a few favorites on a roughly 3-year cycle (like Old La Honda, Kings Mountain Road, Sierra Road, Bohlman, Welch Creek, previously Diablo before we dropped it due to hassles from the rangers), and others which were good for rarer repeat visits (like Soda Springs, Page Mill, Highway 9). Then each year we'd add in a few, maybe two or three, fresh climbs just to st

Marin Headlands: Miwok and Marincello

Image
An amazingly nice mountain bike loop in the Marin Headlands, just across the Golden Gate from San Francisco, is the Miwok trail - Marincello trail climb combination. The two are connected by the Old Springs trail descent with its fun series of modest steps. The return from the Marincello summit is the Bobcat Trail descent. A profile of the climbs with the Old Springs descent in between is here: The smoothed grade versus distance is here: The grades omit the transitions at the bottom and top. Still, they don't do full justice to the difference. Miwok is an undulating grade, with a series of steeper portions, while Marincello is more of a steady grind with a brief recovery followed by a final short, steep bit at the end. Marincello is a smoother surface: there's some ruts on Miwok. But both trails are easily rideable on a road bike. The Old Springs descent is a bit rough going on a road bike but it's still not a problem. This is an awesome loop and easily exten

Mount San Bruno, Price to summit

Image
Pen Velo's annual New Years Day San Bruno Hillclimb climbs San Bruno mountain from the east side. The climb has two sections, one up Guadalupe Canyon Road, then there's a loop down and under that road onto Radio Road, then the final, steeper climb to the summit. I did a profile of that road awhile ago, to describe that race: But there's multiple ways up the mountain, 3 (at present) completely paved, perhaps a fourth to kick in when an unfortunate housing development marring the north side of the mountain is completed (Mount San Bruno, except for the very top, has failed to enjoy the general level of protection of development Bay area mountainsides have received). The two major approaches are the two sides of Guadalupe Canyon Road, the other side being the west side, from Daly City. This climb begins in earnest at Price Road. An advantage of the western approach is freedom from traffic lights. The eastern side has a traffic light at Carter Road. Additionally the we

2013 was the steepest Low-Key Hillclimb series yet

Image
On a short flight from Malta NY to Philadelpha, I decided to take a quick look at the net climbing statistics from Low-Key Hillclimb years. To do this, I took the stats for each climb from the last year the climb was used (rather than the stats claimed for each given year) since on some climbs there were revisions as better data became available. I summed up the climbs for each climb for which there were finishers, omitting "X" weeks. Here's a plot of the result. I superpose lines representing constant average grades from 3% up to 10%. 1995 has the most total distance and climbing since there were 12 climbs that year, including both Mt Hamilton, Mount Diablo, and Soda Springs, all long climbs. It falls fairly average on the average grade spectrum. 1998 had the least climbing despite climbing Mt Hamilton twice. The series started out short and had two climbs canceled, leaving only five. Since we stopped doing Mount Diablo after 2009, climbing in the series has g

In Malta, NY

I'm in Malta NY on a business trip. It was a cold night. I wanted to get some food supplies. I knew there was a PriceChopper food market nearby, so I went to the desk. It's a cold morning. Weather underground says 0F now (8am) but it was probably colder then. Fortunately I brought layers. Even earlier, in the pre-dawn darkness at 6:15 am, I'd seen a woman going toward the lobby wearing cold-weather running gear. "You're running outside?" I'd asked. "If so, it's been good knowing you..." "I used to live in Lake Placid. I'm used to it," she responded confidently. So now it was my turn. I asked directions for Price Chopper. "You go here, then around this traffic circle...." It was clear I was getting driving directions. "No -- I'm walking." She looked at me incredulously. "It's a half mile away. Do you want me to call you a taxi?" "I'll be fine..." I responded,

December travel

December for me this year is dominated by travel. Last weekend and the last part of the preceding week was consumed by a trip to a company internal conference in San Diego. San Diego is cool: I'd previously been there for a Christmas bike tour supporting Hostels International maybe four years ago. But that was just in-and-out. This was first time spending real time there. The hotel was near the convention center, so it had excellent access to a bike-ped trail along the bay. At 6 am the first day was a 4 km running race for conference attendees along the path. That was fun: my first "speed work" since my injury, and all things considered I did okay, finishing 5th. In total Wed PM - Sun AM I managed 3 yoga classes (two in a local studio, one affiliated with the conference) and 4 runs (the race, a stair climbing session in the hotel stairwells, and two long runs). This overindulgance in running took a certain toll, and my legs are still a bit tired a week later. I

cumulative SF2G rides by year

Image
With a huge amount of travel this month, I'll get only two real rides in, and no SF2G s. So it's a good time to make an accounting of my SF2G totals. I last did so at the end of 2011 , so somehow 2012 slipped through the cracks. I have a rough goal of averaging one per week, but haven't attained that yet. It's important for me to have a goal to kick my butt out the pre-dawn door to ride the more than 70 km into work. I try to keep a running total when I upload rides, but since I usually do this at work, I'm always in a rush and relying on memory to do so occasionally fails. So I'm forced to go through my Strava record and count. Here's the plot, which starts when I signed up for Strava in 2010: 2012 started with happy memories of New Zealand riding. I had a down-time in May when I had back pain, but overall it was a solid riding year until I redirected my focus on running for the Sacramento Marathon (CIM). At the start of 2013 I was still running,

Montebello and Mount Hamilton: climbing speed trend in Low-Key Hillclimbs

Image
Montebello Road and Mount Hamilton Road are the two climbs we've done pretty much every year in the Low-Key Hillclimbs. They are thus the best source of data on speed trends in the series. For men and women solo riders, I took the geometric mean of rider times for each of the climbs each time they were done. Hamilton was done twice in 1998, while Montebello was skipped that year, but every other year Montebello was week 1, Hamilton on Thanksgiving. Here's the result, with men in blue and women in pink (original, I know): There's some interesting trends. In the 1995-1996-1997 as the series got more popular the average speed dropped for both climbs. 1998 was a slight down year for turn-out, but there's no Montebello data. There were two Hamiltons that year: the first was week 1 and it went off as normal, with faster times for men and slower for women. The second one, on Thanksgiving, was even quicker, but that one was broken into two portions due to a motorcycl

updated annual trends in Low-Key Hillclimb turnout

Image
Part-way through the 2013 Low-Key series, I did a blog post on the downturn in attendance versus last year. For completeness, with the series done for the year, I wanted to update that plot. Here's the numbers through end of 2013. I plot a trend line from the 2009 peak through 2013. There's a loss in average finishers of 6.5% per year, with the rate of loss visibly accelerated the previous two years: But one change the past two years has been the GPS timed events. These have started out a bit slowly, with Kennedy Fire Trail last year attracting only 45 finishers, still above expectations and still what I'd consider a great success. Then this year we extended it to two GPS timed events: Portola Valley Hills, week 4, had 69 finishers. Montara Mountain, week 8, had 51 finishers, despite a somewhat remote starting location (at the coast) and a quite challenging dirt climb (too hard for most cyclists to do on a road bike). So the GPS climbs dragged the numbers down a

2013 Low-Key Hillclimbs: rider score variability and the scoring algorithm

One of the goals of ths scoring system was that rider scores varied least from week-to-week. Of course, this is simply accomplished: just give each rider a score of 100 each week, \ then variation is zero. But of course that's not what's wanted. So an additional goal is that scores are roughly proportional to rider speed in a given week. I'll consider three scoring schemes here for the Low-Key 2013 data: score 1 is 100 × median time / rider time score 2 is 100 × a reference time / rider time score 3 is 100 × (a reference time / rider time) slope factor Here the reference time for the week is a geometric average for all solo riders adjusted for the rider division (male, female, hybrid-electric) and the slope factors are calculated \ for each week based on how spread out the rider times are, but have a weighted average of one. I then calculated for each rider doing at least two climbs the standard deviation of their scores, for each score, and took the root-mean-squa

Low-Key Hillclimbs 2013: weekly score parameters

In the Low-Key Hillclimbs scoring, I calculate two parameters for each week's climb: a "rider quality" parameter which describes the average strength of riders in the climb, and a "score slope" parameter which describes how spread out the riders are. These parameters are determined from rider identification and score alone. Only riders who do more than one climb contribute to these calculations, because these riders provide a basis for comparing one climb to the next. After a single climb, if riders finish close together, than it could be due to the fact the riders are similar in ability. But if the same riders do two climbs, then assuming the riders don't naturally spread or converge in ability, then if they score closer together in one of the climbs then it might be assumed this is due to the nature of the climb, for example that the climb where they finished closer together had shallower grades where wind resistance was more important, or maybe even

2013 Low-Key Hillclimbs: examining the score algorithm

Image
With the 2013 Low-Key Hillclimbs now over, it is a good chance to reflect on the scoring scheme and to see if it accomplished its goal of making similar relative performances on substantially different climbs score similarly. To check this, I took the score from each week and adjusted it for the quality of the riders on that week. This should in theory result in a similar scoreing distribution as if riders of similar speed showed up each week. The rider quality adjustment is done to scores if primarily faster or slower riders show up certain weeks. For example, particularly challenging climbs like Montara tend to attract primarily stronger riders. Then I plotted these scores versus rank. I used a normalized rank r which goes from 0 to 1, then applied a log-normal transformation to that number to map 0 to 1 to -infinity to +infinity. Each week is scored using two adjustable parameters: a reference time and a slope factor. The goal of these parameters is to make each rider's

Bike Brands at the Low-Key Hillclimbs

Starting in week 5 I began asking riders to describe the bike they were on when they RSVP'ed for the following weekend's Low-Key Hillclimb. We used to write this down at check-in, but it made it a lot easier to search the data if I had it entered digitally. So if we had a rider on a red and yellow bike and couldn't identify him I could search for all descriptions with both "red" and "yellow" for the bike and realize there was only one such description. We also ask for jersey color, but still write that down at the start, since I for one have problems planning this sort of thing ahead of time. But maybe others plan their wardrobes better, so I may add jersey description to the RSVP form as well. But anyway, I decided to check what bike brands people were riding this year. So for rider numbers for whom I had a bike description (one per rider, so not counting the same rider multiple times if he rode multiple weeks), considered his bike description and

Low-Key Hillclimbs 2013: personal report

Another year of Low-Key Hillclimbs has come and gone, ready or not. When the series began in the first weekend of October I had been riding again for two months (Aug-Sep) after missing most of June + all of July to a groin injury from a bike crash. My focus during this period was on physical therapy, however, and my ride tended to be short and low-intensity. My progress from late Aug - early Sept took a step back when I devoted riding time to watching America's Cup racing. I started ramping up again at the end of September but I was nowhere close to where I needed to be. I traditionally coordinate Montebello, week 1 of the series, and this year was as usual. Weeks 2 and 3 I volunteered, riding climbs both weeks in advance of the participants in order to take split times along the course (Montevina + dirt week 2, Bohlman week 3). These were good, solid, hard climbs, and were a nice boost to my fitness. I added an Old La Honda Wednesday Noon Ride late October, finishing just

Low-Key hillclimbs consolidated results pages

Image
I am a firm believer that old event results matter, and am always dismayed when I check for results of some past event or race and can't find them. The half-life for old results tends to be around 2 years: typically you can find last year, but go back two years, and it's 50-50. Since a big motivation behind Low-Key Hillclimbs was to show how things can be done better, I've made an effort to keep old results easy to find. With this in mind, I've long had a vision that results should be in some sort of queryable data base. For example, want to find the best scores for women in the 20+ category? No problem. I can do that: I have command-line tools which allow me to quickly search a CSV file of scores from the entire series history. But to provide an on-line access to that would be nice. But that would be a lot of work. As an intermediate step, I decided to write Perl code which would generate static HTML of the consolidated results for every climb Low-Key has do

history of Low-Key Hillclimb banners

Image
I've been organizing the Low-Key Hillclimbs, with one extended break, since 1995, and as a cycling event it has always has always had its existence firmly planted in the internet. It was relatively early in that regard. Web design hasn't really help up with the times, however. The pages are relatively simple HTML, although I indulged in some JavaScript in 1997, even with on-line ordering for T-shirts. I've only recently started using PHP, and only for Strava API interaction. I want to move toward more PHP in the future, but for now the HTML works fine. One feature of every year is a banner image. Banner images are rather dated these days, but I still like them. Here's a brief history of the Low-Key Hillclimbs banner image. One note: the 1995-1998 pages were reconstructed, since they had been inadvertently lost. 1995-1997 were regenerated with original graphics, but 1998 was generated fresh in 2008 from 1998 result data. So the 1998 banner image is circa ten year

VAM analysis of climbing Marin Ave in Low-Key Hillclimbs 7X Challenge

Image
Marin Ave isn't like most other climbs. With Marin, it becomes as much a matter of survival as of speed. Speed is desired as much because it ends the suffering sooner as because of the desire for any target time, placing, or Low-Key Hillclimb points. Yet in the case of Saturday's 7X challenge of course the placing and the points were still important. A nice thing about metrology data is they tell a rich story if examined closely enough. In this case I didn't have a power meter, my PowerTap too heavy for timed hillclimbs, so I have to rely on other ways to judge my effort. On a climb this steep, VAM is a nice proxy for power, so I use that to judge my pacing. VAM extracted by numerically differentiating measured altitude with respect to time is inherently noisy, especially on a Garmin Edge 500 where altitude is reported with 1-meter resolution. So to get meaningful numbers I convolved the result with a Gaussian of sigma 3 seconds. This smooths the VAM to something w

Low-Key Hillclimbs week 7x: timing Marin Ave with GPS

Image
Saturday was a double event of sorts for Low-Key Hillclimbs. We had the standard climb, up Lomas Cantadas in the Berkeley Hills, but we combined that with a bonus event, to do Lomas and Marin Ave, in that order, in the same day. We called it the 7X Challenge . The climb of Lomas Cantadas was fun. I felt stronger than I had the week before, at Patterson Pass. The pace was very quick at the start, requiring a level of explosiveness I simply do not have now or maybe ever, and I drifted back. This cost me a bit on the short descent, where I was in slower traffic than the leaders, but I did well on the final steepest portion, passing riders who suffered from having stuck closer to the leaders in the early going. Among the riders without electric assist, I was 9th, a very good result for me this year, given my ongoing physical therapy to recover from my June crash and injury. I helped with the finish line crew to get the numbers of riders finishing after me, then headed over to the p

Low-Key scoring and X-weeks

Low-Key scoring got complicated when we started balancing the contributions from each week. The results from one week can affect the results of other weeks. This is fine. There's several goals in the scoring: the average of all rider scores should be 100. rider scores should be as consistent as possible week-to-week if I plot the logarithm of scores versus the logarithm of times in a given week, I get a straight line, the average slope for all weeks being one. A trivial example for this might be the following: Suppose rider A does climb 1 and gets a time. He's the only rider in climb 1. Climb 1 has been the only climb. He gets 100 points, consistent with the first goal. Now rider A does climb 2 and gets a time. Again he's the only rider, but now there's been two climbs. He gets scores of 100 and 100. This is consistent with goals 1 and 2. But suppose now I realize there was also a rider B in week 2. Rider B was 20% faster than rider A. Using the third goa

polyline checkpoint enhancement for GPS timing during Low-Key Hillclimbs

As I initially described here , I have been developing an event model for GPS data for the Low-Key Hillclimbs. This allow us to do things which weren't possible before: dirt climbs: 2012 and 2013 , where it's better to let riders do it on their own short-hills routes , where there's too many time points for practical hand-timing bonus climbs , supplementing the standard "event", in which riders get a chance to experience more challenges A limitation of the model has been checkpoints are defined as fixed line segments. This provides a much better solution to event applications than does the Strava timing algorithm, which is optimized for users who within a few seconds define an arbitrary, abstract "segment" and the code is left to match rider data to the segment without much additional information. My model is set up for a course designer who is willing to carefully optimize the placement of a series of checkpoints, to improve timing accuracy and to

Low-Key Patterson Pass: small groups and the prisoner's dilemma

Image
The prisoner's dilemma is a description of a problem where you have two suspects are captured, accused of committing a crime, and are isolated in separate cells. If either admits to the crime while the other does not, the prisoner admitting to the crime is set free, the other given the most severe punishment (10 years in prison). If they both confess, they are given a light, 2 year sentence. If neither confess, they are held in prison for one year, but eventually freed for lack of evidence. So if you're one of the prisoners, what do you do? If they could collaborate, then the best approach would be for neither to confess. They'd esch serve a year in prison, which isn't great, but overall they'd serve only two years. That's much better than the alternates. But they're isolated, so they can't collaborate. For each prisoner, what the other prisoner does is beyond their control. If the other prisoner confesses, then he is better off confessing as