A Raspberry Pi-based Firefox Sync Server

This picture shows a credit-card sized Raspberry Pi server, encased in a transparent plastic enclosure.
This picture shows a credit-card sized Raspberry Pi server, encased in a transparent plastic enclosure.
The Raspberry Pi is an inexpensive and fully functional computer. I use them for server projects, and here describe how to setup a Firefox Sync Server on one.

Data ownership is a serious issue on the internet, especially given the revelations that spy agencies like the NSA have been sneaking into back doors in companies like Google and collecting massive amounts of our personal metadata. While the courts and other US public institutions wrestle with the difficult constitutional issues behind this unprecedented warrantless surveillance, each of us can do things to own and protect our data on the internet. By running our own internet services, we can take data out of the hands of companies like Google and Facebook and, instead, hold that data in our own homes, encrypted, while deciding with whom we share it.

And since I’m sick with the flu . . . this was a good 1-day sick-day activity. 🙂

Continue reading “A Raspberry Pi-based Firefox Sync Server”

Why I will no longer post on Google+

I won’t be posting on Google+ anymore.

There are a few reasons why. The first is that I feel about Google+ the same way – if not more – than I felt about Twitter and Facebook: a company should not be the sole vault and arbiter of my data. I have a little money. I have computer skills. I setup a home server long ago and started running federated social network programs on it, so that I own the data and can share it with whom I want. That’s the way sharing is supposed to work. I’m going to transition from the StatusNet social protocol to the Pump social protocol over the next year, but for now the best way to find me in a safe and comfortable environment is to join one of the federated StatusNet instances and follow me at steve@chirp.cooleysekula.net. Heck, if you want an invite to my own instance of StatusNet so you can make your account, let me know. No promises about stability, of course. 😉

The second reason is related to the first. I want to own my data, and share it with whom I want. For that, if I want to push something to G+, it needs to have a write API. For the two years of its existence, despite no technological barriers to doing this, they have never released a write API. G+ is officially a WORSE walled garden than Facebook or Twitter.

There is a “creep factor” reason as well. I normally dismiss other people when they talk about the “Google Creep Factor,” but today I finally had my own moment.

The revelation of the existence of the PRISM domestic spying program makes me even more sensitive to where my data calls “home.” I am proud to have a private server that is not subject to the more lax search and seizure laws that companies seem to be governed by; in principle, at least, the government must obtain a real warrant to get access to my server, because it’s in my private home, and I am more protected by the Constitutional freedom from unreasonable search and seizure. A friend of mine recently said that G+ told him “his profile was incomplete” and that to complete it he needed to verify a detail that G+ had determined by investigating his friends and habits on G+. He posted the screen capture of the G+ request. It said, basically, “7 of your friends work at RedHat. Do you work at RedHat, too?” Hide-and-go-fuck-yourself, G+.

I’m sorry, but when a social network stops letting you control your data and choose how and with whom you share, and starts actively investigating you and interrogating you for details, it ceases to be a friend to you and becomes a friend to the police or the FBI. It’s just creepy.

These are the reasons you’ll no longer find me posting things on G+.

Triggering the Social Chain

Illustrating our social dysfunction: a graphic from the Friendica.com website.

Social media is frustrating, but not for the reasons you are probably thinking. It’s frustrating because it’s disconnected. What happens on Facebook doesn’t seamlessly make it to Twitter; conversations on Twitter don’t seamlessly appear as conversations on Facebook. Twitter friends cannot talk to Facebook friends when discussing the same topic. Statusnet and Diaspora attempted to do something about this, but this problem has not been solved. I still feel like social media is more like running from one walled garden to another so you can talk to people. It’s exhausting.

Desktop clients like Gwibber attempt to aggregate all of your social streams in one river. But what happens when you’re using a compute (e.g. an iPad) that ISN’T able to run Gwibber or its equivalent? How do you deal with the fact the Seesmic on Android can talk to any Twitter API-enabled site, while Seesmic for iOS cannot?

The answer is: the web. It’s always been the web, stupid.

I recently went through another exercise to try to trigger broadcasts to my social media sites from a single location. I decided, this time, that it would be a web-based location. I was inspired by the blog post in Ref. [1].

The Center of it All: Friendica

I thought Diaspora would be the future of aggregating social media into a single site. I was wrong. Diaspora has been a crushing disappointment, with the outward appearance of the project being a focus on improving the interface without regard to improving connectivity. I still use it, I still run it, but it’s largely useless.

I accidentally stumbled on Friendica last year [2]. I gave it a whirl. It’s open-source and federated, just like Diaspora. I can run my own Friendica instance and connect to any other, just like Diaspora. What separates Friendica from Diaspora is that it can also talk (TWO-WAY!) to Facebook, one-way to Twitter (for now), one-way to a WordPress blog, via email (the most widely used social network of all), and one-way to Statusnet. It can subscribe not just to contacts on another social site, but to RSS feeds. That means I can import a public RSS feed from Statusnet, or import the RSS feed from the arXiv into my social stream. I don’t need a third-party app; this feature is built right into the “contacts” system of Friendica.

Because Friendica can broadcast to major social platforms and receive from a few of them, real conversations can happen. When I “Like” a Facebook post on Friendica, my “Like” appears in my Facebook stream so my friend sees it. When I comment, that comment  goes out to Facebook. Responses come back to Friendica. Friendica becomes an effective web-based social hub.

It even works on the iPad, though for posting media I recommend using the iCabBrowser instead of Safari.

The Trigger

Inspired by Ref. [1], I have now setup a trigger of events to post a single thing to multiple networks. Friendica can post to WordPress, and I already have a WordPress blog that is intended for content produced for public consumption (you’re reading it right now). Anything on this blog I expect to be polished enough to be available on a search engine or a social media site. Therefore, I am not ashamed to push posts here out to social media.

So if I write something on Friendica and push it to WordPress, then I can safely assume I want it pushed to Statusnet, Diaspora, Google+, Facebook, and Twitter. So WordPress is setup to push to Statusnet (via the WP-Status.net plugin [3]) and Google+ (via the WPGPlus plugin [4]). My public-facing Statusnet account, @drsekula [5], is setup to push posts to Facebook and Twitter. In a few seconds, this chain can be easily triggered and I can share content with a wide number of social services.


Feedback from Facebook comes right to Friendica. Twitter feedback will go to Statusnet, but right now Friendica doesn’t have two-way conversations with Twitter. That will likely happen, since Statusnet can do it already.


So I achieved something resembling balance with Friendica. I can post from iPad. I can post to all my social sites from WordPress itself, or use Friendica. Both interfaces work on mobile devices like Android tablets and iPads. There are even apps for WordPress for both platforms, although the web interface is just perfect. I can see conversations on Friendica from my Facebook streams.

The icing on the cake is the email connection in Friendica. My parents mistrust Facebook, and refuse to get accounts. I agree with them. However, they mistakenly lump privately run open-source social services, like Friendica, with corporate media like Facebook. But, they trust email (even though more damage has been done by email than by social media services because social media services are walled gardens and email is TOTALLY open). I can easily communicate public content from Friendica to my parents using the email connector.

Friendica is still under development, but it lets me poke holes between the walled gardens and at least start sharing more easily.

[1] http://blog.farrent.de/?p=23

[2] http://friendica.com/

[3] http://wordpress.org/extend/plugins/wp-statusnet/

[4] http://wordpress.org/extend/plugins/wpgplus/

[5] http://chirp.cooleysekula.net/drsekula/all