People are listening

24 09 2009

Updated my test install of OpenCms to 7.5 the other day. As usual the update went smoothly with no problems to speak of. And I was pleased to see that the demo site had been changed to “The Wonderful World of Flowers.”

Here’s the background: My employer evaluated OpenCms last year but decided against it. A number of reasons were put forth (e.g. workflow, user interface) but I still think the major reason was the negative impression left by the OpenCms demo site … which at the time was a review of German regional sausages.

As I noted (sadly) in an e-mail sent to Alkacon shortly after that disastrous demo, regional cuisine is very important to ethnic/cultural identity. However, Americans tend to associate sausages with … solid waste, among other things. In particular Californians — who see tap water as deadly poison — have a hard time identifying with a product that subconsciously glorifies the consumption of bodily toxins.

I have no way of knowing whether my feedback inspired this change. I do hope it helps Alkacon succeed in the North American market. Not that I have anything against bratwurst, weisswurst, knockwurst, or … OK, maybe I’ll draw the line at blutwurst :)





Workflow options in OpenCms (Updated)

8 08 2008

Currently there are three ways to handle workflow in OpenCms:

1. Don’t: just use the role-based permissions system to handle things. Regular users create or edit content, but lack publishing rights. Projects can be created to encapsulate changes or additions. Reviewers check the contents of projects and publish when ready.

2. BearingPoint Workflow2 module. Simple, but rudimentary. A workflow is defined as a sequence of OpenCms projects. Content is moved back and forth between projects and is published manually from the last project when approved. At least it doesn’t mess with the core classes, as does the …

3. Langhua.cn jBPM module. Amounts to an unmaintainable fork of OpenCms 7.0.3, with numerous changes made to core classes. Kinda-sorta worked with 7.0.4, but I seemed to run into problems with 7.0.5. This is unfortunate because in many ways it’s a very good module.

The core developers have hinted at some sort of workflow in the upcoming 8.0 release (due some time in 2010). Until then we can make do with what we have, or choose the next option:

4. Roll your own workflow module. It’s tempting. I mean, what could possibly go wrong? ;)





OpenCms: For us, by us

7 08 2008

It’s the FUBU content management system.

And by that I mean it was designed for techies, by techies. And for “normal” people, too. This is one system that is user-friendly both on the front end and on the back end. What’s the last time you saw ANY J2EE webapp that comes with an optional command-line interface for disaster recovery?

Let’s look the ways in which OpenCms excels in a crowded and highly competitive niche:

  • Content types are defined using XML schemas
  • Structured content is stored as XML, and rendered using JSP templates and custom taglibs.
  • Most system resources are managed through the “Virtual File System” (VFS), which is a database-backed repository similar in concept to Microsoft’s long-promised WinFS.
  • Powerful module packaging system allows effortless export and import of extensions
  • Multiple databases are supported through the use of properties files (!!!) that contain translations of various queries into different SQL dialects
  • Clusterable and scalable without arcane remote interfaces and protocols
  • Automatic versioning of content, with rollback and diff functions
  • Site navigation is an integral part of the system and not an afterthought
  • Fast, responsive, customizable management interface (“Workplace”)
  • Friendly URLs. Nothing but friendly URLs.

Imagine this: You can create a complex content type as a special .xsd file, which can specify not only the structure of the content but the options for the auto-generated content input form. You then can create one or more templates to display that content using plain old JSP, scriptlets, and taglibs. The content you create is stored in a database-backed repository that looks like a plain old file system (down to our old friend index.html), but with the ability to tag items with nearly unlimited free-form metadata.

Make a boo-boo? Roll back to a previous version with a few mouse clicks. Want to put something live? Flip a bit in the database with a few mouse clicks — no worries about the management and delivery stages getting out of sync, failed publish jobs, checking the status of multiple endpoints, etc. Need to create a new page template? Just use your favorite JSP editor and upload it through the workplace, then change a bit of page metadata. Need to embed a custom application or extension? JSP is your friend.

Is it perfect? Nothing is perfect, no matter what your local friendly Vignette account rep may say. Lack of an OOTB workflow engine is the most glaring omission, though the project management tools go a long way toward making up for it. Oh yeah, and I accidentally blew away the master log4j.properties file while trying to deploy my own custom module code through the workplace, but that was easy enough to fix :)

But if you can live with the few deficiencies, you’ll find much to like about OpenCms, either as a content contributor or as a developer. What’s not to like about familiar technology in a robust, simple platform?





Review: OpenCMS 7 Development, by Dan Liliedahl

16 07 2008

Summary: Information indispensable, but could be easier to use

Liliedahl’s comprehensive overview walks the reader through the process of creating a blog, comment engine, and RSS feed module with the OpenCMS API. While these may not be typical applications, the teaching projects touch on every major aspect of OpenCMS: content type definition, content input forms, programmatic manipulation of content, user management, and the administration console.

Unfortunately much digging is needed to find the gems this book contains. Layout, formatting, and indexing all need improvement. Too often key pieces of information are buried in large blocks of body text, devoid of visual cues. I hope future editions will consider the likely audience: busy, perhaps frazzled devs and admins with dubious attention spans even under the best of conditions.

At $44.99 the book is just a bit pricey, but much of the information in the book can be found nowhere else. Don’t let the indifferent online documentation and outdated wiki discourage you from trying OpenCMS. The information in Liliedahl’s book will help you unlock the true potential of this mature, powerful product.