Posted by: Jas on Sep 29, 2010
The social network could run into user issues before it's even begun.
Diaspora is a new social network that sets out to put you in charge of your data. The entire idea was formulated because of the strong attacks against Facebook with its bad privacy changes, effectively opening up your profile information to almost anyone who wanted it - unless you took the awkward and sometimes complicated steps to secure your profile (much of which has been sorted out with Facebook).
Diaspora is meant to be a social network where you're able to install your own 'seed' on a personal web server, and this to me, is the penultimate usefulness of the whole project. Instead of having to have someone else host the solution, I could simply have it on my own personal website (and these days, with the price of web hosting becoming cheaper and cheaper, who doesn't have their own little 'slice of the Internet'?).
But as much as the goals behind Diaspora can be applauded, there are also some serious limitations behind the initiative.
The problem statement lies in the development stack that these four young guys decided to use, and that most web hosts don't offer that technology stack out the box. In the end, these guys should have looked at the technologies out there, and determined what most web hosts do provide off the shelf.
PHP over RUBY: Facebook uses it, and they're the largest social network out there.
MySQL or Posgresql over MongoDB: There aren't a hell of a lot of NoSQL webhosts out there. While this may change, stick to a database engine that most web services provide you with out the box.
ImageMagick is used to handle the image processing capabilities when uploading images. I'm not too clued up on ImageMagick - but PHP has the GD libraries for image processing anyways, so why worry about using a third-party when you can do what ever you want directly from the core language?
To me, it seems like they just used the right tools to cut corners, rather than thinking it out properly. When you want people to use your software, you need to design it around their needs - don't go ahead and design it around your needs.