Archive for November 2008

The Last Race

The traditional last race of the OBC Eastern Ontario Cyclocross Series is at Mooney’s Bay in Ottawa. A gigantic (to the gravitationally challenged) hill dominates the park while most of the rest of the park is fairly flat. Being the last race of the year, in Ottawa, in late November, early December, there is also often snow.

Last year, there was about a foot and a half and I took the path of cowardice and stayed at home. It seemed a good idea at the time, but a couple of months later, I found myself regretting it. Races like that are the stuff legends are made of. At the very least, they make decent war stories to tell and re-tell. I made a vow to myself that if there was a snowy race this year, I would definitely do it.

If I haven’t mentioned it in the past, I am a fair weather cyclist for the most part. I feel no shame in admitting this. I do not gain enjoyment from going out for a long ride in the rain. Even in the summer, if the weather is terrible, I am more likely to ride on the trainer for an hour or two than go outside. This is mostly pragmatic. My wrenching abilities are horrific and I have a general lack of manual dexterity. Bad weather almost always means you have to spend more time re-greasing and cleaning all sorts of fun parts of the bike. Since I like my gear to be at least in decent shape, I feel that the wiser course of action is generally to keep my bike out of the worst of the rain and it will generally last longer.

The point of this is that as a fair weather cyclist, I spent my few training hours in the last week or so indoors. Not outdoors in the snow. And in previous years, when I wasn’t going to ride in the snow anyhow, well, I didn’t ride in the snow. Today, there was somewhere between 6 and 10 cm of snow on the ground, this was far more than I had ever ridden in. This snow covered the entire course, save for a couple of very short sections in the parking lots.

I was able to come to the following conclusion: riding in snow is very difficult.

That is, of course, when you can ride. Much of the first lap was spent running. Later laps riding the entire thing was in order, but still. The bike does not go where you point it. If you get off balance slightly, the bike washes out from underneath you. You can actually go pretty good when you are on the hard pack snow in the middle of the course, but if you veer off that 4 inch wide trail, watch out. In terms of time, one section that I was clearing in about 45 seconds when I stayed on the little packed down bit took me nearly two minutes when I slid off of it. In hindsight I should have just stopped and put the bike back on the narrow bit, rather than try to ride back onto the hard-pack ridge, but at the time I was in pain and not thinking too terribly clearly.

Ah well. Last race of the season. I have some epic blisters on my hands from something, my lower back is basically locked up from all the pulling and pushing trying to mash the bike through the deeper bits of snow. But the bike is cleaner than it was before I started, so that’s good. I used some good old MEC brand cold weather chain oil and there is still a nice thin film of the stuff, so that’s awesome. I’ll just have to pull apart a few other bits of the bike, regrease everything and let it collect dust for a couple of months.

Probably my last OBC Cross race as well. Though if we end up coming out this way some fall, I will without question bring my cross bike out to enjoy the series again.

Season’s end

The biking season in Ottawa is pretty much finished for those of us fair weather cyclists. There will be a a final ‘cross race this weekend at Mooney’s Bay and that will be it for me. It’s time to wind down a bit, take some time off the bike and get ready for next year.

I’ve been on the bike about three times since the last race, all inside on the trainer. While riding on the trainer isn’t too terrible, it does get old fast. Still though, it only generally takes me a week or two without riding before I’m feeling that I need to get back in the saddle. I find that planning out the next season during period of low intensity or no intensity is often the best time. Energy is up, I’ve forgotten the pain of training and am only looking forward to the next set of races.

Next season is going to be a different one for me. Hillary and I will be moving to Vancouver in the next couple of months, so I am going to have to find entirely new series of races to keep me busy. My long term goal is to do the BC Bike Race in 2010, so next year is going to be my return to mountain biking to start getting ready for it. It sounds like my season is going to start out with The Salty Dog and, if I can get myself registered (sells out quickly I am told), the Test of Metal. It will be fun to get back into mountain biking more seriously again. My technical skills will be pretty rusty I think, but I’m hoping those will come back as the season progresses.

I’ve already been told that I will have to spend a weekend or two in the Rossland area and ride the Seven Summits as well as several other trails in the area that are best described as epic.

I’m fairly excited about road racing as well. There is a pretty impressive March series of road races put on by Team Escape Velocity that I’m planning on doing my best to attend most of. That and I fully intend on riding several of the major mountain passes that I did in 2007 in the cross Canada trip again. Hope-Princeton is definitely a doable ride and if I can talk some people into it, there are lots of good day trips in and around the Okanagan.

Book Review: Rails Recipes

A very important part of continually improving as a software developer is reading. I do that a fair bit and following the suggestion buried somewhere deep in Code Complete, I try to read at least a few technical books per year. I generally average one every 1-2 months and will occasionally ruminate on some of the better ones.

I took a stab at making a Ruby on Rails application a couple of years ago and when the start-up fell apart, I felt that I should use my now existing free time to give it another shot. The technology seemed fairly interesting and while my first crack ended up being relegated to the dust bin of my back up hard drive, it made me want to learn more about the language and framework. The project I have been working on for the past couple of weeks will likely get launched to family and friends in the next week or so and I’ll likely open it up to the public assuming there aren’t any real problems.

One thing that I discovered with Ruby on Rails the first time around is that the framework seemed almost sinister in it’s ability to detect a Java programmer. You’d go through, doing things, never quite sure what you have to write and what the framework does for you. Eventually, you’d step on metaphorical toes of Rails and things would silently stop working. Even worse, you’d get an exception or error from deep in the framework’s stack. It was as if there was some special code in place to detect common patterns from curious Java developers and would blow up in our faces. Probably not, but that’s what it felt like.

I picked up Rails Recipes a couple of weeks ago now and am very glad I did. The book is laid out in a fairly similar manner to the Gang of Four’s Design Patterns, in that it is really a collection of fairly unrelated strategies to conquer various problems. There are sections on how to improve your Rails testing, how to better use the built in Rails support for the Prototype and script.aculo.us Javascript libraries, common ActiveRecord (Rails data abstraction layer for those who haven’t used rails), etc.

The book is well written and to the point. I read through most of the recipes which were relevant to me in less than a day. What was really nice was that there were several how to guides for things which appear in many real projects, but are a bit more sophisticated than what usually appears in the Rails tutorials found in the wild on the Internet. Things like self referential many to many relationships are common enough that you have to know that there is support for it built into Rails, but exactly which incantations are required to correctly set it up are not exactly clear.

Rails Recipes is excellent for things like this. Tasks that are common and are a part of the framework, but are just complicated enough that the basic tutorials do not cover them. I had found that there was a large gap in documentation online between the Rails newbie guides and Rails expert solutions. This book fills that gap nicely.

Many books specific to languages and frameworks, once you have advanced beyond a certain proficiency level they cease to be useful. Rails Recipes is not immune to this and while I am not there yet, I can see the day when I look at the topics covered and think, “How quaint.” That said, though, I definitely feel that this book will help me get to that point more quickly and efficiently than I would have done alone or with the help of the documentation that is currently published on the Internet.

For me, this was definitely worth the investment. If you are a Rails guru, maybe skim it in a bookstore first before buying, but if you are just getting over the rookie phase and looking for the next logical step to take to improve your abilities, this is a pretty good book to go with.