Pacer seeding

The 2011 Seattle Marathon is just a couple weeks away. I’m organizing the pacers this year…

Aside: being pacer organizer is good but there are some weird experiences. I got email from some guy in Toronto who wanted to pace and another email from someone interested in pacing but who wouldn’t be in Seattle for the next year or two, so how about pacing then? But I digress…

…and in past years in the start area there have not been any signs helping the starters line up by pace.  There’s just one giant start area for both the half and the full, though the races start at very different times.  I tried to lobby to get some signs set up on one side of the start chute for the half with minute/mile pace markers and signs on the other side for the full (there are >3x as many half finishers as full finishers, so the pace groups for those paces will definitely be very different). It seems like we’re not going to get that, so I ran some numbers.

I went to the Seattle Marathon’s website for results and pulled down results from 2008-2010 for the half and full (mens and womens).  I sorted results by chip time to figure out where people really *ought* to line up given how fast they finish the race, and here are the results I found:

The key part for where we should line up with our signs are (assuming we can approximate how far back “the back” is and that the crows is uniformly distributed):

  • 1:45 half / 3:30 full should be about 1/10 of the way back from the start.
  • 2:07 half / 4:15 full should be about 1/2 way back from the start.
  • A 2:30 half / 5:00 full would be ~4/5 back from the start (however Team in Training are going to provide 5+ hour pacers this year)



This is my favorite song for 22 October 2011:



A friend recently posted a comment mentioning latency that made me want to dump some thoughts about what I feel like I know about the topic. There are better sources on it in greater depth (go to Steve Souders’ blog or there tons of good things James Hamilton has written on it) but I have a pretty broad working knowledge of it so here goes. I’ll try to introduce what latency is, how it’s measured, and how it’s analyzed.

Web latency can roughly be defined as “how long it takes your pages to load.” It’s common to start thinking about this by wondering what the connection speed of the clients reaching your site are, but this often doesn’t really matter.  Even if you get this, you’ll just know how fast your clients are, but what matters is the their perceived speed of your pages.  It’s important to understand that there is both server-side latency (how long it takes your site to generate pages) and client-side latency (how long it takes customers to get your pages).  Server-side latency is pretty easy to measure – you can generate markers in server-side code that extensively measures how quickly you can generate pages, but users don’t care if you generate your pages quickly – they care if they get them quickly.

Latency is typically measured in milliseconds, both for server or client-side. I mentioned it’s easy to add instrumentation to measure serverside latency but measuring client-side latency is trickier. You generally can’t measure the “speed” of a client, nor would you really need to.  To do this, you need to conduct fairly extensive tests sending multiple files back and forth between the client and server and at the end of the day, you’d only know approximately how that client is (or your average client) and, again, this doesn’t matter for the client’s perceived latency of your site. The typical way to measure client-side latency is to include some javascript in the pages you send to the client which call back to some server code tracking those markers.  Once you have this, you can measure a few markers:

  • Time to first byte – how long it takes for your page to start reaching the client
  • Time to (some key metric) – you might want to measure some skeleton of the page that starts to render, “the fold” (the chunk of a page which renders in the initial screen of the browser without any scrolling), or some other key feature on the page which may be above or below the fold
  • Time to page loaded – how long it takes for the entire page to reach the client

Each of these matter for different applications and you need to decide which are most important for your site (though initially it’s probably best to just focus on time to page loaded).  Also, the injection of all those callbacks to measure this don’t come for free and will impact the latency of your pages, so it’s common to measure this selectively to understand the overall health of the site at different times throughout the day. You might exhaustively measure this for all transactions (all pages, all clients) to get a quick, comprehensive measure of latency and understand weak points in the experience with your site but typically you can more selectively add this data collection and monitor it over time.

So those are some of the key ways to measure latency – once you’re collecting all this data, there are different ways to analyze it. The ways I know best are those that we use in my current job so those are some of what I’ll focus on. When measuring this you can look at different percentiles or using understats. Percentiles are similar to SAT scoring and are usually reviewed at intervals like “p10” (10th percentile – the 10% fastest clients), “p50” (50th percentile – the midpoint), “p90”, “p99”, and “p99.9” (the slowest 0.1%). It might be obvious, but p99 > p90 > p50 > p10, and all points in between.  Even if you have a completely homogeneous user base, these will vary.  You might find that they are all pretty fast or slow, but you’ll probably find that they vary over the course of the day and week and you’ll probably find p90 is dramatically slower than p50.  They will vary over the day as when your services are higher/lower loads, when your hosts are undergoing maintenance, or when the user base varies (if your site draws worldwide traffic then in the middle of the night you’re seeing overseas traffic which will have some increased inherent latency you can’t easily reduce). When you have your instrumentation data collection system in place, you can track this over the course of the day and week and identify different tolerances that are important to you. It’s not important to measure all of these immediately, but it is important to settle on a few key thresholds and focus on improvements to those over time.

The other main way I understand to look at latency is using “understats.” Understats can be plotted in two interesting ways and are sometimes preferred to the time percentile statistics.  Understand pivot the same data you’d see from percentiles along an axis which analyzes percentage of customers receiving pages in a certain time – u1000 tells what percent of users received the page in 1000ms, u2000 tells the same for customers receiving the page in 2 seconds (2000ms), and so on.  This can be plotted over the course of the day (u1000 might fluctuate from 40%-80%), or aggregated over some time period. In the second approach, latency for the requests is sorted from fastest to slowest and shown in an a plot (usually an asymptotic arc) that reveals all understats for that time period (y-axis from 0-100% and x-axis ranging from fastest client (lowest latency) to slowest (highest latency)).  The profile of the understats graph plotted in the second way can reveal a lot about the latency profile of a site, so I like it for at-a-glance view of latency, but for regular operations it’s more practical to set up rules like “I never want my p50 to exceed 1200ms” or “I never want my u2000 to exceed 30%” and run operations based on that.

[note: this would probably be more illustrative if I added some pictures illustrating these – maybe I’ll do a followup post with some of that later]

There are a couple other interesting aspects of latency measurements. You probably won’t have uniform latency across your site.  It’s probably important for your landing page to load quickly. If it’s not, users will immediately leave the site and not bother learning what it’s about, so this page might be almost completely static – most serverside latency is passed straight to the client, so building a complex and slow landing page could be death for a site. It might also be important to have this page distributed from edge cache servers or distributed via some CDN.  You probably can’t have servers everywhere in the country you’re serving, but you can outsource this to a hosting company (CDN) that can have fast servers throughout the geographic region where your customer base is.

You’ll also have different numbers of resources required to render your pages.  Consolidating and minifying these helps. Consolidate your javascript into a single file which can be fetched in a single request or series of requests rather than across multiple fetches – do the same with CSS. Also, for production, run both through a minifying system that strips whitespace, abstracts variable names to single characters throughout the JS (the client browser doesn’t need to know friendly variable names to render), and so on. Another technique is to use “spriting.” This gets its name from spriting in video games and the technique involves creating a single, large image which contains the multitude of visual components that are used throughout a page (buttons, icons, and other UI elements) and then using CSS to render a visible portion of a single sprite out of that single resource on the page.  Without spriting, you might have 50 small images required to render a page, each requiring an HTTP GET, vs. a single GET which is reused throughout that page – and reused throughout other pages in your site.

Further on the fact that the landing page might (should) be fast – other pages will be more complicated and slower. For this reason, it’s important to have a sense of what classes of pages you serve and to measure and work on those independently. The p50 of your landing page might be 500ms while your slowest page might be 2500ms. If you look at an aggregated measure of “site p50” – you might be able to guess which are the weak points but if you set up instrumentation by type of page, you can identify and improve weak points much more quickly.

Finally, there might be some classes of clients that impact different pages differently.  Mobile browsers (phones and tablets) might experience latency one way (at p99) – IE/Firefox/Chrome will probably have a different experience, and these might point to simple optimizations to increase overall latency. Client browser type can be tracked to help you focus on weak points there, too.

Where to from here?  There are a lot of frameworks for measuring this and I won’t go into those (mostly because I’m not that familiar with them, just what we use in house, but google’s analytics packages are very good from what I understand). There are also some good tools (like ySlow) that can immediately point to low-hanging fruit to improve your site speed (do you minimize asset requests? is compression turned on for pages sent back? does the server support pipelining?). When you start looking at this space, you can usually find a ton of low-hanging fruit to greatly improve latency.  You can probably make a 500-1000ms latency improvement with minimal effort. After that is when you start getting to the interesting and hard work. So the first month of working on latency should probably be identifying a toolset and making those initial improvements, then you can expand the metrics you look at and get to the more subtle ways to make your site faster.

Comments (1)

HTC 2011 recap

Somehow this year I made it onto a team for Hood to Coast. I’ve wanted to do this race (or some similar race) for a couple years but always had conflicts. This year, Dana, from ChuckIt (who turned out to be much cooler than I’d know or expected) posted to Facebook with an opening on the team she was participating with and I hopped on it.  I’m going to try not to turn this into a White River sized post and get to some of the highlights and lowlights.

  • First, and no offense to any of the participants or finishers, I really felt like this barely qualified as a race. Sure, there is a chip, the course is probably measured, and people can be disqualified, but on the whole, I think this is a race about as much Bay to Breakers is and treating it another way is kinda silly.  This isn’t necessarily a bad thing, but there are some terrific athletes who’ll find themselves “beaten” (in terms of team clock time and finish place) by total couch potatoes.
  • It *is* a lot of fun and an unique experience. A lot of teams have very creative themes in their vans, team names, costumes, and so on.
  • I’ve heard people say that even though it’s only about 18 miles, the need to run, sit in a van, sleep, and run again make it as hard as a marathon. They’re wrong.  Anyone who says this hasn’t really tried to run a solid marathon.  It’s not easy, but it’s just not even close to being as hard as a marathon.
  • The logistics are interesting and it’s fun to start to understand the legs.  The race is run with 2 vans of 6 people each over 36 legs of varying difficulty on the 200 mile course. The course itself is almost all pavement (which is decent, though trails would sure be nice) with a couple sections of gravel road (which is *awful* – the vans kick up an insane amount of dust) – usually running alongside lightly used county roads from Mt. Hood to the Oregon coast. There are a series of wave starts with ~20 teams starting every 15 minute wave from about 4AM to about 6PM on Friday with the slowest projected teams starting first and the elite teams at the end. Van 1 had each of their 6 runners run a leg of the course, then hands off to van 2 while their runners run legs on the course and van 1 speeds 6 legs ahead to the next van transition. After 5 van transitions and 3 legs each to all the runners, everyone winds up in Seaside, Oregon for the finish.
  • I had leg 11 and in hindsight, I think that’s a pretty good leg. Legs 1 and 7 (the first legs in each van) have a tough time. Leg 1 is terrible because it’s given to some poor sacrificial sucker whose legs will get shredded. It’s nearly impossible to find an elevation map of the entire HTC and I think it might mainly be two reasons: A) it shows that it’s not a hilly course (despite what most of the people doing it seem to act like) and B) it shows that leg 1 is an absurd downhill that looks designed to destroy the legs of whoever runs it.  So it’s out.  Leg 7 (first leg of van 2) has the downside of needing to run immediately after sleep and negotiating the exchange from the other van (both of which are also downsides of leg 1).  Legs 6 and 12 (the last legs of the vans) also have the “coordinate with other van” strike against them and you need to go directly from running to getting what sleep you can on the overnight transition. So I think the middle legs in the van seem preferable – not taking into account the difficulty of any of the legs.
  • The race organizers let way too many people into this thing.  We spent a highly significant amount of time sitting in traffic as vans tried to get into an exchange (especially the last van excahnge between legs 30-31). We were one of the later vans to get into these exchanges and as we were entering, we saw a lot of vans sending runners on foot to get to the exchange so they wouldn’t miss the handoff. This is a mistake that I think should be fixed in future years (my friend Tien said he’s never doing HTC again because of this and I wouldn’t blame him).
  • As for my personal race experience: it felt good – great, really, to get out and run kind of hard again.  It also felt great to feel like I was really kicking ass because there were so many middle of the road or weekend runners on the course.  I encouraged every person I passed and think they should be proud of their accomplishments, but with this kind of structure of race I could see it being a little discouraging when a modestly fit runner gets tossed on the course with a ton of people who aren’t runners at all or have been “training” for a couple weeks for the event. Anyway, due to my screwed up knee I advised that my time projections for the course be set for a 44:00 10k runner since I didn’t think I should run faster than that. I beat these times on all legs, coming in with an adjusted performance of a 42:00 10k runner. My knee did hurt, but it didn’t stop me – the worst leg was the 3rd, where my knee went from “noticeable” to “hurting” within the first half mile, but it was manageable the whole time.  Over my legs, I passed a total of 39 other runners (“roadkill” in the parlance of many of the participants) and wasn’t passed by anyone, which was all nice but didn’t feel like an incredible achievement.
  • The team support is really nice.  I was cynical about this and want to say it doesn’t matter but regardless of whether these people are your friends or even your team, it’s really great to see a handful of people cheering you along on the course.  The positivity is borderline overwhelming and at times it’s hard not to think “I bet this is what it would be like to be in TnT…” but if you can suspend that for just about 24 hours, you’ll be happier.
  • Finally, and in the spirit of the event over the race, here are some things I’d like to remember for future such races:
    • Costumes – would be fun. Wigs? Makeup? Team theme?
    • Noisemakers for the van – for runners on the road. Silly string?
    • Possibly bring a hammock to tie up at exchanges?
    • A folding chair is great
    • Look for a race that isn’t all pavement
    • Try to ensure that the team has one of the giant 15 person vans – consider not doing it in a minivan (though the minivan was probably the main stakeholder in the marketshare of car types at HTC)
    • Every teammate should bring a single bottle with a giant beverage dispenser / nuun / concentrated Gatorade (not a thousand disposable plastic bottles).
    • The team should either be competitive and stacked with athletes (or otherwise people who actually know their fitness levels) or strictly focused on having fun and not worry about goals – probably the latter.
    • Ideally join a team that gets seeded  in a place such that they will reach the finish well before the course cutoff (we didn’t get to the finish till ~7PM and the course closed at 9PM and it felt like things were already winding down).

I think that’s about it. This was fun and challenging in different ways from any other race I’ve done, but a lot of the mystique was definitely worn off and I found myself much more interested in the Ragnar series than I thought I’d be, but I do hope to go back some day and try a different leg.



I feel a little like I’ve forgotten how to blog. I’m definitely out of practice with WTPB being basically down for probably a year and the glory days of MCWOT running on bloxsom ancient history.

But despite never caring about having a popular blog that gains loads of readers (which is still the case), I need to realize that if I think to myself “how could I be bothered to read / proof this whole thing?” then a post is probably not worth posting at all.

That said, I think I’ll work on another White River post that cuts to the chase. Or maybe not – but I’m going to try not to do that again.

Thanks for your patience.

Comments (1)

My first 50

Yesterday was the 2011 White River 50 mile endurance run which I’m extremely pleased to say I completed. I could go on and on about this race (and probably will) but I’ll try to be kind of brief in this recap.

[edit: I failed]

Reaching the starting line

Getting to the race has been a long, long process. I was registered for the 2010 race and went to the course preview runs (2 and 3 weeks before the race, there are group runs of the two halves of the course) but then on the one off weekend before the race, I got bit by a raccoon in my kitchen in a story I’ve told a thousand times and it put me on the DNS list. This year I made it to the preview runs again and just kept saying “stay healthy – make it to the race…”  I managed to do this, but yesterday morning on the way to the race I got a flat tire on Crystal Mountain Boulevard!  I scrambled with Joe’s help to change the tire, he flagged another car down (a woman who probably thought she was on the way to be late for the start) and we got to Ranger Creek at about 6:32.  This was just in time to hear Scott McCoubrey (the race director) calling out “40 seconds!”

Getting to the race and registration

I’m getting a little ahead of myself though…this year I drove to Crystal Joe Creighton (2 time finisher and still 8-hour hopeful) and Greg Crowther, Seattle Running Club president and 6th fastest WR course finisher. We met at Fleet Feet store where I learned Phil Kochik and Brian Morrison planned to run WR just to get the lottery time to enter Western States.  It’s really amazing and inspiring to be in the presence of that kind of talent and from such genuinely nice people, but this probably the kind of thing you understand (if you’re a runner) or isn’t that interesting (for most people) and I probably can’t make it make sense.

So, we drove down to Crystal Mountain, arriving a little after 4PM and mingled for a little bit before the dinner.  We got our bibs and goodie bags, which are refreshingly sparse for an event like this. For the past two years at White River, they’ve allowed runners to pick our bib numbers.  I ran in 144, in  honor of my grandfather’s record for points scored in a season when he was an athlete at the University of Iowa. We settled in to our room for a bit, got to the spaghetti dinner, I met Gary Robbins, and we listened to the opening music to the White River video DVD about 3,000 times as Scott told us about the course in the Snorting Elk Cellar.

Joe and I went back to our room for a long night of me crushing his head against turnbuckles in WWE SmackDown vs. RAW on the Xbox in our room and a little bit of Cabella’s Big Game Hunter (aside: is a hunting video game actually any different than a first-person shooter where you just go around and kill defenseless enemies?) and turned in for the night.  We woke up bright and early on Saturday at 5AM for the 6:30 start. Joe had taken a shower the night before and I learned that morning that our shower offered temperatures ranging from “frigid” to “how does it stay a liquid form of matter when it’s this cold?” but still managed to get ready. We watched a little Fast Times at Ridgemont High and soon it was time to hit the road.  We only got about 4 miles down the road from Crystal, though, when I noticed the car running rough. I pulled over and sure enough, my rear right tire had two holes and was flat.  I panicked a little – we had been perfectly on track to get to the race, but now we were going to have to change a tire and I learned Joe had no experience with this.  So I pulled out the spare, jack, etc. and got the tire changed in probably 10 minutes. During this time Joe flagged down another car and got a woman to presumably carry the message to the start that we would be late, but were on the way. In about 10-15 minutes, I had the tires swapped and we were on our way.  As we pulled in to Buck Creek, we saw Trish Steidl walking Forest away from the start and figured we had missed the countdown, but then saw the mass of people on the road and knew we were going to make it. I hastily parked, heard RD Scott McCoubrey tossed a bag in the Buck Creek drop bag area, Joe got up near the front, and I went back to give Katie, who’d made it down for the race, a hug and moments later I was the last person to cross the starting line of the start of the 2011 White River race.

To Ranger Creek

The White River course is simply some of the most beautiful terrain I’ve ever run.  You can see a map I made of the course here, but it’s essentially 1/2 mile on a road alongside the Ranger Creek airstrip followed by 37 miles of dual and single track trails, then a 6 mile downhill on the gravel Sun Top Road, followed by more single track trail back to the finish.  The first stretch of the course winds along the mostly flat Dalles trail. Through this section I was just trying to stay relaxed and stay slow.  The course splits I had projected (and the split projections from the website) advise reaching to the first aid station in about 43 minutes, but I got there in 37 and still felt like I’d been crawling.  I kept trying to remind myself of this as we made the turn to the Palisades trail and started the first climb.  I love this section of the White River course. The switchbacks in those initial climbs, the waterfalls along the route, and the section you reach shortly after with stairs followed by sharp switchbacks is incredibly fun and beautiful.  Whenever we reach the stairs, I always look up and am reminded of Donkey Kong, with the ladders, repeated cuts back and forth in the trail, and seeing the people who are ahead on the course weaving along the path.

The viewpoints from the points that jut out from the Palisades trail are all breathtaking.  I made the mistake of stopping to admire one yesterday and was pretty intimidated by what I’d signed up for.  I could see the Ranger Creek airstrip miles and thousands of feet below. Further in the distance, I recognized the mountain I’d climb in the second half of the trail and identified Sun Top a couple miles further north – the peak in the second half of the trail.  I was only about 6-8 miles into this and I extended my appreciation of how long and hard this day would be.

Except for the initial climb through Palisades, most of the rest of this is pretty straightforward, beautiful trails – almost all perfectly runnable and so that’s what I did.  Having started at the very back of the pack and knowing my goals were pretty modest, I just tried to slowly reel people in and take my time at the aid stations, which I felt successful at throughout the day.

Ranger Creek to Corral Pass

Two weeks ago stretches of this part of the course were really impassable. We got a little way up Noble Nob trail, but in the snow it was impossible to identify the trail at all – the only thing that was possible was to slide all over the place in the snow, so we cut the training run short of the trip all the way to Corral Pass and turned back. Before race day, Scott and Eric had gone out with shovels and cleared a lot of the trail and I found the conditions totally reasonable.  I really love running with some element of danger, though, and I didn’t mind slipping in the snow at all. On the way through some of the snow (we were on the “out” in the one “out and back” section of the course), I asked another runner for odds on how long until we would see Uli, and sure enough, he came leading the field a few minutes later. This is probably a double-edged section of the White River course.  Just about every runner gets to see just about every other runner on the course, but the narrow single track can make some passes tricky. Still, it’s within the first 20 miles and most of us are fresh enough to avoid most real danger.

So, Uli passed, Tim Olson wasn’t far behind, and I made my way to Corral Pass, congratulating returning runners and telling people I passed “good work” on our way. At Corral Pass, I saw Katie again, who was politely staying behind the “crew” line and got some information about the course splits (which I’d intended to bring with me but forgot in the scramble to make it to the start).  At this point I was about 10 minutes ahead of pace for the 10 hour finish, so I took my time here, said hi to Greg and thanked him for volunteering, filled my bottle and Hydrapak bladder and tried to eat as much as I could before I was back on my way.

Corral Pass to Buck Creek

Exiting Corral Pass I ran past tons, and tons of runners on the out and back and eventually got back to the clearing where I wasn’t seeing regular or early start runners. I knew I was way ahead of where I needed to be and had a *lot* of race to go, so I started to walk for a bit and got my ipod out of my backpack, which I’d run with for the next ~7 hours of the race. This whole time I was still feeling good and relaxed and knew that the really hard part would be the climb up to Sun Top, so I was just taking things easy. I retraced the path through the snow, definitely passing some people there who were probably wondering “what the hell is that idiot doing?” as I flew past in my road shoes and got back to the Ranger Creek boyscout hut. There, I met Josh Barringer who was using WR as a warm up to his first 100 miler at Cascade Crest in less than a month. Josh was battling some dehydration and working to get the wheels back on, which he did over the course of the next 30 miles.

The descent from Ranger Creek is where I started to notice a problem. I’ve been wearing a patella strap since about March when I developed a knee problem that stopped me from starting Chuckanut and put me on the DL for a month.  I wore it yesterday during White River as a preventative measure but on that pounding downhill (you lose about 3000′ over 7 miles) was taking its toll.  I wasn’t positive how bad this was, but was definitely getting worried.

One uplifting story from this descent – as I passed a female runner, I was told “you’re the first guy to pass me who hasn’t had terrible BO!”  I thanked her for the kind words and then realized I was reeling in Minimalist Ted who had probably passed her a few seconds earlier. He was probably still within earshot.

I got in to Buck Creek at about 5:04, so I was still feeling pretty good about my goal.  I was still ahead of pace and feeling good (though worried about my knee) and – most significantly – had not yet experienced the debilitating cramps I’ve had every other time in my life that I’ve run that long and far (every other ultra or marathon, I’ve gotten terrible cramps between 60-80% of the way through the race). Katie was here again and incredibly eager to help and incredibly helpful.  I was difficult because despite the race going well, I definitely was tired and needed time to figure out what I needed. So, I ate, chatted, drank (a lot), filled my bottle and bladder again, ate some more and after what was somehow nearly 15 minutes, got back on my way.

Buck Creek to Fawn Ridge

I thought the flat trail section exiting Buck Creek should be a good place to run, but I’d drunken too much Gatorade to execute on this.  Plus, maybe since I’d stopped so long at Buck Creek, my knee was really starting to hurt.  After winding through the rolling trails to the Sun Top trailhead, I saw Katie again before that turn off and was so happy to see her, but was starting to feel demoralized about my knee.  I told her (somewhat ridiculously, in hindsight) that I thought I might run the course limit – my knee was in a bad way, but I was determined to finish.  She told me I was a stud and wished me well as I went to the second climb.

This is where the hard part came in.  In past ultras, I’ve gotten to a point of exhaustion where my approach is to try to run as much as possible, but just get through the race. Often this has meant that if I can get 5 steps in running on a flat or downhill section, I’ll do it, but a lot of the uphills I just have to power walk.  I realized yesterday that with my knee, that would not fly, because running on downhills was just impossible.  I could try, but the pain was definitely getting worse with every mile and a lot of the downhills were slower than the climbs.  This put me in an interesting place, though, where I actually still had strength to run and any time I passed anyone, it was on an uphill.  A small group of us made our way through the exposed switchbacks on this section of the course.  When I caught a group, I felt content to stick with them for a while because I expected to lose time on the Sun Top Road and wanted to keep something in the tank for the Skookum trail (the final leg of the race).  Eventually I made it to the Fawn Ridge aid station where the excellent volunteers have a luau themed party. This was really fun and uplifting (they had decorated the last ~1/10 mile before you pop out on the road with inflatable pool animals) and I was glad to get there.  I was struggling to get here, though, and still demoralized about my knee, but surprised that despite making, I though, terrible, terrible time to get there, that I was still on or close to 10 hour pace.  I took a long time at this aid station again, though, and talked briefly with Brian, who had decided to drop at that point. I was a little freaked out, too, because one of the volunteers came up to me and said “you’re Patrick, in 144?” – “Yes” – “We had news that you’d dropped – you’re still in the race?” – “Why yes I am!”  I did not want to move up from last year’s DNS to a DNF…

Fawn Ridge to Sun Top – the death of a dream

This is definitely where things started to take a turn for the worse.  There are a couple false summits between Fawn Ridge and Sun Top and my knee was killing me with every one of them.  I was losing a ton of time on each downhill where I would basically walk and, for the first time in the race, get passed by a bunch of other runners.  Once or twice I actually had to stop and step off the trail.  Once I stopped to pee and realized that I was very dehydrated. So, I forged ahead as best I was able, but probably lost 15-20 minutes in this leg from my planned pace.  Despite this, I was happy with the fact that I did keep going and was able to replan my strategy around trying to stay strong on the climbs and lose as little on the descents as possible.

One more note: more than most sections of the course, this part really rolls a lot.  I could manage decently on fairly flat sections, but this part is usually gradual climbs or descents which were either challenging (but semi-doable) or too painful to attempt to run.  Eventually, though, I made it to the Sun Top road crossing, and lumbered up the 1/2 mile to the top.  As happy as I was to see Katie at every other point on the course, seeing Glenn Tachiyama was possibly the happiest sight on the course that far because I knew “Glenn is here at the top of Sun Top to take our pictures and I have finished climbing the second mountain in White River.” It was awesome.

I stayed a while at the top of Sun Top getting sprayed, eating, drinking, and putting off what I knew was going to be a torturous descent to the last aid station at Skookum Flats.  I also basically knew there was no way I would make 10 hours, but knew I would finish and also knew I would finish in the qualifying time to enter the lottery for Western States. I doubt I’ll ever run a 100 mile race and I’d still like to run a regular marathon that would qualify me for Boston some day, but in terms of running accomplishments, I’m proud of this, even with my eventual 10+ hour finish.

Sun Top to the finish

The descent from Sun Top was brutal. I started running and made it about a 10th of a mile before I had to walk.  Then I walked backwards. Then I tried to walk forwards and then walked backwards some more. I tried a lot of things with varied success (shorter strides, only running on the shallower parts of the descent) but I basically walked for four miles.  All the while, I’m getting passed by people I’d seen on the course who I didn’t want to be passed by and who I’d last seen a long, long time ago.  But there I was, so I just resigned to the realization “OK, I may as well rehydrate now, relax, and just do the best I can and plan on running the flat section in Skookum…”  I got through the first 5 miles of the descent (the real “hill” portion of the descent) in about a 13 minute mile pace.  On the course preview run I did this descent in something under 6:30 miles, and I didn’t expect that yesterday but it was still disappointing to know I was so close to the finish and I couldn’t run – I wasn’t missing my goals because I was giving up, but I just had no choice.

Eventually I got to the flat section though, and now I was ready to tear shit up.  I ran well to the Skookum aid station. I stopped, met Josh again and a couple others I’d met on the preview runs, looked around for Katie but realized she was probably at the finish because Joe may have finished then or earlier, and I was on my way.  Once I got in to Skookum I was totally invigorated.  I couldn’t believe I was running this well 45 miles into a race – still no real cramping and basically managing well.  This high didn’t last all the way in Skookum and I walked in a couple sections, but I did far less walking than many people who I reeled in on the way through the trails.

Having done the course preview runs twice now, I realized at one set of turns that I was finally getting close to the end of the trail where you turn on to the road for the last ~1/4 mile to the finish line and once I got there, Glenn was trumped again for “best sight on the course” when I saw Katie in her green top standing up on the road back to Buck Creek.  I knew where the guys in front of and behind me were at this point, so I took a short breather to tell her how happy I was to see her, ask how Joe and Uli finished, and enjoy the moment.  Eventually the next guy behind me popped out on the road and I said “ok, I have to run now – he can’t catch me” and I must have been tearing up the road to the finish at at least a 9 minute mile pace. It felt good to run, good to be so close to the finish, and incredible to not just feel my whole body breaking down after such an incredible event.

I crossed the finish line in 10:41 and change and someone (Crowther?)  gave me a bottle and Scott trucker hat and the race was over.


I socialized for a bit, ate, Katie gave me a daisy, I met Neil and his wife who were there hanging out with the McCoubreys, congratulated Uli (actually, I interrupted him as he said he was “teaching Forest to dumpster dive”), ate potato chips, iced (thanks again, Katie!) talked with Josh and Paul about their races, cheered as more finishers came through, pet Jack, and filled myself to the point of explosion on chicken, salad, and really-not-very-much-food-but-all-I-could-handle. Katie offered to leave early and bring Io home from the dog boarding. Later, Joe, Greg and I started the ride back to Seattle on my spare tire. We stopped in Enumclaw where I checked the bolts on the spare at a McDonalds where I treated to Rolo Flurries (which, by the way, McDonalds does not offer in 32oz size) and were back on the road.  I got home about 9:30, hobbled up the stairs and Io, Jupiter, and I told each other how much we missed each other before I ate a few more snacks and hit the sack after the most physically demanding day of my life.

Comments (5)

White River, take two

In less than a month I’ll be taking my second stab at the White River 50 mile trail race. I don’t know if I’m training right, but I think I’m training OK for it. I signed up for the race in 2010, but wasn’t able to start because a week before the race, two raccoons got in my kitchen and I got bit fending them off, starting me on the rabies treatment and leaving me with a couple gashes in my calf (I posted that story on facebook while my blog was on the fritz but anybody reading this has probably heard that story before). The race organizers have graciously allowed me to transfer last year’s registration to this year and it’s 4 weeks away.

I started this year with a bunch of injuries. After pacing the Seattle marathon in November, I’ve had a series of problems from pain in my right foot, a badly sprained right ankle, some problem with my left knee, and other pain that has made me curtail or stop running completely. Despite all of this, I have managed to get a couple of the key types of workouts in that I wanted:

  • Long runs on trails – I’ve gotten more 4 hour days in this time than last year – I wish I had more and wish I’d been doing them since February, but I’ve done what I can.
  • More hills – two trips out to Mt. Si for double summits have been really helpful. I haven’t pushed either of those hard at all – just trying to get through the work and avoid injury, which I did both times. I mean, I still easily lap a lot of people out just doing the hike, my calves are on fire for the first 1-2 miles of the first climb, and my feet are both pretty numb by the end of the first ascent, but I’m not hammering it.
  • Decent volume – I’d like to be getting in 50-70 miles/week for a long time, but I can settle for the fact that I’ve gotten up to that range and still feel pretty strong.

A week ago was the Seattle Rock n Roll marathon where I helped organize all of the pacers and was myself a 1:35 pacer in the half. This felt surprisingly good and not challenging at all, which was nice. A 1:35 half on concrete is no way to prepare for a long trail ultra with two 4,000′ climbs, but it certainly didn’t hurt. It’s going to be night and day between those two races, though, and with White River standing dramatically above RnR in every dimension except “cheerleaders on course.” White River will be much longer, with a field 100 times smaller, with everyone signed up for a very, very hard race through a super beautiful course in the mountains.

The only things remaining are the two course preview runs on the next two weekends. I am totally excited for these and if you live in Seattle and like trails and are feeling up for ~4-5 hours of running, you should try to get out there, even if there’s no way you’re thinking of White River. I was able to make it to these last year and you couldn’t really ask for a nicer weekend day. ~25 miles of beautiful trail, led by a couple people who know the course well. It’s when you put it together into *one* day that it’s going to get tough (I hope) but I can’t wait.


Rituals – Jupiter

Jupiter The Largest Planet in the Solar System, or just “Jupiter,” my cat, has a few ritual behaviors.

His favorite is Feigning Indifference About the Lap Offered to Him. In this, he acts nonplussed about wanting to sit on my lap. No cat can resist my lap – this has been tested time and again and proven as a scientific fact, yet Jupiter, in his assertion of self-determination repeatedly shows that he’s no floozy ready to just give up the gift of his presence to the first lap he happens across and resists the temptation. I scratch and scratch at my leg until he eventually concedes that this is what he, too, wants.

He insists on having his head and rear end scratched. He also demands repeated ear massages, which I administer with a gentle rubbing of the knuckles between my index and middle fingers. He also insists that the lap be kept perfectly still. The slightest perturbance and and he’s off to wander the room.

He is also immeasurably sociable. Though he likes to torment Io and scamper across the room, what he fundamentally craves is human interaction. He shows this by waiting on the front steps for someone to walk by and, provided they are not distracted by a dog in tow, he will walk out and greet all passers by with a friendly “mgraou!” until they say hello.

Approximately every day and sometimes twice a day, he needs a puff of asthma medicine through an AeroKat inhaler because he suffers from asthma. This doesn’t stop him from climbing trees or picking fights with animals 5 times his size if they front on his turf. But sometimes in the middle of the night it wakes him and he wheezes for 10-20 painful, sad seconds. The symptoms fluctuate through the seasons, usually showing the greatest discomfort in spring and lasting through fall.

Another favorite ritual is climbing on whatever surface is at the height of my head. This might be the bed early in the morning or the middle of the night, the back of whatever sofa or chair I happen to be seated on. Once there, he extends his claws and he gently sinks them through my scalp letting me know “Listen, I know you’re kind of busy, but it’s time for you to pet me.”

I am not a cat person, but seven years ago Jupiter did a lot to change that and he has carved an indelible and considerable portion out for just him. It will always be there.


Rituals – Io

Io, my dog, has a few rituals.

Every day at 5PM, he decides it’s dinner time. Dinner time is never actually at 5PM, but it’s pretty close so he decides it’s time to start asking for dinner.  He does this by greeting me with a wet nose, nudging my arm, reminding me of the passage of time.

“It’s not time” is my ritual response. We repeat this for somewhere between 15 minutes to an hour until eventually it’s time and he gets his dinner.  Then, it’s time for a walk. No questions asked.

The other ritual he engages in is The Waiting Outside The Back Door, wherein he exhibits incredible patience and sits outside the house, wishing me to come out and greet him.

“I love you,” I tell him “but it’s time to come in.  Will you go in?” He sits next to me, leaning on my side as I pet him until he eventually accepts my plea and comes inside for the night.


Hello world, again

About 4 years ago, I blogged using bloxsom. It was a good, simple blogging system, but became somewhat antiquated when everybody wanted all these newfangled blogging features in the perpetual quest to Be Somebody by writing things that someone other than their moms would read. And I migrated to WordPress and it was good.

Then, I tried to upgrade wordpress. And it was broken.  And my blog has languished and not been updated and generated numerous, numerous spam posts to Hello World that I have ignored daily.

So, after finally realizing I’m not going to bother figuring out how to restore my WordPress backup from zip, I’m just going to cut those ties to the long dead past and start over.

Comments (1)

« Previous Page« Previous entries « Previous Page · Next Page » Next entries »Next Page »