Archive for 2007

January 31, 2007: 7:09 am: kpdErgMate, indoor-rowing

The Beta release is so close I can taste it. My goal is to get the first release to those of you in the Beta program sometime this week. I’ve entered feature-freeze for the first release, which means from this point forward I am just testing and refining ErgMate instead of adding new functionality.

Although intervals are not yet directly supported, you can calculate the start and stop times by hand and configure ErgMate to work based on those times. I did a series of 1 min on / 20 seconds off and then 40 seconds on / 20 seconds off intervals last week. The music would switch from a fast-paced driving tempo to 20 seconds of relaxing ( Pink Floyd’s Comfortably Numb – appropriate isn’t it? ) during the rest period.

One change in the way clips are played is that if you schedule two clips to play at the same time on the same channel, the 2nd clip will wait and play immediately after the first. Previously the 2nd clip would be skipped if another clip was playing when it was triggered. That worked well for clips scheduled to play every so many meters or seconds, but one-shot events could sometimes be missed. Let me know if you have any opinions on this.

o added preliminary support for PM4s
o fixed bug in real erg slide ratio calc
o tweaked power 10
o added final ergmate icon in different sizes
o created the setup program
o clips now queue up so that if it is time for a clip to play, but one is already playing on the channel, it will wait and play when the first clip is finished
o sample power 10/20s can now be listened to from the edit dialog
o integrated main menu cut/paste/copy
o started work on the screen cast
o added warning dialog when corrupt sound files are selected
o added firmware version checking

January 22, 2007: 6:21 am: kpdPython, programming

The slides from my Code Mash presentation on Test Driven Development in Python are now online at: http://powertwenty.com/kpd/downloads/TestDrivenDevelopmentInPython.pdf

It is an introduction to TDD, some tools that work well when doing TDD in python, and the results of a case study in TDD game development using pygame.

January 21, 2007: 6:52 pm: kpdErgTour, indoor-rowing, rowing

I’ve just uploaded a new version of Erg Tour. Erg Tour allows you to row various regatta courses on your PC using the Concept II Model D or E indoor rower and Google Earth.

This version supports the PM4. I do not have one to test ion myself, so I am just going by the documentation. Please let me know how it works if you do have a PM4. Thanks!

This version is tested with the latest Google Earth (4.0.2722) and version 4.0.2091. You do need to be running the Version 97 software in the PM3/4.

Erg Tour Documentation

Latest Version of Erg Tour

January 19, 2007: 7:31 pm: kpdPython, programming

Wow, CodeMash turned out to be a fabulous conference. The atmosphere was one of learning from others in a friendly way – people checked their religious wars at the door. It was a fun conference. Feeling a little under the weather, I didn’t have a chance to check out the water slide park, but the movie shown at the closing ‘can geeks surf in Ohio?’ leads me to believe that might not be a bad thing.

I enjoyed the Neal Ford and Bruce Eckel’s keynotes the best. Neal spoke of mini-domain languages. Bruce tied in some great shots of Burning Man with a thought-provoking talk on using your imagination and thinking outside normal limits.

Between Kevin Dangoor’s talk on TurboGears, David Stanek’s talks on Enterprise Python Architecture and Web Services in Python, Mark Ramm’s talk on SQLAlchemy ( which made me vow to look into this library), and my talk on TDD Python, the language was well represented.

I am happy with how my talk on Test-Driven Python went. I hope to post the slides some time soon. Running through the presentation at this month’s Cleveland Python Users’ Group pointed out some areas that need refining, especially around the live demos. Fortunately I had the time to make the changes before Code Mash.

Oh, and the winning program in the coding contest was by Matt from CLEPY and coded in Python. There was some debate about the grand prize in the contest because the winner did not code the solution but instead solved it manually due to a loophole in the requirements.

The conference organizers did a fabulous job pulling things together. As an attendee and speaker there were no hitches, and in fact they even had a speaker’s room and gift bags for each speaker. That was a nice consideration. The only hitch in the conference overall that I am aware of was some issues with audio recording of the earlier sessions, and that was really the fault of the resort and its confusion between male and female audio jacks.

In the end, there is nothing I’d have changed for this conference, other than hitting the water park next time and perhaps fairing a little better in the XBox 360 and WII drawings.

January 18, 2007: 11:29 am: kpdPython, programming

Just finished listening to Kevin Dangoor’s talk on TurboGears at Code Mash.

His talk was a general overview of TurboGears features. While I’m in the middle of prototyping a TG application, there were a few things I wasn’t aware of:

o the ease of which AJAX widgets can be incorporated into an application
o multiple templates based on accept parameter
o lots of good things to say about SQLAlchemy

I’ve taken away from this that TG evolution is going strong and that SQL Alchemy is well worth looking at. Good timing on the latter as there is a presentation later today on it.

January 14, 2007: 9:20 pm: kpdErgMate, indoor-rowing

Well today I did my second 2K of the season. I knocked 9 seconds off the season’s baseline, but the really cool thing is that it was the first full row I’ve done with ErgMate enabled. The rows have all been simulated until now.

Ergmate played a sequence I call ‘Old School’ as it replicates the old erg tape I used for 2.5K’s back in college.

The music channel was configured to play 3 songs in order ( Welcome to the Jungle, Push It, and Cult of Personality)
and cross-fade to the guitar solo portion of a Metallica song at 210 meters to go. Yes, definitely some old-school music.

The coxswain and coaching channels relayed information throughout the piece. I tend to need a bit of inspiration around 1100 meters remaining, so ErgMate played a clip of a real coxswain saying “Long and Strong.” 750 meters to go is the wall in a 2K erg test, so the coxswain called a power 10 at that point. It also called a power 20 for the final sprint starting at 230 meters to go.

Every 100 meters the coxswain called the split, and the coach announced the estimated finish time every 60 seconds. It called meters at 1000, and 500 to go to note milestones in the piece.

This test revealed a couple of needed tweaks to the program, but all-in-all it worked pretty well.

The final application icons are not in place, but the program configured with this sequence looks something like this (click for full-size):

January 12, 2007: 5:00 pm: kpdErgMate, indoor-rowing

The holidays were insanely busy and lately I’ve been working on a talk for Code Mash, so I haven’t had much time to devote to ErgMate since the last update. Today I was able to spend some time on it and accomplished the following:

o on clicking the erg-icon it will scan the network for ergs and connect to the first one found
o ErgMate now waits for the user to begin rowing before starting – it used to start as soon as it connected to the erg
o added two new clips: Estimated Meters at Finish (for fixed time rows) and Estimated Time at Finish (for fixed distance rows)

The first beta release won’t be long.

January 11, 2007: 7:46 am: kpdPython

Code Mash is a multi-language conference being held in Northern Ohio next week. I was happy to find out that my paper on Test Driven Python was accepted. The talk covers the basics of TDD, qualities of Python as a language that facilitate TDD, Python tools, and a case-study. I ran through the talk at last Monday’s CLEPYmeeting. I had some trouble with fonts and laptop to projector resolution, but nothing that can’t be resolved.

Python is also represented at Code Mash by fellow CLEPY member David Stanek, who is going to talk on Enterprise Python and Python web-services.

CodeMash – I'll be there!