• 1 Post
  • 83 Comments
Joined 2 years ago
cake
Cake day: June 12th, 2023

help-circle
  • Arch is at least more likely to update to a fixed version sooner, and someone getting something with pacman is going to be used to the idea of it breaking because of using bleeding edge dependencies. The difference with the Flatpak is that most users believe that they’re getting something straight from the developers, so they’re not going to report problems to the right people if Fedora puts a different source of Flatpaks in the lists and overrides working packages with ones so broken as to be useless.


  • People fall off rooftops fitting solar panels, burn to death repairing wind turbines that they can’t climb down fast enough to escape, and dams burst and wash away towns. Renewable energy is much less killy than fossil fuels, but per megawatt hour, it’s comparable to nuclear, despite a few large incidents killing quite a lot of people each. At the moment, over their history, hydro is four times deadlier than nuclear, wind’s a little worse than nuclear, and solar’s a little better. Fission power is actually really safe.

    The article’s talking about fusion power, though. Fission reactions are dangerous because if you’ve got enough fuel to get a reaction at all, you’ve got enough fuel to get a bigger reaction than you want, so you have to control it carefully to avoid making it too hot, which would cause the steam in the reactor to burst out and carry chunks of partially-used fuel with it, which are very deadly. That problem doesn’t exist with fusion. It’s so hard to make the reaction happen in the first place that any problem just makes the reaction stop immediately. If you somehow blew a hole in the side of the reactor, you’d just get some very hot hydrogen and very hot helium, which would be harmless in a few minutes once they’d cooled down. It’s impossible for fusion power, once it’s working, not to be the safest way to generate energy in history because it inherently avoids the big problems with what is already one of the safest ways.



  • That’s misleading in the other direction, though, as PhysX is really two things, a regular boring CPU-side physics library (just like Havok, Jolt and Bullet), and the GPU-accelerated physics library which only does a few things, but does them faster. Most things that use PhysX just use the CPU-side part and won’t notice or care if the GPU changes. A few things use the GPU-accelerated part, but the overwhelming majority of those use it for optional extra features that only work on Nvidia cards, and instead of running the same effects on the CPU if there’s no Nvidia card available, they just skip them, so it’s not the end of the world to leave them disabled on the 5000-series.



  • If you write cross-platform software, the easiest solution is usually to pretend everything’s Unix. You’ll hit some problems (e.g. assuming all filesystem APIs always use UTF-8 will bite you on Windows, which switched to UCS2 before UTF-8 or UTF-16 were invented, so now uses UTF-16 for Unicode-aware functions as that’s the one that’s ABI compatible with UCS2, and passing UTF-8 to the eight-bit-char functions requires you to opt into that mode explicitly), but mostly everything will just work. There’s no XDG_CONFIG telling you to put these files anywhere in particular, as Windows is Windows, so most things use ~ as a fallback, which Windows knows to treat as %USERPROFILE%.


  • You can jam the Windows UI by spawning loads of processes with equivalent or higher priority to explorer.exe, which runs the desktop as they’ll compete for CPU time. The same will happen if you do the equivalent under Linux. However if you have one process that does lots of small allocations, under Windows, once the memory and page file are exhausted, eventually an allocation will fail, and if the application’s not set up to handle that, it’ll die and you’ll have free memory again. Doing the same under every desktop Linux distro I’ve tried (which have mostly been Ubuntu-based, so others may handle it better) will just freeze the whole machine. I don’t know the details, but I’d guess it’s that the process gets suspended until its request can be fulfilled, so as long as there’s memory, it gets it eventually, but it never gets told to stop or murdered, so there’s no memory for things like the desktop environment to use.



  • Putting "false" in a YAML file gives you a string, and just false on its own gives you a boolean, unless you tell the YAML library that it’s a string. Part of the point of YAML is that you don’t have to specify lots of stuff that’s redundant except when it would otherwise be ambiguous, and people misinterpret that as never having to specify anything ever.


  • Most of the problems can be totally avoided by telling the YAML loader what type you’re expecting instead of forcing it to guess (e.g. provide a schema or use typed getter functions). If it has to guess, it’s no surprise that some things don’t survive the string to inferred type to desired type journey, and this is something that isn’t seen as a dealbreaker in other contexts, e.g. the multitude of languages where the string "false" evaluates to true when converted to a boolean because it’s non-empty.



  • Male to female A-to-A cables are pretty common (they’re just basic extensions) and totally legal under the spec provided they’re limited to a certain length or contain a powered repeater. It’s just the rare male-to-male (which my keyboard stupidly uses) and even rarer female-to-female that aren’t legal. There’s also the exception of USB-on-the-go cables with a micro-B end and a female A end for devices like smartphones that are capable of being host or connecting to a host, back before they switched to USB-C.


  • Like other commenters have said, start by asking the upstream developer (whether that’s by sending a message with a link to the fork or by sending a mega-PR that says you don’t expect it to be merged as-is in the description). They should be the best judge of how they’d prefer to handle it. The thing I’d add is that you should try to avoid taking it personally if their preferred approach isn’t one you think is a good idea. Sometimes good fixes end up never merged because of disagreements becoming too heated even if everyone’s basically on the same page about the fox being good. There’s also a decent chance that your refactors are things the upstream developer explicitly doesn’t want and would otherwise have done them themselves and implemented the same fix, too, or they don’t agree that your fix is good enough. They won’t want to be on the hook for maintaining contributions that use approaches and code style that they don’t like, and that’s okay. They also might know something you don’t about their project that would make something that’s obviously a good idea to you obviously a bad idea to them.

    Basically, just try and remember that if it’s a hobby project, it makes progress when the maintainer is having a good time, and gets abandoned when they’re not anymore, so try and avoid making a mess and having arguments when they’re the one that’ll have to deal with any fallout from any mistakes.





  • This is silly. Everyone knows that DRY is telling you that if you do the same sequence of mouse clicks three times in a row, you should spend the day writing a script to automate the task instead of quickly finishing what you were doing by doing the same sequence of clicks a fourth time. If you are supposed to apply it to the code you write, then there’d never be boilerplate-heavy languages like Java.


  • The article says

    The Israeli military has used the system in the Gaza Envelope since 2008, but it failed to prevent the Al-Aqsa Flood Operation, after being destroyed and disabled by Palestinian Resistance forces.

    So it looks like they’ve had this for quite a while.

    I’d definitely heard about it before 2022 as I was at the recording for the 2021 BBC Reith Lecture on autonomous weapons (fun fact - free BBC recordings do not advertise this, but often provide free beer and wine) and was expecting one of the topics to be the potential to automate things like this. I was also expecting already-automated CIWS systems (which protect ships from incoming missiles, so you don’t necessarily have enough time for a human to confirm a target after radar contact is established) to come up, including the times they’ve already killed people in friendly fire incidents.



  • They have to defend their trademark. They don’t have to defend copyright, and most of Nintendo’s reputation comes from copyright claims. Someone streaming a let’s play isn’t selling a counterfeit Mario game, they’re just showing you things in a real Mario game, so there’s no trademark claim.

    They’re also big abusers of the fact that most of the people they make copyright claims against can’t afford to defend themselves against such a behemoth. Even if you’re sure you’ve not violated their copyright and your lawyer’s sure, too, it’ll be much cheaper to roll over than get the legal system to agree with you.