OStatus interview with Markus Sabadello

Today's OStatus interview is with Markus Sabadello. Markus will discuss the code he developed with OStatus support.

Markus, tell us a little about yourself.

Markus: I am from Vienna, Austria, and I spent the last few years working in various communities that deal with issues related to identity, privacy and personal data on the Internet. During this time, my primary work areas were the Eclipse Higgins project as well as XRI and XDI, but I have also been close to many other related projects, technologies and open protocols. More recently, I have developed a personal interest in a little-known academic field called Peace & Conflict Studies, where I find myself discovering many interesting parallels to the technological work I am doing.

Could you give us an overview of your software?

Markus: Project Danube is a collection of software components which I have developed over time. I share the ideals of moving away from a centralized online world and of "putting data back under the control of individuals". At the core of the Project Danube architecture lies what is commonly known as a "Personal Data Store", which is a data repository that is fully under the control of its owner. Once that is in place, a set of modular components can provide various identity and personal data related services on top of the Personal Data Store, in order to realize visions such as the Federated Social Web, Vendor Relationship Management or other applications that build on the core idea of putting data under the control of the individuals who own it.

What is a Personal Data Store, what are its benefits, and how can it be used?

Markus: "Personal Data Store" (PDS; sometimes also called "Service", "Server", "Locker", "Vault" etc.) is a relatively new term which originated in the Vendor Relationship Management (VRM) movement. The fundamental problem a PDS is trying to address is the fact that much of our personal data on the Internet today is stored in places we have no control over, and used in ways that are not transparent to us. A PDS gives you a single point of control over all your personal data, whether it is actually stored inside the PDS or in some external place. The PDS provides you with a web interface or dashboard for managing access authorizations to your data, reviewing and analyzing data operations, organizing your relationships with organizations and individuals, and more. Access to the personal data in your PDS is possible in a number of ways, but always subject to the permissions you grant or revoke.

Besides Project Danube, there are also other efforts to implement this concept, such as the Higgins Personal Data Service. On the business side, Mydex in the UK has recently attained a significant amount of attention by launching their Community Prototype, which involves a live test of a Personal Data Store. Participants in this prototype include a number of high profile UK governmental agencies as well as private enterprises that are all committed to restore to individuals control over the management and sharing of their personal data online. In other words, there is a huge amount of interest in this stuff.

Vendor Relationship Management (VRM) is the opposite of Customer Relationship Management (CRM) in that the customer makes all the decisions regarding his/her relationship with the company. Could you expand on this a little, and explain the benefits of a Request for Proposal?

Markus: Well, in today's societies, we are heavily dependent on the companies whose services we need or want to consume. Whether we are talking about our phone company, a pizza delivery service or an online book store, it is always THEM who define the terms of service and the nature of our relationship. On the Internet, it is THEM who maintain databases with our data, and it is THEM who force us to click on "I agree" buttons with complicated legal texts, before we can do anything useful. Why shouldn't it be the other way round? Why shouldn't it be US who make companies agree to the terms of service that WE define, and why shouldn't it be US who have a database where we manage these relationships? This is what a PDS is all about. And by the way, the promise of VRM is that such a paradigm shift would actually be good for both sides, because companies can save huge amounts of money that they are today spending on maintaining customer data, which in a VRM world should instead be maintained by the customers themselves.

A Request for Proposal (RFP) is an application enabled by the VRM architecture. You formulate a request for some good or service you are interested in and willing to pay for (e.g. a new car with a very specific set of features). You also specify details about price, financing and delivery, and the means through which you are willing to be contacted. Then you simply wait for companies to make you offers. Technically, this can be realized by storing the RFP in your Personal Data Store and by giving a broker service access to it, which will invite potential vendors to make offers under the terms you specify.

You have been working towards a more Federated Social Web, with the goal of empowering the individual so that they no longer have to go through one centralized system, and instead they can interact between one another freely, or through a set of service providers. In one of your blog posts you talked about a Social VRM and how it is a sort of combination of VRM and FSW. Could you explain a little bit about what a Social VRM is and give some examples of its benefits?

Markus: Social VRM is one exciting way in which VRM and the FSW can meet. As I explained already, VRM is all about giving individuals more freedom in their relationships with companies. This freedom can be multiplied if these individuals can organize themselves in a way that makes it possible to pursue their interest together. For example, me and some of my friends may be interested in buying the same product. So why shouldn't we be able to put out a Request for Proposal (RFP) for this product, share the RFP via OStatus, and wait for a company to make us an offer, which should end up being much more attractive than if we had all looked for the product separately. This whole idea is still evolving, but the basic thought is that we as socially organized individuals will have a stronger position in the negotiation process with companies.

Why did you decide to implement social web federation?

Markus: Because decentralized social networking perfectly fits the idea of "putting data back under the control of individuals". Just like Vendor Relationship Management will give individuals more freedom in their relationships with companies, the Federated Social Web will give us more freedom in managing our relationships with each other. These are just two different sides of the same coin, and I am fascinated by the idea of merging them into a single, combined effort.

Why did you choose OStatus?

Markus: Because it's pretty clear that it is going to win the race of available protocols for doing this. Politically, status.net has done an awesome job bringing all the different projects to the table and coordinating the community. And from a technical standpoint, Ostatus is a very well thought-out stack of open protocols that I am sure will be able to satisfy all needs of emerging decentralized social networking.

What parts of the OStatus suite have you implemented?

Markus: Webfinger, LRDD, Atom, ActivityStreams, Pubsubhubbub, Salmon, Portable Contacts.

What problems did you have?

Markus: There are basically two strategies for implementing rapidly developing, open, community-driven Internet protocols such as OStatus. One strategy is to carefully read the specs, implement them, and then do interop testing with other existing implementations. The second strategy is to basically copy&paste what others are doing and proceed with trial&error until your implementation somehow "works" with some of the other implementations. Unfortunately, this second strategy is much more effective. I guess I followed a mix of the two approaches. I have to add that with the help of the OStatus community I was able to quickly resolve all the problems I came across.

How can users try out OStatus in your software? Your thoughts are important to us, and we appreciate your time.

Markus: Project Danube is being worked on all the time, but you can check out two reference deployments at http://pds.fullxri.com and http://pds.freexri.com. We are now focusing on improving the UI and on better explaining/documenting how it all works, but you should be able to sign up for an account and follow (or be followed by) users of status.net, Cliqset and other OStatus-enabled sites.

Thank you Markus for your time and we look forward to hearing from you in the future!

How to OStatus-enable Your Application

Making your application a full-fledged participant in the federated social web
is not easy, but gradual and incremental improvements can make your users'
activities visible to others.

  • Make good feeds. We need to have ActivityStreams feeds for OStatus. Fortunately,
    ActivityStreams has default behaviour defined for plain-old RSS 2.0 and
    Atom feeds, so the feeds you have now are probably fine. Ideally you should have a
    single feed for each person. You should
    define an author element at the feed level. Author elements should always
    have a URI element that uniquely identifies the author. Your feed should
    be discoverable with a <link> from the person's HTML profile page.
    Optional: use Activity Streams. Enhancing your feeds with ActivityStreams
    data like a verb and object can make the information much richer. Adding
    <link> elements with rel=”avatar” will make the user's avatar available.
    Optional: use Portable Contacts. You can add Portable Contacts elements as
    extensions to the <author> element. Important elements include
    <preferredUsername>, <displayName>, <note>, and <urls>.
  • PuSH-enable your feeds. PubSubHubbub (“PuSH”) makes real-time updates to
    feed subscribers possible. Your user feeds should be PuSH-enabled. This
    requires two steps: first, adding the declaration of a hub in the Atom or
    RSS 2.0 feed. Second, sending a new-content update to the hub when
    there's new content.

If you get to this point, other people on the OStatus network can subscribe to
your users by using their profile pages ('http://example.com/someuser') as the
identifier.

At this point, your users are full-fledged broadcasters on the federated social
web, but they're unable to receive information from others.

  • Model remote users. This can be the trickiest part of implementing
    OStatus. You'll need to allow for authors of comments, “favorites”, and
    so on to be people who don't have accounts on your local system. One
    typical way to do this is to have a superclass, Author, with subclasses
    User and RemoteAuthor (or something similar). Be careful about modeling
    identifiers; typically usernames are unique for Users but not for
    RemoteAuthors. Another option is to model remote users as a user role
    with the absolute minimum permissions.
  • Accept Salmon for replies. OStatus servers will try to send a Salmon slap
    when a remote user comments on or replies to an activity by one of your
    users. Ideally, you should accept these Salmon messages, display them,
    and notify the user. Note that typical precautions about comment spam
    apply here.
  • Accept Salmon for social activities. OStatus servers will also send Salmon
    slaps containing ActivityStreams representations of social activities
    involving your users when those activities happen remotely. If you keep a
    record of “followers” for a user, the Follow verb can be useful. Also
    important are the Like (or “Fave”) and Share verbs. If you cache remote
    users' profile data on your server, you should also handle the
    ProfileChange verb (custom for OStatus).

By here, your users can publish activities and have a two-way conversation with
remote users. If your application also has reading capabilities, you may want
to add remote users as an information source, too.

  • Allow subscriptions to remote users. You can implement the more complex
    subscriber role in PuSH. Note that there's a user-interface issue here;
    your users will have to tell you which remote user feeds they want to
    subscribe to. You should allow discovery using WebFinger and the
    “updates-from” relationship; also with a profile page, digging for the
    element that points to an Atom feed.
    Optional: implement OStatus subscribe link. Some OStatus systems (like
    StatusNet) let a browsing user provide a WebFinger identity to initiate
    subscription from the publisher's Web interface. To make this work,
    you'll need to implement the http://ostatus.org/schema/1.0/subscribe
    WebFinger relationship (described in the OStatus protocol documents).
    Optional: extract Portable Contacts profile information. You can get
    richer representations of remote users' profiles by extracting the
    Portable Contacts data from the <author> elements in feeds. You can also
    watch for profile update activities to come through the PuSH-enabled
    feed.
  • Send Salmon for replies. If your user replies to, or comments on, a
    remote activity, send a Salmon slap to the remote user. This will require
    discovering the remote user's Salmon endpoint and posting a reply to it.
  • Send Salmon for social activities. You can help remote users track
    popularity and reach by posting ActivityStreams representations of your
    users' interactions with their feeds. The Follow verb helps them keep a
    list of followers. If you send the Follow verb, make sure to send
    ProfileUpdate activities so that the social graph on the remote user's
    site stays in synch. Like and Share are also useful for remote users to
    track. Finally, the corresponding verbs (Unlike, Unshare, Unfollow) can
    help keep the state synchronized.

StatusNet is Using OStatus for SWAT0 - Open for Testing!

As announced on our blog, we just released a version of StatusNet that is ready for SWAT0 Testing. SWAT0 is an exiting step forward for the Federated Social Web, and we are looking forward to testing with other implementors!

The following screencast shows our implementation between three StatusNet sites:

We'd like to continue to use the OStatus mailing list to work out SWAT0 workflows with other OStatus developers.

OStatus interview with James Walker of StatusNet

Over the past month, we have been interviewing people that are implementing the OStatus standard. Someone that is very fond of the OStatus standard is James Walker. James is the Senior Services Architect at StatusNet Inc, and he is also one of the co-authors of OStatus.

James is very passionate about the OStatus standard, and he has therefore agreed to partake in the series of OStatus interviews. Let us begin.

James, can you give us an overview of your software, for example, what it is and what it does exactly?

James: StatusNet is a free and open source software for microblogging. It's available for download so you can run it on your own servers (with PHP and MySQL) as well as being available for free on our hosted service at StatusNet. Our software allows you to connect with friends and colleagues in real-time while maintaining full control of your data as well as your brand and identity.

Why did you decide to implement social web federation?

James: Actually, social web federation is the main reason I came to work at StatusNet. StatusNet has had a notion of federation for as long as I've been aware of the project. Evan Prodromou (CEO and founder of StatusNet) and his team previously wrote and implemented a spec known as OpenMicroBlogging which provided federated status updates, but had some severe limitations. The redesign of OMB became what we now call OStatus.

Why did you choose OStatus James?

James: Well actually, I helped create it! StatusNet - both as a company and a software project - believes in the power of federation. OStatus is a very important piece of the puzzle. It's the way that we, as a social web, are able to maintain control of our data and identity while still communicating with the largest possible network. I don't believe that large, monolithic social networks are the right approach. Not because the incumbents are somehow evil, but they'll just never be sufficient for "everyone" - be it for language, cultural or just personal preference reasons.

Right now, people congregate on services "where their friends are" and often split themselves across a few networks in order to reach everyone. Companies relinquish control of their brand and their data in order to participate in the networks with the most users. OStatus is our attempt to do for the social web what SMTP did for email. Rather than having people congregate around a service because that's "where people are", they can select services based on features, ease of use, language support, design aesthetics, etc. without risk being walled off from people they want to reach.

What parts of the OStatus suite have you implemented?

James: All of it (with a little help from my friends Evan Prodromou, Brion Vibber and Zach Copley).

What problems did you have?

James: I think the biggest problems implementing OStatus so far has been the emergent nature of some of the specs it depends on. We've had to fill a few gaps and adjust to changes in the specs. This is by no means a "solved" problem. There is still a lot of active work happening across several communities to bring this stuff together.

How can users try out OStatus in your software?

James: Head over to StatusNet and click either Download now to run it yourself or Sign up for a cloud account and you'll be up and running in seconds!

--

Thank you James for taking the time to partake in this interview. We look forward to seeing more from you in the future!

If you or someone you know is implementing the OStatus standard, and you would like to talk about how you are implementing it and what you like and dislike, please feel free to contact me at dderouin@status.net and I would happily arrange an interview.

OStatus 1.0 Draft 2 Available under OWFa

One of the important things for developing a specification is providing an explicit license. This give third-party implementers the security to know that they're not walking into a patent or copyright minefield by implementing the specification. It's why the IETF and W3C require explicit descriptions of rights and licenses for all specs made by those bodies.

To make sure that implementers are aware that this spec is open to use and develop with, we've used the great Open Web Foundation Agreement 0.9 (OWFa) made available by the Open Web Foundation. It's an explicit copyright license and patent promise that's been carefully reviewed for use by open web specs like OStatus.

Not all of the technology that's collected in OStatus is currently under the OWFa, but some parts are: PubSubHubbub and Salmon were two of the specs specifically listed when the OWFa was introduced. Our discussions with other upstream spec developers on PoCo, Activity Streams and WebFinger suggest that they too will use the OWFa or something similar. So putting our application profile into the mix makes a lot of sense.

The new draft of the specification includes the license notification, and copies of the signed agreements will be made available on the OStatus site at http://ostatus.org/owfa/. (There's also one addition -- there was an identifier URI left out of draft 1 that we've now got added in!)

Thanks to the people at the OWF who made this great agreement. It's made it easy for use to give the right signal to the OStatus community.

OStatus interview with Tyler Gillies

Today's interviewee for the OStatus interview is Tyler Gillies, the resident hacker at ReadWriteWeb.com.

Give us an overview of your software. What is it, and what does it do?

Tyler: I've been using StatusNet since the first day identi.ca was released. You can find me at Tyler or tjgillies.

My first implementation of OStatus was robin. You can find it at robin. It is a rails based app that implements all the main features of status.net (webfinger/salmon/pubsubhubbub, etc), however, it is not currently being actively maintained. Please feel free to fork and commit patches. I have a plan to re-implement robin using "upgraded" technology, probably nodejs and redis.

Why did you decide to implement social web federation?

Tyler: I chose to pick social web federation because I only had two choices. Either federate, or don't. I didn't want to live in a walled garden. (I own http://opengard.in)

What problems did you have?

Tyler: Honestly, the specs on salmon are a little weird, and it was frustrating back then, because status.net, me and cliqset.com were the only ones who actually had a working implementation of salmon, so there wasn't a big support community. Also the documentation for the ruby ssl library is almost non existent.

How can users try out OStatus in your software?

Tyler: I don't currently have a website up running robin, but if they are familiar with rails, they can download it and try to get it running themselves. I am currently working on a location based app that will probably end up using OStatus to federate messages.

Check out geoloqi, I am developing the nodejs server.

- Tyler

Over the next couple of weeks there will be more OStatus interviews posted right here, so stay tuned!

OStatus interview with Pablo Martin

Today's OStatus interview will be with Pablo Martin, a developer from the Lorea project.

Give us an overview of your software. What is it, and what does it do?

Pablo: Lorea is a project to create secure social cybernetic systems, in which human networks will become simultaneously represented on a virtual shared world.

Its aim is to create a distributed and federated nodal organization of entities with no geophysical territory, interlacing their multiple relationships through binary codes and languages.

On the scope of the project we use different open source software, like elgg, postfix or ejabberd to implement such communication, where we're developing key modules to extend their possibilities.

Why did you decide to implement social web federation?

Pablo: One of our main goals is to have good federation mechanisms for communication among networks of people. We think federation is critical for privacy in the internet because it guarantees you can decide where your data is while still being able to communicate with people on other networks.

Why did you choose OStatus?

Pablo: Our systems want to talk to everyone that wants to speak to them, so we decided to implement OStatus since its an open standard with high alignment with our project in the scope.

What parts of the OStatus suite have you implemented?

Pablo: We have implemented activity streams, salmon and pubsubhub support for many types of objects. We also have some extensions currently, and are in the process of finishing of webfinger support for better connection with StatusNet.More detailed info can be followed at: https://n-1.cc/pg/dokuwiki/1760/doku.php?id=federation

What problems did you have?

Pablo: Our main problem is the activity streams/OStatus ontology misses some important things for us. Other thing I can see I regard as problematic is the difficulty to do inter-network federation tests with other software.

How can users try out OStatus in your software?

Pablo: On a shared node, they can participate on remote groups to a certain extent, and message or friend remote users, also soon subscription of remote OStatus profiles will be possible directly for users (right now the admins of networks are the only ones capable of pulling remote users or groups). Also, our profiles can be subscribed to by OStatus users. Current nodes supporting OStatus federation include http://redesenred.net, https://n-1.cc, https://red.artelibredigital.net.

On personal nodes, since the user is the admin there are a lot more things that can be done including a lot of experimental use of OStatus with other techniques. Any group or profile can be subscribed to.

- Pablo

OStatus interview with Tuomas Koski

Hello OStatus community! OStatus will be releasing a series of blogs that include interviews with a handfull of professionals talking about their thoughts on OStatus. Our goal is to see who is using OStatus, what they are using it for, and what they like/dislike. Today we will be posting our first OStatus interview and the interviewee is Tuomas Koski.

Tuomas is a 30 year-old Finnish rock'n'roll coder living in Paris. He has been participating in different open source projects and federations over the past six years. Presently, he is working in the private sector, in the energy business and he is starting his own company as well.

Give us an overview of your software. What is it, and what does it do?

Tuomas: Buddycloud is a location based microblogging service. Buddycloud is mainly about two things: user generated channels and places.

A channel is somewhere between a Twitter posts and IRC conversation. A user starts a topic (a thread) in a channel and people can add comments to it.

Buddycloud at the moment has two kind of channels, user channels and topic channels. Each user has their own user channel where they can express themselves how ever they want. Every user can create other channels as well. We call these kind of channels "topic channel's".

The channels can be even open to anyone or only available for defined users. So these are both like “groups” in activity streams.

We believe in rich and quality content and we also want that content to be in a context. We want to see a system that when I see a comment, for example on a widget on a web page, I can very quickly see the whole context and the full short conversation.

Originally buddycloud was only a mobile application (and still mainly is - the web version is very very alpha release and a huge hack) but because of being a mobile application first has had a strong location and place integration from the start.

We believe in a location system where user can have privacy and - once again - valuable context to it. We don't believe in location as street addresses are "Boulevard Goblin 8, 75013 paris" but locations like "Home", "The Gilt Club" or even places like "Sleeping".

We believe that user being placed to a place should be automatic, no "check-ins or check-outs". Because of this, in buddycloud, the user "bookmarks" a place only once. and when she arrives there the next time she will be placed there automatically.

Users can of course choose if their location is public or is displayed only to the trusted people. Location and places are calculated from wifi spots and cell towers. Of course GPS is supported to.

Why did you decide to implement social web federation

Tuomas: Social networks are really not networks if they do not network together. I believe that microblogging is like email service. Everyone should be able to host their own system if they want or need. People/organizations should have full control of their data and users and accounts. People should be able to control what is shown. There's no profiling, no marketing no terms changing. And so on.

Why did you choose OStatus?

Tuomas: It's a great team of enthusiastic people. OStatus is trying to create protocol where every user can control their "stuff" as they want. Possiblity of user being able to take their data and switch to another service is also great and I support it truly.

What parts of the OStatus suite have you implemented?

Tuomas: All. Buddycloud is close to be fully OStatus compliant in production. In theory we are. We had all Activity Streams, pubsubhubbub, Salmon, Webfinger implemented but it was a bit against our "business logic" so at the moment we have only pubsubhubbub and activity streams enabled in “production”.

So why havent' we put all OStatus stuff out yet? Why is it greating some problems? The core of buddycloud is XMPP based. And the all the “business logic” our application has that were build upon the possibilities of XMPP. We are working to change our logic to support all OStatus use cases.

Since buddycloud is already in "production" and takes more time to change, I have started another project "MiniMe - the Minimalistic Personal Microbloggin Service" with my friend Julien Da Silva. It's fully OStatus compliant microblogging service. The idea behind it is to have example implementation of all OStatus protocols. Also the idea is that it's super simple to install: just copy/paste. How ever the easy install part is not reality yet.

What problems did you have

Tuomas: No problems really. Biggest problem is to have multiple different implementations to test against. Also to understand all differences of every implementations business logic takes time since it's not visible. With this i mean that for example different services are using for different things.

How can users try out OStatus in your software

Tuomas: More about MiniMe can be read here: http://code.google.com/p/minime-microblogger/ I will be heavily updating the project page the coming days. Buddycloud can be found here: http://buddycloud.com/ or just start following me in your status.net installation using URI http://buddycloud.com/user/xmpp.lobstermonster.org/tuomas

- Tuomas

OStatus discussions will be held at the Federated Social Web Summit 2010!

The Federated Social Web Summit will be held on July 18th, 2010 in Portland, Oregon. The purpose of the summit is to get contributors of the federated social web together to discuss current issues and successes in the open source community, and more importantly discuss what the future holds.

Some of the invitees include StatusNet, Google, Facebook, Twitter, Tumblr, and Mozilla, just to name a few. At the summit there will be discussions on OStatus in hopes of creating a larger OStatus network thus encouraging more people to continue to move towards a truly distributed social Web!

OStatus Badges and Graphics

So you use OStatus and, or, want to help promote the OStatus Standard? Here are some lovely graphics from our about page you can use freely!

badge1 badge2

ostatus stamp plain ostatus stamp box

Syndicate content