Plone Conference 2010 Report
I just came back from this year's Plone Conference in the beautiful English town of Bristol. So, let's summarize some of the impressions and the main talking points, including a brief look at the main direction Plone CMS is taking in the not so distant future.
First things first - it was my first time in Bristol and I gotta say this is some awesome small city, with lots of places worth taking time-out for during the conference: the Bristol Cathedral, SS Great Britain, the Suspension Bridge and a whole lot more.
The Conference was organized by the British web development company Netsight - and they did an excellent job - the event ran so smoothly. Fantastic!
Pre-Conference Sprint
For me, the conference started on Tuesday: with the micro pre-conference sprint where I joined a team working on the plone.app.event
PLIP (PLIP: Plone Improvement Proposal) (a new event content type for Plone with new features like multiple occurence dates, whole day events, etc...)
I have to say "thanks" to Netsight for providing a place for this sprint, too. This was quite new to me, and the day only really kicked off when I started working on the iCal event export features.
The Main Part: Conference Sessions
What followed were two days of conference sessions - the heart of any Plone Conference. Unfortunately it wasn't possible to participate in every session as there were up to 4 that ran in parallel at any one time - luckily, videos of all conference sessions are already online, so we can catch up with any presentation we missed during the conference.
A quick rundown of the most interesting and well delivered sessions I attended:
- "Enterprise Search in Plone using Solr" by Calvin Hendryx-Parker (Six Feet Up) - Solr is an external search engine written with Java that is useful not only when your site has too many content objects inside the Zope Catalog, but also when you want more sensitive and relevant site search results (you can fine tune the results, indicating for example that page title is more important than page description, etc.). It is also really easy to integrate it into Plone: just a few lines of configuration in buildout and adding one more Solr specific index into your catalog
- "Loose weight now, ask me how!" by Roché Compaan (Upfront Systems) - really innovative stuff delivered in this presentation; it was all about site optimization and speed; key points: a) use catalog as little as possible to be faster and smaller, b) Zope object database (ZODB) is not much slower than PostgreSQL for write access, c) Upfront Systems released upfront.diet package to make plone use Zope catalog only for content searches
- "Pain-free complex ldap scenarios" by Florian Friesdorf (BDA) - this session was of our interest because we're using LDAP to keep Plone users in one of our projects; we have a lot of user properties of different types there and it was problematic to handle them with existing solutions so we developed a few extensions to workaround a bunch of issues; on the other side BDA company implemented it's own approach to integrate LDAP users and groups into Plone by using Node based approach, so that's much easier to talk to your LDAP directory from python code
- "From the Client Side: Javascript and Plone" by Steve McMahon (Reid-McMahon) - as usually Steve delivered a great session, he is one of the best speakers in Plone community, he knows how to hold listeners attention; and material was quite interesting about past, present and possible future of javascript in Plone CMS
The Plone Future
The most important sessions I attended concerned themselves with the future of Plone, determining directions and targets.
- "Deco: Content editing in Plone 5" by Rob Gietema - Started in 2008 and described in the UI Proposal by Martin Aspeli, Geir Baekholt, Laurence Rowe and Alexander Limi, is the new page layout and rendering paradigm for Plone. This talk was about the progress made so far, showing a prototype of the layout and content editing in Plone 5. Deco will definitely make life easier for theme developers.
- "Design and development with Dexterity and convention-over-configuration"by Martin Aspeli - It was an opportunity to learn how to solve real-world development problems with the content type framework. Martin illustrated how to analyse system requirements to identify content types, views, adapters and utilities, and showed how these can be built using an convention-over-configuration techniques with five.grok. In the end, he explained how to write clean, intuitive code, quickly and efficiently. So the chances are Dexterity will become a new content type development paradigm after Archetypes.
- "Theming with Diazo" (former xdv) by Laurence Rowe - Diazo is a way to apply a style/theme contained in a static HTML web page (usually with related CSS, JavaScript and image resources) to a dynamic website created using any server-side technology. The theme is compiled down to an XSLT file which can then be deployed in Plone, Apache, Nginx, or a WSGI pipeline. This talk introduced the rules syntax; compared with Deliverance; and presented some examples of in production.
So, with all the above technologies to be included in future Plone releases, the future is definitely bright and exciting.
Open Spaces
After 2 days of Plone sessions, a day of Open Spaces followed. The Open Spaces meeting is a generic term describing a wide variety of different styles of meetings in which participants define the agenda with a relatively rigorous process, and may adjust it as the meeting proceeds. A large meeting of this sort is called an Open Space Conference or Unconference.
I was particularely interested in the sessions about Dexterity, Deco, New Event Type for Plone, and Documentation Team Meeting.
The first 2 are of interest to the entire Plone community as Dexterity and Deco are about to be included in future Plone releases, while the last two topics were of more personal interest to me. The team working on plone.app.even PLIP (including me) was interested in getting this feature accepted for upcoming Plone releases, thus we were discussing what's left to do to successfully finish with it in the upcoming week.
The Plone documentation related Open Space was about refactoring and improving the plone.org documentation section. Make it more usable, remove duplications, organize legacy content and keep it well organized in the future.
My interest was in putting together a wiki page with instructions for developers starting to contribute to the Plone core - this involved helping to simplify the process of getting new developers involved in the Plone development process, and to add further advices about "best practices" to the plone.org documentation. So I had an opportunity to get some advices on improving those pages directly from Plone core developers as well as from the Plone documentation team members.
Sprints
At the end of the conference we had 2 days of sprints where we had a lot of teams working on different topics. I continued with plone.app.event PLIP where I was able to finish my part. The second day I focused on the wiki pages for developers: how to get started with Plone core development.
I also prepared LDAP related code for the BDA guys that developed a completely different approach to interacting with LDAP from Plone.
We decided to integrate some of our LDAP related pieces into their approach, thus having a great Plone LDAP integration story.
Conclusion
Looking back, this year's conference was a blast. Well organized, great venue, as always an awesome Plone community... and last-but-not-least I really liked the Open-Spaces approach. It was so much more fun than sleeping through presentations during session ;-)
It's great to be part of the great Plone community, and I am already looking forward to the next Plone conference. The location will be determined in about 8 weeks: hand in your proposals by January 7th, the winning venue will be announced later that month.
