OpenSocket

November 2, 2007 – 1:59 pm

I recently wrote a blog post describing the possibility of implementing an OpenSocial container as a Facebook application. This would mean we don’t need to wait for Facebook to embrace the OpenSocial platform - although it would be a clunky ‘workaround’ by comparison.

I would like to invite developers to create OpenSocket as an open source initiative. Please read my frequently never-been-asked questions below!

Wouldn’t this project become obsolete as soon as Facebook takes our lead and announces its own effort to implement OpenSocial?

Yes, I see this project as a petition - and far more convincing than a list of email addresses or signatures. OpenSocket would demonstrate to Facebook that they have nothing to lose by joining in. (And there’s a bit more to it than that - keep reading.)

Are you trying to upset someone?

Not at all - it would be politically-sensitive for anyone other than a third party to attempt this. Google is unlikely to interfere with the Facebook platform when they (say they would) prefer to have their direct involvement. For Facebook, our project would provide a PR-friendly way to eventually embrace OpenSocial: “see, Platform was already open enough that - in a way - it was enabled for OpenSocial from the start; and since it’s now possible to use OpenSocial apps within Facebook anyway, we might as well just build full support…”

Wouldn’t it be ironic if our efforts made Facebook able to support OpenSocial before MySpace and others…?

Ha ha ha, you know some good jokes!

Hilarious! OK, so what form would the project take?

There would be two side-by-side projects:

  • OpenSocket - a Facebook app that allows users to pin-point an OpenSocial gadget and use it within the Facebook environment. OpenSocial developers would be able to direct users in the other direction, with a link to “host in Facebook via OpenSocket”.
  • OpenLock - a ’switching mechanism’ that allows multiple versions of the app to exist at once. A developer would set up an instance to host their particular task, and build it on top of the latest stable development release. Eventually, this could allow operation of the app taking modules from different instances. In its simplest form, it would just be a way to collaborate on a task without having to set up a new app each time; and on completion different tasks will be sitting side-by-side on the same server for easier comparing and committing.

But a successful Facebook app needs hosting, not just code

From the developers’ points of view, that’s why OpenLock might be useful - with a social app you can’t just download the source, change it locally, then check it back in. You also need ‘friends’ to help test features, and fellow developers can be invited to do so via OpenLock.

And ‘hosting’ is why OpenSocket should be open source: I will sort out hosting for our experiment, but it is important that larger OpenSocial projects could just take our code and implement their own container specific to their app, especially if they have different requirements.

What will the future hold?

Hopefully, we’ll set new standards in terms of open source collaboration on a social web app. While OpenSocket is likely to be more interesting to work on, in the long-term something along the lines of OpenLock could become more useful.

Work on OpenSocket will put us in a great position to do interesting things as the platform evolves - perhaps even the reverse set-up, i.e. mapping Facebook apps to the OpenSocial platform, which would actually be more lucrative at the moment, as Lee commented on the blog post linked earlier.

And if the petition is successful in changing Facebook’s stance, everyone involved gets an ‘I opened up Facebook’ certificate.

So, what’s in it for me?

Apart from playing a part in the revolution, you mean?! Being able to say “I worked on both at the same” when a potential employer asks about your OpenSocial and Facebook experience? Moreover, building an open source project as a Facebook app will break new ground - and one aim of this project is to build the framework for multiple, distributed developers to collaborate on a project.

What should I do if I’m interested?

Oh, sit on the sidelines, just check up on the project once in a while… Don’t bother getting involved.

Get in touch! Let me know a bit about your skills and interests. There’s room for everyone!

You must be logged in to post a comment.