Strings work fine, the problem is the (single) quotes:
~ $ foo="echo 'hello world'"
~ $ for x in $foo; do echo $x; done
echo
'hello
world'
~ $ $foo
'hello world'
~ $ eval "$foo"
hello world
The splitting is by whitespace, so the single quotes remain in the arguments. Using eval (and double quotes to preven splitting), it gets processed correctly. That said, don't use eval; use functions or aliases instead.
Flatpak does try to account for storage size by using shared base images. The main problem is that some Flatpak apps don't update to the latest base, and some use different base images altogether, meaning most of the time it needs to have several bases anyway.
Invidious and NewPipe/Piped aren't affected as far as I know, since they use YouTube's internal APIs directly. They're mostly only affected by changes to the API itself, and IP ratelimits/blocks.
Discord had (has?) "unclaimed accounts" which were essentially guest accounts with a custom name. Not sure how the system works nowadays, but I suppose using them would be fine for one-off visits.
This is what I hate about Discord. It's another account. If you don't have Discord (or do, but would rather not tie all your identities together), you need to register. What I like about Matrix is any Matrix home server can join, and it can then be used to access bridged Discord rooms, the problem of course being that many projects don't bridge to Matrix.
I like to sometimes just open up other interest-focused instances and check their local feeds for anything interesting. A "subscribed instances" feed would provide a decent balance, in my opinion.
They already had preset email replies, if I recall correctly; this seems like a natural extension to that. It sounds like they're just sending special reply emails, which hopefully is easy for other email clients to parse.
Firefox has a kiosk mode using a cli flag, which if I recall correctly also prevents exiting fullscreen (though they can still close Firefox, or follow links off-site).
An example of a compression algorithm that does support tuning parameters before hand is zstd.
Even if something isn't in a pre-shared dataset, I wonder if a sufficiently advanced LLM might be able to do well at compressing predictable but non-repeating data, such as "abc, bcd, cde, [...]".
Ah, my bad. Bypassing such integrity checks should still be doable, either by reverse engineering and spoofing the communications between the browser and Google, or by modifying a "trusted browser" in a way that keeps it from detecting such alterations. It might not be very reliable though, as the internals could be changed arbitrarily with each update, and old versions blocked in the name of security.
Building adblock into the browser could enable better countermeasures for adblock detection, but uBlock Origin's filters usually work fine in my experience. Hiding that adblock is being used is essentially just an arms race between adblock detectors and ad blockers.
I can understand why installing the wrong part should give a warning, but the IDs are unique to the part, not the model of part, so even identical parts are not interchangable.
The paper for the trolly problem has some interesting details. In experiment 2, those who considered themselves worse at the foreign language were more likely to make the utilitarian choice, which indicates that it might just be a matter of proficiency in the language, rather than whether or not it is the participant's primary language.
Strings work fine, the problem is the (single) quotes:
The splitting is by whitespace, so the single quotes remain in the arguments. Using eval (and double quotes to preven splitting), it gets processed correctly. That said, don't use eval; use functions or aliases instead.