I was about to make a similar comment. One property of coal plants is that they can't ramp up or down very well with usage demands. I have a friend that operates at a coal plant where they installed miners to run during off hours when the demand is low, so rather than running at a loss during that period they more or less break even. It definitely would tip the balance for keeping that plant running for longer rather than replacing it with better alternatives.
I have a new Kagi account with no custom rankings and I see the same terrible results. Basically the same as what he describes. yt-dlp is not found at all, the 2010 link to youtube-dl, and a bunch of spam sites.
For non-geniuses like myself, you can just ask to test out of some of the lower tier introduction courses. I got a typically 4-year degree in 3 years this way. It's called credit-by-examination.
I'm sure for the prodigy-level students there is an even higher streamlined process for keeping them engaged.
As of a few months ago, Reddit no longer allows linking directly linking to their hosted images. You are directed to a pseudo-page that links back to original thread it was posted in.
This sucks because it's now not possible to use the browser's built-in image viewer which has better UX.
I am expecting them to eventually put ads on the page as well.
In my experience support will gaslight you into thinking it is your problem. I had a Hetzner server that was shutting off at random hours several times per week.
I showed them the sudden loss of power events in the logs. "It must be a problem with your OS modifications that we don't support".
OK, I wiped the machine to the stock image that you provide and it's still having power loss events. "Sure, we'll run a stress test for a couple minutes ... stress test passed OK, it's still your fault!".
The events happen randomly during the week, a stress test is not going to show that. Can you just move me to a different physical machine? "No."
This was over the course of several days, when I had an event coming up that I NEEDED the server for. I ended up going back to Azure and paying 10x the cost, but at least it worked great.
To be honest, that's a incredulous leap in logic: Assuming someone from Hetzner is just name searching their brand, found your comment, looked up your account, and then "blocked" your client.
It is not "solved" at all. std::bitset has terrible properties and an awful interface.
1. No dynamic resize, have to know size at compile time or allocate based on max expectations. And yes, std::vector<bool> sucks too.
2. Despite being only statically sized, several classes of bugs are not prevented at compile-time. For example:
std::bitset<4> fail1{"10001"}; // This produces a value of 0b1000, no warnings or exceptions thrown
std::bitset<10> fail2;
fail2.set(11); // Exception at runtime. Why is this not a static_assert?
3. Size is implementation defined. std::bitset<1> can use up to 8 bytes depending on compiler/platform.
4. Debug performance is 20x slower than Release. In many cases you are going from what would be a single assembly instruction to multiple function calls.
5. Limited options for accessing underlying storage efficiently (for serialization, etc). to_ullong() will work up to 64 bits, but beyond that it will throw exceptions.
6. Uses exceptions. This is still a deal breaker for many.
7. Cannot toggle a range of bits at once. It's either one or all.
WD externals were extremely popular a few years ago because they contained standard WD Reds at $20 under normal market rate. Really easy to shuck the case and slap it in your NAS. I bought about a dozen myself. Of course the people who did what burned you ruined it for the rest of us, and now they build the externals with custom pinouts on the drives.
It is not just crypto, it has been happening in gaming communities for a long time. Sometimes it's just fishing for more of their own page views, other times it it more malicious such as offering a trojaned game client that will steal your login details [0]. It is very cheap and easy to do because the communities are relatively small.
websockets unfortunately have to start at the HTTP layer and negotiate down to the TCP wrapper layer, so you need at least a partial HTTP stack and everything else that involves to get there. This complicates things a lot. It's like stuffing a turkey, cooking it, then throwing away the meat to just eat the stuffing.
In my experience, Boost Beast[1] is the easiest library to just get going with but you have to deal with all the Boost-isms that comes with. libwebsockets is the 'standard' C implementation but unless you know the websocket RFC front to back it's quite difficult to work with and has a lot of foot-guns.