Once again Logilab sponsored the EuroPython conference. We would like to thank
the organization team (especially John Pinner and Laura Creighton) for their
hard work. The Conservatoire is a very central location in Birmingham and
walking around the city center and along the canals was nice. The website was
helpful when preparing the trip and made it easy to find places where to eat and
stay. The conference program was full of talks about interesting topics.
I presented CubicWeb and spent a large part of my talk explaining what is the
semantic web and what features we need in the tools we will use to be part of
that web of data. I insisted on the fact that CubicWeb is made of two parts,
the web engine and the data repository, and that the repository can be used
without the web engine. I demonstrated this with a TurboGears application that
used the CubicWeb repository as its persistence layer. RQL in TurboGears! See my
slides and Reinout Van Rees' write-up.
Christian Tismer took over the development of Psyco a few months ago. He said he
recently removed some bugs that were show stoppers, including one that was
generating way too many recompilations. His new version looks very
promising. Performance improved, long numbers are supported, 64bit support may
become possible, generators work... and Stackless is about to be rebuilt on top of
Psyco! Psyco 2.0 should be out today.
I had a nice chat with Cosmin Basca about the Semantic Web. He suggested using
Mako as a templating language for CubicWeb. Cosmin is doing his PhD at DERI and
develops SurfRDF which is an Object-RDF mapper that wraps a SPARQL endpoint to
provide "discoverable" objects. See his slides and Reinout Van Rees' summary
of his talk.
I saw a lightning talk about the Nagare framework which refuses to use
templating languages, for the same reason we do not use them in CubicWeb. Is
their h.something the right way of doing things? The example reminds me of the
C++ concatenation operator. I am not really convinced with the continuation idea
since I have been for years a happy user of the reactor model that's implemented
in frameworks liked Twisted. Read the blog and documentation for more
information.
I had a chat with Jasper Op de Coul about Infrae's OAI Server and the work he
did to manage RDF data in Subversion and a relational database before publishing
it within a web app based on YUI. We commented code that handles books and
library catalogs. Part of my CubicWeb demo was about books in DBpedia and
cubicweb-book. He gave me a nice link to the WorldCat API.
Souheil Chelfouh showed me his work on Dolmen and Menhir. For several design
problems and framework architecture issues, we compared the solutions offered by
the Zope Toolkit library with the ones found by CubicWeb. I will have to read
more about Martian and Grok to make sure I understand the details of that
component architecture.
I had a chat with Martijn Faassen about packaging Python modules. A one sentence
summary would be that the Python community should agree on a meta-data format
that describes packages and their dependencies, then let everyone use the tool
he likes most to manage the installation and removal of software on his system.
I hope the work done during the last PyConUS and led by Tarek Ziadé arrived at the
same conclusion. Read David Cournapeau's blog entry about Python Packaging for
a detailed explanation of why the meta-data format is the way to go. By the way,
Martijn is the lead developer of Grok and Martian.
Godefroid Chapelle and I talked a lot about Zope Toolkit (ZTK) and CubicWeb. We
compared the way the two frameworks deal with pluggable components. ZTK has
adapters and a registry. CubicWeb does not use adapters as ZTK does, but has a
view selection mechanism that required a registry with more features than the
one used in ZTK. The ZTK registry only has to match a tuple (Interface, Class)
when looking for an adapter, whereas CubicWeb's registry has to find the views
that can be applied to a result set by checking various properties:
- interfaces: all items of first column implement the Calendar Interface,
- dimensions: more than one line, more than two columns,
- types: items of first column are numbers or dates,
- form: form contains key XYZ that has a value lower than 10,
- session: user is authenticated,
- etc.
As for Grok and Martian, I will have to look into the details to make sure
nothing evil is hinding there. I should also find time to compare zope.schema
and yams and write about it on this blog.
And if you want more information about the conference: