Archive for the ‘plone’ Category

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.

Plone Strategic Planning Session

Saturday, February 9th, 2008

[Added links to Jon and Alex's blogs]

I am heading back home from Mountain View after spending a day at the Plone Strategic Planning Session where 50 Plonistas are meeting for three days at the Google campus to discuss the future of Plone. Kudos to the Plone Community for proactively thinking about growth and improvement when things are going well for Plone. Too often these discussions happen during crisis when options and opportunities are limited.

Yesterday (day one) focused on “marketing” and today is about technology. Tomorrow attendees will organize the action items that came out of the first two days. Jon Stahl from One/Northwest did a wonderful job of organizing the event and directing the sessions (he even got a Kentuckian to “twinkle” – you had to be there). The Plone community is lucky to have leaders like Jon. That Jon comes from a non-technical background shows how the Plone community has been able to attract, engage, and leverage non-technical people. Plone co-founder Alexander Limi’s assertion that he is not a technologist (although he is a closet geek) has helped the Plone culture be more inviting to non-technologists and give them pathways to leadership. This aspect of the Plone community is somewhat rare in open source software (and most commercial software too). I would say that the closest thing is in the Joomla! and Drupal communities that have active marketplaces for designers to sell and share themes.

The biggest issue that the group struggled with is the one that confounds the whole content management industry: is a CMS a framework or a product? This came up a number of times in pre-conference blog posts and email threads as well as during exercises like composing elevator pitches. The elevator pitch exercise turned up another industry-wide puzzle: what is content management? I, personally, dislike the term content management. “Content” is too vague and “Management” (in my mind) is a negative word (guess who works for himself). “Content Management” implies that content is a liability and needs to be controlled. It sounds too much like “Waste Management” or “Risk Management.” However, it is convenient that the term is widely known and immediately brings about a sense of understanding. Alas, I digress. Back to Plone…

There was a good discussion about competitors and differentiators. Drupal, Microsoft Sharepoint, and Alfresco were identified as the biggest threats. From an emotional perspective, Drupal got the greatest amount of attention because the long-standing rivalry and that Drupal has been so successful in the non-profit sector where may of the Plonistas work. Alfresco and Sharepoint are newer and the Plone community is still learning about where they fit in. Plone has a broad set of uses and both of these products certainly encroach on some of the territory that Plone has marked out. Sharepoint, is very compelling for intranets and collaboration. Aggressive pricing by Microsoft, especially for non-profits, trims Plone’s edge on total cost of ownership. However, Sharepoint is not a good answer for building traditional websites where Plone is effective.

Joomla!, Drupal and low-end commercial tools like Expression Engine, City Desk and Adobe Contribute are the obvious competitors for building basic websites. In order to reach the broad, low-end market, a theming community and a shallower learning curve would help Plone. Open source products that were noticeably absent from the discussion were TYPO3 and eZ Publish. Although less so in North America, TYPO3 has a nice network of agency style consultancies that can efficiently build highly branded websites on the platform. TYPO3’s default install with all of the back-end modules enabled makes the product easy to dismiss as complex and ugly. But most TYPO3 customers see TYPO3 only after it has been tailored to their needs. eZ Publish has the advantage of commercial style support options and productized bundles that are targeted to different market segments and industry verticals. Both of these qualities would help Plone be more accessible to a broader market of buyers.

Alfresco was also on the radar and there are good reasons why the Plone community should be paying attention to it. While Plone’s out of the box user interface is much more refined than Alfresco’s, Alfresco has a number of architectural features that make it a better general content management framework. Alfresco’s repository services are more open and advanced than Plone’s and most large companies developing custom web applications will be better equipped to build and support them in Java than in Python and Zope. I think that Plone’s Zope architecture will frequently qualify Plone out of large corporations that think of the world in terms of “Microsoft” and “Java.” There was an acknowledgement that large, established IT departments tend to be hostile to Plone and chances are better when business owners run the selection process. That is not to say that very large companies have not successfully deployed Plone in important content management scenarios. Just look at Novell and the CIA. There are also some other big companies that are in the process of major Plone deployments.

Many within the Plone community feel that there are better Python frameworks for building general web applications so maybe this is an area that Plone should not try to compete in. The general consensus is that Plone developers should try to integrate with other applications as much as possible rather than build everything on Plone. I am sure that they are talking about technical tactics for enabling integration strategies today during the technical session. I would expect that there will be a discussion about better mechanisms for creating and consuming RESTful APIs and strategies for replicating content out of the ZODB.

I am really happy that I attended the Plone Strategic Planning Session. It was good to see the Plone community in action working together to solve difficult questions. It will be interesting to see how these ideas get distilled into a strategy that is easy to organize behind. More important, however, will be how the Plone community is able to execute this strategy.