Every so often, ask others just how far their ideas go.
HN user
kmstout
https://reindeereffect.github.io
Here's a better link:
I see parenthetical expressions overused all over the internet, especially in HN comments. (Don't worry, I do it sometimes, too.) A browser extension to collapse or strike through parenthetical text nested beyond a configurable level might be handy.
Be sure to check out http://tom7.org/account-balance
"I Ping, Therefore I Am": https://www.ipingthereforeiam.com/bbs/
In the same way, "power users" of coffee don't use a coffeemaker. They use things like French press.
As a perpetual intermediate, I find that a pour-over cone is a great balance of convenience and quality.
It's like an enchilada, right?
how much of that JS is functional
Lots of sites become more functional with JS disabled.
Best article ever.
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.
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.
Let's flip it around: Who are the survivors who did none of the things people prescribe?
I have routinely noticed this sort of construction since a few years [1]. Does it correspond to standard usage in other languages? If so, which ones?
---
[1] See what I did there? Eh? Eh?
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:
(setf scroll-preserve-screen-position t)
(setf next-screen-context-lines 0)
For many of the websites that I use, this arrangement combines nicely with eww to make a very screen-efficient browsing experience.---
[1] That is, three windows of the same size side-by-side.
> help command_listAnd monads are like burritos. Therefore, monads are like planes. How shall we represent diverted luggage?
(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
/^(<>)*$/
and two levels with /^(<(<[^<>]*>|[^<>])*>)*$/
Don't do this when you have better options.---
[1] https://reindeereffect.github.io/2018/06/24/index.html
[2] As do any machines I can afford, but my money can buy a pretty good illusion.
[3] < and > are not among the typical regex metacharacters, so they make for an easier discussion.
In Common Lisp, it's common for special variables' names to have "earmuffs" (i.e., asterisks at each end), so Luke's sister could be *princess-leia*.
(edit: added formality)
Years of listening to C-SPAN have taught me the value of declaring what I intend to do and then proceeding "without objection." [1]
(I'm still waiting to "yield myself such time as I may consume.")
---
$ aspell dump master | egrep -i '^i.{18}n$'
institutionalization
internationalization4b 65 6e 74 20 50 69 74 6d 61 6e 20 72 65 6c 61 74 65 64 20 5b 30 5d 20 74 68 65 20 63 6f 6d 6d 65 6e 74 20 6f 66 20 61 20 70 72 6f 67 72 61 6d 6d 65 72 20 69 6e 20 50 61 6e 61 6d 61 2c 20 77 68 6f 20 6c 69 6b 65 6e 65 64 20 45 6e 67 6c 69 73 68 20 6b 65 79 77 6f 72 64 73 20 74 6f 20 6d 75 73 69 63 61 6c 20 6e 6f 74 61 74 69 6f 6e 73 20 62 6f 72 72 6f 77 65 64 20 66 72 6f 6d 20 49 74 61 6c 69 61 6e 2e 0a 0a 5b 30 5d 20 68 74 74 70 73 3a 2f 2f 64 65 76 65 6c 6f 70 65 72 73 2e 73 6c 61 73 68 64 6f 74 2e 6f 72 67 2f 73 74 6f 72 79 2f 30 31 2f 31 31 2f 30 33 2f 31 37 32 36 32 35 31 2f 6b 65 6e 74 2d 6d 2d 70 69 74 6d 61 6e 2d 61 6e 73 77 65 72 73 2d 6f 6e 2d 6c 69 73 70 2d 61 6e 64 2d 6d 75 63 68 2d 6d 6f 72 65
Def not making an account on whatever random website heatpumped.org is.
Yet another example of a paywall that can be defeated by disabling JS or using a text mode browser. Those are my second favorite. The most entertaining are the ones that pack the article text into some JSON, and then use JS to generate the readable version. At least then I get a minor puzzle to solve.
RSS is great for this. The vast majority of my 200+ feed subscriptions are for rarely updated blogs or YouTube channels.
For BBSes, MUDs, etc.:
- https://www.telnetbbsguide.com/
- https://www.ipingthereforeiam.com/
Plenty of boards run Multi-Relay Chat (MRC), which is IRC-ish.
A couple things:
- Between using Bash's functions and breaking large scripts into multiple, separate scripts, one can keep things reasonably tidy. Also, functions and scripts can be combined in all the ways (e.g., piping and process substition) that other programs can.
- If I run into a case where Bash is a poor fit for a job, I ask myself, "Self, what program would make this easy to do in a shell script?" If I can respond with a good answer, I write that, then continue with the shell scripting. If not, I write in something else (what the kids would call a "proper" language).
I lost track of how many articles I had to open to hit their paywall in Firefox, but disabling JavaScript will nicely bypass it.
"The next time they bug you about Grant's drinking [...] tell them you're gonna find out what brand he drinks and send a case of it to all your other generals."
--Bob Newhart, as Lincoln's PR consultant
It's fine in a text-mode browser.
[...] screen real-estate is also important [...]
This is why I've been spending a lot of time (ab)using Emacs's browser, eww, in conjunction with follow mode: The two together allow me to view most things in an efficient columnar display, letting me take better advantage of the width of my screen. (It's hard to rotate a laptop's monitor.)
Not quite. Late last year I began running a Searx instance locally, less for privacy than for having a hackable meta-search engine. Since it supports several "bangs," like !ddg and !yt and the like, I generally use this for quickly searching Youtube without changing context. When I enable images [0], I can see the thumbnails just fine. Regardless, there are plenty of places on the web (like here) where people will post interesting YT links, and having them pop open in mpv is a good default [1].
I've also evolved a CLI YT client, based on mpv/yt-dlp and fzf; it does not show thumbnails. Even so, it's perfectly fine for gathering lots of search results, like
$ yt 500 medical uses for hollandaise
which will gather the first 500 results about medical hollandaise [1], filter out the shorts, and present the remaining results in an fzf-based UI. I haven't really missed the thumbnails.---
[0] One of the first things I did with eww was to bind "I" to a function that toggles images on or off and re-displays the current page.
[1] In my setup, I can override all special handling of a URL by holding Ctrl while hitting Enter to follow a link.
[2] Earlier today, I had a fascinating conversation with TinyLLama about the medical uses of hollandaise and options for regulating it. Did you know that it can be taken intravenously to help fight cancer?