• 0 Posts
  • 254 Comments
Joined 2 years ago
cake
Cake day: July 31st, 2023

help-circle
  • Yes. Only in fantasy land. As Logi above said, nuclear detonation is an extremely precise, controlled process that has very specific conditions to achieve successfully. Even an actual fission bomb only manages to consume a fraction of the radioactive material.

    The only thing someone would achieve by denotating a conventional explosive near a reactor or nuclear stockpile is spreading highly radioactive dust around. That does not nor will ever look like uncontrolled nuclear fission, let alone a detonation from a thermonuclear warhead.


  • std::string doesn’t have a template type for the allocator. You are stuck using the verbose basic_string type if you need a special allocator.

    But, of course, nobody sane would write that by hand every time. They would use a typedef, like how std::string is just a typedef for std::basic_string<char, std::char_traits<char>, std::allocator<char>>. Regardless, the C++ standard library is insanely verbose when you start dropping down into template types and using features at an intermediate level. SFINAE in older versions of C++ was mindfuck on the best of days, for example.

    Don’t get me wrong, though. I’m not saying Rust is much better. Its saving grace is its type inference in let expressions. Without it, chaining functional operations on iterators would be an unfathomable hellscape of Collect<Skip<Map<vec::Iter<Item = &'a str>>>>




  • Rust is verbose, but C++ might still take the cake with its standard library templates. Especially when using fully-qualified type names…

    auto a = ::std::make_shared<::std::basic_string<char, ::std::char_traits<char>, MyAllocator<char>>>();

    A reference-counted shared pointer to a string of unspecified character encoding and using a non-default memory allocator.



  • The magic cable typically goes into ISP-owned hardware sitting in a box somewhere down the street. From there, it’s either converted into fiber optic signals or repeated until it reaches an ISP-owned building where the data can be exchanged with the wider internet.

    How does so much data go through a single-pin coax cable?

    It uses multiple channels (frequency ranges) in parallel, bonding (combining) them to increase throughput.

    A surprising amount of bandwidth can be achieved this way. DOCSIS 4.0 can do 10 gigabits per second in download and 6 gigabits per second in upload.


  • Might be. It is definitely a thing, though.

    When I used to work for a large American corporation that sold products to consumers, they took it extremely seriously and breaking it would result in disciplinary action. It probably had something to do with advertisement laws, but it also easily could have just been because it makes the company look very bad.

    one place even asked people to write fake reviews on Trustpilot/job sites

    That sounds unethical, to say the least. Did they verify if you actually did it, or just “suggest” you do?





  • Between EmuDeck and RetroDECK and having used both, I 100% prefer RetroDECK these days. It’s a single Flatpak install, it Just Works™ out of the box, and it doesn’t clutter my system with random crap sprawled everywhere. I also appreciate that it has a Steam Input template providing a way to do basically everything emulator-related that I could’ve ever wanted.

    Major props to the team behind RetroDECK and the excellent work they’re doing. The future is looking bright, and I can’t wait to see what’s in store!



  • JavaScript was a mistake, but this is one of the few things they did correctly. Implicitly importing everything from a package into the current scope makes it difficult to follow where variables or functions come from, and it’s prone to cause problems when two packages export the same identifier.

    If you’re an absolute masochist, there’s always a workaround. Against all best practices, you can use the deprecated with statement. Or, you can Object.assign() the packages into the global object like a monster. Or if you’re using node, you can use the node:vm module to create a new V8 context with its own global object of your choosing.




  • I actually jumped ship a while back. I agree that Plex is a business and they do deserve to get paid for development and infrastructure costs, but it’s the blatant enshitification that I have a big issue with.

    They chose to lock a previously-free feature behind a paywall for everybody and asked for even more money to get it back. The less shitty alternative would have been to ask only the users who needed to use the relays to purchase a Plex Pass. Or, if they wanted to make it seem like a positive thing, they could have made the new subscription into an “enhanced quality” remote streaming experience that enabled higher bitrates over relays.

    They gave their users the middle finger by picking the most transparently greedy option that they could get away with justifying.