Netsight Blog

Cool stuff Netsight are up to in Zope and Plone

Blog > Archive for October 2009

This week there has been quite a few big news items about Open Source. One of them is that the White House announced its move from its previous CMS system to the Open Source CMS Drupal.

Whilst this was some pretty big news about the US government adopting Open Source, I do think they did slightly over-egg the cake. Both the FBI and the CIA have been running the Open Source Plone CMS for a number of years already on for their public websites, so Open Source is already running some pretty prominent sites for the US Government.

Yesterday, Chris Wilson from Slate published a blog post entitled 'Why running the White House Web site on Drupal is a political disaster waiting to happen.'. In the blog post he makes some pretty scathing remarks about Drupal, which I think possibly deserve a bit more investigation.

In his article he states that Drupal is impenetrable, hates change, disorganised and righteous. Now, I don't know a huge amount about the internals of Drupal and its community, but I think some of these remarks need a bit more context:

"...a lot of ordinary, code-fearing people who just want a simple Web site are getting left behind". Well, this isn't just a simple Website. OK, so it might not be the most amazingly complex website and might not be much more than a news site for what's going on in the Whitehouse, but it *is* a pretty prominent website. If a user 'just wants a simple website' then I'd suggest that looking at Drupal might be the wrong thing to be doing. It is a pretty large CMS, similar in scale to Plone, or many of the mid-range CMS systems out there. Indeed CMS Watch list in the same category as Drupal and Plone: OpenText, Sitecore, EpiServer, Alterian. Now I doubt anyone would serious suggest any of these systems would be where you would start for 'a simple website'. As for being 'hostile to newcomers' or its 'learning curve' I would take a guess that whatever internal, proprietary .NET system the Whitehouse used to use would be far worse.

I think most of this comes from a common misconception I have seen over the years, and that is people think that just because they can download and install an Open Source CMS for free and have it up and running in 15 minutes, that they don't need to actually spend time learning how to use a system. Again, compare to commercial CMS systems (or any commercial software for that matter). When you procure such a system you generally include a significant amount of end user training, or developer training. Why do you think that this needs to be skimped with an Open Source CMS? Granted, I know Plone is still significantly easier to use and more intuitive than many other systems out there, I still wouldn't wander blindly into it without either taking advantage of some training or being comfortable in going and asking for help yourself.

On Twitter, someone responded to Chris' blog asking 'What would you recommend then?' and he responded 'Probably Alfresco, though there's certainly no such thing as a perfect CMS.'. I would challenge Chris to pick up Alfresco and try and apply the criticisms he levels at Drupal to it and see how it holds up.

I do know that Plone is certainly a lot better on some of those criticisms, and sat here at the Plone Conference 2009 in Budapest, that Plone has a pretty vibrant and friendly community. Combined with its outstanding security track record this could be why, as posted by Karl Horek on his Plone Metrics blog, Why so many government sites use Plone.

As whizzy as Plone 3's AJAX drag-and-drop folder re-ordering is, it's fairly unusable when you have a large number of items and need to move an item from the very bottom to the very top (or vice versa).

Doing a little AJAX debugging reveals that the heavy loading of this drag-drop functionality is actually done by a simple skin script, folder_position.py, which you can actually pass all manner of arguments into.

Moving an item to the top of a folder as as easy as calling the aforementioned script on a folder, passing 'position' as 'top' and 'id' as the id of the object you want to move e.g.

http://mysite/myfolder/folder_position?position=top&id=banana

You could also pass in 'position=bottom' to move it to the bottom.

Plone on Google Wave?

OK, so Google Wave has been mentioned quite a bit since it came out and I have to admit my first impressions were 'yeah, OK so what?'. I mean we already have email, irc, IM, twitter, facebook, linkedin, etc.... do I really need yet ANOTHER way to communicate with people?!

But I think the meme of 'Its going to replace email' has been what has been misleading me so far. Yesterday I came across a demo of Salesforce and Google Wave with a screencast showing an example of what could be achieved by linking these two services for customer service.

Suddenly the penny dropped for me. Don't think of it as replacing email, but how about replacing IRC? 'Wait a sec' I hear you say... 'IRC?'. Isn't that that old text based chat thingy that geeks use? Yes, the very same.

In the Plone community, as with many other Open Source communities, IRC is used as one of the primary tools for communication between the developers and for helping out users. IRC has been around since the dawn of the Internet and in many cases support channels have 'bots' in them. These are automated processes that respond to the conversation and can add in supplemental information. In the case of Plone and the #plone channel there are several bots in there. One displays a summary of new bug tickets from users into the channel and another displays commit messages from core developers into the source repository. This is general background information that many people like to keep an eye on, yet don't want to be actively pestered with. If a developer is in IRC he or she can see what is going on in the project and keep tabs of who is doing what in and informal way.

Google Wave is the new IRC! But web based... and persistent... and with a more accessible API for people to write plugins to interface with other services. And probably many other feature too that I don't even know of.

In the Salesforce demo above they are demoing a customer service interaction in which a customer starts a new conversation (wave) with the company's customer services bot and that bot tries to search Saleforce for answers to their questions. It can then also invite in real humans into the conversation if the automated help doesn't help. At any point in the future the user can return to the wave and continue with it... it is persistent.

So how about this for an idea: The Plone Wave.

Currently new users come into the #plone IRC channel and ask questions for support, many of which have been answered before or are documented elsewhere on plone.org. Plone has a fantastic culture with its IRC channel and there are some great people on there who will bend over backwards to help you, as evidenced by the recent Plone IRC Superstars award, but it can be a bit draining if the same questions are answered over and over.

What if there was a Plone Wave with which a Plone user seeking help could interact with? They start a conversation with a Plone Help bot and that bot tries to answer simple queries by looking up documentation on Plone.org that might help them. It could also look in the Plone bug tracker to see if there is anything else relevant there. Or search the mailing list archives. It could echo the question to the Plone IRC channel such that any developers on IRC who think they might be able to help could reply back and that reply appear on the wave. If the user decides they might want services from one of the many Plone Professional Services providers out there then it could ask them which country they are in and then list a bunch of contacts from Plone.net. If one of those providers is also using Google Wave then they could be invited into the wave to continue the discussion.

What do you think? Anyone got the skills to try and prototype such a system?

-Matt