Jan 09


Kinesis Advantage Keyboard

Kinesis Advantage Keyboard

Back when I was finishing my undergrad degree, my final year project (which is a big part of the final degree exams in Trinity) was in Java on a Sun SPARCstation 4 (at the time, one of the more powerful boxen you could get access to as an undergrad). The project was a fair bit of fun, writing a robot controller in Java just as 1.2 was coming out of beta. Lots of long hours were spent in that lab with three or four others working on their projects, and quite a few all-nighters interspersed with the odd game of networked bomberman ūüėÄ I even managed to get a published paper out of it.



The downside to all of this fun was the Type 5 keyboard.

Sun Type 5 Keyboard

Sun Type 5 Keyboard

Continue reading →

Jan 09

Kada2.py output

Ray asked to see what the output of the kada2 script I’ve been working on looks like – only problem is that I’ve been using a real datafile for development, so it has people’s names in it. To avoid any shoutyness, one quick python script to read in the members.kda file and write it back out to test.kda with all the names changed to John Smith; then a quick run with this file as the members.kda file and some imagemagick conversions and viola, the current kada.py output. Continue reading →

Jan 09


As I mentioned before, after writing a python script to read in Kada’s data files on the rifle club shooters’ scores and calculate new ladders, the next step is output that’s a bit fancier than the straight ASCII text dump:

Novice Air Ladder
- - - - - - - - - - - - - - - -

 1         Joe D'Plumber    45  91.833    94
 2         Joe D'Plumber    36  87.500    91
 3         Joe D'Plumber    18  87.167    92
 4         Joe D'Plumber    16  85.833    91
 5         Joe D'Plumber    26  85.167    92
 6         Joe D'Plumber    31  81.167    87
          Tito D'Builder     2  76.000    76  *
 7         Joe D'Plumber     7  74.000    82
          Tito D'Builder     2  69.000    75  *
          Tito D'Builder     2  67.000    68  *
          Tito D'Builder     2  66.000    70  *
          Tito D'Builder     1  64.000    64  *
 8         Joe D'Plumber    10  63.167    78
          Tito D'Builder     1  62.000    62  *
 9         Joe D'Plumber     4  61.750    76
          Tito D'Builder     2  61.500    72  *
          Tito D'Builder     1  60.000    60  *
          Tito D'Builder     2  55.500    71  *
          Tito D'Builder     2  55.000    58  *
10         Joe D'Plumber     3  53.667    62
          Tito D'Builder     1  52.000    52  *
          Tito D'Builder     1  50.000    50  *
          Tito D'Builder     1  49.000    49  *

This does the basic job that the original system did (actually, it does a bit more – the asterisks mark out those shooters who haven’t yet shot enough cards to get on the ladder, but they’re still listed as an incentive for them to shoot more cards – the current system doesn’t do this). It’s not really doing all that can be done, however, and it’s certainly not all that fancy-looking. Especially in a scripting language, where the whole point is to do fancy stuff quickly through toolkits. So, what I wanted was PDF output (because these are printed off and posted up in the club), graphics like logos and so on, but also some graphs and charts with some meaningful data.

One of the graphs I wanted to include was one of Edward Tufte’s many good ideas, sparklines. Small graphs which summarise the state of play of a variable in an easy to read, inline format (meaning that it’s in the flow of the text itself as if english had suddenly become a pictographic language for a moment. They seemed perfect to show a high-level view of how the shooters were doing over the course of the year. Also, it would be nice to display the various breakdowns and analysis of membership (by gender, experience, college year, etc) in a graphical form – there’s nothing wrong with the raw data, but it’s almost always easier and faster to take in analysis that has a graphical expression. So pie charts and such would be an improvement. Continue reading →