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.
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.
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.
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!
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.
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.
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.
Surprise, surprise. Let me be the contrarian: I dislike this attitude of dumbing everything down just because some people can't be bothered to learn how and why their tools work the way they do. They'll invoke "2024" like it means something. Not a great look IMO.
The output of df and mount shows the truth as it is: raw and shitty. Don't dumb it down. Your version of usability might be my idea of a nightmare. I like the raw truth, ugly as it is. If I or anybody needs a `tiktok-disk-usage --fancy` we'll conjure one up. Are we tech or what?
It is exceedingly easy to filter the output of said tools. Nothing to do with money or incentives. It is a completely solved "problem" for the people that need it and are capable of "solving" it. Maybe you should opt for a "desktop environment" that "manages" your stuff so you can have a nice set of disk percentage indicators? I hear good things about "Windows".
The problem is the raw shitty truth. Not that it isn't hidden, but the mess that it shows.
The underlying reason for this mess is that several popular tools, especially in the systemd and containerization-adjacent space, are built on a bunch of non-standardized userspace hacks (e.g. per-process tmpfs chroot jails) that pollute the mount table of the host system. That is the trainwreck.
Why should the default of the tool be totally unintelligble useless (for 90% of single usages) rubbish?
You can have your raw truth - strange way of putting it, its a tool, this is not a detective drama - it would be a more useful tool for the average use-case if this was a flag though (or some other option).
We can't handle the truth!
It is not unintelligible, it is exceedingly simple. If you are not knowledgeable about your system at this level, then sure, it is quite chaotic. But that’s a different problem and why are you at this level anyway?
Also, a substantial amount of this problem is just systemd. Don’t shit on df, which looks fine on, say, BSD.
> It is exceedingly easy to filter the output of said tools.
This is provably false. Consider the content of Linux file systems. There is no one tool to simultaneously observe conventional POSIX properties, ACLs, capability attributes, selinux properties, AppArmor references, etc., to which you might apply a filter. So you have to repeatedly create your own, half-baked, inefficient, throw-away correlation tools on the fly in what little time you can spare.
Why? These features didn't appear last week. Most are older than a lot of people coping with this stuff. I answer that question here[1].
This implies both tools need to adjust to reality - aka systemd bs - to make it easier for the user. Also known as dumbing down. I concede it is not explicitly requested, but it’s not that much of a reach TBH.
It is provably true that the output of df and mount is exceedingly easy to filter. You don’t even need tools to do it.
I don’t care about AppArmor and other BS because I am not on Linux. Those weren’t part of the discussion anyway. It is about mount and df and the author explicitly called them out for failure to be “easy”.
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)".
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.
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.
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.
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
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.
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`
Hyperlinks are the cornerstone of the web. Don't be afraid of using them!
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
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.
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
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.
Dead Comment
The output of df and mount shows the truth as it is: raw and shitty. Don't dumb it down. Your version of usability might be my idea of a nightmare. I like the raw truth, ugly as it is. If I or anybody needs a `tiktok-disk-usage --fancy` we'll conjure one up. Are we tech or what?
It is exceedingly easy to filter the output of said tools. Nothing to do with money or incentives. It is a completely solved "problem" for the people that need it and are capable of "solving" it. Maybe you should opt for a "desktop environment" that "manages" your stuff so you can have a nice set of disk percentage indicators? I hear good things about "Windows".
The underlying reason for this mess is that several popular tools, especially in the systemd and containerization-adjacent space, are built on a bunch of non-standardized userspace hacks (e.g. per-process tmpfs chroot jails) that pollute the mount table of the host system. That is the trainwreck.
Also, a substantial amount of this problem is just systemd. Don’t shit on df, which looks fine on, say, BSD.
This is not for the “average user” IMO.
Where was that demanded?
> It is exceedingly easy to filter the output of said tools.
This is provably false. Consider the content of Linux file systems. There is no one tool to simultaneously observe conventional POSIX properties, ACLs, capability attributes, selinux properties, AppArmor references, etc., to which you might apply a filter. So you have to repeatedly create your own, half-baked, inefficient, throw-away correlation tools on the fly in what little time you can spare.
Why? These features didn't appear last week. Most are older than a lot of people coping with this stuff. I answer that question here[1].
[1] https://news.ycombinator.com/item?id=41288842
This implies both tools need to adjust to reality - aka systemd bs - to make it easier for the user. Also known as dumbing down. I concede it is not explicitly requested, but it’s not that much of a reach TBH.
It is provably true that the output of df and mount is exceedingly easy to filter. You don’t even need tools to do it.
I don’t care about AppArmor and other BS because I am not on Linux. Those weren’t part of the discussion anyway. It is about mount and df and the author explicitly called them out for failure to be “easy”.
> The output of df and mount shows the truth as it is: raw and shitty.
Is pretty much the point they are making about Trainwreck Design. They are using their output of df as a talking point to illustrate the issue.
If you want to call out design shit then just call it what it is: systemd. Leave df out of it, the poor fellow. Mount also has nothing to do with it.
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:
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).
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!
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.
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