Freedombone Blog

Freedom in the Cloud

The Dark Matrix

While listening to some 35C3 talks I've managed to get the Matrix and Riot apps for Freedombone working on onion addresses. I don't think there were any fundamental barriers preventing this from happening earlier, and so my previous statements about Matrix being tied to TLS and not compatible with Tor were probably just wrong. Since RiotWeb is composed of client side javascript if you're running it within a Tor compatible browser it doesn't care whether the domains being used are clearnet or onion ones.

I expect that federated onion homeservers, forming a "dark Matrix", will work but that there will be issues with federating onion and clearnet homeservers. This isn't unusual, and the same applies to fediverse instances.

Running on onion addresses does provide some security advantages, but also it means that you don't need to buy a clearnet domain, you don't need to forward any ports and so could be behind a hostile internet router and you don't need to care about obtaining TLS certificates. There was a talk on the first day of 35C3 about TLS1.3 which also described the many issues with TLS and what a dumpster fire it is. In a lot of ways using onion addresses is more convenient and with better security properties, so long as you don't mind the long random strings or QR codes.

2018: When giants stumble

It started to ramp up in 2017 but this year has been the first time that "big tech" has had some serious pushback probably since the Microsoft antitrust case in the 1990s over the now abandoned Internet Explorer browser. In mainstream publications criticism of Facebook and Google has been relentless.

I think what will happen in 2019 is that they will launch a PR offensive, so expect to see heartwarming promotional videos about how Google has transformed lives for the better and more sponsorship of "good works" type charities (along the lines of Gates' "philanthropy"). They'll denounce critics as elitist and claim that criticisms of them are "unrealistic", perpetuated by "utopians" or "ivory tower" Free Software people unconcerned with delivering at scale. You'll probably see slogans like this being casually dropped into conference talks.

Both Google and Facebook are sure to continue with their satellite based plans for connecting the next billion people to the internet (i.e. to their walled garden systems). I'm pretty sure they don't want a guifinet style model, and new types of low Earth orbit satellites with higher communications bandwidth and fancy phased array coverage will be able to deliver internet which is not especially fast but maybe good enough for basic services in areas of the world which currently have zero telecomms infrastructure.

In 2019 I also expect that Microsoft will begin doing things to monetize Github and get some ROI going, and that this will cause at least one scandal in which a bunch of projects leave that platform.

This year "decentralization" has become a buzzword, though it has been somewhat muddied by blockchain companies trying to claim the term as their own. Possibly in 2019 FreedomBox might start shipping on hardware, or as an officially endorsed hardware kit, and hopefully this might begin to spread some real decentralization in places where internet coverage is unreliable or non-existant. Also I think growth of fediverse social network systems has now gotten beyond critical mass and so next year we might begin to see some pushback or cooption of that by Big Tech and maybe also by governments.

Why do social networks succeed?

One thing which has been obvious to me for a long time is that the social networks which dominate today didn't succeed because they were technically better than the opposition. For my sins I am still on Facebook, and using that system is quite a battle. The interface is one of the worst I've ever encountered. The Twitter user interface is not quite as bad, but it still lacks features which other comparable systems have.

So why did Facebook and Twitter become the main social network systems?

First mover advantage

I think this is by far the biggest reason. Being first and being the thing which people get habituated to conveys an enormous advantage. Once habituated, even if the user interface is full of foibles, anything else with a different workflow will appear to be wierd, awkward, "not normal" and "hard to use".

Software is complicated and often there's a non-trivial amount of learning to get fully up to speed with how it works. That's a real cost in terms of time and effort, and not something that most people want to do often, or have the free time to do. Also the harder the learning curve the more likely you are to become highly committed to using a particular system, due to the sunk cost.

Mean time to profile twiddling

There's a rule of thumb that I have for judging whether social network software is going to get mainstream adoption and that's the amount of time between thinking "I want to join this system" and having an account and beginning to twiddle with your profile settings (uploading a photo, filling out the bio, etc). If that time interval is more than a couple of minutes then 99.9% of people are not going to bother.

If your system has a name which is hard to locate in a search engine, such as "Red", then this guarantees that the time to twiddling is going to be much longer on average.

If it's hard to find an instance to join or if you have to install an instance yourself then this also increases the time to twiddle by a big factor.

This means that the onboarding process is fairly critical and optimising that for searchability, minimum number of clicks, minimum cognitive workload and so on can have a big effect.

Network effect

This is the thing which everyone knows about. No matter how jazzy the features you're not likely to join a system which your friends aren't on. The only time you are likely to do that is if you don't have other options. If you get purged in one of the many Facebook mass expulsion events, for example, then you're in a situation where you have to try out new things and find a new crowd to hang around with. But most of the time humans are herd animals and will stick with their familiar group.

Freedombone Homepage

One way to get to apps installed on a Freedombone server is to use the FreedomBox companion app on Android. But on desktops until recently there wasn't any equivalent to that.

Now there's the Freedombone Homepage, accessible via http://freedombone/home

homepage

The homepage looks similar to the apps screen within the admin section, but here clicking or pressing on icons takes you straight to the URL of the chosen app. You can set http://freedombone/home, or the equivalent onion address in a Tor browser, to the home page in a web browser for maximum convenience.

Also unlike the admin section of the web interface, which requires a password to log in, any user on the server can access the homepage.

There is a search bar for doing web searches, and the hope is that this helps to encourage you to get out of the habit of always using Google.

Freedombone in 2019

2018 has been a fairly significant year for the project. Interest in decentralized systems and education about the problems of large silo systems has been increasing. Mainstream criticisms of Sillicon Valley companies which began to be reported in 2017 became more trenchant. There were continuing purges against disfavored demographics or particular topics of discussion.

Freedombone, and self-hosting projects like it, are becoming more relevant over time.

Probably the most significant changes to Freedombone this year have been the move out of Github and the introduction of the web interface. The web interface takes the project from being hacker grade to something which potentially could be a mass market product pre-installed on hardware. Some plans for the remainder of the year, and into the new year are:

Transition to buster

2019 is another Debian release year and version 10, nickname "buster", will be in freeze early in the year with the expectation of release some time in the middle of the year. Once it goes into freeze then I'll start on a new buster branch of Freedombone. If things are similar to the last release then it will take one or two months to make a new version, depending upon how big the changes are.

Rock64 build

It's probably possible to make a fully free software build for Rock64. I assumed there would be blobs in the boot sequence, but upon more investigation it looks like that isn't the case and it can all be built with Free Software licenses. As usual there might still be proprietary 3D graphics, but for a server that's not needed.

More apps

With the Debian 10 release it will be possible to enable more apps, such as those which require more recent php or python versions. One example is PixelFed.

Web interface polish

Improving the translations. Adding warnings screens. To make something really usable requires laser-like focus on interface minutiae, including things like color contrast, making sure that things are phrased in a comprehensible way and that the flow between screens is as semantically coherent as possible.

Your homepage

Add a web interface screen which can be set as a browser home page, allowing you to quickly navigate to any of your installed apps, and also do web searches.

guifi.net integration

The guifi.net model seems like a good one, with a foundation as a legal mechanism and crowdfunding of network infrastructure. This would be a good direction for the internet to go in, where it is neither run by corporations nor by the government but instead run by and for its users. It would be nice to have an easy way to set up Freedombone as a guifi.net node.

Compute per Watt

One of my projects for 2019 will be to try running an SBC as a desktop machine, to see what's the minimum amount of electricity I can use and yet still have a reasonably good desktop user experience. Whether this will be practical for doing development on I'm not sure, but it's worth a try. If I can get electricity use low enough then maybe there's a chance that in future I could go solarpunk.

I've set up an initial test using a Rock64 (4GB version) running on an SSD via USB3. The I/O bandwidth might not be quite as good as SATA, but it's still going to be a lot better than microSD or EMMC. I've got an old ASUS monitor, a Kensington Orbit trackball, a Unicomp spacesaver keyboard and a USB wifi adapter (suitable for libre distros). There's a small 4 port USB3 passive hub plugged into the Rock64 and a USB2 headphone/microphone adapter for sound. The Rock64 is configured to boot straight from USB3 and is running Armbian (stretch) with XFCE desktop. It's powered by a 15W (5V/3A) supply which is soldered straight to the board rather than using the conventional 3.5mm socket.

Using a test meter the Rock64 with all peripherals plugged in consumes about 10W. With the monitor it goes up to about 40W, so as expected it's actually the screen which takes most of the power.

For comparrisson when running the desktop in a more conventional way with a circa 2012 AMD CPU (before the TrustZone backdoor was added) takes about 200W of power in total, including the monitor. So running on an ARM board really does make a big difference in terms of compute per watt. The Rock64 is undoubtedly slower than the x86 AMD box, but not by all that much and I think some of the slowness is just because the wifi adapter is 2.4GHz only and doesn't use the 5GHz band.

There is also a down side. Armbian on the Rock64 uses a not yet upstreamed HDMI driver and 4K graphics acceleration might be proprietary although I'm not too sure about that. Anything 3D is sluggish, but since I'm not a gamer I don't really care about that. There's also no Tor browser for arm64, so I might see if I can fix that.