Yesterday’s OpenSocial hackathon was the first event of this kind for me — and I’m quite glad that Simon had convinced me to attend.
The first two hours were rather unexciting, as various social networks were presenting themselves.
Afterwards, a few Google representatives gave a quick overview of the OpenSocial concepts and pointed us to a brief tutorial.
Surprisingly, that was all we needed to get started; essentially, OpenSocial gadgets are but web apps wrapped into an XML file, to be displayed within an IFrame.
Our first idea was to use TiddlyWiki to aggregate data from various social networks, turning into a sort of global dashboard for users. However, the OpenSocial API does not permit this (yet, according to Google).
So we went for the opposite approach, embedding TiddlyWiki as an OpenSocial gadget. This opens up quite a number of interesting possibilities — for example, users composing and sharing notes.
The first step was to simply take the entire TiddlyWiki source code and wrap it into the required XML framework. Apart from having to deal with nested CDATA sections, this actually worked without too many problems (also thanks to the gracious help from a Google expert). We used TinyTiddly’s externalized core to save us the headache of excessive scrolling through the source code. Since gadgets are limited to a certain display size, we decided to apply a theme designed for handheld devices[1] (created by BT’s James Lelyveld).
The preliminary results can be seen here; the XML gadget file is located here.
The next steps, should we decide to follow up on this, are to integrate this with ccTiddly, as this prototype does not yet provide any way for saving the inputs. Also, there are some issues with running TiddlyWiki within a frame — for example, paramifiers and direct permalinks to specific tiddlers do not work properly.
While I’m not a huge fan of social networks (apart from Twitter, if that counts), this was a very interesting experience. Overall, the event was very enjoyable and well-organized, with quite a number of interesting attendees.