Monday, July 11

EuroPython 2005, continued

I promised to review some of the talks that I attended. I will cover those which were most memorable or useful.

Kit Blake presented the Document Library, which is basically a document archival application. What's interesting is that it's built using Zope 3 technologies. I think that this need for this type of applications is going to grow and it's nice to have a free implementation. Besides, since it's in Zope 3, it should be easy to integrate into other projects.

AlphaFlow, presented by Christian Theune, revealed to me how libraries can help manage workflow. Besides, I followed a link from AlphaFlow's webpage and found Workflow Patterns, which has some nice research on workflow.

Edward K. Ream, an impressive person by himself, introduced Leo, which is similar to an outliner, but much more powerful. It is not very easy to precisely define Leo because it is a generic tool to manage information. A nice introduction is on the What Is Leo page. I was quite fascinated with Leo, but found it to be imperfect in some regards. Maybe it's just me, but the Tkinter GUI looks outdated and the whole application does not look very polished. Leo is also very ambitious and provides its own editor, which I don't think I'd like to switch to, especially since I'm a vim user. It does provide some Emacs-like shortcuts. It has some novel ideas, but I ran out of patience trying to find an efficient way to work with it. I also did not want to lose many very useful tools that work on the standard filesystem and integrate with vim/Emacs. It also seems to me that versioning should be in the big picture too. It's obviously a hard problem though.

Two talks by Theo de Ridder were energizing and even frenetic. It's obvious that he is an extremely smart person, but most people from the audience lost the thread about halfway through his talks, myself included. The fact that I think it's my fault shows that the presentations were excellent in other regards.

Kamaelia, presented by Michael Sparks, is a framework for asynchronous applications constructed from components linked via communication channels. The nice thing is that Python generators are used to achieve multitasking, which makes components much easier to write. It was interesting to hear that the best way they found to design parallel systems was to first write a simple modularized version and parallelise afterwards. I liked the basic idea of small components talking together to do complex tasks. It's like a simple and elegant application of parallelization to component-based architectures, which are more frequently built as libraries or have much more complex synchronization mechanisms. I was a bit disappointed by the state of the project (they don't even have Kamaelia packaged for easy download...).

Both Steve Alexander's talks that I attended were brilliant as usual. In particular the talk about Zope 3 security was interesting to me. The slides elucidated the Zope 3 security mechanisms and offered a nice use case in Launchpad. Even though the presentation took 60 minutes, it didn't seem long at all (unlike the other one, about Leo, which could easily have been compressed).

Tommi Virtanen talked about Twisted news. We had used Twisted in SchoolTool previously and it's possible that we will be using it in the future (there is, or at least was, talk of Zope 3 integration with Twisted). It was nice to hear about all the new things being worked on.

The talk on PyPy by its main contributors Armin Rigo, Holger Krekel, Christian Tismer and Carl Friedrich Holz was lucid and helped understand the structure and goals of PyPy. I was impressed by their early demonstrations of simple Python code compilation to C, giving a tenfold speed increase. They have gone a fair way since the last Europython, where I attended their presentation on PyPy too. In fact, I participated in the PyPy sprint after the conference, I helped a bit with the standard library update. PyPy uses the CPython standard library, but there were a few issues to be resolved to update the library to that in Python 2.4.

Michael Hudson talked about Recoverable Exceptions. He was being a bit too apologetic, but the talk came out OK, at least it was interesting for me. He talked about smart handling of exceptions, that is, other behaviours than just aborting to the nearest except block without a way back when an exception is raised. While I'm currently quite satisfied with the standard exceptions that Python has, it's some food for thought.

Armin Rigo talked about greenlets, coroutines in Python. They are based on Python generators and use some C-level magic stack manipulation. The presentation helped me finally understand what PEP 342 is all about. Now that Guido van Rossum has accepted PEP 342 and I believe the implementation has been checked in, most of what greenlets offer will be in the Python core eventually.

Web Application testing using Selenium was not particularly impressive, perhaps because I knew most of the things being presented. The idea and technology behind Selenium itself is sound and very practical though. If you are doing web application development, be sure to have a close look.

Michael Salib is another one of those energetic speakers that deliver memorable talks. In this Europython he talked about Xapwrap, a wrapper for the Xapian text indexing library, and q2q, a peer-to-peer connection management protocol. The former might come out a viable alternative for Lucene in some cases. q2q is rather immature at the moment but it seems to be solving the right problems the right way. It's a pity that slides for the q2q presentation don't seem to be available, they were hilarious.

I spent most of my time on the Python lightning talks track rather than the Zope lightning talks. Python talks were so much more fun. I forgot most of the content, but I had a great time. I actually did a lightning talk about darcs, David Roundy's Revision Control System, which I found very useful. Michael Sparks, who spoke about Kamaelia, has a very nice summary of Python lightning talks. By the way, to answer his doubts about my talk: yes, darcs is not written in Python, but it's great for managing Python code as any other, a very useful tool for any developer. Steve Alexander did a talk on bazaar-NG, which also looks very promising, but at the moment in my opinion darcs is much more mature and usable.

Most of the descriptions were rather terse, you will have to excuse me for that. There is just too much to cover. Reinout van Rees has a more thorough overview of Europython 2005 talks that he attended (there is not much overlap with my list), you should have a look there too.