Meeting Free Software Federated Folk in Meatspace

Meeting people in person for the first time is always kind of awkward – especially if you’ve never seen them before, and you also happen to really respect their work. You can find yourself walking down a long road with growing anticipation of things getting real. You’ve never been to this Mexican restaurant before, you’ve never met this person, who knows what could happen?

I got to meet Chris Webber from MediaGoblin while I was visiting San Francisco. I usually feel sort of antsy when I meet people in person for the first time, but that all evaporated as soon as we shook hands and said hello.

Chris has a great personality. It was wonderful talking about our different points of view on federation, and the schools of thought that have come up surrounding different implementations. We talked for three hours about Free Software, desktop environments, project philosophies, federation concepts, and our grand hopes and dreams for things we wanted to see succeed. He even told me a good Richard Stallman story!

There’s actually a lot of really interesting things going on in the Free Software space as of recently. Of note, GNU GUIX is under a lot of promising development, and could provide a better way forward for deploying packaged web applications, and rolling them forward or back from upgrades. To some effect, such an effort could make non-PHP open source web applications easier to package, install, and use with relatively little setup required on the user’s part.

Chris invited me to an SF Free Software Users meetup called Beowulf Cluster. We all crowded into a pie shop and many different kinds of conversations came up about what we did for a living and what we were interested in. Some guys talked about QA, others discussed semantics of their favorite tools and projects.

I got to meet Asheesh Laroia from the Sandstorm team. Sandstorm is extremely interesting to me, because it is a Free stack that effectively allows you to host and launch apps like a containerized Heroku – you can also host all of it on your own hardware independently. It feels a bit like Google apps, but with a much wider selection, and everything is sandboxed. The concept of an easy turn-key service for hosting a Diaspora pod is extremely appealing to me.

We talked a bit about packaging Diaspora for that platform – at some point, someone from their community had tried to package it. Some questions remain about how Diaspora’s components work in terms of in-bound and out-bound connections, and Sandstorm is a sandboxed environment for apps that can share data with each other from inside of a host. I hope to answer their outstanding questions sometime soon to get a better idea of what would need to happen.

All in all, these moments were the highlights of my trip this time. I was super glad to have met Chris and see a real Free Software hacker in the flesh.

Understanding Decentralized Social Networking

The Scope of the Problem

The Internet of this day and age is a social place, and you don’t have to work in IT or even be a geek to understand that. Every day, hundreds of millions of people are interacting with one another on social platforms such as Facebook, Twitter, Google+, and YouTube. Let’s look at the following statistics:

  • Facebook: Over 1 billion user accounts.
  • YouTube: Over 800 million, over 4 billion hits per day.
  • Twitter: Over 500 million user accounts.
  • Google+: Over 400 million user accounts.

 Granted, these are large social networks that have the resources to scale up to accomodate having so many active users on a day-in, day-out basis, but I believe that this trend is problematic for a number of reasons. 

Personal Data, Meet Silo 

There’s a lot of misunderstanding as to what user data is, and what it can be used for. Most web applications make use of a database to store data and variables; social applications such as Facebook have large databases with exorbitant amounts of user data. Every post you make, every like every private message, every photo, every comment, and every social action you’ve done with Facebook is stored in their database. Played a song on Spotify? It’s in your Timeline somewhere, and that goes into the database, too.

After a while, this data piles up, and anyone with the means to read it can get a pretty good impression of what sort of person you are, what you like, and what you say privately to other people online. This data is then given to advertisers, who then pay to plaster their ads in Facebook’s stream, as well as in the sidebar. This feature is not unique to Facebook; in fact, most of the major social networks out there now have some semblance in which an advertiser pays for a promoted spot that every user can see.

With the rise in the use of context-sensitive data analytics on the social web, these advertisements are becoming more and more custom tailored to an individual person based on the data their social network practically handed out. Our social experience is reading more and more like the ad pages out of a newspaper, and the problem is that it has largely become the norm on the social web. The reality is that you can download all of your personal data out of most social networks, and close your account if you really wanted to. The problem is that there’s really nothing all that useful that you can do with it, unless you feel like cracking it open and reading JSON files. There aren’t really any tools to make use of this data.

Muting a Megaphone 

Another problem unique to networks of the scale of Facebook and YouTube is that they are run by multi-national corporations with a global presence. These companies typically have two underlying goals:

  1. Provide a service or set of services that everyone wants to use.
  2. Make money to fund further development 

These are fine goals to have if you’re a company, but a problem quickly becomes apparent when you think about the scope of these companies. As these networks come to have users from all over the world, the companies behind the network find themselves more and more in the position of maintaining a global presence, forcing them to deal with the governments of various different countries.

This is particularly problematic for activists that want to incite change against oppressive governments. Facebook has a habit of shutting down protest pages and YouTube has a history of pulling down protest videos to censor activists. These aren’t just isolated incidents; they’re the norm, and incidentally, they’re also the most popular platforms for their respective forms of communication. Everybody’s in the same boat, and similarly, everybody can be censored at the request of corrupt governing bodies. Whose interests are really being served here?

Decentralized social is a wildly different approach to social networking: rather than having central sites that millions of people get on, the network is made up of many websites with a much smaller amount of people on it. These multiple sites can be run by anybody: you, your friends, businesses, organizations, activists, and anyone else can set up their own social site and talk to other people seamlessly across the network.

There are several fundamental benefits to this design:

  1. No central authority can censor what you say.
  2. No social network has access to your private data. You have control over who sees what you post, including the social site that you’re on.
  3. Many decentralized social networks are Free Software, meaning you can look at the code and ensure that it’s not spying on you.

So, if I were running my own social site at DeadSuperHero.com, people would be able to follow my social account, see my public posts, like my things, and comment on anything I push out. If I choose to put my followers into a specific category of Contacts (in Diaspora, they’re called Aspects), then I can filter out who gets to see what kinds of posts I make. Maybe I have some colleagues at work that I don’t want to see my photos of a party, or maybe I have a group of local activists that I want to talk to that doesn’t concern anyone else. The point is, decentralized social is about having complete control over who gets to see the things you say and do online. 

One of the other interesting things to think about is customization. You’re running your own social site, so in essence, you’re free to customize how your profile works, and if you’re handy with some code, you can also customize how your social dashboard looks as well. Why constrain yourself to other social networks that make massive changes to how they are used when you can have that extra control over your own site’s functionality? 

An interesting development in decentralized social is the idea of being able to move from host to host, which is empowering for end users. The idea is that a user can pack up all of their social data and move to a different social site, they can. You’re not tied to the site you signed up on, and if you’re on a community-run pod and are unhappy with the person running it, you have the freedom to leave and take your valuables with you. All in all, decentralized social isn’t about “defeating” the existing social networks. It’s all about having control of your entire social experience online.

Thoughts on the emergence of social microcultures

I want to talk about an idea I’ve developed over the last five months of my study. I act as the Diaspora community manager, and being in this position has allowed me to see how a social network grows and changes. The decentralized, distributed nature of the project allowed for multiple community hubs to grow, and more importantly, different cultures emerged on different pods. How?

Looking at the amount of available hosts on podupti.me, you can see that there are about 65 active entries for pods of all kinds of different sizes and styles, give or take the occasional pod that shuts down. It’s important to note of two distinctions when we consider these pods: there is the pod’s own internal community, and there is also a standard network community of users that all share with each other the most (I, for example, have over 1500 contacts on Diaspora at the moment, with a majority of that number being active daily users across many different pods.)

The Host Pocket

When you join a pod, you come to come across the post popular content from it first. You’re bound to meet more people on your own pod at first, mainly because content is preferred there in order to introduce you to new people. There are options to follow popular pod-selected community members, and related posts are indexed through hashtags on a stream.

This is the scope that everybody you and your friends on your pod can see, and it is its own contained social community. Every single pod has one, and under my observations, I’d like to offer a statement about what’s happening between these communities.

Every single one of these pods is a community. A self-maintained community of users that have different general trending interests. Different pods have different memes, and different ideas about discourse and community. Out of these different pocket communities, they develop subpockets based on scopes of further related interests. In this way, original art and discourse can develop in a memetic sense. Community characters develop out of this, and friends grow together.

The Network Pocket

The network pocket overlaps the Host. Everything about your own community can be shared across other pods into a group deviation where everybody is already connected through their own respective pod’s connection.

Think of it like a growing constellation: the network is a cluster of different servers connected to one another, acting as one. This is the power of decentralization, as it allows for users to truly take their data into their own control, and choose who to connect to.

These different admins work together and talk to one another to maintain a consistent network, where these different pockets of culture can overlap simply through the resharing of content. It’s an hodge-podge of different perspectives, jokes, hopes, and ideas.

The network is open for anyone to build on and connect to, and people can talk to the network as a whole with relative ease.

The Theory

“Decentralized social communities that communicate together allow for an opportunity to blur the line between their pod’s own distinctive cultures and subcultures, and the network’s own observations as a whole.”

Boiled down, it can be interpreted as:

“Social pockets exist in different web communities, and the users in their cultures can intermingle with one another by sharing their own experiences and things they enjoy. These lead to the creation of new subcultures and distinct communities in their own right.”

Plain English: people can now build social networking sites of their own using open source software, and each site can communicate with one another pretty seamlessly as if they were part of the same website. These websites can get lots of different people, and these people develop into their own community-run gambit of cultures and ideas.

With decentralization, though, the best ideas a community can provide overlaps. Let’s give an example with a little renaming. Think about it: What if you could set up your own Tumblr and talk to someone on Posterous, with the ability to message each other and follow each other?

Now, let’s say you can do that with any site you want. You can make it look how you want, and everything on it can be yours. Imagine having these different sites with different fandoms and memes and news links, all sharing with one another to overlap different groups of people in different ways.

Ideas can be spread across multiple communities this way, especially if we can assume that creative groups of people tend to hang out and check out each other on social networks regularly. (DeviantArt, Tumblr, Can.vas, Flickr, are all great examples of fairly vibrant user communities, and fit to be comparable to Diaspora and other decentralized social networks.)

I think there’s a lot of merit in trying to figure out how best to make these different sites talk to one another.

The Social Web Is Being Censored, Where To Move To

Twitter is censoring the posts, and is preventing the activists from trending and getting the news out there to the people that need to know. They are trying to stifle you, and prevent you from fighting the good fight.   

DIASPORA and Friendica are social networking platforms that are similar to Facebook, and allow for hashtags in posts for activism. They’re both free, open source, and you can even install them on your own server if you really want to. (Here for a Friendica install guide.)  

For DIASPORA, I would recommend registering on a pod such as Diasp.org; they allow for trending topics, are part of a decentralized social platform (multiple sites can communicate to one another), are against censorship, and it functions like a hybrid of Tumblr, Facebook, and Twitter, in a way that makes sense.  

The platform is in heavy development, with a lot of exciting features coming. You can learn more about it here. You can find many different pods, many of which are capable of talking to one another seamlessly, right here.  

“Well, that’s great and all,” you say, “But what about Twitter?”   For that, there’s StatusNet. One of the most popular StatusNet installations is Identi.ca. It, too, is decentralized, albeit not perfectly yet.  

When you take control of your own network presence and your data, it’s empowering. No one can or will censor you. Your privacy is truly respected, and you are not treated as a product through an “identity service”. It’s great, and if you want to keep the cause moving, you might want to switch to this as a social platform instead of Twitter, Facebook, or even Google+, which will all continue to censor you.  

DIASPORA is even working on an upcoming feature where you can have an account, and if you don’t like the server you’re on, you can download your data and migrate to a different pod on a different server. Seamlessly. And you’d keep all of your friends, posts, pictures, comments, and data.

DIASPORA: Brimming With Potential

I recently read an interesting blog entry over at OpenBytes. In it, the writer raises some interesting points about Diaspora, winning the Facebook war, and much more. He arrives with the assertion that Diaspora is doing too little, and that by the time the project truly comes into fruition, larger social networks will have already squashed all interest. I, for one, would like to say that there’s more to it than infinitives such as “winning” and “losing”, in terms of user adoption.

First, a bit of a background. I’ve been wanting a FOSS social network for years that could replace Facebook in terms of functionality. We already have identi.ca, the nerd-heaven-equivalent of Twitter (many thanks to Evan and his wonderful staff at Status.Net for their continued contributions to the community.) For a while, there were a lot of different platforms: Crabgrass, Appleseed, Friendika, GNU Social/DaisyCha.in, GNUBook (based on Elgg), and several other projects. In the past year, interest has waned on many of them. I was pretty crestfallen to see that the GNU Social mailing list is now stagnant, come to think of it.

Then the code-drop came for the Pre-Alpha of Diaspora. It was clunky, buggy, and had all the visual appeal of a cardboard box. It had one feature: status updates with commenting. Oh yeah, and you could share photos, but that didn’t work half of the time.

And yet, I stayed with it. It’s an exciting network, and it’s an exciting idea. They set up an invite-only pod, and I helped start up an invite pool on identi.ca. In that time, the group grew a lot, and we probably moved close to 200 people onto the network. David Morley also contributed significantly by setting up diasp.org, which is open for anyone to join. He does a wonderful job, and I have to commend him for his continued hard work of contributing to the community.

If you look at all the contributions made by the developers (and it’s more than just the four guys), and the fact that the platform is evolving on a daily basis rapidly, it becomes apparent that Diaspora is not stagnant at all. On the contrary, it’s a very lively development community.

The real beauty of all of this was seeing how the decentralization took place. I was able to add and communicate with friends on Diasp.org from my joindiaspora.com account, even though the two installations were on completely different servers, hosting companies, and technically run by different entities.

There were a lot of hiccups at first, but the daily experience now is so seamless that you really can’t tell that one of your friends is on a different pod unless you look at their social address handle. There once was a time where even looking at a shared photo would result in horrific internal server errors. It’s now fairly seamless, and you can make friends across the multitudes of registered Diaspora pods out there (or unregistered ones, for that matter).

However, I would like to point out a common misconception about DIASPORA. Perhaps it’s just my own personal feelings about the project, but I think this needs to be said. Those inside the network are pretty familiar with this concept.

Diaspora isn’t about beating Facebook or Google+ per se. Sure, we’d love to be able to share a free and open social platform with the world that isn’t riddled in advertising and run by people that have no value for privacy. But, decentralization in terms of Diaspora is a bigger idea than just being on different connected websites.

Enter the SWAT0 draft. It’s still largely in the drafting stages, but it is a concept for a cross-platform communication standard for social networking. Eventually, the hope is that Diaspora users will be able to socialize with users on other platforms (such as Friendika) in as seamless a manner as they can communicate with each other on other servers. In order to “win” the war against Facebook and Google+, it is fundamentally important that not one single platform beats them, but that a collective of any platform can beat them together.

Furthermore, consider the possibilities of internal organizational work that could be handled with private pods. I’m currently in the process of migrating DeadSuperHero onto a different server, and in restructuring process, will probably provide a private pod for anyone that wants to work with me on some of the projects I’ve laid out. Using private pods for organizations could be quite useful, and would further the agenda of decentralization. It’s something I think everyone in the FOSS community should keep an eye on.