I had lots of fun at the ECLM 2006 in Hamburg over the weekend. Thanks to Edi and Arthur for organizing a great meeting, and to all the people who held presentations. Here are some ramblings about my trip.

Saturday

Plane landed at 1300 local time. A couple of hours later I had managed to have a look around the city (lots of buildings made of red brick, which I think looks lovely, and lots of graffiti which doesn't) and hook up with some of the #lisp gang. Meeting people like Luke Gorrie and Tim Daly is always lots of fun, and this was no exception. We stayed for a few hours at a cafe in the harbor area, drinking beer and talking nerd stuff, before staggering to the ECLM dinner.

The dinner was near the notorious Reeperbahn, which in daylight didn't look quite as threatening or sleazy as I'd expected. The dinner wasn't too bad (just a bit too heavy on the seafood for my tastes), but the table talk wasn't really as interesting as the discussions at the cafe. But at least the Reeperbahn looked a lot more sinister when I left around midnight, with the darkness, the heavy rain, and clusters of policemen standing around.

Sunday

Had an unhealthy breakfast (mmm... bacon, eggs, sausages and bacon) with Peter Van Eynde, who happened to be staying at the same hotel. We talked about various problems that he's encountered while maintaining all those Debian Lisp packages and about some bizarre low-level SBCL and CMUCL bugs. Then it was off to the meeting itself.

The talks

I didn't get much out of the AllegroGraph talk. In short, it's a a fast database for storing large amounts of RDF triplets. Jans Aasman (somewhat understandably) didn't tell any juicy implementation bits about why their system is superior to the competition, or (less understandably) why CL is a particularily good platform for implementing this kind of stuff. Instead most of the time was spent talking of the various deduction capabilities they've got layered on top of the database. The Semantic Web just makes my eyes glaze over, YMMV.

James Anderson's presentation was likewise somewhat disappointing. The system was for predicting the price of some composite index in the near future, and looked like a great way to lose money. For example in earlier version minor timing differences between runs could cause wild fluctuations in the predictions. They later fixed their program to be deterministic (multiple runs return the same result), but I don't see how that solves the underlying problem of the system being chaotic. IIRC James did bring up this point during the talk, but he seemed to hand-wave the problem away (mumble market-external data hocus pocus, or something). There were some interesting bits about the libraries they have for generic arithmetic, and how they're using them in a DSL-like manner for quickly prototyping new algorithms.

The Rucksack talk by Arthur Lemmens was good. He presented lots of details on the design decisions he'd made and how they affected other bits in the system. For example when a persistent object is modified, it's not modified on disk, but the new version is written to disk as a separate object. The old versions will then be GCd away at some point in the future. This would then have implications on how transactions are implemented, etc. Arthur also had lots of code samples showing how the various internals were implemented. I hoped to talk to Arthur about some of the stuff that he skipped over in the talk, but unfortunately never got the chance. Let's hope that Arthur (or someone else) can get the code into a state for a general release soon. Until then you need to ask him for the code.

The PCMan talk by several people from Cadence was a mixed bag. The program is for doing configuration management on a number of modules that have to be stored in different version control systems for licensing reasons. The talk had some interesting parts, like their distributed object system, but I wasn't really interested in the minute details of their database schema, or how simple it is to write a TCP server with TCL. And while I understood the reasoning for why the system was needed, I didn't really get why it was a particularly hard problem to solve.

Martin Cracauer from ITA Software talked about the low-level performance and memory-use optimizations they do for their airline search engine written in Lisp. Stuff like mapping 3GB of carefully arranged structured data in non-Lisp format into memory, and accessing it directly. At least I thought it was pretty interesting, despite already knowing parts of the story. I was amused that while mostly they try to extract every possible bit of speed from the system, they patched their CMUCL to always check array bounds even when compiling in fast mode.

Klaus Harbo talked about cl-muproc, an Erlang-inspired concurrency library for CL. Basically mailboxes, limited pattern-matching (can only match directly on the slots of the received message object, not on arbitrary data), allowing threads to know when other threads they're interested in die, and then some sugar for expressing some common patterns with these operations. It looked like a nice library, and there's certainly room for higher level concurrency abstractions in the CL world.

Everyone is saying that the SigLab talk by David McClain was great, and I agree. He was presenting a system for signal processing with a CL-based DSL, a standard library of common signal processing elements, a simulator and some real-time visualization tools for showing what was happening in the simulation. Normally I'd classify a talk on signal processing as boooring, but David was a very good speaker, and his enthusiasm about the software was contagious. The demos he showed were also cool ("here's a anti-missile control system I designed a few years back for distinguishing between real nuclear warheads and decoys", etc).

The non-talks

But of course the real reason to come to ECLM is talking to people between and after the presentations. I won't start summarizing that, but thanks to everyone with whom I had discussions. Too bad that there's never enough time to meet everyone.

Wearing a "SBCL: harming the software industry since 1999" T-shirt was probably a tactical error, since I ended up talking more about licensing issues and the effects of Open Source on the industry than I really wanted to.

Monday

I spent the whole monday aimlessly wandering around Hamburg and stumbling upon a lot of interesting places, like the eerily beautiful old warehouse district, Speicherstadt. The weather was sunny, and the city was pretty. Great fun.

The timing of the ECLM was excellent from my point of view, since it allowed me to escape from May Day, a public holiday that I really dislike. Basically the Finnish May Day consists of drinking in the streets until you puke, and thinking that communism is cool. The Germans seemed to skip the drinking part entirely; the city was mostly clean and quiet. Lots of families with small kids in the parks, etc. The other half wasn't skipped. I stumbled on a longish May Day parade, which ranged from the trite (5-year old kids carrying labour union flags) through the strange (the Iranian Socialist party?!) to the offensive (a banner that seemed to be accusing America of mass murder, followed closely by one proudly displaying pictures of Marx, Lenin, Stalin, Mao and probably Trotsky).

Pending further investigation

Several people thought I was from Sweden, and one thought that I was from the UK. Need to figure out what's causing this.