<?xml version="1.0" encoding="UTF-8"?>
<posts type="array">
  <post>
    <body>&lt;a href="http://www.flickr.com/photos/5by5/4334803707/in/set-72157623365232900"&gt;&lt;img src="http://farm5.static.flickr.com/4021/4334803707_44534bd60e.jpg" alt="Nathan eating doughnuts" title="Nathan eating doughnuts, by 5by5" width="407" height="500" style="clear: all; float: right;" /&gt;&lt;/a&gt;

Last year, I [photographed the Krispy Kreme Challenge][kkc09]. This year, with WebAssign sponsoring the event, I took the opportunity to run the event while [Robin took photos][kkc10]. 

How did I do? 

Not bad. I finished in 1:21:25 in the casual division. I ate seven doughnuts on site, two fully on the way back and the remaining three after I crossed the finish line. After running about a mile and a quarter with no real training program to speak of, I switched over to fast walking.

I managed to keep the doughnuts down, though in a couple of stints at running on the way back, that seemed iffy. The after-effects aren't much to speak of, save the normal and completely expected pains of over-exertion.

Next year will be different.

Taking into account my own fitness level and the event logistics, I'm noting several things I want to do differently, in order to compete in the Challenger category:

- Be able to run four miles. I'm not even close to this right now. At a 10 minute pace, I should be able to complete the challenge in under an hour.
- Practice eating doughnuts. Easier, at least until considering I'm not talking about eating one or two, but six or nine, then running. This is [a different sort of brick][brick].
- Bring my own water. The Krispy Kreme water station was at the back of the parking lot. With 6,000 people or so trying to drink or just eat doughnuts &#8212; well, it was very crowded and you spend a lot of time trying to get something to drink.
- Plastic bag or paper towel. Something to help me mash multiple doughnuts together without getting my hands quite as glazed.
- Hand wipes. See the aforementioned glaze problem.
- Bottle of OJ or coffee on stand-by. I'd like something to cut the sweetness just a bit.

All-in-all, though, the weather stayed decent, I had fun and I didn't injure myself. That's a win.

  [kkc09]: http://www.flickr.com/photos/base10/sets/72157613478773364/
  [kkc10]: http://www.flickr.com/photos/5by5/sets/72157623365232900/
  [brick]: http://www.beginnertriathlete.com/Enrico%20Contolini/Introduction_to_bricks.htm
</body>
    <created-at type="datetime">2010-02-07T22:38:53-05:00</created-at>
    <headline>After-action review: Krispy Kreme Challenge 2010</headline>
    <id type="integer">55</id>
    <on-hold type="boolean">false</on-hold>
    <published-on type="date">2010-02-07</published-on>
    <slug>krispy-kreme-challenge</slug>
    <updated-at type="datetime">2010-02-07T22:39:12-05:00</updated-at>
  </post>
  <post>
    <body>I blogged about [smartphone-augmented travel][travel] over on the Crazy Like That blog. Check it out.

  [travel]: http://www.crazylikethat.com/blog/2010/02/smartphone-augmented-travel/</body>
    <created-at type="datetime">2010-02-07T15:30:26-05:00</created-at>
    <headline>Smartphone-augmented travel</headline>
    <id type="integer">54</id>
    <on-hold type="boolean">false</on-hold>
    <published-on type="date">2010-02-07</published-on>
    <slug>smartphone-travel</slug>
    <updated-at type="datetime">2010-02-07T15:31:15-05:00</updated-at>
  </post>
  <post>
    <body>This site and [the others][clt] comprising our [little company][rlc] run on a Virtual Private Server. I've long thought about a staging or lab environment, but never acted on it. However, in the course of tracking down some performance issues earlier this month, it occurred to me that a VMWare image running Ubuntu would be perfect and easy to set-up. So, I'm giving it a shot.

Basically, I'll have a much nicer way to experiment with adjustments to how I deploy Rails, have a place to learn Chef and be able to test system service configurations.&#160;I don't know why I didn't think of this sooner, but I'm [by no means the first][stage].

There's more to come, but it's easy set-up. I just needed to download VMWare Fusion, the Ubuntu server ISO and my production data to get rolling. The VM is configured to run as closely as I can to how my node is running, down to available memory and disk. I just need to set-up databases, then add the VM as a Capistrano target for a few Git repositories and I can get to experimentation.&#160;

  [clt]: http://www.crazylikethat.com
  [rlc]: http://www.rexluther.com
  [stage]: http://stackoverflow.com/questions/1539675/how-to-use-a-vm-to-create-a-rails-staging-environment</body>
    <created-at type="datetime">2010-01-25T00:51:29-05:00</created-at>
    <headline>A Virtual Staging Machine</headline>
    <id type="integer">53</id>
    <on-hold type="boolean">false</on-hold>
    <published-on type="date">2010-01-25</published-on>
    <slug>staging-virtual-machine</slug>
    <updated-at type="datetime">2010-01-25T00:58:58-05:00</updated-at>
  </post>
  <post>
    <body>One of [Chad Fowler][cf]'s recommendations in [*The Passionate Programmer*][passprog] is to practice [Code Kata][kata]. Similar to musicians practicing scales or a martial artist practicing forms, this isn't code that's meant for practical value beyond practice. The means is the end.

I started with Fowler's recommendation to implement programs that outputted the complete text of "99 bottles of beer on the wall" in a variety of languages. Very straightforward and I was pleased to observe/learn the following:

- Out of four languages attempted, I was able to get all four to work. Yay!
- I'm very familiar with Perl and Ruby. My career's been spent on those two languages.
- I'm very rusty with PHP. I used PHP as a primary language for web development for about a year, back around 2000. I used it again from roughly 2005 to early 2007 on a client project, but I wouldn't say I ever became conversant in the language. What I was looking at was bad code, too. In the time since, I've forgotten what little I did learn.
- I've never done anything with Python, but, for this exercise, it seemed pretty straight-forward.
- To accomplish the same task, the languages landed, in order of brevity, as follows: Python, Ruby, PHP, Perl.
- I don't find using php tags for shell scripting ideal. At all.
- I learned a bit more about Ruby's case/when statements. Most of my Ruby experience has been with Rails, and I've not found the need to write case/when statements.
- I wanted to use Perl 5.10's features. You have to explicitly ask for them. I don't like that so much. On the other hand, typing use strict; use warnings; doesn't bother me.

Finally, I had David A. Black's excellent [*The Well-Grounded Rubyist*][wgr] to draw from after seeing that my Ruby implementation was not doing what I expected. I used *PHP Bible* for finding what I needed for my PHP example. Language preference aside, there's a broad-spectrum of programming book quality. One end offers encouragement to dig deeper and demonstrates best-practices. The other end is a fire hose of language info to write the site your uncle gave you $200 to build that he wants Monday. Regardless of the language, I need to find the first type of documentation and avoid the second.

If you're interested, I've put all four languages into [one gist on GitHub][gist].

  [cf]:       http://www.chadfowler.com/
  [passprog]: http://pragprog.com/titles/cfcar2/the-passionate-programmer
  [kata]:     http://codekata.com/
  [wgr]:      http://www.manning.com/black2/
  [gist]:     http://gist.github.com/279674
</body>
    <created-at type="datetime">2010-01-17T21:00:48-05:00</created-at>
    <headline>Code Kata: 99 Bottles</headline>
    <id type="integer">52</id>
    <on-hold type="boolean">false</on-hold>
    <published-on type="date">2010-01-17</published-on>
    <slug>kata-99bottles</slug>
    <updated-at type="datetime">2010-01-17T21:01:18-05:00</updated-at>
  </post>
  <post>
    <body>My belated apologies. I found I've been serving a faulty Atom feed for the last little while. Should be fixed up now.</body>
    <created-at type="datetime">2010-01-13T23:09:53-05:00</created-at>
    <headline>Programming note</headline>
    <id type="integer">51</id>
    <on-hold type="boolean">false</on-hold>
    <published-on type="date">2010-01-13</published-on>
    <slug>programming-note</slug>
    <updated-at type="datetime">2010-01-13T23:10:14-05:00</updated-at>
  </post>
</posts>
