860 karma · joined May 1, 2019
https://reindeereffect.github.io
Somewhere (maybe the 1960s?) the idea crept in that programming is some kind of production process, and the "engineering" happens upstream. Elsewhere, the line between engineering design and manufacturing is the transition of a set of documents to those with the skills to turn what those documents specify into real products in a reliable, repeatable manner. That repeatability is one of the hallmarks of manufacturing. For software, all the processes reliable enough to qualify are downstream of typing `make` and striking return, ending in the binaries and the computational processes that those paying the bills desire. It's our build and deployment tools that do the construction, which means that our source code is the final, detailed design.
As a perpetual intermediate, I find that a pour-over cone is a great balance of convenience and quality.
Lots of sites become more functional with JS disabled.
If only that ease of hood-popping were more common.
---
[1] See what I did there? Eh? Eh?
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_listYou'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.
(edit: added formality)
(I'm still waiting to "yield myself such time as I may consume.")
---
$ aspell dump master | egrep -i '^i.{18}n$'
institutionalization
internationalizationYet 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.