Social Icons

twitterfacebookgoogle pluslinkedinrss feedemail

Thursday, December 16, 2010

The Last Run

I went on my last run at lunch today; my last run because my last day is tomorrow.

It was cold out but wasn't unbearable in the sun.  And after I started my intervals, I stopped feeling the cold.

Afterwards it felt weird to finish cleaning out my locker in a room that used to be our janitor's closet but was now our company locker room (complete with showers).  The vultures started circling and contacting me several days ago inquiring as to the availability of my locker.  We now have over 100 employees and only 12 lockers.  Locker space wasn't such a problem when there were only 30 of us.

The way to leave a company is definitely to start taking your stuff home with you at least a week in advance.  Tomorrow, I leave with what I came with, and just an external hard drive, a coffee mug, and the water bottle sitting on my desk.  I wish I could take my dual monitors, but I think my new company gives developers dual monitors so my withdrawal won't be for long.

Thursday, December 9, 2010



I got the email yesterday evening informing me I was accepted into the 2011 ambassador program for GU (, you should go, just click the link already. Don't be scared, it'll open in a new tab/window).

How the ambassador program differs from a capital S "Sponsorship" is beyond me, but frankly I don't care.  I love their product and love how it helps me train and race.  Also, it doesn't hurt when your triathlon "guidance counselor" is (capital S) Sponsored by them.  And just a note of congratulations to Billy and his wife Lara on the birth of their 1st child, Paige.

My wife was a little nervous because she is not a triathlete and while she understands the training work required, she does not understand how sponsorships work.  That, and the fact that we are expecting our first child (also a girl) in early to mid-February.  I will admit that I don't know how they really work either, but she's worried that I will feel compelled to do things to justify having the sponsorship and train more than I would normally.  After telling her that family comes first (something that, admittedly, took me a while to get a handle on just after we were married 4+ years ago) I tried to get her to stop trying to plan the next five months and focus on the next week or two so as to not overwhelm herself.

I think a lot of the onus is on me to ensure that she doesn't feel like this would have a detrimental effect on our marriage/relationship/family.

Tuesday, December 7, 2010

Moving On [Up?]

I put my two weeks notice in at work yesterday.  I've been here for almost five years, by far my longest stint (by two years) at any one job.  I'm leaving not because of a Gen Y itch or because I don't feel I'm adequately compensated.  Rather, I'm not really in the same role as I was when I was hired.  Let me elaborate:

When I started, there were ~20 of us and only 5 engineers.  We had two QA resources and the 7 of us reported to the CTO and COO.  We had one person doing support.  I was hired to essentially build a new and comprehensive web application from the ground up.  Being in that role made me the go-to person for support and any issues.  I never really realized how much I fed off the feedback and interactions that were required.

Something changed earlier this year.  I don't know if a bit just flipped in my head or what, but I just started thinking about moving on.  I dragged my feet for months before finally pulling the trigger and started looking.  Ironically, that week, I got two phone calls at work from head hunters.  I NEVER get calls at work.  They didn't really pan out and I stopped looking until another engineer, who was one of the afore mentioned five, left about 5 weeks ago.  At that point, I felt it was ok to start looking.

I wound up finding and applying for two very different positions and getting two very different offers.  One was for a $15K pay raise while the other was for a 10% pay cut.  It turns out, I took the pay cut for the promise of being happy and fulfilled again.  I wasn't wild about the pay cut; especially since my wife is almost 8 months pregnant and is taking 6 months off from work.  But I did manage to negotiate a 6-month review which will hopefully result in getting some of that back.

One of the better things that the new company will offer is that not only does my sister work there as well, but it's located in Boulder, 15 minutes or so from my house and 10 min from the gym.  Hopefully that will bode well for my training.

Thursday, September 16, 2010

A Season Reflected

Having meant to write this soon after my last race in July, it's finally high time I write about this season that has, bar none, been my best ever - including my first season racing Triathlon in which I finished the season with a searing 2:22 at Pine Barrens.  In that race, the swim was short and my run was still 50+.

While my running has steadily improved, I had gotten insanely slow on the bike from doing long course/70.3's and culminating with IM CDA last year and given that the bike represents the bulk of the race, speed here is imperative.  I dropped my coach after IM CDA as my season was over and it quite obviously didn't make sense to continue to pay him.  After speaking with several pros here in Boulder, I realized that essentially, in order to get faster, I had to shake things up.  And shake them up I did.

I not only raced only OLY and shorter this season, but with some early season plyometrics training with Will Kelsay (Timex) and some mid-spring coaching sessions with Billy Edwards (Gu).  Some very simple guidance from Billy made me find my speed again on the bike - and I wound up getting faster on the run as well.  For posterity, the guidance was to include short, Z5 interval training and longer, Z4 interval training. The Z5 work on the bike was literally 1-2min repeats and 400s on the track for the run.  The Z4 work was 10-20min repeats on the bike and tempo runs.

That's really it.  I provided my own motivation, went to Master's swim class 2-3 times per week, and did Z2 runs and rides the rest of the time.  The key here is that it worked for me.  I think all too often, we as athletes (myself included) have looked through countless magazines looking for the silver bullet workout or training session when the fact remains that there is none.  What works for Chrissie Wellington will probably not work for the rest of us.  We each need to find our own training regimin that works.

I think I've finally found least, for OLY and shorter.

Thursday, July 15, 2010

How I Wish to be Awoken: An open letter to my dogs

Dear Bajan and Luna,  (think Cajun with a "B")

There seems to be some confusion as to when and how it's appropriate to wake me up in the mornings. This letter is an attempt at defining those rules and guidelines.

I realize you are both Labs and thus, by definition, blood, genes, breeding, whatever, you guys love food.  However, it is never acceptable to wake me up early because you are hungry....ever.

It is especially inappropriate to wake me from a deep, REM-filled slumber at say, 4AM, with the sounds of gagging followed by the liquid slushing sound of stomach regurgitation.  And when that regurgitated matter consists of mainly consumed dog poop from the back yard (the reason you probably puked to begin with) and it's putrid stench fills our room, you should know that it's only out of my undying love for you (because you keep my feet warm when you sleep under my desk) that I don't make you rue the day you were born.  The fact that the vomit contains bits of last night's dinner and some blades of grass as well, does not get you off the hook.

It is likewise both inconsiderate and blatantly obnoxious to wake me up at 4AM with the lovely sounds of retching to the point where I actually think you're dying.  And when I, in my sleep-induced stupor shove you off of our new bedroom carpet and onto the hardwood floor it is not out of anger, but rather the desire to not have to spend an hour scrubbing and vacuuming up the stench of regurgitated poop vomit.  However, I do appreciate it when you don't actually vomit but rather only cough up some blades of grass, which are most easily cleaned - especially off the hardwood floors.

Words cannot even begin to describe the level of detestability when, nary an hour or so after the previous vomit attempt you wake up the entire neighborhood with your maniacal barking due to a squirrel blundering accidentally into our yard via the top of a fence.  Normally I would find it rather humorous as you dance between the trees hoping for a glimpse of the chattering rodent now berating you for scaring the bejeezus out of him.  Additionally, it is normally quite humorous to watch you slink away from the trees and stand just far enough away to let the squirrel think you are gone only to pounce when he dares climb down the tree trunk.  I say normally because at 5AM, nothing is funny.  Not even your squirrel-induced antics.

So please consider this a notice, if you will, of what is acceptable behavior in our house and what is not and refrain from doing the above ever again.



Tuesday, July 13, 2010

Race Report: Boulder Peak Triathlon

I should really label this race "Reality Check" because that's what it was - read on for more.

The Boulder Peak Triathlon is a prestigious race. I have no idea where it ranks on a national list of Olympic distance triathlons, but I'd bet money that it's at or near the top. It's prestigious enough that the top 3 amateur male and female athletes can automatically obtain pro cards if they so choose. This means the race is competitive - very competitive. To give you an idea of how competitive, in the 5430 Sprint and Loveland Lake-to-Lake triathlons (in which I competed four and three weeks ago respectively), I placed 20th and 16th, respectively, in my age group. In the Boulder Peak Triathlon, I placed 39th.

While the race started at 6:30 and although my wave didn't go off until 7:05, I woke up a little bit on the early side - partially due to setting the alarm incorrectly and partially due to traditional pre-race night, poor sleeping. One positive fallout from this, however, was that I was able to find a decent racking spot for my bike. I ran into Rob and Oier in the parking lot and Rob again in transition. After setting up our gear, we went for a warm-up run. We ran into Oier about the time we were turning around and checking out the far East side of the swim course. We ran back and said good luck to each other as we split up at transition. I finished setting up my gear and got in line for the toilets.

I made it out of the toilet with about three minutes to spare before transition closed. I then realized I hadn't put on body glide or sun screen so I quickly did both attempting to be sure that I didn't miss any glaring spots as the sky was cloudless and while it was still pretty chilly, it's rather easy to get sunburned here if one isn't careful. I grabbed my wetsuit, cap, and goggles stuffing a Gu into my cap (knowing I'd want it before my wave started but not needing it so early before my wave start time) I made my way towards the water. I found a grassy patch and methodically put on my wetsuit.

I had plenty of time to get a decent warm up in on the swim and while it was ok, for some reason I didn't feel like 100% in the water. I don't know if it was nerves or something else but it was definitely something. Less than 10 minutes before my wave went off, I got out, walked over to the water station and ate my Gu. I then went over to the front of the corral where the people in my wave were grouped. A minute or so after the wave in front of ours went off, we were let in and I went out and practiced a swim start before turning around and lined up with the start buoys.

A few minutes later we were off and as is typical with triathlon swim starts, the first 50 meters were a churning mass of arms and legs as people jockeyed for position. I swam over people as people swam over me. I expected it to settle out after a few hundred meters, but for some reason it wasn't. As I turned to breath or lift my head to sight, I saw many other swimmers with the same colored swim cap as myself and my first thought was that I was swimming a lot slower than normal. My other thought was that somehow I was with the lead pack. The pack of green caps lasted until the first yellow turn buoy when we started mixing with swimmers from earlier waves. That helped break everyone up and I thought I finally had some open water to swim. Rounding the second and last turn buoy, I accidentally swam up over someone else in my wave because he decided to take the turn tight and cut me off. As I slid off him to the right and kept swimming I felt a hard blow to my head and after a second realized that the guy had actually punched me. I was shocked but as I kept swimming just let it go because I found a pair of feet to draft off. As is typical with drafting in the water, it's so much easier to swim behind someone one has to watch their speed to keep from swimming up on the person one is drafting. Additionally, several times I felt he was going too slow and tried to pass only to find that I was unable. All of a sudden, the guy stopped and started doing the breaststroke and I wound up getting kicked pretty hard in the face. I remember yelling out "Fuuuuck!" as I turned to breathe. My jaw is still sore a day later.

I came out of the water and my run up towards T1 was without incident. I ran straight to my bike, pulled off the remainder of my wetsuit, put on my shoes, helmet, and glasses, grabbed a Gu and ran out mounting at the line. I consumed most of the Gu before exiting the res but wasn't able to wash it down with anything until a few moments later. As soon as I hit the first hill out of the res, my rear derailleur started jumping gears. I'd put a new chain on last week and while I ran through the gears on Saturday to ensure smooth shifting, apparently it was quite different when the chain is under a heavy load. I managed to figure it out soon enough so it wasn't driving me crazy (though it still skipped around at times) and was officially cruising along on the bike.

The first five or six miles are all uphill with only slight reprieves along the way - false flats, if you will. However, once you turn onto Lee Hill from 36, the road noticeably tilts upwards. The closer you get to the mouth of the canyon and Old Stage, the more it tilts up. In fact, before you even hit the Lee Hill and Old Stage intersection the road sucks. Crossing through the stop sign at the Lee Hill begins the brutal climb that is Old Stage. As I did in training, I refrained from standing on my pedals and just pedaled up. I was being passed by guys in my age group, but I had a disc wheel and they didn't and I knew I would catch back up on the way down. Finally, I crested the first and hardest part of the hill and cranked into a higher gear to get some speed for the next section. The speed served me well and I was able to fly up the second section as it wasn't nearly as steep. Upon cresting the top of Old Stage I took some deep breaths and let it fly keeping my eye open for the speed trailer and the cop with the radar gun.

You see, due to several folks ending up under cars in 2005, a speed limit of 35mph was instituted by the race organizers. I remember the 2005 race and specifically the ambulance flying past me on the steep part of Old Stage. Additionally, I remember seeing the body under the car as I flew by the accident. Amazingly the guy survived.

I saw the trailer and that I was going too fast but still didn't see the cop. I slowed down and as I rounded the slight left bend at the bottom I saw him. Once I passed him I really opened it up and started flying by people, including those who passed me near the bottom of the front side of Old Stage. The rest of the bike is just a blur, but I remember hammering most of the way.

Having royally screwed up my dismount at Lake-to-Lake, I kept reminding myself to pull my feet out of my shoes before getting too close to the dismount line. I remembered far enough in advance to where I was able to hit the line and into T2. I knew where my racking spot was but I couldn't find it. I actually had to run back out to the end of the row and make sure I was in the correct row. I was, and just simply didn't see it. I should have, as my stuff was in the first rack of the row but I just missed it. Once I found it I dumped my helmet, got on my socks and shoes, grabbed my visor, race belt, and Cliff Bloks and got the hell out of T2. I popped a blok immediately and followed with some water right at the T2 exit and as I rounded the first corner to head out on the road portion of the run, I noticed my knee was bothering me.

It was my left knee and it hurt in the exact same spot as it did months ago. I was given an exorcise to do to strengthen my gluteus medius muscle (basically, the outside of the butt - in this case to the left of my left butt cheek). After the pain went away then, I stopped doing the exercises. However, during the early part of the week before Lake-to-Lake, the pain came back and I did the exercises enough to have it go away in time for the race. This time, however, there was no pain during the week and so I didn't do the exercises.

The pain was pretty bad and I didn't know if I'd be able to finish. After dwelling on that for about 10 seconds, I told myself to just take one step at at time and not think about it. I was hoping it would go away or at the very least I would forget about it. But something even better happened. As soon as I hit the dirt section of the run, about 2/3 of a mile into the run, the pain went away. Since the run was out and back, most of the course was dirt and I wouldn't be back on the pavement until I had less than a mile left. I wasn't sure how hard to push it on the run. I felt ok, but there was no cloud cover and the run is completely exposed. It wasn't hot yet, but it was getting there.

About the time I reached the first water station, a little past mile one, I was warm and while I popped another blok and took a sip of water, I dumped the rest on my head. I repeated the process at the second and third aid stations. On the way back, I saw my sister (whom I passed about 1/2 mile before the Jay Road and 51st intersection) and Oier. Approaching the middle aid station (a little after mile four) I stopped with the bloks and just did water and a sip of Gatorade. I repeated the process for the last aid station at mile five. I was running pretty well but I saw a few of the people in my age group pass me. I wanted to catch back up but I just couldn't will myself to go any faster.

I hit the end of the damn and ran onto the road for that last half mile. My knee was fine and I wanted to finish strong but found I wasn't able to up my tempo much before feeling the effects. As I approached the last turn to the finishing chute, I made a quick glance back to make sure no one was on my heels and cruised down the finishing chute where I saw the clock. Knowing I started 35 minutes down I realized I just missed my goal of breaking 2:30:00 by around 20 seconds - most of which, I realized later, were wasted in transition. What hurt a little more, however, was that there was only 22 seconds separating 35th place from 39th place in my age group. I got 39th.

Now, out of 163 in my age group, that's not bad and it shows just how competitive this race was. But after placing 20th and 16th at the sprint and Lake-to-Lake, I couldn't help but be a little disappointed with the placing even though I was totally stoked about the time.

The Stats:

39/163 AG; 187/1363 OA; 162/812 Male

Swim: 25:41 (1:42/100m; 22/163 AG; 143 OA)
T1: 1:15
Bike: 1:13:58 (21.1mph; 46/163 AG; 190 OA)
T2: 1:20
Run: 48:12 (7:47/mi; 52/163 AG; 316 OA)

Total: 2:30:23

Saturday, June 26, 2010

Race Report: Loveland Lake-to-Lake Triathlon

As the name of the race suggests, the race was in Loveland.  This required a bit of a drive to get there with ample time to take care of all pre-race necessities.  In turn, this required getting up ungodly early for a weekend: 3:50AM...for a race...why am I doing triathlon again?

I carpooled up with my friend Oier who was also doing the race and needed a ride.  I don't think we gave ourselves enough time.  We had to park on the far East side of the high school that served as the staging point for the race and walk clear to the far West side with our gear just to get into the line to get into transition.  We split up because he had to use the bathroom, and I was getting a little anxious.  I probably waited in line for 10 minutes or so before being able to get into the transition area and my heart sank: nearly every rack looked full.  Standing there and pondering my next move, I noticed that the first rack (right by the bike in/out) contained only 7 bikes and they allow 8.  So, I'm standing there staring at the rack figuring out how to squeeze in without pissing anyone off when a woman standing there asked if I wanted to rack there.  I was like HELL YES and racked my bike immediately.

Unfortunately, as with most racks in transition, when I have the 20oz water bottles in the cage behind my seat, the bike doesn't fit under the bar.  A time saving tip is to load your bike in facing out (so it hangs by the seat) so you can pop it off and go.  So, the bottles when on the ground on my transition towel.  Turns out, 2 16oz bottles would have been sufficient, but you never know and better safe than sorry.  I set up my spot with everything where I liked it and with 25 minutes until my wave started, I figured I had plenty of time to get a good swim warmup in.  I was wrong.

I walked the ~1/4 mile from transition to the swim start (and yes, you have to run back as part of your swim after you exit the water) and while I was wiggling into my wetsuit I heard someone with a megaphone telling swimmers to get out of the water.  Wetsuit on, I ignored that and went in the water anyway, but not wanting to be THAT GUY didn't stray too far from the shore and managed to get in about 2-3 minutes of something that would normally resemble a swim warmup were it not a race.

They started the Elites and 35-39 M/F age groups all together and as the first wave - beach start.  If you've never seen a beach start for a triathlon, picture a huge crowd of people (for Ironman it's over 2000) all running into the water racing to be first because it's easier to let people pass you at the swim start than to try and pass people.  The water becomes a churning mess of legs and arms and it's all you can do to not get kicked or hit (or god forbid, have your goggles knocked off).

The horn went off and so were we.  I was in the second row behind the Elites but it didn't matter.  There were arms and legs everywhere.  I did manage to keep my goggles on though - so that was good.  The first leg was a short, probably 75m dog leg straight out from shore before a 90-degree turn to the left and out into the lake.  I'm not sure if the folks who put on this race just don't have enough buoys or chose not to use them but the 800m leg out only had 2 buoys and the second was for our next left turn.  The back stretch of the swim also had only two buoys while the finishing leg had more however maybe they ran out because still several hundred meters from shore, there was nothing left to sight on so I just followed the swimmers in front of me hoping they knew something I didn't.  I finally saw two small yellow things on the shore that I guessed marked the swim exit and headed in that direction.  I was right and finally got out of the water.

I ran up a 100 feet or so and then stopped to take off my wetsuit as I didn't want to be running in it for 400m.  I think this was a good idea for me at least since the legs on my wetsuit are 5mil.  Running into transition I found my primo racking spot and promptly screwed everything up.  I took my bike off the rack to put the water bottles in before I had put on my shoes, helmet, or glasses so I had to lay my bike down while I did all that.  Getting everything taken care of I was off.

To describe the bike course as hilly would be a gross understatement.  Immediately after exiting the HS parking lot and turning West, the rollers essentially started and my legs felt terrible.  My thoughts turned to only having 5 days off between races and what I did during those 5 days.  I wondered if I'd be able to even finish the bike.  Thankfully, the road leveled out and I felt better.  Within the first 3 miles and before leaving the town, there was a fairly technical series of turns whereby the road swept right before curving back to the left followed by a rather hard left.  This section was also on a down hill so I was carrying some speed when I hit the hard left and everythign would have been fine except I started pedaling too soon and as my left foot came down the pedal struck the road making that god awful sound that no cyclist ever wants to hear - especially in a crit.  Thankfully I didn't go down and as I recovered I shook my head knowing how stupid and lucky I just was.

After some rollers and turns, I finally got to Glade Rd which I was going to be on for a while.  It's basically up hill for probably 5 miles with some sections steeper than others.  I'm not sure if it was my choice of wheels (I was using my disc) or the slight headwind, but I really struggled on this stretch.  At the end, there's a bit of a breather descent before making a right and beginning the long, slow climb up to the West side of Horsetooth.  The hill isn't terribly steep, but it's LONG.  Still, I did better on that hill than on Glade because it was at least steady and I'd done the climbs a few times before.  At the top, there's a long, screaming descent that wasn't too technical before transitioning right into the next monster hill that would take me to the overlook on the far South end of the lake.  That hill was much shorter and steeper than the previous, yet I found it easier still and tempoed my way up.  At the top there's another long, screaming descent with a fairly tight 180 at the bottom - sort of switchback like.  I only barely had to tap the brakes before hitting the final stretch of road that takes you around the side of the lake before peeling off back towards Ft. Collins.

At the very bottom, we make the normally dreaded right on to Taft Hill Rd.  This road usually sucks because there's almost always a headwind when I ride it and it's also at like mile 60 of long training rides from Boulder.  Today was different.  Not only did I not have 60 miles already in my legs, but we had a really nice tailwind which allowed me to absolutely fly over those huge, nasty rollers that go all the way South until you hit the outskirts of Loveland.  Additionally, they had block off the entire Southbound side of the road so we had zero cars to deal with.  It was rather nice.  A few more turns and I was on the last road essentially back to the HS only this time they had the entire left half of the road blocked off for the racers so we got to ride on the left side of the road and had two full lanes plus a bike lane to spread out.

I use that last term loosely because one drawback of being in the first wave is that there's not many people in front of you. I recall stretches where I would look forward and backward and not see another racer (let alone a car) whereas at last week's sprint (in which I was in the third wave) I was not only passing people on a frequent basis but I could always see other racers.

One final slight left and flying by the sculpture park before crossing the road and into the HS parking lot where I completely spaced out needing to unvelcro my shoes and get my feet out to save some time in T2 so I had to do a half-assed run in my cycling shoes (thankfully only a short distance) to my very close bike rack.  It was a very quick T2 for me (< 1 minute) I got my socks/shoes on, grabbed my visor and race number and was off.

By this time, the cloud cover that had graced us for the entire bike (most welcome) had vanished and the sun was starting to bake everything it could touch but I felt pretty good and found a pace that was comfortable and just stuck with it.  Learning from last week's race, I didn't try and pound a Gu at the run start to keep my stomach from seizing rather I waited until the first aid station before taking some water.  Just after mile two, I started seeing the Elites coming in, said hi to my friend Josh (who finished 3rd) when he passed.  Not much later, I saw Uli, Brandon and finally Oier coming back, a couple of miles ahead of me on the run.  I could see the turn around and was rather happy it had felt like it came so quickly.  I soon realized why.  The run out was downhill.  Very slight, but noticeable after you turned around.  Still, it didn't really affect me until close to mile 4 when I started to get hot.  The last two miles were a bit of a struggle.  I just remember forcing myself to keep running and as we neared the finish to not actually stop.

The finish is a bit cruel (as my sister puts it) as they make you go away from the finish line before going past it all the way back out to the road before swinging around again and following the path to the finishing banner.  The highlight of this last 1/2 mile stretch were that no one passed me and I actually managed to pass some one in my age group ON THE RUN!  I don't think I've ever done that in a race before my runs have almost always been less than stellar.  Finish line in sight and soaking wet, I dug deep, picked up the pace and finished.

The Data:

16/74 AG, 100th overall, 85th male. 715 finishers.

Swim:  26:38 (1:46/100m) - includes 1/4-mile run from beach to T1.
T1:    1:20
Bike:  1:23:18 (21.6 mph)
T2:    0:57
Run:   47:25 (7:38/mile)
Total: 2:39:39

Monday, June 21, 2010

Race Report: 5430 Sprint Triathlon

This was my first race of the season and the first in what's known as the age group of death:  M35-39.  This was evidenced by (according to the knowledge imparted upon us by the ever entertaining Barry Siff) the 160+ registrants for this age group, although only 147 started and finished.  The waves launched at 7:30 in 5-minute intervals.  My age group was so big it occupied multiple waves however I was in the first of the two waves (wave 3) scheduled to start at 7:45.

I went into this race with a sort of relaxed confidence knowing that while I hadn't done nearly all I wanted/needed to do to exert the high effort required for this race, I was still well prepared.  I was neither nervous nor did I have the usually half-assed night of sleep the night before going to bed early and sleeping relatively soundly until 3AM or so - much later than when I normally wake up on race nights.

Having packed the night before my morning was stress free and I left the house at my previously selected time of 5:45AM.  Getting to the Res was uneventful as was parking or finding a decent racking spot in transition.  I laid out my gear and went for a warm-up run around 6:25.  Getting back to transition, I double-checked all my gear but probably dallied a little too long and was ultimately, along with may others, ushered out of transition wetsuit, goggles, and swim cap in hand.  I took some care in putting on my wetsuit to make sure it was adjusted properly and there would be no tugging, air pockets, or bunches while swimming and took a quick dip for what was probably only a 100m warm-up - far too short for my liking - before I had to line up in my wave a full 15 minutes before my start time.  With the series now being owned by Ironman, everything is a process involving lines of some sort so the start was no different.  All athletes had to activate their timing chips by going over the timing mat prior to entering the staging area in the water.  This meant one could not just warm up until just before race time and simply duck under the ropes to get a good starting position.

I lined up on left which would give me a straight shot to the far turning buoy - had I actually done a halfway decent job of sighting on the way out.  I didn't and wound up zig-zagging a bit before finally getting on the right track.  Not sure how much time I lost doing this, but my swim split of 12:45 for the 750m indicated I swam a 1:42/100m pace which is somewhat slower than I can rip off in a pool and I was wearing a wetsuit.  Lesson learned for the next race:  don't forget to sight on the way out.  After the first turn, I remembered how to sight correctly and didn't have an issue coming in.

In the last 100m or so I started kicking to wake the legs up.  This also has the effect of spiking one's HR and of the three sports in triathlon, swimming has the lowest maximum heart rate meaning it's incredibly easy to red line it if you're not careful.  This probably is exacerbated as you stand up at the end of your swim, run through several feet of water and up a couple hundred feet of sand towards transition.  You may be able to train for this, but I'm not convinced it ever gets any easier.

Wetsuit came off quickly during the run up and in T1.  Everything was smooth save for knocking a water bottle over as I unracked my bike and instead of leaving it, wasted some valuable seconds picking it backup.  I say valuable because in a sprint, just like in a short TT or prologue in cycling, the times are (usually) close together and 7 seconds saved would have seen me move up 2 more spots in my age group standings.  T1 time was 1:13, not bad, but certainly room for some small improvements.

I had a little trouble at the mount line getting my right cleat in - some more valuable seconds lost - but was soon out on the bike and hammering.  One difficulty with the triathlons at the Res is that the bike course is all uphill for at least the first 5 miles.  It's not steep, but it's uphill and you can tell.  There was some obvious wind on the bike but not enough to make me feel like I was wasting a ton of energy.  There were, however, times when I caught myself just cruising rather than pushing the pace - more time lost.  I played leap frog with some guys in my age group but all in all, I was probably not passed by more than 6 riders total and not all were in my age group.  This was promising.

I came flying back into the Res, pulled my feet from my shoes and had a perfect running dismount losing no momentum and passing several more riders in the process.  Bike time:  45:01 for a 22.9mph average.  I forgot to unbuckle my helmet while running back to my rack so I wasted some more time having to do it there and struggled a little getting my socks on and square so I could just slip my shoes on and go.  I grabbed my race belt, a Gu, and my visor and was off.  T2 time:  1:17.

I pounded the Gu immediately and tried to wash it down with water but spilled more than I got in my mouth and had to run tasting chocolate for the first mile until I could get more water.  The Gu was a big mistake - not because of the Gu, but rather because of mixing it with my custom Infinit sport drink mix that I consumed on the bike.  Stomach cramps dogged me for almost two miles before subsiding into the realm of "ok, this is reasonably bearable."  I have no idea what my pace was at the time but I found something that was at the top end of comfortable that also felt.  As with the bike leg, not many people in my age group passed me but I never actually considered where this would lead me to place - I just focused on running, keeping my pace and doing my thing.  There was a slight headwind going out and while certain, I think it's also VERY slightly up hill.  Regardless, at the turn around, the change was noticeable and while I'm not sure if my pace changed, it definitely felt easier.  Soon, I was back on the paved road and cruising to the finish.  Approaching the corner, a quick glance back told me that no one was going to sneak by me in the last 100m.  Running down the finishing chute I was vaguely aware of the race announcer saying my name and something about last year's Ironman.  I cross the finish line and glanced at the clock.  Race time: 1:23:15 with no real idea on where I placed.

My wife met me at the finish and we milled about the finishing stretch waiting for my sister to finish.  I believe she was out on the run within 5 minutes of me finishing.

Finally, the results were posted and I saw what shocked the hell out of me:  in my first race in the age group of death, I landed a top-20.  I was over the moon.  And checking my stats from the last time I did this race in 2008, my time was actually 11 seconds.  But most importantly, the bike was faster by well over a minute and almost 1mph.

Final stats:  AG placing:  20/147, 130th overall.

Wednesday, May 26, 2010

Ok, back to triathlon

It's not that I've been sitting on my couch every night eating potato chips while watching the Biggest Loser (actually one of my favorite past times...but popcorn or ice cream, not chips) - but it was pointed out to me by a friend this evening at Master's swimming that my blog is not only about triathlon.  She mentioned the prior name of my blog "The Triathlon Saga" (only because better versions of that were taken by people who haven't blogged since like 2006 - I mean, seriously, let someone else have it...and while I'm ranting, domain squatting is bad enough, but blog squatting?  Come on.  Check out  It's not been touched since 2005 and looks like a 6-year old created it but lost interest after 3 minutes.) and it didn't occur to me at the time that I'd actually changed the title.

So, training.  What have I been doing?

After last year's less than stellar Ironman Coeur d'Alene performance and 4 successive years of faster running times, but significantly slower cycling times I'm only doing Olympic distance races and shorter this year.  So far, I'm registered for 3 races but hope to pick up one or two more local races in August and September.  Training-wise, I dropped my coach after the Ironman and when I started training again last fall, I simply never signed back up.  It's not that I didn't think the coaching was good or it was worth what I paid - It's just that I thought for a rebuilding season, I could do it mostly on my own with some slight guidance here and there.

I can tell you without hesitation that it is MUCH harder not having a coach to provide you with a training schedule than to provide you one for yourself.  Problem #1?  I never actually sat down and mapped out my weekly training schedule.  It wouldn't have been hard, I have over 7 years of data from which to glean workouts and a training regimen.  It's just that I never made time to sit down and actually do it - which, admittedly was pretty lazy on my part.

So, now I'm training.  I'm not winging it, but I don't really have any set workouts save for Master's swimming and then, it's really only the days in which I go swimming, not the actual workout contents.  That's reserved for our hairless (he showed us today) German Master's coach, Wolfgang.

I kind of want to see where my races actually go before panicking, but two of them are on back to back weekends and are less than a month away now so there's not a ton I can do at this point to perform magically.  I do know my running is not where I want it to be, i.e., it's slower than last year.  Not by a huge amount, but it's noticeable.  I'd like to think my cycling has improved dramatically but without really any benchmarks other than a TT in which I averaged almost 26mph but still managed to place 31/39 I have no idea where it's really at.

Additionally, when I started running again, I switched to using only the Vibram 5-Fingers for almost 6 months before my distances got too high and I wanted to get some racing flats to give me a little more cushion.  So, I don't know if that's got something to do with the slower speed.

All that said, I find it interesting that as I focus more on one sport, the other two lapse noticeably.  I'm not talking about going from swimming 1:30/100m to barely making 2:00/100m or running 7:00/miles to not being able to run 8's, but I do find that it's harder to hit those 1:30s without paddles, or to sustain that 7-minute pace for more than a few miles.  Also, as I'm doing a lot more speed work, I notice that my body is more fatigued on a day-to-day basis than I can ever recall before.

Monday is the Bolder Boulder.  I'm in wave B (the 4th wave, I think) and while I know my running isn't where I want it to be, it will be an interesting test of where I'm at.

Monday, May 24, 2010

Um, Excuse me? What's your motivation?

Given the number of political careers that have been helped ruined by scandalous affairs and the typical answer by politicians to promptly disappear and enter rehab for months so as to avoid talking about it, I figured I'd wade into the debate to offer some of my own insight - especially in the light of the most recent incident (at the time of this writing) with Rep. Mark Souder (R-IN).

Souder, being interviewed by the Fort Wayne Journal Gazette, in providing some insight as to how depressing it can be to be a public figure and have a story like this break is quoted as saying "...I'm not a suicidal guy for religious reasons..."

To me, this represents a HUGE problem with specific branches of organized religion, but don't worry, I'm not naming names.  Here's my rationale:

I would argue that people should do good deeds because it's the right thing do to, not because they expect to be rewarded for it (either now or after they die).  Conversely, people shouldn't refrain from doing bad things because they fear not being rewarded (or of being caught for that matter).

Motivation by reward in this particular context strikes me as fairly greedy and selfish.  So, does taking Souder's comment at face value imply that were he not religious he would more seriously consider suicide?

My belief is that people shouldn't be slaves to their religion.  It's supposed to be a choice (although most people don't act this way) and people should make their religions work for them instead of the other way around.  I don't believe religion is supposed to be a pain in the ass.  Sure, there's something to say (and gain) for overcoming difficulty, but this doesn't apply here - the man's motivation for not killing himself is because of his religion.

Tuesday, February 16, 2010

Why server monitoring is imperative for web applications

We had an issue at work last week whereby we had to kill both our web servers and restart them because we ran out of database connections.  To be more specific, we have a database connection pool and the pool filled up because more requests came in than connections were available because database queries weren't completing fast enough.

The solution is NOT to simply add more connections - this can actually exacerbate the problem.  Rather, one solution is potentially to decrease the number of connections.  This solution can also have the effect of people waiting for connections - namely that lag you see on web pages could be due to a poorly tuned database API.

We are fairly confident, however, at our company that our database API and database itself are tuned appropriately and given we've been using it for years the only thing we might need to concern ourselves with is that our usage may have grown such that we need to take a look at performance tuning our database to account for said added usage.

Today, we were expecting a rather large number of users at a given time so I spent the time during this time watching our server logs, monitoring server statuses, and looking in the database.  Also during this time, I used our Cacti monitoring service to follow server health.  While looking over the statistics for one of our load-balanced web servers, I came across this amber gem:

The graph spans a 6-week period and that black line is the thread count line for the Tomcat server running on one of our web servers.  The sheer cliff on the far right is when we had to kill the servers and restart.  To those of you who have done software engineering, this is a leak.  We are spawning threads that aren't dying and/or cleaning up properly.

Our current problem is that we only added this monitoring at the beginning of the year so we can't go back and look for the start of the climb to point to a specific code change (or changes) that resulted in this leak.  The solution for us, is to start taking thread dumps and comparing them over time to see if threads are hanging around over time or what.  Fortunately for us, Java makes this rather easy to do.

Regardless of all this, the bottom line is that if we didn't have server monitoring in place, we might never know about this problem.  And given that Cacti is free and open-source software there's not really any excuse no to use it or something similar.  If you do decide to use it, consider supporting them.