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.
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 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?
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.
"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.
- 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:firstname.lastname@example.org:/cvs, module name PyMeta, no password.
- MT -> Blogger importer - I did this in a few hours to move my MovableType site to Blogger.
(updated 2006-04-02 with a bunch of new links, including moving some projects to Launchpad. Oh, and added Subol.)
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.