A bicycle for the mind

19 points by waddlesplash 15 hours ago on lobsters | 11 comments

This article has been updated with extra links to relevant sources.

You may have read my two previous articles, Why am I doing this? and Debian has fallen. Some people found them interesting and inspiring. I am not particularly happy about them, they're a bit disorganized, throwing in a lot of ideas at the same time.

So, here's another attempt.

The recent events with the deployment of LLMs in a lot of place in open source projects makes me thinks more about this. What I'm doing. What I'm spending my time on. What changes I want to make in the world. I have seen a few articles and discussions recently and I think I start to understand better what I'm trying to fight for. Because, yes, sadly, it seems it will be a battle.

Let's start from an article that was helpful for me to understand this. There's no thing as just a tool by deadSimpleTech. The main thing I take from it: our tools change how we perceive and interact with the world. I'll repeat one of the examples used in the article, because it is an analogy I identify well with (you'll see why in the rest of this article). The example is an human that is using a car. The car is just a tool. It doesn't change you. You can disembark from the car and be just a human anytime you want. Yet, owning and being able to operate a car changes how you interact with the world around you. Moving around by a dozen or a few hundred kilometers is easy. So, taking a job at the other end of the city is a reasonable choice. You can have friends that live further away and still get to see each other. You can go for vacations at some distant beach or mountain or natural park, reach remote places, and carry a lot of things with you.

However, some of us have become dependant on cars. This can happen for a variety of reasons. Obviosuly, the choices you made (such as living far away from your workplace). But also, a large part of our infrastructure is designed for people with cars. This is less extreme in some countries than others, but, to some extent, pretty much anywhere you go, you will find out that there's a road so car can get around, and people are relying on it because it's convenient, or cheaper, or there's no other way to do it.

I don't own a car and I don't have a driving license. This means the problems with a car-centric society are maybe more noticeable to me. I'm doing fine, sure. I live close to my work, I enjoy riding my bike, and occasionally I have to ask people for help when I really need a larger vehicle. I also rely a lot on other infrastructure such as railroads and public transport. These mean I'm able to travel quite far if I want to, and also that if I go on a biking adventure, and things go wrong, I can always go to the nearest train station, board a train and get home, likely before the end of the day. So, the car-centric life around me is occasionally a minor annoyance (having to make a detour to avoid a big highway junction, let's say, or having to ride on a dangerous road because there is no other option to reach my destination). And it's also sometimes a weird conversation topic with colleagues, friends or family. They think I have an extraordinary physical condition because I could cross France in 10 days by bike. Or maybe that I'm crazy for even attempting it (it was fine, really).

Anyway, let's talk about computers.

Just like bike and cars, computers are tools, too. They also change how we perceive and interact with the world. This is something I understood intuitively pretty early on in my life, in fact. I talked with people on forums and IRC chats. I found people interested in the same things as I was at the time. Even with my "real life" or rather "meatspace" friends, we would use computers to play games (offline and later online), communicate with each other, and then build websites and have a first try at programming and electronics. We found online resources that people had put on the internet for free. Programming tutorials. Freeware and open source tools. Forums to get answers to any kind of problems. Meeting more people. And so on. Pretty early on, I was intrigued about Linux, and my desire for understanding how things work was better satisfied in open source software. It wasn't easy at first, teaching myself programming in this situation. I got better at it after I studied computer science/software engineering in university, and naturally I started contributing to open source software.

My first projects were building the tools that I needed myself. Very early ones were tools to teach myself multiplication tables, something that was quite difficult for me to learn. Later on it was GrafX2 because I didn't find any suitable pixel art painting software for Linux and I needed one. And then, of course, it was Haiku.

This is what computer programming means for me. You can build your own tools. You can share them with others. When you build and share such tools, you meet other people that perceive and interact with the world in the same way as you do. You make new friends. I guess this is what I've been trying to do in my life. Get people to understand this process. With computers, you can make your own tools, and so you can augment yourself, and others, to accomplish more things. This is something special about computer and especially open source tools. It costs no money at all to try this.

This idea isn't really new, either. Steve Jobs called the Macintosh "a bicycle for the mind", referring to the fact that the human on a bicycle is the most efficient animal on the planet. And before Jobs, you can see similar ideas in Douglas Engelbart's Mother of All Demos, where a whole section is about the human-computer interaction loop, and how their hardware (the mouse, the keyset, the realtime display) was designed to improve this loop and make the tool as transparent as possible (update: actually the segment I was thinking about is in a later talk from Douglas Engelbart in 1986). Just like when you ride a bicycle, and you're not particularly thinking about pedalling and braking and shifting gears and keeping your balance. It's as natural as walking.

But then, there is a limitation on that as soon as you're not the one building the tool. Say you buy a Macintosh or a Windows machine. Someone has designed it to work a certain way. And their design will shape how you perceive and interact with the world.

When you combine all these things together, it can get quite scary. The computer is a tool that is very close to our minds. If you push Douglas Engelbart's thinking just a little bit further, you end up with neural implants and cyborgs, which are the optimal way to make the human and computer combine their forces. We're not going there today. But still, we use computers a lot, and, just like cars or maybe even worse than them, it's hard to avoid them even if you don't want to. You can't book an appointment without that storing some of your personal data in a computer somewhere. You can't interact with administrations or your employer or your local association who has a Whatsapp group. And, for most people, you are not in full control of your computer, the thing that shapes so much of your worldview. This is quite bad.

And again, this is not a new problem. These are things that Alan Kay was already considering when building Smalltalk in the 1970s. The goal was to make a personal computer, something that you really own, that you can customize to your needs, something that you really control.

This is what I've been doing for myself. I landed in Haiku after trying various other systems, as it was the one that fit my needs the most, and also because it was smaller and easier to understand for me. It surely has changed the way I perceive the world in many ways. By the direct impact as already explained, but also by the time spent talking with users and other developers about it. This adds a whole new dimension of collective design. I wrote earlier in the article about there always being a nearby train station to get back home in case of a problem. I think the Haiku community (and the open source community as a whole) is a bit of an equivalent to that: providing help and support when you run into a problem. Without them, what I do would not be sustainable.

And, this is what I want to show to other people. Many of my silly projects are about that: taking some random old cheap piece of hardware that has a microprocessor on it, and see if I can turn it into an usable tool that I control. This is how, in the modern world, you can keep control of your life. At least it is important to me because I'm not planning to give up on using computers. I've been bonding with them for too long and it's now part of my identity. But, for this to work, for me to still be myself and not some kind of borg controlled by a big corporation, I need to own the computer, in the sense that it runs code I wrote myself, or at least that I understand. And this is why keeping and using that skill is, for me, almost vital.

And I need help. I need more people to understand the world like that, because computers are complicated and I can't do everything by myself. Until now, this had been going OK. I knew that I could rely on a large ecosystem of open source projects, with people in the same mindset. This made a lot of what I did be, either, "just for fun" projects, or experiments to see how far I could push things in new directions. This is how I could work on reverse engineering the VTech V.Smile, a 16 bit console with a few kilobytes of RAM. Or a lot of the things I've done on Amstrad CPC.

So, how do LLMs and their use in Linux and Debian fit into this? Well, I think LLMs are like cars for a bicycle rider like me. They are faster. They are not safer, but generally you can ride one and you'll be OK. But, more importantly, they change how people view the world, and through that, they change what people decide to do with the world. The internet used to be a place with lots of cyclepaths, where you could go visit websites with few resources. People took care of presenting you information in well written articles, to organize links, and so on. When most people use LLMs, there is no need to do that. The LLM will handle the complexity and write you an answer. And the infrastructure under it, will not be designed for computer cyclists anymore. There will be no human oriented documentation for the code. Articles will be written in a way that makes them easier for LLMs to handle. First it will just be some editorial changes, then it will be malicious things as the SEO people notice that they can leverage prompt injection (we're probably already there). Then it will be in a format that is completely unusable for us humans.

And the tool? You're not the one building it, this time. It's coming from a big corporation and it's dangerously close to your mind. I would say that's not safe.

So that's where I stand right now. I want to continue exploring the "take control of your computer, build your own tools" path. But the open source ecosystem, the railroad network that I used to rely on to bring me back home safely, is being replaced by highways. And so, what used to be my weekend bike ride just for fun becomes a necessity. I won't drive a car. I will use my bike to get around. And I will continue using computers with code I wrote myself. But what used to be just an experiment with a safe fallback, may now become necessary for survival. I would have rather kept it as a fun thing to do on the side. Well, I hope it will be ok, and I can continue my silly little things, and not be forced to take upon more and more of the code on my main computer all by myself. I still feel fortunate that I come with some training for this. I hope I can help others build their own tools, and keep control of their lives, too.