I’ve filed bug fixes on a handful of projects and tracked open issues on quite a few, and the stream of inbound PRs is often so random. Not just bug fixes but new features. Where’s the plan? Whats the scope? Which of these PRs is likely to land? Can anyone but the maintainer guess?
Good article content, but wow the article looks great! Really incredible!
If by any chance someone knows the tools that were used to make the big-font subtitles (or the whole page?), enlightenment would be highly appreciated!
Looks is in the eye of the beholder, but notice, that in HTML, this is just one big paragraph - if any tool did the whole page, it wasn't particularly interested in semantic HTML.
Hm, yes, well. Trainwreck design seems to be another term for 'design by natural evolution', more or less the way the literate apes which are responsible for these systems came about themselves. Just like we are full of odd design choices [1] so are our creations. We learn to deal with them as long as they do not cause egregious problems, otherwise we build something else which more fits the bill at that moment. The moment passes, things change and before long the fancy new replacement for that old piece of junk is getting crusty itself but a drop of oil here and a well-aimed slap there keep it functional so why bother, there's more important stuff to do. Disparate components of the Rube Goldberg contraption age at different times, some are patched and some are replaced entirely but the machine keeps running while that other team with their visionary leader finds out that the well thought-out design does not lend itself for crossing that chasm which the recent earthquake produced. While they are waiting for the right design to percolate up through the masses we added the bridge tool to the toolbox and kept it there just in case - it is a big box. Lo and behold, it came in handy quite often, who knew that a bridge could be used to walk from tree to tree through the jungle? And so it grows and grows, every now and then shedding some parts while gaining new ones. That is how it came about, just like how we came about. That is fine by me as one who is part of the motley crew of tinkerers who make it happen. Every now and then someone comes along with a vision of taming this mess, to give it a new facade, to bring order to the chaos, seemingly oblivious of the many corroding and overgrown remnants of previous attempts at taming the beast we passed along the way. I say let them try to tame it, maybe someone succeeds in breeding some nice and docile pet out of it some day which obeys your every command - only to find out it has lost the ability to fend for itself in times of trouble. Poor thing, another one bites the dust while the beast just keeps going and going, warts and all. In the end it is said only the cockroaches and tardigrades survive but rest assured, they'll have the beast right on their many heels.
[1] We have inside-out retinas, why did we not get them the right way around just like squid have? Why can we not synthesize vitamin C? OK, we evolved somewhere where it was available on every tree but would those few extra genes have bothered us? The dog under the table has them, why not we?
Now, the OP has to remember, df -h -x tmpfs instead of df -h. The proper solution for this is to not have commands that are both meant for interactive and script usage. Then the defaults for their output can be changed over time to suit the evolving landscape. Or if you do want a single command for both have a --script flag that makes its output suitable for usage in scripts.
A webpage that uses numeric identifiers for external references that are found only when scrolling to the very bottom of the page and show their URLs as plain text. Now that is a train wreck.
Hyperlinks are the cornerstone of the web. Don't be afraid of using them!
You mean footnotes? As they have been used for centuries in print?
The difference between them and a simple hyperlink is that they can and often will provide some additional context, that is out of the scope of the original text. Ideally on a website meant for computer screens you wouldn't have them on the end, but in the margins, next to the information, but for short stuff it is okay to put them at the end of the chapter – bonus points if the reference numbers can be clicked and take you to the foot note, extra bonus points if there is an arrow taking you up again.
But this is scientific literature style writing, not everything needs footnotes.
Hyperlinks would be convenient, but something about the raw text / ascii art vibe makes me happy everytime I read a blog post from j3s even if it doesn't have the conveniences of the modern web.
Also using a monospaced font for both the written text and command line output is certainly a choice. I get that it is often an aesthetic choice, but given that a blog post is written with the idea to be read, one I don't think is a particularly good one. Although the last time I made a remark about that on HN it became clear to me that a lot of people don't see the issue. Even if there are decades worth (at this point) of research that makes it clear that a sans serif font (or even a serif font on modern displays) works better for readability. ¯\_(ツ)_/¯
It is clear that the author is very explicitly going for the aesthetics of a terminal, given that all formatting of the text is ASCII based down to the line length being hard coded as if we are dealing with a hard limit of columns.
This is the bazaar version of enshittification. In that the software becomes worse for the user, but for different reasons than in the commercial world.
Yes, vscode and plugins can do everything. But Phpstorm integrates everything into one coherent package. Too many random directions is more annoying.
In terms of software dev, it's quite hard to get a good app wide experience. There's just so many people working on the project. Without someone to make sure things are aligned, things fall apart into random wild patterns everywhere.
not everything ... just plain remote work over sftp or ftp seems to be impossible.
You always work some sort local and than it's pushed. There is no real "remote client" out there.
Atom did have plugin which worked quite well accomplishing this task.
The other day I took the output of df -h and gave fed it to an LLM, asking, anything stands out here? It helped.
That being said, Claude turned no fun. [0] I remember back when ChatGPT first came out, I'd say `ssh root@mainframe.nsa.gov` and it came up with some interesting outputs.
Haha, try and expand a partition on Linux using command line. It's nearly impossible if you're not a sysadmin [1].
You'll google it and find 10 different ways for 10 different distros, and most of them will require doing byte math (but you're not sure if KB is really kB and 1000 or 1024). If you get it wrong your computer blows up (probably).
And if you think resizing was hard, try to defrag and shrink one!
[1] For example if you install RHEL using wizard it will create a bunch of virtual logical areas that each have partitions allocated that each have disks allocated and if you want to resize them later you have to resize the onion all in the correct order.
...or you'll just install gparted and do it with a couple of clicks.
It'll require root, yes. But in Windows you're already "root", so it doesn't count. No, "permission elevation prompts" doesn't count. You're still defacto Administrator on that system.
BTW, none of the CLI tools allow you to overlap partitions or shrink below used percent. So you can't blow your data up unless you try really hard (like fdisk delete/recreate tricks).
I think command-line is the key word here. It is not so hard on Ubuntu in the GUI. But for example if you installed Red Hat CLI-only version, it's probably so hard you'll give up and just ask Red Hat support to look at your logs and send you the commands to run.
The thing is, if you're a desktop user, you generally use gparted. If you're not using a GUI, you're already a sysadmin in most cases.
Systems like Raspberry Pi make these things easier, too. They both have docs, or you can do on your system with gparted already. Also, as I aforementioned, none of the CLI tools eat your data unless you force them to.
Lastly, all the tools accept KB, MB, etc. as prefixes/suffixes. So, I rarely make back of the napkin math for these things, if ever.
> But for example if you installed Red Hat CLI-only version, it's probably so hard you'll give up and just ask Red Hat support to look at your logs and send you the commands to run.
Actually it's not hard. You only need to know that you have your filesystems in a LVM (Logical Volume Manager) container. Unless you're not changing the size of the LVM volume, it's the same thing, only the device name changes.
If you're adding disks, you need to first increase the LVM size to span the other disk, and add or resize your partiton there.
It's not intentionally hard, you meet with a layer you generally don't see everyday. Even if you boot a LVM containing system from a live distro, say GRML, you only need to "activate" the LVM container with a single LVM command, and it's the same thing after that point.
I mean... keeping the output of a small "load bearing" program that's been that way since the 80s and is being parsed by countless other scripts that rely on it being exactly the way it is is probably a good idea. Despite what the average library maintainer seems to think, it's far better to have a few people complain about it being meh then breaking half the internet because the output could be nicer.
That said, anyone know of any good alternatives that parse it into something actually -human readable?
Just using the example of "df -h" and "mount" ... all the extra stuff that wasn't there 15 years ago, is from systemd. The idea is to auto-enable anything anyone might possibly want, to whatever extent possible, and I don't like it.
I also noticed the /var/credentials/ mounts showing up recently; that's for a systemd feature that neither I nor you actually use, to set encrypted secrets for these services in a way that is exposed only to those services via a centralized framework. If you didn't explicitly use it, it's all empty. But it started years ago with the mounts for efivars, pstore, binfmt-misc, kernel/debug, kernel/security, etc. Sure they're useful sometimes, but they shouldn't be enabled until you have a need and then explicitly enable it. Well, that's my preference, so I always start with minimal debian or arch linux, but even on such minimal systems that have switched to systemd, you get all this stuff enabled and mounted by default.
If you're actually using a tmpfs mount, like perhaps just one on /tmp, then you do want df to tell you how full it is. The problem is that you have 20 fs mounts that are truly useless to you, and IMHO should not be there. And ironically I think systemd developers do have a strong opinionated design vision, and if you don't like it you can pound sand (or use void or alpine for a desktop system I guess), because they have successfully taken over the vast majority of the desktop and server linux ecosystem. Anyway I still like linux for the flexibility I have elsewhere in the stack to make it work the way I want, reasonably conveniently for me.
(Many would think I'm an idiot for not appreciating the brilliance and necessity of what systemd has done, but for a completely different angle about systemd I recommend: https://blog.darknedgy.net/technology/2020/05/02/0/ (seems tls cert expired a few days ago, but it's fine to ignore))
It does what mount and df do, only with more options and filters. It is part of mount -- IIRC today's mount just runs findmnt --mtab under the hood -- and therefore available on all modern Linux systems. I guess the article's author would have been happy with
(most) Kids will likely never learn these command and attributes and output like we passionately did in 1994. LLMs be spittin' them command lines quick and correct, transpiled/translated from English/French/...Macedonian if you like. they already do, and it already helps a lot.
Perhaps one may learn to remember <df> and <ls -a>, but will definitely not care to produce by heart oneliner bash abominations sprinkled with sygils and pipes and three-char cmd names.
This whole article very true, but somewhat irrelevant to 2024. Claude/Mistral/CHatGPT been parsing outputs perfectly, and there are plenty of experiments into getting the LLM to assist code writing and parsing results directly from the cmdline. And you know what, this also works in 100% console mode, you don't need GUI to talk to the new GUI called LLM.
the smaller models get, the sooner they get embedded in shells. then you'll get the real Ghost in the Shell, yeah...
somehow my gut feeling is they are not going to ask for old gen sysadmin's opinion, but the contrary - would love to make them outraged, as my generation script-kiddies-soon-to-become whitehat hackers did. we can expect sysadmins to grow into typical BOFHs and BDFLs...
besides this comment of yours is exactly what was expected as a first response, and is very boring.
As a youngling I have to say, I always liked the idea of the shell as something where you can pipe stuff inbetween programs. It is a genius concept. The problem is that in the real world implementation of the idea you have something like bash, that sucks for text processing with all its footguns of unescaped strings, spaces, wildcard operators and such.
Maybe it has to do with strings not really having been a first class citizen in C? Processing strings in C is a (dangerous) pain even in the year 2024.
I often find myself just writing python scripts calling subprocesses (if needed, so much is already included), ideally with a --json option so I get proper machine-readable output. This has shown to be far more stable and reliable than bash.
And eventually you come to conclusion that you need powershell like pipes of objects. Btw someone tried to implement a shell in Python which feeds structures, not sure the name though… was in HN front a while ago
> This whole article very true, but somewhat irrelevant to 2024.
The author is complaining about inconvenience. If I'm in the shell, and I want to see how much disk space I have, asking a LLM for a command then running the command then asking the LLM to parse it is still inconvenient, compared to just typing "df -h" and getting a reasonable output.
The fact that Claude or whoever can parse that output seems irrelevant to the article as I understand it. "AI" is not a magic silver bullet.
Is not indeed. The author has valid clues and points made. 100% agree with him. Nevertheless you still need to do some job and people find ways around.
All I’m saying is long prompts of shell progs that you need to use once or twice are easier written in the newskool way, not that proper output of common programs is bad idea.
But I really can’t imagine anyone or anything convincing thousands of devs to conform certain format. Really a wet dream today unless started so from day one. Only big players can do that.
From a design standpoint I like to highlight one rule: A good design is one where the most common action your users will take is priorized. If you get there alone, by basar, by comittee or whatever, doesn't change that. The problem with the latter variants is that decisions are not made on principles, they just happen.
For example if the overwhelming majority of users use df to get an overview of how much disk space they are using and how much they have left, the default option should be giving you a easily digestable output of precisely that.
I get that in terminal-land this can be a problem, as the default df command is now probably parsed by a thousand shell scripts and chaninging it breaks things. But that is also bad design: If there are hard reasons like that that could conceivable lock you into doing it a certain way, you should warn against it and offer a stable alternative (stderr: "The output of df -h is not meant to be machine readable, use df --machine instead"). Again frequency is the guide here. People will more often type df -h to manually check things than they have to write df --machine in a script.
Same goes for the default output of ip a (which in my opinion should be more like ip -br -c a).
This complaint about df/mount/etc. recurs with noticeable frequency. Another ugly spot is iproute2's ip link/addr. Between containers and VMs and their virtual interfaces, link bonding, virtual bridges, macvlan/tap, etc., the list of "interfaces" proliferates. Trying to find an actual physical interface is difficult, and interpreting what is there is a challenge.
Improving this stuff isn't happening because no one is funding the work. A hobbyist or gainfully employed contributor stealing time from "real" work can't manage this anymore: complexity is too high now and the gatekeepers aren't -- for good reason -- going to tolerate naïve contributions.
There is very little money in the Linux world for anything a Linux distributor or hardware manufacturer doesn't care about. The former care only about the high value features people pay license/subscription/support fees for, and the latter just get drivers working, and maybe rework a kernel subsystem when absolutely necessary, and leave the rest.
The money exists. The Linux Foundation collects a quarter billion a year, for example. But they've found a long list of better priorities to spend it all on.
I don't know about the "trainwreck design" concept. There is nothing here that can't be solved given some hard headed refinement. It's just that no one is doing that.
A single \n would improve ip link/addr. There is no easy way to visual grep the right interface. ifconfig is much better in this regard, but has obvious downsides.
> Why are you even looking at this with the naked eye?
My first instinct was to answer your question with a question. I'll avoid that.
In the real world of devops, whatever you might have in mind as not "naked eye," fails. Deeply isolated systems, embedded systems, development environments, headless systems, virtualized systems, etc., don't have working GUIs, complex input devices or other high fidelity tools. You get a terminal. The terminal tools are the ground truth when all else has failed. They need to work. And when they work in a usable manner they're wonderful: you can deal with complex tasks and issues over absurdly slow connections, tunneled and bounced through a endless chain of hosts, with no client side capability beyond a terminal emulator. This is one of the key benefits of the UNIX legacy and a reason it has proliferated to nearly every application.
Having answered your question directly, I'll ask mine: what, pray tell, do you recommend that meets every requirement stated or implied above?
Also the point of the article is that all of this stuff used to work just fine. Abandoning tools people used just fine for decades is a cop out wrt to the context of this conversation.
There's a new wave of Rust based tools. Things like sd instead of sed, and fd instead of find. I think they have an opportunity to fix these things. They're not built in right now, and probably won't be anytime soon. But maybe eventually they will be.
Although, on a different note, I don't think they follow the hive or cathedral design that this author discusses so maybe they will end up with their own lack of cohesion.
I find it weird that despite having a bunch of options to control output and even filter things, df does not have an option to specify "show me only physical block devices and only once (my /dev/sda4 shows up for various mountpoints but still all show the same size/used/avail values)".
I love the idea of hive design. Any examples of large projects where it continues to be a principle?
I can think of a load of small ones like Hare, Suckless tools, etc. But no big ones (not necessarily an argument against it working though- could just be me not knowing any)
What about governance in The Hive? For Cathedral and Bazaar, it's simply the two opposite corners: control everything, or control nothing. Just like we use binary because it's the min and max of voltage: it's simple. We don't use intermediary voltages. It costs energy to maintain that.
To align with the colorful analogies in the article, governance in The Hive is 'draw the rest of the fucking owl' here. Ahem, what is distributed consensus?
I have quite a few ideas about that, but they remain to be tested (Define a voting pool, let everyone vote for everyone, run a PageRank, publish the top 20 Queen Bees, let singleton decisions be taken in Queen Bee committees, decay votes for renewal). Let's call it "Human Staking"? Surely some research has already been done about that.
this reminds me of a locale issue. When I ssh from Mac to Ubuntu 22.04 I get some error about LC_??? not being set. Looking for a solution lead me here
what sticks out to me is there is no definitive answer. every answer is different. I'd have to already know the correct answer to know the correct answer
Further, I've never done anything out of the ordinary on either Ubuntu nor MacOS. Both are standard setups.
How can it be 2024 and I'm running into issues like this?
Every time I ssh to FreeBSD by terminal is screwed because FreeBSD doesn’t know what alacritty is. Which would be simple to fix but FreeBSD uses a different terminfo format which has to be set up manually on each box and I can never remember how to do it.
106 comments
[ 2.1 ms ] story [ 172 ms ] threadI’ve filed bug fixes on a handful of projects and tracked open issues on quite a few, and the stream of inbound PRs is often so random. Not just bug fixes but new features. Where’s the plan? Whats the scope? Which of these PRs is likely to land? Can anyone but the maintainer guess?
If by any chance someone knows the tools that were used to make the big-font subtitles (or the whole page?), enlightenment would be highly appreciated!
[1] We have inside-out retinas, why did we not get them the right way around just like squid have? Why can we not synthesize vitamin C? OK, we evolved somewhere where it was available on every tree but would those few extra genes have bothered us? The dog under the table has them, why not we?
Hyperlinks are the cornerstone of the web. Don't be afraid of using them!
The difference between them and a simple hyperlink is that they can and often will provide some additional context, that is out of the scope of the original text. Ideally on a website meant for computer screens you wouldn't have them on the end, but in the margins, next to the information, but for short stuff it is okay to put them at the end of the chapter – bonus points if the reference numbers can be clicked and take you to the foot note, extra bonus points if there is an arrow taking you up again.
But this is scientific literature style writing, not everything needs footnotes.
"hover" has no meaning on touch-based interfaces.
It's possible to 'link' to a html tag, so the page jumps to the bottom, where the additional context is, much like wikipedia does
Hyperlinks would be convenient, but something about the raw text / ascii art vibe makes me happy everytime I read a blog post from j3s even if it doesn't have the conveniences of the modern web.
[0] https://j3s.sh/about.html
It is clear that the author is very explicitly going for the aesthetics of a terminal, given that all formatting of the text is ASCII based down to the line length being hard coded as if we are dealing with a hard limit of columns.
Personally, I'd prefer something more like this: https://www.creesch.com/dump/img/img_66c3127604542.png.
In the end users lose anyway
(ok the analogy starts breaking down at some point but you get the idea :-P)
Yes, vscode and plugins can do everything. But Phpstorm integrates everything into one coherent package. Too many random directions is more annoying.
In terms of software dev, it's quite hard to get a good app wide experience. There's just so many people working on the project. Without someone to make sure things are aligned, things fall apart into random wild patterns everywhere.
The other day I took the output of df -h and gave fed it to an LLM, asking, anything stands out here? It helped.
That being said, Claude turned no fun. [0] I remember back when ChatGPT first came out, I'd say `ssh root@mainframe.nsa.gov` and it came up with some interesting outputs.
[0] https://i.imgur.com/a/ZzBxRcq.png
df has a switch to exclude types like tmpfs, mount can use grep -v, etc. Make aliases.
You'll google it and find 10 different ways for 10 different distros, and most of them will require doing byte math (but you're not sure if KB is really kB and 1000 or 1024). If you get it wrong your computer blows up (probably).
And if you think resizing was hard, try to defrag and shrink one!
[1] For example if you install RHEL using wizard it will create a bunch of virtual logical areas that each have partitions allocated that each have disks allocated and if you want to resize them later you have to resize the onion all in the correct order.
It'll require root, yes. But in Windows you're already "root", so it doesn't count. No, "permission elevation prompts" doesn't count. You're still defacto Administrator on that system.
BTW, none of the CLI tools allow you to overlap partitions or shrink below used percent. So you can't blow your data up unless you try really hard (like fdisk delete/recreate tricks).
Systems like Raspberry Pi make these things easier, too. They both have docs, or you can do on your system with gparted already. Also, as I aforementioned, none of the CLI tools eat your data unless you force them to.
Lastly, all the tools accept KB, MB, etc. as prefixes/suffixes. So, I rarely make back of the napkin math for these things, if ever.
> But for example if you installed Red Hat CLI-only version, it's probably so hard you'll give up and just ask Red Hat support to look at your logs and send you the commands to run.
Actually it's not hard. You only need to know that you have your filesystems in a LVM (Logical Volume Manager) container. Unless you're not changing the size of the LVM volume, it's the same thing, only the device name changes.
If you're adding disks, you need to first increase the LVM size to span the other disk, and add or resize your partiton there.
It's not intentionally hard, you meet with a layer you generally don't see everyday. Even if you boot a LVM containing system from a live distro, say GRML, you only need to "activate" the LVM container with a single LVM command, and it's the same thing after that point.
It's a matter of thinking in layers.
That said, anyone know of any good alternatives that parse it into something actually -human readable?
Linux : Everything is a filesystem
I also noticed the /var/credentials/ mounts showing up recently; that's for a systemd feature that neither I nor you actually use, to set encrypted secrets for these services in a way that is exposed only to those services via a centralized framework. If you didn't explicitly use it, it's all empty. But it started years ago with the mounts for efivars, pstore, binfmt-misc, kernel/debug, kernel/security, etc. Sure they're useful sometimes, but they shouldn't be enabled until you have a need and then explicitly enable it. Well, that's my preference, so I always start with minimal debian or arch linux, but even on such minimal systems that have switched to systemd, you get all this stuff enabled and mounted by default.
If you're actually using a tmpfs mount, like perhaps just one on /tmp, then you do want df to tell you how full it is. The problem is that you have 20 fs mounts that are truly useless to you, and IMHO should not be there. And ironically I think systemd developers do have a strong opinionated design vision, and if you don't like it you can pound sand (or use void or alpine for a desktop system I guess), because they have successfully taken over the vast majority of the desktop and server linux ecosystem. Anyway I still like linux for the flexibility I have elsewhere in the stack to make it work the way I want, reasonably conveniently for me.
(Many would think I'm an idiot for not appreciating the brilliance and necessity of what systemd has done, but for a completely different angle about systemd I recommend: https://blog.darknedgy.net/technology/2020/05/02/0/ (seems tls cert expired a few days ago, but it's fine to ignore))
It does what mount and df do, only with more options and filters. It is part of mount -- IIRC today's mount just runs findmnt --mtab under the hood -- and therefore available on all modern Linux systems. I guess the article's author would have been happy with
Perhaps one may learn to remember <df> and <ls -a>, but will definitely not care to produce by heart oneliner bash abominations sprinkled with sygils and pipes and three-char cmd names.
This whole article very true, but somewhat irrelevant to 2024. Claude/Mistral/CHatGPT been parsing outputs perfectly, and there are plenty of experiments into getting the LLM to assist code writing and parsing results directly from the cmdline. And you know what, this also works in 100% console mode, you don't need GUI to talk to the new GUI called LLM.
the smaller models get, the sooner they get embedded in shells. then you'll get the real Ghost in the Shell, yeah...
besides this comment of yours is exactly what was expected as a first response, and is very boring.
The good ones will produce more reliable code than current LLMs. But on average, I don't think so.
Maybe it has to do with strings not really having been a first class citizen in C? Processing strings in C is a (dangerous) pain even in the year 2024.
I often find myself just writing python scripts calling subprocesses (if needed, so much is already included), ideally with a --json option so I get proper machine-readable output. This has shown to be far more stable and reliable than bash.
The author is complaining about inconvenience. If I'm in the shell, and I want to see how much disk space I have, asking a LLM for a command then running the command then asking the LLM to parse it is still inconvenient, compared to just typing "df -h" and getting a reasonable output.
The fact that Claude or whoever can parse that output seems irrelevant to the article as I understand it. "AI" is not a magic silver bullet.
All I’m saying is long prompts of shell progs that you need to use once or twice are easier written in the newskool way, not that proper output of common programs is bad idea.
But I really can’t imagine anyone or anything convincing thousands of devs to conform certain format. Really a wet dream today unless started so from day one. Only big players can do that.
For example if the overwhelming majority of users use df to get an overview of how much disk space they are using and how much they have left, the default option should be giving you a easily digestable output of precisely that.
I get that in terminal-land this can be a problem, as the default df command is now probably parsed by a thousand shell scripts and chaninging it breaks things. But that is also bad design: If there are hard reasons like that that could conceivable lock you into doing it a certain way, you should warn against it and offer a stable alternative (stderr: "The output of df -h is not meant to be machine readable, use df --machine instead"). Again frequency is the guide here. People will more often type df -h to manually check things than they have to write df --machine in a script.
Same goes for the default output of ip a (which in my opinion should be more like ip -br -c a).
Improving this stuff isn't happening because no one is funding the work. A hobbyist or gainfully employed contributor stealing time from "real" work can't manage this anymore: complexity is too high now and the gatekeepers aren't -- for good reason -- going to tolerate naïve contributions.
There is very little money in the Linux world for anything a Linux distributor or hardware manufacturer doesn't care about. The former care only about the high value features people pay license/subscription/support fees for, and the latter just get drivers working, and maybe rework a kernel subsystem when absolutely necessary, and leave the rest.
The money exists. The Linux Foundation collects a quarter billion a year, for example. But they've found a long list of better priorities to spend it all on.
I don't know about the "trainwreck design" concept. There is nothing here that can't be solved given some hard headed refinement. It's just that no one is doing that.
My first instinct was to answer your question with a question. I'll avoid that.
In the real world of devops, whatever you might have in mind as not "naked eye," fails. Deeply isolated systems, embedded systems, development environments, headless systems, virtualized systems, etc., don't have working GUIs, complex input devices or other high fidelity tools. You get a terminal. The terminal tools are the ground truth when all else has failed. They need to work. And when they work in a usable manner they're wonderful: you can deal with complex tasks and issues over absurdly slow connections, tunneled and bounced through a endless chain of hosts, with no client side capability beyond a terminal emulator. This is one of the key benefits of the UNIX legacy and a reason it has proliferated to nearly every application.
Having answered your question directly, I'll ask mine: what, pray tell, do you recommend that meets every requirement stated or implied above?
There's a new wave of Rust based tools. Things like sd instead of sed, and fd instead of find. I think they have an opportunity to fix these things. They're not built in right now, and probably won't be anytime soon. But maybe eventually they will be.
Although, on a different note, I don't think they follow the hive or cathedral design that this author discusses so maybe they will end up with their own lack of cohesion.
I really wish we'd stop naming things `a`
I find it weird that despite having a bunch of options to control output and even filter things, df does not have an option to specify "show me only physical block devices and only once (my /dev/sda4 shows up for various mountpoints but still all show the same size/used/avail values)".
On my machine, none of the snap/tmpfs/efivars stuff shows up:
I can think of a load of small ones like Hare, Suckless tools, etc. But no big ones (not necessarily an argument against it working though- could just be me not knowing any)
To align with the colorful analogies in the article, governance in The Hive is 'draw the rest of the fucking owl' here. Ahem, what is distributed consensus?
I have quite a few ideas about that, but they remain to be tested (Define a voting pool, let everyone vote for everyone, run a PageRank, publish the top 20 Queen Bees, let singleton decisions be taken in Queen Bee committees, decay votes for renewal). Let's call it "Human Staking"? Surely some research has already been done about that.
https://askubuntu.com/questions/162391/how-do-i-fix-my-local...
what sticks out to me is there is no definitive answer. every answer is different. I'd have to already know the correct answer to know the correct answer
Further, I've never done anything out of the ordinary on either Ubuntu nor MacOS. Both are standard setups.
How can it be 2024 and I'm running into issues like this?