The people who don’t want you to run your own servers are the ones who want to run the servers.
People will happily run their own servers if it’s so simple to do that they don’t even know they’re doing it.
You want people to run their own servers? Design and build servers for individuals, not communities and let communities arise from the interconnections between those servers.
Why?
Because that’s the only way we can compete on ease of use with centralised systems. Not by mimicking their complexity but by side-stepping it. There is orders of magnitude difference in complexity between a system designed to serve just one and one designed to serve one, two, or a hundred thousand.
Centralisation thrives on complexity; decentralisation on simplicity.
If we want everyday people to seize the means of communication, we should ensure that those means are easy to hold.
@aral Very encouraging and nice quote!
@aral What I worry about is this: There are many things users want or "deserve" but ultimately, those who do the work get to shape their work. If developers are personally comfortable with editing config files and command-line tools, that's what we end up getting.
@aral I agree, we need to make everything a lot easier to set up , securely, and ensure the person doing so is setting things up securely.
Surely it is possible to build a raspberry Pi image that has everything built, you just insert in to pi (first time) it does the usual resize file system, asks a bunch of easy to answer questions (which you know before hand,, can write down the answers to.
Even better have a online configuration tool that sets up a config file for you, Kind of like the old XFree86 or kernel configuration tool.
@aral I'd say design for three users rather than one.
Individuals running services are often not just individuals - they exist in households or other small groupings, with whom they often share services from the very beginning. Between cooperative housing and inter-generational households, a more than two-adult household with shared resources but multiple semi-independent decision-makers is very common.
@aral My example of a system designed for one is #Grocy, which is totally awesome in nearly every way, but which treats users as places to store different UI settings and nothing more; there is no object ownership or permissions model.
My household is not a nuclear family, and one main reason we haven't switched to the grocy instance we already have running is that we don't want to e.g. [be able to] see roommates' personal chores on the household task list.
@asparagi I understand the use case and agre that it is important but I don’t know how to design for three people. In terms of the architecture of a system I can either design one where a person is in charge of themselves or where someone else is in charge of one other, two other, or a million other people (the exact number doesn’t matter, it only determines the amount of power the person in control has). What I can design, though is a system individuals own/control where they can set the rules…
@asparagi …for their particular three-person household :)
@aral I am lobbying for designing for systems in which multiple people (I agree that the exact number doesn't matter, as long as it isn't special-cased for 2, a la couples' communication apps) are each in charge of themselves, and one or more of them also maintain/support the system.
Assuming there are 3(+) such individuals, one would design for the basic permissions model things/personal data per user, but can ignore e.g. trying to scale to a million users.
@aral Of my personal sample of about 30 households of 2+ members observed closely enough to be able to tell, interest in using tech is distributed more broadly than interest and skill in maintaining it. One or more tech specialists maintain tech for the others, including single-user tech like iPhones, and often set policy for the others.
Household tech seems like the majority use case, over individual, we techies just haven't been seeing it that way.
@aral Just some ideas; I still think you are headed in a better direction than the status quo.
If we have to have a solution that doesn't fit, I'd certainly prefer systems that start with the goal of individual control rather than exploiting herds of faceless consumers.
@asparagi @aral just a though: we may not need traditional (web2/SaaS) permission/security models for household sized services. I have no lock nor safe to "protect" "my" physical belongings from my spouse with whom I live. I may not need software protections either.
Publicly exposed household services must still restric unauthorized (write/admin) access from outside (i.e. internet), but this is true regardless of the number of trusted inhouse users.
@aral So true. But how do we overcome things that are heavily dependant on centralised services? For example push notifications in mobile operating systems. Right now we have no choice but to either use Google FCM, Apple push services or hope for developers to implement their own push services which in mass accumulate to a lot of background activity and thereby battery drain. Almost anything else is easily imaginable in a decentralised manner.