That's awesome. I wish more games would come up with creative ways to integrate "IRL" into their in-game environment.
This reminds me of the Wii U port of Legend of Zelda: Wind Waker. During the Wii U/3DS era nintendo had their own social network called miiverse, which was functionally identical to twitter but games could access and post messages to your miiverse account. Wind Waker's integration was to let you scribble down a miiverse post onto a sheet of paper (via the Wii U's touchscreen) and Link would roll it up and shove it into a bottle then throw it out to sea. It would then wash up on a beach in somebody else's game and you likewise would find other peoples' miiverse-in-a-bottle posts scattered all over the beaches of hyrule.
Emacs users have all the fun. And just like eve online or dwarf fortress, I can't seem to get fully into them myself, but I love reading stories about it.
I took three approaches for me over a span of two years to really get into emacs. It was pretty tough (a time before google was a thing).
Now iam spoiled - I recently tried vscode a bit and really was baffled because it seems there is no kill ring like the one in emacs that makes it basically impossible to lose any edits.
RimWorld is a game that makes me want to fuse with an LLM. It already has an incredibly sophisticated backstory and memory and motivation system; it can't be too much work to hook up an LLM to get the pawns to speak and act in novel ways.
I've stuck with it so far (over 3 years in). I've learned a few Emacs-isms (M-x is indispensable) but it's pretty convenient to press space and be presented with a list of choices if I've forgotten certain key bindings.
I'm unlikely to give up evil with ~25 years of Vi/Vim muscle memory, but I'm open to trying other systems in the future. Since Vi/Vim operations are verb -> object, the advantages of object -> verb commands are tempting so one can see the target of a command before it's actual execution. The Vim workaround is invoking visual mode, of course.
Obviously with vanilla Vim, you're going to have to memorize everything and I eventually did that way back when. Being presented with the key bindings menu helps to remind me of things that I use less frequently and avoids time spent digging into the help system.
Sorry for the slow reply (but then my HN replies are never guaranteed either).
Or Slashem, which is Nethack 3.4.3 plus ice+fire mages, vampires, new levels, new crazy objects and whatnot. And there's a Jedi patch lurking out somewhere.
Anyone who loves Nethack should try Slashem a bit.
I use mbsync and msmtp with mutt. It just works, kinda like slrn+slrnpull.
On Nethack, I prefer Slashem which is kinda the same as a megaextended 3.4.3 with new classes and roles. Oh, and I play Nethack 3.6.7 too because of Pratchett.
Nethack is one of the wildest. So many hardcoded edge cases and wild interactions.
From the wiki: "Food rations have a 1/7 chance of being rotten when eaten if they are uncursed and older than 30 turns, or else are blessed and older than 50 turns, while cursed food rations are always rotten. Food rations can be thrown to tame domestic canines and felines and pacify domestic equines. "
The game takes on a new level when you find you can build an army of big cats, or gallivant about with a lance on a warhorse (P.S. nevertheless this is still newbie stuff. I never got very far after many hours of attempts...).
I recommend trying Dungeon Crawl Stone Soup also. The devs are constantly refining the game to increase the fun factor and aren't afraid of removing decades old features to do it. E.g.: In more recent versions there is no food hence you cannot starve to death (a questionable game mechanic in a type of game lacking any real "economy").
The hunger mechanics were made to not leech down the machine as an user and stop grinding uselessly. As of DCSS, it's more ARPG bound than a Roguelike.
My immediate question is around security. If the nethack binary is setuid(root), setgid(games), or similar, are privileges dropped before the exec("mail-command") happens?
We've seen a lot of trivial local escalations like that in the past.
That's an excellent question, I thought the exact same thing when I wrote this article. From what I can tell [child](https://github.com/NetHack/NetHack/blob/ed600d9f0f3c37677418...) properly spawns a child process with the real uid/gid instead of the effective uid/gid.
And to your point, there are actually a decent number of [CVEs](https://www.nethack.org/security/) due to NetHack being set[ug]id.
The 21st century way might be some combination of watchexec[1] and just[2] but you can't assume the availability of these tools.
You can almost assume the availability of make but a lot of distros (hello, Ubuntu) omit basic build tools.
Admittedly I used an LLM recently to write me a Makefile because my brain doesn't have the capacity to remember all make's idiosyncrasies every few years that I touch a Makefile. Once the file is done, it's done, and it was easy to pare down from the verbosity that the LLM coughed up.
I also wanted targets for intermediate build files (long story) so that would have required excessive poring over the man page.
This reminds me of the Wii U port of Legend of Zelda: Wind Waker. During the Wii U/3DS era nintendo had their own social network called miiverse, which was functionally identical to twitter but games could access and post messages to your miiverse account. Wind Waker's integration was to let you scribble down a miiverse post onto a sheet of paper (via the Wii U's touchscreen) and Link would roll it up and shove it into a bottle then throw it out to sea. It would then wash up on a beach in somebody else's game and you likewise would find other peoples' miiverse-in-a-bottle posts scattered all over the beaches of hyrule.