spoiler

made you look

  • 0 Posts
  • 92 Comments
Joined 1 year ago
cake
Cake day: July 27th, 2024

help-circle


  • My favourite thing about Halo FTL is how it handles causality, basically relying on the universe to act like a sponge and “soak it up” as it reconciles it across spacetime.

    Send too much mass (aka the Halo array) and it massively slows down travel galaxy wide, as the spacetime is “sodden” and takes longer to reconcile it. Meanwhile in the days leading up to the firing of the Halo array slipspace travel suddenly became easier and quicker than had ever been experienced, as the Forerunner realise that after the firing of the array the amount of slipspace travel in the entire galaxy will be nil.





  • The_Decryptor@aussie.zonetoMicroblog Memes@lemmy.world48 BC
    link
    fedilink
    English
    arrow-up
    3
    ·
    19 days ago

    Honestly the Edge collections feature is fantastic for this, but it’s hidden in a sub menu so it feels like they don’t want people to use it.

    They’re like a hybrid bookmark and note taking feature, add a group, name it, add tabs to it, add notes to it, reorder it all, etc. Only thing it’s missing is a way to turn a tab group or window into a collection and back again, it’s a manual process currently (add/remote a tab at a time)







  • The headline makes this sound a lot worse than the article does.

    From the article there’s basically a list of exemptions in the law that describes who doesn’t need to follow it (e.g. an online booking site for doctors visits), everybody else needs to check the rules to see if they do. And if they do, they then need to follow extra child safety rules (e.g. Roblox is opting out under-16s from open DMs by default)

    GitHub can quite rightly say they don’t fall under the restrictions of the law, and that could be the end of it. The simple fact that it doesn’t have any form of private messaging feature is probably enough.



  • JXL is two separate image formats stuck together. An improved version of JPEG that can also losslessly and reversibly recode most existing JPEG images at a smaller size, and the PNG like format (evolved from FLIF/FUIF) that can do lossless or lossy encoding.

    “VarDCT” (The improved JPEG) turns out to be good enough that the “Modular” mode (The FLIF/FUIF like one) isn’t needed much outside of lossless encoding. One neat feature of modular mode though is that it progressively encodes the image in different sizes, that is if you decode the stream as you read in bytes you start with a small version of the image and get progressively larger and larger output sizes until you get the original.

    Why is that useful? Well you can encode a single high DPI image (e.g. 2x scale), and then clients on 1x scale monitors can just stop decoding the image at a certain point, and get a half sized image out of it. You don’t need separate per-DPI variants.


  • iirc the main reason for QOI was to have a simple format because “complexity is slow”, so by stripping things that the author didn’t consider important the idea was the resulting image format would be quicker and smaller than something like PNG or WebP.

    Not sure how well that held up in practice, a lot of that complexity is actually necessary for a lot of use cases (e.g. you need colour profiles unless you’re only ever dealing with sRGB), and I remember a bunch of low hanging fruit optimisations for PNG encoders at the time that improved encoding speed by quite a bit.


  • AVIF is funny because they kept the worst aspects of WebP (lossy video based encoding), while removing the best (lossless mode) There was an attempt at WebP2, using AV1 and a proper lossless mode, but Google killed that off as well.

    But hey, now that they’re releasing AV2 soon, we’ll eventually have an incompatible AVIF2 to deal with. Good thing they didn’t support JPEG-XL, it’d just be too confusing to have to deal with multiple formats.




  • Yep, their frontend used a shared caller that would return the parsed JSON response if the request was successful, and error otherwise. And then the code that called it would use the returned object directly.

    So I assume that most of the backend did actually surface error codes via the HTTP layer, it was just this one endpoint that didn’t (Which then broke the client side code when it tried to access non-existent properties of the response object), because otherwise basic testing would have caught it.

    That’s also another reason to use the HTTP codes, by storing the error in the response body you now need extra code between the function doing the API call and the function handling a successful result, to examine the body to see if there was actually an error, all based on an ad-hoc per-endpoint format.