Category: Alfresco

Alfresco open source content management

Alfresco Summit 2014 Save-the-date & Call-for-papers

I am pleased to announce that Alfresco Summit 2014 will be held this year in San Francisco and London. Similar to last year, we’ll have an optional “Day 0” which will include training and a hack-a-thon and then the main conference will start on the following day. This year, the main conference lasts only two days, regardless of the tracks you are interested in.

San Francisco
Hyatt Regency San Francisco
September 23, 24, & 25

London
Hilton London Metropole
October 7, 8, & 9

San Francisco and London are two of my favorite cities so I’m looking forward to spending time in each one.

The Program At-a-Glance

The business tracks were popular last year so we’re going to do those again. Laurence Hart is heading up the business tracks this year. I expect the business sessions, two tracks full of non-technical presentations from customers as well as a few sessions from Alfresco product management, will be well-attended.

I’m taking the technical tracks again, which is always fun. Several of you said you had too many tough choices last year so we’re moving from four technical tracks down to three. So that’s two full days of technical content for both beginners and experts delivered by Alfresco engineering, partners, and other community members.

The solutions track will work the same way as it did last year with Joe Tong and Peggy responsible for selecting content that showcases entire solutions built for the Alfresco platform. And the ever-popular lightning talks that Richard Esplin puts together every year will also be on the agenda.

Another change we made in response to your feedback is that we’ve reduced the sessions from 50 minutes to 40 minutes, which effectively doubles the time between sessions. This will give you more time to network in the “hallway track” and to browse the booths in the exhibit hall.

We Need Your Great Content!

I’ll fill you in on the killer keynotes, the can’t-miss party, and other details later. None of that really matters without one key ingredient: Outstanding content. This is where you come in. Every year we get some great responses to our call-for-papers. I expect this year to be no different.

You should submit a proposal to speak at Alfresco Summit. Your colleagues want to hear:

  • What have you been doing with Alfresco that others could learn from?
  • What was the good, the bad, and the ugly from your last project?
  • What are those tips and tricks that would have saved you days or weeks had you only known beforehand?

This kind of information is invaluable to the broader community.

Before I tell you how to submit your idea for a topic, let me give you some hints on what I think makes a great Alfresco Summit topic abstract.

Think about what everyone else is going to propose, then pick something different

A good abstract is one that shows us you’ve got a unique or innovative topic. At the same time, the topic can’t be so niche or specialized that it’s only interesting to a handful of people. If your talk is one of ten just like it, you’re odds aren’t very good. Think new and different.

Related to this, try to avoid topics an Alfrescan is likely to propose. For example, a talk on the latest features of Alfresco One is something that the Alfresco One product managers will present.

Explain who will attend your session and what they will take away

When you are writing your abstract, figure out who will want to attend. This might be job titles or even specific individuals. With those people in mind, ask yourself what is it that they are trying to get out of your talk. A good abstract explains who will attend, why they are interested, and what they will take away from your talk.

Be descriptive, but succinct

When you write your abstract, be descriptive but be succinct. I want to know why this is going to be an interesting talk and why you are the best person to give it, but I don’t need your life story. This year some of the fields have character limits to keep length reasonable.

Don’t Wait, Submit Today!

To have your topic considered you must submit a complete form by the end of April regardless of whether you are submitting for a business talk, a technical talk, or a lightning talk. Solution talks will be handled separately through Joe and Peggy.

The form itself is pretty simple: You’ll tell us who you are, what you are presenting, and what Alfresco products the talk is related to.

If you are selected to present a full session you will receive a free conference pass. We won’t pay for your travel expenses, but you’ll save on registration. You’re in it for the glory anyway, right?

I look forward to another bumper crop of great topic ideas. If you have any questions, please don’t hesitate to let me know.

Alfresco freenode IRC chat room transcripts now logged, searchable

I told you about the #alfresco chatroom on IRC a couple of years ago when Richard Esplin and I took it over and started promoting its use. Since then it has grown tremendously with somewhere between 30 and 40 people hanging out and discussing various Alfresco-related (and some unrelated) topics.

Richard recently rolled out some new features that I hope will help keep the momentum going.

First, the chatroom is now logged. The last 90 days of messages are available at chat.alfresco.com. That page also includes an embedded web chat client for people who don’t have their own desktop client or for quick questions.

Second, there’s a new member of the chatroom named alfbot. The bot’s primary purpose is to facilitate logging, but it gives us some additional functionality which is pretty handy. Here are a few examples:

  • If you want your message to be excluded from the log you can start your message with [nolog]. Your handle will appear in the log but your message will be redacted.
  • If you need to tell someone something but they aren’t currently logged in, you can say “alfbot later tell jpotts You finally decided to log in, eh?”. Then, when alfbot sees jpotts log in your message will be added to the chat.
  • If you want to know when the last time someone was in the chat room you can say, “alfbot seen resplin” and that would tell you when Richard was last on.
  • If you want to tell alfbot something and you don’t want to type “alfbot” at the start of your message, you can use a tilde as an alias, like this: “~later tell jpotts You finally decided to log in, eh?”.

People that hang out in #alfresco frequently will want their own desktop IRC client. There are many available. On Linux, I’ve used Pidgin and liked it. On my Mac I use Adium. On Windows there is HexChat, which I haven’t used.

Regardless of which client you use, just point it to irc.freenode.net, then join us in #alfresco.

Thanks to Richard and the IT team for getting this in place and to Ian Crew for making the pages on chat.alfresco.com look pretty.

Alfresco Tech Talk Live Re-Cap: Content hashes, cloud dashlets, & MongoDB

If you didn’t catch Alfresco Tech Talk Live today you missed one heck of a session. We had a motley crew of panelists showing off their creations from November’s Alfresco Summit Hack-a-Thon. Here’s the recording:

Three of the hack-a-thon teams gave demos. We heard from:

  • Axel Faust (Prodyna) and Martin Cosgrave. They showed us a solution they created for a hash-based content store. Content is given a hash as it is added to the repository, then if subsequent content is added, it simply points to that file on disk rather than duplicating it. They also used a hash to create a cache for Alfresco Share. Axel and Martin’s project is hosted on GitHub.
  • Will Abson (Alfresco) showed us a couple of cool things. One was an integration between on-premise Alfresco Share and Alfresco in the cloud. It included, a dashlet like My Sites that lists your sites on Alfresco in the Cloud as well as a search modification that allows you to do a single search against on-premise and Alfresco in the cloud. The project is on GitHub. He also showed an admin console add-on called the Alfresco Cloud API Explorer that lets you run HTTP GETs against the public Alfresco API.
  • Derek Hulley (Alfresco) showed a proof-of-concept he’s been working on. His POC is aimed at replacing the relational back-end that Alfresco uses to store metadata with MongoDB. It isn’t complete yet, but he was able to show that you could add aspects to a node and those aspects and property values were persisted in MongoDB.Derek’s project is on GitHub.

Nathan McMinn (Alfresco), Richard McKnight (Alfresco), Ben Kahn (Red Hat), and Alexey Ermakov (VIDEL) were also on our panel and participated in the discussion but we ran out of time for their demos. We’ll circle back with them another time.

We also have three brief announcements:

Thanks to all panelists and viewers who participated!

Why I took the Alfresco Certified Administrator exam

Alfresco_Certified_Administrator_CMYKLast week I took (and passed!) the Alfresco Certified Administrator (ACA) exam. I don’t administer an Alfresco server every day as part of my job, so why would I do such a thing? Lots of reasons. Let me give you a few…

Reason 1: I wanted to see how hard the exam really is

If you review the information about Alfresco certification you’ll see that the certification isn’t one of those trivial “thanks for participating” certificates you get at the end of a training course after a simple were-you-listening-at-all kind of exam. The blueprint says you don’t have to take the training but you must have the knowledge and competency necessary to run a production installation. I wanted to see if this really was the case.

I can’t reveal what’s on the exam, but I will say I was impressed with its thoroughness and depth. The exam really does cover just about every part of the platform that an administrator has to know about to be successful.

Every certification exam I have ever taken has had questions that I’ve wanted to argue with and this one is no exception, but the test seemed like it was constructed to genuinely test my competency rather than to trip me up with confusing or easy-to-misread questions.

So I’d say the difficulty level is appropriate and the coverage is such that I would feel pretty comfortable letting anyone who had passed that exam (and who exhibited other requisite strengths) put their hands on my server.

Reason 2: I wanted to keep up with my friends

I took and passed the Alfresco Recognized Developer exam as soon as it was available. That was back in February of 2011. Then I joined Alfresco, got busy, and never bothered with the ACA or Alfresco Certified Engineer (ACE) exams when they eventually replaced the Recognized Developer Program.

Honestly, it’s been nagging at me. Seeing those badges in the forums. Watching the congratulatory tweets as others passed their exams. Knowing that we’re going to start doing more to publicize people who hold the certs. I finally said, “What am I waiting for? It’s kind of ridiculous that the guy leading the community doesn’t participate in the certification program!” and then I scheduled the test.

Reason 3: I wanted something that would vouch for my abilities to people who don’t know me

On any given day I am answering questions in the forums or IRC, writing a technical how-to, recording a screencast, or giving a technical talk about Alfresco at an event. A lot of people know I’ve been doing these things for 8 years (!) with a good chunk of that spent actually implementing solutions for clients but not everyone does. A certification is a way of saying, “This person has been around the block a bit with this technology”. It doesn’t mean everything I say is always correct. But it does add a certain amount of objective credibility to what I say.

It’s this last point that should make a difference to you. Whether you work for a partner who implements Alfresco One for customers, or you are an independent consultant who does work on Community Edition, or you support Alfresco in your internal IT shop, a certification distinguishes you from the person whose boss just stopped by to let them know they should start learning about the new open source ECM platform their company is migrating to from Documentum, and that could make a difference when you try to land your next deal or when you hit the boss up for a raise.

I don’t know for sure whether or not an Alfresco certification will get you hired or promoted more quickly or guarantee you a higher billing rate, but it sure can’t hurt. And if it isn’t happening already, I’m sure companies will start making it part of their job requirements and RFP templates.

So what are you waiting for? Look at the blueprint, figure out where your gaps are, take some training if you need it, and then go get certified.

Updated tutorial: Creating custom advanced workflows in Alfresco

I have published a major revision of my “Creating custom advanced workflows in Alfresco” tutorial. Major changes include:

  • The tutorial now uses the Alfresco Maven SDK to instantiate the projects and to produce and install AMPs.
  • The tutorial no longer refers to jBPM, except to give brief historical context as to why the platforms includes both jBPM and Activiti.
  • The tutorial no longer includes any references to the old Alfresco Explorer client, except where it pertains to using the Alfresco Workflow Console, which is only available as part of the Alfresco Explorer Client.
  • Significant wordsmithing and re-organization to improve style and clarity.

I have tested the steps and the code against Alfresco 4.2.e Community Edition and version 5.14 of the Activiti Process Designer for Eclipse.

By the end of the tutorial, you will know how to:

  • Create, deploy, and run business processes using Activiti embedded within Alfresco.
  • Configure Alfresco Share to display custom forms when starting Activiti workflows or managing workflow tasks.
  • Use the Alfresco Workflow Console to deploy process definitions, start workflows, and delete workflows.
  • Add business logic to your process definitions using JavaScript and Java.
  • Assign workflow tasks to users and groups.
  • Add timers to your process definitions to take an action automatically after a specific time period.

The tutorial assumes you already know how to use the Alfresco Maven SDK. If you have never used it, take a look at this tutorial. The workflow tutorial also assumes you have worked through the Custom Content Types, Custom Actions, and Intro to Web Scripts tutorials.

The source code and the tutorial itself reside in GitHub. If you find problems or want to make improvements, please fork the project, make the change, and send me a pull request.

Notes from last week’s office hours

UPDATE: Corrected the Alfresco Summit dates which have changed since this was posted

In case you missed last week’s live Alfresco office hours, here is the re-play:

And here are my notes from the session…

Follow-up items from last office hours

Worldwide, Virtual Hack-a-thon is happening May 9

  • Sign up on the wiki
  • Alfresco team members in all three regions will participate
  • 24 hours

Sign-up for the Alfresco quarterly community newsletter. The next one should be coming out in March.

The new Alfresco Community Landing Page should be live on www.alfresco.com by the end of this week.

IRC improvements

  • Join the live conversation at #alfresco on freenode IRC
  • The chat room is now logged
  • We’ll move the logs to an Alfresco server and domain at some point

Kicking off the Alfresco Community Profile project

  • At a minimum, will provide the ability to use the same credentials for all Alfresco community properties
  • Vision is to use it as each community member’s “face” to the rest of the community

Community translations going strong

  • Get started by reading this wiki page
  • Work on a community-contributed language pack at CrowdIn
  • File patches for officially supported language packs in Jira

The last of the ECM Architect tutorials that still needs a revision (Advanced Workflows) is almost done

  • Tutorials now use Alfresco Maven SDK
  • Tutorials now produce AMPs instead of using the overlay approach
  • All references to old technologies such as Alfresco Explorer, the native Alfresco Web Services API, and jBPM have been removed.
  • Tutorial text and source code are on GitHub

Alfresco Summit Save-the-Date:

  • Two months earlier
  • EMEA: 9/9, 9/10, 9/11 in London Alfresco Summit EMEA
    October 7, 8, & 9 (T, W, R) in London
  • Americas: 9/23, 9/24, 9/25 in San FranciscoAlfresco Summit Americas
    September 22, 23, & 24 (M, T, W) in San Francisco
  • Shorter: Two days (plus the optional workshop day), otherwise roughly the same format
  • Call for papers coming soon

The next Alfresco Office Hours will be March 21. The next Tech Talk Live is March 5. We’ll be reviewing several projects that were created as a result of the Alfresco Summit Hack-a-Thon back in November.

Updated tutorial: Introduction to Alfresco Web Scripts

I have published a new version of my Introduction to Web Scripts tutorial. This is a major revision that refactors the tutorial to leverage the Alfresco Maven SDK and AMPs. In addition, I have done a little bit of reorganization to improve clarity and a lot of wordsmithing to make the tutorial more consistent with the others in the Alfresco Developer Series.

By the end of this tutorial, you will know how to:

  • Extend Alfresco with your own custom RESTful API.
  • Write web scripts that respond to GET, POST, and DELETE requests over HTTP/S and return data in both HTML and JSON.
  • Use the web scripts console to display documentation and debug info on your custom and out-of-the-box web scripts.
  • Make AJAX calls to your custom web scripts.

The tutorial assumes you already know how to use the Alfresco Maven SDK. If you don’t, take a look this tutorial.

The tutorial text and all of the source code related to it are on GitHub. If you see problems or opportunities for improvement, please fork the project and send me a pull request.

Combine the qualitative and the quantitative with Alfresco and Pentaho

Yesterday we had our monthly Tech Talk Live session. The topic was “Business Intelligence for ECM Practitioners” and it was all about how BI can be applied to the data that lives in your Alfresco repository. We were joined on the panel by Francesco Corti, who is experienced in both ECM and BI, as well as John Iball, the product manager for Alfresco One.

Here is the broadcast in case you missed it:

During the broadcast we saw Francesco’s AAAR solution which extracts data from Alfresco and puts in a data warehouse. Pentaho, an open source Business Intelligence platform, is then used to create a dynamic dashboard that end users can use to interactively answer business questions about that data. Francesco showed a live demo of reporting using Alfresco auditing data, but with his CMIS connector for Pentaho, you could report on anything stored in the repository.

John Iball shared with us that reporting and analytics was one of the top features requested during a recent discussion with 70 or so Alfresco customers. Rather than very basic reporting features, John said that customers want the ability to do deeper analytics on the data stored in Alfresco. Some will already have BI platforms in place. Others will benefit from a complete solution. Either way, John says that meeting this need is high on Alfresco’s roadmap right now.

About Tech Talk Live

Tech Talk Live occurs on the first Wednesday of every month barring a holiday or some other conflict. During each episode, the Alfresco community team focuses on a specific topic and invites panelists from Alfresco, partners, and the broader community to take part in the conversation. The session is broadcast to the public live on Google Hangouts on Air with Q&A taking place simultaneously in #alfresco on freenode IRC. Check the wiki for links to prior and future episodes. The Alfresco events page also has entries for Tech Talk Live.

Our next episode will be on March 5 when Nathan McMinn joins us to recap some of the killer projects that were created during the Alfresco Summit 2013 hack-a-thon.

Updated tutorial: Implementing Custom Behaviors in Alfresco

I have published a major revision to my Implementing Custom Behaviors in Alfresco tutorial. I hadn’t really touched it since 2007–behaviors, the ability to bind programming logic to types, aspects, and events in Alfresco, haven’t changed at all since then.

The changes are mainly around using the Alfresco Maven SDK to produce AMPs and the addition of unit tests to the project. I also gave it a bit of a style scrub to make it more consistent with other tutorials.

The tutorial continues with the SomeCo example. In this tutorial you will create the content model and behavior needed to implement the back-end for SomeCo’s five star rating functionality. By the end of this tutorial you will know:

  • What a behavior is
  • How to bind a behavior to specific policies such as onCreateNode and onDeleteNode
  • How to write behaviors in Java as well as server-side JavaScript
  • How to write a unit test that tests your behavior

This tutorial, the source code that accompanies it, and the rest of the tutorials in the Alfresco Developer Series reside on GitHub. If you want to help with improvements, fork the project and send me a pull request.

Next week I hope to publish a major revision of the Introduction to Web Scripts tutorial.

Updated tutorial: Creating Custom Actions in Alfresco

I have published an updated version of the Creating Custom Actions in Alfresco tutorial. Similar to the recently updated Working With Custom Content Types in Alfresco tutorial, this version has been updated to match the refactored code which now assumes you are using the Alfresco Maven SDK to produce AMPs and that you are using Alfresco Share as the user interface. I’ve removed all references to Alfresco Explorer.

The Custom Actions tutorial covers:

  • What is an action
  • How to write your own custom action in Java
  • How to invoke the custom action from a rule or from the Alfresco Share UI
  • Configuring an evaluator to hide the UI action when certain conditions are true
  • Configuring an indicator to show an icon in the document library when documents meet certain conditions
  • Writing and executing unit tests with the Alfresco Maven SDK

If you aren’t familiar with the Alfresco Maven SDK and you need help diving in, take a look at this tutorial.

All of the tutorial source code and text for the Alfresco Developer Series of tutorials is on GitHub. Please fork the project, make improvements, and send me pull requests.

Next on the to-be-updated list is the Custom Behaviors tutorial. I expect that to go live sometime next week.