The Keynote

As I write, Melissa & I are at Chicago O’Hare airport waiting on our (delayed) flight to San Francisco. I am attending Apple‘s Worldwide Developer Conference (WWDC) this week. Melissa is along for the ride.

Since I started working full time as the primary Mac OS X developer of Mathematica at Wolfram Research in 2001 I have attended this conference every year except 2006. That year the conference was scheduled (Apple has been really bad lately at waiting until the last minute to schedule this huge conference) during the week Melissa & I were moving to Nicaragua, so I missed out. The conference is exciting every year, but none was more exciting for me than 2005 when I (along with my boss Theo Gray) participated on stage during Steve Jobs’ keynote address.

Note: some of this information was confidential at the time, but is now mostly publicly known. I can’t imagine any of the details I mention below would still be considered sensitive information.

On Wednesday night the week before WWDC I got a call at 9:30 pm from Theo. I was almost ready to go to bed. He asked if I would be able (and willing… but more able :) ) to fly to California at 6 am the following morning. I suppose I could, but why? Theo went on to tell me that Apple had a super secret project and they wanted our help, but he wouldn’t tell me what the project was.

I have since learned that he actually knew what the project was at the time of that call, but he couldn’t tell me. Stephen Wolfram, the founder and president of Wolfram Research wouldn’t sign off on the idea until he knew what was going on. Steve Jobs told Stephen Wolfram & Theo what the project was and they agreed to take part… but they couldn’t tell anyone else.

I spent the next two hours packing (including the Dahon, my folding bike at the time) before going to bed. Early the next morning I arrived at the Champaign airport. Apple purchased my one-way ticket to San Jose (by way of Chicago). An Apple limo picked me up at the San Jose airport and drove me straight to Apple’s campus in neighboring Cupertino. Luggage still in hand I entered 3 Infinite Loop (I think). A few minutes later I was in a meeting with Ron Okamoto, Vice President of Worldwide Developer Relations.

Ron told me what the secret was, that Apple was building a Mac which used an Intel x86 processor. They had ported all of Mac OS X to this new architecture (Darwin, the open source core of Mac OS X, already ran on x86). They intended to demonstrate this new x86 version of Mac OS X on Monday’s WWDC keynote. They wanted to demo a 3rd party application running on the x86 Mac. They chose Mathematica to be that 3rd party application. He asked me if I thought it would be possible to get Mathematica up and running on Mac OS X Intel by Monday.

Uhhhh.

That’s a potentially huge task. Our code is fairly portable (at the time Mathematica ran on several Unix platforms in addition to Mac and Windows), but supporting new platforms usually takes a fair amount of time. Ron told me Apple was prepared to provide significant resources to make this happen, including a small team of Apple developers and immediate access to any other relevant Apple developers. I was cautiously optimistic.

(Now 30,000 feet over Iowa)

We travelled across De Anza Blvd (luggage still in hand) to a different Apple building where I was ushered into a conference room with a single desktop computer sitting on the conference table. It was in the same metal case as Apple’s high end desktop computers at the time, the PowerMac G5. I think the case even said “G5” on the side. From the outside you couldn’t tell the difference between this machine and a G5 unless you carefully peeked through the holes on the front and noticed it didn’t have the huge heat sink the G5’s had.

I was greeted by the team of Apple engineers (Matt, Eric, & Ronnie) who would be providing technical assistance in the porting process. This place was not only hidden from the public, but it was hidden from the rest of Apple. Very few people at Apple were even aware this project existed. The four of us got busy.

I sat down at the Macintel and immediately began working. The experience wasn’t just familiar it was identical to any other Mac I had used. I was blown away by how seamless Apple had made the transition. The whole OS was there it all its glory, including every bundled application (even Xcode). I could just work exactly like I do on any other Mac.

But wait, sometimes I use BBEdit to edit text. I guess I won’t be able to do that since it (or any other 3rd party application) hasn’t been ported yet. “Why don’t you just go ahead and try it?” Matt said to me as he tried to hold back a smile. It hit me immediately. “You’re kidding, right?” I downloaded BBEdit, double clicked the icon, and it ran. I ran just like it does on any other Mac. Apple had incorporated (with technology licensed from another company) a PowerPC translation layer into the OS. This meant that nearly all existing Mac applications would run on the new Intel machine, with a slight performance penalty. This was amazing news, as it meant the new machines could be adopted immediately by users rather than waiting until all their applications were ported. Very exciting.

Back to work. We started with MathLink. This is a low level library used by both the Mathematica user interface (FrontEnd) and the computation engine (Kernel). With one set of flags MathLink builds for Mac OS X PowerPC and with different flags it builds for x86 Linux (or Windows, etc.). It only took a few minutes of experimentation with the Makefile and headers to find the right set of flags to treat the OS as Mac OS X and the architecture as x86. The elapsed time from entering the conference room to having a built, fully functional MathLink library was probably around 20-25 minutes. As we progressed our excitement grew.

Xcode target architecture

Next was the Mathematica FrontEnd. I normally spend all my time working on the FrontEnd, so this part didn’t worry me much. The FrontEnd is built with Xcode, which had a new “architectures” setting checkbox. We checked the checkbox for the Intel architecture (actually, we didn’t because Intel was the default target architecture when building on Intel… but we did verify the checkbox was properly set). Within 4-5 minutes the FrontEnd built with only a couple of minor build errors which were easily fixable. After 10 minutes working on the FE we had it built and running. It wasn’t running flawlessly, but it was a very good start. I had only been at the secret Intel machine for around a half hour. This was getting really exciting.

The next step was the one which caused me the most concern, the Mathematica Kernel. The reason for my concern was that I don’t often work with the Kernel. I knew how to build it (the build system is somewhat complicated) and I knew roughly how the code was organized, but there are all sorts of minor details which could really slow down the process. It relies on many external libraries (open source and commercial) and custom build tools. Fortunately, the Kernel, like MathLink, already ran on Mac OS X PowerPC and Intel Linux & Windows. It took a while longer to figure out some of the proper build flags, and some of the build errors weren’t entirely obvious.

This is where Matt, Eric, & Ronnie really came through. They had each spent a lot of time porting open source applications to Mac OS X Intel to learn what types of issues developers might run into along the way. Each time we encountered some sort of problem in an open source library one of them would go off on their own for a few minutes to resolve the problem while the rest of us kept hammering away. Every few minutes we would get further and further along in the build process with new issues popping up all the time. It was like an assembly line. In parallel.

After about 90 minutes (2 hours from when I entered the room) we had the Kernel running, the FrontEnd running, and the two processes were able to talk to each other through MathLink. Again, it wasn’t perfect, but nearly everything just worked.

News spread up the ranks. Within minutes we had high level executives stopping by to see the first 3rd party commercial application running on Mac OS X Intel. By early evening Theo (who took a later flight) arrived frantically asking what he can do to help. He was a bit shocked, and very pleasantly surprised, that it was mostly done.

Friday we worked to fix bugs and showed off the software to an ever growing number of people. Since Mathematica already ran on Intel processors on other platforms, most of our cross platform code was byte order agnostic. There were a few cases where Mac specific code was assuming big endian byte order, particularly related to Quartz (bitmap drawing) and OpenGL. There were also some issues with Quickdraw PICT drawing.

Friday evening some of the Mac rumors sites (original CNET article appears to have been removed) reported that Apple would be announcing the switch to Intel processors at Monday’s keynote. Rumors like this had been published for years, so it wasn’t that out of the ordinary, but this report was different. It contained many specific (correct) details rather than just wild speculation (like every previous report like this). It was clear someone in the know had blabbed. The conference room was silent for a few moments. Oh well. Until Monday, it’s still just a rumor.

Saturday morning we drove up to San Francisco to prepare for the WWDC keynote. We had a rehearsal where I met and shook hands with Steve Jobs. I had heard horror stories about his temper, but he was in a great mood when I met him… sitting perfectly relaxed, legs crossed, smile from ear to ear. I could tell he was excited.

Theo practiced his speech, asking Jobs for feedback along the way. The funny thing was that Steve was so happy he kept telling Theo “say whatever you want” or “talk for as long as you want.” Meanwhile I set up the demo machine (and backup demo machine) with our freshly built Mathematica for Mac OS X Intel.

Monday morning before the keynote Theo & I hung out in the VIP lounge. Woz (Steve Wozniak, the other co-founder of Apple) was there, Sergey Brin (co-founder of Google and former Wolfram Research intern) was there, along with many other influential people in technology.

Once the keynote started we sat in the front row on the far right side. Midway through the keynote Jobs called us up to the stage. Theo described our experience porting Mathematica to Mac OS X Intel over the previous few days. I drove the demo machine as he talked. It was a big hit. Theo captivated the audience. At one point Theo mentioned my name, which immediately caused 4,000 people to turn their heads to stare at me. It was a little awkward (which is quite evident in the video). Had I known that was going to happen I think I could have played it a little more cool. Anyway the demo was a success. Mission accomplished.

Note that a few minutes of the demo were edited out of this video for some reason.

That wasn’t all for that WWDC. On Tuesday I gave a 10 minute presentation during Bud’s science session about Mathematica on Mac OS X, detailing how we utilize various OS features. This went more smoothly for me as I had actually been preparing for it for a few weeks. Later that week I spoke about Mathematica for a minute or two in Ernie’s 64-bit session. I went from participating in zero sessions my first four WWDC’s to three sessions in 2005, back to zero sessions every year since. Perhaps that was my 15 minutes of geek fame (actually, the total time I spent on stage was almost exactly 15 minutes).

Last year I attended a reunion for the non-profit organization where I worked in college, ASP. A guy who I hadn’t seen in 8 years came up to me and asked me if I was in a Steve Jobs keynote a few years ago. “I thought that was you…”

Anyway, tomorrow’s 2009 WWDC keynote won’t be as exciting for me, though I’m sure it will still be exciting. I won’t be participating in the keynote. At least, if I am they haven’t told me yet. Always with the secrecy.

The Memorial Day Weekend

This Memorial Day weekend flew by. We got a lot accomplished, but not as much as we had hoped. I can’t help but feel partly responsible.

I had Friday and Monday off work, which is pretty rare. I celebrated by sitting around in my underwear until noon or so on Friday. I followed that up with my first post-marathon run, five miles easy. It went well. I had some tight muscles with a few aches, but no major injuries. I spent most of the afternoon mowing the lawn and doing other miscellaneous yard work. In the evening we went to Target to look at baby items.

Kickapoo mountain bike trails

Kickapoo mountain bike trails

Saturday morning I mountain biked at Kickapoo with Gene and Greg. I haven’t been there in a few months, so I wasn’t quite at the top of my game. The trails were a little muddy, but not nearly as bad as they could have been. Gene and Greg took me onto the “new” section of trail, which was absolutely ridiculous. Most of the trail is challenging, but this new part was downright sadistic. The single track trail was very narrow (18″?), cut into the side of a very steep hill, slanted downward, with tight and steep switchbacks. I made it through okay. Actually, it was dangerous. There, I said it. The rest of the trail pales in comparison.

Fields

Many unplowed fields across Illinois and Indiana had bright yellow flowering plants (which I assume are weeds) this weekend.

Saturday afternoon we drove to Indianapolis. First we visited Babies-R-Us to look at cribs and other various items. Next we went to Aimee & Brett’s house to pick up a few baby items they wanted to give us. Then it was on to Aunt Jeanne’s house to meet up with the family. Finally, we went to Zionsville to my uncle Dennis and (new) aunt Sally’s wedding reception (the main event of the trip). The reception went well, and it was great to catch up with the cousins, aunts, & uncles. Sally is a wonderful woman and she and Dennis seem very happy together.

Dennis & Sally

newly married Dennis and Sally

Sunday morning I got a little cleaning done in the office, but not as much as I (or Melissa) hoped. It’s never as much as I hope. I also worked for a little while setting up one of my old computers for my grandparents in Bismarck. After lunch we went swimming (our first family swim). Then we went shopping for new stoves. We’ve been on the brink of getting a new stove since Christmas. I think it’s finally going to happen this week.

Memorial

Danville National Cemetery at the VA on Memorial Day

Monday morning I drove over to Danville for the Memorial Day 5K race at the VA. It rained during the race, which kept the temperature somewhat cool, but also made the roads a little slick. Right from the start a large pack of high schoolers shot out to the front. I tagged onto the back of the pack, maybe 12-15th position for the first half mile. I was running way too fast and I knew it. What were all these jokers doing?

Entrance to the VA on Memorial Day

The 5K course followed the road around the VA, which was lined with flags for Memorial Day.

The second half mile I slowed down, but all the kids around me slowed down even more. I moved my way up through the pack. I reached the first mile in 5:36. I ran mile two in 5:50, by which time I had moved into 4th place. My heart rate was through the roof and it was starting to wear on me. The last guy I passed tagged along behind me and stayed with me for the third mile. He passed me back with around a quarter mile left. My last mile was 5:55 and I finished in 5th place (out of a record 398 participants), 1st in my 30-39 age group. I was worried I might still be feeling the effects of the marathon eight days prior, but my legs felt perfectly fine. It was a tough race, mostly because I started too fast (didn’t I just learn not to do that?). Well, racing a 5K is a world apart from racing a marathon. Incidentally, my heart rate hit 194 in the last tenth of a mile, which I believe is the highest I’ve ever recorded (my theoretical max heart rate is 195).

After the race I went to visit my grandparents. They’ve been having some health problems recently and I hadn’t seen them in a few months. They seemed to be doing fairly well, all things considered. My dad and I worked to get their computer problems straightened out. Then we had a pizza lunch before hitting the road. I drove my dad back to Danville in the new car, which he seemed to enjoy.

Finally we spent this evening at a cookout with Cara & John at our house. John got a nifty remote controlled speedboat for his pond. Good times.

The Tale of Two Marathons

I found my performance at the Illinois Marathon to be unsatisfactory. I enjoyed terrific preparation, but suffered from poor execution. I physically recovered fairly quickly so I decided to do something unprecedented (for me) and run another marathon only five weeks later. This marathon would be different. It had to be. I had a plan. And I was going to stick to the plan come hell or high water.

Melissa and I drove up to Rockford, IL on Saturday. The Rockford Marathon was quite a bit smaller than the Illinois Marathon. There would be just a few hundred participants in the full marathon (as opposed to a few thousand), while several hundred more would run the half marathon. We battled heavy winds the entire trip. When we stepped out of the car at the packet pickup location I briefly forgot what month it was. In addition to the awful winds it was bitterly cold.

We stayed with Melissa’s sister, brother-in-law, and nephew on Saturday night. We had great fun catching up and playing with two-year-old Logan.

Logan

The next morning I awoke a little before 5 a.m. I immediately checked the temperature, which read 35˚. This was going to be a long morning. I crept downstairs to eat a Clif Bar, two cinnamon brown sugar pop tarts, and a banana. Normally before a race my stomach is very upset, but not this time. I felt perfectly calm. I felt no pressure. This was a good sign.

By the time we stepped outside I was pleasantly surprised to find very calm winds and the temperature didn’t feel nearly as cold as I anticipated. I was concerned that it might be too cold to wear shorts, but it wasn’t.

We arrived at the race right on schedule. After a quick trip to the porta-potty it was time to start.

I wanted to finish with a time faster than I ran at the Illinois Marathon, but that goal was really secondary. My primary goal for this race was to run negative splits. This is the term used by runners to refer to a race when the second half is run at a faster pace than the first half. Running negative splits is easier physically, but it’s much harder mentally. It takes a tremendous amount of discipline to pace yourself correctly in the early part of the race. I’ve been running competitively for 15 years and I’ve only been able to run negative splits in races just a few times… but these were my fastest races.

My target pace would be 7:15 per mile with a goal finishing in 3:10:00. I wanted to start the race around 7:25 per mile. I positioned myself 5/8 of the way between the 6:00 per mile sign and the 8:00 per mile sign. Before I knew it we were off.

Rob at start of Rockford Marathon

I wore a yellow shirt so Melissa could spot me along the course. Unfortunately, a few others must have had the same idea.

I started very easy. For the first few blocks people were moving past me like I was standing still. 1/2 mile into the race I began to worry. They can’t all be running too fast, can they? I felt like I was running way too slow. This can’t be right. The first few miles of the Illinois marathon felt easy to me, but they definitely didn’t feel slow. This felt both easy and slow. I breathed a sigh of relief as I passed the first mile marker in 7:24. It was exactly where I wanted to be.

The first part of the race absolutely flew by. I was concentrating on breathing as easily as possible and running as efficiently as possible to save my energy. Around mile six, content with my easy start, I decided to pick up the pace a bit to hopefully start running closer to 7:15 per mile. I left the group I had been running with, never to see them again. After mile five not a single person passed me the remainder of the race. I can’t begin to tell you what kind of a confidence booster that is. Incidentally, not a single person passed me in either of my previous two races. This streak can’t continue much longer.

Rob at mile 11 of Rockford Marathon

I saw Melissa out on the course around mile 11. She was kind enough to take the arm warmers I no longer needed. It was turning out to be an absolutely gorgeous day. Neither too hot nor too cold, it was perfect running weather.

By the half way point I had made up all the time I lost in the early miles. I was exactly on my 7:15 pace.

Rockford Marathon course map

Once the marathon runners split off from the half marathon runners I saw relatively few people. Most of the racers were in the half marathon. At several points in the last half of the marathon I would go minutes at a time without seeing another competitor.

I saw Melissa again at mile 14 after flying down a fairly steep hill. I wouldn’t go so far as to describe Rockford as hilly, but it’s far hillier than Champaign-Urbana. To my pleasant surprise, despite very little hill training, I handled the rolling terrain with relative ease.

Rob at mile 14 of Rockford Marathon

Nothing went even remotely wrong until mile 15 or so when I began to notice a blister between the first two toes on my left foot. I ignored it as best I could, but the pain became worse and worse. I began to dread every step. By mile 16 or 17 I was fairly certain it was bleeding. Everything else was going so well, I wouldn’t let this problem stop me. I ran through it and eventually blocked it out. After the race I discovered the very large blister had completely ripped off and my toes were quite raw. It will take a few days to heal, but I’m not worried.

I couldn’t believe how good I felt at this point in the race. Mile 16 & 18 were the two fastest miles I ran the entire race (mile 17 & 19 were good also, but they were slightly uphill). I kept going faster and faster.

A slight hiccup came just after mile 22 when the course went onto a multi-use path through the woods. I ran for nearly a mile without seeing a single course marker, volunteer, or competitor. I had no idea whether I was still on the course and it was beginning to really freak me out. Did I just run this well only to screw up now? Luckily I was still on the right path.

It was becoming harder and harder to maintain my pace. By mile 25 I cracked and could no longer hold my sub-7:15 per mile average. I still finished reasonably strong, but I definitely slowed down the last two miles.

Rob finishing Rockford Marathon

I crossed the line in 3:09:05. It was a 13 minute personal record for me. It was a Boston marathon qualifying time (the Ragfields are going to Boston). It was a negative split. Actually, I don’t know my exact 1/2 marathon split so I’m not certain. It was only 3-5 seconds different either way (which is fairly remarkable if you think about it). I guess it would be better to describe it as even splits.

I noticed when I crossed the finish line my timing chip didn’t cause an audible beep. It had caused a beep at all the checkpoints, but not at the finish line. This caused me to worry. I had just run a Boston qualifying marathon time, but if something went wrong with the timing system it may not have counted. I tracked down a race volunteer who was able to check for me, and indeed the timing system did not register me when I crossed the line. Fortunately, they got it all straightened out and my time does appear correctly in the official results (actually, it took two tries to get it right… but they got it right). The race timers were very helpful in getting the matter resolved.

Rockford Marathon finisher medal

Interestingly, since the marathon was so small (249 finishers), I ended up in 15th place overall and 3rd in my 30-34 age group. That was certainly unexpected.

So that was the story my 2nd marathon this spring, my 4th road marathon, my 5th marathon, my 9th marathon or beyond. I ran faster than I’ve ever run for such a long distance. I did it at a very even pace (only 28 seconds difference between my fastest and slowest miles, compared to a difference of 3:03 at the Illinois Marathon). I felt better than I’ve ever felt in such a long race. And with any luck, I’ll recover faster (the jury’s still out on that one).

I’ll leave you with a brief comparison of my performances in these two spring marathons.

Illinois Marathon Rockford Marathon
Time Split HR Time Split HR
Mile 1 00:06:51 06:51 151 00:07:24 07:24 145
Mile 2 00:13:47 06:55 162 00:14:48 07:23 153
Mile 3 00:20:38 06:51 166 00:21:59 07:11 156
Mile 4 00:27:23 06:44 168 00:29:20 07:21 156
Mile 5 00:34:08 06:45 168 00:36:45 07:25 158
Mile 6 00:41:04 06:55 170 00:43:51 07:05 159
Mile 7 00:47:56 06:52 171 00:51:00 07:08 161
Mile 8 00:54:53 06:56 169 00:58:04 07:04 159
Mile 9 01:01:38 06:45 173 01:05:11 07:06 160
Mile 10 01:08:27 06:48 174 01:12:22 07:11 160
Mile 11 01:15:28 07:01 176 01:19:38 07:15 158
Mile 12 01:22:23 06:54 176 01:26:48 07:10 161
Mile 13 01:29:15 06:52 178 01:34:03 07:14 164
Mile 14 01:36:07 06:52 177 01:41:11 07:08 165
Mile 15 01:43:10 07:03 179 01:48:18 07:06 167
Mile 16 01:50:33 07:22 178 01:55:17 06:59 168
Mile 17 01:58:18 07:45 180 02:02:29 07:12 167
Mile 18 02:06:09 07:50 180 02:09:28 06:59 169
Mile 19 02:14:31 08:21 179 02:16:30 07:01 172
Mile 20 02:23:15 08:44 176 02:23:33 07:02 170
Mile 21 02:32:05 08:49 176 02:30:43 07:10 169
Mile 22 02:41:53 09:47 169 02:37:46 07:02 172
Mile 23 02:51:19 09:26 166 02:45:06 07:20 172
Mile 24 03:00:57 09:38 164 02:52:10 07:03 174
Mile 25 03:10:38 09:41 164 02:59:38 07:27 174
Mile 26 03:19:59 09:20 166 03:07:04 07:25 175

My aerobic threshold is around 174 beats per minute. In the Illinois Marathon my average heart rate was 174 at mile 10. In the Rockford Marathon my average heart rate didn’t hit 174 until mile 24. My legs hurt as bad at mile 15 in the Illinois Marathon as they did at mile 25 in the Rockford Marathon. I just can’t get over the stark contrast between these two races when I had roughly the same level of fitness for both. If this doesn’t convince you to run even-to-negative splits in a marathon, I don’t know what will.

Many thanks to Melissa for her awesome support and wonderful photos.

The Frederick Marathon

After the 2003 Washington D.C. Marathon debacle, Melissa & I decided to run the Frederick Marathon in Frederick, MD (just outside of D.C.). It would be her first marathon (the debut) and my second (the redemption). This race was only one week after we planned to run D.C. so the change in plans didn’t really affect our training that much.

Neither of us had ever been to D.C. before, so we went there first to see the sights. The day before the marathon the sun was shining and the temperature was 70˚. We awoke the next morning for the race only to find rainy weather with a temperature of 33˚. And dropping. It’s always something.

The marathon was fairly small (452 finishers). As we lined up at the starting line the rain turned to snow, and it continued to shower us for the next four hours. The race started well. For the first 8-10 miles I was slightly faster than my target pace of 8:00 per mile (3:30 marathon pace) and I felt great, despite the cold and wet conditions.

Rob near mile 12 of Frederick Marathon

struggling with gel packet

Around mile 10-12 I tried to eat an energy gel packet handed to my by a race volunteer but I quickly realized my hands were too frozen to work properly. I couldn’t squeeze the packet hard enough to tear the top off. Not a good sign. A little while later I was looking down at the ground for a few seconds and a huge pile of snow fell off the bill of my hat. I hadn’t realized just how hard it was snowing.

Melissa near half of Frederick Marathon

This whole time I was learning the hard way that Maryland is much, much hillier than central Illinois. The Washington D.C. Marathon course was flat. This one, not so much. Around mile 16 we headed out of town into the country, where the hills were worse and the wind was howling. This was the absolute low point of the race, as the conditions were truly miserable.

I was slowing down considerably, but I felt okay until mile 21 or so when I completely bonked. Not good, but it was a whole seven miles farther than at Chicago. What is wrong with me? Can I not run a freaking marathon?

Rob at mile 24 of Frederick Marathon

I struggled the last five miles. I was soaking wet. I was freezing cold. My muscles were cramping. The race was really spread out at that point so there were no other runners around me. There were no crowds watching the race. I’m still not sure how I managed to keep going forward. I guess I knew that I would be even more uncomfortable if I stopped than I would be if I just kept going.

Rob at finish of Frederick Marathon

By the finish I was in no mood to run a full lap around the high school track before crossing the line. I mean it was right there, why would they tease us like that? I finished in 3:49:53. It was a half hour P.R. over my first marathon but I was still pretty disappointed. More importantly I was cold. Very cold.

I hobbled into the high school gym, where food and drinks awaited the runners. I could barely move my legs. I wanted to sit down on the floor but I was so sore I couldn’t bend my knees enough to even do a controlled fall. And I didn’t want to simply collapse. I was shivering. A volunteer took pity on me and mentioned that I could take a hot shower in the locker room. I was unable to get undressed so I just stood under the hot water with all of my clothes on. I’m pretty sure I had mild hypothermia.

Melissa at mile 26 of Frederick Marathon

What happened after that is kind of a blur to me. I remember having a difficult time finding Melissa, who finished a little while later. I remember wanting to put on warm, dry clothes, but they were all the way across the parking lot in our car and I could barely move. It was truly a miserable experience, though it still wasn’t as bad as the first marathon.

Frederick Marathon finisher certificate

Frederick in 2003 was the last road marathon I ran. I have since run a trail marathon (which also took place in a snow storm) and a few ultras. Frederick is still my P.R. In both of my first two marathons I was very unsure of my abilities and scared of the distance. Older and wiser, I’ve learned some lessons. I have a good feeling about Saturday.

The Washington D.C. Marathon

I registered twice for the Washington D.C. Marathon, though never ran it once.

My first marathon didn’t go well. Almost immediately I set out to redeem myself. A month or two after running the Chicago Marathon in October 2001 I began training for the inaugural Washington D.C. Marathon in March 2002.

I trained much better the second time around and set more reasonable goals. All was falling into place. After months of training I began to taper 2-3 weeks before the race. I went out for an easy 5 mile run with Melissa when out of nowhere I felt sharp pain in both my knees at the same time. I finished the run, but my knees still hurt. I took a few days off. Still hurt. Marathon day came and went but I stayed home, unable to run.

The best I could tell was I had patellar tendonitis that flared up. Eventually I found I could run if I wore Cho-Pat straps under my kneecaps. After 6-8 months I no longer needed the straps. The summer of 2002 was when I began to follow the strict rule of not running two days in a row.

During the winter of 2002-2003 I decided to give the marathon another go. This time Melissa wanted to run it also. We both signed up for the 2nd annual Washington D.C. Marathon. We trained together all winter through some nasty weather. A week or two before the race the U.S. invaded Iraq. Three days before the race (literally as we were packing our gear to head to D.C.) we received an email from the race organizers informing us the race would be cancelled due to security concerns. Oh, and they were keeping our registration fees.

What an ordeal.

In a bit of a panic at the thought of her first opportunity to run a marathon vanishing, Melissa immediately started searching for another marathon. Luckily she came up with a small marathon in Frederick, MD (just outside of Washington D.C.) the following weekend. So we immediately registered (as did many other former Washington D.C. Marathon registrants) and postponed our trip one week.

We never did get a clear explanation about the real reason the race was cancelled. We heard that the organizers had massive debt and they never intended to hold the race. Perhaps the war was a convenient excuse for them to take the money and run. As you can imagine this was wildly unpopular. In the end we were at least partially reimbursed, though I don’t remember by whom. It may have been our credit card company or it may have been the race organizers.

The Training Camp

This past weekend was my cycling team’s training camp in southern Illinois. We spent four days riding on some very hilly roads (particularly compared to the very flat roads of Champaign County) in what turned out to be some fairly nasty weather (much like last year).

Training camp

My cabin at Giant City State Park

The ride schedule was mostly the same as last year. About half the team went down a day earlier this year to get in one additional ride. We started out on Thursday from Giant City State Park and did a quick climb from Makanda up to route 51. This is a two mile long climb that got the heart pumping right away. On the way back down I hit 45.3 mph trying to keep up with fearless Jay. Last year on this same hill I only hit 39.1 mph.

Jay descends into Makanda

Jay descends like an animal

From there we headed to Bald Knob, the highest point in southern Illinois. This is the same climb we would be doing on Friday, so this was just a warm up. We intended to go nice and easy, but those intentions never seem to work out. We rode a litter harder than we planned, and probably a little harder than we should have.

I was pretty exhausted by the time we returned to our cabins in Giant City to clean up. We drove to Carbondale for dinner at the Italian Village, followed by some window shopping at closed bike stores, before picking up Dan who took the Amtrak train from Champaign. After returning to Giant City I slept for 10.5 hours.

Six grown men ogle bikes through the store window

a Carbondale drive up liquor store

Friday we rode to Lick Creek to meet the rest of the team members who were staying in cabins there. From there we rode over to Bald Knob again. The entire group was much bigger and rode much faster. I was pretty tired from Thursday’s ride, so it was tough just getting there.

At a gas station stop I made the mistake of taking too long to strap my little Flip video camera onto my bike and ended up missing the group as they rolled out. I had to chase for a couple miles, including the really big hill were the group split up. I caught up with several riders on that hill and a few of us hauled ass to try to catch up with the lead pack. We didn’t quite make it as they reached the Bald Knob climb before us and we picked our way through the remnants of that group on the way up the climb.

Training camp Friday elevation

Friday’s elevation profile

The remainder of the ride was much easier as everyone was tired by this point. We refueled afterward with a big dinner at the Giant City lodge, which, despite not having any vegetarian entrees on the menu, has a number of delicious sides, including wild rice, mashed potatoes, corn, salad, etc. After dinner I quickly fell asleep for 9.5 hours.

Saturday’s ride was 100 miles, going from Lick Creek to Golconda and back. At the start of the ride it was 50˚ and drizzling rain. The rain came and went all day, but the temperatures got colder. During one two minute stretch I was even pelted with pea-sized hail. We split into two groups. Given my fatigue from the previous two days (and the fact that I am supposed to be tapering for the marathon) I wisely chose to ride in the slower group. We faced a stiff headwind the entire first half of the ride. Despite the nasty weather we had a pretty good time. It was a tough ride, very hilly. The group would split up on the uphills they we’d come back together on the flats and downhill sections.

Training camp Saturday elevation

Saturday’s elevation profile

Half of our group chose to turn around at 37.5 miles rather than ride the full 50 to Golconda. The first 10 or so miles after we turned around were actually somewhat pleasant. Sure, I was soaking wet, but we had a good tailwind and as long as I kept moving I stayed plenty warm. Around this time the sun actually came out for about 30 seconds. Soon after came lighting, thunder, driving rain, hail, a drop in temperature, and a change in wind direction. We faced a headwind the rest of the way back.

After the ride I changed into dry clothes, munched on some snacks and chitchatted while we waited for everyone else to finish. Then we all packed up and headed over to the Giant City Lodge for a team banquet. Saturday was all you can eat fried chicken night at the lodge. This is going to sound crazy, but that’s actually what I ordered. I simply didn’t eat any of the chicken. The meal also had all you can eat mashed potatoes, corn, rolls, etc. Everyone placed the same order and huge plates of food were served to us family style.

Lodge

We awoke Sunday morning to temperatures in the mid-30s, howling winds, and damp roads. The ride was much shorter, but still challenging. We coasted down to Makanda then took turns climbing the two big hills heading out of the valley. One was long and gradual, the other was short and steep. I did five climbs before deciding my toes would fall off if I did any more.

The last descent of the last day of training camp

And that was it. Training camp was great fun. We had some tough rides in tough conditions. Most importantly, I don’t think it screwed up my marathon preparations. We’ll know for sure in less than two weeks.

The Forest Glen Maple Syrup

Today was the Maple Syrup Open House at Forest Glen park. The park holds this event each spring where they demonstrate how they make maple syrup and have a pancake dinner. I’ve run at Forest Glen four or five times this winter so I’ve been looking forward to this event for a while. When I told Melissa about it she was very excited, so we just had to go. And since my parents live somewhat near the park, and they love pancakes, we invited them to come along as well.

Melissa and I arrived a little early so we could get a short hike in before the pancakes. First we hiked to the observation tower.

Forest Glen observation tower

Forest Glen observation tower

Forest Glen observation tower

that’s a lot of stairs

Melissa & Rob at Forest Glen observation tower

Melissa and Rob at the top

View from Forest Glen observation tower

view of the forest

Melissa descends observation tower steps

Melissa descends the tower’s many stairs

Next, we continued on the path down the hill towards the Vermillion River. We passed the beloved backpack trail on the way. The water in the river seemed high and fast-moving.

Crooked tree shadow

a crooked tree casts a shadow on the backpack trail I usually run

Vermillion River

the Vermillion River looked high

Melissa & Rob at Vermillion River

Melissa & Rob

Noon was approaching, and this was the time we agreed to meet my parents for pancakes, so we hiked back up the hill and drove over to the Maple Syrup Open House area. We got in line a few minutes after noon. My parents arrived shortly thereafter. We were having a good time, but we couldn’t help but notice the line wasn’t moving very quickly.

The line for pancakes and maple syrup was long

the line for pancakes was long

It took us right at two hours to reach the front of the line, get our pancakes, and sit down to eat (what became) a late lunch. The pancakes were good. The syrup was good. I’m not quite sure it was worth waiting two hours in line, but at least the weather was beautiful.

After lunch Melissa & I walked a short distance to the recreated pioneer homestead, where the syrup was made. They collected sap from 400 or so maple trees in the park all winter. Then they heat it up to evaporate away most of the water, leaving just the sugary syrup behind.

Homestead

one of the pioneer homestead buildings

Maple

they collected maple sap in buckets and bags all winter long (old photo)

Maple sap drips into a collection sack

maple sap drips into a collection bag

Maple syrup building at Forest Glen

this building housed the evaporator machine which converted the sap into syrup

Evaporation device converts watery maple sap into syrup

the evaporator was heated by a wood stove

Melissa in front of the evaporator

Melissa watches sap become syrup

The Land Between the Lakes Trail Race

I’ve been doing a lot of running lately in preparation for the Illinois Marathon in four weeks. The past few weeks have been my peek mileage and I’ve been pretty tired. These isn’t really the best time for a race, but I didn’t let my fatigue stop me. I really wanted to do a half marathon at some point. I found out several weeks ago that many of the local Buffalo trail runners were heading to Kentucky to run the Land Between the Lakes (LBL) trail race this weekend. LBL has four different distances, the shortest of which is 23 KM (a little over a mile longer than a half marathon). Perfect.

The race is about 4.5 hours away from Champaign-Urbana, so we made it a road trip. I rode down there with Andrew and Sandra. We followed Cousin Don, Brian, Juan, & Natanya in another car. Once there we met Jeff, Chris, Wes, & Becky, who drove another car. Just before the race we met up with Marla, who came late Friday night. Jeff’s sister lives 10 minutes from the race start/finish in Grand Rivers, and she was kind enough to let many of us sleep at her house the night before.

This area of Kentucky was hit pretty hard by an ice storm at the end of January. Many, many trees were knocked over or broken in half. The forest was pretty messy. Fortunately, with the hard work of many volunteers, the 11 mile LBL canal loop trail was cleaned up and ready for the runners.

Ice storm damage

Ice storm damage
Ice storm damage

We awoke early on race morning to make it to the starting line by 7 am. The longest event is 50 miles (yes, fifty miles), which takes a long time to complete, so the race started early. It had already been drizzling for a few hours and it wasn’t supposed to let up anytime soon. This was going to be interesting.

I squeezed my way up towards the front of the starting line. I was running the shortest race and I assumed/hoped I was one of the faster runners there. We started off with 1.75 miles of paved road before we reached the trail. The runners spread out pretty quickly. One guy shot way out ahead of everyone else. Then there was a chase group of three or four. Then I was in the next group of three or four. My first (paved) mile was quick, but not unreasonable.

I counted the runners ahead of me and figured I was in 9th when we hit the trail. The trail immediately went under the bridge on the road where we started. As I passed beneath it I heard the familiar calls of “Buffaloooooooooo.” This is what the Buffalo trail runners yell when they see other Buffalo on the trail. Some of the others running the longer races spotted me from up on the bridge as I ran beneath them.

The early miles were pretty easy. The trail had a lot of twists and turns but not many hills at this point. There was a little bit of jockeying for position as I moved from 9th to 8th to 7th to 8th to 9th to 8th and so on.

LBL trail race map

The trail was in pretty good shape, though there were clearly some spots that were messed up by the ice storm. In a number of places a tree along the side of the trail had blown over away from the trail and where it was uprooted there was a big hole that required fancy footwork to get around. The steady drizzle made the entire thing just a little bit muddy, but it wasn’t as bad as it could have been. My shoes were never in any danger of being sucked off my feet.

Around miles 9 and 10 (I think) there were three or so fairly big hills, which were steep enough to cause me difficulty, but not so steep I couldn’t run up them. I really struggled with these hills. I tried to make up for my super slow uphills by really pushing the flats and the downhills, but I fell back to 10th and I was losing ground at this point.

I regained a little bit of ground after the hills relented. By the time I finished the 11 mile trail loop I moved back up to 9th. The aid station volunteers informed me that I was 5th. Curious. This was the point where the 23K runners left the trail. The marathon runners ran one more loop, the 60K runners ran two more loops, and the 50 mile runners ran three more loops. This placing discrepancy must have meant that four runners ahead of me (and I was running pretty fast) were racing at least twice as far as me, or maybe farther. Impressive.

I was able to pick up the pace again once I was back on the paved road, but despite running my last mile in 6:40 one guy still passed me. I assume this means I finished 6th, though I never got any confirmation on that. I just based that on what the aid station volunteers told me. It was a solid race for me. I wasn’t thrilled with it, but I wasn’t disappointed either.

Finishers keychain
My keychain finishers award

After the race I was soaking wet, so I headed over to Cousin Don’s van (the Patti-wagon) to change into dry clothes. Juan had a really good race, because I missed him finishing while I was changing my clothes. I grabbed my camera and made it to the finish area just in time to watch Andrew sprint across the line in a photo finish. The other guy barely edged him out.

Andrew sprints to the line
Andrew sprints to the finish line

Andrew post-sprint
Andrew looks tired after his sprint to the finish line

Natanya finished a few minutes later as 2nd place female. Apparently her socks slid down during the race and her shoes rubbed her heels raw and bloody. It looked pretty painful.

Natanya was the 2nd female to finish the 23K
the race director awards the 2nd place prize to Natanya

Heel problems
Natanya had a sock snafu that left her heels raw and bloody

Sandra just ran a tough trail marathon last weekend and she wasn’t quite sure whether some pain in her foot would allow her to complete this race. Not only did she finish, she did so with a great big smile.

Sandra finishes the 23K with a smile

Sandra finishes with a smile

Now that all the Buffalo 23K runners were finished we headed indoors for some delicious vegetarian minestrone. Andrew accidentally locked his keys in the car before the race and asked around about who could help him get into it. A firefighter showed up with some tools, and after much work they finally go it.

Locked out
Andrew and Juan help a Grand Rivers firefighter break into Andrew’s car

We were pretty cold and wet so we didn’t stick around long enough to watch the other Buffalo finish their longer races. They did call while we were driving back to Champaign-Urbana and apparently everyone made it alright. Another successful race for the Buffalo of central Illinois.

The Insight

In 2002 Melissa & I bought our first new car, a Honda Insight. The little two-seater hatchback has a hybrid 3-cylinder gas/electric engine. The funny aerodynamic shape has the lowest coefficient of drag of any production car available in the U.S. (at least at the time of its introduction, and possibly still). It also has the lowest emissions and best fuel economy of any car, then or now. This thing is great. I would say that it was ahead of its time, but I think it would be more accurate to say all other cars are behind their time.

Buying Iris

Melissa named her car Iris, after her favorite flower. It was originally our second car, so the lack of a back seat wasn’t a problem. When we moved to Nicaragua we got rid of my Civic and since we’ve been back in the U.S. we have only the Insight.

Melissa with Iris

There have been a couple of times were it would have been nice to have a back seat (e.g. picking up people from the airport), but we’ve always managed to get by.

As you may or may not already know, Melissa & I are expecting a baby Ragfield this summer, so the lack of a back seat in our only car isn’t going to work for much longer. That’s why we’ve decided to sell our beloved Iris and replace her (probably with a much more luxurious, yet fuel-economy-inferior Toyota Prius). We test drove a Prius on Valentine’s Day… it was very nice.

So I’ve decided to pay tribute to Iris, who has been like a member of the family the past seven years…

Iris in the Smokies

Iris in the Smoky mountains

Iris packed for vacation

I still don’t know how we were able to fit all of our clothes, food, camping gear, and two bicycles completely within the tiny car.

Rob a little cramped in a very full Iris

Okay, so it may have been a little cramped in there

Iris packed up to move

Here she is packed up to move out of our old house

Iris with Christmas tree

Here she is with a Christmas tree

Iris with skis

and skis

Good fuel economy

We’ve had good fuel economy

Not as good fuel economy

and terrible fuel economy

That’s a pretty accurate range of the real world fuel economy we saw with Iris. In the summer it would regularly be in the high 50’s to low 60’s. In the winter it would regularly be in the mid-40’s. The seven year average is just over 50 miles per gallon. In the summer of 2004, when I was bicycling nearly everywhere and Melissa was in Nicaragua, I spent around $20 on gas the entire summer.

One of the great things about this car is the instantaneous fuel economy gauge (the Prius has this too) that shows you exactly how good the gas mileage is at any given time. This has helped me learn how to drive to best conserve fuel. Surprise, surprise, the most important thing to do is slow down. But it’s a little more complicated than that. It takes a light touch to get it just right. You have to connect with the car and feel how it reacts to the slightest changes.

Even with all the things we love about this car, she’s not perfect. I found her lack of cruise control frustrating at times, but I made due. How does a car produced in this millennium not have cruise control? Also, the gas tank is on the wrong (right) side of the car (now I’m just nitpicking, but seriously, all gas tanks should be on the left/driver side of the car). Fortunately, the Prius remedies both of these shortcomings.

We’d love for Iris to go to a good home, so if any of you are even the slightest bit interested in buying her, let us know soon.

Iris at night

Good night

The Domestic Travels

I enjoy traveling, and I love geography, so I was very excited when a friend of mine recently mentioned this website that allows people to track their travels, county by county, across the country. I spent a couple hours entering my data (thanks to some helpful information from my dad regarding trip routes from my childhood) and now I have this wonderful map.

Click to enlarge

I categorized the counties thusly:

In cyan (light blue) are places where I’ve traveled in an automobile (or other motorized land vehicle). These include:

  • Seattle/Olympic National Park
  • Silicon Valley
  • Grand Canyon
  • El Paso/Juarez
  • Dallas
  • Galveston
  • New Orleans/Baton Rouge
  • Nashville
  • Des Moines
  • Minneapolis
  • Green Bay
  • Sault Ste. Marie
  • Cedar Point/Sandusky
  • Washington DC
  • Wilmington, NC
  • Hilton Head, SC/Savannah, GA
  • Hawaii & Kauai islands
  • Most of Illinois, Indiana, and central Appalachia
  • Everything along the way to these places

In magenta (light purple) are places where I’ve been bicycling (and probably travelled by auto also). These include:

In dark blue are places where I’ve been, but only in the airport (i.e. I had a layover there). These include:

  • Los Angeles
  • Phoenix
  • Salt Lake City
  • Kansas City
  • Atlanta
  • Miami
  • Honolulu

It’s exciting to remember all the great places I’ve been, and just as exciting to think about all the places I have yet to explore. I’ve still never set foot in 19 states:

  • Maine
  • New Hampshire
  • Vermont
  • Massachusetts
  • Rhode Island
  • Connecticut
  • New York
  • New Jersey
  • Delaware
  • Alabama
  • Nebraska
  • South Dakota
  • North Dakota
  • Colorado
  • Wyoming
  • Montana
  • Idaho
  • Nevada
  • Alaska

I’ve got places to go. Hopefully I will keep the map updated along the way.