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

help-circle
  • They tried. UWP and the Windows Store did loads to boost security and make the source of apps verifiable, but people hated it and barely used it, so the holes they were supposed to patch stayed open. The store itself did have the problem that part of its raison d’être was to try and take a cut of the sales of all software for Windows, like Apple do for iOS, and UWP made certain things a pain or impossible (sometimes because they were inherently insecure), but UWP wasn’t tied to the store and did improve even though it’s barely used.


  • They update on two Tuesdays a month, and have done that at least since XP. Even with the most reboot-keen settings, the update doesn’t happen until the time of day you’re least likely to be using the machine based on when you typically do it. It tells you when that time will be and gives you several hours of notice with a popup with the option to delay. Depending on the variant of Windows you’re using, you have settings to delay a forced reboot for up to a week (Home), a month (Pro) or forever (Enterprise). Obviously, that’s not enough to make sure no one ever gets updates forced on them when they don’t want them, and it would be nice if there was a way to distinguish users who know what they’re doing from users who don’t so people who do could be given more power to control if and when they install updates, but it is enough to ensure that checking the equipment before you use it is enough, potentially two weeks in advance.




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



  • If past support questions showed up in searches, then more users would be able to help themselves and would never need to ask for support, so it wouldn’t matter as much what platform it happened on.

    Personally, I think it would be good if support discords were all bridged to matrix spaces (currently doable, but matrix needs locking down more than discord to stop spam as the tools to prevent and remove it are worse) and the matrix history was archived somewhere search engines could index it like mailing list archives are (currently not doable). That approach would let users use what they want without forcing anyone else to, and keeps self help as easy as it was in the days of forums.





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




  • I think you’ve misunderstood my complaint. I know how you go about composing things in a Unix shell. Within your post, you’ve mentioned several distinct languages:

    • sh (I don’t see any Bash-specific extensions here)
    • Perl-compatible regular expressions, via grep -P
    • printf expressions
    • GNU ps’s format expressions
    • awk

    That’s quite a lot of languages for such a simple task, and there’s nothing forcing any consistency between them. Indeed, awk specifically avoids being like sh because it wants to be good at the things you use awk for. I don’t personally consider something to be doing its job well if it’s going to be wildly different from the things it’s supposed to be used with, though (which is where the disagreement comes from - the people designing Unix thought of it as a benefit). It’s important to remember that the people designing Unix were very clever and were designing it for other very clever people, but also under conditions where if they hit a confusing awk script, they could just yell Brian, and have the inventor of awk walk over to their desk and explain it. On the other hand, it’s a lot of stuff for a regular person to have in their head at once, and it’s not particularly easy to discover or learn about in the first place, especially if you’re just reading a script someone else has written that uses utilities you’ve not encountered before. If a general-purpose programming language had completely different conventions in different parts of its standard library, it’d be rightly criticised for it, and the Unix shell experience isn’t a completely un-analogous entity.

    So, I wouldn’t consider the various tools you used that don’t behave like the other tools you used to be doing their job well, as I’d say that’s a reasonable requirement for something to be doing its job well.

    On the other hand, PowerShell can do all of this without needing to call into any external tools while using a single language designed to be consistent with itself. You’ve actually managed to land on what I’d consider a pretty bad case for PowerShell as instead of using an obvious command like Get-ComputerInfo, you need:

    (Get-WmiObject Win32_ComputerSystem).FreePhysicalMemory / 1024
    

    Even so, you can tell at a glance that it’s getting the computer system, accessing it’s free physical memory, and dividing the number by 1024.

    To get the process ID with the largest working set, you’d use something like

    (Get-Process | Sort-Object WorkingSet | Select-Object -Last 1).Id
    # or
    (Get-Process | Sort-Object WorkingSet)[-1].Id
    

    I’m assuming either your ps is different to mine, or you’ve got a typo, as mine gives the parent process ID as the second column, not the process’ own ID, which is a good demonstration of the benefits of structured data in a shell - you don’t need sed/awk/grep incantations to extract the data you need, and don’t need to learn the right output flag for each program to get JSON output and pipe it to jq.

    There’s not a PowerShell builtin that does the same job as watch, but it’s not a standard POSIX tool, so I’m not going to consider it cheating if I don’t bother implementing it for this post.

    So overall, there’s still the same concept of composing something to do a specific task out of parts, and the way you need to think about it isn’t wildly different, but:

    • PowerShell sees its jurisdiction as being much larger than Bash does, so a lot of ancillary tools are unnecessary as they’re part of the one thing it aims to do well.
    • Because PowerShell is one thing, it’s got a pretty consistent design between different functions, so each one’s better at its job as you don’t need to know as much about it the first time you see it in order to make it work.
    • The verbosity of naming means you can understand what something is at first glace, and can discover it easily if you need it but don’t know what it’s called - Select-String does what it says on the tin. grep only does what it says on the tin if you already know it’s global regular expression print.
    • Structured data is easier to move between commands and extract information from.

    Specifically regarding the Unix philosophy, it’s really just the first two bullet points that are relevant - a different definition of thing is used, and consistency is a part of doing a job well.


  • Powershell isn’t perfect, but I like it a lot more than anything that takes sh as a major influence or thing to maintain backwards compatibility with. I don’t think the Unix philosophy of having lots of small tools that do one thing and do it well that you compose together has ever been achieved as I think being consistent with other tools you use at the same time should be part of doing your thing well, and things like sed, grep and perl all having different regular expression syntax demonstrate inconsistency and are easy to find. I also like that powershell is so verbose as it makes it much easier to read someone else’s script without knowing much powershell, and doesn’t end up getting in the way of actually writing powershell as the autocomplete is really good. I like having a type system and structured data, too.

    Some of these things are brought to a unixier shell with nushell, but I’m not convinced it’ll take off. Even if people use it, it’ll be a long while before you Google a problem and the solution also includes a nushell snippet, whereas for any Windows problem, you’ll typically get a GUI solution and a powershell solution, and only a maniac would give a CMD solution.



  • The legalese in the US (which might as well be everywhere as you need to have compatible copyright with the US to have a trade deal with the US, and your country is in trouble if it doesn’t have a trade deal with the US) is basically that:

    • If you buy a physical copy, you’ve become the owner of that one copy of the IP contained within. As the owner of that copy, you can do stuff with it like read it, display it, destroy it, or sell it on to someone else thanks to the First Sale Doctrine (but you can’t do other things like copying it, unless it’s a DVD as there’s a specific exemption for the copy your DVD has to make to RAM in order to decode the DVD). There’s nothing the copyright holder of the original can do to stop you exercising these rights.
    • If you buy a digital ‘copy’, you’ve not bought a copy, you’ve bought a licence to use one of the publisher’s copies that they’ve given you permission to have on your device(s). They’ll also have given you permission to do things like read it if it’s an ebook or play it if it’s a video game, but as it’s their copy, not yours, you don’t automatically get rights to do anything they’ve not explicitly permitted you to, and it’s not in their interests to permit you to sell it on unless they think you’ll pay enough more for a resaleable copy that it covers a potential future lost sale.

    I’m sure plenty of publishers would love for the second set of rules to apply to things like books, and from a quick googling, it seems like occasionally academic textbooks have included a licence agreement instead of you actually owning the physical book, but I imagine that most publishers are concerned about bad PR from attempting this with a hit novel and also don’t want to be accused of fraud for having their not-a-book-just-a-licence on the shelf next to regular books and thereby tricking consumers into thinking they were buying a regular book. EA attempted to double-dip over a decade ago with Battlefield 3, which included a copy of the game (with regular First Sale Doctrine rights) and a licence key for the online pass (which wasn’t transferrable) and got bad press because of it. Newer PC games often come as a key in a box with no disk or a disk that only runs a web installer, so you’ve not got a copy of the game to claim you’ve bought and obviously only have a licence, and this seems to have caused less upset. This wouldn’t work with a book, though, as you have to fill in the pages at the printing factory, and can’t magically do it only after the user’s got it home.




  • The perfect, good, mediocre, and just barely tolerable are all enemies. Sometimes bad is better as it doesn’t erode the motivation to solve the problem and means you’re more likely to end up with a good solution later. Often, when people accuse others of letting the perfect be the enemy of the good, the option was neither perfect nor good, just mediocre or barely tolerable. The exception is when one solution can go on to evolve into a better one, but it can still be better to wait until it does before deploying it.

    I’m not convinced this is exactly applicable to the story in the OP, though. The compromise would have eroded the motivation to vote for the original legislation in that election, but probably made it more likely that it could have happened in the next one, and made the consequences of putting it off that long slightly less bad.