Diaspora, first Technology Preview


I’m so glad today. Some of you may have heard of Diaspora, the project aimed to be a social network like Facebook but open source and distributed.

Why? Because I don’t trust Facebook. I don’t know the exact instructions in the software that governs the service. Being distributed and open source, I trust that thousands of users and developers will be able to view and analyze the code, myself included. I will be able to know exactly what the code says if so I wish. Furthermore, I will be able to post my personal information on my own server instead of a centralized, untrusted one. It also means that people that trust me more than Facebook would have an alternative (and a system administrator that actually cares).

(Oh, and personally, I consider the current lack of any similar-to-Farmville application to be a feature.)

We are still talking about posting information to the Internet, though, so it must not be taken any lighter than publishing any personal information daily on the newspaper or the TV. If I publish a picture, I can take it down from my server, but I may not be able to take it away from other servers into where it may have already been replicated.

Since the moment I heard of the project I’ve been waiting to get my hands on it and try it myself. That day finally arrived. On September 15th, 2010, the development team released the code to the public in their Git repository hosted on Github.

I found some instructions on installing Diaspora on Debian and so I decided to try them on my Sid box. It looks those are not complete anymore (the code is rapidly changing as development continues). I had some initial problems, but at the end, with some help from the people at #diaspora, it worked good enough to make this blog post.

I eventually got to this login screen:

diaspora screenshot: the login page.

The user identification takes the form user@domain.com. As you can see on the browser address bar, I’m accessing my own PC, not some server on the Internet.

After some more tweaking I managed to exchange “friend” requests with another person. We exchanged messages bidirectionally:

Diaspora screenshot: last messages of my "diaspora" aspect.

Diaspora has these things called “aspects” which I understand as “aspect of your life”. The two available by default as of now are “work” and “family”. When you add a friend, you add them under one (maybe more?) of these aspects.

Message exchange was done in real time. As soon as I published a message, it got sent to my new friend in a third-party server and he got the message shown in his browser without reloading. Same way back: he added a message and I saw it.

The message went encrypted over the wire (which is very good). After some decoding, this is what I got:

{"aes_key":"Cl2Xtq/VO [... lots of characters ...] A9lSnqEYk=",
"ciphertext":"YT47xNE [... lots of characters ...] KbqlQNx+Y="}

In my tests I was not able to upload images; they failed for some reason. Screenshots from the developers show pictures already working, though. Maybe they got broken sometime in the last couple of days.

Basically, in addition to what the instructions said, I had to open the ports on my firewall to make it work. You must start the server from the ./script/server script provided.

Also, the instructions suggest you directly call build but this will not load the websocket at port 8080. I had to artifically do a PATH=$PATH:/var/lib/gems/1.8/bin to include that directory in the search path, so ./script/server could call build.

VERY IMPORTANT: This version is in development quality (which basically translates to “best effort”), or as they say in the Git repo, “pre-alpha” quality. It is still a long way from being suitable for popular use. It has known security problems (your diaspora account can be remotely hijacked); it has bugs (image uploads are broken in some setups); and it you may lose diaspora data out of nothing (as with any development release), particularly if some upgrade goes wrong. The actual recommendation is DON’T POST YOUR IMPORTANT INFORMATION yet. I repeat: it is a development release; it is a preview. It is still in a very early development stage. Call it a prototype if you want, but be sure to accept the existing risks as of today.

If you want to try it yourself, check the Diaspora Wiki out. It includes information about public servers, installation, some terminology that I did not read and so I made some guys at #diaspora lose some of their valuable time. Now is a good moment to thank them for helping me out.

Diaspora team: great work!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *