As for the separation of powers, it is a related concept, but still a distinct one; not sure if bringing it up helps here.
Added "The Road to Serfdom" into my book queue, thanks for the suggestion.
1,100 karma · joined April 28, 2017
As for the separation of powers, it is a related concept, but still a distinct one; not sure if bringing it up helps here.
Added "The Road to Serfdom" into my book queue, thanks for the suggestion.
I heard "rule of law" being used to justify roughly the opposite (Russian laws, including mass surveillance and censorship), and neither that was clear; apparently it worked simply as an universal justification.
The usual definition is that there are written laws that apply to everyone equally, as opposed to a rule by decree and some kind of tyranny, and the laws do not change too often, are not made for particular occasions (so they do not turn into decrees effectively). So I'd think "suspicionless" -- that is, universal -- sounds closer to it, rather than selective/arbitrary surveillance on a suspicion. Unless such suspicion is at least decided by a court, without rubber-stamping.
Mandatory reliance of services on other services (whether it is email, phone, or a more explicit identity provider) is generally unfortunate. I think it is best to not look for a perfectly reliable setup, as it is unachievable, but to keep in mind that they are not reliable, to have recovery plans and fallback options if possible, reduce dependence on online services, especially those depending on others. Though a personal domain name still seems more reliable to me than that of an email provider.
> Granted, if you have images they can cause some overflow issues.
The "fix" breaks zooming in.
> In general, the font-size is a little small as well
It is quite annoying when websites mess with your preferred font, its size, style, and so on, often turning texts illegible. In this case it is made awkwardly large, but often it is made illegibly small, apparently also with the intention to fix the defaults.
> Many people love dark mode, so let’s enable it based on a user’s system preferences.
"color-scheme" is like "viewport": an invocation to tell the browser that the website is not too broken, and the web browser should act more sensibly. Those are practical, but still awkward, not quite how things should be: I wish web browsers defaulted to sensible behaviors. So I rather view it as a choice between adapting to how things are and pushing for how they should be.
> We generally want to try and fall somewhere in the 45-90 characters per line range (for body text, not headlines).
I used to set max-width in ch before removing CSS completely as well, but usually desktop web browser windows are resizable, with the space being there to be used, not to fill with background color. I see it in epub files sometimes as well: huge margins are enforced, being rather annoying when you do not want those, while if you do, you can simply adjust the window size (or set such default styles, as another option).
> [multiple A records]
"A" DNS records may be used for a fallback, but SRV records are the primary way to configure those [1, 2]. Also some of those can reuse an existing domain name, and some may not have any DNS RRs, but only be used as an internal JID.
> ejabberd is a robust server software, that is included in most Linux distributions.
Prosody [3] is another nice and popular option.
> Install from Process One repository
> Install from Github
Both ejabberd and Prosody are available from regular Debian repositories as well.
> Make sure the fowolling ports are opened in your firewall, taken from ejabberd firewall settings.
A port range is also needed for TURN, to use for relaying. And there is a typo.
> Clients I can recommend are Profanity, an easy to use command-line client, and Monal for MacOS and iOS.
Among relatively feature-rich and user-friendly ones (quite polished, supporting more recent standards, including voice calls with DTLS-SRTP, OMEMO), there are also Conversations for Android, Dino for Lignux (GUI), poezio for TUI (though that one has no voice calls). Setting converse.js (a Web client) may also be convenient (and done rather easily, at least with Prosody).
[1] https://www.rfc-editor.org/rfc/rfc6120.html#section-3.2.1
- More of anti-UCE, with postscreen (greylisting, DNSBL and DNSWL checks), policyd-spf, body_checks, check_sender_access, check_client_access, postscreen_access_list.
- Setting "home_mailbox = Maildir/", to keep mail in user directories and in the Maildir format (which seems to be less prone to corruption than mbox is, and well-supported by MUAs).
- Leaving TLS defaults, except for the paths. I used to set mandatory TLS, but then ran into some servers not using it, and figured that I do not trust the involved servers more than channels between them anyway (especially the servers that do not support TLS). Being overly strict with allowed protocol versions (or even ciphers) also reduces compatibility, while for encryption it is better to rely on OpenPGP.
- I do set Dovecot (for both IMAP and SMTP submission); the recent configuration change did not seem like a big deal to me, and it was documented, so I found it easy to update. It is nice to be able to use email from a server (and that ability does not go away with Dovecot), but a local MUA also has its advantages.
- Registered at dnswl.org, to improve deliverability in some cases.
HTML with MathML may make a decent system as well; possibly with an XML source and XSLT for templating, which is apparently how OpenStax textbooks are composed (via CNXML, though that also has just a couple of rain frog pictures in its documentation repository -- seems to be a common pattern around typesetting systems).
Then there is troff with eqn(1), which looks simpler, but not sure if there is an actual specification for it around, either.
And then there are Texinfo, org-mode with LaTeX embedding, other TeX-adjacent options, perhaps Markdown with HTML and MathML embedding.
GET https://www.quantamagazine.org/wp-content/themes/quanta2024/frontend/js/mathjax/fonts/HTML-CSS/TeX/png/imagedata.js?V=2.7.0 NS_ERROR_CORRUPTED_CONTENT
The resource from “https://www.quantamagazine.org/wp-content/themes/quanta2024/frontend/js/mathjax/fonts/HTML-CSS/TeX/png/imagedata.js?V=2.7.0” was blocked due to MIME type (“text/html”) mismatch (X-Content-Type-Options: nosniff).
Loading failed for the <script> with source “https://www.quantamagazine.org/wp-content/themes/quanta2024/frontend/js/mathjax/fonts/HTML-CSS/TeX/png/imagedata.js?V=2.7.0”. how-isaac-newton-discovered-the-binomial-power-series-20220831:1:1
Uncaught TypeError: c.FONTDATA.FONTS.MathJax_Main[8212][5] is undefined
The URL leads to error 404.Likewise on Unix-like systems: most things can be covered with GTK and Qt themes, but some GUI programs would use a different GUI toolkit, and occasional developers would assume a dark-on-light theme, setting fixed colors accordingly.
Even TUI color interfaces suffer from that: when programs use colors outside of the 16 (that are rather practical to configure) or tweak (e.g., dim, reverse/invert) those for a particular kind of theme.
An annoying thing is that in most those cases things would have been fine if the developers simply did not touch colors. Even the linked article would have been more legible if it had no CSS, with either the usual defaults or a sensibly configured web browser: now it has a text-to-background contrast ratio slightly below the minimum of 7 recommended by WCAG.
The list of accidental complexity sources looks rather short. Off the top of my head, I can think of CV-driven development, of developers not being aware of basic tools, reaching for heavy and marketed ones instead, of awkward regulations pushing to silly solutions, of simple incompetence, of the NIH syndrome (or does that qualify as "creative temptation"?). The "Legacy systems and technical debt" point is applicable to newly developed systems with poor planning and strict deadlines as well. And then there are all the arguments about what is simple and elegant (or not) in the first place.
As a bonus (an additional example of differing views on simplicity), even goto itself is still in use these days, with some advocating its use, and others (famously) arguing against it, both camps using some kind of a simplicity (or complexity of the opposing approach) as an argument.
[0] https://ntrs.nasa.gov/api/citations/19950022400/downloads/19...
I assume that those "conditions" are placeholders, not to be read literally in the example (since the example is not about poorly named variables, but about complex conditions), so I did not mean them literally, either. Supposedly those would be more informative names, such as "channel_encrypted", "checksum_verified".
> [...] describe wishful thinking by straight-up lying
This was what I had in mind upon seeing that "isSecure" bit, too: could easily be a lie (or understood differently by different people). But taking a little more effort to check then, and/or having to remember what those variables actually mean. It is a commonly debatable topic though, where the good balance is, similarly to splitting code into small functions: people tend to balance between spaghetti code and extreme splitting.
My point though is not to argue with those particular points here, but that we have no such practices/rules universally considered simple and formally stated/verifiable.
For instance, the article itself suggests to use early/premature returns, while they are sometimes compared to "goto", making the control flow less obvious/predictable (as paxcoder mentioned here). Intermediate variables, just as small functions, can easily complicate reading of the code (in the example from the article, one would have to look up what "isSecure" means, while "(condition4 && !condition5)" would have shown it at once, and an "is secure" comment could be used to assist skimming). As for HTTP codes, those are standardized and not dependent on the content, unlike custom JSON codes: most developers working with HTTP would recognize those without additional documentation. And it goes on and on: people view different things as good practices and being simpler, depending (at least in part) on their backgrounds. If one considers simplicity, perhaps it is best to also consider it as subjective, taking into account to whom it is supposed to look simple. I think sometimes we try to view "simple" as something more objective than "easy", but unless it is actually measured with something like Kolmogorov complexity, the objectivity does not seem to be there.
> If you can justify an AI coding subscription, you can justify buying the best tool for the job.
I personally can justify neither, but not seeing how one translates into another: is a faster CPU supposed to replace such a subscription? I thought those are more about large and closed models, and that GPUs would be more cost-effective as such a replacement anyway. And if it is not, it is quite a stretch to assume that all those who sufficiently benefit from a subscription would benefit at least as much from a faster CPU.
Besides, usually it is not simply "a faster CPU": sockets and chipsets keep changing, so that would also be a new motherboard, new CPU cooler, likely new memory, which is basically a new computer.
eSpeak NG's data files take about 12 MB (multi-lingual).
I guess this one may generate more natural-sounding speech, but older or lower-end computers were capable of decent speech synthesis previously as well.
> Why would someone using a really cool tool that makes them more productive… feel compelled to sneer and get defensive at the mere suggestion that someone else isn’t doing the same?
It sounds like it is about people seeing others doing things in a way they view as inefficient or wrong, and then trying to help. "Sneer and get defensive" does not sound like trying to be helpful, but they probably would not describe themselves as sneering and getting defensive, either.
> I might have strong opinions about what code looks like, because I might have to read it, but why would I — why would anyone — have such an intense reaction to the hypothetical editor setup of a hypothetical stranger?
As above, but even closer to this particular question, see the editor war.
> But the Bitcoin people make more money if they can shame everyone else into buying more Bitcoin, so of course they’re gonna try to do it. What do programmers get out of this?
Apart from "helping" others, a benefit of promoting technologies one uses and prefers may be a wider user base, leading to a better support, proliferation of technologies they view as good and useful.
> We’ve never had a machine that can take almost any input and just do Whatever.
Well, there is Perl. It is a joke (the statement, not the language), but the previous points actually made me to think of programming languages with dynamic and weak typing, similarly allowing to pretend that some errors do not happen, at the cost of being less correct, and doing whatever when things go wrong. Ambiguities in natural languages come to mind, too.
> That means they aren’t even reading the words they claim as their own!
Both homework and online discussions featured that before LLMs, too. For instance, with people sometimes linking (not necessarily copying) materials to prove a point, but materials contradicting it. Carelessness, laziness, lack of motivation to spend time and effort, are all old things.
> I can’t imagine publishing a game with, say, Midjourney-generated art, even if it didn’t have uncanny otherworldly surfaces bleeding into each other. I would find that humiliating. But there are games on the Switch shop that do it.
I heard "AI-generated game" mentioned as a curiosity or a novelty, apparently making it a selling point. Same as with all the "AI-powered" stuff, before LLMs. There is much of that used for marketing: as block chaining and "big data" were added everywhere when those were hyped, and many silly things are similarly added into items outside of computing if they have a potential to sound cool at least to some (e.g., fad diets, audiophile hardware).
> But I think the core of what pisses me off is that selling this magic machine requires selling the idea that doing things is worthless.
This also sounds like yet another point in the clash between prevalent business requirements and more enthusiastic human aspirations. The economic and social systems, and cultures, probably have more to do with it than particular technologies. Pretty much any bureaucracy/corporate/enterprise-focused technologies tend to lessen the fun and enjoyment.
It appears to imply that new technologies do not count as fun, which may be the case for the author, but not generally. And there are indeed fewer open vacancies requiring older (decades old) technologies exclusively, with vacancies often including currently-hyped technologies in addition to established ones, which opens more options and potentially leads to a higher salary if one employs those newer or hyped ones, but I guess that it is quite possible to pay the bills while using mostly the older ones, too.