Strong, dynamic

Friday, October 30, 2009

I'd like an invitation to Google Wave so I can start porting my awesome open source dicebot, Vellumbot, to the new platform. (I've been talking about doing this since before it was cool--indeed, since before I knew Wave came with its own, apparently non-awesome dicebot.)

Saturday, February 21, 2009

The newest series of PA D&D Podcasts has started out at the maximum level for funny. I was literally - not figuratively, not "LOL" but literally by which I mean with my literal lungs - walking around laughing out loud at this in a supermarket.

Fixed a minor bug in dpkg-origins. It would crash when a partially-configured but obsoleted package was found in the index. (You might see this in dpkg -l as 'uc' or 'ic'.) You would probably see this after a dist-upgrade, like I did. Fixed this bug.

Tuesday, January 06, 2009

A little anecdote. I'm slowly trying to get my team to wrap their heads around the idea that any new feature must be accompanied by unit tests as we near the point where they are absolutely required to write unit tests before they write code and the tests become part of the deliverable. One thing I know is that if you haven't written a lot of unit tests yet, you don't really understand the value of them except very much in the abstract, so I am also trying to point out the value to him as we go.

One of my developers is writing a function that uses the compiler module to inspect some Python code, it's not really important why. He had just learned how to write some unit tests in Javascript and I was teaching him how to use the stdlib unittest module for his unit tests written in Python. His implementation isn't written yet, he is just starting to figure out what the interfaces look like, which is a great time to start writing failing tests.

.. and run that test, which he did, and it failed, and I said "good". I started pointing out to him ways he could make very minor modifications to his code to make it easier to test (not nearly enough has been written on the subject of making code easier to test, BTW--bloggers, get on it!).

One of the improvements I asked him to make was to move some functions into another, more relevant module than the one he was working in. He did that, then wrote version two of the unit test:

What the.. oh right! He imported compiler in the original module, but forgot to move it to the new module. The unit test - so far, one line long and expected to fail in a relatively uninteresting way, had already found a bug. My favorite part was that it happened this way to someone learning why we put so much value on unit tests.