Hello again.
"The sad truth I’m afraid is that only so many developers are in it for the freedom of the user."In my previous letter I made an effort to respond more or less point-for-point, but this time I will probably be more conservative. This is as much for your convenience as mine.
I'm not even spellchecking this one, Roy might fix a couple things if they have a red underline. This is definitely more of a letter than an article, and I've spent (at least) four hours writing it. It will have to do, there are probably a fair share of typos. It was worth the four hours, at least for me -- and this also includes eating and making tea.
...
"I understand what you’re saying regarding [Alex] Oliva [who] won’t fork, thus Linux won’t be fixed, and that integral large packages (perl, python) can’t be forked, and too few devs to fork halfbuzz, plus the Gnu Project aren’t making the effort to fork what they could."
I'm not sure if it's whether they could or simply ought to, but whether they are able or not I consider it a problem that they won't. In (very) slightly better news, there are rumours of Raku (Perl 6) leaving GitHub, which would help if it actually happened and GNU (particularly Automake) eventually moved from Perl 5 to 6. It's far too early to get excited, but there is a glimmer of potential hope there.
...
"Stopping paying attention to users/devs who ignore problems, who don’t take things seriously, for example, is very uplifting to realise further, too; no more writing to some main linux youtubers (nb not gardner) and receiving no responses, for example! To read that you too are fed up with the attitude to users is very heartening, as nobody says this stuff."
The sad truth I'm afraid is that only so many developers are in it for the freedom of the user. We have known about Open Source for many years -- I actually started as an Open Source advocate, falling for the hype that it was "like Free Software, but more reasonable" -- but the "reasonable" part is false compromise with corporations that do not care about users -- in fact they care more about maintaining control.
Free Software tries to minimise conflicts of interest (or at least it did once) and Open Source replaces the "sacred cow" of freedom with the sacred goat of courting the interest of monopolies. They pretend that it is not about ideology, but their passivity and neutrality is a facade; you may insult users all you like, and they will not stop you. When you insult a corporation, the gloves will come off.
Due to this manufactured divide (couched as so many are, as a call for "unity" -- a unity where you are expected ignore your needs and values, and sacrifice them for the "greater good" of your opponent...) there are many developers who pretend to care about things that they clearly do not.
They care about users, as long as users only speak when they are asked to. They care about users who toe the lie.
Sadder than this is the fact that Free Software has failed to hold down the fort. These apathetic devs who are only interested in development (not freedom, or anything beyond creating software for the sake of whatever) are only the majority, they have moved into key places and even worked repeatedly to usurp GNU development.
Free Software seems to find its hands tied when these problems arise. Among us there are a small handful of people calling this for what it is, but there are not many.
...
"No longer feeling like some kind of lone crazy person, lol. And when people see mirrored their own real feelings, they definitely feel they can relate, and it can move them to be part of things."
That is one of the best things we can do, is let people know they're not the only one. If we work towards that goal, we may find that there are a few more of us than we counted so far.
I'm not the only person talking about "Free Software 2.0", and for me it's not about "bigger and better than ever" (though that would be nice) it's really about bolstering the defences that have failed along the way. It would be nice to see Free Software rise again like the phoenix. It would, however, require a certain degree of general awareness that I don't think we have reached yet.
You can still choose to be a pessimist or optimist about it. In my opinion we need pessimists, though it's not difficult to make the argument for both.
...
"There’s been an unnerving journey of realising what’s going on, but, if the only people talking about this stuff are saying it’s all too rotten to fix, that has to be looked at seriously, along with my own experiences, observations and concerns to date."
Off the cuff, the first metaphor that comes to mind is dentistry.
Dental medicine and the technology around it has come a long way. We can remove all of your teeth, if necessary, and replace them with implants. If your enamel is weak and the decay is bad enough, implants provide an ideal solution if money is no concern; in the States they cost thousands of dollars each, and if you are under 35 you could find yourself having to replace one or more of them even before you can retire.
A more practical and much cheaper (not to mention less invasive) solution is dental crowns, but these have their own drawbacks. Like implants, they are not as durable as real teeth and even a habit of almond eating can cause a crown to come loose or even break. At several hundreds of dollars each, getting dental crowns means your bite will never be quite as strong ever again -- and having to visit the dentist to glue your crown back in is inconvenient at best.
Mostly people go with ordinary fillings when possible, but if decay settles in deep enough it can necessitate a root canal -- which will often weaken the tooth enough that a crown is then required. If there is not enough tooth structure left to support the crown, you are left between the choices of an expensive implant, a partial tooth, or a hole.
The best plan of action is really on a tooth-by-tooth basis, and the same logic applies to Free Software projects. The ideal would be to preserve and salvage every project -- but we can't afford it in terms of the number of developers we have on our side. Mono is a great example of this; in our dental metaphor, Mono is not so much a dental implant as a false tooth made of rock hard toffee and calculus. You wouldn't want to surgically install such a thing deep inside your gum tissue.
Wisdom teeth cause more problems than they solve, and when they are extracted nobody tends to bother replacing them with straighter or smaller implants. You're simply better off without them.
If we had enough developers, it would be like the ability to replace all of our teeth with implants. Instead, what we have is like trying to replace all our teeth while money is always tight before the fact. Developers are spread very thin, and many of those (as you've noted) do not care in the first place.
People try to do things like move to GitHub to "gain more attention from developers" but they mostly gain the attention of people who will sacrifice more freedom, while caring even less about users.
The point is that (just as a prominent example) Linux is not healing, it is in decay.
If the goal is to salvage all free software, and we don't have the budget (in terms of people who care) then I would argue that the best triage is to start with projects from developers who are NOT working against you and once our base is solid enough, build onto it by bringing in more of what we can manage.
In other words, we start with the things that require the least amount of salvage work and build on from there.
I have already pointed out that BSD is less trouble (for users, for developers) than trying to salvage Linux.
The difference between my position and yours is that I start with how much trouble it would be to salvage, while you (seem to) start with how much trouble it is to use.
I really do get that angle -- but it takes me back to a time when I thought I couldn't get GNU/Linux working so I had to use Windows. In fact if you go back not very far (less than a year ago) I was making the same argument about BSD -- I want to use it, but either it's not ready or I'm not.
A friend of mine who may have already started to dabble with BSD, upon learning that I had finally cleaned Linux off the last PC it was running on said something to the effect of "Wow, I am NOT ready to do that."
Neither was I, so I worked on it.
This is what I advocate, but I get that not everybody is ready to do it. I advocate it because it's ultimately more likely to work. The more people complain about the direction Linux is heading in, the closer they are to throwing their hands up and switching.
I'm acting as a scout here, while many others have already made it there and set up camp years ago.
...
"A main thing I live by is that there’s a time comes when stepping out and away from something becomes critical; that frees up energies for what is timely and important to move onto, and to not step away would jeopardize what CAN be safeguarded and built in the new space."
Exactly this.
...
"You asked directly what sort of hope I want to see … really clear bottom-line summary about how things are, which the letter from you is already covering more. Also, what people can do, and HOW (for non-techs), in order to maintain the freedom/privacy/values that are so important."
That's an ongoing discussion for sure -- and it's such a big question "like 'What's the meaning of life?'" that there is no possible way that everybody is going to agree.
I like big questions. If I were good at math, I would probably be interested in physics -- both Richard Stallman and Bill Gates did extremely well in their Harvard physics classes, but both had other interests that kept them from becoming physicists.
I'm terrible at math, so instead I approach the universe with philosophy -- I have also tried to understand the world through the many various lenses of mysticism and religions (I'm agnostic). Modern science of course is essentially by definition uninterested with such methods, and probably should be. But scientists are people too, and Newton for example was very interested in looking at the world this way.
Buckminster Fuller gives a long series of talks (you can find them on the Internet Archive) where he tries to derive rules for better engineering by staring with the entire universe and building laws from there.
Both science and mysticism have toyed with the idea of an almost pantheistic-sounding "holographic" reality, where every single thing ultimately contains everything else -- like a giant, fractal, permeable Klein bottle.
To me, this is the conceptual "shape" we want for a community that's capable of figuring out answers to big questions.
Not a rigid hierarchy, not a "flattened" hierarchy that pretends everybody is the same (but still has a few people at the top lording over them, just to be sure) but a sort of holographic flux. The good news is that long before people figure out what the hell I'm talking about, they will have already sorted out their own words to describe it.
We aren't talking about a utopia so much as a society, where not everyone has their thumb up their ass.
...
"I don’t mean about coddling infants, as you reference, but those who don’t have any tech DNA yet want to get on the BSD ship/into the new place, to support free software, respect, privacy, care about users, but know they just can’t get their head around that without clear instruction."
Not only do I agree, but it's actually built into the ten "THRIVE" guidelines as number 6: "Without some greater commitment to the needs and education of users, Free software will soon lose too much ground to corporations that falsely pander to them. This is not a call to make everything ‘user friendly.’ As a user, you are free to develop on your own terms. There are still areas in which progress could be made regarding development."
When I say "This is not a call to make everything ‘user friendly.’" I don't mean that making things user friendly is a bad thing, only that it can't take over everything. This is a caveat; the essence of guideline number 6 is that we should give clear instruction to "non tech" people.
However, lurking at the core of the "non tech people" issue is the true nature of the issue itself.
Non tech people exist, and I've done a lot of work with them directly: pensioners, the iconic and stereotypical
"grandma" everyone mentions, I've worked with literal grandmas -- the homeless, so when people start talking to me about how x or y group can't do z I at least have first-hand experience in such scenarios. It's not a statistical cross section but then a lot of what we are dealing with here is the mythology of the non tech person, which places certain designs and developers in the role as savior.
It's not that non tech people don't exist, it's that they are used in an ongoing mythology that both opportunistic and sincerely well-intentioned people rely on as a guide for making things more "user friendly".
It's a mythology because it is largely about storytelling and post hoc justification -- it is less about the real people in question.
In short, we create designs and then we say it's for non-tech people. Our first goal should be to find these non-tech people and better understand their needs.
I'm using a GUI right now to type this. I could also do it from the VT, without a GUI. As it happens, my particular workflow seems to be at least as well suited to a simple, Notepad-like graphical editor than Emacs, Vim or even GNU nano. But it also has commands that I can type on the next line and run with CTRL-T -- including shell commands.
All the power is right there, in this very application, but if you don't type shell commands and hit CTRL-T you probably wouldn't even know it could do such a thing. It looks like a plain text editor, with a file menu, a little dialog box that comes up to open or save files, etc.
It can't just be about design though. It has to be part understanding, part design, part education. Most people who talk about being "user friendly" are cargo-culting the understanding part, and act like education won't be necessary, so people still don't learn. Ultimately users get dragged through one design fad after another, and this is what Microsoft calls "user friendly".
...
"The corporate are dumbing people down by the year, ‘bread and circuses’, ‘leave it to us’, ‘we make your life easy’ (as we siphon off ALL your data and make money) … they want people’s energies, power, everything, whereas what I mean is what empowers people, the ladder that can get them into that place, where they can then do what they do best, contributing in other ways."
Again, you've got it exactly.
"You can’t give a jet to someone and expect them to fly it, but if they’re a passenger on the jet, they could be a doctor, a lawyer, anything non-tech, but still play a critical part."
This is also true. But so is the fact that with the right technology, we could enable virtually any person to fly -- with some sort of personal aircraft. This would lead to all sorts of questions about how to make the technology safe enough, and I'm certain it would have some kind of logic like consumer-grade drones already have to stay level and avoid collisions -- but no Free Software advocate would propose that it have some equivalent of DRM that only the manufacturer could control.
People would be able to change the programming, I'm less certain that they would be allowed to fly the craft in public without some recertification process. But people modify and build their own cars all the time.
Getting back to your point though, do you have to code to contribute? Of course not. I even mentioned that in my previous reply.
...
"I see BSD is being pointed to as the ‘bunker’, but that is a big step for any non-tech people. Can there be a beginner series on running an easily installable BSD, to get non-tech people started?"
Of course. I tried FreeBSD first, with a goal to try FreeBSD, NetBSD and OpenBSD. Most others are based on these, and most are sadly based on GitHub as well. FreeBSD develops its package management on GitHub, and NetBSD accepts donations via GitHub (though the NetBSD Foundation has other more traditional payment processing options). OpenBSD is the least GitHub-entrenched BSD, and I would recommend either NetBSD or OpenBSD over FreeBSD.
Still, if you're only able to install one of those three, go for it. I found the OpenBSD installed the easiest to use (that's probably the opposite of what I expected) and the NetBSD installer is the most tedious. I actually kind of hate it so far.
The first time I successfully installed BSD it was FreeBSD, but the first time I installed OpenBSD it was because FreeBSD wasn't booting after installing it on a different machine.
There are instructions for installing each of the three flavours of BSD on their websites, but anybody who has installed GNU/Linux by downloading an image and then running dd to copy it to their USB knows how. Unlike with GNU/Linux, with BSD I've never tried to install with only Windows as a platform for downloading and creating install media. I know some of them have CD or DVD images.
The installer for OpenBSD is going to be pretty intuitive for most people who have installed GNU/Linux before. So the best way to get a friendlier install guide together is to get someone who is familiar with both easy-to-use GNU/Linux installers and basic text mode installers to write a guide.
But for you personally, if you can install GNU/Linux I think you can manage OpenBSD as well. My advice to people trying a new OS is not to do it on a machine they care about the files on, but to start with a machine they are happy to blank and experiment with. I started the journey on a server I had previously dedicated to sifting through GNU Project code.
And I didn't even technically install it. I just downloaded the image, booted to Tiny Core (any distro that could boot to ram with enough resources free for a ramdrive would have worked) and copied the image to ram, then used dd to write it to the drive. Then I rebooted. That was the "install".
Roy and Tom don't "get" the idea of videos that show how to do this stuff, but I found them useful. I can talk to you in detail about installing BSD, but if you go to YouTube you can simply watch people do it.
The video may not show the preparation, just the install itself -- but then you know how easy that part is. Making install media isn't that bad -- you write a DVD or if you have dd (never had much luck with it from Windows, yes, there is a Windows version but Windows does some funny things) it's basically like making install media for GNU/Linux.
...
"How many non-tech users, who deeply care about privacy/freedoms, read Techrights? Are most of them lurkers, since privacy/being offline is so important to them?"
If you put an article on Techrights, it will probably get more views than if you put it somewhere else. If it's distro-related or BSD related, and it's not about the application, you MIGHT get more readers from DistroWatch? I'm not sure how many they get. Techrights may give you more readers, but Techrights also covers a much wider range of topics.
With regards to lurkers, the number of readers is definitely not reflected in the number of comments.
...
"If a series were done, it could be shared all across the Linux places? So even non-techs, who could number far more than realised, can take part? adding important numbers of people who really care."
I think this is already happening increasingly.
...
"Don’t get me wrong; I’m talking about bringing more on board those who care about the values. I have no ability or desire to code, or become more tech … I want only to support the freedoms, values, respect, the space where people can be themselves and as happy as possible. That is the only reason I crossed over to Linux. I leave the technical aptitude to those who practice that so well, who have that DNA, while I do what I do best."
There really isn't more to coding per se than breaking things down into steps and talking to the computer.
Of course it depends on the language. But even if you can contribute without coding, being able to code just a little bit would help you better understand the issues around your advocacy. It would help you understand developers, and make you feel a bit less helpless.
Naturally, Free Software is not only for people who can code. But everybody should still learn -- it is not just a job skill. It is a modern form of literacy.
Before you think that I'm going to try to get you to ever write an application, that's not the idea here.
Do you know how to make a peanut butter and jam sandwich? Can you break that down into steps? Can you express those steps in English? If so, you are already halfway there.
The breaking things down into steps is the hard part, and functions make it so a lot of that is easier work that doesn't have to be repeated over and over.
The syntax is the part that looks hard, though it's the easy part. Some languages are difficult, others are easy.
1. Put peanut butter on bread.
2. Put jam on bread.
3. Put two pieces of bread together.
That's the bug-ridden version. You need to open the bag the bread is in, take out two slices, put the slices down on something and make certain the jam side is placed over the peanut butter side. But the thing is, you know how to do it and if you had to explain it, you could "debug" such a program if the person you're talking to didn't make the sandwich the way you wanted it.
The problem with this example is that nobody who is actually going to make you a sandwich is going to need such detailed instructions, so it's nothing more than an illustration.
A better example is telling a robot to draw a house:
Go forward 5 units, turn right 45 degrees. Go forward 5 units, turn right 90 degrees.
Go forward 5 units, turn right 45 degrees. Go forward 5 units, turn right 90 degrees.
Go forward 7 units, turn right 90 degrees. Go forward 5 units, turn right 90 degrees.
Go forward 7 units.
/\ / \ / \ / \ /________\ | | | | | | | | |________|
fd 5 ; rt 45 ; fd 5 ; rt 90 fd 5 ; rt 45 ; fd 5 ; rt 90 fd 7 ; rt 90 ; fd 5 ; rt 90 fd 7
drawrectangle 7 5
"
fd 5 ; rt 90 ; fd 7 ; rt 90 ; fd 5 ; rt 90 ; fd 7
"
makesandwich("peanut butter and jam");
repeat 20 makesandwich("peanut butter and jam"); next
repeat 10 makesandwich("peanut butter and jam"); makesandwich("egg salad"); next
repeat 10 makesandwich("peanut butter and jam"); next repeat 5 makesandwich("egg salad"); next
# Commenting out a line is as simple as this.
InstallFirefox = 1