Main

Blog (Atom feed)

20 Years of Personal Computing
Or, why I wrecked my 2nd favourite keyboard

In a fit of anti-electronic rage, I smashed my Happy Hacking Professional 2 keyboard, rendering it pretty much unusable. I'm not proud of it, but I did it.

The immediate cause of its demise was the fact that the repeat rate suddenly dropped for probably the tenth time in under an hour. “Settings be damned!” it seemed to say when I tried to put things back to acceptable levels. It would sometimes come back. I was also trying to open a PDF file whose name had a “funny” character in it (a colon (‘:’), by the way) and my viewer didn't know what to do with itself. Then I tried another keyboard and suddenly the ‘e’ key didn't work.

I found myself in one of those perfect storms.

hhkb-smashed.jpg

Figure 1: My HHKB Pro 2, after picking up the pieces.

Lightning from that storm struck me and something in my foundation cracked. Whispers eminated from the primorial part of my being telling me to destroy something to “teach the world a lesson”. In my feverish state, it made perfect sense. I stood up, ripped the doomed peripheral from its tenuous USB grip and smacked the top of my chair with it, dislodging the space bar.

There was a brief moment of calm before the primordial DNA demanded more. I stood there, arms hanging loosely, holding the keyboard like a freshly opened Dear John letter. Then I swiveled, raised the keyboard and chopped away at the cat tree near my desk with the fervor of a final girl confronting the murderer in act three. The hacking didn't stop until both the tool and the target relented.

It was a shameful act of catharsis. But really, the destruction of the keyboard was my ad hoc therapy session for more than 20 years of trying to take control of my personal computing environment. Well, more accurately, believing that I could.

“It's a trap!”

I lied a little. This actually goes back about 30 years.

My first semi-serious foray into computers was with a Commodore 64 when I was in middle school in the mid 80s. Out of the box, it didn’t work. It took some time to replace and the whole process was pretty annoying, but eventually I could use it to play games and enter BASIC programs from various publications. Beyond that, I didn’t do much with it.

It was when I was in college learning music production when I really started to dig into the whole “personal computing” thing. My first computer was a beige tower of wonder from a local computer shop. It had a Pentium 100 and Windows 3.1.

Within a short period of time something went horribly wrong and I ended up buying a copy of Windows 951. I suffered through the awfulness of setting up a local network for gaming purposes. I didn’t really know what I was doing and mostly just followed instructions, but I found that I had a bit of a knack for debugging. And getting annoyed at electronics.

At this point, my track record with computers wasn’t all that great, but I ignored that fact and started using Linux anyway.

With Linux, the tinkerer in me hit paydirt. There was much to understand and it took a lot of steps to do seemingly basic things, but the sense of accomplishment at getting something to work was addictive. It felt like I was single-handedly constructing a palace while also making the bricks.

Around this time I got my first ISP account and started skulking around on the Internet. It was there that I was lured into the world of techno-freedom by the free software folks. The notion that I should be able to modify my computer like I could modify my car fit with my world view. I felt as though my computer should be my computer, that is, a system that was, in some way, a reflection of me. When input came into the system, it would be like the input was for me. I would process it and do with it what I wanted. Similarly for output: I'd send something with knowledge of that data and reasonable confidence in the identity of the recipient. Furthermore, I should be able to introspect on what is running and see why it is running, and what input/output it is processing for me. It was more than just using the computer as a tool, it was recruiting the computer as a digital workmate. Sure, it was grandiose and pie-in-the-sky, but it was inspiring despite its dreaminess. I didn’t know exactly what I needed to do, but I knew I would have to study the system. A lot. And I’d be doing things the hard way. I prepared for meeting difficulty, but it would be worth it for that personal touch.

And difficult it was. I certainly learned a lot, mostly by lurking on Usenet, scouring mailing lists, and reading the not-so-fine manuals many times. There was a lot of frustration but it was offset by the thrill of learning how the system operated and, to some degree, being able to manipulate it.

That manipulation came about by way of customizing as much as I could. Not being content with the defaults was my raison d’être. It was how I expressed myself in the digital domain that was my computer. I may have changed things for the sake of changing things, but it was an excellent learning tool. It taught me invaluable debugging skills because most of the time changing things broke things.

There is a certain pride that comes from the enlightment you achieve when fixing a vexing problem. I got addicted to that glimmer of pride. Every time the pride endorphins kicked in, I felt as though I was teaching my workmate something. It was getting to know me. So the problems kept getting fixed.

What I failed to notice as that my workmate had a horrible retention problem. Either that or it was incredibly stupid. When parts of the system upgraded, my digital buddy would just sit and spin, basking in its own glory. At the risk of anthropomorphizing, it seemed to have its glimmer of pride when it applied an upgrade. It then pushed everything else aside. Upgrading is the opiod of the digital world. When these benders happened, I would usually just start over and install the operating system again.2

I didn't reflect on this situation until much later. The system as a whole sort of worked, but the components within it were remarkably unstable. Knowledge or customizations of a component didn't transfer when the component was upgraded. And when a component changed, the boundaries between it and other components usually changed as well. This meant any tweaks made for personal use tended to fail and you would have to figure out how to do them all over again. And in some cases, to add insult to injury, lots of the system may not work anymore when those components are upgraded, so it became tempting, if not easier, to simply start over.

This is why the line, "Have you tried turning it off and on again?" hits home.

I had fallen into a trap. The trap was the illusion of control. The rhetoric of the world I was living in continued the drum beat of personal computers, but it wasn’t playing that tune. It was playing the tune of customized computers, akin to buying a Honda Civic and adding a wooden spoiler. The only thing that was making my computer personal was the fact that it was using an "alternative" operating system.

A problem with fixing problems

So why was it that I made a lot of bricks but didn't have a structure to speak of?

It wasn't that I was incompetent with things – I could and can pretty much always get things to work – it's that I was never satisfied with "just working". Therein lies the seed of my outburst against my keyboard.

One might ask why I bother with such things when there are things like macOS that "just work". I did use the "just work" path for years and, in fact, still recommend it to many people. I consider Apple's hardware to be excellent and their stance on privacy is laudable. However, I've come to view Apple like that libertarian/atheist person you occasionally hang out with: when you give him your time you find yourself kind of agreeing with him, but after a little while, you wish he would just shut the fuck up.

When I started tinkering with systems in the mid 90s I was blissfully ignorant of any past work on such things. Hence the thrill I experienced when I would, say, properly configure my mouse in X. It felt like I was breaking new ground. I mean, I was in a personal sense, but there was a small part of me that thought I was doing something few others had ever done.

It was later, while getting an undergraduate and gradute degree in computer science, that I realized how hopelessly naïve that was. Lots of this stuff had been done before. The systems I was tinkering with were mostly recreating what had been done before, except this time, they were doing it without studying what had been done before.

As outlined earlier, the whole milieu of free software personal computing systems is predicated on the notion of "wipe and replace" at a high level. By doing that you remove the thing that makes it enjoyable: actually fixing problems.

The joy that accompanies the tinkerer's mentality is not just the fact that you made something work, but the fact that you made something useful from something that wasn't there before. That is, you compose things into tools for yourself.

It's not just that I can install Linux, FreeBSD, or what-have-you and get something to work. It's that I can make it do something personal, like manage my data.

Unfortunately, the free software world has settled on stuff like C to make these things. Sure, it can work, but it's so much effort you can't imagine yourself spending that kind of time just to make two programs talk to one another.

What that leaves you with is a system that is undebuggable. "Wait, there's stuff like dtrace!" Uh, sure.

Losing the battle, but hopefully not the war

When I smashed my keyboard I realized that, given the current situation, the idea of a personal computer wasn’t going to happen. And I got angry. I got angry because it felt as though I had wasted so much of my time. I had all this knowledge and seemingly little to show for it.

I don’t want my computer to be just a tool, I want it to be a workmate. While I’m all for the man/machine combo (as long as ethical implications are not ignored), I’m dubious of the way this is happening now because the swaths of data associated with it are held in “the cloud”:3 there's a third party involved and they aren’t interested in making you better.

That kind of computer is personalized, not personal. To me, that’s a huge difference. And I don’t want a personalized one.

I probably sound like a defeatist, but I don’t think of myself as one. After the great keyboard smash event of 2016, instead of throwing all my computing equipment away (a thought that was seriously considered for a moment), I started to think more about why I couldn’t achieve what I wanted and more importantly, ask what it was that I really wanted. It’s made me question why I have a computer at all.

But I do know why: because of the potential.4 The defeatist approach would be to give up and I’ve never been happy doing that. What is clear is that things as they are now cannot continue. I want that workmate and the systems I’ve been using up to this point are far from it. My time wasn’t wasted – it allowed me to get good with my tools – and I can leverage the knowledge I have in exploring what I really want. I’m thinking that whatever it is, it's not going to look much like what there is now.

My relationship with personal computing is now akin to an amicable divorce. We still talk, but the spark is gone. Any pleasantries exchanged are now for the sake of social graces. Expectations are curtailed. Instead of hoping for things to work, I'm expecting them to fail.

My computer and I peacefully hate each other and we’re comfortable with that.

Other notes.

  • Emacs and the shell are two things that have not succumbed to this killing of personalization so much. That should be mentioned.

Footnotes:

1

I still have binary images of the floppies, but the floppies themselves have been lost to the sands of time.

2

It makes you wonder why I kept upgrading. That's probably a different essay.

3

My least favourite tech term of all time, currently. Even moreso than "Agile".

4

And let's face it, the practicality.

August 25, 2016

comment@wozniak.ca

Generated on 2022-01-02