I was thinking about why Facebook is so popular, despite really adding nothing new to the Internet. It’s really the packaging: type in a URL, go there, look for friends, read posts, post things, etc. Anyone can do it. The downsides: confusion about how it works – who sees what, privacy issues, and the fact that it’s really just a spam engine, are generally lost on less sophisticated users.
Before trying to tackle the usablity and packaging issues, I think it would be interesting to come up with a guide on how to do social networking with standard, open protocols, open source tools, etc., in a way that lets the participants own their network. With this first instalment of what I hope is a series, I want to lay out what social networking on the internet really is, at a conceptual and user scenario level. I’m going to ramble a bit, but this is a blog, not a textbook, so cut me some slack.
To get started, you need a way to find people and initiate a connection. This connection has privileges – people you’re connected to see your broadcast information, and information they send to you, either directly, or broadcast, gets special treatment. For now, let’s call this list of people a whitelist. Facebook treats these connections as reciprocal, but I’m not sure they have to be.
So there are two steps to getting started: finding people, and asking for permission/participation in communication.
Finding People
The history of the internet makes this difficult. E-mail addresses are the most important way to identify people, as they are unique. But we there’s no easy way to find someone’s e-mail address. Also, people’s e-mail addresses change over time. Worse still, the history of spam, malware, and scams has made people understandably hesitant to publish there e-mail address.
So we’re left with services/sites like Facebook and linked-in, Google profiles, as well as simple web searches to find people and a way to contact them.
White-Lists
For e-mail, white-lists can be implemented in the e-mail client via filters. Blogs such as WordPress can be configured so that comments require moderation. Once a comment has been approved, the sender of the comment is essentially whitelisted.
Once we have our network, in the form of people and their whitelists, we need to have some means of communication. I think there are three important types:
1) Direct
A direct, person-to-person communication. Examples are e-mail to a single person, or an IM message.
2) Multicast
A direct communication to a list of recipients. E-mail lists, and e-mails with multiple recipients are multicast communication.
3) Broadcast
In essence, this is publishing information on the web, often via a blog, or a posting on some other web site.
Note that one large issue with Facebook is that its users are lead to believe that their postings are Multicast (to their Friends), but in fact they’re essential Broadcast, via Facebooks’ Friend-of-Friend exposure, plus their willingness to provide APIs to partners, and the general complexity of their privacy model and its implications.