Activity Streams Rubygem and announcing the (codename) Aidentiti project

March 6th 2010

Ruby Activity Streams Parser

Last week Ruben Fonseca released the first version of a Ruby Activity Streams parser that works with Atom and JSON formats. It’s available on Github and you are encouraged to use it and patch it. We will very much appreciate all the feedback you can provide. Technical details are available on Ruben’s blog. Ruby is pretty readable, so is Ruben’s code, so it should be easy to port it to other languages (start with the spec file).

Aidentiti – an Activity Streams and Open-Stack oriented social collaboration platform

The gem release is the first public product of a social collaboration platform project codenamed Aidentiti, that implements many Open Stack techs and protocols. Aidentiti is a spin-off project from Quodis, the company I’m a partner at, and is at protype stage. I’m not able to invite you to test it at the moment, but the release of the Rubygem is a good opportunity to share with you the objective and architecture of the platform, from a mostly tech social web perspective.

Aidentiti relies heavily on Activity Streams and OAuth to act like an “activity data hub” for web-based productivity applications. While most of the Activity Streams work and thought has been focused on personal/social activities, Aidentiti relies on the standard to acts as a glue for productivity applications by allowing all activities to be defined and stored in a standard language.

Through the OAuth platform, it is easy for developers to create apps (full-blown or micro, very very specialized, apps) that can speak to an Aidentiti instance and it is easy for users and instance admins to manage an application catalogue (something close to “urbanise their informations systems” in IT jargon). The Aidentiti API also exposes commodity methods and features such as notifications, social graph / org char (XFN + PoCo right now), a no-password, no-hassle, experience to using multiple apps (the best for each job).

Users and app developers will also benefit from a central “vocabulary”, where teams can translate their language into information filters. This makes it possible to tell Aidentiti to associate a milestone completion in, say, GoPlan, to a Github commit, a Yammer status update and social media buzz on other platforms — vocabularies are combinations of tags, applications, users and activity properties (verbs, object types, etc.). And encourages the development of micro apps that integrate into a whole (example: collaborative office amenities management).
The objective is to provide meaningful integrated visualizations of a person’s or team’s activities and enable fluid, real-time and all-time, reporting of activity data. Some visualizations will be provided by the platform, but developers can also create more visualizations of the activities through the API.

I said at the beginning that this was a “social collaboration platform” project. The product will be. But it’s really about offering more information technology liquidity to the individual. If we are to live out in the open, with invisible tools automatically registering, reporting and sharing everything we do, it just might be fundamental that all this info ends up in a repository controlled by the user and not only in tens of different apps, past employers and government DBs. The Open Stack is bound to provide all the tools to create web-wide protocols and platforms that provide just that, and Aidentiti positions itself there. If you don’t know much about these concepts and would like to know more, start with Chris Messina’s blog on anything about the open social web and surf on.

I write not to sell so much as to share and collect your thoughts. Activity Streams are a Great Thing and certainly the Aidentiti project can contribute. I can’t yet announce when Aidentiti’s code will be released so consider this an overview and opportune teaser.

Thanks to Ruben for contributing his skills to the project and releasing the Rubygem to the world as his “Hello, Aidentiti world”.

</