Fun running

Today marks the fourth annual AHS fun run I’ve participated in. I’ve been running routinely for just over 3 years, and in that time have completed about 160 laps of the University of Waterloo’s Ring Road (which is about 2.6 km).

I keep track of all my run times, and it is fascinating watching myself improve. So far, every year during the fun run I beat my previous best time by a comfortable margin, and I don’t match my fun run time until the following summer. These are my best times for each fun run I’ve done:

Beforehand During
2010 13:53 13:06
2011 12:54 12:29
2012 12:10 11:40
2013 11:24 10:23

I’m a bit amazed I was able to beat my best time by a full minute today; this of course raises the question of why I am able to improve so much during the fun run. Now, there are some physical differences from a typical ring run of mine which might make a difference:

  • The start location is different
  • The lap direction is opposite (for the last 3 years)
  • Instead of the sidewalk, the route is on the road (which is slightly longer, but also flatter)
  • There is a ~10 minute warmup beforehand
  • The run takes place in the morning, rather than the afternoon or evening

I wish I knew how much each of these factors contributed to the difference, but I suspect the main difference is actually psychological: namely, when I’m running with other people I have more motivation to push myself to run harder. Indeed, currently my legs feel noticeably more tired than usual, and I had a similar story last year.

Since running superficially seems like a purely physical activity, the thought that my psychological state has such a large impact on my performance comes as a surprise to me. It also raises the question: what is the optimal psychological state for running, and what can one do to help promote it?

Announcing Simple Go

As I’ve mentioned briefly, I am an amateur Go player. A big part of the appeal of the game to me is the elegance of the rules. The rules are so simple that as a programmer I almost felt obligated to translate the rules into actual code at some point. In fact, I’ve worked on-and-off on a Go implementation for some months now. The result:

simplego

I actually posted this on my website a month ago, but I just added the ability to save games and updated the compiled downloads, so I figure it’s time to officially announce it here.

As far as Go implementations go, it is rather basic; one unique feature that it has is the ability to play random games, i.e., when both players place their stones on the board randomly. I was curious the kinds of patterns that would arise in such games, and how such games would end, assuming that players don’t pass unless absolutely necessary and that no board position can ever repeat (superko). This was another impetus for writing Simple Go, since I couldn’t find any other program which allowed me to try this.

Simple Go was written in C++ using the cross-platform library wxWidgets. The source code is available on GitHub, but pre-compiled binaries are also available on its webpage.

Enjoy – I quite enjoyed writing it.