By using a silo we exclude children

Teckids e.V. held their annual summer camp for kids between 9 and 15 years. This year, after we started introducing Matrix and Element as a chat platform … Some got really excited that they could even change or add features to Element … Unfortunately, Element is developed on GitHub, so the potential young contributors are locked out by the exclusive Terms of Use there. We are trying to reach out to Element HQ to find a solution.

Klampfradler writing in This Week in Matrix

Ironic but all too common: a Libre/FOSS project falling foul of the very issue it is trying to overcome. For this post, however, let us not focus on this particular situation. Let us instead learn from it how we can better explain why we need Matrix and other Libre systems.

GitHub only allows users over a certain age. Initially when we adults sign up, this seems like no big deal: it sounds like quite a young age (13) and it says it’s to comply with the law of the USA, which sounds obvious and unavoidable.

This is a great example of how we restrict other people’s freedom every time we choose a silo. We start off thinking the silo is reasonably inclusive and gives enough freedom for what we need. After all, it’s one we use, so by definition it’s good enough for people like ourself. But:

  • everyone we want to connect with has to obey the same terms, and
  • we don’t have any control over those terms.

Even when it’s “our project”, we can’t choose who we are allowed to collaborate with.

What if our situation changes, perhaps a long time later? Perhaps our friend has children who under the supervision of their parents are competent and keen to code. We might ask them to use their parent’s account. GitHub’s terms forbid that too. Anyway that would mean they couldn’t keep a record of their contributions linked to their own identity.

GitHub, being a silo, restricts the freedom of its users and the freedom of our collaborators and would-be collaborators.

By contrast, when we have control of our own Libre system, such as a self-managed GitLab, then we can set our own terms and conditions.

That’s a key benefit of using a Libre system.

It’s the same in any Silo-vs-Libre domain: Zoom vs Jitsi, WhatsApp vs Matrix. When we use the silo, we restrict not only our own freedom (which we may not immediately care about) but also the freedom of those we contact. We probably care more about the freedom of those contacts who are our real-life friends, family, and colleagues, who in turn care about their own friends and family.

In trying to convince people to switch to Matrix and other open tech, it can be hard to find “selling points” that resonate with ordinary people who are not already familiar with these freedom issues. As above, they think the silo they are using gives them as much freedom as they need. This point about how it impacts those they care about is one that the general public may be able to relate to, and recognise as important.

Let’s use this point to spread the message:

By using a silo we exclude children

Matrix — Why?

A collection of articles

Dear politicians of the EU, it’s time to decentralize the internet” with a fun video 600 TOMATOES explain how to fight BIG TECH introducing federated inter-operable messaging — NoordStar, 2021

WhatsApp and the domestication of users with case studies Mozilla, Signal; followed by Keeping platforms open with case studies XMPP, Matrix — Seirdy, 2021

We Need Alternatives to Big Tech. These Decentralized Tools Might Be The Answer. highlights Beaker/Hypercore and Matrix — New America, 2021

Best WhatsApp alternatives that respect your privacy — Matrix is the only one which allows users/groups to control their own servers/services — ProtonMail, 2021

Matrix for …

Up-Scaling Infrastructures for Open ScienceGeneration R

Introducing Trax Cam

I made my first Android app. Well, I didn’t write it from scratch, I took an open source camera app and just renamed and modified it a bit, and rebuilt it.

I called it Trax Cam.

It is a fork of Open Camera. The initial, test version of Trax Cam makes just two small improvements over Open Camera:

  1. improving the visual difference of the shutter buttons between video and photo mode, recording and not recording, by contrasting colour and style;
  2. not forgetting the zoom level when temporarily switching to another app and back, switching between photo and video modes, and the like.

Impressive? Is this everything you have ever wanted from a camera app? No, I didn’t think so. That’s not the point of it. Dear reader, it’s not for you. Not yet, anyway. Sorry!

Trax Cam is not yet intended as a product for ordinary users. Rather, the purpose of this project, at least initially, is as a learning exercise for me. The status of it, at the time of writing, is it is stable, being based on a stable version of Open Camera, and I am running it as my main camera app on two different phones, but I am not committing to making further fixes or updates. I might or might not continue developing or updating it. Switching to other projects will give me a broader and probably more useful learning experience.

Default Camera for /E/-OS

/e/-foundation‘s /e/-OS comes with OpenCamera as its default camera app. I had previously installed OpenCamera on my main LineageOS-powered phone, alongside the default LineageOS camera code-named ‘snap’.

I would sometimes switch between OpenCamera and ‘snap’. I like different things about them, mainly the range of options in OpenCamera and the simplicity of ‘snap’, with neither of them managing to bring the best possible combination, and both still having annoyances and room for improvement.

It was while evaluating /e/ that I noticed again several of the shortcomings of OpenCamera, and decided it could be time for me to do something about it. I had some ideas noted in my head, and have now written them down in a bug tracker.

Trax Cam Issues: https://lab.trax.im/trax.im/traxcam/-/issues . Issue #1 is Remember my zoom level , #2 is Boldly indicate photo/video/recording states (both still “open” as I am not satisfied that I have yet completed them as well as could be done), and I have opened several more.

At the same time, I discovered /e/-foundation is recruiting among other positions a Camera developer: “[You want] to make open source camera apps as good as high-end camera apps?” (If you are an “experienced (5+ years) Android developer”, check it out.) It’s good to see that /e/-foundation recognizes the need and seems to have some resources to tackle it.

In my opinion, one thing /e/ could do to encourage volunteer developers to develop OpenCamera (or another) in a useful direction for /e/ and other libre Android uses, would be to publish a road map or a prioritization of issues for what they consider needs to be done. I feel that projects providing a summary of what they want done is often missing and often a surprisingly effective driver in open source development. Developers tend to be quicker and more efficient at implementing something that is at least loosely specified (along with rationale to explain why) than creating something that they need to invent from scratch.

Comparing with Other Cameras

Besides OpenCamera and Lineage ‘snap’ I also briefly tried FreeDCam and OxygenOS camera (proprietary). Those each have some very slick UI designs which bear studying and would be nice to bring in. In particular, if I recall correctly they both use swipe to review the last and earlier taken pictures, which seems to me more intuitive and easier to use.

I noticed the OxygenOS camera used slick-looking rotary dials for analogue settings such as exposure compensation. I really liked this at first sight. In use, I found their behaviour a bit fussy and skiddy, easy to leave it on a random in-between value, hard to return quickly to the previously used value. It would be great if we could create something along those lines of analogue beauty, but with more positive and robust behaviour to set and leave a desired value. For example, I think it is common and so needs to be easy to switch between “auto” and the last used non-auto value. (Not just for camera controls, indeed, but for all kinds of settings in all apps.)

Available on My F-Droid App Store

You can try out Trax Cam if you like, even though it is not (currently) aimed at general use. https://fdroid.foad.me.uk/fdroid/repo/im.trax.cam_80.apk is a direct link to the installer file for my initial test version. It’s not published on Google Play store. You will need your “install from unknown sources” option enabled in Android settings.

I also put up my own F-Droid app store, and put Trax Cam up on it, so we can install it on phones through the f-droid app. This too is not currently intended for general end users. However, you are welcome to try it. First install the f-droid app (https://f-droid.org/), then add my repository’s URL (https://fdroid.foad.me.uk) under settings, repositories, add.

If you are unfamiliar with F-Droid, it comprises:

  • an Open/Libre app store system by which anyone can set up and serve their own app repository, and anyone can browse and install apps from such repositories; and
  • the F-Droid app, for browsing and installing apps from any such repositories; and
  • a repository of Free/Libre apps for Android, which is the default repository that the F-Droid app connects to until you tell it about other ones.

Putting up my own app store is part of my ambition to support independent creation of free/libre software and self-owned services.

Why Friends Ask Friends to Matrix Me

Matrix is a messaging eco-system that’s Open, Libre, Free as in Freedom.  We can use Matrix our way, while our friends on Matrix can choose to use a different app that suits their tastes, and a different service provider with different terms and conditions that better suit their needs.

Like the personal messaging silo mega-corps (WhatsApp, Telegram, Signal), and like business messaging silos (Slack), Matrix gives us:

  • text messaging
  • pictures, video
  • voice and video calls
  • and more

Unlike the silos, Matrix:

  • encourages variety and competition in apps and services
    • including paid, free, and open source ones
  • does not require a phone number or phone signal
    • for example: students can use matrix over campus wifi
  • enables you to choose or create your own ToS
    • for example: your friend may permit their children to have accounts
  • supports using multiple devices at once
    • for example: use matrix on your phone and laptop
  • enables you to Own Your Own Identity
    • identify yourself with a personal or family domain name
  • is a great fit for a school, a church, a business, or an army
    • use the organisation’s existing user accounts, data storage, privacy policies

Open, Libre, Free as in Freedom?

Think of email.  No one company owns the rights to the email system or controls what you can and can’t do, and who can and can’t have an email address.  Think of the telephone system.  While one company can operate a part of the service and put their branding and their terms and conditions on the user who signs up to their service, they do not prevent you from calling and receiving calls from any user who signed up to a different telephone service operator.

Matrix is in this way like email and telephones.  If you don’t like how your provider operates any more, you can leave them and sign up with a different provider, and, the crucial part, still talk to your existing contacts, no matter which provider they use. [1]

As an alternative to using one of the paid or free service providers, anyone can also run their own Matrix “home server”, privately or commercially.  This is a particularly good option for an independent or public organization such as a school, a church, or a business, which by running their own server can benefit from defining their own terms and conditions, linking the user accounts to their existing user account system, adding their own add-ons to their service, and controlling where the data is stored such as keeping it within their organization.  This is a “can do” in both senses of “can”: they are allowed, and they are able.  They are allowed, because that is a core tenet of the Open eco-system, and they are able, because it requires only a modest level of expertise and cost.  At the larger end of the scale, one can rent an organization-scale matrix service, while at the smaller scale, a technically inclined friend can run a server for a family or an individual.

“What’s So Wrong with Using WhatsApp?”

We hear a lot about “privacy issues” in the news.  Often we feel these issues would not practically impact ourselves.  We understand they could be a problem for some people who are already vulnerable, people involved in something dangerous or living in a country whose law-keeping and culture aren’t like ours.  In our western society of literate adults, we feel for the most part that we have nothing much to hide, little to worry about if someone working in an internet data company can sometimes read some of our messages, because we feel secure enough that appropriate protections are in place.

Let’s look at an example close to home.  In our sector of society it can feel like WhatsApp is free to use for us and all our friends.  The easy assumption is that anyone not already on it can “just” sign up so it’s available to everyone in our social circle.  But look deeper.  Let’s consider just one of the several problematic issues.  I want to share messages, photos and video calls with my daughter.  Let’s say she is a technically literate 8-year-old called Lisa who has been using my WhatsUp on my phone under supervision, and it’s time she had her own phone.  We could sign her up for her own WhatsApp account, but that would be breaking WhatsApp’s terms of service because she’s under 16.  What would happen then?  Likely nothing much to begin with — the megacorp doesn’t seem to check — but according to their terms they may terminate her account at any time.  And they would treat it just the same as any adult’s account, sharing data with Facebook and introducing advertising and paid services into it whenever they want.  Is this how I want my family’s private communications to be run?  So what is a father supposed to do, when friends tell me I should “just use WhatsApp” to keep in touch with them?  Try to keep a separation between messaging contacts who use WhatsApp, and private conversations with my family and their children in another app?  That’s really awkward.  It’s the current broken approach, the only choice we have had so far.

It’s not about me, and it’s not about you: we are both able to use WhatsApp, you and me.  We’re all right, Jack.  It’s about what we do to our friends when we expect them to use WhatsApp.  We force our friends to split their communications into two groups: those using WhatsApp and those who shouldn’t.  We restricts our friends’ freedom to manage their own communications the way they want to.

By contrast, if I ask my friend to use Matrix to talk to me, I grant them the freedom to use the same service provider as me, if they wish, or a different one if that suits them better.  I grant them the freedom to use any matrix-capable app of their choice, connected to a matrix server with terms and conditions and features that suit their needs.  I grant them the freedom to talk privately with their children using the same platform that they use for talking to me, without forcing on them the same account provider or the same terms and conditions that I chose for myself.  Going a step further, if I rent or run a Matrix server for my family, I can write my own terms and conditions which say my children are allowed to use it.  They might not be allowed to contact users registered on certain other servers, or on any other servers at all, depending on what I choose.  The point is, in an “open” system, I can do this, in both senses of “can” — it is legally allowed and I am practically able to do it.

“Why isn’t everyone on Matrix then?”

Simply because it’s relatively new — having begun around 2015 and become mature enough for daily use by ordinary people around 2020 — and of course because the commercial silo systems have a huge market share, a huge advertising revenue to spend on self-promotion, and huge vested interests in users remaining locked in their silos.  In late 2020 there have been proposals in the EU Commission to force megacorp silos such as these to inter-operate, but the proposals (in my opinion) are unlikely to come into force strongly enough for many years.  The situation was the same with telephones a hundred years ago.  Many incompatible services.  Eventually regulators made them inter-operate.  It took years.  E-mail too suffered from some competing incompatible services in its early years, until the advantages of using the standard interoperable email system led to it becoming universal.  E-mail is the success story of the (last) century, having been an Open standard from the outset, and this is why today email not only endures but is still the bottom line, the universal standard for digital connectivity with everyone.

Initially unexpected by the original creators of Matrix, but easy to explain with hind-sight, Matrix has taken off fastest in the public sector.  Enlightened governments are keen to rid themselves of dependence on the American megacorps.  The French civil service, the German military, and German schools and universities were some of its earliest large adopters, keen to publicise their successes, while UK and US and other governments are said to be investigating more quietly.  As it is an open system, their involvement funds improvements that are shared for everyone’s benefit.

“How can I get started?”

You need two things: an account (registered on a server), and an app (that’s the client-side software).  You get to choose both.  Unlike a silo, there isn’t one server and one app.  You get to choose a server that suits you, paid or free, with terms and conditions that you like; and you get to choose which client app or apps you like to use, perhaps one aimed at friendly private use or one aimed more at business styles of use.  You can use multiple apps at the same time, perhaps one on mobile and one on your home computer, or change them whenever you like.  In this sense the openness of the Matrix ecosystem is very much like that of email.
These are my top recommendations for a Matrix client app. Try both, or whichever sounds more to your liking, or look for alternative clients if you prefer.
  • FluffyChat
    • iOS and Android apps; https://fluffychat.im/web/ in a desktop web browser
    • a simple and friendly style, ideal for private individuals chatting with friends
  • Element
    • iOS and Android apps; https://app.element.io/ in a desktop web browser
    • aimed at a wide audience from private individuals to business users
    • a bit complex for a casual user, especially in settings, but very usable
    • written by the founders of Matrix, it is the most widely known client

I would suggest FluffyChat if you are new to Matrix and want a simpler getting started experience, and expect to have under ten chat rooms for the time being; or Element otherwise.

You have the freedom to switch to another app at any time, keeping your same existing user account.  In addition, these two client apps are both Free (as in Freedom) Software, so you are free from the risk of the creators insidiously adding advertising or anything unwanted over time, as other people can and will fork the software and create new free-from-whatever versions of the apps if the original creators should ever try doing that.

There are several providers and ways to register a Matrix account, both paid and free to use.  The two main options are either to rent your own server (about £10 a month at the moment supporting several user accounts) or to get a free-of-charge account on a shared server.  Some server options are loosely coupled or bundled with a client — for example, if you rent your own matrix server from Element, they give you an Element web-client to use with it — but you don’t have to use them together, you can just ignore one and use something else.

My top recommendations for registering a new account are:
  • matrix.org — free; the biggest general-use server, run by the Matrix founders’ company for public use; has sometimes suffered periods of problems like extreme slowness due to overloading, and spam, but mostly is fine; limited to main Matrix functions and certain bridges
  • get your own server (various ways); complete flexibility to run add-ons is possible of course

If you are new to Matrix, I suggest getting a matrix.org account first, while keeping in mind that you should later look into getting your own domain name and your own matrix server/service tied to your domain name.


Footnotes:

[1] If you use your own user identity (@me:mydomain) rather than borrowing one from the service provider, then it’s even better: when you switch providers you could keep your identity. You can use your own user identity currently by renting or running a personal matrix server. (I hope to see easier and cheaper options becoming available soon.)

 

Matrix needs: Bring Your Own Domain

Owning Your Identity in matrix is currently not as cheap and easy as it should be. Hopefully this will be changing in the not too distant future.

The current options for using your own identity in Matrix are, roughly speaking:

  • rent a personal matrix homeserver as a managed service “in the cloud”
    • around £1 a month for your own domain name, plus
    • around £10 a month for the matrix service
  • run your own server
    • around £1 a month for your own domain name; plus
    • rent a virtual server from under £5 a month, or provide your own; plus
    • your skill and time

The sticking point is that currently you have to run a whole matrix “homeserver” for each DNS domain name that you want to use in a matrix user id. To register an account on the matrix.org server, for example, you must use an identifier like @some-name:matrix.org which is an identifier owned by matrix.org. There is no option to Bring Your Own Domain and register yourself as @myself:myself.org on that server.

The one domain per server model works well where the users are already members of an organisation with its own domain name, such as a government, a school or a business. For the ordinary individual who wants to own their own online identity by bringing their own domain name, however, the requirement to run their own matrix homeserver is currently too onerous.

The need for one (virtual) server per domain is a limitation of the current server software. It could be lifted in future. Then we could see commercial services offering Bring Your Own Domain accounts on their servers. This would be cheaper to run than a server per domain, and would bring a useful hybrid model of:

  • terms and conditions set by the service provider; with
  • self-ownership of one’s matrix account’s identity, giving the ability to move one’s account to another service provider with different TOCs, (or, in the extreme, self-hosting) without any loss of service or contacts

The matrix community needs to break that barrier somehow. Options include:

  • making tiny simple homeservers so it’s no burden for each user to run their own;
    • needed also for p2p Matrix, and beginning to happen with Dendrite
  • making homeservers that offer a Bring Your Own Domain option.

Besides Dendrite, the Matrix community has some other small-footprint homeservers under development which may be ready for use within the next year or so. I hope we will see Bring Your Own Domain (aka multi-tenant) capability being developed in at least one of this new generation of homeservers.

The good news is the options are looking likely to open up. The crucial fact is that you can own your identity in matrix, already.

Related:

Matrix: Understand Data Deletion for SysAdmins

Deletion is an interesting subject. It’s not as simple as “either it’s deleted or it isn’t”. Matrix is distributed. In order to reason correctly about this stuff we need to understand the different kinds of deletion in principle, as well as how they are implemented in matrix in practice.

This blog post does not (yet) provide a complete answer.

Continue reading “Matrix: Understand Data Deletion for SysAdmins”

Who Controls Your Online Identity?

How do people identify you online?

  • some-name on WhatsApp.com / Facebook.com / Twitter.com / etc.?
  • some-name@gmail.com / @hotmail.com / @outlook.com / @icloud.com / etc.?

Whether we call these our id’s, addresses, accounts or handles, most of our identifiers look like these. The bad news is these identifiers are not ours. They don’t belong to us. We are just borrowing some-name from some.company .

If they so choose, some.company can block our account, or start charging for it, or give it to someone else, or change how “our” account works, or start posting adverts on it. They can mine “our” identifier for marketable metadata about ourself and our contacts, or censor what we can and can’t use it for, or sell the management of it to another company, or delete the data we stored there, or do anything else they choose. It’s neither legally nor practically ours. It’s one of their business assets, and they owe us no loyalty whatsoever. If the service is “free” then we and our attention are the product being sold to their real customers such as advertisers. [1]

Most of us are trusting people expecting to live in a stable world. We trust it will just continue to work, for free, for as long as we want it. Especially if we’re the president of the United States of America [2]. Oh, how the world proves us wrong.

Owning One’s Identity

There is a better way.

By owning our identity, we can set our own rules when a silo’s ToS do not suit us. For one example among many, some of us might want to talk to our children. If I am using WhatsApp, signing up my children is forbidden. I am not allowed to use the same silo to talk to my children that I use with my adult family and friends. But when we run our own matrix server for our family, then we can give our children their own accounts, under our supervision, and exchange messages and photos and make calls with them.

There are two sides to owning our online identity (or identities). We need to have both legal ownership — to be allowed to use it — and practical ownership — to be able to use it.

  • Legally owning our identity means we must use identifiers such as myname@myname.org where the domain name part (myname.org) is registered to us personally, rather than borrow a name that is issued by some.company and therefore remains under their control.
  • Practically owning our identity means we must have the ability to communicate without requiring both ourselves and our contacts to be customers products of some.company. Our communications technologies need to be “open” in the sense of freedom-respecting and universal, like email is, in contrast to the “silos” or “walled gardens” like WhatsApp, Twitter and all the rest whose users can’t talk to anybody outside them.

Legally owning our identifier means retaining the rights to that identifier, even when we change providers of any services. In practice today we are talking about identifiers based on DNS domain names. Years ago, domain names like example.com were the preserve of companies, universities and governments, but nowadays anyone can register one for around £10 to £30 a year. A domain name remains ours for as long as we pay the domain registration fee. The domain name registrars are strictly regulated, giving us about the highest level of guarantee we could achieve in today’s world. (In principle of course they could be overruled or changed by governments, as could anything.)

Practically owning our email is quite straight forward, because email is based on standards that are non-proprietary and universal. (Companies like Google have tried to put their own hooks and claws into the process but they have not gone quite so far as to make gmail incompatible with standard email, thank goodness.) Because of this, we can independently register our own domain, choose our own email address at our domain, and rent an email service from an independent email service provider (such as Fastmail) and attach it to our email address(es). We can even copy our email history onto it, set up forwarding from the old email account to the new one, and so on. And the important part about “ownership” is if this rented service should ever become unavailable or unsuitable, we don’t lose our email address, and we can rent an equivalent service from some other company, transfer the address, and so keep on using our own same email address without our contacts even noticing the transition.

Practically owning our social media and instant messaging had been not impossible but mostly impractical until, at last, around 2020 there has been massive development and uptake of freedom-respecting and universal options, and their names are now becoming well known. The ones I want to call out are:


Footnotes:

[1] Even if we were to pay rental for one of these silo services, that would not change much: they tend to offer no real service level obligation, and can still stop it or change it or do pretty much as they wished in all other regards.

[2] I wrote this article at the start of 2021, after President Trump’s Twitter account had been “permanently suspended” (cnn.com, nypost.com).

[3] Who Controls Our Data? A Puzzle.

If FOSS community then Matrix

If you’re a member of a FOSS community and thinking of using something like Slack… pause!

On behalf of FOSS fans everywhere: please seriously consider using [Matrix], the Open federated standard system.  It’s perfect for this sort of community, with bridges to Slack and IRC and many other systems.  In the last two years Matrix has leapt ahead of other contenders like XMPP and is becoming the Open system of choice adopted by organisations from Mozilla to universities and governments.

It’s a great platform for integrating the chat side, and even the presentation side through Jitsi, of online events.  The matrix devs do it and wrote a blog post describing how: https://matrix.org/docs/guides/running-online-events

Before any of us risks pushing another FOSS community into the proprietary silo trap, let’s pause and consider how we all would in fact be paying for it if it’s “free as in beer”.  I’ve been watching this space since five years ago when the FOSS alternatives were weak, and now I’m really excited to see that, with the overwhelming global need for such a thing, Matrix has grown strong and is accelerating rapidly.

I would strongly encourage the ASF membership to deploy their own Matrix server ASAP as it’s the perfect fit for this sort of organization.  I run a personal Matrix server and benefit from modern multi-device single-app access to all my IRC messaging (via a public bridge), all my WhatsApp messaging (via a private bridge), some private notes like diaries, as well as federated native Matrix messaging.

I can give more detailed advice and put you in touch with specific contacts.

– Julian

See: