This is a day-by-day account of the Ninth Python Conference, held in Long Beach, California in March 2001. Originally this was a set of entries in my diary for March 2001.

Mon Mar 5 2001: Spent the morning leisurely finishing off my packing, making a few last-minute purchases for the trip, and then caught the shuttle up to BWI, where I had to cool my heels for over 3 hours until my flight's scheduled departure time. The 747 was less than a quarter occupied, so I had a whole row of seats to sprawl around in, a matter of importance when you're 6 feet tall. There was an inexplicable half hour wait for the luggage from the flight to show up on the baggage carousel, followed by about 20 minutes wait for a shuttle to arrive, and at that point it was about 2AM EST so I was well beyond tired and into zombie mode. Ping turned out to be on the same shuttle as me, having just arrived from San Francisco, and while I was dazed and taciturn, he happily sat on the shuttle and hacked on a new Python formatting thing, this one to present enhanced tracebacks that list, in addition to the usual stack frames, also the arguments to each function and the variables referenced on each line (determined by tokenizing the lines that show up in the traceback). Tue Mar 6 2001: IPC9, day 1: Long Beach is somewhat reminiscent of what I imagine Miami Beach is like; palm trees, eccentric vaguely Art Deco-ish architecture (left). As is usual for California, I didn't like it much.

Python9: AMK, Aahz, and Sean Reifschneider The conference started off with GvR's keynote speech, which summarized the past year of activity, and announced the creation of the Python Software Foundation. (Much of yesterday was apparently spent completing the organizational details necessary to bootstrap the organization into existence -- the members voted to approve the bylaws and appoint the board, who then approved the membership list, and that sort of thing.) The past year contained the turbulence of the Pythoneers moving from CNRI to BeOpen to Digital Creations, but most of the news was positive: 1.6 and 2.0 were released, along with the first beta of 2.1; development has successfully moved to SourceForge; downloads and newsgroup traffic continued to increase. Recent news included the release of Pippy, a Python fork for the PalmOS (GvR mentioned he actually spent his own money to upgrade to PalmOS 3.5 just to run it), and the changes to nested scopes in 2.1. At the break I talked to Sean Reifschneider about his work on the Catalog-SIG, and Aahz Maruch happened along, too. (Right; photo taken with my camera by someone who was passing by.)

Next were Paul Prescod's talks on implementing Web services and on SOAP: decent introductions... The following session included Jason Asbahr's talk about the next generation of Ultima Online, which is being implemented in Python, but was disappointingly slim on technical details. The other talks in that session, on a thin-client application and on the PyWX plug-in for AOLserver, were also pretty unmemorable.

Perhaps the most entertaining demo I saw at IPC9 was the Optical Music Recognition software (like OCR, except for sheet music), presented by Michael Droettboom of the Peabody Conservatory up in Baltimore. Having read up on OCR in the past, it was interesting to see its application to the complicated world of sheet music. A moderate level of detail on the recognition process was presented. This was followed by another talk, this one on mobile computing, that I can't really remember anything about. Uche's OpenTechnology.org talk then discussed Fourthought's highly XML-centric discussion software; the most interesting thing to me was RIL, an RDF Inference Language they've proposed that's roughly an XML transliteration of Prolog or CLIPS-like rule-based systems.

At the reception this evening, ActiveState announced the winners of their two programming awards. One award goes to someone selected by ActiveState staff, and the other was selected by a Web-based vote. The winner selected by ActiveState staff was the MEMS Exchange's own Greg Ward, for his work on the Distutils. Since he wasn't at the conference, I was asked to accept the award for him, but Dick Hardt didn't ask me to make a speech (which is kind of a pity, since I was standing there frantically putting together a few sentences in my head). Christian Tismer won the community vote and received the other award.

Python9: Frank Stajano, Jeremy Hylton Wed Mar 7 2001: IPC9, day 2: Attended /F's Pythonware session, featuring an interesting demo of the refactoring features in PythonWorks; I'll have to check it out and see if it would be helpful at work. While sitting in his talk, I was working on some slides for a lightning talk about QEL for the next session, since Jeremy still had some open slots for it. (left, kdvi is thankfully a reasonable presentation tool, as I just wrote LaTeX for my slides; I couldn't figure out KPresenter's UI at all! (Right: Frank Stajano and Jeremy Hylton confer about the plans for the session.)

Python9: Terrifying close-up of Barry Warsaw The Lightning Talk session was a highlight for me. Bernhard Herzog talked about Sketch; someone else talked about Middlekit, another ORDBMS mapper; Jim Fulton talked about conflict resolution in the ZODB, a topic which is probably quite useful for us at work; I did my talk, and got a good suggestion from Moshe to convert The Devil's Dictionary into QEL; David Beazley demoed WAD, which provides tracebacks for segfaults that occur in Python C extensions; Sean Reifschneider demoed his CPAN-like system "swalow" (one 'l'); Barry Warsaw (left) talked about the improved MIME handling library he's working on; and Christian Stork gave a talk on compressing abstract syntax trees that was more a description of what he plans to try than of something he's actually done.

Attended Paul Prescod's packaging BoF, and happily we emerged with a sense of direction, though it's too early to fix a master plan yet. I'm going to add generation of a metadata file to the 'sdist' distutil command in time for 2.1final, which will provide the necessary groundwork to begin experimentally running swalow over the 2.1 life cycle, with the aim of getting a completed solution into Python 2.2.

Then I split between two sessions; first, an applications session featuring a Python interface to the Naturally Speaking voice recognition system, and Jeff Elkner's talk on his ongoing use of Python for teaching high school students, which featured a entertaining work-in-progress video aimed at convincing other teachers to use Python. They need further funds to finish editing it, so I'm going to give them the first quarter's proceeds from the Python bookstore. Then I left to catch the tail end of Mark Hammond's PyXPCOM talk.

Mural of sea life I skipped Bruce Eckel's keynote speech; later others said it was quite fun, but instead I went to the Aquarium of the Pacific and definitely made the right choice. I initially thought the aquarium was the large round building opposite my hotel with the mural of sea life on it (right), but no, this was just the Long Beach arena where a boat show was being held. Going back to my hotel room for an only mildly helpful tourist map and 25 minutes of wandering around finally brought me to the aquarium itself.

Python9: Swimming auklet Python9: Auklets The aquarium's entry price is a steep $14.95 and it's a small institution that's easily covered in a bit over an hour, but it was still worth it. The exhibits I liked best were: the outside pool where rays stick their heads out of the water and you can stroke them (they feel firm and rubbery); the counter where you can touch a variety of sea life including anemones, sea cucumbers, and chitons; the murres and auklets (left and right); and finally, the sea otters. I loved the sea otters and sat on the ground in front of their tank for about 10 minutes. Most of the time they were spinning through the water, or zooming quickly from surface to bottom and back again, but once I put my hand up close to the glass, and one of the otters, instead of zooming past, stopped and stared right at me for three seconds, so that I was looking right into its whiskered face. (Telling this to Evelyn Mitchell later, her response was "So you had a Moment, then?")

Python9: Attendees at dinner Dinner for a big group including me was courtesy of Sean and Evelyn at the hotel restaurant. (right) I skipped the ActiveState party and just went back to the hotel to read a bit and to try to sleep.

Thu Mar 8 2001: IPC9 Developer's Day: The day turned out reasonably well for the topics I'm interested in, though I'm not sure much else was resolved. The day started off with Guido's plenary session, which mostly became a discussion of iterators; Ping presented the conclusions of the Iterators BoF session, and audience members asked questions and pointed out problems. I couldn't manage to care much, because the BoF proposal seems to be just a pointless bit of ... I can't even call it syntactic sugar, really...

Moshe's "Batteries Included" session went well, and halfway through he turned it over to me for the Catalog SIG, which also went well, though it did add a few more action items to my task list. (And I thought I was done with core Python hacking!)

The final session on Python 3000 was mostly content-free and a waste of time; people speculated vaguely about static typing and changes to the numeric model, but no really concrete proposals were made, and the whole discussion seemed pointless. I sat and worked on converting The Devil's Dictionary into QEL as Moshe had suggested the day before; Jeremy and Tim were at the back a few rows behind me quietly heckling. According to Jeremy, Tim said he'd faint if someone actually said something novel during the session; at no point was he in danger of having that happen.

Python9: Fred Drake After the final session, a group of people hung around for about an hour. Fred Drake (left and right) was going over the history of Python changes with a group of people. I simply drifted randomly from group to group during this time.

My overall memory of IPC9 will be a lukewarm one. While the conference was well organized (I saw no organizational glitches -- no broken microphones, no projector problems, smoothly working Internet access) and well attended (reportedly 330 attendees for the conference proper, up from 200-something last year), I didn't see any tremendously exciting papers; there were certainly moderately interesting ones, but not ones that opened up new application domains or new possibilities.

18 of us went out for dinner at a nearby bar, and then I headed for the airport to catch my 10:20PM flight. As I'd expected, I only got small snatches of fitful sleep on the plane, turning the night into an ordeal. At least the plane arrived at BWI 20 minutes early, which makes a nice change.


[Contact me]