Richard Jones' Log

Tue, 20 Nov 2007
Python presentation to teachers

Yesterday I presented a 60-minute teaser introduction to Python to a room of ICT teachers. The response was quite positive. At the same conference they're also being told about Squeak/eToys, Scratch, etc.

I emphasised that Python had it all: simple turtle (and turtle-like) modules for introducing basic concepts, but then a fully-featured, OO programming language for developing real-world, industrial-strength applications in. I think that had some resonance, since all the other solutions they were being presented with either were unfriendly to beginners (eg. C#, Java, etc) or had limited or no real-world application.

Unfortunately the presentation ran into a problem: I was demonstrating using a terminal-based interactive session, and the teachers were following along using IDLE (I was unaware they'd be doing that when I planned the presentation). So when it came to try out some block structures, they all got very confused because of the way IDLE indents code in the interactive mode. That would have left a bad impression :(

I then demoed VPython which left a good impression. The overall feedback was that the participants would be following up on Python.

This is where I think we're going to run into problems: the lack of overt support for ICT teachers in the form of sample curriculum. I cobbled together a handout (original Python-Flyer.odt) which will hopefully help them out when the come to later investigate things. I can't believe that no such thing exists for download on the Python website now (or at least I couldn't find it - nor could I upload my flyer to the wiki)

I'm hoping that there will be some follow-up training with teachers down the track...

I also had some good discussions with groups of teachers about how programming can be introduced to kids, and in particular how to present it to girls so it's interesting. On a bright note, one of the teachers said he's got a gender-balanced classroom! Clearly something's working :)

A toy I'd buy...

So you can get SD memory cards with built-in WiFi. I want a card with built-in GPS which intercepts JPEGs being written and inserts GPS coordinates into the EXIF data.

Thu, 15 Nov 2007
Blade Runner times a bazillion

I was going to blog about the screening of Blade Runner last night, but Rachel beat me to it. What she said.

Thu, 08 Nov 2007
Say hello to pyglet

pyglet is now out in public beta! W00t and congratulations Alex!

Some of you may recall me demoing (and talking about) pyglet at pycon earlier this year. Alex has put in a lot of work since then on the multimedia side of things, and generally cleaning up compatibility issues. Oh, and he's also used it in two pyweek challenges :)

pyglet provides an object-oriented programming interface for developing games and other visually-rich applications for Windows, Mac OS X and Linux. Some of the features of pyglet are:

  • No external dependencies or installation requirements. For most application and game requirements, pyglet needs nothing else besides Python, simplifying distribution and installation.
  • Take advantage of multiple windows and multi-monitor desktops. pyglet allows you to use as many windows as you need, and is fully aware of multi-monitor setups for use with fullscreen games.
  • Load images, sound, music and video in almost any format. pyglet can optionally use AVbin to play back audio formats such as MP3, OGG/Vorbis and WMA, and video formats such as DivX, MPEG-2, H.264, WMV and Xvid.

pyglet is provided under the BSD open-source license, allowing you to use it for both commerical and other open-source projects with very little restriction.

Let's just say that first point again: for Python 2.5 users, there's no external dependencies or installation requirements when you use pyglet in your application. Oh, and Alex has made AVBin trivial to use when you need wide-ranging multimedia file format support. How cool is that?

Sun, 04 Nov 2007
New camera

I've been wanting to get a Digital SLR for a very long time now. I even had one on my Amazon wishlist for a while there ;)

Thanks to a variety of factors - not the least of which was the price being AU$900 - I finally bought a Canon EOS 400D. And boy is it nice.

It's the third generation of their consumer digital SLR line, and it really does show. It has a bunch of "prosumer" features that I'd always thought would be nice to have some day, like the old 30D's 9-point AF, or the depth-of-field preview that the older non-digital prosumer models had. Unlike even my old film SLR this thing can shoot photos as quickly as I can focus them from power-on (under a second if I'm lucky). And the "basic" modes are so much more useful now than they were in the old SLR. For example, the Portrait mode doesn't just set a preference for wide aperature, it also isn't afraid to use fill-in flash (really, really well-exposed), sets the camera to continuous shot mode (to compensate for blinking ;) and tweaks the colour model slightly to emphasise flesh tones. And it can take 17 shots (3 per second) in continuous mode before it needs to push data to the memory card (presumably it can do more if I reduce resolution, but I've not tested).

I've got some new photos up on Flickr taken with the new camera.


Roundup Issue Tracker 1.4.0 released

Now that the craziness of the middle of the year has subsided I've found some time to release a new version of Roundup.

In this release

The metakit backend has been removed due to lack of maintenance and presence of good alternatives (in particular sqlite built into Python 2.5)

  • Roundup has a new xmlrpc frontend that gives access to a tracker using XMLRPC.
  • Dates can now be in the year-range 1-9999
  • Add simple anti-spam recipe to docs
  • Allow customisation of regular expressions used in email parsing, thanks Bruno Damour
  • Italian translation by Marco Ghidinelli
  • Multilinks take any iterable
  • config option: specify port and local hostname for SMTP connections
  • Tracker index templating (i.e. when roundup_server is serving multiple trackers) (sf bug 1058020)
  • config option: Limit nosy attachments based on size (Philipp Gortan)
  • roundup_server supports SSL via pyopenssl
  • templatable 404 not found messages (sf bug 1403287)
  • Unauthorized email includes a link to the registration page for the tracker
  • config options: control whether author info/email is included in email sent by roundup
  • support for receiving OpenPGP MIME messages (signed or encrypted)

There's also a ton of bugfixes.

See the PyPI page for more information and downloads.