Archive for November, 2011

Discipline and Regret

Tuesday, November 29th, 2011

“We must all suffer from one of two pains: the pain of discipline or the pain of regret. The difference is discipline weighs ounces while regret weighs tons.” – Jim Rohn
This applies in so many areas of life. Most recently I can apply it to my marathon training and the Philadelphia marathon itself. Never give up.

Large JS Application Advice

Wednesday, November 23rd, 2011

“The secret to building large apps is never build large apps. Break your applications into small pieces. Then assemble those testable, bite-sizes pieces into your big application” – Justin Meyer
“The more tied components are to each other, the less reusable they will be, and the more difficult it becomes to make changes to one without accidentally affecting the another” – Rebecca Murphey

Philadelphia Marathon 2011

Wednesday, November 23rd, 2011

The 2011 Philadelphia Marathon is my fastest marathon yet. I finished in 3:13:22, which is a 7:21 per mile average. I finished in the top 6.05% of 10,000+ marathon runners. The cheering crowds were spectacular and uplifting. The bands along the course and cheer sections were awesome. The weather was very cooperative, but I think it would have been better about five to 10 degrees colder.

Frank's Finish Time 3:13:22

The last time I ran the Philadelphia course was in 2005 and my time was 3:21, so for this course I made an eight minute improvement. My second fastest marathon is now the Steamtown marathon, where I clocked in at 3:16:15. The Steamtown course is easier than Philadelphia, so to have run this harder course faster than Streamtown, even if only three minutes faster, is a nice improvement. However, I did not qualify for Boston, which requires a time of 3:10:00 until I turn 40. I would have qualified for the 2012 Boston Marathon if I had run this race before September, because it was then that the BAA enacted stricter qualification standards. Previously I needed to run 3:15:59 to qualify, but now I need to run 3:10:00.

While waiting just minutes before the start of the race, I tried to reposition my shirt and race number. But I tore the race number right off the fuel belt I was wearing. I didn’t have any pins with me (because the fuel belt has built-in bib holders), and the hole on the top of the bib was torn and now useless. The race would start in three minutes and I had no way to keep my race number on, which is critical because it also contains the timing chip. I glanced around in desperation but I was squeezed in a sea of people, poised to begin their run. I needed to make a new hole in the bib, but unfortunately I didn’t have a hole puncher handy. Playing the part of MacGyver, I thought quickly and realized that the metal part of my watch wristband may be able to punch a new hole. I took off my garmin watch and with some carefully applied force, was able to poke a hole through the top corner of the bib. Then I was able to re-attach it. Wile E. Coyote, super… never mind. Pre-race crisis averted.

During various high and lows throughout my run, my wife and boys, and many family and friends were in my thoughts unknowingly getting me through rough spots. Jeannie and the boys were out on the course and I got to see them four times cheering me on. It was so very generous of them to spend half of their day trudging around Philadelphia just to catch a glimpse of me in different spots for a couple seconds as I ran by. But for me it had a huge impact on my performance and overall mood to have them there; I’m so very thankful. As I hit those rough patches along the course, I also thought back to other family and friends who wished me well and I also thought of those who were monitoring my progress from afar (Rich C. and Dimitri B.) via the pace alert mechanism. I also called upon memories of my martial arts instructors who at times got me through training and events I once thought I could never do. I heard ghosts of their voices barking at me, telling my I was weak, or no good, and that I needed to keep my pace, or run faster 🙂 That always helps to keep motivated. Thanks everyone!

I ran the first 21 miles (or so) with a 3:10 pace team, sponsored by Clif Bar in conjunction with the marathon. The pace teams are there to help runners stay on track and cross the finish line within the expected time. Running with the pace team leader is usually a sure bet to hit ones target because these guys can probably run the predetermined time in their sleep. Unfortunately, even the pace team leader missed the mark on Sunday and finished in 3:11:15. Even early on in the course, some of us running together with the pace team leader clocked in some miles with highly suspect splits. A few of the first miles of the race were just too fast, in my opinion. Miles 1-3 were 7:03, 7:11, and 7:02 according to my Garmin 310xt, but we were supposed to be aiming for a 7:15 pace. You shouldn’t ever try to bank time early in a marathon; it’s a recipe for disaster. I should have gotten out of there when I had the chance, but I stuck with the pace team and figured either my watch was off or he simply knew better. There must have been some very disappointed runners out there that stuck with the pace team leader all the way, only to unexpectedly discover they had to increase their pace in the last couple miles which is incredibly hard to do. For the 35-39 age group, Boston no longer allows an additional 59 seconds past 3:10 to qualify, so anyone running with the pace team leader would have had to make up at least 1 minute and 15 seconds in the last mile or two to hit their qualifying time of 3:10:00. I do have to say thanks to the pace team leader for doing a great job getting us through the hills in Manayunk. But the fast early miles and faster miles leading up to mile 13 probably detracted from my performance later in my race.

The Philadelphia course is great, and there were plenty of aid stations and lots of water available. It was also exciting to see the elite runners heading back along the Schuylkill river as I was headed toward Manayunk. Folisho Tuko took first place with a time of 2:19:16. Wow, that’s a 5:18 mile/minute pace.

For me, the first 10 to 15 miles went very well, I had little to no pain or discomfort, and my heart rate stayed within the low 150 bpm range. Heading out further along the river to the Falls bridge required more and more effort from me, but I was managing well. However, I suspect it was those late though not incredibly steep hills near miles 20-21 in Manayunk that ultimately did me in. I made it through them on target, but it took considerable effort and my heart rate was then averaging around 160 bpm. I think the last straw was a hill at mile 22.75. Once I crested it then attempted to coast down the back-end of the hill, I developed a muscle cramp in my quadriceps. I can see the little blip on the elevation chart from the race, and it’s wagging its finger at me, even now 🙂 Once that happened, my stride was affected which made it next to impossible for me to keep a 7:15 pace. I kept close to target until mid-way through mile 23, but could no longer maintain my stride due to the pain. I kept running, but my form deteriorated which affected my speed. Leading into mile 24, thoughts of giving up started to edge in and I had visions of the 3:20 and 3:30 pace teams passing me by (they didn’t of course, but your mind does strange things in that state). The urge to walk or just stop altogether was strong, but I fought through it and kept running. It took almost a mile to regain some sort of stride but the damage had been done to my overall goal of 3:10. I tried to surge ahead in mile 25 (hearing echoes of “you’re weak Frank. Must do!”) and managed to squeeze out a 7:40 mile. Still too slow though.

I chuckled at the end of mile 25 and thought, “if I could just run my last full mile in 5 minutes, I could make 3:10”. HA!!! If you’re a long distance runner, you know how silly that thought is. You can’t make up two minutes in the last mile of a race, even if you’re from Kenya 🙂 Then I also remembered that my math skills deteriorate significantly the longer and longer I’m out there running, so that quick computation was probably wrong.  My leg was still in lots of pain, but I carried through to the end of mile 26 with a respectable sub-eight minute pace. The last 385 yards felt like a whole mile, but I got to see Jeannie, Matthew and Peter cheering for me near the finish line and I managed to cross with a smile on my face.

So even though I didn’t qualify for Boston, I’m still happy with my results and I continue to improve each year.

Thanks to Bill Scannon for his impressive driving skills on race morning. He delivered himself and several of us Hamilton Area Trail Runners from the Dunkin Donuts on Quakerbridge Road in Trenton to just a few blocks from the start of the race in what was probably a landspeed record. Also, many thanks to the HATRs for all those Sunday long runs. Running the 20 milers as a group took much of the monotony our of all those weeks of training. Thanks also go out to all those volunteers who worked the race expo, manned water and aid stations, and helped throughout the course. The support at the race event was stellar.

SSH UserKnownHostsFile

Monday, November 14th, 2011

Ahhh, how awesome is it that you can set the UserKnownHostsFile property for ssh connections to /dev/null for specific host connections in your ~/.ssh/config file? Fabulous!

Every so often, we have to migrate application resources from one of the nodes in our cluster to another node, or migrate services from one cluster to an entirely different cluster. As a result, the CNAMES we used to access those application resources get registered to different hostnames. This causes ssh to burp when trying to connect:

The RSA host key for xxxxxx has changed,
 and the key for the corresponding IP address aaa.bbb.ccc.ddd
 is unknown. This could either mean that
 DNS SPOOFING is happening or the IP address for the host
 and its host key have changed at the same time.

Yes, yes I know we moved the services around, now stop being paranoid and connect me already! I used to either wipe out the known_hosts file, or delete the offending line from it. Now, for hosts that match a specific pattern, I can just configure the ssh client to not track those hostnames:

Host xxxx
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no

That should save me 13 seconds every few days 🙂

Last 20 Miler Before Philly

Friday, November 4th, 2011

Last Sunday morning’s run was to be my last 20 mile run before tapering for the Philadelphia marathon. However, the surprise snow storm on Saturday froze overnight and turned my running course into an ice skating rink. I still did the 20 miles that morning and got an intense workout to my stabilizer muscles. But I didn’t feel it was quality given I had to decrease my pace to stay safe.
Since then I’ve been itching to do another long run, but scheduling it is tough because I’m now within the typical “three week taper” phase of training. So, I was able to fit it in at 3:30 am this morning, before work. I didn’t want to wait until Sunday because that is exactly two weeks prior to the marathon. At least this gives me a couple extra days of buffer.
I ran an average pace of 8:21, but my goal was to stay below 8:30. Only one of my miles crept above at 8:31. I think it was mile 15 and there were some minor hills involved. I didn’t use any gu because I wanted to get to that feeling of no energy and fight through it in the end… Mission accomplished.
I also used this run as an opportunity to test out RunKeeper’s audio cues. I’ve used them in the past, but the settings weren’t very granular. A recent update to the app allows me to configure the pace cues at quarter-mile intervals. This worked well this morning because I was reminded of my pace every .25 miles without having to check my Garmin 310 so frequently. If my quarter pace was too slow, I pushed a little extra in the next quarter to compensate.
I was worried that quarter mile pace cues would get very irritating after 20 miles, but they ended up being very useful. Thank you RunKeeper. I will use the same technique in the marathon to help me achieve my goal of 3:10.
So my taper has officially begun but i will continue to do speed work through next week. Tomorrow I will run the Conquer the 5k(s) at the ETS campus in Princeton. And on the 12th I’m registered for the Tough Mudder. I plan to run that pretty slowly, and have fun since it is just 8 days before the marathon. I wouldn’t want to injure myself for Philly 🙂