Linux Fail: Configuration Files

Rant time. For eons linux developers have just done what they want, when they want, with little or near fear for pissing anyone off, cause mainly, nobody used linux apart from the other people who also felt the same way. This is a rant about linux configuration files.

I was there *almost* at the beginning, when linux started to grip onto “normal” people, I was always messing around, configuring, reconfiguring, compiling kernels, trying out OS2 (or at least playing). Anything alternative, I was interested to see what I could do with other platforms. That said, I never really made a big effort to push out anything interesting, I never committed any patches, any extra code to external groups, just playing around, with my own stuff. Enjoying life. Back then, it was 1995. Books on linux weighed about 10KG and came with two cdrom’s (the one I remember the most, was with redhat and slackware on the other).

Now 13 years later, I’m bored of it and I’ve been there and done that and now I just don’t have the same push inside me to learn so much, I have my life in front of me and although right now is STILL presents me with an LCD screen for about 10 hours a day (much to the chagrin of my girlfriend). I don’t plan on staying this way, one day, the only thing that will be in front of me, is my Dragonball comic books (thanks ceci! I love you lots) and a swimming pool and doing some minor work, whilst my company employees do the 10 hour days. I promise to try and treat them like humans, they should be allowed a swimming pool one day.

The one thing that I never really understood, was configuration files on linux, you see, 13 years ago, those files were still there, still written the same way, with the same awful gui tools, that either don’t work, or work barely, designed by morons, written by barely competent programmers. Or they just didnt write one and instead wrote man files, which helped, but still.

You open up the samba configuration file (FOR EXAMPLE!! Open another if you want, say mysql config) and you’re confronted with the same “normal” format, with arbitary rules, you still have to open the file using vi, or whatever. You still have to wade through the documentation thats written inline, that makes the files about 100x longer than it might be normally (like the apache configuration)

The syntax is arbitary, maybe the guy thinks his syntax is better than the other guys, perhaps he writes is like “key: value” like syntax or perhaps “key = value” syntax, then there is the whole issue of line endings, etc, etc.

In other words, these guys are all fucking morons. Listen guys, 1995 was like 13 fucking years ago, get with the program. Nobody gives a flying fuck about your fucking stupid retarded configuration files that require knowing how to use vim to play about with, you wonder why only experts use linux and don’t get me started with your mother. The only reason your mother can use linux is because YOU installed it (99% of the time) and then when you did, you probably turned off the auto-update feature, because that solves like 100% of all problems. Install it, never update it and linux is rock solid. You want to know how many times I’ve fixed my girlfriends laptop because an update has totally fucked things up? (Fedora, dont say: cry cry, fedora is bleeding edge, it has the same level of software as ubuntu in most cases).

HA HA!! I feel much better now. OK, so everyone is now probably wondering whether Chris will put down the AK-47 and give a solution. Cause well, if you dont like it, fix it, right?

Well, unfortunately I can only suggest a solution, not give one, because I dont have like 1 million man hours to expend on fixing your shit, so here goes, a POSSIBLE solution.

Machines can read XML (HAHAHA, you saw that coming right? Pity you didnt see it coming and then actually DO something about it). They can do it very well, we have documentation formats that are readable by computers and structural formats to arrange data, we do this very well and some formats are better than others. But I will pick XML just because, I could pick json, but I dont think that you can put documents very easily into that format, XML just has these things, so I picked that.

If you rewrote all your config files in XML, you could add the documentation inline as well, you could automatically update your documentation from the config file, your computer could read it and write you out a manual file dynamically on the fly, then you could write tools which interact with the values inside, you could query, set, insert, update, delete values by merely using a simple too. Hell, it could even be the same tool for the entire system.

Hell, even application developers have it easier, just linux against libConfigXML or something and import the code that is needed to read and write configuration files, need to import another application config, because maybe you depend on it’s config, you could use dbus to talk to the app, or open it’s config, ask a systemwide daemon to return you the information (hence dbus). Then bingo, it’s easier for everyone.

Oh wait, Apple has already done this, and most of the system is written using plists, not exactly the same, but brownie points for getting BSD’s head out of its arse and doing this for them, did they backport all the changes? nope, cause they are retards who believe that making life EASY, or EASIER for the rest of us is like pedophilia or something.

Listen guys, I know you’re clever, but some of your decisions are just stupid dumb and configuration files might actually be simpler if you started to work together, it doesnt matter if it’s not perfect, it just has to work, you can improve it AFTERWARDS. But are we really going to sit here in 2020 and STILL be using retarded configuration files???

The windows registry was a good idea, implemented badly. You needed special tools that only really worked when the system did and was hard to think through, gconf, a system of xml files, has the right idea, but extended through the entire system, NOT JUST GNOME. xml is text, if you want, open in VIM, or for the rest of us:

systemconfig samba write dns-proxy “yes”

will be about a million times better than the current shit sandwich you have. I know this isnt a major showstopper for linux, but it’s the little things that count, sometimes you think that the little things dont matter, but what people dont realise is that maybe someone somewhere has a fucking ace idea that they want to do, that would make linux configuration domain wide simple, easy and automatic or whatever, as well as keeping the flexibility of today and the extendability of tomorrow. But you’ll never see it, because you’re all too retarded to think about the bigger picture.