July 9th, 2008
I really like OpenID. Not that the opportunity to use it presents itself often enough at this stage - but it is still great. You see the thing I like about OpenID, Jabber, RSS and all the other web standards is that they all present a lot of potential - and have resulted in some pretty cool things along the way. But what has surprised me has been the lack of a widespread call for any form of a decentralised social network. The idea that we should be able to replicate Facebook, Myspace and Linkedin for ourselves - where we control the data.
I wouldn’t say that the idea itself is at all a new one; the perfect example of this is the blogosphere. Each person hosts their own blog and adds information to it and then can interact with everybody else’s blogs through trackbacks and comments - the point is that each person controls their own blog and the data which comes with it.
Basically I’m wondering why we all can’t put our own social network profile on our own server or home computer (or hosted provider in the way Blogger and wordpress.com work) and then interact with everybody else’s. No longer would Facebook or any other evil corporation know everything about you - and as this would most likely be an open source project innovation would be amazing.
It’s an idea which has fascinated me for a good while now - and I’m clearly not the only one. Software along these concepts is already being developed; the closest to my own idea as far as I can see is Noserub and Appleseed. So obviously I have been trying these two solutions out - but they just don’t seem right for what I have in mind.
To begin with Noserub is more of an aggregator - you tell it about all the different services you use and it creates a newsfeed for you along with a few other interesting features. As far as I can tell it seems very like FriendFeed - but then again I’m ashamed to say that I still don’t see the point of FriendFeed unless I know a lot more people using it. But it still holds potential considering the developers claim that Noserub is a protocol (and my experience has been based off their first implementation) - so perhaps I need to look into it a bit more. But for now I’m not convinced.
When I first came across Appleseed I thought that I had found what I was looking for - the developer has all the right ideas. The one clear problem with this though is that it’s designed for multiple users on each server, albeit a small amount of users on each server - where each server communicates with that other. While this in itself is not wrong I am convinced that an individual component is vital - especially in promoting adoption. But I’ll reserve further judgement until after I’ve had a chance to try Appleseed out.
Of course all of this does assume one thing - that users want to have a single online identity on a single network. Not that I am saying that the use of any solution is mutually exclusive - but rather that when we are designing something to accommodate individuals and their preferences (by nature of being decentralised and open source) we have to aim to allow for everything. So at the moment someone might have a Facebook account, a Linkedin account and a variety of other accounts spanning some blogs and Twitter. Essentially what this person is doing is keeping different categories of themselves separate from each other close/real life friends stay separate from business contacts who in turn stay separate from interactions with the web at large.
You can argue about whether it is correct for someone to put their online existence into such categories - but the truth is that it happens in real life (you have your private and public life) and the web needs to adapt to that - and I can’t help but get the feeling that distributing one’s self between a couple of walled-garden social networks is not the solution.
So what does a decentralised or distributed social network have to do to accommodate different online identities (I don’t like saying that a normal person has different online identities - but I’ll use it for want of a better word)? My own solution would be to get rid of the idea that everybody is everybody else’s friend. Rather we have friends, associates, colleague and so on. Facebook has made a step in this direction with it’s ‘Friend lists’ feature - allowing me to show certain things to certain friends. But let’s rather drop the pretences - I’ll add you as a friend if I’m going to invite you to my house to watch rugby but I’ll add you as a colleague if I work with you.
Naturally we would need to accommodate overlaps - and posibly even make them intelligent. For example I might have my friends and my ‘online/anonymous contacts’ (not sure what to call that group yet). Now I don’t want to concern my normal friends with my twitter updates but I don’t want to block them from it either. So I should be able to say that all my ‘online/anonymous contacts’ can see what I post to twitter (or mind you a decentralised system intergrated into the whole platform - the idea of a decentralised twitter has been making the rounds) but also any of my normal friends on twitter can also see them.
All of this would need some nifty authentication both on the user side and between servers - but that does raise an interesting question. Would we allow each user to host their profile? In other words to view another person’s profile would I visit a webpage on his server? I immediately have pictures of badly designed MySpace pages and have to conclude no. Social networking should be about infromation, not making it as pretty as possible. So each server should provide the other (on the basis of the permissions between contacts) with some kind of xml output of everything about it’s own user - which can then parse it and display it in a format acceptable to the viewer. If it’s done right then a platform like the Facebook’s could still be intergrated into this.
The eventual aim should be that the user shouldn’t notice that he/she is using a decentralised system - but should still be able to reap all of the benefits. Pretty big task.
Posted in Uncategorized, Web | No Comments »