Europython
I'm back home from Europython, which was held this year in Birmingham, UK. It was an intense week, I got to talk to some interesting people, and learned a lot from the talks. Herewith some disparate notes.
monocle: Twisted-like asynchronous Python at its best. Since PEP 342 we have proper coroutines, and this library makes it convenient to use them. It still looks a bit unnatural, and tricky to debug, but it's better than the typical callback-heavy Twisted style.
There was a panel on automated testing, and I came away with some interesting points: readable tests are more useful; a test runner should run parallel jobs; it's more useful to test high-level "money" paths than individual classes; don't let bad tests hold your code hostage.
Michael Brunton-Spall from The Guardian presented their public content API (they give away all their content, with one embedded advert at the end, for people to republish), check out their interactive query builder. He had another talk about how they use Google AppEngine to render parts of their web page, and do some cron work, but I missed it.
Daniel Marks gave an introductory talk on ZODB, very similar to my presentation at Wurbe last year, including examples with repoze.catalog. Nice to see people still enjoy playing with good old ZODB.
Mark Dickinson gave a math-nerdy talk about how repr for floats has been rewritten. In short: any given float value corresponds to a range of numbers, because it has limited precision; the trick is to print that value which requires the fewest characters.
Erik Groeneveld showed off his Meresco configuration and component system. Configuration is done at startup, in Python code that instantiates objects, and links them together. Each object's interface consists of its methods. Links are made as objects "observing" other objects, and an object can send mesasges to any or all of its observers. All in all, pleasantly simple and cleanly designed.
I managed to do some hacking during the conference: a fun experiment with PyObjC and WebKit and Monocle and the AppKit event loop, resulting in a web-like GUI library. Also, small improvements to MagicFolder, which I demoed in a lightning talk (tragically forgetting to describe what actually makes it cool).
I stayed for the two days of post-conference sprints, day one at PyPy, day two on CPython. With not much experience in their code bases, but great enthusiasm, I picked tasks that were too hard. In hindsight I should have aimed to resolve many simple issues.
Again I'm inspired to set up a user group in Bucharest, and who knows, it may happen. We have a nice meeting room at the office, with a projector, it can host 10 people for a coding dojo or some presentations.
