2 days of Fosdem'10...

Fosdem, the Free and Open-Source Developer's European Meeting, is held every year in Brussels. It's a free event, attracting thousands of open-source developers from all around the world. In this article I'll talk about the stuff I've learned during these two days.

Saturday

Arrived at 10 am at Brussels central station, meeting Ralph in his hotel with some of the XMPP gang. Nice seeing the folks whose blogs I read in Real Life (tm). Went on the bus to the FOSDEM site. Very impressed by the crowds! Fosdem's bigger than I expected: their slogen: "over 5000 developers, 200 talks, 2 days, 0 euros" really pays off.

Helped setting up the XMPP booth on the info market, and while I was at it, got my CAcert certification. They really should accept the CA root certificate into all browsers! Oh well.

At 13:00 went to the XMPP devroom, which was packed. Nice to see such a big interest. Basically, I sat through all talks:

The Extraordinary, Magical Powers and Possibilities of XMPP - General introduction on the XMPP protocol and its extensions. Ofcourse, having read the XMPP book, I was already familiar but always nice to have it reiterated.

Stump the XMPP Experts! Open Q&A - Open Q&A session. First question: "What is the best XMPP server?" was received with laughter: The kind of server obviously depends on the requirements of your application.

Building Federated Social Networks on XMPP - Skipped on this one to get lunch and sit in on a session on the GNU Savannah project.

XMPP and the Social Web - Interesting talk by 2 guys from Vodafone (Maastricht based) which presented their platform and proposed 4 XMPP extensions for the improvement of doing social networking over XMPP. We should be in touch with these guys! Ralph will probably tell more about this.

PubSub Gone Wild: Info Sharing at Mediamatic - Next on was Ralph, which presented our work with Anymeta, Open-CI (ofcourse, in particular its XMPP integration), the IkTag and its social applications.

Mirabeau: Creating Personal Media Networks - 2 guys decided to build a uPNP bridge for XMPP to limit the fact that uPNP devices only work on the local net. Very cool stuff, although the talk made quite some assumptions about the knownledge of uPNP and did not really go into the XMPP details. But their technology really rocks, and should function transparently.

You Got Your XMPP in My Website: Using Strophe.js for Fun and Profit - Jack Mofitt (of Collecta fame) intro'd and demo'd his javascript framework (more on this below).

The last three talks got into details on the extension of the Jingle XMPP subprotocol for the establishment of out-of-band TCP streams between XMPP clients (e.g. for a/v conferencing). Amongst others, a guy from Collabora demoed his implementation of multi-person video conferencing.

Sunday

Attended talk on Reprap, the open-source, self-replicating 3D printer. The project is still in its early stages but already shows great results. Adrian Bowyer was funny and raised good, even philosophical questions on the origins of the materials we use in our everyday life.

Next up was a talk in the NoSQL room for talks about HBase and MongoDB. But the room was so overly crowded that I did not manage to get in. Alternatively I sat down in one of the Hacker rooms with Ralph and some of the XMPP guys including Jack Mofitt. Familiarized myself with Jack's excelent Strophe.js, a pure Javascript library for doing XMPP (over HTTP/BOSH) straight from the browser. I managed to port our livestream backchannel to use this technology, instead of the twisted local-server based Wokkel+Nevow solution. This should be interesting to deploy on our Anymeta websites to get realtime updates on stuff that's happening (status changes, Ik* apps, et cetera). Fancy stuff!

With the network failing in the hacker room, I moved out to the big Janson hall to follow a talk on Hadoop: a framework for large, distributed data processing including a distributed file system and a map/reduce framework. The talk provided a nice overview of the different subprojects of which Hadoop is composed, but was on the whole quite superficial.

Next on: Dave Recondon et al. from Facebook, speaking about "Scaling Facebook with Open Source". At this point, the massive Janson hall was packed with developers. Dave provided some insight in how their platform grew out from a regular LAMP setup into the multi-server setup, serving 400 million users. Nice to see that they still are using PHP and MySQL, giving me good hopes that it *is* possible to scale that setup. However, as in the previous talk, they did not go into specifics but more only showcased the aspects of their technologies that they opensourced. Of particular interest for Mediamatic can possibly be their Hip Hop PHP compiler, the Scribe server for maintaining logs, and their pure-javascript connect-js Facebook API. One interesting aspect they mentioned, though, was the fact that all Facebook database queries are kept as simple as possible, so the Memcached servers basically serve as index servers, and they do all joins on the PHP side. Probably they can because of the speed gained by precompiling the PHP with Hip Hop.

Final talk of the conference for me was about Status.net, by its founder, Evan Prodromou. Formerly known as Laconi.ca, they provide the identi.ca opensource social status platform. They have opened their code so that everybody can run their own, federated social networking platform around status sharing. The platform provides all kinds of hooks to tap into the mainstream proprietary social platforms like Twitter and Facebook, making it possible to share your updates with the world. One of the things they do provide is XMPP support. Evan mentioned the emerging Microblogging over XMPP standard (XEP 0277). He also got into quite some detail about how the status.net architecture (which is also LAMP) deals with scalability issues, like deferred processing of tasks and denormalizing complex database joins into inboxes per user.

Breakdown

All and all, it was a very fruitful weekend. On the XMPP side I learned a lot about new applications of XMPP and about future directions of the social web; the architectural/scalability talks on sunday got me thinking about the architectural challenges we face with Anymeta currently. But that's another topic: I'll blog again in the coming period on these.