Archive for the ‘plone’ Category

World Plone Day 2010

Monday, April 26th, 2010

Mark your calendars, World Plone Day is on April 28th. World Plone Day is a free, annual, international event designed to introduce the Plone content management system to people outside of the Plone community. This year it is being held in 36 locations in 29 countries. The agenda usually contains a balance of business and technical topics. I just had a look at the Boston World Plone Day agenda and it looks particularly good.

If you have not looked at Plone recently, you should. With the official release of version 4.0 right around the corner, a lot of changes have happened. The architecture leverages more of the new Zope 3 technologies, performance has improved, and development techniques have evolved. A considerable amount of work is being done to make theming easier using tools like Deliverance. Also, the NoSQL movement hype may make the underlying object database (ZODB) less intimidating to architects. From a user perspective, the team has focused on some subtle improvements such as switching the default rich text editor to TinyMCE and creating a new default theme.

Plone 4 Features Announced

Monday, July 13th, 2009

I was catching up on my blog reading and noticed that the Plone community has announced what features will be in Plone 4. Version 4 will incorporate 40 “PLIPs” (“Plone Improvement Proposal:” the Plone project’s issue/enhancement tracking system). You can see the list of enhancements and bug fixes here. The release is expected to be completed in the end of 2009.

While, to me, 4.0 seems like a less ambitious release than 3.0, a few features caught my eye:

  • Tiny MCE replaces Kupu as the default WYSIWYG editor. From a user perspective, this is probably the most noticeable change. While a number of number rich text editors are supported through add-on modules (“Products”), Plone has been a bit of an outlier for using Kupu as the default, and best integrated editor. Plone has favored Kupu because of its simplicity and the well formed HTML that it produces. However, users tend to like all the buttons and additional formatting features offered by TinyMCE and FCK. TinyMCE is widely used as the standard editor in many open source and commercial CMSs. Plone will be in good company.
  • Cleaner handling of object references. Plone’s repository (an object database) is hierarchical like the Java Content Repository. In most cases, business users like the similarity with the familiar filesystem model. However, like file systems, there is a disadvantage when you want the same item to appear in more than one place in the content tree. Like most hierarchical repository systems, Plone has developed a referencing system (like a symbolic link or a shortcut). Version 4.0 of Plone will make references cleaner and easier for non-technical users to use.
  • Delegated group management. Plone has a good system for managing groups and roles. However, to this point, only a site manager can control group membership. With this release, there can be group owners who manage membership for the groups that they own.
  • jQuery will be bundled. jQuery, the popular AJAX framework is becoming nearly ubiquitous. Now Plone will ship with it bundled into the basic install. From this, I expect to see lots of little UI optimizations in the upcoming releases. Of course this will be balanced with Plone’s emphasis on accessibility.
  • Improvements to the self registration system. Plone can be configured to allow users to register to the site and be put into a pending status or become full blown members. 4.0 will have some enhancements to fine tune these configurations with more sophisticated behavior.
  • Better control over portlet visibility. Plone 4.0 will make is easier to configure rules that control when a portlet displays on page. For WordPress users, I think this is a little like Widget Logic. Drupal users will recognize this as part of the blocks framework. Hopefully, Plone will not ask the user to implement the display logic in code.
  • New default theme Plone 4 is going to ship with a new default theme based on the newly redesigned plone.org site. This will affect intranet implementations (which tend to do less custom theming work) than external website implementations.

Those are the big changes from what I can tell but I am sure that I am leaving things out. Please add any major oversights in the comments.

Great Backyard Plone Count

Monday, February 16th, 2009

Karl Horak, A.K.A. Schlepp, has started an initiative that he calls the Great Backyard Plone Count – GBPC. Modeled after the Audubon Society’s Great Backyard Bird Count, the GBPC attempts to survey Plone sites in the wild. The general idea is that everyone in the Plone Community spends time each day during the sample period looking for sites running Plone. I am a little to late to this as the dates for the count are February 13-16, 2009 so you will have to participate next year. One thing that I think could improve the GBPC support materials is a listing of what to look for when trying to identify a Plone site.

As a web content management consultant, I have a keen interest in knowing the CMS behind the site. In fact, I have a hard time visiting a site without trying to guess. Over the years, I have developed an awareness of the various “tells” associated with the different CMS platforms. I also like to keep a list of known sightings such as when Dries Buytaert posts announcements of new Drupal sitest. I got all excited when Deane Barker told me about the Backend Info Plugin for Firefox which is supposed to figure out what is running the site you are on. What a letdown when I learned how few technologies it knows about! It didn’t even catch obvious tells like the commas in the URLs of old Vignette Story Server sites or the word “Satellite” that appears in the URLs of so many FatWire sites. It didn’t even catch sites with “generator” meta tags.

Since reading about the GBPC, I never realized how much like bird watching my “hobby” of CMS identification is (only probably less cool). Does anyone else have this crazy hobby?

[Edit] The results are in.  People submitted 183 sites over the 96 hour collection period.  It looks like around 40 people participated.  Pretty good for a first go around.  I would expect with some more publicity, this could initiative could return much more results.  Karl did a sweep of Delicious links and found 2,326 tag with plone-site.  Of course, the thing that this method has over Delicious is that it gets to the internal sites running Plone.

Plone Foundation welcomes sponsorships from consultancies

Thursday, January 15th, 2009

The Plone Foundation, the non-profit that owns the Plone copyright and manages the Plone project, has initiated a program where Plone consultancies can sponsor the Plone project. In return for a $500 sponsorship fee, a sponsor will get its company logo placed on the Plone.net site (Plone.net is targeted at business people evaluating and using Plone) and the ability to place a Plone sponsor badge on its site. Premium sponsors will be placed on the top of the plone.net search results.

I think this is a good move for the Plone Foundation. It accomplishes the goals of helping Plone consultancies become more visible and it provides funding for all the great work that the Plone Foundation does. The $500 sponsorship fee is modest enough for individual practitioners to handle – especially considering all the benefit they get from being part of the Plone community.

Plone vs. MOSS

Monday, December 29th, 2008

Francesco Ciriaci has started a series comparing Plone and MOSS in response to a trend of companies choosing between these two platforms. This first article focuses on general features and licensing. Key differences are the obvious Microsoft dependency of MOSS (which could be a good or bad thing depending on your technology strategy), licensing costs, and the availability of modules.

Another usual suspect in a selection for an Intranet collaboration platform with some web publishing capabilities is Alfresco. The Alfresco marketing and engineering department have been beating on Microsoft’s door with their Share product. Alfresco also integrates with SharePoint by supporting the SharePoint Protocols.

While there is considerable functional overlap between these solutions, the pricing systems of these products are very different. Alfresco is sold through a per-CPU commercial licensing scheme (customers are advised not to use the free open source Community Edition). Typically this will work out to roughly 40K per year for a medium size company that actively uses the system. MOSS is sold on a per user basis. This is good for small to medium size companies but gets very expensive when MOSS spreads virally across very large companies (as it typically does). Plone is totally GPL licensed and has no recurring support fees (it can be somewhat difficult to find a commercial-style support program for Plone. Email me if you are looking for one. I know some people).

Discover Magazine on Plone case study

Monday, December 8th, 2008

The Plone.net site has a very good case study on Discover Magazine’s migration to Plone. The Discover Magazine site looks like a model magazine site: clean, careful presentation; lots of imagery and multi-media; registration only content; and synergy with the print edition. The article covers how Plone is used to manage content, user adoption, performance, integration with 3rd party applications, and content migration. It’s a very worthy read if you are considering Plone for your news or magazine site.

I am also encouraged to see that the Plone.net site (which is targeted to business users) is filling up with content. There are 34 case studies and the Plone sites directory contains 1,442 entries. I know that this was a key strategy to achieve the goal of increasing awareness about Plone and it is impressive to see the progress they have made.

CRX and Tar PM

Wednesday, November 12th, 2008

Thomas Müller has a blog post that nicely describes how the Tar PM works. Tar PM is the fastest of Day CRX’s pluggable persistence managers. The speed of Tar PM is a major reason why some companies go with the CRX rather than the free JCR reference implementation Apache JackRabbit.

The key to Tar PM’s speed is that it only supports write operations and these operations just append the new data to the end of one big file (a TAR file actually). What content objects are stored where is recorded in an index which is also read-only. To prevent limitless growth of the data file, you need to periodically run maintenance programs that compress the file be removing deleted records.

This may seem very familiar to those of you who have managed systems built on Zope (like Plone) and have had to “pack the database” – an operation that does essentially the same thing as the CRX tools plus remove unneeded intermediate versions that were defensively saved during transactions. From my experience with Zope, I know that having a huge, single file database can be scary but not necessarily dangerous. What do you do if you have a corrupt record in the middle of the file that causes the maintenance tools to crash? Usually there is some way to fix it but you need access to the experts. The only issue is that Zope and CRX experts are not as easily found as Oracle, MySQL, or MSSQL experts. Tar PM seems to improve on the ZODB by switching to a new TAR file after a certain point. Longtime readers of this blog may remember my ZOracle Series (part I, II, and III) that described a project to point the Zope Object Database (ZODB) to an Oracle database.

Although both Zope and Day have customers with huge repositories, the general rule of thumb is to keep things small when you can. In the ZODB world there are extensions that store large binary files outside of the database. In the JCR world, the strategy is to segment content into smaller repositories. For example, if you have lots of publications, put each one into its own JCR instance rather that combine them all into one. Companies that pursue this type of segmentation need to have some component in the architecture that can look across repositories and maintain collections of references to show an aggregated view. At the simplest level, this can be a search engine. At a more advanced level there could be hierarchical taxonomy system with references to items in different repositories.

This strategy runs against Oracle’s vision of all your company’s content neatly organized in one big database. I would argue that putting everything in one place does not necessarily mean that it is well managed or easy to find. More important than how the content is physically stored is that it is cohesively organized (that is, content that belongs together is stored together) and that there are uniform ways to access it. This is the strategy of the JCR and it plays well with service oriented architecture where different applications (services) that manage their own data can be combined to support cross-application business processes. When you have everything in the same database, the tendency is to do your integration at the data level (which can be brittle and proprietary) rather than the application (or service) level. I won’t deny that it is handy to have a database that can scale infinitely in size and there are applications that need very large storage (like archival systems). But trying to keep things small and segmented has its virtues as well. I am reminded of the frequently made point that storage is cheap but finding and managing the information can be very expensive.

Book Review: Professional Plone Development

Wednesday, July 2nd, 2008

I just finished Martin Aspeli’s Professional Plone Development. This is the third Plone book that I have read over the years and it is definitely the most advanced. Do not take the words “professional” and “development” in the title lightly. Martin is a brilliant developer with a long history in the Plone project so I would expect nothing less from him.

What I found most helpful about the book is its coverage of the many new concepts that were introduced in versions 2.5 and 3 of Plone. If you have been away from Plone for a while, it may be time to check back in. I think the coolest stuff is the incorporation of Zope 3 constructs. The overall trend with Zope 3 is to make the platform less monolithic and more modular. This allows you to use Zope components in everyday Python applications and to use more standard Python programming techniques in Zope applications. The core Plone community has been energized by these new ideas for a while but they are just now starting to work their way into the mainstream. If you don’t know about these concepts yet, you are starting to fall behind.

Considering the breadth, complexity, and innovativeness of Plone 3, Martin had a lot of ground to cover. Still, he was able to provide useful summaries and examples while keeping some semblance of narrative flow (don’t get too attached to his case example though. the book frequently wanders away from the example project of a movie theater website). Professional Plone Development helps orient readers and prepare them to embrace and leverage the concepts that advanced Plone developers use in successful projects. Of course, to complete his education, the developer will have to read the source code and other online resources and, of course, learn by doing. One thing I would like to see more of is references to online documentation (both in-line references and a “further reading” section at the end of each chapter).

The ideal reader of this book is someone who knows his way around Plone and is proficient in Python – perhaps someone who has read Plone Live (which is now, unfortunately, pretty outdated – so much for a constantly updating book) and has built a few sites. This kind of reader will really benefit from Martin’s best practices of test-first development and setting up an efficient development environment.

I also like how Martin de-mystifies the Zope platform which I have always regarded with fear and respect (except when I worked on a project to re-wire Zope to talk to an Oracle database rather than the ZODB: pt1, pt2, pt3). Martin reminds us that Zope is just a bunch of Python modules and it is OK to poke around and modify code to see how things work. Just remember to set the code back to how you found it or risk angering the mystical Zope spirit :)

Progress for Plone

Tuesday, May 27th, 2008

Donna “Snow Write” Snow has an update on the Aftermath of the 2008 Plone Strategic Planning Summit (my notes from the event). Donna is an early user and (one could say) matriarch of the Plone community (her analogy of Plone as a teenager certainly strengthens the case there). I like her description of GloWorm and other tools to soften the adjustment to Plone’s new Zope 3 oriented architecture.

Plone Strategic Summit results posted

Saturday, February 16th, 2008

Notes and action items from the Plone Strategic Planning Summit were just posted on the plone.org site. The notes are still a little rough and only hint all the information that was shared and there is still work to do to organize and plan the execution of these ideas. Probably the most informative page is the next steps email sent by Alex. This email contains pointers to a bunch of Trac tickets. Every one of them has an owner (or “champion”) to push them forward.