Daily Archives: April 27, 2010

Book Review: Plone 3 for Education by Erik Rose

Content Management Systems like Plone are very powerful tools for building web sites for various purposes ranging from a campus web presence to a web site for a course. While content management systems give us great power and a lot of fun extensibility, it takes a little skill before one starts to “think content”.

Most of us (myself included) when faced with making some new web thing we immediately think of hacking up some HTML or PHP in a file and throwing a few tables in a database. Instinctively we know that there must be a better way given that most of the web stuff we build are some variation on a bit of content, optional attachments, some metadata, a search capability, and some user interface and navigation bits. All too often we will decide to give a content management system a try, download it, get it up and running and then stare at it and think, “what do I do now?”. You know that your newly installed Plone can do what you want it to do, but all of your instincts, training, and experience lead you in the completely wrong direction.

This is where you really need a personal visit from Erik Rose from the Penn State WebLion team. He needs to come to your office and sit next to you for about a week and he needs to coach you in the “ways of Plone in Education Applications”. By the end of the week, you will start to “think Plone” and have some “Plone instincts” and have an inkling of the right way to go about solving the problem using Plone. Now if Erik were willing to come to all of our offices for a week, that might be a good solution for us, but since there are so many of us that need his help, it might be a little stressful for Erik. And it might be a bit expensive for you, paying Erik travel, expenses, and consulting for a week.

Erik’s book, Plone 3 for Education, is the next best thing to having Erik come for a week and coach you. Buy the book and read it from cover to cover before you even start to configure your Plone 3 instance. Your first goal is to get the lay of the landscape of Plone, the choices you will need to make, and the approaches you should take in solving a new problem. Think of Erik as your “Plone Coach”.

The book is a series of solutions to common problems, but does not stop at simply getting something installed and working. You also need to learn about secondary issues around the choices you are making as you configure, extend, and add content to your system. The book talks about more subtle details about each of the choices you make including: (1) which version of a plugin to install, (2) how to make designs that convert nicely from one version to another, (3) how to make Plone scale to a large number of simultaneous users, (4) how to approach a problem so you can divide up labor between administrators and departmental contributors, and so on.

As a person interested in teaching and learning, I loved the first chapter on “Creating Courses” – I wished it went further – perhaps an entire book could be dedicated to “How a Teacher can install their own Plone and use it as their own LMS.” After the first chapter, the rest of the book is aimed more at Plone administrators and walks you through a series of exercises/case studies to set up a campus or departmental Plone instance.

Right off the bat, in Chapter 2 (Calendaring), we are not simply told how to install a plugin, but instead, how to think about content and how to think about plugins and how to pick the right plugin for your needs. In Chapters 3 and 4 (Faculty/Staff Directory) we start to explore the pattern for extending functionality for particular local needs and as usual, it is done in a style where you are told what you need to do but not treated as a dummy or beginner. Throughout the book, it assumes that if you have gotten this far, you know how to find your way around a source tree and a user interface – so he focuses on what needs to be done and does not waste a lot of time documenting every single click.

Chapter 5 (Blogs and Forums) is another great example of how to morph “content” into a blog using a combination of convention and approach plus simple add-ons to move from a simple blog to a more feature-rich blog. You have lots of choices and the book talks about those choices, but also walks you right through to a good set of choices for most installations. In the chapter on media, I was particularly impressed with the power of the collective.flowplayer plug in. This adds an open source Flash Video player into Plone and makes it trivial to embed Flash Video on any page throughout Plone. As usual, the book shows us the ‘easy to do it’ and then shows us a few more powerful ways to embed audio and video as well as connecting your site to Apple’s iTunesU.

With the underlying ‘schemaless’ ZODB data storage, folks will often create a lot of different content types for their application. Forms automates the creating, updating, and management of these content types. While PloneFormGen (Chapter 7) takes a little getting used to, it ultimately can be very powerful and keep you from writing a bunch of custom code. One of my favorite pages of the book is page 116, “Doing Custom Processing”. Often form packages in other systems try to do everything in some complex UI with a myriad of options. In PloneFormGen, for custom processing – you just type in some Python! For a competent admin, I think that it is far easier to express some subtle custom rule in Python than some tricked up XML rules for form processing.

Chapters 9 and 10 talk about production aspects of your Plone project. It covers everything including load balancing, content caching, application servers, ZEO, back ends and talks about how to tune the system for performance, back the system up and recover your system from a backup. All of this is essential information that would take a long time to derive from web sites and documentation across many projects. It is nice to have this all in one place – particularly since often at the time you need this information, a system administrator might be under a bit of stress working on a performance problem or restoring data after a server crash.


Plone 3 for Education is as close as you can get to a week-long visit from an expert Plone consultant. It contains a blend of straightforward advice as to how to configure a Plone server for use in an Educational setting. However, the more important knowledge is how Erik teaches us how to ‘think like Plone’ and how to think about your Plone installation over the long term across many years, different applications, and different versions of Plone.