Month: October 2011

Quick thoughts on Alfresco Mobile

A few weeks ago Alfresco released an application for iOS devices. It’s available for free right now in the Apple App Store. If you’ve ever used Zia’s FreshDocs, a mobile app that demos hitting an Alfresco repository via CMIS, you’ll recognize a good portion of the functionality–Alfresco worked with Zia to build the app and they started with FreshDocs as a base.

The app is free and runs on iPad and iPhone. You can use the app against Alfresco repositories versions 3.4 and higher for all three editions of the product (Community, Team, Enterprise).

You can use the app to browse content that lives in Alfresco, whether that content is stored in the “Company Home” part of the repository or in document libraries within Share sites. The UI is currently a single pane view but there is a multi-pane view in an upcoming release. Aside from navigating to the content you can also execute file name and full-text searches.

This is what the app currently looks like when you log in to an out-of-the-box Alfresco 4.0a install. (Click to enlarge).

The 1.0 version is mostly read-only. As you click on content in the repository it is downloaded to the device for viewing. Here is what it looks like when you open an image (one of the sample invoice images included in the 4.0a sample Share site), but obviously you can open any file your iOS device knows how to deal with. (Click to enlarge).

You can create new objects by adding images from the photo library. Or, use an app like iWork or QuickOffice to check in a document via WebDAV. In fact, you don’t need to install the app to do that if your iOS app can save to WebDAV. You can create folders and you can create comments on documents from within the app. Here’s what it looks like when you create a new object from within the app. (Click to enlarge).

There is some debate internally about how much content creation needs to be done on the iPad. Right now, our goal is not to re-create the entire Share client in the iPad app. But I do think that some creation/editing would be helpful, even in very basic use cases. For example, right now, the app cannot:

  • Edit metadata, including the folder name of a folder you just created (argh!)
  • Add tags to an object
  • Upload new versions of an object

I’ve created a thread in the new mobile sub-forum on to discuss this topic. If you feel strongly about it one way or the other, join the discussion.

There are some other limitations that I imagine will be resolved in the upcoming releases such as the ability to search by tag and displaying additional metadata (both out-of-the-box and customer-specific content models).

Don’t get me wrong–I’m not slamming our new mobile app. I’m extremely excited about this first release and I know it is going to evolve quickly. There are lots of businesses, schools, and universities doing massive iPad rollouts right now. I really think we have an opportunity here to help add value to these rollouts by extending their Alfresco-based content to the devices in a secure way.

A lot of people I’ve talked to about the app have asked, “What about Android?” and “What about HTML5?”. In short, the answer is that we’ve only got so many resources so we decided to go native on iOS as a first cut to get something to market quickly. If you are looking for an Android client for Alfresco there are some already in the community. Check out JM Pascal’s Alfresco Content Center Android app, for example.

We’ll be making the source of our app available as open source so you can use it as the starting point for your own apps. You can get more detail on that as well as a technical deep dive at our up-and-coming DevCon. Marc Dubresson, who comes to us from Apple, owns mobile for Alfresco and he’ll be giving a talk in San Diego and London.

Book Review: Alfresco 3 Cookbook by Snig Bhaumik

I finished reading Alfresco 3 Cookbook, by Snig Bhaumik, a while ago and I’ve been remiss in getting my review posted. Disclosure: Packt sent me the book for free.

Alfresco 3 Cookbook is the latest entry in what is now a fairly voluminous catalog of Alfresco-related titles. So I was excited to read Snig’s book in the hope that there would be new information being shared, particularly on the latest 3.4 release. Unfortunately, I was a bit disappointed from that perspective–the book does not have much information you can’t find in other books. However, what I do like about the book is that the author covers each use case in very clear, step-by-step instructions. And the book makes use of informative screenshots throughout–I could tell a lot of effort went into that.

The biggest thing missing from the book, in my opinion, is the complete lack of coverage of the Share client. Share has been available since 3.0 and has been the client of choice (over the old Explorer client) for at least a year now, maybe longer, so it is time for authors to shift from Explorer to Share when covering the platform.

Leaving Share out means that some topics, which are most commonly used in Share, get left out as well, such as the Alfresco FTS syntax and “linked rule sets” to name two. But, perhaps more importantly, it means that readers who want to follow along have to use the old client even if their organization is primarily using Share. And, it means there is still no definitive guide available for those who want more technical information on how to customize Share. (As a side-note, I’ve heard one is in the works–I hope the authors of that book will delay publication until they’ve had a chance to incorporate the changes in Alfresco 4 because a lot of work has been done on Share customization in Alfresco 4).

I found a few technical mistakes with the book and I’ve discussed them with the author. Mistakes happen in every book and I normally wouldn’t call them out in a review, but two are important enough to mention here:

  • At the bottom of 271 the author is talking about the name space associated with workflow jPDL. It says, “wf is the workflow namespace defined for jBPM, thus it is pretty fixed, you would use wf namespace prefix in your process definitions,” which is incorrect. This should read, “you would NOT use wf namespace prefix in your process definitions”. The way it reads currently it sounds like the recommendation is to use “wf” as the type namespace, like “wf:someCustomType”, which you should not do.
  • On page 337 it says that Alfresco is GPL, which isn’t accurate. It’s actually LGPL v3.

Still, overall I like the book. The coverage is broad enough to hit just about everything, and deep enough to get most people pointed in the right direction. It should be a good read for those new to the platform. The first four chapters are for end-users or administrators. Topics include things like installing, creating spaces, uploading content and setting metadata, securing content, searching, and creating rules. The author then moves into more technical topics like exporting content, using the node browser, and managing users and groups. The middle of the book is a bit more developer-oriented: Customizing the Explorer client, extending the content model, writing JavaScript and web scripts, and creating and deploying workflows.

One of the last chapters in the book is on integrating Alfresco with Microsoft Office. I thought it was strange that the chapter didn’t mention how to install and configure the SharePoint Protocol module and instead chose to cover the older Office plug-ins.

Bottom-line: If you are new to the platform and are looking for step-by-step instructions for implementing a variety of use cases in Alfresco, grab a copy of Alfresco 3 Cookbook. If you are an experienced Alfresco developer looking for deeper discussions, or you need help with Alfresco Share, look elsewhere.


Screencasts highlighting a few new Alfresco 4 Community features

Alfresco 4 Community was released last week. There’s a nice presentation on slideshare that summarizes what’s new in Alfresco 4, so I’m not going to give a comprehensive list here. And we’re going to be covering the technical details on all of the new features at DevCon in San Diego and London so I’ll save the code snippets for DevCon.

Next week, people all over the world will be celebrating the Alfresco 4 release with informal meetups so I thought in this post I’d prime the pump a bit with a brief list of the more buzz-worthy features and record some short screencasts of those so that if you aren’t able to join one of the worldwide release parties, you can have your own little soiree at your home or office. Just try not to let it get out of control. If the cops do show up, you might mention that the New York Police Department uses Alfresco.


I’ve been showing Alfresco 4 at JavaOne all week and drag-and-drop was pretty popular. You can drag one or more files from your machine into the repo. And you can move them from one folder to another by dropping onto the folder hierarchy. You’ll need an HTML5-enabled browser for this to work. Here it is in action (this one didn’t get created in HD for some reason):

Document Library In-Line Edit

It’s a little thing, but it’s handy. You can change file names and add tags from the document list without launching the edit metadata panel.

Configurable Document Library Sort Order & Better Site Config

How many times has a customer asked you to change the document library sort order? I know, I know. Now they can do it themselves. Also, you can now brand sites individually, so each site can have its own theme. And components can be renamed to things like your document library don’t have to be called “Document Library”.

Better Administration

The Share Administration panel now has a Node Browser, a Category Manager, and a Tag Manager. The Node Browser and the Category Manager were actually direct community contributions. Tell me again why you are still using the old Alfresco Explorer client?

DM to File System Publish

Last year at DevCon in New York, a bunch of us tackled Brian Remmington, wrestled him to the ground, and refused to let him up until he agreed to add this to the product. Once security was able to break up the scrum we apologized and had a good talk. I think deep down he appreciated our passion. I’m joking, of course, but what’s not a joke is that the DM-to-file system publish functionality is now in there. I’ll update this post with a screencast as soon as I figure out how it works.

So take a look at the presentation for a more complete summary. I didn’t show Activiti or Solr, which are two much-anticipated additions to the product, because the value they add is hard to convey in a short screencast. Feel free to record your own screencasts of your favorite new features and point me to them.

List of Alfresco Dashlet Challenge 2011 Entries

The Alfresco Dashlet Challenge contest has been over for quite a while and our winner, Florian Maul, has received his iPad and has already racked up some impressive Fruit Ninja scores, but I’m just now getting around to posting the entire list of entries. I’ve put the list on the Alfresco wiki.

Please do take a look at these projects and try them in your own installations. In many cases, it’s a single JAR you drop in, then restart and you’re done. If you find problems, don’t hesitate to log issues or maybe even crack open your editor, fix it, and contribute it back to the author.

I should take this opportunity to mention a little project we’ve got brewing. If you’ve heard any of my “State of the Community” talks you may already know about Alfresco Add-Ons. It’s a site we’re building that will do a better job of helping you find and rate add-ons the community is creating for the Alfresco platform. An Add-On might be a dashlet, like the Dashlet Challenge entries, or it might be an integration, or an API, or just about anything else that works with Alfresco.

Add-Ons isn’t meant to be a project hosting site. There are already a lot of those available. Instead, think of it as a directory or index with some social features to help the cream rise to the top. This will give everyone (Community & Enterprise users) a one-stop shop for add-ons and extensions.

We’re hoping to have a minimum viable product ready by DevCon. If it gets done and enough people want to see it, we’ll have an ad hoc session so we can look at it together. We’d obviously like to get feedback from the community for the next sprint.