Category: Alfresco

Alfresco open source content management

Alfresco Developer Series tutorial source code now on github

The source code for the tutorials in my Alfresco Developer Series has always been available to download as a zip. But for some reason I never put it in a project where we could collaborate on it. That’s fixed now. The code’s now on github. (Note that the source code that accompanies the Alfresco Developer Guide is on Google Code. I don’t intend to maintain that going forward and will instead focus on these github projects).

As part of that I’ve made sure that the content types, behaviors, actions, web scripts, and workflow tutorial code works on 4.0.d and 4.2.c. The original zips referenced in the tutorial PDF still work with the versions they were written for, of course, but if you grab the source from github, they’ll work on the version they are tagged for.

One thing I’ve realized as part of this is that with the actual tutorials in PDF, keeping the written instructions in sync with the code is tough. Maybe I should convert the tutorial text into markdown or something similar and check that into the source code repo as well. Let me know what you think about that idea.

Next step for the code is to convert from the old Ant-based Alfresco SDK to the new Maven-based SDK.

CMIS and Apache Chemistry book now available

cmis-bookI am very pleased to announce that the book project I have been working on with Jay Brown (IBM) and Florian Mueller (SAP) has finally reached the most important milestone in any such project: The book has gone to press. You should now be able to purchase CMIS and Apache Chemistry in Action at fine bookstores everywhere.

I’m extremely proud of the end result. This book is the most comprehensive, most helpful resource on Content Management Interoperability Services (CMIS) that exists. I hope it encourages developers everywhere to adopt the standard and leverage CMIS-based tools from Apache Chemistry as part of their content-centric applications, desktop tools, or server implementations.

If you aren’t yet familiar, CMIS is an industry standard for working with Enterprise Content Management repositories (ECM) like Alfresco, IBM FileNet, Microsoft SharePoint, Documentum, Nuxeo, and others. Once you know the CMIS API and SQL-like query language you can work with any repository that supports CMIS.

If you happen to be at the O’Reilly Open Source Convention (OSCON) in Portland, Oregon today, Jay, Florian, and I will be hanging out in the Apache Software Foundation booth starting at 5:00p and we will have books for a lucky handful of folks. If you miss out on that, Manning is running a Deal of the Day promotion today. You can get 50% off the book with code dotd0723tw.

Writing a book is a seriously tough project. I was lucky I didn’t have to do it alone this time and even luckier still that Jay and Florian are top-notch experts in CMIS, great writers, and just a pleasure to work with. Thanks, guys!

 

Alfresco Office Hours with Jeff & Richard

Alfresco Office Hours with Jeff & Richard is our periodic Hangout on the Air that we use to keep everyone up-to-date on things going on in the Alfresco community. If you missed today’s session, you can watch the replay.

And here are some rough notes…

  • If you cannot login to the support portal, are having trouble with the download links, or you have any other problem or feedback with the new system, please let your main contact know. If you don’t know who that is or how to get in touch with them, let me or Richard know.
  • Alfresco Summit Can’t Wait Rate ends 7/19. That’s tomorrow! For a complete discount schedule, go to http://summit.alfresco.com/pricing
  • Alfresco Summit speakers should now know their status and have received speaker instructions.
  • CMIS Book is in print! We’ll have free copies at OSCON next week.
  • New York City meetup is happening 8/14. Sign-up at http://www.meetup.com/webcms-45/
  • Alfresco Day Sydney is happening 8/22. Sign-up at https://www.alfresco.com/events/alfresco-day-sydney
  • Sounds like a San Francisco meetup may also happen in August. Watch http://www.meetup.com/BayAreaAlfresco/ for date announcements
  • A Kansas City meetup is trying to happen, but struggling. There are a lot of Alfresco users in Kansas City–don’t you all want to meet to trade tips and tricks?
  • Add your meetup to the Local Communities page on the wiki. http://wiki.alfresco.com/wiki/Local_Communities
  • Thanks to marsbard who reported a problem with the ecmarchitect.com workflow tutorial on 4.2.c in our last Office Hours. It’s fixed now. Download the updated zip from https://ecmarchitect.com/archives/2012/02/20/1552
  • I will move the tutorial code from ecmarchitect.com to github. The old Alfresco Developer Guide code is already on Google Code but I don’t really update it any more.
  • Check out the Community Edition How-To vids on YouTube: http://youtube.com/alfresco101
  • Please use us. If your Jiras aren’t getting attention or if you have a large code contribution that you want to make, we can help facilitate that. That’s just one example. The point is, we want to help you get plugged in to the community. Don’t be afraid to reach out.

Five of your favorite Alfresco-related presentations

If views of my presentations on SlideShare are any indication, a whole lot of you are interested in integrating Drupal and Alfresco. Despite the fact that the presentation is four years old, it consistently makes the “most viewed” list out of my uploads. If you are considering Drupal but need something a bit more document-centric to serve up your files as part of that Drupal site, take a look:

With over 12,000 views, it is safe to say there is definitely something to the combination of Alfresco and Drupal.

Another apparent classic is:

Which is kind of scary given its age and brevity. I think the popularity of this is due to the seemingly inexhaustible demand for “getting started” resources for new Alfresco developers.

This one has similar info, but with more details, and is probably a better choice for developers trying to get an extremely high-level overview:

The CMIS API is now the preferred way to interact with the Alfresco repository remotely, and many people use this presentation to get a quick overview:

In fact, I’ll have a CMIS powerhouse panel on Tech Talk Live tomorrow (July 10, 2013). So if you are just getting started with CMIS, please join us.

If you like CMIS but you don’t want to fool around with your own server, you can use Alfresco in the Cloud. This deck gives a CMIS overview and discusses the Alfresco API at a high-level with links to sample code and screencasts:

Thanks to everyone who has made use of these presentations!

Who would you most like to meet at Alfresco Summit and why?

Every year I create a list of “community stars” and I send them a free pass to our annual conference. Some of the things I use to create my list include things like forum helpfulness, #alfresco IRC presence, mailing list activity, meetup hosts, participation in contests, wiki edits, blog and book authors, open source add-ons, contributions to the product (bug reports ,fixes, new features), and activity on stackoverflow.com.

But a key ingredient that has always been missing is you. Of course, you’ve given me your input indirectly–when you award someone points in the forum or you link to one of their blog posts you are boosting that person’s standing in our community. But now I want to ask the question explicitly: Who from our community would you most like to meet in-person at Alfresco Summit and why?

Note that my definition of the Alfresco community is always all-inclusive: employees, partners, customers, and other community contributors, regardless of which specific product they use, all participate in our ecosystem. For this, I’m looking for non-Alfresco employees. Most likely, if you can name an Alfresco employee, they will be at Alfresco Summit.

If you want to name someone publicly you can comment on this post or send a tweet and cc @jeffpotts01. If you’d rather nominate someone privately, feel free to send me an email. My Alfresco address is jeff dot potts at alfresco dot com.

Be sure to specify Boston or Barcelona.

 

End-User How-To Videos for Alfresco Community Edition

I’ve started creating some how-to videos for performing common end-user tasks on Alfresco Community Edition. You can get to them all on this YouTube Playlist or take a look at the ones created so far, below…

The playlist currently includes:

  • Reviewing the sample site
  • Adding users (one at-a-time and by importing a CSV)
  • Creating groups
  • Create a new site
  • Five ways to create content
  • Versioning a document
  • Starting a workflow
  • Updating your profile
  • Exploring social features
  • Configuring user and site dashboards
  • Adding new features to your site

In the very near future I’d like to add some technical how-to’s for Community Edition, including LDAP configuration, CIFS/WebDAV/FTP/IMAP configuration, installing the SharePoint Protocol, installing the Google Docs Integration, configuring inbound and outbound SMTP, basic content model extensions, and basic dashlet development.

If you have ideas for Alfresco Community Edition videos you’d like to see that would help make your Alfresco Community Edition rollout more successful, let me know.

Alfresco Summit 2013 Registration Now Open

Alfresco Summit LogoIt looks like some of you have already taken advantage of the fact that registration for Alfresco Summit 2013 went live yesterday. I guess our “Can’t Wait!” rate is aptly-named!

We’ve updated the web site with a high-level agenda, training course descriptions, hotel and venue information, detailed pricing, and, of course, the registration form (Barcelona, Boston).

Regarding pricing, note that we are doing something a little different this year. Instead of having a single early-bird period we’re having multiple price breaks leading up to the event. The biggest savings happens now through mid-July and then the prices start to go up until we eventually reach the full-price rates.

Networking with others in the community, talking to industry visionaries and Alfresco Engineers, and taking some time to look at your ECM implementation from a new angle are all great reasons to come to Alfresco Summit. But I think the biggest benefit that justifies the cost of the conference, travel, and time away from work is the great content.

If you’ve been to past DevCons you know that this is an information-dense event. That will be the case again this year. To help make that happen, we rely on our passionate community of customers, partners, employees, and other members of the ecosystem to come to the conference and share their story with the rest of us, whether that’s a full-length session or a lightning talk. If you would like to speak, there is still time. You have until June 15 to get your proposal turned in.

Alfresco Summit is the must-attend event for anyone doing anything with our software. Do not wait to register because I want to see you there, have a chance to shake your hand, and thank you for helping make Alfresco the last true innovator in the ECM industry.

Alfresco runs happily on MariaDB

MariaDB is a fork of MySQL that was created after the Oracle acquisition. I suspected Alfresco would run fine on top of it, but was surprised at how easy it was to do.

MariaDB is a drop-in replacement for MySQL. Literally. You don’t have to change anything, really. Uninstall MySQL, install MariaDB, restart Alfresco, done. Same driver. Same connection string. Same tables. Same mysql command-line client.

If you install from MacPorts, watch out for this gotcha, otherwise, it is no big deal.

You don’t need both installed, but if both MySQL and MariaDB are installed via MacPorts, you can switch between the two with “sudo port select –set mysql mariadb”.

Despite the compatibility, Alfresco does not list MariaDB on the list of supported databases, so Enterprise Edition users should not do this on production machines.

CMIS 1.1 is now an approved spec; Here’s a recap of what’s new

CMIS LogoWith a final, heroic push and get-out-the-vote campaign, the OASIS CMIS Technical Committee (TC), the committee that is responsible for moving the CMIS specification forward, was able to get enough votes on Thursday to ratify the next version of Content Management Interoperability Services (CMIS) as a standard. This is a seriously cool accomplishment for everyone on the TC and the entire Enterprise Content Management (ECM) industry because CMIS establishes an industry standard for working with repositories like Alfresco, Documentum, FileNet, Nuxeo, and SharePoint, and it is important that the spec continues to evolve.

CMIS 1.1 has some exciting new features. Here’s a re-cap of what’s new…

Browser Binding

A binding is the protocol a client uses to talk to a CMIS server. CMIS 1.0 supported two bindings, Web Services (SOAP) and AtomPub (RESTful XML), the latter being the most performant and the most popular. But if you’ve ever looked at the XML that comes back from a CMIS AtomPub call you know how verbose it can be. The Browser Binding is based on JSON, so the payloads that go between client and server are smaller, making it the fastest of the three bindings. The original purpose of the Browser Binding was to make it easy for those building “single page” web apps or doing other work with CMIS via client-side JavaScript, but I think apps of all types will move to the Browser Binding as quickly as possible simply because it is easier to work with.

Type Mutability

This allows CMIS developers to create and update the repository’s content model with code. Imagine you’re building an Accounts Payable solution. You’re using CMIS because you want your solution to run on top of any CMIS-compliant ECM repository. It is highly likely you will need content types to store objects with metadata specific to your solution. Before CMIS 1.1, you have to ship repository-specific content models and installation and configuration instructions with your app. With CMIS 1.1, developers can simply write install and config logic as part of the solution that will interrogate the repository to determine if any changes need to be made to the content model to support the solution, and if changes are required, implement them.

Secondary Types

Some repositories (like Alfresco) have the concept of free-floating or cross-cutting content types that group together related properties that can be added to object instances in the repository. For example, perhaps you want to define a “client-related” set of properties that can be added to any document in the repository that is related to one of your clients. Not all documents are related to a client, but the ones that are need to be able to refer to a client name or number or something. In Alfresco, these are called “aspects”. CMIS 1.0 didn’t support aspects natively so developers using CMIS to query for or set properties defined in an aspect had to use a workaround. In CMIS 1.1, aspects are supported natively.

New “Item” Type

In CMIS 1.0, Document objects are assumed to have a content stream. Some repositories even require it. In Alfresco, this means if you want to work with a type that inherits from something other than cm:content (or cm:folder), you are out-of-luck. CMIS 1.1 adds a new base object type called “Item” that represents objects that don’t have a file associated with it.

Bulk Updates

CMIS 1.1 adds a new feature that makes mass changes more performant. Instead of iterating over a list of objects, changing and saving each one, you can define a set of property changes and make those against an entire collection, which is much more efficient.

Append to Content Stream

A challenge with any ECM project is how to move large files into the repository. The new append to content stream feature in CMIS 1.1 allows you to send files to the repository in chunks which could be a key to addressing that challenge.

Retentions and Holds

This new feature allows you to set retention periods for a piece of content or place a legal hold on content through the CMIS 1.1 API. This is useful in compliance solutions like Records Management (RM). Honestly, I am not a big fan of this feature. It seems too specific to a particular domain (RM) and I think CMIS should be more general. If you are going to start adding RM features into the spec, why not add Web Content Management (WCM) features as well? And Digital Asset Management (DAM) and so on? I’m sure it is useful, I just don’t think it belongs in the spec.

So that’s what’s new in CMIS 1.1. You can read the authoritative spec for details.

When Will My Favorite Repository Support CMIS 1.1?

That’s up to each vendor. If these features are important to your installation or the solution you are building, you should be making it very clear to your vendor contacts that you want to see these features get priority over other things the engineering team might be working on. As for Alfresco, I can’t make any promises on dates. We’ve had experimental support for the browser binding in place for some time. I think we all want to see the other CMIS 1.1 features in both Alfresco on-premise and in the cloud sooner rather than later, but I don’t know when that will be.

Try It!

You can play with CMIS 1.1 by downloading the OpenCMIS InMemory Server from Apache Chemistry and a client library for your favorite language, or just launch the OpenCMIS Workbench and you’ll see the Browser Binding as an option when you connect. If you need to know more about CMIS and the client libraries, server frameworks, and CMIS development tools available at Apache Chemistry, you should buy the book Jay Brown, Florian Mueller, and I have been working on. It should be in print later this summer but you can get the eBook now. It covers both CMIS 1.0 and CMIS 1.1.

Alfresco Tech Talk Live moves to Hangouts On Air; this month’s topic “Alfresco & Reporting”

hangoutsonair-300x171We’re going to try something new with Tech Talk Live. The May episode, which airs this Wednesday, May 1 at 10:00 US/Central, will be broadcast on Hangouts On Air rather than WebEx. This means you don’t have to sign up beforehand and you will be able to watch the recording on YouTube rather than using WebEx’s proprietary format that cannot be replayed on Linux clients.

If you are already signed up for the WebEx this Wednesday, don’t join it. Instead, just head over to the Event page. We’ll embed the live broadcast there. We’ll also include an embedded IRC chat window tuned in to #alfresco on Freenode IRC to facilitate real-time questions and discussion.

What’s on the agenda this month?

So glad you asked. This month we’ll be talking about Alfresco and reporting. We’ll have Alfresco community member, Tjarda Peelen, showing us what he does to solve the problem by integrating Alfresco and Pentaho. He’s made that available as an open source project so we’ll be looking at that code, seeing a demo, and talking about other ways people do reporting against Alfresco. If you want to throw in your ideas, join us in the chat.

We’ve tried Google Hangouts before, but this is the first time using it for Tech Talk Live. We hope it works well and that you’ll like the new format. Of course it could be a complete disaster. Who knows. Tune in to find out!