• 0 Posts
  • 35 Comments
Joined 1 year ago
cake
Cake day: June 12th, 2023

help-circle
  • It’s easy to get pressured into thinking it’s your responsibility. There’s also the risk that an unhappy company will make a non-copyleft clone of your project, pump resources into it until it’s what everyone uses by default, and then add proprietary extensions so no one uses the open-source version anymore, which, if you believe in the ideals of Free Software, is a bad thing.





  • You can’t trust users to make informed decisions about cybersecurity as most users don’t have the necessary background knowledge, so won’t think beyond this popup is annoying me and has a button to make it go away and I am smart and therefore immune to malware. Microsoft don’t want Windows to have the reputation for being infested with malware like it used to have, and users don’t want their bank details stolen. If something’s potentially going to be a bad idea, it’s better to only give the decision to people capable of making it an informed decision. That’s why we don’t let children opt into surgery or decide whether to have ice cream for dinner, and have their parents decide instead.

    The comment you’re quoting was replying to someone suggesting a warning popup, and saying it would be a bad idea, rather than suggesting the secure boot UEFI option should be taken away. You need at least a little bit more awareness of the problem to know to toggle that setting.



  • You can’t really find out of you’ll get good enough to enjoy a soulslike without buying one and playing it for longer than the two hour refund period. For other products, you usually have something you can do about it or some way to try it first. You don’t need to buy a kayak to find out you don’t like kayaking as you can go for a kayaking lesson first and use the venue’s equipment. It’s understandable that people who hit a wall and can never get any enjoyment from a soulslike will be upset that it cost them just as much to find that out as it costs someone who’ll compete the game and have a great time.

    Maybe it’s enough to just do the refund window based on progression rather than time.






  • It doesn’t necessarily work that way, though. If tests tell you you broke something immediately, you don’t have time to forget how anything works, so identifying the problem and fixing it is much faster. For the kind of minor bug that’s potentially acceptable to launch a game with, if it’s something tests detect, it’s probably easier to fix than it is to determine whether it’s viable to just ignore it. If it’s something tests don’t detect, it’s just as easy to ignore whether it’s because there are no tests or because despite there being tests, none of them cover this situation.

    The games industry is rife with managers doing things that mean developers have a worse time and have the opposite effect to their stated goals. A good example is crunch. It obviously helps to do extra hours right before a launch when there’s the promise of a holiday after the launch to recuperate, but it’s now common for games studios to be in crunch for months and years at a time, despite the evidence being that after a couple of weeks, everyone’s so tired from crunch that they’re less productive than if they worked normal hours.

    Games are complicated, and building something complicated in a mad rush because of an imposed deadline is less effective than taking the time to think things through, and typically ends up failing or taking longer anyway.


  • There are two things in conflict that apply to Dolphin, and in general to post-DRM console emulators:

    • It’s illegal to create or distribute a device which circumvents DRM.
    • It’s legal to ignore DMCA restrictions for the sole purpose of making things interoperable, like running software on machines it wasn’t originally created for when you’d be able to run it on the machine it was created for.

    The wording in the legislation is sufficiently vague that it’s not obvious whether it’s illegal to create or distribute a device that circumvents DRM for the sole purpose of interoperability. If a case goes to court, it could set a precedent that has to be applied in the future, or it could be settled out of court to avoid setting a precedent, and so far, there’s no case law setting a precedent.

    When Nintendo asked Valve not to allow Dolphin onto Steam, despite what some people were saying, the decryption key was known to be there, and the Dolphin team had legal advice that it was reasonable to expect that the interoperability exceptions had more power than the DRM circumvention restriction. The decryption key is a so-called illegal number, but these are probably not actually illegal, and you can see several examples on the Wikipedia page about them. Nintendo ended up taking no action against Dolphin, and it wouldn’t have been a good case to try and set a precedent with as there weren’t obvious damages now it’s been so long since the Wii stopped being sold, and because the Dolphin team have historically been so diligent about stamping out discussion of piracy in their official communities, making it hard to argue that it’s intended as a DRM circumvention device rather than an interoperability tool. Also, Dolphin’s never taken donations, easily covering all their costs with just basic ads on their site.

    Yuzu’s a bit of an easier target. For a start, it’s got a Patreon, and that makes it easier to paint its developers in a bad light as they’re getting money (as well as meaning there’s actual money to recover). They’ve also got data to back up the suggestion that lots and lots of Yuzu users are pirating games instead of just playing games they’ve already got a disk copy of. In a sensible world where laws are applied fairly, there’s an easy argument that hoops to jump through like requiring the user to provide Switch firmware show they’re not trying to make piracy easy, but it’s not like Yuzu will be able to muster up enough money for lawyers to match what Nintendo will be spending.

    The worst thing that could come out of this is a decision that interoperability isn’t an excuse for circumventing DRM under any circumstances, as that’ll have serious consequences for a bunch of other projects, and Nintendo are likely to want to push for this precedent to be set rather than accepting an out-of-court settlement. On the other hand, Nintendo could mess up and get the opposite precedent set, although if it looks like that’s going to happen, they’re likely to drop the suit.



  • There are other rarely-used C+±like languages that fit your criteria, and they basically all aim to eliminate the kind of thing I was talking about. If someone was used to one of those and tried picking up C++ for the first time, they’d probably end up with working, but unnecessarily slow C++, having assumed the compiler would do a bunch of things for them that it actually wouldn’t.

    The popular low-level systems programming languages that aren’t C++ are C and Rust. Neither is object-oriented. C programmers forced to use C++ tend to basically write C with a smattering of features that make it not compile with a C compiler, and produce a horror show that brings out the worst of both languages and looks nothing like C++ a C++ programmer would write, then write a blog post about how terrible C++ is because when they tried using it like C, it wasn’t as good at being C as C was. Rust programmers generally have past experience with C++, so tend to know how to use it properly, even if they hate the experience.





  • I’d say this is pretty dependent on the language. For example, with C++, you need to micromanage (or at least benefit from micromanaging) a lot of things that you can get away without knowing about at all with other languages. That stuff takes time to pick up if you’re self-teaching as you can write stuff that looks like it works without knowing its half as fast as it could be because you aren’t making use of move semantics, and if a colleague is teaching you, then that’s time they’re not spending directly doing their own work. On the other hand, someone with Typescript experience could write pretty decent Javascript from the get-go.