Readit News logoReadit News
not_your_vase · 25 days ago
Somewhat reminds me of the vigil eso-language (https://github.com/munificent/vigil)

It's a programming language that helps you write error-free programs, by self-correcting itself. If it finds an error (exception), it simply deletes the offending code until the program runs without an error.

wfleming · 25 days ago
There is also a JS pkg with similar behavior: https://github.com/mattdiamond/fuckitjs
dang · 25 days ago
Related. Others?

Suicide Linux - https://news.ycombinator.com/item?id=41748336 - Oct 2024 (1 comment)

Suicide Linux (2009) - https://news.ycombinator.com/item?id=24652733 - Oct 2020 (170 comments)

Suicide Linux - https://news.ycombinator.com/item?id=15561987 - Oct 2017 (131 comments)

Suicide Linux (2011) - https://news.ycombinator.com/item?id=9401065 - April 2015 (55 comments)

Suicide Linux: Where typos do rm -rf / - https://news.ycombinator.com/item?id=4389931 - Aug 2012 (1 comment)

orthoxerox · 25 days ago
For those who aren't ready for Suicide Linux yet, there's `sl`, a command that mildly punishes you for not being able to type `ls`, available in most distros.

  sudo apt install sl

gzread · 25 days ago
So if you're not ready for SL you can try sl, which uses little letters so it's not as scary. Nice.
stn8188 · 25 days ago
`sl` is my favorite first package to install in any distro to get see if the package manager works :)
irishcoffee · 25 days ago
I’m boring, my first (on rocky lately) is epel-release followed by htop or btop.
nurettin · 25 days ago
Years ago I installed this at work for new linux users as a prank. They will hate me forever.
tmtvl · 24 days ago
I've got 'sl' set to 'ls "$@" | rev'.
zahlman · 25 days ago
> I suppose I should finally clear this up: The autocorrect functionality I originally described here was a feature of the first Linux systems I ever used, so I assumed it was how every Linux system worked by default. Since then I've come to understand that it's a completely optional extra doodad.

What systems did this? I've never encountered one that I can recall.

shagie · 25 days ago
I recall from my early days of reading the jargon file... maybe DWIM? http://www.catb.org/jargon/html/D/DWIM.html (that said, someone who used that version would have many gray hairs... I was reading about this back in the early 90s).

    Warren Teitelman originally wrote DWIM to fix his typos and spelling errors, so it was somewhat idiosyncratic to his style, and would often make hash of anyone else's typos if they were stylistically different. Some victims of DWIM thus claimed that the acronym stood for ‘Damn Warren’s Infernal Machine!'.

    In one notorious incident, Warren added a DWIM feature to the command interpreter used at Xerox PARC. One day another hacker there typed delete *$ to free up some disk space. (The editor there named backup files by appending $ to the original file name, so he was trying to delete any backup files left over from old editing sessions.) It happened that there weren't any editor backup files, so DWIM helpfully reported *$ not found, assuming you meant 'delete *'. It then started to delete all the files on the disk! The hacker managed to stop it with a Vulcan nerve pinch after only a half dozen or so files were lost.

    The disgruntled victim later said he had been sorely tempted to go to Warren's office, tie Warren down in his chair in front of his workstation, and then type delete *$ twice.

    DWIM is often suggested in jest as a desired feature for a complex program; it is also occasionally described as the single instruction the ideal computer would have. Back when proofs of program correctness were in vogue, there were also jokes about DWIMC (Do What I Mean, Correctly). A related term, more often seen as a verb, is DTRT (Do The Right Thing); see Right Thing.

ktm5j · 25 days ago
I'm on my phone so I'm too lazy to dig for this, but I'm pretty sure they're talking about the bit of shell script that gets run if you type a command that isn't found in PATH.

Fedora and Debian will both dive straight into searching apt/dnf for a matching package and ask "do you want to install this?"

I imagine you could create a hook that gets run for any command failure, but again I'm on my phone so not sure.

VorpalWay · 25 days ago
This is generally called a command-not-found handler and are a feature of all the major shells (though the exact details differ, the general idea is to define a function with a specific reserved name), and most majors distros have ones that can be installed, even if they aren't by default.

I wrote my own (much faster) such handler for Arch Linux. I even wrote a blog post about the design: https://vorpal.se/posts/2025/mar/25/filkoll-the-fastest-comm...

dataflow · 25 days ago
aflag · 25 days ago
I thought Ubuntu did that, but not Debian. Still, that's very different than what the author mentioned
bandrami · 25 days ago
cachy's setup of fish tries to suggest commands (and even arguments) it might be, which I find terrifying and so turn off.
iguessthislldo · 25 days ago
Zsh can suggest the corrections to commands and filename. I'm not sure if that's what they're talking about, but zsh has been around for awhile.
dijit · 25 days ago
Anything that ships with a default zsh shell, which is a surprising number of distros actually.
esseph · 25 days ago
Do any of the major ones?

Debian, Ubuntu, Fedora, Red Hat, etc. don't.

ninth_ant · 25 days ago
There are some bash options like cdspell or dirspell that are likely what the blog author is referring to.

Either that or they were using zsh with autocorrect preinstalled or had somehow rigged up the thefuck to execute and run on any error somehow? Either way seems like a terrible default.

xg15 · 25 days ago
Wasn't there an article on here a while ago that this "autocorrect" had a bug and was actually supposed to trigger only after several seconds of no user input, not immediately?
ghrl · 25 days ago
I did something similar while I was still working with Windows a long time ago. I had just switched to PowerShell from the basic command line and kept typing cls, which did not work. I had typed that so often it was completely in my muscle memory, and every time the ugly PowerShell error would appear. So I decided to do the proper thing and NOT alias cls to clear, but instead alias it to immediate shutdown (shutdown -f -t 0 -s iirc) and that did work eventually. Wouldn't change a thing since clear is the universal command almost anywhere so it's a lot better muscle memorizing that!
thenthenthen · 25 days ago
The 120 days of *buntu (2011) was maybe inspired by this? A collection of 120 strange, useless, funny ubuntu variants: https://yugo.at/projects/120days/ and pdf here (78Mb) https://yugo.at/pdfs/120days_of_buntu_Danja-Vasiliev_Gordan-...
drunkonvinyl · 25 days ago
this reminded me of this wonderful utility: https://github.com/nvbn/thefuck
agvantibo · 25 days ago
Unfortunately thefuck seems to be unmaintained

nixpkgs maintainers have found https://github.com/iffse/pay-respects to be a modern replacement

pbronez · 25 days ago
That one actually looks useful!
KerrickStaley · 25 days ago
A fun way to play this game with less downside is to run `set -euo pipefail` in an interactive session. Then, whenever you execute a command that returns a non-zero exit code, your shell will exit immediately.

Unfortunately certain commands like `rg` will return non-zero by design when there are no matches, which could be an intentional outcome.

extraduder_ire · 25 days ago
Just remember what those commands are, and to type a || or && next to them each time you run one.

'<cmd> || echo$?' is a good option, if you care about the return value.