Thursday, March 11, 2010

Plone 4 is fast!

Plone 4 is about to be released. It just became beta yesterday and I did a quick experiment. I took Plone4, a custom made skin, xdv to apply the skin, some useful add ons like PloneFlashUpload and collective.plonetruegallery. No chamaeleon for now. Then I added a handful of images and created some pages. All in all a small site, but a real world example as it will go live in a few days.

People already reported on the speed improvement for anonymous access (Hanno and Matt). I can confirm the results. But today I am concerned about the content manager, and editing for the content manager also improved a lot.

I want to test the real world feeling. So to test this, I installed the site at the provider, added nginx and varnish in front. Just standard setups, no tweaking. Also nginx does not add any expires header, but I added a policy in the good old caching_policy_manager. No CacheFu either, as I think there is none yet for Plone4. So I also do not have any etags out of the box.

I do my testing in Firefox with yslow installed to get a second statement when the page is loaded. Here are my logged-in results:

  • Loading the text-only start page: 293ms (onload: 990ms)
  • Loading a page with an image galery: 442ms (onload: 1.39s)
  • Loading the edit form (clicking edit):  1s (onload: 1.26s)
  • Made a change and saved: 537ms (onload: 1.4s)

For a content editor, this is a dream-come-true situation.

As a next test, we will try this with a lot of content. The catalog has recently been a bottleneck for us and this makes editing no fun anymore. I am enthusiastic to see what improvements Plone 4 will bring here.

Reviewing "Plone 3 for Education"

Packt has published a new Plone 3 book by Erik Rose. It's called Plone 3 for Education and is not directed to developers for a change. This is a long anticipated relief. It seems that the need for in-depth technical books like Professional Plone Development and Plone 3 Theming is satisfied. Now we get books describing how to apply Plone successfully. People often believe that if you want to use a CMS, you "have to" do development. This is not true, and this book shows hands-on examples how to configure Plone and 3rd-party products to match the needs.

No Hello World!
Oh how relieved I was when I saw that the book does recommend to create a page first and type Hello World. After only 9 pages, you get to add your first Course.

I also noted very positive that the book does talk about technical details where it is necessary (normal folders vs large folders) but also reminds the reader repeatedly to rethink his requirements by giving plenty of examples from the educational experience the author has. While Plone certainly has the qualities to cope with enterprise scale requirements, he shows alternatives how existing resources can be reused to get started quickly.

Typical Needs
The book covers Plone extensions which are often requested in the educational environment, at least from my experience. So I was positively surprised to recognize a lot. It covers

  • Courses
  • Calendar (incl recurring events!)
  • Faculty and Staff Directory
  • Blogs and Forums
  • Audio and Video
  • Forms
  • Styling
  • and Administration (setup, scaling, caching, maintenance, backup and upgrade)
So if you are happy with this scope and have a little technical affinity or a friendly admin who can do the initial setup, you are ready to create your site yourself. The interesting part here is that the admin is really only needed for the initial installation. Afterwards, the book guides you through setting up the structure and adding the content. Without the need of the admin. Which is the main intention of the book also stated in its subtitle Break the webmaster bottleneck by empowering instructors and staff.

I think that this book makes Plone accessible for non-technical people and shows thus that it is not restricted to enterprise set-ups but can well function in small and medium environments. All together I clearly recommend this. Not only for educational institutions, though. Also if you plan a site with a certain degree of customer-involvement, this might be the perfect start!

You can get the book from Packt (also as pdf) or Amazon.

Saturday, November 10, 2007

Rotating logs can be included

Finally another small but very useful product. RotateZlogs from Zope
Because of, there is one component less to worry about in an installation.

Thursday, November 8, 2007

Plone Performance

Plone has the image of being slow - an image which is not appropriate if you think about all the flexibility and the things you can do with plone. Obviously also in this case flexibility and speed are reversely proportional to each other. Therefore if you want to keep that flexibility you simply need to take some steps to speed up again. And then, plone is everything else but slow...
First, here is a pointer to a somewhat out of date performance comparition dated December 2004 and evaluates Plone 2.0.
Even if the Plone version is not up to date anymore, the effects than can be achieved by caching are interesting.
Plone 2.5 and 3 can also take advantage of CacheFu, a Product that optimizes your Plone for cacheability.
Recent efforts to speed up Plone have been undertaken during the Plone Performance Sprint in Copenhagen. The page also describes some tools that can be used for benchmarking.
The traditional ways for speeding up Plone usually include putting Apache and Squid in front of it. Recently there are some new kids on the block, namely NginX and Varnish which are definitely worth a try for very high performance. Some videos on an implementation by lovely systems and the slides.
Of course scripts in your site which have a long running time can also be responsible for slowness. Why not cache them? Or as Joel Burton says: Plone Does a lot - This is Good - This can be Bad. There are very extensive slides from the talk he held at the 2007 Plone Conference names High Performance Plone.
Developers should take a look at the performance section of the Plone Developer Reference to avoide common mistakes.


Performance is very popular at the moment. Carlos De La Guardia blogs about frontend improvements. Yahoo has put up developer rules for this and provides a plugin to measure them. Using the plugin on a CacheFu enabled Plone 3 site, it receives 100 points!