<!-- Content Here -->

Where content meets technology

Feb 23, 2009

Django Contrib

Jacob Kaplan-Moss wrote very good post on the purpose of django.contrib. For those unfamiliar with the Django project, django.contrib is a tightly managed, highly used collection of modules (packages in Python). Contrib is not quite Django core, but much more part of Django than the free-for-all of shared re-usable applications.

The reason why I find this interesting is that many open source projects struggle with the balance between the benefits and risks of maintaining a low bar to contribution. The generally adopted policy is to keep core development within a small trusted group of "committers" (who can commit their own and patches by others that they have reviewed) and then open up module development to rest of the world. What usually happens is that modules can be highly redundant and inconsistent on quality. Add-on modules are typically the greatest cause for system instability and insecurity and the most difficult to upgrade. But they are still great because they are code that you don't need to write. Drupal, with its explosive community growth, struggles with this balance. Drupal developers often find that it is easier to write a module than to find one that is well written and does what you need it to do. Yes, there are Drupal modules that rise to the top and eventually get included into the core (Views, CCK, etc.), but they are rare. Sometimes there are random reversals - remember when CCK overtook flexinode?. The rest churn in the rough and tumble Contributed Modules library. Other projects have these issue, Drupal's growth and scale just make it more visible. Typo3 had a rating system ("no cigar" through "Cohiba") but the initiative fizzled.

Back to Jacob and django.contrib... Contrib is a very important resource for the Django community. The packages there are widely used and considered (by many) as good as core Django code. If a developer finds a module he needs in contrib, he will use it rather than any other comparable module he finds elsewhere. Contrib modules are actively maintained and are tested against new versions of the core. They are "sanctioned" not just for what they do but how they are built. In his post, Jacob recognizes the impact of incorporating a package into contrib and tries to clarify what incorporation means. Jacob proposes three tests to determine whether a package gets into contrib: the functionality should be optional (that is Django won't break if you delete contrib from your system), it solves a common problem, and it exemplifies generally accepted best practices.

Jacob also writes that contrib packages should conform to the same standards and guidelines for the general module population. For example, they shouldn't access Django's "brittle internals" (that is, functionality not wrapped in an API that may change without warning). The rest of the post goes through examples of packages that should or not be in contrib according to his tests.

I think more projects should have a system like django.contrib or at least have an open discussion around what makes a preferred module. As Typo3 found, it is hard to instate one after the catalog of modules (and community of developers) has grown beyond a certain size. Putting the best modules into core carries the risk of bloating the core application with functionality that not everyone needs. The various Linux distributions that have package managers are able to put preferred modules in their package library (accessible through tools like port and yum). The last resort, which is where most big projects are, is to have a good network of developers and do your research from word of mouth.

Feb 19, 2009

Iron CMS

George DeMet, over at Palantir, has thrown down the gauntlet. He will be hosting a SXSW panel where different CMS compete on implementations of the same website design and specification. There will be three teams representing Drupal, Joomla! and WordPress. Each will have 100 hours to develop the site.

I love the idea of different products going head to head in this way. This is much better than watching canned demos, which are difficult to compare because so many differences stem from the design of the demo rather than the design of the underlying software. My CMS selection methodology relies heavily on comparing prototypes. Then there is the classic Java Pet Store competition between Java and .NET.

Of course, this competition will not legitimately crown the winner as the "best CMS" - it just shows a very good solution (software and implementation team) for building that particular specification. In fact, the deck seems to be stacked in Drupal's favor. First of all, Palantir is primarily a Drupal shop so it is unlikely that Goerge would write a specification that Drupal would struggle with. Second, the Drupal team is lead by a Palantir employee. Third, the judge Mark Boulton is working for Acquia on Drupal 7 usability (this may play against Drupal because Mark is probably very used to picking apart Drupal 6 by now). I am not saying that this competition is rigged, just that there are bound to be subconscious tendencies. Still, the panel sounds like it will be good fun for the contestants and for the audience. I wish I could be there to see it.

Feb 18, 2009

My Social Network "Friend" Policy

Note: this policy is now being managed on my personal site.  Please get the latest version here.  

Over the past few years I have joined several social networking sites and continue to use a few of them regularly. These sites serve different purposes for me and I have started to come up with strategies of whom to connect with where. Here are the general guidelines that I have developed (subject to spontaneous change and arbitrary override).

  1. On Facebook, I only "friend" real life friends and family.

  2. On location based services (like Tripit, Brightkite), I only connect to people that I would genuinely like to meet up with when traveling and who I trust not to rob my house when I am away.

  3. On LinkedIn, I only connect with people that I would want to work with.

  4. I only follow people who inform and/or entertain me on Twitter and Friendfeed

  5. I have stopped joining sites like Naymz for which I can't see real purpose.

Well, those are my rules and I'm stickin' to 'em... at least, for now and when I don't forget them (LOLZ).

Feb 16, 2009

Great Backyard Plone Count

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.

Feb 10, 2009

Conference Schedule 09

This year I am trying to reduce my travel by limiting the number of conferences that I attend. But there are a couple that I can't miss.

  • J. Boye, Philadelphia, May 5-7
    The jboye09 conference in Philly (May 5-7) looks like it is taking shape nicely. Many of the speakers from J. Boye's conference in Denmark are lined up. There are tracks on Strategy & Governance, Intranets, Web Content Management, SharePoint, User Experience, and E-Health. As I have said before, this is an exceptional conference and I am very excited to participate without having to cross the Atlantic. What really distinguishes J. Boye from other conferences is the social aspect. Everyone attends the nightly events so you have a chance to network with peers and experts in your field. The J. Boye team has a knack for learning your interests and connecting you with the people you should meet. If you want to hang out with the most knowledgeable people in the industry, this is your conference. The discount code "sgphilly" gets you 15% off when you register. If you work for a non-profit, you may be able to do even better by emailing J. Boye at info@jboye.com.

  • Gilbane, San Francisco, June 2-4
    Last December, I had a great time teaching a workshop on Selecting a Web Content Management System at the Gilbane Conference in Boston. I will be teaching the same selection workshop (improved of course) in San Francisco in June. The Gilbane conference program always has an impressive list of industry leaders and the vendor exhibition area is a great place to see product demos. Register before April 28th for a $200 discount off admission. The conference plus package, which includes the pre-conference tutorials, comes with a free iPod Touch (just don't be listening to it during my session!).

With the time saved by a lighter conference schedule, I plan to do more reading and writing. I have some aggressive publishing goals this year. My consulting work still has me on the road a lot so I might be in a city near you over the course of the year. I also hope to stay connected digitally using the many social networking sites that I participate in.

Feb 09, 2009

James Robertson's Rule of CMS Usage

James Robertson has a great post called James Robertson's Rule of CMS Usage. The rule is:> Over time, CMS usage will head towards the middle of the road.What it means is that companies typically start out thinking that they have very unique requirements and select elaborate systems to cater to the peculiarities of their process. Natural selection extinguishes individuality that is not a competitive advantage and companies are left with capabilities that are no longer needed. A classic example of this kind of unstable situation is where you have a web site that looks very average but is managed by exceptionally complex systems and processes. In James's words:> The gap between back-end complexity and front-end simplicity quickly became apparent. This has increased the amount of effort needed to create new sites, and to manage the CMS on an ongoing basis. In summary, a greater than average amount of work to publish very average sites.

This kind of suboptimal solution often happens when a software selection is done by a generalist project manager or functional analyst that does not have the perspective necessary to challenge the status quo. It also happens when the selection is dominated by an expensive software vendor that tries to win the opportunity on flexibility. In order to make the case for flexibility you need to convince the customer that they are an exceptional case that cannot be supported by a simple solution. This is why I tend to focus on leading requirements and keep the progress grounded in the practical by pushing back on unconventional requirements that do not add to extraordinary value. That is not to say that all companies are the same; I love working with a client and discovering something innovative that gives them an edge. It is just that companies with similar goals are less different than they tend to think they are and can benefit from converging to the "middle of the road."

Feb 04, 2009

Jahia Community Edition V6 Available

Jahia has some big news. As of today, V6 of their Community Edition is now available. This is a big release for Jahia on a number of levels. Architecturally, they have refactored the application to make it cleaner by removing Jetspeed-2 from the architecture. JSR 286 portlets are still supported through the Apache Pluto portlet container. More importantly, they have developed a framework for "pluggable repositories" where Jahia can now connect to content providers like a JCR or a file system (see screenshot). A new rules engine can be configured to do different actions on content depending on its type. For example: unzip an archive when it is uploaded.

Jahia 6 File Manager
The Jahia 6 File Manager has a Outlook-style tabbing scheme that allows you to browse multiple repositories

There are plenty of new contributor features such as improved workflow, inline editing, and a preview feature where you can emulate preview for a specific user type on a specific date (see screenshot). There is also image cropping and scaling functionality built in. From a usability perspective, Jahia has aggressively adopted Google Web Toolkit (GWT) to AJAX-ify the user interface. There are now fewer popups and many other subtle improvements that lead to better user flow.
Jahia 6 "Preview as"
Jahia 6 preview feature allows a contributor to emulate a specific user type and date.

One of the biggest changes in Jahia 6 has to do with the licensing. Readers of my Jahia 5 evaluation know that I have been quite hard on Jahia for talking so much about open source but not offering a single open source product (their Community Edition had a non-OSI-certified badgeware license). Well, as of V6, Jahia Community Edition is licensed under the GPL (V2). Version 6 of the commercially licensed Enterprise Edition (due out this summer) is also going to have some licensing changes but I don't want to spoil the surprise. For now, you can try out the supportable, open source licensed Community Edition.

Feb 03, 2009

Russell Toris Wins the JCR Cup

via CMSWire, Day Software recently announced the winner of the JCR 2008 Cup. Russell Toris won the MacBook Pro grand prize for his web clipping application "Crux". While the idea is not all that innovative (it appears to be very similar to delicious.com), the application shows how easy it is to get started developing on the CRX/Apache Sling bundle. Russell is a self proclaimed novice programmer with skills mainly in HTML and Javascript. To quote:

“I was surprised how easy it was to get started with JCR, even for a new programmer like me. I know a little bit of Java, but I mainly write Javascript. So I was really, really happy when I saw how much you can do with JCR and Sling just using HTML and Javascript. Basically, if you can write an HTML form, you can create a useful JCR app, because Sling takes care of a lot of server-side stuff and you really don't need to write Java Server Pages unless you want to. This is a great convenience and makes it possible for programmers of all skill levels to be productive right away with JCR. You don't have to be a Java expert at all."

Feb 02, 2009

The Art of Community

Not that long ago, I started reading The Art of Community. Jono Bacon is posting to this blog as he writes an O'Reilly book by the same name. You can read drafts of the first chapters here and here. I expect demand for this book to be high because communities are valuable but very difficult to create. Companies often envy the passion and personal investment that some open source communities have been able to inspire and they get frustrated when their community building attempts fail to thrive. Jono has been involved with Linux and KDE and currently serves as the Ubuntu Community Manager for Canonical so he knows a thing or two about open source communities.

I have written on the topic of evaluating the health of a community and have been approached by more than one software company looking for that special sauce to help create a self-sustaining customer community. One thing is for certain, communities are not built on tools - it takes more than a forum or a wiki to make a community. Tools like these can help an existing community communicate better but they can't establish a community where there isn't one. A successful community requires a purpose worthy of passion (for a great discussion on this, see "Would you Join a Toothpaste Community?"), leadership to help people productively focus their passion, and methods for people to get value out of their participation.

So far, the best book that I have read about the community aspects of open source software has been The Success of Open Source

. The Art of Community will have a much greater focus on how to create a community. The table of contents looks like a manual for a community builder. One thing that I would like to see, but haven't yet, is a set of strategies for creating a passion-worthy purpose out of a seemingly mundane topic (like toothpaste).

Part of the writing process involves building a community of readers and harnessing their input. The project is still too young to see if there is any traction. I am looking forward to seeing how both the book and the community around it come together and if purpose, leadership, and value emerge.

Jan 28, 2009

Yeah, That's a Favicon

Content Here Favicon
Content Here's new Favicon

Marketing Vox has an article describing Google's plan to show favicons in search result listings (thanks AJ Kohn for the link!). For the uninitiated, favicons are those little pictures that sometimes appear to the left of the URL in your browser's address bar. This is an interesting departure from Google's text-only policy on search results and it gives webmasters a new way to distinguish their websites. For now, Google is only going to do this on site specific searches (like when you type "java web content management site:www.contenthere.net"). Google's sparse style could get very busy looking when cluttered with 10 little pictures per page. Speaking of ugly, does anyone like Google's new favicon?

Creating a favicon is easy. All you need to do is make a square image and then use a site like HTML-Kit to generate the favicon.ico file. Put it in your web root and then you are done. A little side benefit is that you won't see any more of those warning messages in your web logs saying it can't find the favicon.ico file.

← Previous Next → Page 30 of 75