With over 500 million users, Facebook is by far the world's biggest social networking site - and has also been making important contributions to the open source community.
David Recordon, the site's head of open source, talks us through the company's approach to free software.
LXF: What's your background in open source?
David Recordon: I really got started working with open source when I was a teenager. I was using YaBB SE (PHP forum software), and started helping others within the community.
At the time, I knew C++ and a bit of Perl, but really hadn't done much web programming. PHP was easy to pick up and I loved the immediacy of being able to just hit save and then refresh my browser. Over the next few years, I got more deeply involved in the project, helped launch the rewrite as Simple Machines Forum, and built a forum-hosting business with my friend Joshua Dickerson.
I guess this was really my first experience of being deeply involved in an open source project.
LXF: Did you continue working in the web business?
DR: A few years later, I interned at LiveJournal, really learned Perl, and was told to never admit that I used Nano (after switching to Emacs). Working at LiveJournal was also my first experience of using Linux on the desktop daily.
LXF: You're well known in the OpenID world. How did you get involved in the project?
DR: A number of people took advantage of the fact that LiveJournal's core was open source and ran clones. According to Wikipedia, there have been 30 different sites, with DeadJournal being the first in 2001. While spam was never a major problem within LiveJournal.com, commenting across blogging sites was still riddled with it, because there was no shared notion of identity.
OpenID was originally created at Six Apart to help tackle cross-site commenting in a decentralised manner. It's obviously evolved quite drastically since 2005, and I really got deeply involved in OpenID 2.0 while I was at VeriSign.
It's been implemented by just about every major web company, but we still have a long way to go. I see the next version of OpenID being built on top of OAuth 2.0. This will allow it to be a fairly small piece of technology that should work for applications outside of the browser.
LXF: How did you make the move to Facebook?
DR: I joined Facebook in 2009 to work on open source and standards. My team is focused on making it easy for anyone in the company to do a really great job of using, contributing to and releasing open source projects.
At times this means embedding ourselves within other engineering teams, such as with HipHop for PHP, which we released in early 2010. While HipHop had proven itself within Facebook, there was a lot of work still to do to make it a useful piece of infrastructure for others.
LXF: What exactly does HipHop do?
DR: HipHop really embodies how we create at Facebook. It started as a hackathon project by Haiping Zhao, who was later joined by Iain Proctor and Minghui Yang. Haiping noticed a number of similarities between the syntax of PHP and C++, and wondered if you could programmatically rewrite one into another.
Two-and-half years and a few other engineers later, HipHop was serving the vast majority of Facebook's production traffic. It takes our PHP source code, transforms it into C++, and compiles it into a self-contained binary that we deploy on production web servers.
This is a typical pattern of how projects get started at Facebook. One or two people just decide to try something. We refer to this as our "hacker culture".