Category: Alfresco

Alfresco open source content management

Alfresco client-side JavaScript documentation

I may be late to the party on this one, but did you know that Will Abson has used JSDoc to generate documentation on Alfresco’s client-side JavaScript? It’s available for both Community and Enterprise releases on the Share Extras site on Google Code.

So if you’ve ever needed to quickly find out all of the methods available to you in Alfresco.util or Alfresco.component.Base, for example, put down that recursive grep and head over to Share Extras.

Will’s taken JSDoc and added some tweaks to make it more YUI aware. So if you’re following Alfresco’s pattern of comments in your own client-side JavaScript code, you can use the toolkit to generate doc specific to your project. Will explains how this works on his JSDoc wiki page.

Alfresco Community Pledges & other things that worked well at DevCon

I had so much fun putting on Alfresco DevCon last week in San Diego. You can read my short wrap-up on the Alfresco DevCon Blog. Claudia Saleh also provides Day 1 Re-Cap and Day 2 Re-Cap posts as well. And Claudia took a lot of great pics at the event and put them on Flickr. After London we’ll get all of the presentations from both events on SlideShare for everyone to enjoy.

We tried a lot of new things at DevCon last week. I thought I’d re-cap what worked well here:

Purposeful lunches. DevCon was two days. On Day 1, we assigned a technical topic to each lunch table and then made sure an Engineer was at each table to cover that topic. Attendees sorted themselves to the table they were interested in discussing over lunch. Some tables really worked their topic over thoroughly during lunch. Others used it as an icebreaker and then moved on to other stuff. On Day 2 we divided the tables up by geography and industry vertical. Most people I talked to liked the concept.

Engineering Office Hours. The concept is a repeat from our first DevCon, but this year we had a bulletin board with each Engineer, their bio, their picture, and a sign-up sheet. Attendees grabbed a slot, then met with their Engineer. This worked out really well. For London we’ll pre-print the time slots rather than have them be freeform.

Panel Discussion. Last year at DevCon in New York, the panel discussion was a little ad hoc. This year we put the panel discussion on the morning of the second day as a general session and that seemed to work. For London, we’re moving the panel discussion to the end of the second day so any questions that the day 2 sessions raise can be asked at that time. It should also give us a nice opportunity to recap the conference.

Alfresco Community Pledges. DevCon serves a lot of purposes. One is to energize and motivate people to get involved with the Alfresco community. I had some extra Alfresco “attitude” t-shirts so I decided to give them to people who would pledge to make some contribution to the community in the coming weeks and months. Here are some that we got via twitter.

@dev_kraig Kraig Van Houten
@Alfresco I #pledge to write one #alfresco related blog post per month

@SunilRehman Sunil Rehman
@Alfresco I #pledge to report 5 new #Alfresco 4.0 b bugs before thanksgiving

@WillWhite18 Will White
I #pledge to report at least 5 bugs in #Alfresco 4.0b before thanksgiving.

@Michaelcford Michael C Ford
@Alfresco I #pledge to answer 6 unanswered #Alfresco forum post in the next 3 weeks

@emmichie Eric Michie
I #pledge to host an #Alfresco meetup in my area twice this quarter. Salt Lake City Utah

@tenthline_ecm Tenthline
@tenthline_ecm will #pledge to host #Alfresco meetup in #Toronto twice this quarter.

@aaronaheath Aaron Heath
I #pledge to write one #Alfresco related blog post per month for the next 12 months. I will also become more active on the #Alfresco forum.

@perejnar Per Ejnar Thomsen
I #pledge to report 5 new (legitimate) #Alfresco 4.0b bugs before Thanksgiving

@dstaflund Darryl Stafflund
I #pledge to answer 6 unanswered #Alfresco forum posts in the next three Weeks.

@iancrew Ian Crew
I #pledge to write one #Alfresco related blog post per month.

@trisofer Chris Paul
@jeffpotts01 I #pledge to write one #Alfresco related blog post per month.

It was great to see these and to talk to people between sessions who said the conference was the kick in the pants they needed to get going again with their contributions.

Thanks to everyone who attended, sponsored, or spoke at DevCon San Diego. It exceeded my expectations and hopefully yours as well. I’ll report back here after London and we’ll see if these ideas were just as successful for that event.

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 forums.alfresco.com 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.

Drag-and-Drop

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.

Worldwide Alfresco 4.0 Community Release Party

You have probably heard that Alfresco 4.0 (formerly known by its codename, “Swift”) will be officially released in the Community edition at the end of September. I’ve been playing with the latest Community code sitting in subversion and I have to tell you that, although there are still plenty of issues to resolve, I’m getting pretty excited about the release.

I know I’m not the only one that’s been looking at 4.0 with building anticipation toward an official release. So here’s what I think we should do. Let’s celebrate. This year, the week of October 10 shall be known as the Week of Worldwide Alfresco 4.0 Community Release Party Meetups! Wherever you are in the world, pick a day that week and get together with 1, 10, or 100 other people and share why you’re excited about 4.0. It doesn’t have to be formal and you don’t have to go to a lot of trouble. Grab Community 4.0 from the download page when it becomes available (or use one of the nightly builds or build it yourself), install it, and give a demo. Or just get a conversation going about favorite new features, when/how you plan to upgrade, or how you are using Alfresco today. Exactly what you talk about doesn’t really matter–the point is to celebrate this major release.

I’ve already spoken to several of the local community organizers around the world and they are totally into it. Madrid, Paris, Atlanta, Washington, D.C., Jakarta, The Netherlands, and Southern California are all likely to have events going on the week of October 10 to celebrate. I believe Germany will be doing some virtual meetups online. To help you find these and others that will hopefully be inspired to spring up, refer to this wiki page that lists new or still-forming meetup groups. If you don’t see one there, go to Alfresco Meetups Everywhere and sign up. When another person in your area signs up you can organize a time and a place to meet.

I really want to see this happen. And I know the way to an Alfresco Geek’s heart is through his or her stomach. So if you promote your plan to have a meetup the week of October 10 via Twitter, and then you post pictures of the event on Flickr tagged with “Alfresco”, you can submit your food receipt to me and I’ll reimburse you up to $100. If you plan to take advantage of this you must register your interest with me two weeks prior to your meetup date so I can get you the details. Just shoot an email to jpotts at alfresco dot com with your plans.

I’ll also try to get a “What’s New in Alfresco 4.0” presentation posted, maybe with some screencasts as well, to help with the content.

There you go: A major release of the software to the community, free food, and starter content. The only key ingredients remaining are you, your laptop, and a friend or two. What do you say? Are you in?

Alfresco DevCon 2011 session list has been posted

I’ve finally finalized the list of sessions for Alfresco DevCon Americas in San Diego and Alfresco DevCon EMEA in London. Have a gander. I’m sure I’ll be running around like a wild man those two days, but if I get to see some sessions, I think I’m going to be hard-pressed to choose which ones to go to.

My next step is to put those sessions in date-time and room slots. To fix the schedule, basically. It’s an interesting Sudoku-like exercise. You don’t want to have overlapping tracks for a given time slot, you can’t have overlapping speakers for a given time slot, there’s a bit of a logical progression between some sessions, and you want to try to avoid scheduling extremely hot sessions for the same time slot.

The last one is the really tough one. I can pick my favorites but those won’t necessarily reflect the group’s favorites. If all of my rooms were the same size it wouldn’t matter, but they aren’t. In each city we’ve got one big breakout room and two smaller ones.

To get some handle on how well attended some of these might be I’ve created a very short survey. The survey is basically, “Which city are you attending” and “Pick your favorite sessions from this long list”. If you are planning on attending and you have a few minutes, I’d really appreciate it if you’d review the list of sessions for your DevCon city, then take the survey.

Even with this survey the schedule won’t be perfect. Apologies ahead of time if you have to make a tough choice.

Alfresco as a Platform: Your thoughts?

Back in March of 2007 I gave one of my first public talks on Alfresco in Boston at what was then billed as the first public Alfresco meetup (at least in the US). My topic was “Alfresco as a Platform”. In looking back at the presentation I’m struck both by how much has stayed the same and by how much has changed.

Today I’ve added a post on Alfresco’s socialcontent.com blog entitled, “Alfresco as a Platform“. The post is probably preaching to the converted for many of the readers of my blog. My goal with the post is to encourage IT organizations to recognize the “capture, organize, and share” problem that everyone has and to address it with an IT-approved stack. I then identify the key innovations added over the life of the product–Web Scripts, CMIS, SharePoint/IMAP/SMTP, and Workflow–that make Alfresco a strong platform for content-centric applications, and therefore an excellent choice to be part of that stack.

Many of you have been in the Alfresco community for multiple years now. How has “Alfresco as a Platform” changed over time from your perspective? How has it stayed the same?