This blog is supposed to be about my running progress, and it generally is. But this post is about something that fascinates me even more than running and has slightly more, you know, social utility: Quality software and the people who create it. I'll get back to the running after this quick aside.
Growing up, my mother used this cliché quite a bit: "a poor worker blames his tools." Maybe. In the programming domain, I think Paul Graham has it right when he says: good workers don't use bad tools. Here is the exact passage (Graham uses 'programmer' and 'hacker' interchangeably):
"What do hackers want? Like all craftsmen, hackers like good tools. In fact, that's an understatement. Good hackers find it unbearable to use bad tools. They'll simply refuse to work on projects with the wrong infrastructure... The programmers you'll be able to hire to work on a Java project won't be as smart as the ones you could get to work on a project written in Python. And the quality of your hackers probably matters more than the language you choose. Though, frankly, the fact that good hackers prefer Python to Java should tell you something about the relative merits of those languages. Business types prefer the most popular languages because they view languages as standards."
But languages aren't standards. Anyone who chooses Java over Python because Java is more 'standard' or because it has a bigger 'developer community' should not be in a position to make such decisions. The same goes for C#. Python is a better tool, period. There is no legitimate argument in favor of Java or C# over Python.
Graham makes another excellent point about a curious sort of programmer morality: "The best programmers can work wherever they want. They don't have to work for a company they have qualms about... An organization that wins by exercising power starts to lose the ability to win by doing better work. And it's not fun for a smart person to work in a place where the best ideas aren't the ones that win."
I don't think I'm a great programmer, partly because I don't refuse to work on projects with bad tools and infrastructure. Yet.
I think I'm an above-average programmer. I hope I'm an above-average programmer. Someday I hope to be a great programmer. The good news is that I'm smart enough to recognize bad ideas.
programmers
apple
Wednesday, April 21, 2010
Tuesday, April 6, 2010
pre-season
The fun begins in 28 days. I’ve been careless with my training log so far because base mileage and striders just aren’t worth the effort of documentation. Everything changes on May 3. No mistakes, no excuses, no letting up.
Sheehan says: "This way of life is addictive... So the victim has little choice except to continue and even escalate the activity."
Sheehan says: "This way of life is addictive... So the victim has little choice except to continue and even escalate the activity."
Friday, March 12, 2010
more base
3/11 - 30min base + striders
3/10 - 30min base + crunches
3/9 - 30min base + striders
Current weight: 152 lbs. Not good. Which is weird because I actually feel relatively fit.
3/10 - 30min base + crunches
3/9 - 30min base + striders
Current weight: 152 lbs. Not good. Which is weird because I actually feel relatively fit.
Friday, March 5, 2010
Monday, March 1, 2010
the new plan
December, January, February -- all disappointing training. The two big reasons were: 1) lots of extra hours at work, and 2) an ongoing lower back problem. Hopefully that's over with.
The new training plan is a 24 week schedule starting 5/3, ending 10/17 at the Baystate Marathon, with three "fitness check" races along the way:
1) 5K on 7/25
2) 10K on 8/22
3) half-marathon on 9/19
All of which are TBD. The next nine weeks will be base distance and striders with the occasional long run.
The new training plan is a 24 week schedule starting 5/3, ending 10/17 at the Baystate Marathon, with three "fitness check" races along the way:
1) 5K on 7/25
2) 10K on 8/22
3) half-marathon on 9/19
All of which are TBD. The next nine weeks will be base distance and striders with the occasional long run.
Monday, November 9, 2009
the limiting factor
Disclaimer: Parts of this post are well-supported by empirical evidence and other parts I'd call "reasonable conclusions". But I make no claims regarding the science behind any of it.
We got started shortly after Mayor Bloomberg's short speech in which he referred to the race as: The World's Greatest Sporting Event. I immediately thought of how the BAA has labeled Boston -- which is already close to filling up for 2010, by the way -- as the "most prestigious annual marathon" and the "premier distance race in the world". I suppose all three titles could be correct. It's a fun discussion anyway.
Mile one was a crawl (7:30) but I was okay with it for several reasons: First, well, it would've been terribly dumb to panic after mile one of a marathon. Second, it's the hardest part of the course -- up and over the Verrazano-Narrows. Third, as with any big field, we were packed tight and there was jostling and bottlenecks. Finally, I estimated that it had taken me 20-30 seconds to reach the starting line and that my split was closer to 7:00 flat (more on that later).
Assuming I did a 7:00, therefore, I figured I'd run the next six at a 6:25 pace to make up the time, and then I could settle into my 6:30 overall goal pace. This worked beautifully, and I felt great. There were several rather windy spots, and more concrete than I was comfortable with, but when are marathons ever ideal? Onward.
The next eight miles (8 - 15) were what has become my typical mid-marathon frustration: I feel strong and relaxed and the 6:30 pace feels sort of silly. All I want to do is pick up the pace and blow through the next five miles -- but I can't. Because it's a marathon. And I have to be "strategic" and "mentally tough" which simply means: Running considerably slower than how I like to run.
Mile 16: The Queensboro Bridge -- a decent climb, very windy, and lots of concrete, so I consciously dialed it down a little. I was also toying with the idea of stopping for a pee break but eventually decided against it. The course then turns right and heads downhill for a bit so I picked it up for 17 & 18 (roughly 6:20s) and then settled back to 6:30s for 19 & 20. As I ran past the clock at the end of mile 20, it read 2:10:30, and I thought: Perfect! If it took me 20-30 seconds to reach the starting line, then I was at most ten seconds below my target time of 2:10:00 for the first twenty.
In other words, after 20 miles I was well-positioned for a 2:50 finish. And the rest of this post is my explanation as to why I averaged 7:25 per mile over the final 6.2...
When muscles contract they do not use all of their fibers to actually do the work. In fact, many training guides and fitness studies claim that during sustained running, the percentage of activated motor units out of the total available pool is generally under 30%. Furthermore, the "active" pool continuously changes during extended activity. In other words, the motor units are sort of like hockey players coming in and out of the game as they cycle between tired and rested states.
At the same time, not all muscle fibers are created equal. One way of categorizing them is as "slow twitch" (good at sustained aerobic activity) and "fast twitch" (good at short, anaerobic bursts of power). It's actually more complicated than that but the slow and fast twitch categories are probably sufficient for this discussion.
The situation becomes more interesting as some motor units go beyond being just "tired"; during activities like the marathon, many of the muscle fibers suffer damage -- the cell membranes actually rupture. And these crippled motor units are no longer part of the total available pool. In the hockey metaphor, those players have been knocked out of the game. They aren't on the ice, and they aren't even resting on the bench. They are injured and the coach can't use them for a line change.
Now, running a 6:30 mile obviously places more of a demand on the fast twitch fibers than running a 7:25 mile does, although both require a blend of both types. Similarly, a 5:30 mile puts even more of a demand on fast twitch fibers than a 6:30 mile does. My theory is that during the race I basically discovered the weakest part of my lower body in terms of the fast twitch fiber pool: My calf muscles. Not my quads, glutes, hamstrings, tibialis anterior (near the shin), or hip flexors -- which are all important -- but my calves. In other words, I believe that through cellular damage, I reduced the total available pool of fast twitch motor units to the point where I no longer had the explosive power needed to run faster than a 7:25 mile.
This isn't a cramp in the traditional sense although that is what I originally called it. When I did try to accelerate into the 6:30 - 7:00 range, all of the muscles in my legs responded -- except for my calves. What they did was spasm uncontrollably and feel as if they were going to seize up permanently. As soon as I slowed down, the sensation rapidly went away. And it's not like my calves weren't able to do any work at all; I was able to finish the race at a 7:30 pace and even walk for 2+ miles afterwards (which requires at least a small contribution from the calf muscles). So I still had a decent pool of slow twitch motor units available and a minimal amount of fast twitch as well. But whenever I tried to accelerate towards 6:30 in the last six miles, I was effectively asking my calves to perform at an intensity that the remaining fast twitch motor unit pool could not support.
The sensation also isn't fatigue in the traditional sense. At least not how I think of it. I became very familiar with old-fashioned fatigue in the 2001 Toronto Marathon. In the last four miles of that race I was completely spent. I wasn't in pain, I didn't have cramps, and my leg muscles weren't refusing to work past any particular intensity. I was just thoroughly exhausted and wanted nothing more than to stop running. Every step was a chore. At no point during NYC did I feel an overwhelming urge to stop. In fact, I really really wanted to run faster and continually tried to do so.
How should I fix this? I have two basic ideas, both of which (of course) seem absurdly obvious in hindsight. First, lose as much weight as possible without adversely affecting my overall fitness. Let's say, for example, that I went into NYC weighing 143 lbs instead of my current 148. Carrying even five extra pounds over 26 miles surely represents a considerable amount of non-essential motor unit activation, a portion of which leads to cell rupture and therefore premature removal from the game. Without that weight my calves would have been able to sustain a 6:30 pace for a longer duration, all other things being equal. I can easily increase my training volume, but unfortunately losing 5 - 10 lbs probably entails eliminating some of the junk that I like to eat. That's sort of a bummer because, as a distance runner, I always viewed eating anything in sight as an irrevocable boon.
Second, increase the pool of fast-twitch motor units in my calves, and, if possible, reduce the amount of motor output required by my calves at any given speed. This means: Make my calves stronger and make my stride more efficient. My remedy here is to add short hill sprints and one-legged jumping to my training cycle. In the latter, you stand on one foot and continuously jump onto and down from a curb or a low step for 30 seconds, never letting your "up" foot touch the ground.
To summarize: Eat better, run more, and get stronger. Simple, right? Right. Anyway, thanks for reading!
We got started shortly after Mayor Bloomberg's short speech in which he referred to the race as: The World's Greatest Sporting Event. I immediately thought of how the BAA has labeled Boston -- which is already close to filling up for 2010, by the way -- as the "most prestigious annual marathon" and the "premier distance race in the world". I suppose all three titles could be correct. It's a fun discussion anyway.
Mile one was a crawl (7:30) but I was okay with it for several reasons: First, well, it would've been terribly dumb to panic after mile one of a marathon. Second, it's the hardest part of the course -- up and over the Verrazano-Narrows. Third, as with any big field, we were packed tight and there was jostling and bottlenecks. Finally, I estimated that it had taken me 20-30 seconds to reach the starting line and that my split was closer to 7:00 flat (more on that later).
Assuming I did a 7:00, therefore, I figured I'd run the next six at a 6:25 pace to make up the time, and then I could settle into my 6:30 overall goal pace. This worked beautifully, and I felt great. There were several rather windy spots, and more concrete than I was comfortable with, but when are marathons ever ideal? Onward.
The next eight miles (8 - 15) were what has become my typical mid-marathon frustration: I feel strong and relaxed and the 6:30 pace feels sort of silly. All I want to do is pick up the pace and blow through the next five miles -- but I can't. Because it's a marathon. And I have to be "strategic" and "mentally tough" which simply means: Running considerably slower than how I like to run.
Mile 16: The Queensboro Bridge -- a decent climb, very windy, and lots of concrete, so I consciously dialed it down a little. I was also toying with the idea of stopping for a pee break but eventually decided against it. The course then turns right and heads downhill for a bit so I picked it up for 17 & 18 (roughly 6:20s) and then settled back to 6:30s for 19 & 20. As I ran past the clock at the end of mile 20, it read 2:10:30, and I thought: Perfect! If it took me 20-30 seconds to reach the starting line, then I was at most ten seconds below my target time of 2:10:00 for the first twenty.
In other words, after 20 miles I was well-positioned for a 2:50 finish. And the rest of this post is my explanation as to why I averaged 7:25 per mile over the final 6.2...
When muscles contract they do not use all of their fibers to actually do the work. In fact, many training guides and fitness studies claim that during sustained running, the percentage of activated motor units out of the total available pool is generally under 30%. Furthermore, the "active" pool continuously changes during extended activity. In other words, the motor units are sort of like hockey players coming in and out of the game as they cycle between tired and rested states.
At the same time, not all muscle fibers are created equal. One way of categorizing them is as "slow twitch" (good at sustained aerobic activity) and "fast twitch" (good at short, anaerobic bursts of power). It's actually more complicated than that but the slow and fast twitch categories are probably sufficient for this discussion.
The situation becomes more interesting as some motor units go beyond being just "tired"; during activities like the marathon, many of the muscle fibers suffer damage -- the cell membranes actually rupture. And these crippled motor units are no longer part of the total available pool. In the hockey metaphor, those players have been knocked out of the game. They aren't on the ice, and they aren't even resting on the bench. They are injured and the coach can't use them for a line change.
Now, running a 6:30 mile obviously places more of a demand on the fast twitch fibers than running a 7:25 mile does, although both require a blend of both types. Similarly, a 5:30 mile puts even more of a demand on fast twitch fibers than a 6:30 mile does. My theory is that during the race I basically discovered the weakest part of my lower body in terms of the fast twitch fiber pool: My calf muscles. Not my quads, glutes, hamstrings, tibialis anterior (near the shin), or hip flexors -- which are all important -- but my calves. In other words, I believe that through cellular damage, I reduced the total available pool of fast twitch motor units to the point where I no longer had the explosive power needed to run faster than a 7:25 mile.
This isn't a cramp in the traditional sense although that is what I originally called it. When I did try to accelerate into the 6:30 - 7:00 range, all of the muscles in my legs responded -- except for my calves. What they did was spasm uncontrollably and feel as if they were going to seize up permanently. As soon as I slowed down, the sensation rapidly went away. And it's not like my calves weren't able to do any work at all; I was able to finish the race at a 7:30 pace and even walk for 2+ miles afterwards (which requires at least a small contribution from the calf muscles). So I still had a decent pool of slow twitch motor units available and a minimal amount of fast twitch as well. But whenever I tried to accelerate towards 6:30 in the last six miles, I was effectively asking my calves to perform at an intensity that the remaining fast twitch motor unit pool could not support.
The sensation also isn't fatigue in the traditional sense. At least not how I think of it. I became very familiar with old-fashioned fatigue in the 2001 Toronto Marathon. In the last four miles of that race I was completely spent. I wasn't in pain, I didn't have cramps, and my leg muscles weren't refusing to work past any particular intensity. I was just thoroughly exhausted and wanted nothing more than to stop running. Every step was a chore. At no point during NYC did I feel an overwhelming urge to stop. In fact, I really really wanted to run faster and continually tried to do so.
How should I fix this? I have two basic ideas, both of which (of course) seem absurdly obvious in hindsight. First, lose as much weight as possible without adversely affecting my overall fitness. Let's say, for example, that I went into NYC weighing 143 lbs instead of my current 148. Carrying even five extra pounds over 26 miles surely represents a considerable amount of non-essential motor unit activation, a portion of which leads to cell rupture and therefore premature removal from the game. Without that weight my calves would have been able to sustain a 6:30 pace for a longer duration, all other things being equal. I can easily increase my training volume, but unfortunately losing 5 - 10 lbs probably entails eliminating some of the junk that I like to eat. That's sort of a bummer because, as a distance runner, I always viewed eating anything in sight as an irrevocable boon.
Second, increase the pool of fast-twitch motor units in my calves, and, if possible, reduce the amount of motor output required by my calves at any given speed. This means: Make my calves stronger and make my stride more efficient. My remedy here is to add short hill sprints and one-legged jumping to my training cycle. In the latter, you stand on one foot and continuously jump onto and down from a curb or a low step for 30 seconds, never letting your "up" foot touch the ground.
To summarize: Eat better, run more, and get stronger. Simple, right? Right. Anyway, thanks for reading!
Thursday, October 29, 2009
oh good... another marathon
Some pre-race musings...
1) For more than a year now I've been thinking that NYC is a solid PR course, but a sub-2:50 buddy of mine recently informed me: Not so much. Just compare the winning times to other races with world-class fields.
2) Gebrselassie's world-record marathon pace was just under 4:44 per mile. That's sub-71 for 400 meters, 105 times in a row. Oi.
3) Alex Rodriguez is the biggest douche in professional sports. David Ortiz is every bit as much of a fraud, he's just not a complete dick about it. And I'm now a huge Cliff Lee fan.
4) It would be really cool to run with Joan Benoit Samuelson. Even for a little bit.
5) I don't get runners who say that they like hills. Even the best hill runners in the world slow down when they run up an incline. Why would anyone prefer slow running to fast running?
6) I need to lose five pounds. Then I'll be fast. Or maybe not.
7) Current forecast: Mid 50s, cloudy, 40% chance of rain. Perfect!
1) For more than a year now I've been thinking that NYC is a solid PR course, but a sub-2:50 buddy of mine recently informed me: Not so much. Just compare the winning times to other races with world-class fields.
2) Gebrselassie's world-record marathon pace was just under 4:44 per mile. That's sub-71 for 400 meters, 105 times in a row. Oi.
3) Alex Rodriguez is the biggest douche in professional sports. David Ortiz is every bit as much of a fraud, he's just not a complete dick about it. And I'm now a huge Cliff Lee fan.
4) It would be really cool to run with Joan Benoit Samuelson. Even for a little bit.
5) I don't get runners who say that they like hills. Even the best hill runners in the world slow down when they run up an incline. Why would anyone prefer slow running to fast running?
6) I need to lose five pounds. Then I'll be fast. Or maybe not.
7) Current forecast: Mid 50s, cloudy, 40% chance of rain. Perfect!
Wednesday, October 14, 2009
extended "tempo"
Morning workout: 20 min warm-up followed by 8.2 miles in 48:55 (5:58 per mile), all on the track. Very cool but no breeze. The goal here was to improve LTVO2 as outlined in the Pfitzinger article. LT velocity is approximately half-marathon race pace which I think is right around 6:00 per mile at this point.
The 6:00 came from using McMillan's "Equivalent Performance" tool, which calculates a 17:00 5K as equivalent to a 1:18:35 half-marathon. On an encouraging note, the marathon equivalent for the same 5K is 2:45:44, but I certainly have no intention of starting NYC at a 6:20 pace. Which is now only 18 days away.
The 6:00 came from using McMillan's "Equivalent Performance" tool, which calculates a 17:00 5K as equivalent to a 1:18:35 half-marathon. On an encouraging note, the marathon equivalent for the same 5K is 2:45:44, but I certainly have no intention of starting NYC at a 6:20 pace. Which is now only 18 days away.
Friday, October 9, 2009
early morning tempo
Up at 5:30, forced down some coffee, read about the dismal Sox performance (Lowell is useless in the field now), then out to the exquisite Walpole HS track. The workout: 5.6K tempo, 3:30 jog recovery, then another 5.6K tempo.
Perfect running conditions -- gotta love that, but still I had to de-shirt for the second half because I'm such a sweat generator. The tempo splits were 20:22 (5:51.2 per mile) and 20:27 (5:52.6). According to Daniels' VDOT chart my tempo pace should be 5:54 - 5:59 so, yeah, a tad too fast.
I feel like I'm still headed for a sub-2:50 at NYC, but who knows... I've felt this way on several prior occasions and failed. The 10/4 race was supposed to be my final tune-up but now I'm considering the Canton 10K on 10/25. It's a hilly course so if I can do reasonably well there it would be a great confidence builder.
Perfect running conditions -- gotta love that, but still I had to de-shirt for the second half because I'm such a sweat generator. The tempo splits were 20:22 (5:51.2 per mile) and 20:27 (5:52.6). According to Daniels' VDOT chart my tempo pace should be 5:54 - 5:59 so, yeah, a tad too fast.
I feel like I'm still headed for a sub-2:50 at NYC, but who knows... I've felt this way on several prior occasions and failed. The 10/4 race was supposed to be my final tune-up but now I'm considering the Canton 10K on 10/25. It's a hilly course so if I can do reasonably well there it would be a great confidence builder.
Thursday, October 8, 2009
10/4 & 10/7
10/4 -- Five mile race in 28:50, 3rd overall, 1st in AG. I had no expectations for this because the previous eight days constituted my most demanding stretch of training all year. The course is flat but it got rather warm and humid right before the start. Furthermore, all of the standing around at the starting line basically ruined any warm-up benefits. As a result, I went out comfortably hard and then shut it down for the last three miles. "Shut it down" means going from a 5:33 pace to a 5:55 pace. This was entirely by design; if I tapered, if the weather had cooperated, and if the race started on time, I think a sub-28 would have been possible. But none of that stuff happened.
10/7 -- 24 min easy to the WHS track, 12 laps in lane 5 alternating easy and 200m accelerations, 20 min easy to home. Still have a little cumulative tiredness in the legs but the track work felt great.
10/7 -- 24 min easy to the WHS track, 12 laps in lane 5 alternating easy and 200m accelerations, 20 min easy to home. Still have a little cumulative tiredness in the legs but the track work felt great.
Subscribe to:
Posts (Atom)