Richard Jones' Log

Tue, 31 Oct 2006
Thanks, Philip Crawford

Sorry, couldn't find your email address anywhere :)

category: Noise | permanent link
Tue, 31 Oct 2006
Looking for the editor of The Python Journal

Does anyone happen to know who used to sit behind the email address editor at

Wed, 25 Oct 2006
Shaun Tan's "The Arrival"

As Rachel mentioned, Shaun Tan had the Melbourne launch of The Arrival last night.

It's quite an amazing work that took Shaun four years to develop. It tells a story of migration in just over 120 pages of pencilled artwork. It's a "silent" graphic novel - there's no words. The images are incredibly evocative - very early on when the man is leaving his home there's a heart-breaking scene of him leaving his family. In particular, the image of the daughter looking up from her breakfast bowl to see the his packed suitcase has really stuck with me. It helps that Shaun has nailed the graphic novel format completely - his use of multiple panels is some of the best I've seen.

Shaun's website has sample images from the book, but as was said last night, you can't just flip through the book to random pages. Sure the artwork is gorgeous, but you'd completely miss the extra impact from the story itself.

Sun, 22 Oct 2006
The Color Project

This is a fascinating experiment mapping 33,000 English nouns to the colours they are represented by in online image searches.

You'll need to run it in Firefox to have any luck (doesn't work in Konq, even though they use the same Java VM in Linux and also no show in Safari), and sadly you'll need IE to use the advanced "click" feature and context menus. The word search still works in FF though.

link via Nat :)

Wed, 18 Oct 2006
Talk idea for any conference, anywhere...

"How to send automated email notifications and not get caught in spam filters"

I'm discovering that a small number of reviewers for OSDC papers never got their initial notification because it's sitting in their spam box (or, in some cases, a spam box upstream from their mail reader).

Interesting easy_install-related problem

I had a bug report for Roundup recently that the demo broke when using pytz. That's an optional module for Roundup - one of very few as I've strived over the years to keep the external dependencies to a minimum.

It turned out the user in question was running an older version of pytz. Upon upgrading to the latest version the user still has the same problem...

that didn't work for me.  Even though the latest version
2006g of pytz installed properly and "import pytz;
pytz.VERSION" returned "2006g", when I ran the
roundup install it failed. 

What I discovered is that matplotlib installs an older
version of pytz and matplotlib was ahead of pytz in
easy_install.pth.  Just a head's up in case you get more
bugs along this line.
Tue, 10 Oct 2006
My first youtube (gootube?)
Sat, 07 Oct 2006
Working with ctypes has taught me...

I've been doing a bit of ctypes-based work lately. It's taught me a few things:

  1. ctypes is way cool and IronPython (which Anthony tells me - on a daily basis - is cool) needs full support ASAP.
  2. setjmp / longjmp are really quite nasty and should be avoided. ctypes is going to have to grow special support for setjmp so it can interface to certain libraries.
  3. Setting up Structure classes for C structs is a pain* and a little dodgy to boot**. I've been using a lot of c_void_p to handle structures that are being passed around (if I don't need to access structure members). This would scare the willies out of a C programmer (it would have scared me a few years back). I've spent long enough programming Python that I'm automatically careful about what I pass to functions. You know, the "we're all consenting adults" thing. I don't just pass any old crap, I pass what the function expects. No static typing crutches needed.
  4. The catch with using c_void_p everywhere is that ctypes turns the value into a regular Python int. This can cause problems if you then need to pass the address of the pointer somewhere. My work-around is to define a dummy Structure which I can use in place of "void".

*: Sometimes C headers can go out of their way to be obscure. Have a look at freetype's headers some day, starting with ft2build.h

**: I'm quite concerned that the code I have defined structures for will behave poorly on platforms where c_int != 32 bits, etc. My working knowledge of such portability issues is limited though, unfortunately. I guess that if it was a real issue then ctypes would provide 8-, 16-, 32- and 64-bit base types to work with.

Thu, 05 Oct 2006
Roundup turned 5 years old (a few months back)

While I was doing the 1.2.0 release of Roundup a couple of days ago, I updated the project's website. At the bottom of the page I note how long I've been working on the code. The edit I made has only just sunk in. How about that. 5 years.