EuroPython 2010 was great. It came in three parts:
- The tutorials: I ran a full-day tutorial on SCons. The group was small, but that made for an intimate atmosphere which I thought worked well. I thought the day went well, but you'll have to find members of the group and ask them for a less biased opinion. A couple of people said they would be switching from Autotools to SCons immediately on returning to work, as a consequence of the tutorial.
The conference: I did the opening keynote: The Multicore Revolution: We've Only Just Begun. The original opening keynote person pulled out late in the conference planning and I was asked if I would step in. I had thought it was a 45min slot, but then realized it was 30min, only to have delays in starting leave me 14.5min. In the end I took 25mins, but the conference organizers were fine with that. The talk was a (major) reworking of my keynote from ACCU 2010 to shorten it and aim it at a Python audience. The audience seemed to enjoy the presentation as people kept coming up to me all the way through the conference saying how much they enjoyed it. The slides are here but probably won't mean much unless you were there. There will be a video once Michael Sparks has encoded and uploaded all the material recorded by his video cameras. Single biggest outcome of the presentation was that Guido van Rossum collared me for an hour after the presentation to chat about parallelism and the CPython GIL. My take on this is that the fact that the CPython PVM (Python Virtual Machine) is basically a sequential interpreter really doesn't matter: the future is about lots of smallish processors with local (distributed) memory so having one PVM per processor with the PVMs sending messages to each other. This line of reasoning is obviously a segue into my second presentation. I did a 45min presentation Python Parallelism using CSP. CSP here is Communicating Sequential Processes, a model of concurrency and parallelism created by Tony Hoare in the late 1970s and early 1980s. The core idea is that having many sequential processes with no shared memory but lots of channels down which messages can be passed gives a way of constructing concurrent and parallel applications that means you don't get undebuggable deadlocks and livelocks. The slides are here. There are two implementations of CSP for Python, PyCSP and Python- CSP. Currently there are some differencves but many similarities between them, hopefully soon the two projects can merge to provide a single Pythonic way of managing parallelism using CSP. All the other sessions I went to were great. I was really pleased when Guido, in his keynote Q&A session, mentioned that he had been to all the CSP-related sessions and was going away with a lot to think about.
The sprints: Sarah Mount organized a sprint to work on Python-CSP. Given that I am one of the team it was necessary to be there! We had a small but incredibly active group of people and achieved masses in the two days we had. It was great fun.
The only downside was that my server died during the conference and it has taken me a while to lash up something to cover the email and Web-based activities pending getting a new one.