by iLemming | 2025-08-07 17:41:20+00:00
Oy vey, I guess I'll have to get more prescriptive than enumerative. I do seriously appreciate your wonderment and the invitation for less emotional and more scholarly discourse.

> getting an excellent UX for any one of those given tasks is only possible by using a tool made for that job.

That's true, but only to a certain extent. You see, when you look at Emacs' pieces individually, it's really difficult to see it as a perfect tool for any job. Emacs isn't the best email client, it certainly doesn't have the best web browser, it isn't the greatest debugging tool for any given programming language, it's not the best version control tool, etc. But that's when you look at each of the features in isolation. What makes Emacs the overall greatest thing is that it has the ability to act like glue, and things can work in harmonious integration, I've spoken about that before. https://news.ycombinator.com/item?id=44131735 "I cannot compare one or multiple selected aspects of Emacs, because in my view that is a pointless mental exercise — I have the holistic comprehension of Emacs features and only can speak about the emergent properties that arise from their integration. To isolate individual features would be like asking a fish to compare water to air - I exist within this environment so completely that I cannot meaningfully separate its components from the unified experience they create."

> it would take a lot of time for me to tweak a plugin or write my own.

It may take a long time regardless of what tools you use. It all boils down to the mastery of a chosen tool. The majority of beginners focus on shiny trinket features and text editing machinery of Emacs instead of reaping the fundamental principal truth about it - Emacs is not really a mere text editor; in fact, it's a kind of Lisp machine with a text editor embedded in it. Once someone understands that, accepts Lisp with all its enormous power and some unavoidable flaws, that fundamentally changes the entire philosophy of using Emacs to accomplish things.

Now, that's all axiomatic inscribed acoustics, let's get down to less theory:

- For video playback control I use mpv.el with some customizations. Turns out mpv player has IPC and can be perfectly controlled from Emacs, I bet Neovim users do that as well. It's nice when taking notes or when I need to review a bunch of videos in a folder. I have a transient I use to play, rewind, speed up, etc., all directly from the current buffer. It's great.

- I use org-noter for annotating PDFs - it's really nice. I just can't read any technical or scholarly sources without taking notes. And these notes are never disconnected from the source - I can always see my notes next to the exact page. I never needed to find a way to actually embed the notes in a way so I can read them on my phone or tablet, but I bet these days it would be just easier to run Emacs - Android lets you and I don't own Apple products anymore.

- > I don't use anki at all anymore

Oh, that's sad, because there is plenty of research done that proves the effectiveness of spaced repetition. Starting from Ebbinghaus and Pimsleur in the beginning-mid of the prior century, to the modern empirical studies - Cepeda, Kornell, Karpicke. Meta-analyses of Dunlosky and Carpenter. There's recent neuroscientific evidence - Smolen, Zhang, Byrne, et al.

What I like about anki-editor that my flashcards are just my notes - I don't need to maintain some special format, somewhere else. These days, I even often generate flashcards using LLMs and sync them to my phone.

- For testing API endpoints I use Org-mode source blocks. For simple queries - ob-http, for data-heavy stuff I use verb.el - what I like about it is that it exposes hooks where I automatically convert json response to Clojure data structures. IMO Clojure is hands-down the best tool for quick data manipulation. I would have a src-block with `:wrap src clojure` in the header, then I can immediately start exploring the data - slicing, dicing, grouping, mapping through it, visualizing it - all without having to send new requests over and over again. I'm pretty sure I can do the same thing with ob-http by advising corresponding functions, but verb.el has public hooks that are well documented, so... Besides, using org-mode source blocks allows me to pipe that data into any other different language - e.g. Python.

... I'm having to split it (HM whines that my comment gotten too long)...