Hundreds of millions of us use Facebook every day, but that doesn't mean we like it. We like being able to connect with our friends; it's the hoops we have to jump through to keep our privacy on Facebook that's a pain in the neck. Diaspora, a homegrown, open-source project, is trying to answer that need with a social network that combines Facebook's features with the users, instead of Facebook CEO Mark Zuckerberg, in charge.
Diaspora got lots of fans when its student developers announced their plans this spring, but until now, Diaspora has had little to show. Today, Sept. 16, that changed. Diaspora is now available as a developers' source code release.
This is not, repeat, not a release for everyday users. It's for developers who know their way around social networking technology and can program in Ruby and Ruby on Rails. If that's not you, then stick with Facebook for now.
But if you are a developer with the right chops, the core Diaspora programmers has now opened their project to others. The code is licensed under the GNU Affero General Public License version 3 (AGPLv3). This is the GPL for server programs that are usually accessed with a desktop interface.
This pre-alpha Diaspora code is available on GitHub, which uses Git as its distributed version control system. Project management and coordination will be done through the Diaspora mailing list.
At this point, the Diaspora developers are in that difficult stage of moving from a very small group of friends to a larger community. Eventually this will be worked out — the project just opened up, and some newcomers already want to move it from Ruby to PHP!? — so don't be surprised with this kind of growing pains. All open-source projects go through this kind of thing.
Diaspora, at this stage, is a distributed system. There is no centralized server farm. Instead, Diaspora uses seeds, a personal Web server that stores all of your information and enables you to share this with your friends. Your status updates and like are sent to your friends using GNU Privacy Guard (GPG) encryption.
Who sees what about you is controlled by what Diaspora calls Aspects. While Diaspora didn't make how this works quite clear, it seemsthat when you 'friend' someone, you allow him to see a specific Aspect of your online personality. So, for example, you find show your best friends everything while a co-worker would only see your 'public Aspect.
Diaspora is working on Oauth authentication for user sign-in and to allow people to move their entire account from one Diaspora seed to another. The developers are also working on integrating Diaspora updates with Facebook, Twitter, and Ostatus, an open standard to let people track each other over different social networks, enabled public sites.
The developers are also working with internationalization using I18n; scaling app-servers horizontally; and server-to-server authentication. Today, according to the programmers, "Diaspora is push-only. We need servers to be able to authenticate to each other in order to pull data in, and to delegate that authentication to the browser to avoid replicating large files like photos."
That's a lot of work. I don't expect to see Diaspora being in a form most people would be comfortable using until spring 2011. As for your grandmother logging into Diaspora instead of Facebook, I don't see that happening anytime soon.
Regardless of whether Diaspora ends up replacing Facebook, we do need a better, safer alternative to Facebook. If Diaspora doesn't work out, there are other social networks working on similar goals. With thieves using Facebook to plan robberies, having the ability to easily control who gets access to your private information is more important than ever. Here's hoping Diaspora is up to the challenge.