Month: July 2008

Open Source CMS Alfresco Releases 3.0 Preview

Alfresco has just announced the availability of the Alfresco Labs 3.0 Preview. If you’ve been regularly updating from HEAD there may not be a whole lot of stuff that’s new to you but if you haven’t, it might be a good time to see what the team in Maidenhead has been up to.

The first thing you’ll notice is that Alfresco has changed the name of their freely-available Community edition to “Labs”. Alfresco has always insisted that this edition is a developer build that really isn’t suitable for production use. The name change is an attempt to further drive that point home.

Surf’s Up

Alfresco Surf is essentially Alfresco’s name for the web script framework plus some pre-built components with a framework for defining and assembling pages. The web script framework (and therefore, Surf-based sites) can now be run separately from the Alfresco repository process. This has actually been possible since 2.9 Community but now Alfresco is starting to do something with it (See “Share the Love”). In fact, some of my Optaros teammates have been working hard for Alfresco (as a client) to develop some of the content-centric components that are part of Surf and one of the new clients, Share. So Surf is essentially a web application development framework built on REST, JavaScript, FreeMarker, and YUI that you could use to build your own web apps without ever touching an Alfresco repository if you really wanted to. Assuming you do want to pull content from the repository, Surf let’s you make remote calls from within Web Script controllers back to the Alfresco repository, or via AJAX using YUI components from the browser.

Share the Love

Alfresco is using Surf to build its new web client offerings. One such offering is called Share. If you’ve been following Alfresco’s progress you’ll probably recognize it by its code name, Slingshot. Share is a collaborative workspace that allows you to spawn “sites” that include things like a Document Library, Blog, Discussion Forum, Wiki, Team Calendar, and Activity Feeds. Activity Feeds are sort of like a Facebook News Feed, but instead of tracking who poked whom you are being alerted when someone updates a document, makes a new blog post, etc.. The Share client will be the core for Alfresco’s frontal assault on Microsoft Sharepoint.

Speaking of, Share implements the SharePoint protocol. What does that really mean? It means that if one of the things you liked about Microsoft SharePoint was how you could work with a SharePoint Shared Workspace from within Microsoft Office applications, you no longer have to settle for an all-Microsoft stack on the back-end. You can use an Alfresco server instead. That means your users can have the functionality they like when collaborating on Office apps, while the IT department gets to keep their options open from operating system to database to application server and doesn’t have to worry about scalability concerns inherent in SharePoint. Unlike prior Alfresco add-ons for Microsoft Office integration, this approach requires no additional installations on the client because Office already has the hooks for talking to SharePoint, and Alfresco Share implements the SharePoint protocol.

Jon Newton, Alfresco CTO, said in his blog post on the release, that we should expect another Labs update in September with an Enterprise release to follow some time in October.

Apache CouchDB looks interesting

Here’s something to add to my “dive deeper when I have the time” list: Apache CouchDB. It’s a document database accessible via REST, which by itself isn’t terribly unique. What caught my eye was that it was built from the ground-up to be distributed. You can replicate documents across multiple nodes, maintain partial replicas, and sync for offline use. The roadmap has some significant features that need to be implemented before you most people would use it in production, but still, it’s something to keep an eye on.

Kablink press release goes kerplunk

I don’t know why this rankled me so much. Maybe I should just write it off as somebody’s PR firm getting a little too aggressive. But check out this claim made in an announcement yesterday by open source collaboration software company Kablink (formerly ICEcore):

“The only open source collaboration solution to offer
workflow” (Source)

I know. I had to read it twice.

Maybe Kablink defines “open source” or “collaboration” or “workflow” differently than I do. But solutions like Plone, Drupal, and Alfresco have had workflow of some kind for quite a while. It isn’t like there’s just one other open source collaboration offering out there with workflow, there are several. I’m not sure how Kablink thought they’d get this one past anyone. Maybe they’ll comment here to attempt to justify their claim.

Call it what you want, just not “KM”

My friend and former colleague Tom Pierce has recently started blogging on Enterprise 2.0 over at EnterpriseBlend.com. One of his recent posts talks about whether or not social computing is the end of Knowledge Management (KM), that somewhat nefarious term for extracting, organizing, and sharing the knowledge from the heads of employees that ultimately forms a competitive advantage. He makes the point that KM concepts are still valid, it is just the technology that is changing. I agree that the technology is changing, and I agree there is still a need for KM, but I do think the way we approach KM now is shifting.

To me, Enterprise 2.0 is the new and preferred way to implement KM. The problem with past KM approaches was that it was too structured, too top-down. Heavy-handed, overly-rigid, formal approaches to anything rarely succeed. They usually end in rebellion, or, at best, apathy. Sharing knowledge because you are passionate about it and because you want to do it is a lot more fun, rewarding, and meaningful than doing it because it is a bullet point on your yearly review.

Formal KM initiatives I saw succeed Back in the Day did so because there were a small number of people within an organization who were paid to shepherd the information as their full-time job. This might have been a corporate librarian or an SME tasked to manage and grow a community of practice, for example. What we now know and what we now have the capability to leverage practically is the power of the network fueled by ubiquitous connectivity, massive storage capacity, and ever-increasing processor speeds that can index the whole mess. Knowledge management at that kind of scale can’t and won’t wait for you to figure out what your taxonomy needs to be. And you don’t need to figure it out–The taxonomy will just be.

It’s not all about the technology. Yes, the tools are better. But Enterprise 2.0 does better at KM not just based on the technology alone. It’s because Enterprise 2.0 is the anti-KM. It’s bottom-up. It has little or no structure. It’s about forming loose and accidental connections with others. If there are potential barriers to KM success this time around, I think it is that, for some types of organizations, this organic, bottom-up approach is antithetical to their current corporate culture. If they can’t change that–and it is so difficult to do–I think they’ll lose competitive advantage and become unable to compete effectively over time. For some, they’ll realize this too late, like maybe the day after all of the Baby Boomers decide to retire and move to southern Florida.

Thoughts on social software and events

It sounds like Ringside has some work brewing around events. I haven’t updated my Ringside source code in a while so I don’t know how much of this can be played with right now but I’m anxious to take a look and you can bet I’ll report back here when I do.

The problem with today’s event sites is that they are too focused (live music, social gatherings, etc.) and too isolated (people have to sign up to use them, they are really only used for RSVP-ing, etc.). I’ve also found that finding interesting events can be tough. I think Meetup.com is a particularly bad offender–they’ve got a weird taxonomy thing going with their events. Their search doesn’t appear to be full-text indexed across meetup names or descriptions. Try to search meetup for “Alfresco”, for example. Although I know there are multiple Alfresco meetup groups out there, you won’t turn up one with a keyword search even with your search scope set to “100 miles of USA”. And when you create an event, it seems like there is a limited taxonomy for categorization. You have to decide if your meetup is about “Software” or “Technology”. Why would I pay them to host an event no one can find attended by a set of people who’s profiles I can only leverage in the context of meetup.com?

This is a sticking point for me. We all belong to different communities with different interests. And sometimes those overlap. Our social graphs shouldn’t be in silos. Neither should the events we attend. Managing your connections across networks together and exposing events to sub-sections of your connections (or across your entire network, regardless of where it is hosted) is really powerful. After all, as Bob says, it is through these events by which we form and strengthen those connections in the first place. Hopefully, this is what you’ll be able to do with Ringside.

His post got me thinking about what I might like to do with events in my own community. So here’s a list off the top of my head. Maybe Bob will comment on how/if this maps to the Ringside roadmap.

Attend/host flag & security settings. An individual ought to be able to publish an event, make public/private settings about that event, and indicate whether they are attending or hosting the event.

Event matching/de-duplication. What would be great is if there was a way to match up events. If I say I’m going to a Wilco concert, and you say you’re going to a Wilco concert, there needs to be a way to figure out if those are the same event.

In-network/same-event notification. Once you figure out two events are the same, people in the same network can discover the fact they share similar interests. The system should facilitate this kind of thing.

Targeted event promo. You should also be able to publicize an event to particular cross-sections of your graph. I might want to host a Ringside meet-up that only goes to my open source/E2.0 friends without spamming my family about it.

Interest level indication. An individual ought to be able to specify whether they are thinking about attending an event or are definitely attending an event. For example, someone might post an event they would only go to if someone else from one of their networks is also going.

Events as tags. Obviously events integrate with the rest of the model. Activity feeds certainly have to know when someone attended an event. But you should also have the ability to tag any item with an event. A photo library app needs to be able to let users tag photos that pertain to certain events, for example.

Event discovery. Events should be easily discoverable by tag/topic, full-text keyword search, by geography, and by attendee. I’d like to see a mash-up between Dopplr and an event database, for example, that knows what kind of events I like to attend and then cross references that with my travel schedule so that if I am traveling to San Francisco, and one of my favorite bands happens to be playing, the site can let me know that, including which of my friends might also be planning to attend (or would attend if they knew I was going to be in town).

Slice-and-dice RSS subscriptions. I should be able to get an RSS feed for each of the following: All events happening in a particular cross-section of my social graph, all events happening in a particular tag/topic, all events in a geography, all events in a particular date range, all events attended by a particular individual in one of my networks, or any combination of these (Live music shows happening in Dallas that my friend Jim is going to).

RSVP options. People should have the option of whether or not to track attendance to an event. Even for an event they are not hosting, they may or may not care who else is attending.

Configurable reminders. People need to be able to choose whether or not to send reminders to attendees. Attendees need to be able to opt out of receiving reminders.

Event ratings, comments, and UGC. People should be able to rate, comment on, and upload content related to an event.

Flexible event types. Events don’t have to be of any particular type. An event is really just a span of time during which something that might be potentially interesting to others is happening. “I’m going to Taco Bell for lunch tomorrow” and “I’ll be spending an hour in the Ubuntu forums Saturday” are both legitimate events that people might want to publish.

Calendar view with the same filtering capability as the “slice-and-dice RSS feeds” requirement. And the calendar ought to be widget-able so that anyone can embed it on their own site.

Standard calendar options for events including start and end time, duration, “all day event”, recurring event. I guess if the event was (or could be exported as) an iCal compliant piece of data that might be enough?

Who’s bringing what. Obviously everyone is familiar with the concept in a social gathering (You aren’t the guy who always just brings the chips, are you? Come on, make an effort, man). But this is also relevant to professional events, particularly for “un-conference” or bar camp type events where attendees are expected to present.

What about an ecommerce component? Maybe you ought to be able to sell tickets for an event. This could open up a can of worms regarding capacity, tiered pricing and availability, ticket authenticity verification, etc., but it might be cool/fun to provide something that could loosen the stranglehold a small number of vendors have on the “live event” market. Just a thought. At the very least, if an event requires a charge, you should at least be able to link to a shopping cart somewhere.

Sneak peek: Optaros Ext-JS Web Client for Alfresco

As I mentioned in my “Assembling 2.0 Solutions with Alfresco” talk, Optaros has written a streamlined web client for Alfresco based entirely on REST (web scripts) and Ext JS. We’re calling it DoCASU, which stands for Document Access for Casual Users, and we’re making it freely-available as an open source project.

We haven’t made the official announcement of its availability yet, but so many people have asked me about it after seeing the presentation, I thought I’d spill the beans, at least for faithful ecmarchitect.com readers.

Read more about the project and download the AMP from code.optaros.com. If you see things that need fixing, create a bug report or fix it yourself and contribute it back. Have fun!