Where to start road racing in Vancouver

Many cities with a decent number of road racers end up with a weeknight ‘training’ race of some form. These are a chance for racers to get out and do what we love, generally with somewhat less pressure than in some of the larger weekend races.

The Lower Mainland is blessed with 3 such series. Escape Velocity runs the World Tuesday Night Championships. Phoenix Velo has a Wednesday night race out at the Mission Raceway. Finally, the Coastal Race Club runs a the CRC Challenge series on Thursdays.

This is pretty awesome.

I mostly race the Thursday nighters.

The circuit in South Richmond is in an industrial park. This means the road is wide and the turns are sweeping so you can take the corners at virtually any speed safely. There is only one part of the circuit where there is consistently a bit of a squeeze, a gentle left-right chicane on the backstretch and while the ideal line is maybe 2 bikes wide, a bunched field can go through this fairly safely.

It’s also pancake flat. This is a really nice feature for a weekly series for me as I don’t go uphill well. It’s also a nice feature as if I’m going out to a training race, I’m mostly interested in practicing racing. I’m not interested in hill repeats, I can do that by myself.

For these reasons, this is the best place to start racing bicycles on the road in the Lower Mainland.

Racing 2012

So with the birth of Isaac, training is kind of taking a back seat a bit. While I’m getting in some hours, it’s almost exclusively commuting time which won’t really help out with any of the longer races this year.

So this year is going to be about criteriums, mostly the Thursday night races down in Richmond as the flat and non-technical circuit is pretty good for a sprinter in questionable form. Hopefully I’ll make a decent showing at the Tour of Delta, though with a thrice downgraded Cat 2 sprinter likely in the field, I have my work cut out for me. Rant on that topic forthcoming.

My sprinting isn’t quite what it should be at this time of year either, I’m down 10% or so in my 5 second power, so that’s kind of unfortunate. On the other hand, that’s just raw power and can be trained fairly easily. I’m going to have a harder time with the longer harder races.

Those haven’t gone well this year. Life getting in the way meant that I ended up having to miss a couple of the Spring Series races that were more suited to me. The two races I have contested this year have both ended up with me going off the back. The first, at the beautiful Atomic circuit only lasted about 15km. The second was closer to 70km before I was left by myself in offthebackistan.

Again though, limited training time means that I really can’t expect to have the fitness to be around in the finish of a 2-3 hour road race. Yeah, I’ll go with that. So, I will continue to work on the sprint, the threshold efforts to last for a 45 minute criterium and we’ll call this year a rebuilding year after the successes of last year.

New language? Here is your first assignment in it.

So you know a handful of programming languages and now need to learn another one? Interesting.

One of the most important things when learning a new programming language is to have a couple of small programs in mind that you can implement. You don’t learn a language by reading about it, though that helps significantly. Also, you don’t learn a language by reading code, though once you have a handle on the syntax and semantics, this is invaluable to improving. You learn a language by writing code in it, running the code and debugging the code.

You don’t jump into a new language and write a dependency injection framework or build VisagePamphlet, the new killer social media application. You need to write a few small programs that you can personally validate are more or less correct with a test suite or simple manual execution.

The choice of what to write is kind of tricky, so here is what you should do :

Implement a Brainfuck Interpreter

WHAT.

If you have never attempted this, it might seem kind of insane, but it’s actually far less difficult than you may imagine. The language is so tiny that a reasonable implementation in any current mainstream language is going to be under 100 lines of code. But more importantly, this little program you are going to write requires:

  • variables
  • loops
  • if/else
  • switches
  • possibly recursion
  • thinking about types (if applicable)
  • string manipulation
  • IO

But this has an additional side benefit as well, you have to write Brainfuck programs to exercise and test out your new interpreter. This in and of itself is a challenge due to the limited features available in the language. In addition, once your test programs are working, there are a host of programs available on the Internet which you can download and throw at your interpreter.

Finally, depending on how deep you wish to go, this program is now an excellent launchpad for future experimentations into the language you wish to learn. Write something so you can dump the memory of the Brainfuck program. Add another pass to verify the program is valid before running it.