Skip navigation
All Places > Collaborate > Blog


7 posts

Those of you who attended Alfresco DevCon in Edinburgh at the end of January might remember that Kristen Gastaldo brought up the idea of doing more than just one Alfresco Global Virtual Hack-a-thon per year in the "Collaborate with Alfresco" session. And as is more than just obvious from the title of this post, I am pleased to announce the first of two Global Virtual Hack-a-thons we are planning on doing this year. As per feedback from the community, we have chosen Friday, May 10th, 2019, as the date for the event.


The TL;DR on Global Virtual Hack-a-thons

The Alfresco community is ever changing - long-term members may be moving on to other opportunities while new developers / users, drawn maybe by some of the newer products and technologies introduced into the Alfresco ecosystem, re-fill the ranks. So as always, a short introduction of what a Global Virtual Hack-a-thon is seems to be in order.


Alfresco Global Virtual Hack-a-thons are open to everyone in the Alfresco community. While there typically is a large percentage of attendees who are developers, we also like to see end-users, managers and other people interested in Alfresco and its ecosystem of products (Content Services, Process Services, Governance Services, Application Development Framework, Digital Workspace, Activiti Cloud etc.). The projects being worked on during the event can also focus on any kind of technical to non-technical topic, such as enhancing documentation or defining business requirements for critically missing feaures to be discussed / passed on to Alfresco. The more technical people in the event also welcome the opportunity to be exposed to different perspectives on the way Alfresco can be used to solve problems, or to get constructive feedback on the projects they are working on at the event.


Attending an Alfresco Global Virtual Hack-a-thon should also not be hindered by your specific location or time zone. With no specific city / locality where the hack-a-thon takes place, people use various digital tools to connect and collaborate on a global scale, e.g. by using Discord, IRC, Zoom or Skype web sessions. The event typically lasts between 24 and 27 hours (best was around 30) using the follow the sun principle. We start early in the morning for attendees in Oceania and East Asia and go on until ideally the last people in the Americas stop to work on their projects. Anyone can join and leave at any time of the day whichever fits best their schedule.


Project Ideas

As always, we are using a document in this space to list and coordinate project ideas for the Global Virtual Hack-a-thon in advance of the event. Everyone with a specific idea is free to list it on this page, even if they may not be able to attend the event themselves. Other interested parties can add their names to the ideas, and use comments or other communication means to discuss and refine those ideas further. On the day of the event, this also helps to point any new participants who may not have an idea about what to do yet to projects already in progress or waiting to be picked up.

WIth a month to go until the event, I want to invite everyone in the community to start thinking about what you would consider useful things / ideas to be work on / enhanced. Ideally, we have a list of a half a dozen or more ideas until the week before the event, when people can start to more specifically prepare for the projects they want to work on, e.g. get familiar with existing code if continueing an existing project or simply just coordinating who will join at what time in their teams.


Hacker Rooms

Though the Global Virtual Hack-a-thon is intended as a decentralised event, it also presents a good opportunity to get together and socialize in person, especially in regions where there is a concentration of community members. As part of the inaugural Global Virtual Hack-a-thon 2014, members of the community and Alfresco staff organised "hacker rooms" in Brussels, Sydney, Maidenhead, Atlanta and San Mateo. Local communities that want to organise similar hacker rooms for this year's event may contact the Alfresco community team to discuss how Alfresco could support these local rooms, e.g. by helping with catering or simply providing some swag. Please also list/announce your hacker rooms so other people in your region can get in contact with you to potentially join your local team.



Any questions about the hack-a-thon can be directed to myself or Ole Hejlskov. Any inquiries regarding support for hosting local hacker room, i.e. with regards to goodies / swag, should be directed to Ole or the community team in general (

Francesco Corti already publicised it in a tweet on Monday, so it is about time to give the regular, full announcement: Alfresco and the Alfresco community will be having the annual Global Virtual Hack-a-thon on Friday, October 5th, 2018.


Global Virtual Hack-a-thons are the balancing counter-point to the hack-a-thon events we are typically conducting during Alfresco conferences, no matter their name (DevCon, Summit or BeeCon). Unconstrained by a physical location and the individual time / travel cost of attending, our annual Global, Virtual Hack-a-thons  provide every member in the Alfresco community an opportunity to take a day out of the regular schedule to collaborate on projects of common interest, share ideas, network and collectively work to improve aspects of the Alfresco ecosystem.


Target Audience

No matter your location, no matter your role and no matter your specific field of interest, everyone is welcome and invited to participate. This is the event to work on your project ideas for a new Application Development Framework component, a new integration for Alfresco Process Services, a new addon for Alfresco Content Services, consolidate / update documentation in the community, or draft requirements for some missing feature from a business or end-user perspective. If you are a newbie to development on any of the Alfresco products / components, there are always experienced members of the community to join forces with and learn from. If you are a project manager or end user, your input and point of view will always be appreciated so the "code monkeys" among us can better understand your use cases and deliver better experiences.


All you need to participate is access to the internet, be willing to engage via remote working / collaboration tools (IRC / Discord / Zoom / Skype), and either propose a project idea or find a team to work on for the day. You can spend as little time as you can afford or as much time as you want to squeeze out of your day to work on the project of your choice - the main idea is to have fun and engage with other members of the community.


Project Ideas

Like every year, we have prepared a page on this platform to list your project ideas, or find and join teams around specific projects. Any idea for a project is valid as long as it lends itself to an open and balanced collaboration in the context of the wider Alfresco community. Ideas can be technical, experimental purely business / end-user orientied, or simple documentation / maintenance tasks, like updating an existing addon to a new version of Alfresco. The only thing we kindly ask you to refrain from is using the event for any sort of sales pushes or other, overtly commercial initiatives. Results of the event should allow to be shared for the benefit of the wider Alfresco community, usually by providing code under some sort of FLOSS / liberal license or publicly documenting / presenting the results.



The event does not have a formal start or end time - we start whenever the first people from Australia / Oceania / East Asia join in the morning (typically around 09:00 UTC+10) and go until the last people in the Americas call it a day (as late as 18:00 UTC-8). The hack-a-thon is operated in a follow-the-sun mode, so everyone usually joins when they start their respective work day and leaves when it ends. All-in-all the entire event can take up to 24-27 hours.


There is no deadline of any sort by which project ideas must / should be listed in the projects and teams page. If you have ideas in advance, we recommend to list those as early as possible to give others (your prospective teammates) a chance to get familiar with them before the event, and maybe already start a bit of a conversation about planning the day. If you do not have an idea in advance and maybe did not get a chance to look at the listed ideas, do not worry. It is also just as common to join the event without any preparations, and find and join any of the teams just by chatting / talking to them then and there. If you do not know who to talk to or how to find a team, engineers from Alfresco, a member of the Order of the Bee, the Alfresco community / developer relations team, as well as other members of the community will always be available to lend a hand. Simply jump on IRC / Discord or join the Zoom web meeting and touch base.


Hacker Rooms

Though the Global Virtual Hack-a-thon is intended as a decentralised event, it also presents a good opportunity to get together and socialize in person, especially in regions where there is a concentration of community members. As part of the inaugural Global Virtual Hack-a-thon 2014, members of the community and Alfresco staff organised "hacker rooms" in Brussels, Sydney, Maidenhead, Atlanta and San Mateo. Local communities that want to organise similar hacker rooms for this year's event may contact the Alfresco community team to discuss how Alfresco could support these local rooms, e.g. by helping with catering or simply providing some swag. We also have a page set up for you to list your details if you want to offer a hacker room to members of the community.



Any questions about the hack-a-thon event can be directed to myself, Francesco Corti or Kristen Gastaldo. Any inquiries regarding support for hosting local hacker room, i.e. with regards to goodies / swag, should be directed to Francesco or Kristen, or via mail to the community team in general (

By popular request, I'm going to explain a bit the project that we developed for the last Global Hack-a-thon. The purpose of this project was simply to develop something different using Alfresco as content management and integrate it with external processes or tools.


This Alfresco module analyze people photos and extract information about the gender, age, face expressions, emotions and others. So you can make a bulk photo import to Alfresco, and then make searches(for example, to know how many 30 age people photos are in the repository).


The list of possible information to extract from a photo is:

  • Number of persons
  • Ages
  • Gender  
  • Hair      
  • Facial Hair   
  • Emotions        
  • Accessories   

The result you will see is a box with the properties extracted from the metadata photo. 

And a friendly search interface.

For more  details about the user experience, you can check the Youtube Demo.


For this module we integrated Microsoft Azure with Alfresco 5.2 community version.

To configure the Azure API connection, change the following properties in the file.

// Depending on the geographical zone that you are
// List of attributes that we want to analyze in the response,gender,emotion,hair,facialHair,accessories,glasses
// Subscription key trial(*)<subsription-key>

(*) Limitations of Trial subscription key: 30.000 transactions, 20 per minute.



And about technical things, to extract all the information from the photos, we created a behavior that was executed when a new photo is uploaded/created in the repository. The execution of this behaviour was based on the integration with Microsoft Cognitive Services, so we needed to make a request and collected a response from the external service.


The following method is for construct the request to Azure:

public HttpPost prepareRequest(File file) throws URISyntaxException {
    URIBuilder builder = new URIBuilder(Constants.getPropertyValue(Constants.AZURE_FACE_API_URL));
    builder.setParameter("returnFaceId", "true");
    builder.setParameter("returnFaceRectangle", "true");
    builder.setParameter("returnFaceAttributes", Constants.getPropertyValue(Constants.FACE_ATTRIBUTES_LIST_TO_EXTRACT));

    URI uri =;
    HttpPost request = new HttpPost(uri);
    request.setHeader("Content-Type", Constants.APPLICATION_OCTET_STREAM);
    request.setHeader("Ocp-Apim-Subscription-Key", Constants.getPropertyValue(Constants.API_SUBSCRIPTION_KEY));

    FileEntity reqEntity = new FileEntity(file, ContentType.APPLICATION_OCTET_STREAM);
    return request;


Then we only need to analyze the JSON response and match with each metadata field of our Alfresco model.

        "faceId": "c5c24a82-6845-4031-9d5d-978df9175426",
        "faceRectangle": {
            "width": 78,
            "height": 78,
            "left": 394,
            "top": 54
        "faceLandmarks": {
            "pupilLeft": {
                "x": 412.7,
                "y": 78.4
            "pupilRight": {...},
            "noseTip": {...},
            "mouthLeft": {...},
            "underLipBottom": {...}
        "faceAttributes": {
            "age": 71.0,
            "gender": "male",
            "smile": 0.88,
            "facialHair": {
                "moustache": 0.8,
                "beard": 0.1,
                "sideburns": 0.02
            "glasses": "sunglasses",
            "headPose": {
                "roll": 2.1,
                "yaw": 3,
                "pitch": 0
                "anger": 0.575,
                "contempt": 0,
                "disgust": 0.006,
                "fear": 0.008,
                "happiness": 0.394,
                "neutral": 0.013,
                "sadness": 0,
                "surprise": 0.004
            "hair": {
                "bald": 0.0,
                "invisible": false,
                "hairColor": [
                    {"color": "brown", "confidence": 1.0},
                    {"color": "blond", "confidence": 0.88},
                    {"color": "black", "confidence": 0.48},
                    {"color": "other", "confidence": 0.11},
                    {"color": "gray", "confidence": 0.07},
                    {"color": "red", "confidence": 0.03}
            "makeup": {
                "eyeMakeup": true,
                "lipMakeup": false
            "occlusion": {
                "foreheadOccluded": false,
                "eyeOccluded": false,
                "mouthOccluded": false
            "accessories": [
                {"type": "headWear", "confidence": 0.99},
                {"type": "glasses", "confidence": 1.0},
            "blur": {
            "exposure": {
            "noise": {


In this blog post you saw how Alfresco Photo Analyzer Module works, integrating Alfresco Content Services and the Microsoft Cognitive Services. I attach you a list of useful links to find more material about this topic:

Face API: Reconocimiento facial | Microsoft Azure 

Emotion API: detector de emociones | Microsoft Azure 

Documentación de Microsoft Azure | Microsoft Docs 

Azure Code Samples | Microsoft Azure 


And some links about the project:


Youtube Demo:


Other related projects using Google API:

GitHub - keensoft/alfresco-google-vision: Google Vision API integration in Alfresco 

GitHub - deas/contentreich-ecm-google-ms: Clojure Microservice for Google 

DevCon 2018 in Lisbon is only six (6!) weeks away. As always, an important aspect of any Alfresco developer conference is the collaboration between members of the community, not just by sharing their knowledge, interesting use cases or innovations in the Alfresco ecosystem, but also by working on common problems, projects and ideas. Similar to the last BeeCon conference and the Alfresco Summit / DevCon events before, we are going to have a hack-a-thon before the main conference talks start, specifically on Tuesday, January 16th.


These in-presence, community hack-a-thon events offer a dedicated day of focussed collaboration, away from the distractions of the day-to-day tasks, away from meetings and (hopefully) away from emergency customer support calls. They provide an opportunity of working together with and maybe learning from other members of the community, all the while working towards a goal that may provide new value to the ecosystem around Alfresco. It does not matter wether you are a developer, sysadmin, end user or business analyst, if you work with Alfresco Content / Goverment / Process Services, or the Application Development Framework - everyone who attends DevCon can participate and offer their own ideas of tasks to be worked on. An end user or business analyst may want to work on improving documentation in the community platform, or compiling a draft of requirements or even concept for a missing functionality. Developers may work with sysadmins to improve tooling / integrations around the various products, or try their luck on an experimental implementation of an exciting, new feature. There are countless community addons being used by community members - may be you know of an addon that might need to be updated to a newer Alfresco version or that could be improved by processing some of their issues or pull requests.


When you are registering for DevCon, do not forget to specify your interest in participating in the hack-a-thon. If you have already registered without selecting the hack-a-thon, you can always change that afterwards by registering again and only selecting the hack-a-thon this time. We have more room available than we had at last year's BeeCon, so there is no reason to be shy thinking "I better leave that space for someone who is more into this".

Join us, work with us, have fun and become one of the many community members who already are "into this".


If you are planning to attend the hack-a-thon, please use the projects and teams document to list your project / task ideas, and/or register your interest in participation on any of the projects that have already been listed. As always, virtually any project idea goes as long as it is something that multiple people could work on together and which may benefit the open source community around the Alfresco products. Technical sales pitches or hands-on workshops are generally not a good idea for this event.

Finally the date is arrived!


The Alfresco Global Virtual Hack-a-thon will start the 22nd of September at 09:00 am NZST and we will work together until the end of the day. If you want to see the full list of projects, check here. To discover the closer Hacker Room to your town, check here (and feel free to join). For the last details and the final preparation you can read the blog post by Axel Faust.


Want to join us? Below you can see where.


Do you need support? Contact me, Kristen Gastaldo or leave a message here. You'll be contacted asap.


Feel free to join when you can, and stay with us until you want. Below some conversions of the kick off time, for some world wide timezones.


22nd of September 2017

09:00 am NZST - Auckland, New Zealand

07:00 am AEST - Sydney, AUS

06:00 am JST - Tokyo, Japan

05:00 am CST - Beijing, China

02:00 am IST - Mumbai, India

00:00 am MSK - Moscow, Russia

11:00 pm CEST (21st of Sep) - Spain - Nantes, France - Belgium, Brussels - Ostrava, Czech Republic

10:00 pm BST (21st of Sep) - London, UK

 06:00 pm BRT (21st of Sep) - São Paulo, Brazil

05:00 pm EDT (21st of Sep) - NewYork, USA

03:00 pm MDT (21st of Sep) - Denver, USA

02:00 pm PDT (21st of Sep) - San Francisco, USA


To find you city, check the timezone converter here.

At the time I am writing this, it is almost exactly 96 hours before the first members of our community start working on their chosen project for the Alfresco Global Virtual Hack-a-thon. Our Kiwi friends will kick off potentially the biggest hack-a-thon event we have ever had. Up to this point, the community has compiled a staggering list of 25 project ideas / teams with ~50 people registering an idea or an interest in participating. 10 local hacker rooms from Sydney to Maidenhead have been organised within the community and will hopefully provide a great experience not just for working on a project but also expanding / maintaing the network between our members.


Preparing for the event

It is highly recommended to prepare your local system / developer environment for the event, so that you can hit the ground running and use as much time as possible on your favorite project. That means you should make sure to:

  • have a current IDE with Maven support (Eclipse, IntelliJ...)
  • have a source control client or plugin installed, and an account on one of the popular public code repository platforms set up, so you can share your results and collaborate during the event (GitHub is by far the most commonly used platform)
  • created and built a project generated by the current Alfresco SDK, so that you have already cached most of the required dependencies in your local Maven repository
  • cloned or checked out the existing project (if continueing previous work), built it and - if possible - familiarised yourself with its basics
  • know how you can get into contact with your chosen teammates and the rest of the community, so you can coordinate your work and get help if needed
  • use this platform and private messages to connect with your potential teammates to also discuss other preparations you might be able to do


Communication during the event

Since this hack-a-thon is global and virtual, active communication is key to getting the most out of the event. In case you are working with teammates from other regions / timezones, you will have to consider how to hand-off the work you have already been doing so that others can hit the ground running. You may also have to get a new member up-to-speed, who potentially joins your project only at the day of the event.


During the event you may of course use any communication tools that best fits your needs. We still encourage you to join us in one of the channels that we will be using for coordination and support during the event:


Joining the event

It is up to you when you want to join or leave the event. When you do join on the day, simply join us in one of these channels and organise the start of your project with your teammates. if you don't have a project, you should ask around what others are working on to find something you might want to join. Richard Esplin and I will be online when the members from New Zealand and Australia join in the morning to help kick off the event. Afterwards it will be a bit of a relay with active members supporting anyone that joins after that.


After the event

When you are nearing the end of the event / your participation in it, please update the page listing the projects and teams with a reference to your results, e.g. a public repository on GitHub. We are not planning to do formal demos of the result during the event since it will not be practical in a rolling event like this, and might take time away from finishing your work in a clean way. Of course anyone can use our communication channels to showcase anything they want.


We will have a special Hack-a-thon demo session of Office Hours on October 6th. For this I would like to ask all the teams to get in contact with me, Kristen Gastaldo or Francesco Corti after the event to coordinate how you may be able to participate and showcase your results. As with all Office Hours sessions, the recording will be available for anyone that can not make it due to a difference in time zone. If you or your team cannot participate in the live event for the same reason, I would ask you to record a short video of your results that we may use in the session.


And finally...

I hope everyone of you will have a great time during the event. If there are any issues, questions or other concerns, please don't hesitate to contact me, Kristen or Francesco via a private message (or other means), so we can help sort them out.



P.S.: If there any Chatham Islanders, Tongan or Samoan in our community, shout out to you for being the ones who actually start the hack-a-thon.

In the past couple of years, the Alfresco community has held two annual hack-a-thon styled events - one centralised event during the main, annual conference, and one distributed event with people collaborating virtually from all over the world. After the successful hack-a-thon during during BeeCon in Saragoza earlier this year, Alfresco and I are happy to announce that we will be having the Global Virtual Hack-a-thon on September 22.


About Global Virtual Hack-a-thons

The community around Alfresco is global, with members on all continents (except Antartica). Most members may not be able to attend a conference in North America and/or Europe, and participate in hack-a-thon events at a physical location. Global Virtual Hack-a-thons started in 2014 to provide an alternative that is more accessible and inclusive. Using a mix of common collaboration and communication tools, anyone can participate as long as they can make the time and have access to an internet connection.


Attendees of the hack-a-thon either work alone or in distributed teams on projects suggested by community members or Alfresco staff. The event uses a "follow the sun" principle to allow members from any timezone to attend and get a full day's worth of work done. Starting with far-east Asia / Australia, attendees typically join the event in the morning of their local time and work until they decide to leave for the weekend. Various Alfresco community staff, engineers and key community members will be present over the entire duration of the event to lend support, and help bring together new people with existing project teams. This year we are fortunate to have Alfresco Engineering planning to participate in the event with more people than ever before, including large parts of the Process Services and Application Development Framework teams.


Project ideas

Hack-a-thon projects typically range from the usual addon coding or experimentation ideas, to non-technical tasks such as updating tutorials or creating new content on community platforms such as this. The event is open to ideas from the entire Alfresco community - it does not matter if you work with Content Serivces, Process Services or the Application Development Framework.


An extensive set of ideas will be compiled by community members from the Order of the Bee and Alfresco staff in the upcoming weeks, but anyone is encouraged to contribute to the list of projects and teams for the Global Virtual Hack-a-thon 2017. You should also see a series of documents and/or blog posts on this platform detailing some of the project ideas that Alfresco Engineering will be preparing for this year's event. In order to make the most of it, we recommend you follow this space and project ideas, so you can find a project and prepare for the event well in advance of it.


Hacker Rooms

Though the Global Virtual Hack-a-thon is intended as a decentralised event, it also presents a good opportunity to get together and socialize in person, especially in regions where there is a concentration of community members. As part of the inaugural Global Virtual Hack-a-thon 2014, members of the community and Alfresco staff organised "hacker rooms" in Brussels, Sydney, Maidenhead, Atlanta and San Mateo. Local communities that want to organise similar hacker rooms for this year's event may contact the Alfresco community team to discuss how Alfresco could support these local rooms, e.g. by helping with catering or simply providing some swag.