34 hours of travel and some half-melted Tim Tams

From what I hear, the impression that I got of Boston last weekend was unrealistically good: golden leaves still hung from the trees in that way that you expect in Boston, and the weather was unusually warm. Even the rat I saw scurrying towards the tracks in the subway seemed quaint and Bostonian. Apparently I should have been freezing and cursing the horrible stinking city. I did get my share of frustrations as I was trying to leave the city, though. They involved a conspiratorial cabby that either cheated me or got cheated by me.

Anyway, I met up with glyph, exarkun, Itamar, Mike Salib, and orbitz (not quite as insane as I expected) while I was in Boston. I found out that Mike is actually the guy who gave the rather energetic talk on Starkiller a couple years ago at a PyCon. I also met Itamar's friend and flatmate Maggie when a group of us went to see Harry Potter Part 4: Revenge of the Philosopher's Sith Lord, or whatever it was.

Unfortunately I didn't get a chance to pair-program with glyph or exarkun on anything, but we did talk quite a bit about virtual world simulation frameworks, video games, persistence systems, and the respective commercial applications of Divmod and Nunatak. I enjoyed yammering on with them quite a lot after not seeing them for two years or however long it's been.

I thought of about three different things I want to blog about in the past few days, each one warranting an individual post, but I can't recall any of them.

Home for the holidays!

Yay, I recently booked my flights back to the US to visit for Thanksgiving. All up, a paltry AU$3300 (gulp). I think while I'm visiting the states I'll pick up some of those "dol-lars" to bring back to the Australian market to make up for some of the cost. Oh yeah, and while I'm there, I'll be visiting the Bostonians (glyph, exarkun, mesozoic, foom, itamar, ???) for a couple days before I move on to Pittsburgh to see my family and eat a feast. Exarkun is going to be letting me sleep on his futon, I think. I hope the mattress is not made out of the corpses of unrealised Twisted releases.

Unfortunately, it seems I picked the worst possible time to leave work for two weeks, as we're coming up on some critical deadlines soon. Oh well. The only things I'll work on for the next two weeks will be my D&D campaign (I'll blog about it after I run a session or two) and, well, work.

Twisted Sumo released

It contains Twisted 2.1.0, and the following subprojects:

Twisted Conch 0.6.0
Twisted Flow 0.1.0
Twisted Lore 0.1.0
Twisted Mail 0.2.0
Twisted Names 0.2.0
Twisted News 0.1.0
Twisted Pair 0.1.0
Twisted Runner 0.1.0
Twisted Web 0.5.0
Twisted Words 0.3.0
Zope Interface 3.1.0c1

See http://twistedmatrix.com/projects/core to download it.

Hopefully MFen will build Win32 installers based on this soon. :-)

Hey, who reckons it's time for Twisted 2.2?

How I imported my MovableType 2.6 blog to Blogger

I finally got tired of maintaining the amalgamation of Perl and BerkelyDB that is MovableType, so I decided to switch to Blogger. Here's how I did it.

First, I read the slightly confusing docs on the Atom API on Blogger's web site. Then I wrote some code that uses Twisted to talk to this API. Unfortunately, the API didn't support comment creation, and I definitely wanted to import comments, so I whipped out Ethereal and recorded a session of creating a comment via the web user interface. Fortunately, it was quite straightforward: a post to /login-comment.do with the parameters "blogID", "postID", and "postBody" (be sure to have the garbled-word comment verification turned off, or else it'll also want an argument for that). So I wrote some more Python/Twisted code to do that.

That took about 2 hours, I think. Given the python interface to the blogger API, I then needed to figure out how to extract the posts and comments from my existing MT blog. So I scribbled up a template in MT that includes all useful data in a nice, machine-readable format. Well, it wasn't nice, but it did the trick. I threw together some code to parse that format and call the blogger API to create all the posts, and that was that.

If you'd like to see it: code, MT template.

Code

"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man." -- George Bernard Shaw

These are in some order vaguely related to personal relevance.

Projects

  • Twisted - This is the only (relatively) widely successful project that I'm involved with so far. I'm a Twisted hacker as well as the release manager, and if you hadn't noticed, this is the project that inspired the first half of my handle.

  • Subol - Some experiments in lisp implementation I wrote with Python. Code available via bzr.

  • SomeGame - Some code that I hope to develop into a 2d action/adventure game, a la Secret of Mana. Code is available in SVN via svn://intarweb.us/svn/SomeGame/trunk
  • Threadless - A very small module that allows one to integrate Stackless "blocking" code into Twisted's Deferreds. This allows you to write synchronous-looking code when the analogous asynchronous code would be too ugly or hard to maintain. The current location of this code is in sandbox/radix/threadless.py in Twisted.

  • Infogreater - Pseudo-mindmapping software, influenced by FreeMind.
  • Imaginary - This is a virtual world framework built on Twisted which I contribute to often. More information on the web site. Web site coming.
  • Plonk - A (deprecated, unmaintained) "Web Site Engine" written on top of Twisted. Seriously, don't touch it. It's nasty.
  • PyMeta - Something I developed to facilitate a wiki-markup parser; It's inspired by Henry Baker's Common Lisp parsing engine, META. It's also not released yet, but CVS access is available at the CVSROOT :pserver:anon@cvs.twistedmatrix.com:/cvs, module name PyMeta, no password.
Small Hacks

(updated 2006-04-02 with a bunch of new links, including moving some projects to Launchpad. Oh, and added Subol.)

Debian Woody -> Ubuntu Breezy

I upgraded twistedmatrix.com from Debian Woody to Ubuntu Breezy today. It went surprisingly well, only taking a couple hours, but did have a few hitches. I decided to install dpkg, apt, ubuntu-minimal, and ubuntu-base before doing a full dist-upgrade, which probably saved me some pain.

The first problem involved xlibs(-dev) and xkeyboard-config. At some point, one of the config files from xlibs got moved to xkeyboard-config, and when apt was setting up xkeyboard-config, it was complaining about the fact that this file was already in another package (the old version of xlibs). I solved that by doing a 'dpkg --force-overwrite xlibs_...deb xkeyboard-config_...deb', which was easy enough.

The much nastier problem involved a bunch of programs that used libssl0.7.9 being broken, including ssh, which threw a wrench into the works. The error message was something absolutely heinous like "cannot enable executable stack as shared object requires: Error 14" or something similarly gruesome. Fortunately, Jafo, the coolest sysadmin ever, was on hand to bash his head against it for a short while. The eventual solution was to finish the upgrade (specifically, installing the new kernel from ubuntu) and rebooting the machine.

The eventual goal of this upgrade was to have a reasonable platform to install newer versions of Roundup on, and the goal of that was to make the twisted-bugs mailing list work again. I am happy to say that all of these goals are now accomplished.

That done, I quickly decided to spend my time on something much less strictly useful: moving my blog to Blogger, all the better for Google to track my activity.

It is late. Good Night.

Blogger

I might move my blog from http://radix.twistedmatrix.com to here.