Questions for the Diaspora

So lots of friends were tweeting this morning about Diaspora, a project to raise funds to get a summer’s worth of hacking done on a distributed, Libre social network. A distributed, Libre social network would be a terrific thing to have; I’d love to support it. And I love the eager energy I’m seeing around Diaspora.


Questioned Proposal, by Eleaf, used under CC-BY

But I’m also keenly aware that distributed social networks are hard, and so I’d only give of my money (or my time) to someone who looks like they have what it takes to take a serious stab at the problem. They’re hard:

  • as a design question: how do you make a social network whose UI doesn’t suck?
  • as a technical question: the code involved is complex, particularly if you want to interoperate robustly with other platforms, and doubly so if you want to do that with proprietary platforms.
  • as a social question: getting users to migrate is not easy.

So here are some questions for Diaspora, or really for anyone working in this space. These are not questions with right answers, necessarily. But anyone serious about solving this problem probably has at least some answers for them, so showing that you’ve given them some thought will go a long way towards convincing people that you’re serious about attacking the problem. If you haven’t given them thought yet, I could think of worse places to start. :)

  • What do you think are the most important features a social network should have? How would you prioritize them? Do you plan to Build Less or go big? If building less, what is the minimal set of features you can get away with?
  • DiSo is now two-plus years old. Any ideas why it didn’t get off the ground? Bonus points: same question for Mugshot.
  • What standards, if any, do you plan to work with/build on? (just to throw out a couple, all of which have strengths and flaws to consider: webfinger, oauth, xauth, the buzz APIs.)
  • What other services, if any, do you want to interoperate with? why? how will you prioritize?
  • Any other Libre code bases in the same space you’d like to work with? GNU Social? StatusNet? What ones are you aware of, and why will you/won’t you build on/work with those?
  • Would a smarter client (like Mozilla Contacts) be useful to you? If so, how?
  • What is the strategy to get to a critical mass of users (or avoid having to get a critical mass?)
  • What are your three favorite books on software development? three favorite essays? what about on design?

I don’t mean to ask these questions to piss on anyone’s parade; I deeply want to believe. Heck, what I want to do is fly to New York, sit down in a room, and help you brainstorm and plan. But unfortunately I’m a pragmatist with a day job. I can’t directly help out. So instead I offer these questions. Answer these1 and you’ll begin convincing people that you are also pragmatists: that you’ve thought hard about the questions at hand and you are worth investing in. And I’ll be first in line to do that.

(I should note that unlike some I don’t need code; I think code that is created without much thinking is all too common and frequently damaging. But if you don’t have code, I suggest doing planning- and talking about it- before doing a PR week. :)

  1. or questions like these- you’ll note I skipped some hard ones like ‘business model?’ []

49 thoughts on “Questions for the Diaspora”

  1. I really like the enthusiasm those boys show, but I am not certain their efforts will go anywhere, when their lifes go on after the summer. And without a proper technical proposal I am not giving any money.

    And honestly I don’t really like Moglens vision. Nobody wants to have to run his own server (except geeks).

    A much more viable solution seems to be http://www.safebook.us ( paper at http://openpdf.com/ebook/safebook-pdf.html )
    Their network will be distributed and P2P without the need to be online all day. Being a research project I hope it will get open sourced.

    I think a Facebook alternative must be fairly anonymous, distributed, encrypted and open. I should incorporate filesharing and streaming.
    We need a really private network for real friends in the digital world.

    Current efforts like retroshare.org lack so many crucial parts. That really shows that something like this is really really hard (they are at it for years), but Safebook seems to have the best architecture so far. It could go somewhere.

  2. […] (I should note that unlike some I don’t need code; I think code that is created without much thinking is all too common and frequently damaging. But if you don’t have code, I suggest doing planning- and talking about it- before doing a PR week. :) or questions like these- you’ll note I skipped some hard ones like ‘business model?’Syndicated 2010-04-27 05:54:26 from Luis Villa's Internet Home » Blog Posts […]

  3. Opoho: I knew there was something I was trying to remember, Elgg was it. Note that (last I looked) Elgg is not distributed, making it less useful. But certainly another good question for these guys is ‘why not work on making Elgg distributed?’

    Tom: hard to say that something has the best architecture if the code isn’t available. But yes, I take your point about people not wanting to host- another good question would be ‘given that self-hosting is a pain in the rear, what steps will you take to (1) make it easy to self-host for those who do want to do that and (2) make ‘medium-size’ self-hosting possible for organizations that want to do that?

    (Related: how do you make this appealing to medium-size organizations?)

  4. I second the vote for OneSocialWeb. It’s based on XMPP, is federated, has robust security and privacy, and best of all, it exists.

    The real problem, as you mentioned, is trying to get anyone to use it. My solution for that is to come in the back door: integrate XMPP and OneSocialWeb into the browser. Make the browser understand my identity. Getting someone to change browsers so that I can socialize with them is much easier than getting them to leave Facebook, AND it has the benefit of making my browsing automatically social. If Mozilla and Google implemented XMPP in their browsers and for their services, offering OneSocialWeb servers of their own for people who didn’t have a better choice, that would be 30% of the Internet.

    I wrote an open letter about the concept.
    http://blog.ibeentoubuntu.com/2010/04/open-letter-to-mozilla-and-chrome.html

    Dan

  5. Hmm… OneSocialWeb is certainly interesting for being based on an existing open technology. Not quite a fully distributed system, though – a user is still dependent on an XMPP server, even if they have some freedom to choose which one.

  6. A S2S architecture (like Wave) is much more complex than SaaS, and P2P is even harder than S2S. Running a server is hard, but which is less work: building a P2P social network or making servers easy?

    1. Wes: I’d add that an S2S+client architecture (namely email) has proved fairly robust in protecting user freedom over the years, which suggests that the additional complexity of P2P is probably not necessary in practice.

      (To the point of the post: this kind of analysis and balancing (do we do P2P? S2S? some hybrid?) is exactly the kind of thing that I want to see out of the people writing a libre social network; if I don’t see that kind of writing/thinking, I’m skeptical that the answers will be right.)

  7. Luis, I have to disagree. S2S+client architecture is not as good as you might think. How many people run their own email server compared to to how many run their own P2P client? Most people have gmail and yahoo or hotmail. So no comparison. The internet is supposed to be P2P.

    I really hope the end result will be back to the future and the internet will go back to P2P. P2P isn’t that complex, it is how the internet is supposed to work.

  8. Hi Luis,

    I think they’re great questions, to me the biggest one and the one that ties them together is, why not build on StatusNet? Unlike DiSo/Wordpress it is built from the ground up for this purpose, unlike Elgg it has been built for distributed use. (Mugshot was never in this category right? it was a Redhat desktop-linked system more like Ubuntu one?)

    I write this as someone who also plans to take some time out to work on some code, and have not invested any time in StatusNet just yet, so am writing impartially. To me the aGPL is the first requirement, but the diaspora guys have seen that too so should make StatusNet more interesting. I wonder when your preferred language becomes an issue, and whether it’s worth switching to take on a project? They are obviously keen on Ruby, maybe PHP is too much of a hurdle.

    Mal.

  9. […] discuss49.Moose vs Mouse: OOP in Perl (bugsplat.info) 21 points by zrail 3 hours ago | 5 comments50.Luis Villa on Diaspora (A Distributed Social Network Project) (tieguy.org) 1 point by mgunes 3 hours ago | 1 comment51.Keep Simplifying (thintz.com) 13 points by […]

  10. I am very interested to see what they come up with. I had no idea there were so many other options out there. I blogged about this myself recently;
    http://www.1stbyte.com/2010/05/05/my-idea-for-an-open-alternative-to-facebook/

    But I am just not advanced enough at programming to make this happen. Nor do I have the time.

    OneSocialWeb looks cool, but the install starts with “http binding” and editing config files! Ok, I know in my limited experience of programming that nobody want to read anything or make more then 3 clicks to be up and running. Once they fix that, maybe it will be worth looking at.

    The Diaspora guys have some cool ideas, and although I don’t see the architecture they’re planning, I have a hunch they are looking at something closer to what I think we need. (a combination of tierd, self hosted and externally hosted services available to users, all federated with data not centralized, and secure!)

    One suggestion though, the name? I am sure it has a logical meaning, and I don’t want to pick on the guys, but… first thing I think of is, “diapers and what? That sounds icky.” Sorry. I do know, they are just starting out, so I don’t mean to give them a hard time or make fun of them.

    Looking forward to a better social web!

  11. Tom,

    The challenges of a distributed data store are already solved. See Tahoe-LAFS and the Freenet Project. I hope that anyone considering building a distributed social network will look into options such as these.

    The act of running your own server can be simplified by selling a preconfigured plug computer. Plug it in, complete a web form in your browser and you’re done. That is the beauty of P2P.

  12. Carefully thought out, sociologically-informed, extensible protocols among server and/or client nodes, which would last and would allow replacement of software as the social net evolves, would be an incredibly lasting and important contribution.

    The way social networks communicate with each other will affect — and arguably has already affected — the way people communicate with each other. These protocols, ultimately reflected in the types of applications written on them and the choices and interfaces presented to users and in the future, will only become more important over time. I think that recognition of this fact is behind a lot of the excitement about Diaspora, and it leads me to hope for solutions that are very deeply considered and that take into account the knowledge that we have accumulated across disciplines: sociology, social psychology, personality psychology, and likely other disciplines that I, as an individual, can’t think of on my own.

    I completely understand the desire to make something better than Facebook ASAP, but I believe many programmers, administrators, web developers, consultants, and end users would be overjoyed to work with a user-owned social network application that we all knew was based on a framework of ideas that was built not only to be flexible and lasting, but also to foster the kind of communication and communion among individuals (without straying into wishful thinking) that would be more helpful than merely reflective of the chaos in the real world.

    Since the Diaspora project has garnered so much interest and legitimacy, I hope fervently that the four principals will realize that they can build more than software. They could build something incredibly enduring (even more enduring than they may currently hope) if they are willing to take the time to look beyond even improving what already exists, and will invent something more right than other people have imagined, by starting with understanding the problem space very deeply.

    Good luck, guys. The hopes of a nation go with you.

  13. They didn’t answer the UI question.

    “We think in the future (after the summer), we will work on an easy installation, but for right now, we want to make this software because we want to use it, there is at least a good handful of others who do too.”

    Yeah, well.

    Sounds like this will be yet another “for geeks, by geeks” open source solution. You’ll be able to add Stallman and Tux to your friends list by exchanging GPG keys, while your former friends invite each other to real-life parties on Facebook and slowly forget that you exist.

    If my mom can’t use it out of the box, it will never compete with anything. I’ll keep my donation in my pocket for now.

    Decentralized P2P and distributed storage is a decent idea. Running your own web server is a ridiculous idea.

    On the other hand, integrating a decentralized solution right into the browser software (Firefox/Chrome) is a really great idea. People are already using the browser to access social networking sites.

  14. […] Ask HN: Distributed teams (news.ycombinator.com)(1 point) (discuss)(tag)tags: distributed7 Luis Villa on Diaspora (A Distributed Social Network Project) (tieguy.org)(1 point) (discuss)(tag)tags: distributed8 Tell HN: My proposal for a distributed […]

  15. […] 30 May 2010 by hectorcuevas Leave a Comment Diaspora aims at being an open-source Facebook replacement, first available as a self-hosted package (i.e. geeks-only) and later as a paid service. They got a lot of support, but there are some technical problems they’ll have to deal with (for non-technical issues, see this post), and details of the project are hazy (even taking into account their answers to Luis Villa’s questions). […]

  16. I’ve been thinking about all these issues long and hard and recently commited to writing specs and developing code – to put my money where my mouth is.

    For the “hosting-is-a-pain” category I’ve decided to take a multi-prong approach. The basic personal package is pure LAMP and about the same as hosting a WordPress blog. Millions of people are capable of handling WordPress. Many are geeks, but we need early adopters.

    OneSocialWeb is Java, and Diaspora is ruby. These are going to be harder to deploy in a big way.

    The second tier is a multi-user server which can run families and clubs and small organisations. It will probably be setup by a geek or IT department – but requires zero administration (unlike, say Drupal). Set it and forget it.

    The third tier is what I call the RockStar server. The celebrities of the world are getting tired of Twitter being overloaded – and stuck with 140 characters. They can’t use Facebook without being swarmed by idiots. The RockStar server will support millions of fans. And you can keep up with close friends and family at the same time – partitioning the fans outside your inner circle the same way it happens in real life.

    To pull this off, I needed to also define “what is a friend” in a totally different way than we’ve been doing it online the last ten years. One must accept that friendship is not binary. It is a spectrum, and might be seen differently by each of the parties involved. They need to be able to fully express and put limits on these relationships in their social network, just as they do in real life.

    Most of the “open stack” protocols won’t work when you try and implement these kinds of relationships. I’ve basically designed a secure protocol for introducing/linking two people into whatever relationship is comfortable with each, and a secure channel for communicating in either direction with a single sign-on to your own server. You can put any kind of information in this channel.

Comments are closed.