The suggestion has been brought up and dang has commented on it over the years. He doesn't seem opposed to it per se. It's possible your descendants may live to see dark-mode HN:
I've never seen someone miss sleep paralysis before. I get it, but the hallucinations that people describe never happen to me. I just become aware that I'm about to wake up, but I can't yet control my body or even breathing. I always know not to panic, yet I always panic and try desperately to start moving. I can always see the room, but it's a dream version because my eyes aren't really open and it looks different once I'm truly awake.
I don't have much sleep weirdness, but when I'm about to fall asleep, I frequently imagine 3D object spinning and rapidly changing size. Kinda like the 3D TempleOS sprites [1], but 5x faster and increasing/decreasing size at the same rate.
I also have a favourite string matching algorithm, the "Generic SIMD" from this post [1] by Wojciech Muła (I haven't really read the other two SIMD algorithms since I wasn't planning on working with intrinsics).
There were some good comments that post's thread [2], including from burntsushi of ripgrep.
I've also implemented a SIMD accelerated, but case in-sensitive (*) search algorithm as an stb-style single header library, also based on Wojciech Muła's work.
See the performance comparison in the README, it's about 6 times faster than libc.
(*) - full UTF-8 support, but only works for UNICODE codepoints where the UTF-8 encoding lengths are the same for lowercase and uppercase. There are only 27 out of 40576 pairs which aren't handled (listed in the README).
> UNICODE codepoints where the UTF-8 encoding lengths are the same for lowercase and uppercase.
This very same property got me to post this [1], which sent me down the rabbithole of learning about Unicode in earnest and building my Unicode tool. Which may have an initial release some time this millennia... maybe.
Sometimes there's an offset (like with Latin, +/- 32), sometimes lowercase and uppercase is interleaved (eg. Latin extended), and sometimes they are in totally different blocks simply because they forgot to add both letter cases at once... (the distance of the codepoints affects UTF-8 encoding difference the most).
I've also paid attention to optimize the most common case where both UTF-8 encodings' first bytes are the same (that's 40508 pairs out of 40549). But no escape, it must handle the remaining 41 pairs specially in a slower code path, which would not be needed at all should UNICODE guys did their homework better.
One of my favourite ones in the post I linked is the "ff" ligature. It uppercases to "FF", meaning in UTF-8 it goes from one encoded character to two, and from 3 bytes total to 2 bytes total.
Lots to read about here for those interested (and that's without getting into `Casefold`, `NFKC_Casefold`, simple vs complex case mappings, the CLDR, etc.):
I like burntsushi's string-searching work because it's well documented, split modularly into libraries/applications, and runs the gamut from low- to high-level (his blog posts and comments online are extremely helpful too). I use these three tools which he maintains:
Low level: memchr [1];
Medium level: Regex (Rust crate) [2];
High level: ripgrep [3].
Other names to look out for are the previously aforementioned Wojciech Muła, as well as Daniel Lemire (of simdjson [4][5]). Not SIMD-specific, but Data-Oriented Design can be a big help in terms of thinking about SIMD and cache-friendly data layout (as well as trimming down the work that the computer needs to do, generally). I've talked that to death, so I'll just link those comments here [6].
I think there's a lot of interest in German culture in Japan. You see German characters and phrases fairly often in anime, pronounced just as badly as English in anime.
The popular anime Frieren names all its characters on-the-nose German words. Plot twists get spoiled for German speakers, for example one of the characters is called "Lügner", Liar:
This may or may not be relevant, but one thing about lower case generally:
If you're doing string matching via Casefold or NFKC_Casefold [a], characters from both the needle and the haystack are converted to lowercase (with exceptions for algorithm stability reasons) before being compared.
Why lower case and not upper case? Theoretically, the choice is arbitrary, but given the distribution of lower-case vs upper-case characters in most texts, you can use the fact that lower case occurs more often to optimize your algorithms by skipping the case conversion for most characters.
In my cleaning and maintenance work I'd replaced a lot of these. The orange ones I'm familiar with have a decently nice scent.
But last week I went to use my new shampoo and it had the same scent. On its own it would be nice enough but all I could smell was piss. Then I forgot and tried the same shampoo again a few days later to the same effect!
I've made this Roman recipe probably a dozen times and everyone who's tried it really likes it [1].
The strange ingredients are garum [2] and asafoetida [3]. The former is just a fish sauce, so that's not hard to substitute, but you have to find asafoetida on the Internet or at an Indian food store.
I can usually find hing (asafoetida) in grocery stores in certain more populous parts of Canada in the spice section, it's quite a good garlic substitute for those who can't do garlic
It's used by Janes as eating root vegetables like onions or garlic is discouraged or forbidden in that religion [1].
(Un)related: onions and garlic are pretty close to each other. Chicago is named after šikaakwa, [2] the native word for the local Allium that's alternately called "wild onion" or "wild garlic" in English [3]. You can hear a similar word for onion in a different Algonquin language, Ojibwe [4].
https://news.ycombinator.com/item?id=23199062
See also:
dang + "dark mode": https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...
dang + "on the list" (lol): https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...
reply