• businessfish@lemmy.blahaj.zone
      link
      fedilink
      English
      arrow-up
      22
      ·
      13 days ago

      not the commenter you asked but i use a binary search when i’m playing a modded game that is having issues to pinpoint which mod(s) cause the issue. beats launching the game over and over to test each mod by a long shot.

      a recent example: i put together a mod list for risk of rain 2 to play with some friends, but the game crashed on launch when all the mods were installed. so i disabled half the mods (in order, alphabetically or other) and tried to launch the game again - still crashing. disabled half the remaining enabled mods, test, repeated as necessary. with only a few cycles of booting the game, i was able to determine the specific mod causing a crash on startup out of my list of 50 something mods.

      • Karjalan@lemmy.world
        link
        fedilink
        arrow-up
        9
        ·
        13 days ago

        While that’s really cool and useful, it might be the way a couple of mods interact as opposed to a specific one.

        • KubeRoot@discuss.tchncs.de
          link
          fedilink
          English
          arrow-up
          6
          ·
          12 days ago

          Sure, but it’ll still narrow down on one of those mods - perfect information would require figuring out why it crashes in the first place, but finding at least one of them would let you play the game without it and look up if anybody else reported problems with that mod.

    • Cracks_InTheWalls@sh.itjust.works
      link
      fedilink
      arrow-up
      7
      ·
      edit-2
      13 days ago

      Imagine you work at a company that sells cookies. The company offers a variety of cookies at different price points to different customers. The company sets up contracts offering a customer a set variety of cookies at various prices, with a clause stating that if the customer wants a different type of cookie the company makes later on, it will be priced and added to their list. This should be in the form of regular contract amendments/addendums, but it isn’t.

      Several years go by, and in the course of that several different varieties of cookies have been added by the customer. The price given to them at the time may not account for the cost of materials and labor today, or how many of those cookies not mentioned in the contract are being ordered v. how many were expected, the fact that you outsourced some of those cookies, or brought some of those cookies in-house, etc. The cookie executive asks you “When did we offer customer x cookie y at price point z?”

      Now, the company has a perfectly good database of cookies and price points for customers, but it’s very old tech and requires certain access privileges, which are very hard to give people outside of the accounting department. Accounting is never able to help with this, and the cookie executives try poorly and fail to get people like you access. But you do have years and years of cookie addition request forms, which are kept in chronological order by customer and contain a list of all types of cookies requested up to that point in time.This is where binary search helps - you can pretty quickly find the one where the cookie y was added even though there are hundreds of these forms.

      It’s not a situation that should exist - we have a god damn cookie database where you can just pop in customer x and cookie y to get price z, with an effective date - but in my crazy cookie factory it helps a ton.

      There’s other examples but they’re all pretty much variants of this thinly veiled analogy.

      • Lifter@discuss.tchncs.de
        link
        fedilink
        arrow-up
        1
        ·
        13 days ago

        That doesn’t make sense at all. How would you - given two stacks of papers - know which stack the correct form is?

        • Cracks_InTheWalls@sh.itjust.works
          link
          fedilink
          arrow-up
          2
          ·
          edit-2
          12 days ago

          There’s lots of stuff about what I do that doesn’t make much sense :)

          It works in this scenario because the stacks are reliably sorted by customer and date, and each form has a running tally of what cookies are on offer as things get added to the list.

          Assume customer x’s forms are taken out, and you make two stacks of them without shuffling the forms. The very first form on the first stack from 2022-01-01 does not include cookie y. The first form on the second stack, from 2023-02-01, also does not contain cookie y. Based on this information and the conditions above, you can infer that the form you want is in the second stack.

          Now, if the forms were not reliably sorted, or did not contain a running record, you’d need to approach this differently. Strategies would probably involve inferences or straight getting the info you need from other sources - custumer correspondence around “We want cookie y, how much?” (if it occurred when you were in a position to get such correspondence); knowledge of big changes to cookie offerings to the customer (contract renewals); bugging accounting at a regular, annoying cadence with progressive escalation until they answer/complain about you bugging them, etc.

          • Lifter@discuss.tchncs.de
            link
            fedilink
            arrow-up
            1
            ·
            12 days ago

            Wow that got complicated very quickly. Bummer no-one can come up with a simple example of when quicksort is useful.