To go along with (2), "C-h k <KEY SEQUENCE>" and "M-x view-lossage" are excellent starting points for investigating what any key stroke means. From there, one can follow links in function and variable help all the way to the relevant elisp definitions.
If only that ease of hood-popping were more common.
I’m a Rust dev so Zed looked like a win for me (my Elisp ain’t that good), but it doesn’t have the same immediate extensibility that you get used to… and sadly it doesn’t run inside containers because it needs accelerated video :sad face:
Data point: A few weeks ago, I spent some time shuttling text between one of the Llama models (have to check which one) and Dunnet, the text adventure packaged with Emacs. Over several trials, the Llama never realized that it needed to dig where the ground "seems very soft." It never got the CPU card, then it became confused looking around the building for clues about how to start the VAX. At one point it lost track of the building layout and got stuck oscillating between the mail room and the computer room.
In German you might say "seit drei Monaten", translating word-for-word to "since three months", but meaning "for three months now". The author in this case is French, where saying "depuis trois mois" is perfectly fine (as far as I know).
English, where that construction sounds weird and at least needs some helpers around it to exist, is a bit of an odd one out. It is kind of odd that we can say "for three months" to say that something took three months, but we can't say "since three months" to refer to something that has been going on as of three months ago.
For reading anything of length, I like to split horizontally into three balanced windows [1], put the buffer in all of them, and `M-x follow-mode'. At that point, I get a nice columnar display that makes better use of the screen real estate.
If you do this, you can make paging snappier and more predictable like so:
This is a MUD, which stands for "multiple user dungeon"; what's more useful is that it's based on a form of game called a "text adventure". Once upon a time back in the eighties these were some of the biggest sellers of the game industry! They would present a small world to explore, often a mostly-abandoned one because that's easier to do. You'd wander around, map the world (usually on paper, by hand! [1]), and discover creatures, characters, and items sitting around it, waiting for you to interact with them.
A lot of them were in the form of exploring some kind of dungeon; D&D was popular among nerds, and "what if the computer did all the record-keeping" was a popular thing to explore. Which explains why this is a "multiple-user dungeon" even if nothing in it is described as dank, underground rooms full of monsters and treasures.
Directions are given as compass directions because that's the very first text adventure did ("Colossal Caves"), and nobody ever found anything better - a few games tried forwards/left/right/back but it was very confusing to keep track of which way you were pointing.
In practice a lot of muds really ended up more like chat servers with a sense of place; instead of being in a "channel" with other people, you're in a "room", which might have a "bulletin board" on it for less-ephemeral discussions than the general chatter among players. There might be monsters to fight and puzzles to solve somewhere off in the map but nobody engaged with them. Instead they just hang out and chat, and roleplay.
I learned how to program in MUDs, made friends (including my first girlfriend, online dating was very different 35 years ago), and (mostly) had a great time. The death threats weren’t much fun, especially since he lived 2 hours from me.
I am curious about your “biggest sellers” comment. What was sold, and by whom?
MUDs were fun because, as a kid who read various magical fantasy series, there would inevitably be a server that was spun up attempting to recreate the world and magic system. Because it was just text, it made it far easier to do fan works like that. It's something kids today probably can't imagine. Really enjoy Twilight? You can join as server and make a character who's a [N]ormal Teenager, [W]erewolf boy, [C]enturies-old Sparkling Vampire. And you'd have a whole list of skills and progression for 100 levels. Wheel of Time had several different competing codebases with differing versions of channeling.
It was an entertaining way to learn C as a kid, and programming new weird spells made one feel like an actual wizard.
I think there's still some space for MUDs in the world. You could build a programming/literacy class around just teaching kids how to navigate and interact within that world, how to be a god/mod/admin within the world using its tools, and how to modify it and compile it with their desired changes.
My guess would be Zork and the other Infocom games which at the time were huge because they could be played on the very limited PC's of the 80's and were top 10 selling games. Myst is basically a graphical "text style" adventure that was huge in the 90's and drove lots of CD-ROM sales and was a top seller for like a decade.
> (Keeping in mind that traditional regexes can't balance brackets; presumably they can't properly track indentation levels either.)
You're right: Regular expressions are equivalent to finite state machines[1], which lack the infinite memory needed to handle arbitrarily nested structures [2]. If there is a depth limit, however, it is possible (but painful) to craft a regex to describe the situation. For example, suppose you have a language where angle brackets serve as grouping symbols, like parentheses usually do elsewhere [3]. Ignoring other characters, you could verify balanced brackets up to one nesting level with