Technology
2022-01-28
My first blog post, I figure it's time I turn this website from a virtual buissiness card to an actual site with #content, so why not do what i do best and ramble at absurd length about my half baked thoughts on subjects I am uneducated on. Before I start, I should mention I am writing this at a time when I would normally be asleep, after accidentally drinking a can of Monster Energy (tm) too late in the day. What im saying is don't expect this to be the "The Godfather" of first blog posts. It may well turn out to be the "Dark Souls" of first blog posts by the fact that it may end up being hard for you to finish.
I suppose here is as good a place as any to give my mixed up thoughts on technology. You may recognize some of the talking points here if you have seen my recent video about this. In fact this place may end up as a place where I repeat things I say on youtube because that's generally where I put my ideas as a first reaction. I suppose in some sense this place is my attempt to distance myself from that due to the very minor niggling gilt of using google's infrastructure. I still use google as my search engine, im sorry, duck duck go just sucks. I dont know the sort of peron who might be reading this, so I suppose I will start from scratch. To start off, Free (as in freedom) software is one of the very few causes I find myself actively spreading. Although I hold various radical political and philosophical views, free software, digital rights, privacy, security, and as an extension copyleft and anti-IP are the only causes which I have hobby-ized. I am writing this very post in vim on my thinkpad x220 running artix linux, which is my daily driver computer. Earlier today and yesterday I spent a couple of hours messing around on alpine linux just for fun. Almost all the software on my computer is FOSS (free, open source software), I interact with it daily. To give the elevator pitch, software should be free, as in freedom, one should be able to do whatever one wants with the software on their computer, taking it apart to see how it works, modifying, and redistributing. There are a number of reasons why this is desirable. A major one, and my particular in, is privacy and security. With non-free, proprietary software, you have no idea what a program is actually doing behind its own closed doors, and therefore the software may be spying on you collecting data or god knows what else. I shouldn't need to explain why this is bad. Then there is the distribution and modification aspect. Software itself, code itself, can be copied and reproduced essentially for free with the press of a button. When you copy something, the original version still exists. I can copy a program as much as I like, I can modify those copies in any way I see fit, and i will not have any impact on the original program, nor the scarcity of that program, since scarcity doesn't exist in the digital world (no matter how much blockchain idiots try to make it happen). I have to pay for a CD because CDs are made of materials which take labor and resources. Copying a piece of software uses (for all practical purposes) 0 labor and 0 resources. Therefore, software should be freely distributed, because no one loses out. You may think, "but how will the original programers get payed for their labor?" well, there are already many many programmers who get payed for making free software. For example, many programers write software for part of their sallaried work which they then chose to license with a FOSS license, some take donations, the truth of the matter is the bit of labor that programers should be getting payed, for, the bit that's their actual useful labor is writing the program in the first place, not selling it, not distributing it. We've set up a system where the wrong part of the process is monotized. (important, this whole thing applies to all digital distribution too by the way, including music, which is why my music is free and release under a creative commons liscense so you may do what you want with it). Instead of paying people to create the digital product, we've ended up making them do that bit for free, then paying them to take down the barriers they put up. And that doesn't even work, because software piracy and cracking is trivial. Finally, non-free software infringes on your rights. You own your computer. Digital data is stored on your computer, that you own, therefore, you should own that data too. Say I have a printed picture on my desk, and someone else has the exact same picture printed out standing on their desk. They are the same picture, but I own my one, and they own their one. Same with software, I own my copy of this software, even though the same 1s and 0s in the same order may be found on many other computers, i dont own those copies. Since it's on my computer which I own, I should be able to do whatever I want with it (to a reasonable degree, I'm not saying i should be allowed to use my laptop as a murder weapon just because I own it), because it's mine, and if that's not the case then how can you possibly define ownership? So, when proprietary software does not let me do that, it is stealing a part of my own computer away from me, it's saying "this is mine now, you dont get to use it in that way". and im like "hold on mate i payed for this computer give it back". So anyway that's free software i think it's very cool and good and generally reasults in well made software on top of not stealing your own computer from you. after all, if you find some software with some feature you dont like, and you have the necesary skills, you can freely modify it to your liking and redistribute that version under the same license, that way anyone who agrees gets it good, they can improve it further etc. ok so that's that aspect, now let's go a liiitle bit more abstract. not only should software be free, it also should be good. Good software follows the allmighty UNIX PHILOSOPHY. generally summised as
programs should do one thing as well as possible, rather than trying to do a million things.
programs should communicate well with other pragrams.
write programs to handle text streams, because that's universal
really 1 and 2 are the ones that matter. A good example of a program that follows the unix philosophy well is dmenu. It's just a menu, by default it will launch programs for you but you can tell it to list pretty much any list of items, and do pretty much anything on selection. The surf browser for example, uses dmenu as its url bar, because why put a url bar in your web browser, when you already have a program that can do that well. This is following the unix philosophy. dmenu is a tiny, simple tool I think it's like 0.05mb, and yet it is incredibly powerful because it does one thing really well, and talks well with other programs. I dont even use dmenu lmao but you get my point. This is also related to the concept of software minimalism. A program that tries to do a million things and doesn't talk to other programs well, that's going to be very large full of unnesesary features it's going to run slower on old machines (we'll get to that) etc. These are bad things. That would not be minimal software. This isn't like a moral or ethical issue, it's just a general rule of thumb to make software which works better. If you want dmenu to do extra things other than take standard input, make it a list, and print the selection in standard output, you may need to patch it. This is a good way of doing things, instead of shipping a program with 500 obscure features, let me choose which ones I think i'm going to want and add them as needed.
And now the even bigger picture. Lithium, cobolt, rare earth elements, gold, these are a few of the materials which go in to making a computer. Computers run on electricity (no shit) which relies on, for now, fossil fuels. Essentially, computers dont drop out of the sky, they are dug from the ground. And the ground is running out. Eventually, we run out of these materials. Then what do we do? And the problem is, no one really knows how much time we even have to prepare. Permacomputing is "A holistic approach to computing and sustainability inspired from permaculture." [xxiivv] (permaculture is "an approach to land management and settlement design that adopts arrangements observed in flourishing natural ecosystems. It includes a set of design principles derived using whole-systems thinking."). In summary, it's the opposite of planned obsolesence. One aspect of permacomputing is frugality, treating computational resources, energy, as the limited, valluable resources they are, instead of pretending our current world of energy abundance will last forever. Much like a gold rush, everyone runs to built towns where the gold is plentiful, knowing full well that it won't last forever, then the gold runs out and the towns die and the people starve. We've done that on a global scale with oil. I need to not go on a big rant about collapse and oil right now I'll save that for the next blog post but for now just think about the situation isn't great, and someone needs to be out there planning for a worst case scenario. And the software industry is not exactly helping. I have around 2500 hours in the video game cs:go. It's a good game, but at its core, it's pretty much just cs 1.6 with more realistic graphics. With a little effort, you could probably mod 1.6 to feel almost exactly like cs:go, even if it would look different. And high poly 4k textures are really not that important gameplay wise. So we've had this massive increase in overhead and hardware requirements for what, some pretty lens flares? I can live without those. "If your new software no longer runs on old hardware, it is worse than the old software." It simply doesn't make sense to assume that we will always have ever increasing access to more and more energy and more and more of the resources used to build computers (again, I'll get more into this in my post about collapse). The opposite of permacomputing is planned obsolesence, which is a big part of how we ended up with 58.3 million tonnes of E-waste per year. It's not a great situation.
Technological progress is not, we may think, a single logical line. "x technology naturally leads to y technology naturally leads to z". Rather, there are many possible progresses, which could have been. We could be progressing towards more and more efficient programs which can do ever more complex tasks better and better on cheaper and cheaper hardware. Instead we ended up in a worldline where apple essentially bricks your iphone if you don't spend $1000 on a new one every few years and there's nothing you can do about it. I'm suggesting maybe a course correction is in order.