Richard Jones' Log

Tue, 26 Apr 2005
Subversion - Roundup Integration

I've just put the final touches on the first release of Subversion - Roundup Integration. It handles modifying issues from svn commit messages, and displaying revision information in a Roundup tracker. The repos can be local or remote to the roundup tracker.

Wed, 20 Apr 2005
Another 48-hour game programming comp done

Well, that's another Ludum Dare 48-hour game programming competition finished. Well, except for the judging.

It's the second I've hosted, and the third I've competed in. By all accounts the competitors (52 finalists of 140+ signups) had a good time.

I wasn't inspired by the theme, "light & darkness" until the day after the competition finished. My game ended up being complete, playable, technically quite good and had sound effects (my first entry to do so). It's just not that good, as a game.

Some of the other entries are really quite stunning.

I'm considering hosting a pygame challenge in about 3 months (the next LD48 will be in October). It'll have some variations on the LD48 recipe (longer, teams, less restrictions on artwork used), but will only accept entries using Python (optionally using PyGame, PyOpenGL, OGRE, etc).

Fri, 15 Apr 2005
"Organic" water

I've just noticed a 10-liter container of water in our kitchen that is proudly labelled "organic". I presume they're trying to convince purchasers that "organic" water is somehow good for them. Well, I guess they convinced someone, though no-one here is actuall owning up to it. I for one fondly recall (mostly because I wasn't there ;) Sydney's last experiments in "organic" water supply.

Thu, 14 Apr 2005
SQL-based sessions are here again...

I've just spent an afternoon implementing a ZSQL Session Data Manager (if you can't access it it's pending publishing approval) for Zope. Requires a postgres DA. Just plug it in place of your current session_data object, and you're away. Has not had extensive use yet, but I will be intending to use it in our production site.

category: Python | permanent link
Please, Linux vendors, fix your Python!

Linux vendors of the world: the "distutils" package in the Python standard library is not an optional package and is required for installation of further Python software. It does not belong in an adjunct "development" package, it belongs in the Python core package.

I have taken to reporting such packaging as a bug in the relevant distributions. I encourage all Pythonistas to do the same.

Tue, 12 Apr 2005
Home Theater PC update

I've had some good success with the HTPC. I've got Digital TV coming in, DVDs playing and MythTV setup is in progress (the TV channel setup is a little tedious, but I'm getting there). My brother came over last Saturday and helped route the network cable. Still to do:

  1. Remote control. I received some instructions for geting the remote control working this morning, so I'll have a crack at that tonight.
  2. I'm using suboptimal video drivers (vesa) at the moment, so it runs at 75% CPU playing DVDs. It works though, so I'm happy waiting for fixes to the Unichrome driver. VIA have just open-sourced a large chunk of their video driver software, which is a great move. Unfortunately, it's mostly been for their EPIA-based boards, and not the K8M800-based board I have. I can be patient though.
  3. The AC3 audio is being processed by ALSA (and possibly mplayer) which I need to change so it's just passed through to my amp through the S/PDIF line.

I'm very happy with the hardware, as mentioned before. When it's down with the rest of the A/V gear, it's very quiet (can't hear it when sitting across the room on the couch). The DVD drive (or player?) is smart enough to not run "full speed ahead" when playing DVDs, so that drive isn't as noisy as it could be. Some of the driver issues have been a little annoying, but I knew what I was getting into. The one change I'll have to make soon is to disconnect or dim the hard-drive indicator light, as it's quite bright and unnecessary :)

I'll have a full writeup when I'm done. So far my notes just indicate where I deviated from the Myth(TV)ology HOWTO (and I'll feed my notes back to the author of that document too).

It's so refreshing not having the DVD player pop up "operation not permitted by disc" messages when you want to skip through the crap before movies :)

Mon, 11 Apr 2005
48-hour game programming comp, 5 days to go

We're 5 days out from the 48-hour game programming competition start so the theme voting has started. There's still time to sign up if you're interested!

category: Python | permanent link
Thu, 07 Apr 2005

Why the *^@#$* does Skype's Linux client insist on stealing the keyboard focus? Any random message that comes in will pop up a new IM window, and suddely you're typing into it. This is especially annoying when you've got half a dozen people IM'ing you randomly. You're responding to one, and blam, you're typing into a new window. Damn that gets annoying after a while.

Perhaps "PyPI" will do

After polling around for ideas, and looking at the various alternatives, nothing really grabs me. "PyPI" captures the nature of the beast we've created well-enough. It's not too silly. It's short. It's in place. I think I've decided that it'll do.

Maybe the potential for confusion was overstated because of the proximity with the PyPy people during the PyCon Sprints. The pronunciation really isn't an issue... It's only potentially confusing when you're in the same room as the PyPy people. Even then, it's pretty clear what you're talking about when some additional context is supplied (eg. "Is your package in PyPI?", "Grab XYZ from PyPI")

And hell, PyPI was named first :)

HTPC creation begins...

My HTPC components arrived on Tuesday. I went out and bought a Dremel yesterday and spent last night putting all the hardware together (well, and pulling some of the hardware apart ;)

After reading many articles and forum posts on the subject, I decided to just go ahead an cut out the grille at the back of the box:

I then placed all the parts into the box (sorry, I was so caught up I forgot to take photos)... with the result being:

The last shot is of the new box next to my current midi-tower desktop. The Shuttle boxes are really quite amazing to work with. They're really well-designed inside. Every component was easy to install and there's plenty of cable clips to keep things tidy. The box comes with a split (smaller) ATA cable for the optical drive already routed and clipped to the box. My only concern was with the SATA power lead -- it seems too short and under some stress to get to the HD. Also, I managed to plug the SATA drive into channel 1 instead of channel 0, so it didn't come up (minor panic) and moving that plug without taking out the whole drive chassis was difficult.

I tried to install Knoppmyth but it only supports /dev/hda as an install target, not /dev/sda. I need to get some more writeable CDs and then I'll try FC3 using this excellent and comprehensive HOWTO.

And boy, is the box quiet. When running, I can't hear it. Admittedly, my current desktop is quite noisy, and it's right next to the new box at the moment, but still... Of course, I can't compare the sound level against what it would be with the back grille still in place, but I have read enough to know that it would be louder.

Final parts list:

  1. Shuttle SK83G Barebone PC w/VIA AMD64 Skt754 board
  2. AMD Sempron 3100+ CPU, Socket754
  3. AverTV DVB-T 771 digital terrestrial TV PCI card w/remote control
  4. Western Digital Caviar 200Gb Serial ATA drive, 8mb cache, 7200RPM
  5. PC-3200 512MB GeIL 184-pin DDR SDRAM CAS 2.5 w/blue heatspreader
  6. LG 4163BBK Black 16x DVD±R, 4x DVD+R DL, 6x DVD-RW, etc. ;)
  7. 1 tube Cooler Master "High Performance" thermal paste

Note the last entry. That was my only real surprise with the whole thing - the Shuttle, and its bundled heatpipe, didn't come with any sort of thermal paste or pre-applied thermal bonding agent (the heatsinks that came with the Sempron and my previous AthlonXP purchase, for example, both had the latter). Thermal paste kinda scares me - I hope I got the amount correct (I have nightmares now about having applied too much and it dribbling down onto the motherboard and causing a short).

Tue, 05 Apr 2005
Subversion extension lessons

So I'm finding myself working with Subversion's Python API. Shh, it's a secret. Kinda. Anyway, I've a couple of little gems to impart:

  1. When building Subversion, you will need to configure && make && make install and make swig-py && make install-swig-py. You will then need to add /usr/local/lib/svn-python/ to your PYTHONPATH (typically). See subversion/bindings/swig/INSTALL in the Subversion source for full notes.
  2. From the beginning, import logging and use a top-level exception handler, as you're not going to get any debug information out of Subversion when you test using an svn commit. You can fake the environment that Subversion runs hooks in, but you really need to run an svn commit to be sure.
  3. Don't use the OS X download from if you want the Python bindings. And I've forgotten how to uninstall packages, so I've not tried the death-of-a-thousand-cuts install provided by yet (of course I'm grateful to both people for even packaging the software - I tried for about an hour to compile it manually with no luck). Update: the wsanchez packages don't include the python bindings either. Now attempting to compile from soruce.

So I wrote a bunch of "hook" code on the train this morning, but I can't actually test it until I get home to my Linux desktop. If anyone knows of any actual documentation for writing hooks, I'd be very grateful, as at the moment I'm guessing a lot. I also have to chuckle at the memory pools being passed around. Man, I so don't miss coding in C :)

category: Python | permanent link
Mon, 04 Apr 2005
PyPI renaming options

Update: Some people didn't notice the comment at the end of this post: I am not interested in new name sugggestions, thankyou!

Thanks everyone who's thrown their ideas into the mix. Here's the list of potential names for PyPI, drawn from a number of sources, limited to only those which had "seconds":

  • PyPI
  • Shrubbery
  • MOPP (Ministry of Python Packages)
  • Eggs
  • Eggcrate
  • Pylon
  • PyCAN
  • Vault

Personally, I'd rather not go with eggs or eggcrate, as that's only one of the formats of binary distribution (even if it might take over the Python binary distribution world). Pylon is just a little too obscure for me. PyPI is definitely out, given some feedback about potential misunderstandings ;). A number of us really don't like anything resembling CPAN. So the list really is:

  • Shrubbery
  • MOPP (Ministry of Python Packages)
  • Vault

Of those three, I'm tied between the last two. Anyone want to help me? Note that I'm not interested in new suggestions at this point :)