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

help-circle



  • 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%.


  • Even by crypto standards, Bitcoin Cash is dodgy. Its origins were a temporary hiccup in the Bitcoin network which forked the blockchain into two branches. As blockchains are designed to tolerate this, the network quickly decided that one branch was worse than the other, so everything switched to the good branch and Bitcoin continued chugging away and consuming enough power for a small country. However, a few people were cross about this because they had more Bitcoin on the dead branch, so manually configured their wallets and mining hardware to use that branch, and tried encouraging other people to do the same. That didn’t work. They then decided to provide a preconfigured wallet and mining software that would prefer the dead branch but claimed it was its own new cryptocurrency and everyone who had Bitcoin already would get some of the new one for free, and that was enough to get some people to sign up.




  • Sometimes when a product is whitelabeled and can be bought directly from its real manufacturer for much less, there’s still a good reason to buy the expensive one. The main one is that sometimes the ones that pass QA are sold via the whitelabeler and the ones that fail QA are sold directly, so the cheaper ones are known to have something wrong with them and you’re gambling that it’s something without symptoms.




  • 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.




  • AnyOldName3@lemmy.worldtoLemmy Shitpost@lemmy.worldEvil
    link
    fedilink
    arrow-up
    2
    arrow-down
    3
    ·
    4 months ago

    no doesn’t become false, it becomes Norway, and when converted to a boolean, Norway is true. The reason’s because one on YAML’s native types is an ISO country code enum, and if you tell a compliant YAML implementation to load a file without giving it a schema, that type has higher priority than string. If you then call a function that converts from native type to string, it expands the country code to the country name, and a function that coerces to boolean makes country codes true.

    The problem’s easy to avoid, though. You can just specify a schema, or use a function that grabs a string/bool directly instead of going via the assumed type first.

    The real problem with YAML is how many implementations are a long way from being conformant, and load things differently to each other, but that situation’s been improving.


  • It’s generally accepted that file formats aren’t protected IP, so you can write a compatible reader or writer and be in the clear as long as you reused no code from the original reader/writer. The specification may have licence terms that restrict who you can share the spec with, but you don’t necessarily need the official spec to come up with a compatible implementation. Plenty of file formats have been reverse engineered over the years even when the original didn’t have a written spec.