October 2, 2012


Today I returned from a trip to San Francisco.  I was there attending a Jenkins User conference.  I learned a lot of great things and validated some of my thought processes around other things.  That being said, I brought one thing away from the conference.  “Participate.” 

For years I have been too intimidated to participate.  However, the one thing I realized by being at the user conference is that when it comes to continuous integration there is no “silver bullet.”  All these projects are out there getting it done and doing it the best way they know how.   My company is among those laying a path of continuous integration.  We also have our eyes on  the horizon as we navigate our way to continuous deployment. 

It is time I participated in the community.  We are a unique company that allows a lot of learning to happen within the realm of business.  For that reason, I think it is time to share some of our learning with the community.

I need to figure out the details of course.  How much I can share and not cross the line with my company?  I'm not totally sure. The details will work themselves out, but this is as good place to start.

September 26, 2011

Where has the summer gone?

I've been thinking about my blog a lot lately. I'm not sure why. Maybe it is an opportunity for me to sit and dump some of this extra cruft I have built up in my brain onto paper. Maybe it is because I have at least a half dozen people who read this and really want an update (Sarcasm). Maybe some things are best not analyzed. The fact of the matter is I'm adding a post!

I have about a hundred topics I'd like to talk about, but I'm going to keep this one short and sweet. I'm going to tell you a story. A true story.

This past weekend I was driving in my S.U.V on a country road that had enormous power lines next to it which went as far as the eye could see. Forget the fact my truck is spitting out exhaust, I have the gall to say, "This view sure would be nice if it weren't for all those power lines."

My wife quickly responded, "That makes you sound so old. You need to embrace the necessary and sometimes ugly things in life and look past them."

I took that bit of advice to heart. That afternoon I went on a bike ride. I brought my camera with the intention of capturing beauty in man made objects. While on my ride I was thinking to myself, "I need to look past the ugly..." and no sooner did I think this when a really fat grasshopper tried to cross the road at an inopportune time. the grasshopper jumped into my spokes where he was quickly blended into a grasshopper puree, which was then sprayed onto my leg. It honestly felt like a glass of water hit my shin.

The moral of the story: There is a lot of ugly in the world and not all of it is man made...

OK, maybe that is a bit dark.

The moral of the story: Whether the ugly is a power line or a blended grasshopper; if you don't focus on the ugly and focus on the big picture, things are a lot less ugly.

I looked past the power lines and I saw beautiful mountains. Similarly, the minced grasshopper on my leg didn't keep me from having a great ride!

February 5, 2011

Lesson Learned: Buy a Camera Mount

I'm going to let the video speak for itself this week.

January 29, 2011

Inner monologue

Some people have friends they are able to vent to. Others use therapists. I recommend both, but sometimes the one who understands you the most is yourself. Being alone with my thoughts while out on the road is some of the best times for me to find center once again. To prove my point, let me take you on a 20 second journey to the inside of my head and thoughts while I outline an inner monologue I had during today's ride.

Me: "I need to get in touch with a couple people. I've either left them hanging or haven't chatted with them in a while."

Myself: "Later man, you are riding."

Me: "I need to get my shit together and finish that wheel I've been building."

Myself: "Dude, shut up and ride."

Me: "I gotta find time to finish that level of the video game."

Myself: "Pedal, man. Focus on me for now. I won't let you down."

Me: "Oh yeah, I need to login to finish some work before Monday."

Myself: "Breath. Enjoy the cool air. Enjoy the fact that you are outside."

Me: "I'm out here riding and I should be home doing other stuff."

Myself: "That is it man, I'm shutting down your brain. Breath, pedal, enjoy."

Me: "Ah, I love riding! What a great day to be outside. The rest of the stuff can wait."

Myself: "That's it man! I'll be there for you next time when life gets in the way of enjoying your ride."

January 23, 2011

A Bit Out Of Sorts

Over the years your bodies become walking autobiographies, telling friends and strangers alike of the minor and major stresses of your lives.
~Marilyn Ferguson

March 14, 2010

Spambots Suck!

Today I had the misfortune of having to deal with a spambot on TrailCentral. What a pain in the ass! This bot caused two pain points for me today. One, I had to spend the little time I get to work on the site fixing the local bike shop rating form instead of working on fun, innovative stuff for rlog. The second pain point was that I got an email every time the bot left a bogus comment, which wouldn't be so bad except the email account is hooked up to my Blackberry, so my phone was constantly notifying me of new mail. God that was annoying!!!

In any case, the problem has been fixed. A couple years ago I started allowing anonymous comments on the local bike shop rating form, which is what the bot exploited today. It kept leaving anonymous comments... So, to fix it, I simply added a captcha image which is required to submit the form. I'm glad to say that I haven't gotten a single bot submission since I added captcha to the form! WhooHoo!

Though I have the fix in place there is still some cleanup to do. I have several hundred bogus ratings I need to backout, but that will need to wait for another day.

I leave you with a simple message.... "Spambots Suck!!!!"

December 12, 2009

TrailCentral.com 2.0 Has Officially Launched Today.

Months and months ago I made the plunge and bought a dedicated server to bring TrailCentral.com out of the world of shared hosting and to breath some fresh air into a site that has been dormant over the past several years.

For months I've been plugging away at the upgrade, working in my basement in the middle of the night in hopes that one day I'd actually be able to launch it. Well, that day has finally come! As of today (12/12/2009) I switched the DNS from my old server to the new server.

Within hours of making the switch, the server crashed. Needless to say, there is a lot of work still to do and TC 2.0 is buggy. The server has since been restarted and even with the growing pains I'm currently experiencing with the new server I still love what I see. The site is cleaner, much of the code has been optimized, I've "End Of Lifed" many of the areas of the old site that I didn't have time to maintain, while adding new features such as rlog to the site.

I'm excited about the new era of TrailCentral and the launch today couldn't have been possible without the help of a couple of good friends: Zach, who without his operations expertise I never would of plunged into the world of dedicated servers and Matt who has really plunged in head first and helped out a lot with the new rlog feature. Thanks guys!

If you have a minute, stop by the site, post a message to the forum, or drop me a line and tell me what you think. You can visit the new site at http://www.trailcentral.com

August 24, 2009

I Had To Give Sky Skiing A Try

This past weekend was spent doing something I've never done in my life... sky skiing. How is the best way to explain what sky skiing is? Um, it is like sitting on a stool, which is balancing on a 3 foot post, while getting pulled 30 mph through the water. Yeah, that about sums it up. For those who can read the above sentence and think, "Yeah, that is easy," I assure you, it isn't!

If you do it right, it does look very easy. For instance, my friends wife, Jodi (above) just skied and made it look relaxing... This is cool.

Then my friend, Terry took it to the next level. Again... Making it look easy. This is even cooler.

We had two boats out on the water. These pictures blow my mind. I snapped these pictures of Rick, who was landing barrel rolls, back-flips, and even trying front flips. These pictures are unbelievable...

I think everyone is familiar with a simple machine called a lever. Well, when you are out of the water and gliding the contact point with the water is at the hydrofoil. If you make a wrong move the hydrofoil will dive down while the boat pulls you forward, turning you into a powerful lever. A lever that puts the brunt of the impact on your head. This is a lesson I learned very well as I had several high speed impacts as a result of that powerful lever doing just as I explained.

Today I am a bit in the hurt locker. Between the high speed water impacts and the amount of strength it took to tow my huge ass through the water, my body is sore and my muscles ache. But man, was it fun!!!

August 19, 2009

Big Efforts... But Not Too Big

My Heart Rate During Workout Session

Tuesday was the maiden voyage for me and my new Fuji track bike on the Boulder Indoor Velodrome. I purposely didn't go gonzo on my hot laps because I wanted to make sure I got a good feel for the bike before I started focusing on speed rather than my technique. That said, I still had some good efforts during the session.

The Workout:
  1. warm up.
  2. 4 sprint efforts from the back of the pack
  3. Recover
  4. 2 3k team pursuit efforts
  5. cool down
The Explanation:
  1. Warm up: Twenty minute warm. Effort should be gradually increasing to a peak at the finish. First 15 minutes will be in zone 2 and 3. Final 5 minutes will be spent in sprinters lane with heart rate steadily in zone 3 and final lap can peak in zone 4.
  2. 4 sprints from back of the pack: Exercise requires at least a group of three riders. This drill is intended to practice attacking off the back of the pack and taking your opponent by surprise. In theory, right before an attack the attacking rider needs to allow a bit of a gap between themselves and the group before throwing the hammer down. The idea is to allow the attacking rider to attack while still in the slipstream before passing at full speed.
  3. Recover: self explanatory.
  4. 2 3k team pursuit efforts: With a group of three riders the idea is to finish the effort in as little time as possible with a strict no drop policy. Each rider takes turns at the front and communication is key to allow weaker riders to take shorter pulls and stronger riders to pull longer. Along with communication, pace line mechanics is critical to success with the high speed effort.
  5. Cool down: Allow your heart to recover before ending exercise. Should not get off the bike while still sweating.

In Practice:
  1. Warm up: Did not track my warm up heart rate so it is not displayed in the graph above.
  2. 4 sprints from back of pack: There was a group of 4 riders on the track. I have some technique to learn on this form of attack. I understand the theory, but in practice I got a bit anxious when I watched the riders open a gap. I applied the pressure a bit too early, eliminating the slipstream effect and I ended up attacking while on the outside, which eliminated any surprise. Not great, a lot of room for improvement, but like anything it requires practice. We did that a total of four times after our warm up (First four spikes in graph).
  3. Recover: Seemed to recover quickly
  4. 2 3k team pursuit efforts: This was awesome! Basically a three person team time trial around the track. The first effort was a bit dodgy. It was the first time the three of us rode together that fast. However, we learned quickly and made decent time. Now the second effort was were it got cool. Not only were we more comfortable around each other, but we started communicating. Allowing those who were struggling a chance to take shorter pulls while those who could handle more took longer. It started to feel like a real team effort, which is rare in a sport such as cycling (3k efforts are the second set of spikes on the graph).
  5. Cool down:
In Conclusion:
The riding was great and I felt in control during the entire session. I was happy to see my heart has a large range. My max heart rate yesterday was 190bpm and I didn't feel like I was going to puke! I'm pretty sure I can get it a couple beats above that even when doing a solo hot lap. Time will tell as I plan to continue to chart my heart rate during these rides.

August 15, 2009

Bike Porn: Not For The Faint Of Heart

This past Wednesday I picked up my new track bike. The good people at Excel Sports in Boulder did a fantastic job of building it up and fitting me to it. Today I finally got a chance to ride it. I took it out on a spin at the local technology center (empty roads on weekends) to make sure it is dialed in before I take it to the track on Tuesday.

My Speed Chart for Today's Ride:

After my ride I took out my camera and did a small photo shoot. Imagine Austin Powers with a camera, "Oh Yeah Baby, Work with me, Work with me, Yes, Yes, NO! NO!"

Disclaimer: The images you are about to see may increase the pressure in your tubes. If you sustain overly inflated tubes for greater than 4 hours, seek help immediately as it may be a side effect.

August 14, 2009

Performance: A Video That Cracks Me Up

I have to post this here so I can have a good laugh any time I want without searching for it.

It is totally true, but seeing as how I just bought a brand new fixed gear bike... I can't help but feel a little made fun of... Totally worth it! Give it a watch.

August 12, 2009

TrailCentral.com Is Slowly Sinking... But There Is Hope.

It has been a while since I've posted anything regarding my website, TrailCentral.com (TC). The reason I've been quiet about it is because I haven't been working on it in over a year. Yikes! Well, that would be a true statement about 3 months ago. Let me explain.

About three months ago I had a hard decision to make because I noticed that the path TC was on meant one of two things: Continue to neglect it's operational needs and let it implode on itself or upgrade the server.

This was honestly a hard decision because my priorities in life have changed a lot to include family, work, fun, and much more. When I looked at it in terms of priority it seemed TC was always on the low end of the priority list. However, it is like letting go of a family member. If I think of all the lost sleep and energy I put into creating the site, it would be a hard pill to swallow to let it implode on itself and forget about it.

I know big time investors and business people would say, "Cut it loose and focus your energy on the next big idea." I agree with the statement when it comes to business, but TC has never really been a business. One of the most important things I've realized in my time away from TC is that it is not a business and honestly, I don't ever care if it becomes a business. What I care about is having a place where I can continue to play with new ideas. A place where I can explore the world of web development and system management. Most importantly a place where business need does not dictate what I develop, but a place where instinct and effort allows me to develop anything I want about a sport I am passionate about.

So after all that long winded rambling can you guess what my decision was regarding TC? Should TC sink or swim? I choose swim... but not an Olympic freestyle king of swim; more like a doggie paddle.

Three months ago I made a plunge and purchased a dedicated server. This single element (system management) has always been a black hole on my radar. In the past I've always developed code. If it worked... great! If it blew up my system... I always was able to call the 1-800 number and have an operations expert help me to get it rolling again. Honestly, I wouldn't have gotten a dedicated server without the help of a good friend I work with named Zach. He's an operations guy and knows his stuff. Plus, he is willing to let me ask really stupid questions and answers me with somewhat of a straight face.

Since I've started running the system I learned something; it isn't as intimidating as I thought. In fact, it has helped my development by allowing me to see how my code is running on my server. I no longer think in terms of getting it to work. I now think of it as getting it to work with performance and stability. Pretty cool!

I didn't make my decision a moment to soon. In fact, since working on the new server I've noticed that the old site has been acting up a bit, as if it knows I'll be shutting it down soon. I receive daily notices that I'm reaching the capacity of my current server. Each time I hit the ceiling it causes my database to lock up and at times takes down the entire website. It is ugly and I'm sure it isn't a pleasant user experience.

However, there is hope. I'm reaching the end of my development and hope to have the new server turned on in the next month or two. I'm making a lot of changes. I will E.O.L. several areas of the website that require a lot of effort on my part and I'm trying to enhance areas of the website that require community. This way the site will stay as fresh as the community that uses it and not look dated because I haven't updated it. While optimizing the performance I have also been updating the look and feel of the website, which was something I've wanted to do for a long time.

So the short of it is I hope you hang in there with me. I realize the old server is sinking and nobody will be more pleased than me when the transition to the new server is done. There is hope... There is a light at the end of the tunnel... and thanks to all of you who have been a part of my journey with TC. I'm happy to say the journey is not yet done.

May 9, 2009

My Third Century of the Year...

OK. OK. So I had two legitimate centuries this year of over 100 miles and today I rode my first metric century of the year, or my third... Depends on how you look at it.

Yes, I'm a good old American boy and I measure my distance with miles, but today was a special day. In honor of the 100th running of the Giro d'Italia, I decided to all go metric on your ass. *snap* "Oh, no he didn't", "Oh... yes, I did!"

It was a hell of a ride. It wasn't enough to do a metric century; I had to add a few challenges. For instance, I wanted to come as close as I could to a 20 mph average. Plus, to top it off I threw in a severe sinus infection, just for grins. Yes, It wasn't pleasant to see what I was farmer blowing out of my nose today.

So, the first twenty miles went like clockwork. I wanted to have a solid 20 mph average when I reached the 20 mile mark. I did a short warm up as I cruised out of my neighborhood and then I applied some pressure to the pedals. At mile 19.75 I was at what must have been 19.9999999 mph for an average with 3 minutes before the hour. I was sure I was going to reach my goal. As I cruised along congratulating myself prematurely, I saw a gaggle of geese crossing the bike path about 100 meters ahead.

As I reached them I contemplated bunny hopping over them to keep my pace, but I noticed their were some babies in the mix, and with Mother's Day tomorrow, I did the humane thing (as I always do) and stopped to let them trot across the path. I watched the 20 mph average slip, but it was worth seeing the babies. After they crossed, I got to the 20 mile mark 30 seconds past my wishes.

Well, I didn't let that slow me down, for the next twenty miles I tried my best to maintain my average speed. I did pretty well. at mile marker 40 I dropped a bit to a 19.5 mph average. With 22 miles still to go and an uphill slant the rest of the way I knew it would be a challenge to keep it above 19 mph.

My goal for the next 20 miles was trying to keep the speedometer above the average speed mark. I knew I had a couple of hills coming at the end of the ride, but if I could limit the amount of time below the recorded average speed I figured I was on the winning side of keeping a high average.

The miles ticked away and at the 55 mile mark I had dropped to 19.1 mph average and that is when I hit the wall. Boom! Not literally of course, but my legs did not want to go above 19 mph. In fact 15 mph was feeling pretty hard for my legs. Nursing myself back to my house I managed to keep the average speed to 18.8 mph.

Not bad, I would have really liked to keep the average above 19, but given my condition I'm not going to let it get to me. However, if I had a partner to pace with on this ride. I know I could have done faster than a 20 mph average.

Anyone interested in helping me achieve this goal?

May 7, 2009

Getting Back in the Game

A lot of stuff has been going on in life that is worthy of blogging about.  However, I've shyed away from blogging much because every time I did I would write too much and it would turn into an hour session of writing, which I don't have time for because I have a lot of stuff going on in my life worth blogging about; vicious circle.  

So I'm going back to my original blogging rule, which I posted in my very first post.  I'm not going to allow myself to write for longer than 15 minutes;  rare exceptions will be allowed.

Hopefully this will make me want to post more often.  

It has been 10 min.  I'm outta here.

P.S.  I love Twitter.com.  Talk about a site that allows you to share your thoughts with minimal effort.

April 7, 2009

Campagnolo Record Wheelset. Yes, I Built It!

This past weekend I handed off the coolest wheel set I've built to my friend and now proud owner of a Campagnolo record wheel set, Dwight. I loved building this wheel set because this was for a Clydesdale rider who had one criteria: Make it strong! We totally nailed that requirement with this build.

Dwight would have gone with 60 spokes if it made the wheel stronger, but in the end we settled on a 32 spoke 3x, which will handle his weight and anything he or the road can dish out.

The decals on the RR1.2 are sick! I fell in love with the rim the moment I pulled it out of the box. Again, not as light as other rims, but the deep dish design and brand made for a strong rim. Plus, I encourage you to enlarge this image. Notice the red nipples? Bling! It was a nice touch to this wheel. This wheel is black and the red nipples looks SWEET when they are spinning.

I actually got the idea from a mountain bike wheel I built for another friend. He had a red Pro Hope II hub and black DT Swiss rim. When I saw how nice that wheel looked, I convinced Dwight to do the same. He wasn't disappointed.

Campagnolo Record is nothing short of amazing. I love my Pro Hope II mountain bike wheels because the recall those things offer when they spin will alert anyone ahead of me know that I am approaching. That is appropriate for mountain a mountain bike. the Campagnolo Record hubs are stealth! There is hardly any noise at all when this wheel gets spinning; appropriate for a road wheel set.
The wheelset
Hub: Campagnolo Record
Spokes: DT Swiss Double Butted
Rim: DT Swiss RR1.2


April 6, 2009

Short Track Image.

I had some fun in PhotoShop this evening. This is an image I took during the 2008 Boulder Short Track Series. Obviously doctored up a bit, but I had some fun doing it.

March 1, 2009

My First Century In Over A Decade!

I spent yesterday doing something I most likely had no business doing; I completed my first century in over a decade!

Going from a six mile commute every day on my single speed to a 110 mile ride is something I wasn't preparing myself for and to be honest, I wasn't planning on doing... Let me walk you through the chain of events a bit.

The century crew was 5 people strong: Chris, Brett, Erik, Jeremy, and myself. We got a late morning start so it could warm up a bit. It was a good idea because when we started it was sunny with clear skies. The air was still a bit chilly, but the polar fleece was more than enough to keep the upper body warm as we rode through the chilly air.

Although I was riding with the century crew I had it in my mind that I would be only hanging on approximately 25 miles before breaking from the pack and heading home. As we approached Golden I was feeling really good, which is when I was really second guessing my plan to ride only 25 miles. I was thinking maybe I could make the century at this pace and this rolling terrain. When we reached Golden I heard Chris and Jeremy talking and then decision was made to tackle Lookout Mountain as part of the century. My first reaction, which I verbalized, was "Oh, Shit!" I haven't climbed a mountain all season and again my thought of completing the century was gone. I conceded to the notion of climbing the hill with the group and then heading back home from the top.

I was certainly the slow man up the mountain, but the cool thing is that Chris, who can ascend Lookout in sub 20 min, hung back and chatted. Taking my mind off the climb and helping me climb. When we got to the top we took our first break and it was there I made the decision to ride the full century.

My decision seemed sold since the next 10 miles were all down hill and I felt great! Feeling like I made the right decision I rode with the crew towards Morrison, more downhill. Here we got on the c-470 bike path, which is up and down. As we continued to go up and down and up and down I felt my legs getting pretty tired. At this point we were at the 55 mile point and I was having serious doubts if I could finish the century.

The group stopped at a gas station and we filled up on water and I munched on a couple snickers bars. Even with the refuel, the next ten miles were miserable. I felt like a tank and my legs were made of lead. This is where the group really pulled through for me.

Most groups I ride with just let the weakest link fall off the back, never to be seen again. Not this crew. We rode as a group the entire way and the group only moved as fast as the slowest rider. That impressed me! Chris, once again pulled through for me and rode along side and talked to me. Offered me food and in general kept me turning the pedals.

Once we got to the 70 mile mark the snickers bars started kicking in and started feeling a lot better. The terrain leveled off and I no longer felt like a tank. I did however, know my limit and I assumed a position of draft and seldom took a lead position. Again, the crew was great at allowing me to just hang on and didn't expect (or judge) me based on my inability to take point.

At mile 82 we got our only flat tire of the day and we took a nice break. At this point I knew I was going to ride the century. Once we got back on the bike I loved watching the odometer as the miles ticked away. With each tick I would do the math in my head on how much more I had to get to the 100 mile mark.

As we passed the REI on the bike path in Denver the odometer read 92 miles and according to estimates the distance from REI to home was about 15 miles. I compartmentalized the extra 8 miles we would need to do beyond the 100 mile mark and decided to deal with it after I reached 100 miles.

When I reached the 100 mark on the odometer a feeling of pride and contentment filled me. At this point I knew where I was on the bike path and just knowing exactly where I was and how far I still had to go in order to get home made the last 10 miles of the ride obtainable.

All in all it was a great ride an and I couldn't have asked for a better crew of riders to join me in accomplishing this major riding milestone.

February 7, 2009

Changes in the season

Today I enjoyed the local trails and the last day of nice weather before the season resumes its regularly scheduled programming of cold and snowy.

January 31, 2009


I has been a really busy week and I have really been looking forward to a break and some personal time doing the stuff I like to do such as; riding my bike. I made plans to ride this morning. The only thing between me and my bike ride was switching out some tires. My road riding these days is done on a mountain bike because my road frame I have is broken. A problem I intend on fixing later this season with a purchase of a new road frame. However, in the interim I was planning on just riding my slicks on the DEAN, which are currently on my Surly for commuting to work.

I could just ride the UST tires I have on my DEAN, but they are practically new and they are not a cheap tire to replace. I could have ridden my Surly, but the group was doing a road ride and the single speed was not appropriate. So, I opted to take the slicks off my Surly and put them on my DEAN. The swap was going as planned until I noticed the tire bead of my slicks was not sitting properly on my UST rim.

Ten minutes of fighting the bead and I could feel the frustration growing. At that point I walked away for a couple minutes. I came to the conclusion that it wasn't worth stressing about and I would just order some new slicks that will fit on my UST rim, which meant I wasn't going to ride with the group today. A hard pill to swallow as I was looking forward to the ride.

I walked back to the tires and wheels I had pulled apart and started putting things back together as they were. The Surly got the slicks back and the UST tires fit very nicely on my UST rims, once again. However, after an hour of mucking around I was officially right back where I started an hour ago. Very frustrating!

Did I at least learn a lesson? Sure, I did the right thing in walking away when the frustration started to well rather than trying to force the situation to work. And I'm going to start planning a bit better for my riding needs and getting the equipment I need to avoid these situations and the frustration that follows.

January 25, 2009


I spent some time this weekend building up a set of wheels for my teammate, Chris. This was my first time lacing WTB hubs to ZTR rims. I was very pleased at how quickly and accurately I was able to dial in the wheels. I'm certain they will ride even better than they look.

Update: I checked in with Chris yesterday and the wheels are treating him well. He has some even better photos of the wheels on his steed (here).

Sent from my Verizon Wireless BlackBerry

"Pennies do not come from heaven. They have to be earned here on earth."
~Margaret Thatcher