Author: Jeff Potts

Ubuntu saves the day again

While my laptop remains and has always been Ubuntu, my two home machines are Windows XP. On the older box, the one I’ve surrendered to the kids, there’s really no excuse. They really only use the internet at this point and they could easily adapt to the change in interface so its days are numbered.

The newer XPS box has a bit more longevity due to some of the apps we use. I’ve been using Windows Movie Maker a lot, but I’d easily give it up for Kino or Cinelerra. The current sticking point is Media Center. The XPS box is our DVR which we connect to from our XBox 360. I hate to give up that setup (Yes, I know about MythTV).

Anyway, a week ago the XPS box started showing symptoms of the MSBlast worm. It went from bad to worse very quickly and ultimately became totally unusable. It couldn’t even stay up long enough for me to troubleshoot the problem.

At that point it was Ubuntu to the rescue! I booted off the Ubuntu live CD, mounted the Windows partition, rsync’d everyone’s data directories to my LaCie drive, and then used Dell’s built-in Symantec disk restore to put the disk drive in the exact state it was in when the machine was delivered. After copying the data back to the machine I’m up-and-running and no worse for the wear. Thanks, Ubuntu!

Gaim name game

GAIM, the multi-protocol, cross-platform instant messaging client has changed its name to Pidgin. If you’re looking for the “Jabber” entry in the protocol list, it’s been replaced by the name of the protocol that Jabber speaks, XMPP.

Roller leaves the nest

According to CMS Wire, Java-based blog server Roller has graduated from the Apache incubator. At Optaros, we’re doing some work for a client right now that involves implementing Roller as one component of the company’s Enterprise 2.0 initiative. Their Enterprise 2.0 stack includes Liferay for portal/presentation services, Alfresco for portal content, documement, and web content management, Roller for internal and public-facing blogs, and Confluence for internal wiki.

So far, Roller has been relatively straightforward to integrate with Liferay, but in the initial phase we’re doing very light integration. It essentially involves skinning the Roller UI so that the experience will be fairly seamless as portal users move from the RSS portlet to Roller (for example, when they comment on a blog post). In a later phase we hope to implement a much tighter integration, perhaps through Roller-specific Liferay portlets.

Using Alfresco’s PHP API

Alfresco is starting to incorporate more and more PHP into the platform. This is exciting for us at Optaros because we’ve built some great PHP-based solutions for clients and we’ve had a lot of success with the productivity PHP brings to front-end developers. But, the PHP world lacks an enterprise ready, highly-scalable, robust content management repository.

Now hold on! Hear me out. Projects like Drupal and Joomla are great for certain types of requirements. There are many large, extremely high-volume sites built with Drupal. What I’m talking about is something more generic. Something that makes zero assumptions about the presentation. I’m talking about a back-end repository for rich content plus the back-end “library services” typically associated with document management systems such as workflow, versioning, security, extensible data model, etc. Think “Zope” without the ZODB that can run in any servlet container.
Alfresco has had a PHP API for a while but until today I hadn’t had a chance to do anything with it. On the plane home from Boston today I decided to take it for a spin (details at the bottom of this post).

Using PHP with Alfresco

If you want to write PHP applications that leverage content in Alfresco you can do that today with the PHP API. The PHP API leverages Alfresco Web Services. I have not yet confirmed whether you can do everything with the PHP API that you can with the Java-based Alfresco Web Services API but theoretically you should be able to. And, if you want to write your own Alfresco-centric web services you can–you could deploy them in the same Axis container as Alfresco’s and then hit them with PHP.

If you want to manage a web site using Alfresco WCM that uses PHP you can do that today. But when you use the Alfresco Virtualization Server your PHP scripts won’t run because the Virtualization Server is a customized version of Apache Tomcat and it doesn’t know how to run PHP. Alfresco may address that in the near future.

If Alfresco expands the use of PHP within the product, Alfresco may become more than just an ECM suite–it could become a powerful platform for Next Generation Internet applications. Until then, the next time your PHP application needs a loosely-coupled content repository, consider standing up Alfresco and hitting it with the PHP API.

Trying out the Alfresco PHP API

Once you get all of the pieces together it isn’t that hard to run the Alfresco PHP samples. But it’s not extremely well documented so I’ve included some pointers here. My stack is Ubuntu Dapper Drake, MySQL, Alfresco 2.0 Enterprise, PHP 5.2.1.

  1. Download PHP 5 from http://www.php.net. Follow the directions for building, configuring, and making PHP. When you configure php, make sure to include the –enable-soap flag. You’ll also need to uncomment the extension=php_soap.dll line in your php.ini file.
  2. Use Pear to install Pear::SOAP and its dependencies. (UPDATE: Per Lukas’ comment below, this step is not needed.)
  3. The Alfresco PHP API on the community download site is still at version 1.2. The latest and greatest Alfresco PHP API can be found in the source tree under “modules”.
  4. Follow the instructions in modules/php-sdk/source/php/remote/installation.txt to set up the samples. (See below for how my files were set up).
  • Created a directory called /usr/local/lib/alfresco.
  • Created an alias and a Directory entry in httpd.conf that points to /usr/local/lib/alfresco per the installation.txt file.
  • Copied the contents of modules/php-sdk/source/php/remote to /usr/local/lib/alfresco.
  • Added /usr/local/lib/alfresco to my include_path in my php.ini file.

If your Alfresco repository is running and you’ve restarted Apache with the updated httpd.conf and php.ini, you should be good to go. On my system, I can check /var/log/apache/error.log to troubleshoot. If everything is okay, when you point your browser to http://localhost/alfresco/Examples/SimpleBrowse you will see a list of the spaces and content in your Alfresco store. You can navigate the list, open documents, etc.

The other example is the QueryExecuter example. It performs a full-text query and presents a node list of the query results.

Both of these are very simple examples but by looking at the code, the PHP API source under the Alfresco directory, and the Alfresco Web Services SDK, you should be able to see how you can incorporate Alfresco into your PHP-based application.

SalesForce.com targets Documentum with new ECM functionality

According to CMSWatch, SalesForce.com is going to begin offering ECM capability. The post says the SalesForce.com CEO is boasting that customers can get rid of their Documentum implementations. For some clients who may be under-utilizing Documentum, that could be true. But I imagine SalesForce.com is going to have a lot of work to do to get its acquired Koral software at the functional level required to supplant most large Documentum installations.

Enterprise 2.0 whether you want it or not

Back in September I wrote a post about open source software driving the re-birth of “Shadow IT” outfits. Here’s a post that backs me up. Dion Hinchcliffe over at ZDNet cites examples of firms where wikis are proliferating un-checked. While his post is about Enterprise 2.0 and mine was about open source software more generally, the conclusion is the same: IT departments need to move now to facilitate the adoption of these tools or they will be faced with seriously fragmented technology footprints and data silos a-plenty.

Alfresco’s John Newton comments on Dave DeWalt’s departure

John Newton, Alfresco CTO and Chairman, comments on Documentum CEO, Dave DeWalt’s recent departure on his blog. John worked with Dave when he was at Documentum.
As a side note, I’ve met Dave on a couple of occasions–one was a surreal experience in which Dave, Joe Tucci, one of my clients and I threw beads at conference goers from a mini mardi gras float (post). I was impressed with his desire to make a connection with as many conference attendees as he could. Rather than being ushered in and out of a large conference hall never to be seen again, Dave walked amongst the crowd and genuinely listened to feedback from his customers.

I also know he had developed sort of a cult following amongst Documentum employees. From a culture perspective, his departure from EMC seems like a huge loss.

Excellent turnout for 1st Alfresco Meet-up

Over thirty people showed up for the first-ever Alfresco Meet-up today at the Christian Science Monitor in Boston. Russ Danner, Christian Science Monitor developer, opened up the day with a short overview on Alfresco. I then led a short discussion on Alfresco as a platform which included talking about what Alfresco should and shouldn’t be used for. (Here‘s my deck. I’ve made small tweaks for clarification purposes.) Sumer Jabri, a consultant from D.C.-based Rivet Logic, drilled down on the Alfresco architecture. Sumer did a great job.

As is often the case, the most valuable tidbits came up during the roundtable discussion at the end of the day. Russ led the discussion but several others, including both integrators (Optaros, Eyestreet, Rivet Logic) and end-users (Shimano, MIT, Harvard, Kaplan), participated. The liveliest topic was why Alfresco WCM was rolled out without a practical static content deployment approach. Other topics included Liferay-Alfresco integration, JCR, and plans for future Meet-Ups.

Multiple participants said they were interested in seeing more case studies from production implementations. Everyone agreed the session was valuable. Thanks again, Russ, for putting it together.

Proprietary ECM solutions continue to aggravate resource availability issue

Alan Pelz-Sharpe noted in a recent post at CMSWatch that it is becoming harder and harder to find talented Documentum and, more generally, ECM skills in the marketplace. This is yet another datapoint in a trend that has been building over the last few years. (In a post last January, I asked Documentum to open up the WDK. The resource shortage was one reason.).

In my opinion, this problem is only going to get worse, at least until open source ECM solutions unseat the proprietary vendors. Developers in the ECM space are much more excited about investing their limited
resources in open, standards-based platforms.

Becoming a guru in a proprietary solution within a rapidly commoditizing market may yield short-term gains but is a dead-end in the long-term. Ironically, it’s those short-term gains that make the problem worse–the people currently enjoying those short-term gains are more likely to continue riding the wave than they are to move into an IT shop.

So I see open source ECM solutions as helping the ECM market with the resource availability problem in two ways: (1) by being built on the frameworks today’s developers are interested in learning and (2) by removing the primary barrier to entry (software license and cost) thus exposing more developers and companies with ECM solutions.

Regarding the first point, when you compare a developer who’s built expertise around Documentum’s Web Development Kit (WDK), a JSF-like framework for building Documentum web apps, with one that’s invested in Alfresco in which the development model is based on JSF/Spring/Hibernate, the Alfresco developer has a better foundation of transferrable skills, whether that’s to pure web application development or other open source ECM solutions built on a similar stack. Developers spend time learning stuff they are interested in and they pay attention to transferability.

As for the second point, freely-available open source ECM solutions are more likely to find their way into the hands of developers (and the servers of enterprises, see this post) because there are no barriers to entry. This should result in a larger pool of resources experienced with working with ECM, in general, as well as specific open source solutions.

As a thought exercise, think about what the resource pool would look like if closed-source, proprietary vendors were the only game in town? The demand would have to be much greater and the solutions much more interesting to develop any sort of resource base interested in specializing. (SAP seems like a real-life example. SAP folks are expensive and hard-to-find and I don’t run into too many up-and-coming developers begging to be sent to SAP training at this point).

So if you are an enterprise struggling to staff your ECM “Center of Excellence” or maybe you can’t even keep the lights on in your server room, maybe it is time to take a long, hard look at open source ECM.