Year: 2011

Tech Talk Live, Dashlet Challenge, & other Alfresco community events

Just wanted to clue you in to some upcoming Alfresco events in case you missed them via other channels.

Tech Talk Live Reloaded

We’re going to start doing Tech Talk Live webinars again. In the past these webinars were run by Luis and Yong pretty much on a weekly basis. They typically started out with a short presentation on some topic and then opened up to general technical discussion. We’re going to start these back up, but we’ll do them monthly (at least to start out) on the first Wednesday of each month and we’re going to rotate the Alfresco engineers that participate.

The first call will be Wednesday, July 6th. Will Abson is going to talk about Share Extras and then field questions on Share dashlet development and other customizations. Get more information on the event details page.

Community Vision and Plan

I’ve presented a vision and plan for the Alfresco community to the rest of the senior management team at Alfresco, and recently I’ve been sharing that presentation with members of the community. On July 7th, I’ll be sharing it more broadly in a webinar. I’d really like as many members of the community to attend as possible and then provide me with feedback on the plan. Sign up for the webinar here.

Intro to Alfresco Development

On July 20th I’ll be giving a talk for people new to the Alfresco platform. We’ll be walking through the major sub-systems and taking a high-level look at the development model. Again, this is aimed a beginners–this is not a technical deep dive. Sign up for the webinar here.

Take the Dashlet Challenge

Speaking of writing code, got any cool ideas for Alfresco Share dashlets? If you code it up, make it available as open source, and send a pointer to your project to dashletchallenge@alfresco.com, you could win an iPad2. Your dashlet has to run on either Community or Enterprise 3.4 and will be judged on the basis of creativity, business applicability, code quality, and packaging. Will Abson, Mike Vertal (RivetLogic), and I will pick the winner. The contest runs until the end of August, so get coding. More details on the contest can be found here.

Alfresco launches Team for Departments and SMBs

Alfresco launched a new offering yesterday called Alfresco Team. Team is an attempt by Alfresco to reach out to departments and smaller organizations who would like a supported tool for collaboration, but don’t have the number of users, volume of documents, or support level requirements necessary to justify an Enterprise support subscription for Alfresco Share.

Team is essentially Alfresco Share plus some new features that haven’t yet made it into the Share product. Team will not be a separate code base going forward. After the next release of Alfresco, the features should be on parity and the difference between Team and Share will be the cost (which, for Team, is based on number of users and number of documents) and support levels.

Team can be downloaded and run on-premise, on the customer’s own cloud infrastructure (public or private), or on Bitnami’s cloud infrastructure. It is not yet offered as true SaaS–the customer must install and maintain the software. We will likely see a true SaaS offering of Team later this year.

In July, Alfresco will be releasing iOS apps for Team that run on both iPad and iPhone. I haven’t yet played with these but the use case is primarily around content creation and capture, so that collaborators can grab content (from a camera, from iWork, etc.) and get it into the Team repository where it can be routed, reviewed, updated, and commented on by the rest of the team members.

Once the new Team features are added in to Share, the iOS apps will probably work with Share as well (not certain, but likely).

We’re going to release the iOS code as open source so that you’ll be able to take it, tweak it, re-brand it, or develop new Alfresco-centric mobile apps with it. I’ll give you more details on that as we get closer.

One early concern partners had was whether or not they would be able to implement and customize Alfresco Team. The answer is a qualified “yes”. Partners can install the product for clients, but customization is limited to creating custom themes or adding new mash-up style dashlets. In other words, if you want to change how the document library works in Team, you can’t do it. There’s a complete list of what customizations can and cannot be done here. It’s important to note that this isn’t really a partner issue–customers are subject to the same list. It’s really about keeping support costs down due to the lower price point.

So, for partners, the reaction to the new offering will probably be lukewarm based on the limited opportunities for big projects to happen around Team, although I suspect we’ll see a fair number of folks doing short Team install and config engagements. One of the nice things about Team is that because it is Share, partners already know how to install it and create add-ons for it.

I see Team as an opportunity for Alfresco to find new use cases and functionality for Share, which will improve both the Community and Enterprise editions of the Share product, and as a way to get Alfresco in front of a lot more people. What will be interesting to see is if there is enough room in the market between extremely low cost collaboration tools like Basecamp and relatively higher-cost, higher-end tools like Alfresco Team.

Seven tips after five years working from home

Yesterday morning I was enjoying a bike ride before work and it occurred to me that this month marks my fifth year of working from home. As with all things in life, there are both good and bad aspects to working remotely, but on the whole I think working from home nets out to a Good Thing: I see more of my family, I spend less time and money on driving, and I’m healthier.

Most of these didn’t take five years to figure out, but here they are anyway: Seven Tips on Working From Home:

Tip #1: Take a shower and get dressed, for crying out loud

I know there are a lot of people that like to work from home in their pajamas, but I don’t see how they do that consistently. Can you really have a serious conference call about global strategy when you’ve got Yoda staring up at you from your lounge pants? Plus, I need that shower to wake me up. And, while they may be shorts and a t-shirt, putting clothes on is part of getting into the “I’m working” mindset for you and a good external signal to others around you.

Tip #2: Set expectations with your kids

My kids were 5 and 8 when I started working from home. That meant both were in school for most of the day for most of the year. The other key factor is that they were old enough to understand that Dad’s at home during the day to work, not to play. Younger kids don’t get that at all. And little kids don’t quickly grasp the all-critical Signs of Interrupt-ability:

  • Door Open = Come on in.
  • Door Closed = Think twice!
  • Door Closed with Headphones On = Interrupt only if you are bleeding uncontrollably or the house is on fire, also realizing that it may take several minutes for Dad to come out of The Zone such that he can form words and coherent thoughts.

Tip #3: Set expectations with your spouse/partner/roommate

Similar to the previous point, you’ve got to set some ground rules with your mate. For example, I don’t answer the door or the home phone during work hours. Or work on honey-do’s. Or tell one sibling to stop bugging the other. Or figure out why the printer doesn’t work. When I’m in work mode, I’m at work. Sure, I’m happy to have lunch with the rest of the fam or take a quick break to find out how the kids’ day at school went–that’s part of the appeal to working from home–but my family understands the limits of what they can get away with when I’m in the home office.

Tip #4: Establish a clean break between work and non-work modes

A common complaint from the families of people who work from home is that “they work all of the time”. It is easy to fall into that pattern. I think you’ve got to already have a handle on work-life balance before you start working from home or it can become a bigger problem. It helps if you have space you can dedicate as your work area and a time window you can designate as work-time and try to stick to that. When you are in serious work mode, don’t work from the couch. And on the weekends, don’t hang out in your office. Sure, in crunch times you’ll burn the midnight oil, but don’t let that be all of the time. And, if it is any consolation to your family, at least when you are working all night, you don’t have to drive home in the wee hours.

Tip #5: Collaborate with co-workers/clients in-person from time-to-time

It’s important to form bonds with the rest of your teammates. You can do this when you collaborate with remote tools like Skype and Webex, but it happens much faster in-person. My job involves a lot of travel, so I get plenty of opportunities for face-time with colleagues. When I collaborate remotely with people I don’t see in-person often, I make sure some part of our online collaboration is spent talking about non-work stuff. On client projects, we always tried to be on-site at the start of a project and again at major milestones.

Tip #6: Get out of the house

When your commute is measured in steps, not miles, it is easy to get cabin fever. Staring at the same four walls every day can be a drag. In America, our average day contains an appallingly low amount of walking or other physical activity. Working from home can compound the problem–you’re not getting that vigorous walk from the parking garage to the cubicle twice a day, after all! I try to go out to lunch with friends or family, ride my bike or go for a walk, or attend meetups or networking events. Anything to get out of the house, interact with people, and get the blood flowing. A nice thing about working from home is that it is easier to do a mid-day exercise break, whereas most people in a traditional office have to settle for working out before or after work. If you can take advantage of the opportunity for more exercise and combine that with less eating out, I think working from home can have positive health effects.

Tip #7: Invest in tools

If your company relies on a remote workforce you need to make sure you are providing top-notch tools and infrastructure to facilitate that (disclaimer: I work for a software company that produces content management and collaboration tools). At Optaros, we were a globally distributed team. We used Alfresco for document management, but for project collaboration we used Trac because, although Alfresco Share is awesome for content collaboration, it lacks some of the tools critical for collaborating on code-based projects, like source code control integration and automatically-logged real-time chat. (Those would actually make good community contributions, by the way, hint, hint). Regardless of what you use, the point is, there are a lot of great tools out there (both on-premise and SaaS) that can really make remote teams hum, and this ought to be considered critical infrastructure at your company.

So, overall, it’s been a productive and happy five years working from home and it would be hard to change now. I do miss the higher level of face-time with my teammates, and actually, sometimes I miss the drive–that’s when I did most of my music listening and thinking about the day. But the pros outweigh the cons, for sure.

How about you? Got any working from home tips I’ve missed?

Enjoyed the Atlanta Alfresco Meetup last week

Last week I joined about 15 other Alfresco fanatics for the Atlanta Alfresco Meetup. The attendees braved some seriously crappy weather to attend. We’re talking about trees falling on roads and power outages so I was pleasantly surprised it was more than just me and the guys who work in the building that showed up.

I gave a talk on my high-level plan for the Alfresco Community. Then, Dimy Jeannot of Armedia gave a project walkthrough based on some work they did with Alfresco Web Quick Start, the Web Editor Framework, Google Fusion Tables, and Salesforce.com. It was a good progression from business need to code. I think this particular meetup group is looking to get even more hands-on in the future–they’ve got a hack-a-thon style get together in the works.

Thanks to Dimy and Doug Bock for organizing the meetup and to Jim Nasr of Armedia for providing the location and snacks. I look forward to more great events from this group in the future.

This meetup was what I hope will be the start of several locally-driven Alfresco meetups happening around the world (see “Getting Involved with a Local Alfresco Community“). I know that the Boston, Washington, D.C., and Southern California groups are all planning on getting together soon. I’ll be at “Alfresco Day” in Madrid on June 22nd, which is an Alfresco-led event. I’m hoping to see (and attend) locally-driven Alfresco meetups in Spain and other parts of Europe later this year. South Africa is also planning an event that I’m really excited about.

If there’s not already a meetup in your corner of the world, put your name on the Alfresco Meetups Everywhere page and you can collaborate with others to get one started.

Screencasts highlight upcoming Alfresco Share features

[UPDATE: Due to the popularity of this post, Thorsten had to relocate his screencasts to this page, so I’ve removed the individual links and added a link to the entire collection. I’m also adding bullets for two new features he recorded screencasts for since the original post]

I came across this today via Twitter. Thorsten Schminkel (@schminkel) has posted a collection of screencasts that highlight new Alfresco Share features currently checked in to Alfresco Community head. Each is about a minute or less–just enough to get the gist of the following features:

  • Trashcan
  • In-place file name editor
  • Video preview
  • Manage system users
  • Change logo
  • Image preview dashlet
  • Drag-and-drop import
  • User-defined document library sorting
  • Like counter
  • Email notification configuration
  • User import via CSV

The latest official release of Alfresco Community is 3.4.d. Last month Alfresco released a preview release called 3.4.e meant to give everyone a first look at the new Activiti integration. None of the features Thorsten shows in these screencasts are available yet in an official release. Look for an official Community release to happen in late Summer or early Fall with an Enterprise release by the end of the year. If you can’t wait, you can do what Thorsten did: Check out the latest Community code from subversion, build it, and have fun playing with these and other new features.

Alternatively, functionally similar versions of some of these features have already been implemented by members of the community for versions of Alfresco in use today:

Thanks for doing those screencasts, Thorsten, and let me know if you create any more so we can add them to the list.

Alfresco DevCon 2010 presentations now available

I’ve uploaded most of the presentations from Alfresco DevCon 2010 to SlideShare. The easiest way to get to them is to use the DevCon 2010 tag.

You may be thinking, “Damn, the conference was seven months ago, why do I care?” and to that I have two responses. First, sorry. We’ll do better this year. Second, the collection includes some really helpful resources on a variety of topics. I think every one of them could help someone out there on projects today.

Here are some of my favorites:

Okay, that’s half of the sessions, but it is hard to narrow them down. Anyway, take a look and favorite the ones you really like. Also, if you are planning on attending DevCon this year, feel free to give me feedback like, “More sessions like this would be great,” or “Maybe not so much of this one this year”. That will help me plan the conference tracks and content.

Getting involved with a local Alfresco community

Even though there are still two weeks to go in this year’s Alfresco Community Survey, I couldn’t help but start to review the 1200 or so responses we’ve received so far. There are some great insights and suggestions coming through, but there’s one I wanted to jump on right away: It’s clear that a significant portion of the Community would like to see more local, Alfresco-focused, non-marketing,  gatherings (aka, meetups). And I’m right there with you. I think it is extremely important that local groups of people interested in Alfresco are able to get together regularly to share tips and tricks, to network, and to have fun. In this post I want to outline my perspective on events, my plan for local meetups, and some ideas on how to get involved with a local Alfresco community.

Alfresco Community Meetups are different from other events

Alfresco drives many types of events worldwide, including presence at third-party conferences, lunch-and-learns, training, and webinars. We also do an annual developer’s conference called Alfresco DevCon. Last year DevCon was in New York and Paris. We’re starting to plan for this year’s DevCon. We’re still finalizing cities and dates and I’ll let you know when that happens.

The events I’ve listed so far are completely driven by Alfresco. But there are several groups around the world that get together and talk about Alfresco on their own. These are grassroots, locally-organized meetups. Some meet more regularly than others. Some are a handful of people getting together for an informal happy hour while others are large groups with formal agendas, name tags, and everything.

In addition to these locally-run meetups, in the past, Alfresco has conducted “Community Meetups” that were really more like mini-conferences that happened in multiple geographies. These were fun and informative events, but they can’t happen with the frequency and scale that locally-driven meetups can.

Going forward, I’d like you, the community, to drive local meetups. And I’d like to see these happening more frequently, in more parts of the globe, for technical and non-technical audiences regardless of the Alfresco product they use. I want more people to feel that sense of family that I feel when I walk into a room full of people who share the same hopes, joys, and frustrations with Alfresco.

Local Alfresco communities should be driven by the local community

In short, I don’t want Alfresco to own, control, or constrain local Alfresco communities in any way. Ideally, anywhere there are two or more people that care about Alfresco, a local meet-up would form and those people would get together fairly regularly and, hopefully, grow to include others over time.

Alfresco’s role is to foster and support these local communities. I think we can add value in the following ways:

  • Alfresco can serve as a “connector”, matching up groups of interested community members with people willing to organize the local community
  • Alfresco can supply presentation content and, in some cases, people to deliver it in-person
  • Alfresco can help promote your meetup and drive attendance
  • Alfresco can support communities with Alfresco-branded giveaways and other small incentives

What we lack is the hyper-local perspective into the topics the local community is most interested in, the ability to know all of the cool projects going on in your area, and the feet on the ground to make every meeting a success. That’s where you come in. Local community events shouldn’t be driven by Alfresco’s Marketing team–they should be driven by you, the community, and Alfresco will do everything we can to support you.

So, as part of this, I’ve been reaching out to various communities around the world. If they haven’t met in a while, I’m encouraging them to get together, even if it is an informal meet-and-greet. If it is a group that was just thinking about getting together, I’m asking them to take that first step. And, if it is a group that has been meeting a while, I’m asking what, if anything, you need from me to keep it going.

How can you get involved?

This wiki page is the master list of existing local communities we know about as well as communities that people are interested in forming. If you are participating in a local community or are interested in forming one and that’s not reflected on the list, please update the wiki page.

Take the first step

If you are lucky enough to live near an established community, sign up and attend. If there isn’t a meeting happening any time soon ask the innocent question, “Why isn’t there a meeting happening any time soon?”. Maybe you’ll be the spark that gets it going again.

If you want to organize a meetup, it’s pretty easy. Decide on a time and a place, then let everyone know about it. You can use sites like Meetup.com or Google Groups to facilitate sign-up and collaboration, but that’s not a requirement.

If there isn’t a meetup already organized near you and you’d like to find out if others are interested, go to http://www.meetup.com/Alfresco, search for your city, and add your name to the list.

Decide where to take it from here

That first meeting doesn’t have to be a big production. It isn’t much work to get together and talk about what you are doing with Alfresco. While you’re talking, you may want to:

  • Set a focus. Is the goal to network, to learn from others, or something more specific? For example, I have been talking to multiple communities about organizing Alfresco-focused hack-a-thons/code sprints that would have a goal of creating new or contributing to existing Alfresco community projects.
  • Decide how often you want to get together. Meet too often and you’ll burn out the group. Don’t meet often enough and your group will lose interest. Somewhere in the neighborhood of monthly or quarterly is probably best.
  • Decide on an agenda for future meetings (or whether to have an agenda at all). You might have an end-user focused group that discusses tips/tricks for using the product and walks through case studies. Or, you might have a more technical group that dives into the details of a different part of the platform each meeting.
  • Establish ground rules. Maybe for your group, the rules are there are no rules. Or maybe a couple of common sense ground rules would help. It depends on the focus you’ve set. For example, you might want to ban blatant sales pitches and recruiters.
  • Pick an organizer. Someone needs to be on point for reminding the group about upcoming meetings. If you’ve decided on a more formal sort of group, that person will also need to facilitate setting the agenda and find people to speak. I’d recommend rotating this responsibility every 3 to 6 months, but you can decide.

Keep me posted

If you get a meetup going I want to know about it so I can support your group in the ways I’ve outlined above. Who knows, maybe I’ll even show up in person at one of your meetings.

Take the 2011 Alfresco Community Survey

When I announced my new role as Alfresco’s Chief Community Officer I mentioned that I would be asking you, the community of end-users, developers, partners, and Alfresco employees, for your input on how to make the Alfresco Community the example for all other commercial open source companies to follow. Obviously, I’ll take feedback in any form I can get it, but what would be great is if you would take 15 minutes to complete this survey. If you complete the survey by May 31, 2011, you could win one of two $250 Amazon gift cards.

Now, I know surveys can be a beating. But the information it helps me gather will allow us to plan all kinds of great things for the Alfresco community, from events to community tools. So, please speak up and give me your opinion and I’ll promise to listen and then to push for changes that matter most to the community. I’ll also summarize and present this data back to the community. If we do this year after year, we can hopefully see some cool trends emerge as we make progress.

Will Abson’s Wonderful World of Dashlets

Back when Alfresco first launched Surf, the framework on which Alfresco Share is based, a handful of us went to Chicago to hang out in a conference room on a ship in the harbor where we did a deep dive on the framework and then came up with proposed add-ons that would leverage it. I was at Optaros at the time. Our add-on was the Alfresco Share microblogging component and we also did some Surf Code Camps. The goal, of course, was to get the word out about Surf and encourage others to develop and contribute Share customizations.

The deep dive was great and the code camps that followed were valuable and well-attended. What I think the approach missed was that you don’t need to be a Surf expert to code some simple dashlets. We were handing out “How to Fly the Space Shuttle” when we probably should have started with “Building and Launching Your First Model Rocket”.

That’s why Will Abson is my current Alfresco community hero. At this year’s Alfresco Kickoff meeting in Orlando (notes), Will showed a project he and a few others have been working on called Share Extras. Share Extras is a collection of small projects ranging from “Hello World” dashlets to custom theme, data lists, and document action examples.

For example, the list of what I’d call simple, mash-up examples includes things like:

  • Twitter Feed Dashlet – Shows a specific Twitter user’s feed.
  • Twitter Search Dashlet – Shows a Twitter feed based on a hashtag.
  • BBC Weather Dashlet – Shows weather feed from BBC.
  • Flickr Dashlets – Shows flickr photos in a slideshow.
  • Google Site News – Shows the last ten blog posts from Google News.
  • iCal Feed – Shows entries from an iCal feed.
  • Notice Dashlet – Stores/shows arbitrary text, like what you’d use for a maintenance message or an announcement.
  • Train times – Shows the National Rail train schedule.

From there, you can move on to more extensive examples. For example, rather than simply displaying data from public services, these examples start to store/retrieve data in the underlying Alfresco repository:

  • Site Tags Dashlet – Displays a tag cloud consisting of tags used in your site.
  • Site Poll Dashlet – Uses a custom data list type called Poll to configure a simple poll. Shows results in bar chart.
  • Document Geographic Details – Adds a map using the document’s geocoding metadata just below the permissions section.
  • Sample Data Lists – A simple data list example that lets you capture info on Books (author, title, ISBN).
  • Execute Script Custom Document Action – Shows an example of adding a custom action to the action list that runs server-side JavaScript against a node.

The nice thing is that (almost) every one of these extensions deploys as a self-contained JAR file. Will’s build assumes you are running the repository and the Share web apps in the same container, so it deploys the JAR to $TOMCAT_HOME/shared/classes/lib, but you can obviously tweak that if your config is different. The ability to run everything out of a JAR, including what would normally be file system based resources like CSS, client-side JavaScript, and images is a relatively new feature (3.3, I think). It’s much nicer than fooling with AMPs.

Here is a list of my five favorites from the collection:

  • Node Browser – A port of the Explorer client’s node browser to the Share UI. I like this one because it brings an extremely useful developer tool into Share, which is where most of us are spending time these days. It also shows how you can plug your own tools into Share’s admin console.
  • Red Theme – A simple custom theme example. This is on my favorites list because creating a custom theme is something that is requested often and should be easy to do. Follow this example to create your own.
  • Site Geotagged Content Dashlet – Adds a dashlet that shows a map of geotagged content contained in the document library. I can’t help it. I like maps.
  • Site Blog Dashlet – Dashlet that shows site blog posts. This is a favorite because it plugs a hole in the product. If you’re going to use the blog tool in a Share site, you’re going to want to show those posts somewhere and a dashlet makes a lot of sense.
  • Wiki Rich Content – Automatically puts a table of contents at the top of a wiki page based on the headings contained within the page. Also does a nice job with pre-formatted text. This is another example of a feature that should probably be in the core product.

The Google Code project includes screenshots for each of these projects, but it is really easy to do a checkout on the code, import the projects into Eclipse, create a build.properties file in your home directory to override the tomcat.home prop, then run “ant hotcopy-tomcat-jar” to deploy one and see it in action for yourself. I tried them all out on Alfresco 3.4d Community and they worked great. I think all but one or two will work on 3.3.

The Share Extras project includes a Sample Project with a folder structure and Ant build that you can clone and use as a starting point for your own development. If you create something cool, you should share it on Google Code and then let me know about it. Or give it to Will and he can add it to his ever-growing pile of cool Share add-on examples.