Monday, January 25, 2010

This week I begin a 18 week training program for the Bayshore Marathon. The Bayshore Marathon is a one day event that consists of a 10K (6.2 miles), Half Marathon (13.1 miles), and Full Marathon (26.2 miles). The marathon is an out and back course along the shores of the Grand Traverse Bay.

For this race I will be using Hal Higdon's Intermediate Training Program. This program consists of five training runs per week, with a range of 24 to 43 total miles each week. For my first marathon I trained using the Novice Training Program. Even though I was happy with the results, I chose the Intermediate Training Program because I wanted something more challenging.


Links:
Bayshore Marathon http://www.bayshoremarathon.org/
Hal Higdon's Marathon Training Guide http://www.halhigdon.com/marathon/Mar00index.htm
posted on Monday, January 25, 2010 4:46:07 PM UTC  #    Comments [0]
 Wednesday, December 02, 2009

Today I registered for my second marathon (26.2 miles), the Bayshore Marathon. This race will take place in Traverse City, Michigan on Saturday May 29, 2010.

For this marathon my goal is to complete in 3:30 (hh:mm). That's an average of 8:00 (mm:ss) per mile. Which is still a ways from getting me a spot in the Boston Marathon, but would be a 30% improvement over my first marathon.


Links:
Bayshore Marathon http://www.bayshoremarathon.org/
Boston Marathon http://www.bostonmarathon.org/
posted on Wednesday, December 02, 2009 1:16:34 AM UTC  #    Comments [0]
 Thursday, November 26, 2009

Today I ran my first Detroit Turkey Trot. I chose the 10K (6.2 miles) event, and completed it in 47:47 (mm:ss). For the second time this year I beat my personal record for a 10K race. This time my improvement over my previous record was 6:56 (mm:ss), a little better than one minute per mile. A nice improvement for a 6 month period.

As for the event, it was really exciting to run with close to 15,000 other runners through the streets of Detroit. I liked the way that both the 5K and 10K runners started together, split up about 2 miles in, and then re-joined to share the same finish line under Cobo Hall. It was also really cool to see so many cheering people lined up along the streets of the course. Although, I'm sure that most of the crowd was there for the Detroit's Thanksgiving Day Parade.

From what I have heard, the organizer's of the event did a couple things different this year. A change that I liked the most was the ability to pickup my race bib and shirt before the event at one of several local Flagstar Banks and New Balance stores. This was very convenient and saved me from having to either make a trip down to Detroit before or deal with a large crowd on race day.

Another change that I liked, but that did not turn out so well, was the ability to pre-purchase a parking pass when I registered for the event. Three days prior to the race I receieved an email stating that the parking passes were mailed out. If for some reason I did not receive the pass, no worry my name would be on a list. As luck would have it, the pass never came in the mail and when I arrived at the designated lot, the attendant had no list. From what the parking attendant told me, I was not the only one who had this problem. In retrospect, it would have made more sense to me to pass out the parking passes when I picked up the race bib and shirt verus mailing them out. Maybe next year the organizers will have this problem solved.


Links:
Detroit Turkey Trot http://www.theparade.org/turkeytrot/
posted on Thursday, November 26, 2009 7:36:47 PM UTC  #    Comments [0]
 Monday, October 05, 2009

Today I ran the Brooksie Way 1/2 Marathon (13.1 miles) for the 2nd consecutive year. My official time was 1:52:09 (hh:mm:ss), which was 23:26 (mm:ss) faster than my first. This is also a personal best for me with a near 18% improvement over last year's time.

The Brooksie Way is a challenging race that can catch runners off guard if they don't know the course. The first six and half miles are relatively flat and downhill, so it is easy to start off too fast. Then the course makes an abrupt change and turns into about four miles of continuous hills that can seem like they will never end. But if you can save for the energy for the end, there is a nice two mile mostly downhill stretch to the finish. This is my favorite part of the course because I can make up some of the time I lost on the hills and finish strong.


Links:
Brooksie Way Half Marathon http://www.thebrooksieway.com
posted on Monday, October 05, 2009 1:25:29 AM UTC  #    Comments [0]
 Sunday, August 23, 2009

Today I ran the 10 Mile Race at the 2009 Crim Festival of Races. My official time was 1:23:33 (hh:mm:ss), which was 34:35 (mm:ss) faster than my previous record. This is a personal best for me with almost a 30% improvement over last year. I am definitely pleased with my results.

The Crim is one of those events that I look forward to each year. It attracts thousands of runners, yet still maintains a small town feel to the event. I also appreciate how the Crim has become a tradition for the city of Flint and has been held every year since 1977.


Links:
Crim Fitness Foundation http://www.crim.org/
posted on Sunday, August 23, 2009 1:23:55 AM UTC  #    Comments [0]
 Monday, May 18, 2009

Today I ran my best 10K race (6.2 miles) at the West Bloomfield Rock and Road. My official time was 54:43 (mm:ss), which was 8:15 (mm:ss) faster than my previous record. Almost a 15% improvement in the span of one year.

This was my second year running this race, and I will probably run it again next year. I like this course because it is a mixture of roads, hilly trails, flat trails, and grassy hills. Plus it always seems to rain a day or two beforehand.  So the opportunity to get some mud on your shoes and legs are pretty good.

posted on Monday, May 18, 2009 1:22:36 AM UTC  #    Comments [0]
 Sunday, April 05, 2009

Today I completed my first marathon (26.2 miles) with a time of 5:03:36 (hh:mm:ss). Not quite the original estimate of 4:45 (hh:mm) I made back in December. But when I consider that less than 1% of the population ever completes a marathon, it is something I can be proud of.

To train for my first marathon I chose Hal Higdon's Novice Training Program. The program is 18 weeks long, consisting of four training runs a week, ranging from 15 to 35 total miles per week. This was the first time I used any kind of program to train for an event. My half marathon training program was more of a just run as much as you can and as often as you can system. Overall, I liked having a schedule. It helped prevent me from over training in the first weeks, and under training in the final weeks.

The hardest part of my marathon training was the time of year I chose. Michigan had some record setting snow fall this winter, many sub-zero degree days, and I am an outdoor runner. Fortunately, I spent twelve years living in Fairbanks, Alaska and have experienced much worse weather conditions. But it still takes a lot of dedication to get up on a Saturday at 5:00AM, with three inches of fresh snow on the ground, -10 degrees Fahrenheit (-25 if you include the wind chill factor), and go out for a 15 mile run.

Despite the early reports of bad weather (rain and a couple inches of snow), race day was beautiful. It started out around 30 degrees and reached a high of 50 degrees with lots of sunshine. The course was a mostly flat, out and back run along Hines Drive, with a start and finish at Dearborn's Ford Field Park. There were aid stations every few miles with water, Gatorade, and GU Energy Gel. If you like a marathon that is somewhat secluded and feels more like a run through the park, I would recommend it.

In the end, what helped me the most with my first marathon was having a running partner, and an awesome group of running friends. If I had tried doing this on my own it would have been far too easy to skip a training day just because it was cold outside or just because my legs were sore. But when you have someone to train with, well it's not as cold out, and the pain is only half as bad. So you get up and do it, because your friend probably feels the same and needs your support.

Now that my first marathon is done, the big question is would I do another? YES. My plan is to do some smaller races over the summer (10Ks and half marathons), and find a marathon for the fall. Right now I am signed up for the half at The Trail Marathon on April 26, 2009. It’s a tough course with a lot of hills, so I don’t expect a PR (personal record). But it will be a lot a fun. :)


Links:
Hal Higdon's Marathon Training Guide http://www.halhigdon.com/marathon/Mar00index.htm
Martian Marathon http://www.martianmarathon.com/
Trail Marathon http://www.trailmarathon.com/
posted on Sunday, April 05, 2009 3:04:29 PM UTC  #    Comments [0]
 Sunday, December 14, 2008

Just the other day I got burned by what I consider a rookie mistake. I was working with a Visual FoxPro application (compiled as a multi-threaded DLL) that records application events to a Visual FoxPro table. To limit the size of the log table, the application re-used records after 500,000 events by updating the oldest record instead of adding new records.

As a general rule I know that I should always use a SELECT command before performing any command or function that processes a work area. For example, in the following sample code the SCATTER command is used to copy data from the current record to an array. Because this command processes the current work area only, I should always select the desired work area first.

* create a cursor with a single record
CREATE CURSOR "CURSOR01" (character1 C(10))
INSERT INTO "CURSOR01" (character1) VALUES("VALUE01")

* create another cursor with a single record
CREATE CURSOR "CURSOR02" (character1 C(10))
INSERT INTO "CURSOR02" (character1) VALUES("VALUE02")

* before calling the SCATTER command, select the work area
SELECT("CURSOR01")
SCATTER NAME loValues

* this should display "VALUE01"
WAIT WINDOW loValues.character1

The exception to this rule is any command that has an IN clause or alias parameter. For example, in the following sample code the REPLACE command can safely be used without selecting the desired work area first.

* create a cursor with a single record
CREATE CURSOR "CURSOR01" (character1 C(10))
INSERT INTO "CURSOR01" (character1) VALUES("VALUE01")

* create another cursor with a single record
CREATE CURSOR "CURSOR02" (character1 C(10))
INSERT INTO "CURSOR02" (character1) VALUES("VALUE02")

* this should display "CURSOR02"
WAIT WINDOW ALIAS()

* change the value in CURSOR01 cursor
REPLACE character1 WITH "NEWVALUE" IN "CURSOR01"

* this should display "NEWVALUE"
WAIT WINDOW CURSOR01.character1

In this particular situation, I was using a LOCATE command without specifically selecting the work area first. In an application compiled into an EXE, executing the LOCATE command when the current work area is blank would cause an Open File Dialog similar to the one below to appear.

However, in an application compiled into a DLL, the LOCATE command appears to be ignored if the current work area is blank. An error does not get thrown and the program simply executes the next line of code. :(

Fortunately, I was able to track down and fix the problem quickly. I'm sure that this is one of those mistakes that we all make at one time or another. I'm just hoping that by blogging about it, I will be less likely to make it again {g}.

posted on Sunday, December 14, 2008 8:35:47 PM UTC  #    Comments [0]