• 0 Posts
  • 1.23K Comments
Joined 3 years ago
cake
Cake day: June 30th, 2023

help-circle


  • “Shit, looks like I need to stop procrastinating and do a load of ritual robes.”

    “Dammit Pete, you know they won’t be dry by tonight and waiting for night 2 makes it so much more risky because someone always notices the demon circles in the daylight, which puts them on guard. Plus they might see them hanging on your clothes lines!”


  • Personally, most cases that use a drop down to select a year are cases where I don’t care for them to know my actual birthdate, so just roll that mouse wheel like it’s the price is right and pick whatever year looks nice, you can be from the silent generation or the silent film generation!





  • The issue is that any time you add another generic layer, it involves another layer of loops for “handle everything” tasks and lookups for “handle this specific thing” tasks. A native app could set a bunch of values for properties by changing them in a single function accessing a single data structure. You might have a single function that does the same thing using frameworks, but that function is potentially going to use accessor functions to reach down each layer to set those values where they matter plus could need to do a bunch of transformations as it traverses each layer (or maybe that’s done on the render side).

    So then you add a bunch of caching to improve these common scenarios and balloon memory usage, which was already inflated because those layers also need memory to store their data structures.

    And these things get worse as they scale, so small scale tests still look snappy and hide how much things can grind to a crawl when it needs to handle the large or normal scale. Not to mention, if you don’t have a speedy version to compare to, you might just think that it makes sense for this process to take a couple minutes because it has millions of things to do (despite running on hardware that can do billions of things per second).


  • I’d say a bit of both. People who are fine with having a DOM worth of overhead don’t give me much confidence they are selecting algorithms well, which can absolutely affect performance and efficiency regardless of what language they are written in.

    Hell, even with the optimal data structures and algorithms selected, how you set them up can make a huge difference.

    Like I once had essentially a data translator that, in order to be generic, used keys in a dictionary to replace the hardcoded data structure that needed to be updated any time the spec changed, even if we didn’t care about the new values.

    The first version used an array of dictionaries and was slow as fuck. Each line of data would get its own dictionary and just parsing the data into this scheme took a couple minutes IIRC. Since the data was guaranteed to have the same keys each line (we were worried about changes between versions, not lines), I changed it to a dictionary of arrays, where each line would have the same index across the dicts, and it brought parse time down to several seconds. Huge difference even though big O notation would have simplified to the same expression for the two methods.

    But if you pick something with a worse big O expression, it gets worse on a whole other level.



  • My guess is they understood that they were supposed to generate a random key but didn’t know how to do it properly and instead of using a cryptographically secure method that involves large prime numbers, ended up using a single randomized byte.

    Though even that might be more complicated than what they did, because it’s also possible they just manually created them, maybe approaching it as a “this will be a shared resource in this office so let’s make it easy to share”.

    Or maybe it was deliberately made unsecure to allow other fuckery, like spying on anyone using one of those keys or using the ability to sign certificates with a trusted cert.







  • Yeah, all the stupid “recommended” shit the algorithms added to my feeds eventually made it pretty easy to break the fb/insta scrolling habit. Fb was the place where I went to see what was up with people I knew and interact with them. Their comment setup is even worse than reddit for “anything you say is lost in the noise”, so attempts at discussion were useless, though even if it was setup better, the quality of the comments themselves was like YouTube comment level.

    Even more annoying, in addition to adding random shit to your feed, they also seemed to filter the list of friends they showed updates from to a small list that I have no idea how they even selected them. So I’d still end up missing life updates from some people if I didn’t go to their profile.

    I mean, I don’t doubt it’s way worse now with AI slop, but it was already shit before this.


  • I’ve been impressed with how it handles multimonitors at different resolutions. It scales it dynamically so that (for side by side) the top of the one screen lines up with the top of the other and same with the bottom, plus windows look like they are the same size (relative to screen size) smoothly even as they overlap both monitors.

    The only thing I don’t like is that the cursor can get “stuck” at the edge of one monitor, though I think that behaviour might be gone now after a recent update because I haven’t had to fight it as much lately.

    As someone who assumed that it wasn’t done like that because the scaling would look bad because pixels would need to be scaled to subpixels, I’m pretty impressed that that doesn’t seem to be the case (either that or they figured out how to handle that scaling so that it didn’t look like shit, though this might be the very thing that the custom renderer is failing to do properly in your case).


  • Objection! Your honour, it’s not the strong nuclear force that repels atoms from each other but the electromagneticweak force from the atoms’ electron shells that repell other objects! Also a collision isn’t when atoms come into contact with each other but when they approach each other with sufficient force that the repelling force transfers momentum to those atoms, making their overall velocity harder to maintain control of and/or disrupting the solid structure of one or both objects involved.