Archive for the ‘review’ Category

J. Boye: Best Practices for Creating a Web Strategy

Friday, May 1st, 2009

In my technology consulting engagements the first step is to verify that there is some sort of web strategy in place that will help prioritize requirements and define budgetary constraints. If it is not clear how the website(s) fits in with the client’s overall business objectives, how are they to determine what capabilities they should be looking for and how much investment they can justify? Stating that the website needs to be more attractive is not enough. You need to know what business activities the websites should support and how. Usually my clients have done most of this work before hiring me, but, when they don’t, I need to scramble a bit to help establish enough of a strategy to move forward

The next time I am in a situation where remedial web strategy work is needed, I will insist that the client purchase, read, and apply J. Boye’s new report Best Practices for Creating a Web Strategy. In writing the report, Dorthe Jesperson and Peter Nissen interviewed 19 organizations across several industry verticals including manufacturing, healthcare, and government. They also draw on experience from years of working with J. Boye community of practices. The result is a critical resource for developing a successful web strategy — one that attracts budget for critical activities and gives grounds to reject requests that do not align with the company goals.

If you find yourself grappling with these issues, I strongly recommend that you purchase Best Practices for Creating a Web Strategy.

Review: Alfresco Developer Guide

Friday, December 12th, 2008

I just finished reading Jeff Pott’s new book Alfresco Developer Guide. If you have been looking for a technical book on how to develop applications on top of the Alfresco platform, this is it. Jeff wastes little time introducing abstract content management concepts or explaining the user interface, he digs right into setting up your local development environment. I like this approach but it assumes a solid foundation in both ECM and Java – if you don’t have one, there are plenty of other books to start with. The expectation of some baseline knowledge saves the book from getting bogged down with introducing Spring, jBPM, and many of the other popular Java frameworks and components that make up Alfresco.

The book is written with a bias toward the document management end of the ECM spectrum but that makes sense for a book about Alfresco. Only one chapter (out of 9) is devoted to Alfresco’s WCM component. The core strength of book is how it teaches developer to build dynamic web applications and services that access documents from the Alfresco repository (which may be the core strength of Alfresco too). There is great coverage on Alfresco’s Web Scripts framework with plenty of interesting examples that showcase the flexibility of the platform. For example, there is a nice description of how to create an AJAX document rating widget you could put on another website.

Jeff’s writing style is both thorough and readable. He has a nice technique of pulling up and explaining details in “What Just Happened?” sections. This allows him to run cleanly through a topic and then summarize and discuss some of the nuances of the steps.

Unfortunately for Jeff, his book (which covers 2.2 of the Enterprise Edition) came out right around the time version 3.0 was released. However, since he writes mainly about the API level, the book will stay relevant and accurate longer (Luckily API’s can’t change as fast as user interfaces). So, if you are a Java developer and are considering using Alfresco for building a “document centric web application,” this book will help.

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 :)

Book Review: OpenCms 7 Development

Thursday, June 19th, 2008

I just got through reading Dan Liliedahl’s book OpenCms 7 Development (Packt Publishing). I met Dan when I was at the OpenCms Days developer conference and was impressed with his presentation. Dan knows his stuff (not just about OpenCms – he worked for FutureTense in the early days).

The book was first introduced at the conference. I was surprised that Dan was able to get it out so quickly after Version 7 was released. It seemed like Version 6 was out a long time before a book on it came out. Dan did mention that writing about the product as it was being developed was a challenge.

When I started reading the book, I was pleasantly surprised to not have to go through any content management theory. The book stays true to its title. Not that theory isn’t important but I think it is reasonable to assume that someone developing on a CMS knows the about the basic concepts. If you don’t, some background reading (and also some requirements analysis too) is in order.

One short-coming about diving right into the OpenCms architecture is that the beginning is a little choppy as the author tries to orient the reader to the platform (OpenCms is a very mature and elaborate application). Although it is choppy, there are some very good explanations of things like OpenCms’s request processing chain and how the code is organized. There are also excellent tips on configuration management and how to configure your IDE. Still a reader may want to supplement the book by reading some additional OpenCms doc to help introduce him to some of the bigger OpenCms concepts.

The book hits its stride as it gets into the examples, which revolve around building a blogging site. There is good coverage on everything from creating content types and display templates to building extensions. By over-engineering some of the design, Dan is able to go into depth in modularizing code and managing logic in Java classes. Dan’s experience in building big sites shows in how he designs for manageability and reuse. All the code is put into modules that can be exported and deployed to different OpenCms instances. The book also covers some of the new features like WebDAV, the new security model (with organizational units) and the relationship engine.

The one area that I think could use a little more coverage is on the TemplateOne and TemplateTwo frameworks. Dan builds everything from scratch to show how OpenCms works but these frameworks allow you to get up an running with less development. Unfortunately, neither of these are particularly well covered in the OpenCms documentation. Perhaps a whole book on TemplateOne and TemplateTwo is in order.

Overall, OpenCms 7 Development is a must read for anyone who wants to implement robust sites on the OpenCms platform.

OpenCms is covered in the Open Source Web Content Management in Java report. The standalone evaluation of OpenCms is also available.

Critics rave about Open Source Web Content Management in Java

Thursday, April 17th, 2008

My report “Open Source Web Content Management in Java” is receiving enthusiastic praise. Thanks Sandro Groganz, Steven Noels, and James Robertson for the kind words. I have posted some quotes here. But don’t just take their word for it. Read it for yourself!

Open Source WCM in Java

Tuesday, February 12th, 2008

IT’S HERE!

I am very happy to announce the availability of Content Here’s first report: Open Source Web Content Management in Java. The report is written for technical decision makers and covers Alfresco, Apache Lenya, Daisy CMS, Hippo CMS, Jahia, Magnolia, and OpenCms with a level of detail that I have not yet seen in a professional analyst report on open source software. Each 15+ page evaluation describes:

  • the history of the project
  • the architecture and how it can be extended
  • how the contribution interfaces behave and how they can be customized
  • how the system can be administered, configured, and integrated
  • how the presentation tier works and what can be done with it
  • what the community and other support structures are like

There is enough technical meat for an architect to understand the product and consider it for prototyping. By focusing on the “content contribution” and “presentation” sections of each evaluation, semi-technical readers will see how they would use the system to meet their needs.

Systems integration firms, software companies, and investors will also find Open Source Web Content Management in Java useful for understanding the open source WCM marketplace.

The products are organized into two groups: products that are typically used to power basic informational sites, and products that are used more as frameworks for more complex web applications. For each category, I describe important features that the product should support and rate each of the products in those functional areas.

For more information:

NiceEdit

Friday, December 21st, 2007

If you have a custom web application that does not necessarily need a full CMS but could use a WYSIWYG editor, there are a number of open source Javascript rich text editors out there that are not too difficult to plug in. The big ones are TinyMCE, FCK, and Kupu. If you just need something simple, you might consider NiceEdit. It just has the basics (bold, underline, italics, left/right/center justification, bullets, indent, font size/family, links and images) but it looks easy to install and may be just what you need.

Wired but unstrung

Monday, November 12th, 2007

I am sitting on the plane on the way back from a wonderful time at CMF2007 (pics) in Aarhus. Thanks to Janus, Sara, Flemming (my guardian angel), and the rest of the J. Boye crew for putting together a fantastic conference.

Before taking the trip, I made some changes to my computing toolkit to help me be more productive in the air. For those who don’t know me, I am a proponent of server side tools for managing information. I use services like Bloglines for reading blogs, Wikis and Google Notebook/Docs for writing, and del.icio.us for bookmarks. Ideally I should be able to log onto any computer, connect to the Internet, and have everything I need.

The first change that I made was to migrate from my beloved Bloglines to Google Reader. While, I prefer the functionality and behavior of Bloglines to Reader, the addition of Google Gears makes Reader a perfect online/offline tool. I can still access my feeds from any computer but I can take my little slice of the web with me when I am offline. According to feedburner, my immigration appears to be on the tail end of a trend. The Reader wedge of the subscriber pie chart grows in proportion to Blogline’s decline.

I also installed the blogging client Ecto, which I am finding preferable to the Blogger web client because it adds little touches that are difficult to reliably support in a cross-browser web client. If it were not for packed airplanes with coach seats that are too small to work in, wasted time in the air would be a perfect place to catch up on writing blogs. From a business class seat, or at least Economy Plus, Ecto would be even better.

And with that, I will dig my laptop out of my chest, power down, and watch the in-flight movie.

Alfresco Book Review

Friday, February 23rd, 2007

I imagine it was a great challenge to write the first book on the new Alfresco open source enterprise content management system. Enterprise content management is a deliberately broad field with a diverse audience of stakeholders. Alfresco is a powerful but new and rapidly evolving product with, as one might expect, thin documentation. I am happy that Munwar Shariff undertook this challenge to write Alfresco Enterprise Content Management Implementation.

The target audience of the book appears to be a technical person who is evaluating and getting started with Alfresco. There is good information about the architectural principles and the range of uses for the product. There are also some instructions and recommendations for installing the product. As I recommended in my review of Munwars book Plone book (Plone Live), I would consider removing the installation section because that is one of the things that is well covered in the Alfresco documentation. However, the recommendations around the configuration options are helpful.

Also, it may have been a little ambitious to cover strategies for initiating and managing an Enterprise Content Management project. That is the topic of several other books on content management (Definitely read The Content Management Bible by Bob Boiko) and software development.

The core strength of this book is as an aid to explore the functionality of the Alfresco web client and to learn how to configure and extend it. As with most Java applications, most of Alfresco’s behavior is managed through a series of XML files. The examples of how to manipulate these files in the book and as part of an accompanying download are very good. And when you go through these exercises and open up the files you can’t help but notice other settings that might be useful to modify as well. I think it would be helpful to discuss the underlying technologies that support the Alfresco platform and also tips for tuning the software to meet the performance and availability demands of an actively used implementation. But those topics might be more appropriate for an advanced book. For an Alfresco beginner (and there are a lot of people who fit that description out there), this book is a great introduction.

Yulup, Meet Yanel

Wednesday, December 6th, 2006

While most WCM products and projects are focusing on AJAX technologies to deliver a better editing experience from a browser based interface, there are a couple of projects looking in other directions. Yesterday, Wyona CEO and Apache Lenya Founder, Michael Wechner showed me a new approach he is working on: Yulup and Yanel. Yulup is a FireFox plugin that provides editing tools for web assets that have been Yulup enabled. Yanel is a trimmed down CMS interface that Yulup can talk to.

If a user has Yulup installed, he sees a special icon on the top right of his browser. This icon will indicate if a page is Yulup enabled. If it is, the user will be able to execute actions like checkout, open, save, or whatever else is enabled at the server. Yulup uses FireFox’s WYSIWYG HTML editor or more sophisticated users can edit the HTML directly. The demo that I saw had a static HTML website but I could see how this technology would be capable of handling more structured content. Dialog boxes written in XUL perform functions like repository browsing and file upload.

Behind the scenes some interesting architecture is at work. Pages are enabled by adding an XML tag to the content. This tag tells Yulup to ask Yanel for a resource file that tells what actions are enabled. This resource file also maps actions to different URLs and methods. In this way, different content management systems can perform library services such as checkout, check in, add, update, delete, etc. Neutron is the protocol. Michael expressed some regret about not using an existing protocol (Atom and WebDAV were considered) but these didn’t have necessary features and it was unlikely that the Yanel/Yulup team would have enough sway to get them added.

This is still early technology and there are some important features to add. For example, the system needs a more sophisticated security model that limits the available actions before login. Also, details like how to implement versioning and workflow have not yet been fleshed out. You can see the roadmap here. The long term vision is to Yulup-enable many different CMS and standardize the user interface similar to how the JCR hopes to standardize content storage. As with technologies that threaten to disrupt the status quo, many projects may resist this attempt to hijack the interface and commoditize the CMS. But if this UI works for users (especially users that need to work on different CMS) it may be hard to fight much in the same way that many writers want MS Word or Outlook to be the interface to their ECM systems.

The other project that is trying to create a universal user interface for content management systems is the Apogee Project. They are building content management services on top of the popular open source IDE (Integrated Development Environment) Eclipse. This project appears to have stalled. I would give it low potential for survival because the project sponsor (Nuxeo) has its hands full porting CPS from Zope to Java and because Eclipse might be too techie for your average content editor. Last I checked, Eclipse was a 100MB+ download and good luck using it if your screen resolution is less than 1600×1200.

Developers working on a rock-solid CMS with an ugly face (of course, no developer thinks his baby is ugly), may want to check this project out.