Welcome to my blog, a little place on the internet that I write about various Microsoft Technologies (Technology category and sub categories) and my quest to become an Ironman in 2010 (Fitness category). This is my 3rd, and longest running attempt at blogging. My first blog, part of my DotNetNuke install ran from 2004 until 2005, in which I had maybe 10 posts. My second blog was internal to my employer, but I eventually moved all of the content to this, my 3rd blog, and have been posting pretty regularly since the end of 2006. My ongoing inspiration for blogging, is Scott Hansleman’s blog, which I started reading sometime in 2004. While Scott’s blog is my inspiration, I have not gotten to the point of putting out the same level of quality that Scott does. My blog has been a place to store interesting information online, for me to reference in the future by googling, binging my site. I find myself posting to Twitter allot of stuff that would have normally ended up on my blog as short posts, so hopefully I’ll be able to post higher quality content going forward. It’s definitely a work in progress though. If you look at my Conference Notes you’ll see a mix of raw notes and somewhat edited posts mixed together. Tech I am an 8 year veteran of .Net and related Microsoft Technologies and currently a Senior Software Engineer at Terso Solutions, a wholly owned subsidiary of Promega Corporation. I am responsible for just a little bit of everything at Terso, from participating on the Scrum team as a architect, developer, tester and business analyst, to helping out with the management of Terso’s backend infrastructure. I am an active member with the Madison .Net Users Group, which meets on the first and 3rd Wednesday of each month at Herzing College on Madison’s east side. The first meeting is your typical one person presentation on a given topic. The second meeting is an open forum where anyone can come and talk to anyone who will listen. If you a a Microsoft Developer, or any type of technology professional, I encourage you to check us out. I enjoy living on the cutting edge of technology, and am constantly looking for new technical solutions for business problems (maybe too much so). If you know where I can find my dream job, let me know ;)  Picture Source: Scott Hanselman’s Blue Badge Post Non-Tech I live in Oregon, just south of Madison with my my very lovely and understanding wife Jennifer, and our two feline friends Candy and CJ. My wife uses the same picture below on FaceBook, so I shouldn’t get into to much trouble posting it here.  |  | | My loving and supporting wife | CJ on the left and Candy on the right |
In 2010, I will be training to compete in Ironman Wisconsin (ImMoo) as part of the Endurance House becoming an Ironman team (paid training program). I started in Triathlon in 2009 with the goal of gaining experience for ImMoo. I also play roller hockey when I have the chance, and played a little bit of recreational Ice Hockey while I was going to school. I’ve done paintball and airsoft in the past as well, and spent 7 years playing Laser Storm laser tag across the country.
Today I competed in the Peregrine Charities Olympic Distance Tri, the last race of my 2009 season. I hadn’t done any research into the race, such as previous years results or checking out the elevation, so I was pleasantly surprised last Friday when I finally got around to seeing that it’s a flat fast course. According to MapMyRide.com, there was around 200 feet of climbing, compared to around 500 feet of climbing at the Capital View Tri, my first race of the season. The race was very well organized, and started out with an informational e-mail sent out on Wednesday. I really like getting a communication the week of the event, as it actually makes you think the race director is working. All bikes had to be checked out by a on-site mechanic the day before, and they also put the race number on. With many first timers coming into the sport of triathlon, I think this is a really good idea. We also got to check our bikes in the day before if we wanted to, and I took advantage of this. Pre Race Transition was open from 6:00am to 7:15am with a race start of 7:30. The transition area seemed a little cramped, and I feel they could have opened it up a little bit more. Another option would be to use assigned spots, as everyone was trying to fit into the spots closer to the transition exit, with more openings further away. Even though there were only about 115-120 people starting the swim (includes some relay teams), we had a wave start due to the narrow entry into the water at the boat launch. This was another chance for a small improvement. The elite men (about 10 athletes) and women (4 athletes) got their own waves, while I was in wave 3 with about 40 people. Combining the elite men and women, and shorting the time between waves from 4 to 2 minutes would allow more waves and less congestion at the start. Swim The swim was 1 mile, out and back. Thankfully they had a rope line all the way out so that you didn’t accidently drift into on-coming swimmers. It also made it easier to site by just checking your position to the rope line when you breathed. Of course it wasn’t a straight line, so you still had to do some straight ahead sighting. I had a goal of 24 minutes for 1500m, but the swim was 1600m, so my time of 25:50 was pretty close. T1 This was the closest swim to bike transition, so my T1 time was going to be (hopefully) a lot less then my previous three (of course this benefit was not limited to me). I ended up with a 2:13 T1, which was still one of the slower times, but I was only about 1 minute slower then the average. Bike Starting out on the bike, I had to spend some time getting my gloves on. I decided to put my gloves on, after I got on the bike to save on T1. This was the first time I did this, and had put them on the end of the aero bars, which could have worked better. I think I’ll attach them a different way next time. There was a stiff south/south west wind of 10-15 mph, which gave us a nice tail wind starting out (about miles 2-6). I averaged around 25mph, but in hind sight, I should have pushed it a little harder with that tail wind. After the long north/south portion, we had some east/west riding, which wasn’t too bad. Again, riding west, I could have pushed it a little harder. Coming back into park we were shielded from the wind. I ended up passing one rider, but backed off from passing a second as I felt it really wouldn’t help my time that much and I wanted to be fresh for the run. My bike time was 59:43, which met my goal of finishing under an hour. T2 T2 was the same deal as T1, slower then most people, but not as bad as the past. I probably lost 45 seconds in T2, part of which was grabbing my amphipod belt for hydration. Run I started out around a 7 minute/mile pace, and was able to maintain that for most of the run. I ended up with a 6:50 min/mile pace and a run time of 40:59, which was just a touch off my 40 minute goal. The run course was almost completely flat, with just a few very gradual slopes. Post Race Thoughts My final time was 2:10:05, and I pretty much met my time goals, but came up short on my other goals. One of my major goals was to work on my transition times. Considering this is a goal, I’m ashamed to say I just haven't put in the time to practice these. I really should, I know I should, and hopefully next year I will. I think I will go watch some triathlon’s next year and see what other people are doing different. I have some good ideas, but seeing them executed by others will help reinforce them I think. My second major goal was to not leave anything on the course, give it my all and really put forth a race effort. The wind on the bike threw off what little aggressive pacing strategy I had. I also started to feel a little gassed around the 1/2 mile mark into the run which made me back off just a little bit. Looking back, I think I could have pushed it harder with the tail wind (riding north and west), and picked up my run pace a the 3 mile turn around point instead of between mile 4 and 5. This was my last triathlon of the season, as I don’t want to bike in the cold, and I don’t think there are many in the area left. I will try to fit in some running races, such as the Berbee Derby 10K on Thanksgiving. I’m thinking about shooting for a 6:30min/mile pace for that race. Final Results (Online Results) | | Time | Overall Place | Overall Pct | Age Group Place | Age Group Pct | | Swim | 25:52 | 23 | 20.6% | 5 | 29.3 | | T1 | 2:13 | | | | | | Bike | 59:43 | 24 | 15.5% | 5 | 26.8 | | T2 | 1:20 | | | | | | Run | 40:59 | 28 | 26.6% | 3 | 29.3 | | Total | 2:10:05 | 24 | 20.8% | 6 | 36.6 |
While trying to adjust the memory of a VM from 512MB to 256MB, my VM entered an endless BSOD reboot cycle. Background: - Upgraded install of VMServer 2.0.1
- Brand new Windows Server 2008 64bit Guest OS (Server Core)
- Started out with 512MB of ram for the guest. Installed OS, renamed computer, joined domain
- Shut down the VM and adjusted the memory
Tried all safe mode options, and would always get a Stop code of 0xD1 for ACPI.Sys, DRIVER_IRQL_NOT_LESS_OR_EQUAL. Remember to press F8 to get to the windows boot options menu which allows you to disable automatic restart, which will let you examine the stop screen in detail. I did quite a bit of searching but could not come up with anything for how to resolved this. I even stopped searching for VMWare Server specific stuff and just searched on the stop code. Finally I shut the VM down and changed the memory back to 256, and it finally worked. So I went from 512MB to 256MB, failed, back to 512MB, failed, and then back to 256MB and it worked. The only thing I can think of was that the memory reconfiguration was not successful behind the scenes in VMWare. I’m not all that comfortable moving forward without a definitive solution, but it will have to do for now.
So after much debating, reading, and research, I acquired my new Tri Bike, an Argon 18 E-114. I picked it up used off of the Slowtwitch classifieds, and was a little worried conducting such an expensive transaction, but everything worked out in the end. I had it tuned up at Machinery Row Bikes, which included new cables, new chain and a new cassette. The cassette was a change from an 11-23 to a 12-25, which is a little nicer for the hills, and this required a new chain. I’ve done a couple of spins on the trainer, and had the first real road ride tonight. The seat slipped back on me, but other then that, it felt pretty good. There will be a period of adjustment going from a road bike to a tri bike, but I have a long winter ahead of me to get used to it. After the ride tonight, I went out for a 4 mile run, and ran probably the best I have ever done, coming in at 28:14, after a 1:09:00 bike (25 mile), so the bike seems to be doing it’s job. I’m hoping that after I get fitted to it professionally that I’ll be able to get the most out of the bike, and be comfortable for the 5+ hour bike I will need to do for Ironman 2010. My first impression is that I’ve lost a couple of watts in term of raw power output (which might be fixed with a proper fit), but my net speed is about the same thanks to improved aerodynamics. The route I took tonight didn’t have too many hills, but I didn’t feel too bad on the short climbs. The real test will be this weekend when I take it out on the IMWI loop and follow it up with a long run. All of the reviews mentioned how stiff the bike is, but I haven't had enough experience with bikes to really know what that means. I do get the feeling that there is less power loss between the crank and the wheel, and it does ride as smooth, if not smoother then my road bike. You’ll notice in the pictures that I have a nice bright yellow saddle. It’s a ISM Adamo Racing Saddle, and it came with the bike. Now at first I was not happy with the yellow, but then I realized two things, first, you can’t see the saddle when I’m on it, and second, it should help me spot my bike in the crowed transition area. 
On Sunday, August 16, I competed in the 2009 Pigman Half Ironman, which turned out to be my first bad weather event. How bad was the weather? 20mph winds gusting to 30 with rain. I’m pretty sure I saw a couple of people attempt to ride out on the bike leg, only to turn it around and call it a day. I woke up at 5am to see it dark and drizzling. My the time I made my way down to the car, it had stopped raining. I got dropped off and proceeded to wait in line to get body marked and chipped. I would have preferred it if I could have put my stuff down in transition and then go get marked and chipped. I had just finished getting setup, which thankfully included getting my stuff in plastic bags and covered, when the first down pour hit. At least it was 70 out. The rain let up while I was waiting in line to use the bathroom. I headed back to finish my last minute preparations when I heard that transition was being closed, so I pulled on my wetsuit and headed down to the beach. Then down pour number two happened, and made the first down poor look like a light drizzle. I ended up hiding under/behind a large tree with others, so I could finish putting on my wetsuit. The mandatory pre-race meeting was going on, but I didn’t feel like leaving the shelter of my tree to go stand on the beach. I guess nothing too important was said as I managed to finish the race without incident. The second down pour subsided and I decided to go warm up in the lake, which was warmer then the pool I usually swim in (although the event was still fully wetsuit legal). I don’t know why, but I really don’t feel like warming up much. I think I’m too excited, but I still probably got in at least 100m. Since it was so warm, I didn’t have to get my face used to the water for a change, which was nice. The swim was a time trial start, after the pro’s had a mass start. My first two races had me going soon after the pros, but this time around, I was in one of the last waves to go. When a wave was called up, everyone lined up, and started at 3 second intervals. I was feeling pretty good in the the water, especially in the first 400m or so. My GPS backs this up, as that was the fastest I swam. I don’t know what happened after that, but I did slow down. I didn’t feel too tired, and my arms were not feeling all that bad either, but I was going slower, but still passing quite a few people. The waves in front of me were black, pink, red, and then purple, and I know I passed a couple of purple swim caps. I ended up finishing the swim around 35 minutes, which was 109th overall. I would have liked to see my time closer to 30 minutes, but I’ll take my time. The theme of slow as molasses T1’s continue with this race, although the monsoon was a contributing factor. I got my wetsuit down to the waist, and was able to run most of the way to my bike, which was a marked improvement. I also got my wetsuit off in short order, and threw it into a garbage bad and off to the side (I was on the end of the transition rack). The first thing that took a heck of a long time, was putting on a long sleeve shirt to act as a base layer. It was next to impossible to pull it down over my wet body, in the rain, but eventually I got it on after hopping around on one foot turning a circle a couple of times. After that I tried to dry off as I put my shoes on (what was I thinking, it was raining out), and get the rest of my stuff together, while trying to keep everything else dry. At a point I think I stopped caring about speed, and given how wet I was, I should have stopped caring about keeping things dry. After my 7 minute T1 (which looks to be the 16th slowest), I was out on the bike, and heading directly into the monsoon. The iBike was reading 25mph winds, plus there was the rain. The visor on the aero helmet worked wonderfully, and I only got rain in my eye once, which was due to a cross wind. Wind is not my friend I’ve decided. It completely demoralizes me riding into a head wind. Even with a north bound section on the first half, I was still able to pull a negative split (19mph vs. 20.9mph), although I didn’t have much left in me for the run. Trying to avoid the melt-down I had from my last race, I set my pace goal of 8:00/mile, as was able to maintain that with a little bit of effort. Unfortunately, I realized that I was only able to do that pace because of a tailwind as I turned around and the half way point. I immediately dropped to an 8:30/pace. I had been walking every aid station to make sure I was getting enough fluids, but now I was looking forward to taking a break from running. Final Results | | Time | Overall Place | Overall Pct | Age Group Place | Age Group Pct | | Swim | 35:05 | 109 | 20.6% | 12 | 29.3 | | T1 | 7:04 | | | | | | Bike | 2:44:12 | 82 | 15.5% | 11 | 26.8 | | T2 | 3:28 | | | | | | Run | 1:56:16 | 141 | 26.6% | 12 | 29.3 | | Total | 5:26:03 | 110 | 20.8% | 15 | 36.6 | Up Next I’m looking at two Olympic distance events to finish out my season. Considering how much training I have been doing, I should do pretty well in those two events. I now realize that the amount of training I have been doing in preparation for the half-iron events has not been enough to meet my goals, which is an important lesson. Hopefully I can look back in 13 months and say, I’m glad I learned that in 2009 instead of 2010.
Almost a year ago I found a script for a stored procedure that allowed you to compare two tables in SQL. Today I’ve been working on some data verification, and made really good use out of this script. I couldn’t find it on my blog, so I don’t think I’ve posted this before. Unfortunately, I did not save the original author of the script or where I got it from. One thing that I wish it could do was work on Table variables, but beggars can’t be choosers. Instead, I just create #TempTables and pass them into the stored procedure, and it works just fine. This lets you define either one or both of the tables you need to operate on, and write complex queries to populate the temp tables. ALTER PROCEDURE [dbo].[tsi_sp_util_CompareTables](@table1 varchar(100), @table2 Varchar(100), @T1ColumnList varchar(max), @T2ColumnList varchar(max) = '') AS -- Table1, Table2 are the tables or views to compare. -- T1ColumnList is the list of columns to compare, from table1. -- Just list them comma-separated, like in a GROUP BY clause. -- If T2ColumnList is not specified, it is assumed to be the same -- as T1ColumnList. Otherwise, list the columns of Table2 in -- the same order as the columns in table1 that you wish to compare. -- -- The result is all rows from either table that do NOT match -- the other table in all columns specified, along with which table that -- row is from. declare @SQL varchar(8000); IF @t2ColumnList = '' SET @T2ColumnList = @T1ColumnList set @SQL = 'SELECT ''' + @table1 + ''' AS TableName, ' + @t1ColumnList + ' FROM ' + @Table1 + ' UNION ALL SELECT ''' + @table2 + ''' As TableName, ' + @t2ColumnList + ' FROM ' + @Table2 set @SQL = 'SELECT Max(TableName) as TableName, ' + @t1ColumnList + ' FROM (' + @SQL + ') A GROUP BY ' + @t1ColumnList + ' HAVING COUNT(*) = 1' exec ( @SQL)
I was reading a short post by Ayende on coding things that make the giant red warning light go off in your head. One of the examples he gives is using a WCF service in a using block, but he didn’t go into any detail as to why that is bad. A quick Bing search led me to this article by Dan Rigsby entitled Don’t Wrap Wcf Service Hosts or Clients in a Using Statement. The gist of it is that IDisposable is implemented in an uncommon way in some of the WCF objects. A common problem is that if the service fails to open due to an exception, the Dispose method will be called. In Dispose, a call to Close() is made, which will throw an InvalidOperationException and a CommunicationObjectFaultedException. Dan’s article has some code that shows what's going on that makes this a little more clear. So it’s not the end of the world if you use a Using statement, but you will get some unexpected exceptions at times. You just need to be aware of how Dispose works and the exceptions that can be thrown and act accordingly.
The Spirit of Racine Half Ironman, held on Sunday July 19th, 2009 was the second Triathlon of my season (and career). This was my first Half Ironman, and quite a different experience in terms of the required effort. I finished in 256th place overall with a time of 4:48:59, which was a little slower then my realistic goal of 2:45 (which assumed an actual 1.2 mile swim, see below). Registration and the day before I arrived at the race expo in downtown Racine around 3:30 PM on the Saturday before the race. The registration process was pretty straight forward, although they were out of small and medium size shirts, which didn’t bother me. However on the forums and the blog sphere, several people were acting as if they had been defrauded, with one guy talking about filing a complaint with his credit card company. People, relax, it’s a T-Shirt, hardly something to get worked up over. I also read that you could contact the race director and get a shirt mailed out to you. The expo was pretty decent, but all I have to compare it to was the tiny expo for the Capital View Triathlon. After hearing that the water temp was a balmy 59 degrees, I opted to pick up a neoprene swim cap. I also came across some good deals on Triathlon/Transition bags, and figured it was time to upgrade from my small duffle bag to something more practical. I also stopped and talked with a Comp-u-Trainer rep for a bit, as I’m thinking about getting one, but they are kind of pricy. My parents are from Racine, so I have allot of family down there, which was awesome because I got a free place to stay and a really good dinner. A special thanks goes out to my Aunt and Uncle for letting me stay, and the spaghetti feast they prepared. I am thinking about eating my big meal earlier in the day to avoid certain issues I will talk about below. Pre-Race Woke up at 5:10am, grabbed my stuff and headed to the race. It took a couple of minutes to find some parking, but I didn’t have to walk to far. I was able to hit up the port-a-potties on the way in to transition, and then started getting setup. It seems like I got stuff setup quicker then my last race, which I guess is a good thing. I remember the announcer saying that they were going to do the National Anthem, and the pre-race meeting in about 5 minutes, so I went to go use the bathroom (again). When I stepped out of the port-a-potty I heard the announcer say they were closing transition in 5 minutes. That was the first mention I heard about closing transition, but I had plenty of time to grab my wetsuit, cap and goggles and start the walk to the start area. The swim course was point to point, and we had to walk close to a mile down the beach to get to the swim area. I put my wetsuit on just outside of transition, and made the long trek down the beach. Some people were smart and started jumping in the water when they got closer to the start area to take care of the warm-up. I haven't had too much difficulty with the swim, and only need a very short warm-up so I continued to walk along the beach. When I finally got in the water, it didn’t feel too cold, but as soon as I put my head in, I thought I was going to die of shock. Wow! My warm-up was more for getting my face used to the water then anything else. One interesting thing I’d like to point out, is that aside from my face in the water, I was never cold at all. I was wearing my sleeveless tri-top and shorts before the race, and obviously during the race, and was never cold, although the air temperature was no more then 65 (until the sun came out on the run). Usually I’m looking to wear long sleeves on the bike at 65. Swim I was in the 3rd wave to start, 6 minutes behind the first wave. The announcer gave us a good countdown, and then we were off into the water, as this was a beach start. I actually put forth a little bit of effort to run into and thru the water. I did a couple of really lame dives to get me going, and then started swimming. As with my last race, it took me about 200 meters to get my rhythm (so maybe I do need a warm-up). This time however, things didn’t feel as crowded for some reason. I felt like I was wandering a bit on the swim course, but reviewing my GPS data showed I had a fairly decent track. The swim only turned out to be .99 miles according to my GPS, which is disappointing. I guess they moved the buoys in closer to shore which cut out the distance you used to have to swim to get out to, and back from the buoy line. We speculated this was because of the drowning at another triathlon the weekend before. So I swam the .99 miles in 24:11, which I am happy with, and would have put me at 29 minutes for 1.2 miles, as I know I could have kept my same pace. If anything, I could have went a little faster I think, but it’s so hard to know how fast you are going. I even had the speed alerts programmed into my GPS, but it’s still a rather broad indication of how you are doing. I think I will up the speed alert from 2.4 to 2.5 mph for the next race. T1 So if you read my last race report, you will know that I lost a good two minutes to most everyone else in T1. I guess I didn’t practice enough, because I still took over 4 minutes in T1, but at least I wasn’t as alone this time. At least as an age-grouper in a half iron man, an extra two minutes in T1 isn’t the end of the world. I still had the light headedness out of the swim as I did last time, so that didn’t help. I think I got my wetsuit off faster, but I could still do better. I decided to ride barefoot, but took too much time drying my feet off I think. I also walked most of the way to the mount line, as I was putting on my gloves. I need to remember to worry about the gloves after I get going. Bike My plan for the bike, which I decided as I was heading out of transition, was to take it easy for the first half, and try for a negative split. I rode the course the week before, and found it rather flat and boring. I had difficulty staying focused during the first half, which is why I decided to start out slow and then be able to look forward to a challenging ride back. I flipped the switch around mile 25, so a little earlier then expected, but I felt like people from the later waves were catching up to me too much, or allot of other people had the same strategy as me. Things were going well, until about mile 35, when I was swallowed up by the peloton. I guess with the Tour de France going on, people wanted to get into the sprit of things, even though drafting is illegal. I made an attempt to pass the pack two to three times, as it would always slow down going up the “hills”, but was eventually passed up again after the hill. One the one hand it was satisfying to out climb (I use that term very loosely, as there were no real hills on that course), on the other hand, I had to spend too much energy trying to get around 30-40 riders. I finally decided to just let the group go by and slow up for a bit. With about 5 miles to go, one of the Marshalls finally rode by and we all pointed up ahead to the group. They went up there, and were riding along side for awhile, but I don’t know what became of it. I do know there were about 130 penalties (10% of the racers) given out, and quite a few for drafting. I finished the bike in 2:27, which was a couple of minutes faster then the 2:30 I was hoping for. I had rented a pair of Bontrager Aeolus 6.5’s, and also purchase an aero helmet for this race. I think these helped me, but it’s hard to say how much. Unfortunately, the wattage reported on my power meter seems allot lower then it should be, so it’s hard to get a feeling for how well I truly did on the bike. T2 + Run After my surprising well run at my last race, I was looking forward to having another successful run. Had the run only been 6 miles, I would have had a really good run, but alas, it was 13.1, and I did not do so well. The run was a two lap out and back, with two good sized hills at the start of each lap. I came off the bike and had an ok, but not stellar T2 (I don’t think I like running in my biking shoes). I had to go to the bathroom really bad, but the port-a-potties were not placed between transition and the run course. Thankfully I had found the bathroom’s located in the beach concession stand the week before, so I deviated from the run course slightly to use the facilities, and I was not the only one. I went out strong and hard on the first lap, and that was my mistake. I had gotten some notion in my head that I could run 7:30 miles, and I can, just not for 13.1 miles after a bike ride. I think my average pace was actually around 7:45 for the first lap, but I had already started to feel fatigued on mile 5. Thru the turn-around I went, opting to skip the bathroom this time, which turned out to be a big mistake. By the time I was coming up on mile 7, I had re-adjusted my pace alert to 8:00, and by mile 8, I didn’t care about the pace alert anymore. I think my pace dropped as slow as 10:00 at one point, and ended up with an average pace of 8:20. Usually I try to sprint to the finish, but I just couldn’t. Post Race Figures, as soon as I was done, and got the timing chip off, the severe pain from having to go the bathroom was gone, but I still made the bathroom my first stop. The sun had come out for a bit on the run, but then dark clouds started moving in, and the wind was picking up, so I went back to transition to grab my long sleeve jacket. I then went in search of some food, and found a much better menu then what was at my last race. This time around they had P&B and BBQ sandwiches, fruit, cookies, and soda. P&B never tasted so good before, and I’m usually not a big fan of BBQ, but it too tasted quite well. After getting some food, I headed back to transition to pack up. The new transition bag worked great and held all my gear and my still wet wetsuit. I would like to thank my Mom, Aunt Suzy, Aunt Janet and Uncle Kevin for coming out and cheering me on. Final Results | Overall Place: | 256/1206 | 21.2% | | Age Group (M30-34): | 39/101 | 38.6% | | Swim | 26:04 (216) | 17.9% | | T1 | 4:15 | | | Bike | 2:27:24 (172) | 14.3% | | T2 | 2:17 | | | Run | 1:49:02 (398) | 33% | What's Next? My next race is the Pigman 1/2 Ironman down in Iowa in August. I have about 4 weeks of training (including a bit of tapering the week before), and plan to focus my efforts on my running. I know I can’t start out at a 7:30 pace, but would like to some day, so I need to start training for it. Next race I plan to start out at a 8:00 pace, and then pick up the pace in the 2nd half if I am still feeling good. I’d like to shoot for 4:45 (with an actual 1.2 mile swim), but it will be close. I know Pigman has a bit more climbing then Racine, and I figure I’m due for a hot day in August. If not 4:45, at least do better in my overall placing then I did in Racine. I still need to work a bit on my transitions, but it’s hard to simulate what it’s like on race day. However, this year was my practice year anyway, so getting real experience doing the transitions on race day is part of what this year was about. I tried out a new nutrition plan for this race, opting for about 900 calories from a mix of Gatorade (150 calories) and Carbo-Pro in 24oz of water. This worked well from an energy standpoint, but I still felt some discomfort in my stomach. I think it was because it was so cool out, that I didn’t drink enough plain water. Although during this past winter, I’d down a 32oz Gatorade without any problems at all while working out. I like the form factor of the Cliff Shot Blocks, but I think it’s too much sugar. I may try to make a paste out of the Carbo-Pro to cut down on the amount of liquid I take in as part of my fuel.
I came across a blog post yesterday that showed how you can debug SMTP in .Net without having an SMTP and receiving mail server setup. As long as you are using the System.Net.Mail.SmtpClient object, you do not have to change any code at all. All you need to do is add the following to the app/web config file. <system.net> <mailSettings> <smtp deliveryMethod="SpecifiedPickupDirectory"> <specifiedPickupDirectory pickupDirectoryLocation="C:\inetpub\EmailDebug" /> </smtp> </mailSettings> </system.net> You need to make sure the the directory you specify is setup with write permissions for the account your application is running under (i.e. Network Service). I would like to point out, that if you are following good design patterns and practices, that this would only be used for an integration test, not a unit test. In my situation, testing was not a consideration, so I’m forced to use this to “unit test”.
On Sunday June 14th, I competed in my first triathlon, an Olympic distance event. The 2009 Capitol View Triathlon and was held in and around Governor Nelson State Park just north of Madison. It was a perfect day for the event, although the temperature started creeping up towards the end. The event is put on by my friends at Endurance House, a great local tri store in Madison. Packet Pickup The packet pickup was held at the Hilton Garden View hotel on Madison’s west side. I showed up close to the end of the pickup time, and there were not too many people there. We had to fill out a USAT release form, which seemed kind of weird, because it was the single day event form, and I’m already a USAT annual member. Speaking of being a USAT member, I was never asked for my USAT membership card, even though it meant I had paid less for the entry fee. There were some vendors at the packet pickup, but I was in a hurry and didn’t have time to check out the merchandise. Besides, I’ve spent way to much this season, even without buying a bike. Pre-Race Thoughts My goal entering the day was a finishing time of 2:40, with a stretch goal of 2:30 and a top 3 finish in my age group (based on last years results). For the stretch goal, I was hoping for a 25 minute swim, 1 hour 10 minute bike and a 50 minute run with 5 minutes worth of transitions. Coming into the event, I had two concerns (I guess I should have had three), the open water swim, and the run. I managed to get in two open water practice swims, so I wasn’t coming in completely green. However I expected there to be some differences between swimming by yourself, and swimming with a large group of people. The run was took place on the trails in the park, which are quite hilly in places. Based on some training I did leading up to the event, I noticed I lost about .5 mph when running off road, and I was afraid I hadn’t worked in enough hills. Pre-Race Setup I woke up at 5:30am and was on the way to the park by 5:50am, snacking on a cliff bar. I was extremely fortunate in that my parents live only 10 minutes away from the park. By the time we arrived at the park at 6am, people were already parking on the street, so I did as well. This resulted in about a 10 minute walk from the car to the transition area. By the time I got to my transition spot, it was about 6:15, and there was a pre-race meeting in 30 minutes, so I didn’t have much time to set up, let alone do any type of warm-up (not that I was planning too anyway). I think I did an OK job setting up my transition area, but as you will read through-out the rest of the post, everything about my transitions needs improvement. I got my body marking taken care of pretty easily, as a volunteer was roaming the transition area with a marker. There was nothing special about the marking, so I might just bring the same kind of marker with just in case things are getting tight. I made my way down to get my timing chip, and I should have brought my wetsuit with me, as after I was done using the port-a-potty, I had to get back to my transition spot, put my wetsuit and and make it all the way down to the beach. By the time I got to the beach, the pre-race meeting was getting underway. There was nothing significant said during the meeting, except that the start was being delayed by 10 minutes because the support boats had not arrived yet. This did allow me some time to get in a little bit of a warm-up swim at least. Swim I lined up in the front of the group for the swim, but we were so spread out that there were maybe only 1-2 people directly behind me. I didn’t feel too pressured by other swimmers at the start, which was probably due to how far out we were spread, and the fact that I wasn’t trying to swim a tight circuit. For the first 400 or so meters, I felt very out of place and poor form. My nerves finally settled down enough for me to remember what a good form felt like, and I was able to get into a comfortable rhythm for the rest of the swim. I stayed pretty much on the outside edge of the swim course, which caused me to swim further, but I had to deal with less people. I am hoping to be a little more aggressive with my positioning at my next event. Coming out of the swim, I felt light headed and a little dizzy, which I had experienced on both my previous open water swims. I think it was a combination of the way I breath, and the cold water on the face. I did perform my good deed for the day. On the way out of the swim, another racer ran up to me and asked for help unzipping his wetsuit. He had gotten in the zipper stuck in the flap that goes under the zipper. I’m surprised I was able to fix the zipper, while sloshing my way out of the water while being dizzy. T1 I didn’t realize how bad my T1 was, until after I got home and looked at all of the results. I think I was 269th out of 277 racers on the T1 time….oops. The dizziness after the swim wasn’t a good start, and apparently I have really sensitive feet, because running barefoot in the parking lot was too painful, and I had to walk. My transition area was at the far end from the swim, so I had a nice leisurely walk (I was in a race right?) to my bike. I feel I did a pretty good job setting up my transition area, so that wasn’t an issue, I just wasn’t in a hurry for some reason. I was overly paranoid about ruining my wetsuit, so I took my time getting it off. Next, I realized that my timing chip was so low on my leg it would cause problems with my shoes, so I had to take that off and re-adjust. Finally, I took way too much time drying my feet and putting socks on. Bike I really like biking, and like to think of the bike as my strength. I had previously biked the race course to get a feel for it, and I think this worked to my advantage. It allowed me to time a couple of my passes before and during some climbs. After that not so stellar T1, I was able to make up quite a bit of time. I only remember being passed by 2-3 people, and was 49th overall on the bike. The only thing I can think of to improve upon (outside my normal training), is to be a little more aggressive. I need to use the passing rules to my advantage, in that once I get by someone, they have to drop back, which would allow me a few seconds of recovery before resuming my pre-pass pace. T2 T2 was better then T1, but there is still room for improvement. Since I will be going sockless for the bike, I need to consider if I will put socks on for the run. Since my next run is twice as long, I think I’ll have to. I tried running without socks, and it wasn’t very comfortable. I just hope I don’t blow the time savings from T1 in T2 with the socks. Run The run was surprisingly good for me, and I beat my goal time by almost 3 minutes. I still can’t believe I ran close to 7:30 miles on trails. So I guess I’ll try to keep things the same for the run. I could probably use a little practice in drinking from cups while on the run. After Race I didn’t stick around long after the race. I took liberal advantage of the free Gatorade to rehydrate myself, but the greasy thin crust pizza did not look all that appealing. I like how you were able to get a print out with your results right away. Next year I plan on staying longer, as I’ll need to be present to pick up my age-group award ;) Room for Improvement T1 obviously needs some work, but it should be something I can take care of with a little bit of practice. I think just having one race under my belt will also help tremendously. I now know that my wetsuit is pretty durable, so I can get that thing off faster and not worry. I’ve been riding without socks, so I can cut that out and just try to dry my feet the best I can while putting my helmet on. I’ll also be attaching my gloves to my bike, and maybe even my sunglasses and worry about getting those on after I’m on the bike. Results - Total Participants: 17 Elite, 22 Collegiate, 238 Age Groupers = 277
- Age Group Ranking: 4
- Overall Age Group Ranking: 25
- Overall Ranking 40
| | Time | Overall Place | Event Place | | Swim | 27:39.7 | 54 | 54 | | T1 | 4:37.3 | 117 | 269 | | Bike | 1:09:56.5 | 49 | 33 | | T2 | 1:32.8 | ?? | 100 | | Run | 47:05.8 | 40 | 38 | | Overall | 2:30:52.1 | | | The overall place and event place include the relay results as well. However I do not consider those who participated in the relay to be in the same event as myself, and USAT rules state that Age Groupers have to factor in Elites, but they don’t say anything about relay teams. I tried to adjust the placements in the above table by removing any times from the relay teams that were faster then mine. Final Thoughts Aside from a disastrous T1, I was pretty happy with everything else. I feel like I stayed well hydrated on the run (pretty easy to do so on the bike), although for a half-ironman, and in warmer weather I will need more fluids. The only other thing I can do is maybe be a very tiny bit more aggressive on the bike. I held back from passing a couple of times, and I was way to passive coming back into the park (trying to be a nice guy), and probably lost a minute or two. Next up My next race is the Spirit of Race half iron man distance event on July 19th. This gives me 4 weeks to ramp up to the half iron distances, and fix that embarrassing T1 time. As of right now, I’m looking to do the event in 5 hours or better.
|