• knightly the Sneptaur@pawb.social
    link
    fedilink
    arrow-up
    3
    ·
    edit-2
    13 hours ago

    Yeah! In general, Normalization refers to adjusting values measured on different scales to a common scale.

    Consider 1 and 10. The value of the first digit of both numbers is 1, so a scale-invariant numerical sort sees both numbers as coming before 2.

    Normalizing both numbers to a two digit scale gives us 01 and 10, which sort as expected with 02.

    • Wren@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      15 hours ago

      Ahhh. So you have automated processes that will handle it as well. Just plug in the ranges and it does its thing.

      • knightly the Sneptaur@pawb.social
        link
        fedilink
        arrow-up
        1
        ·
        14 hours ago

        Indeed! That kind of scale-sensitive value-based sort requires the data to be invariant in other ways, though. For example, “Episode Three” has 13 charachters, so it would come after “Episode Four” which only has 12 and therefore must be smaller.

        Turns out that sorting things is way more complicated than it seems. The wikipedia page on sorting algorithms in computer science lists 37 different ways to sort numbers and it is far from an exhaustive list.

        • Wren@lemmy.world
          link
          fedilink
          arrow-up
          3
          ·
          14 hours ago

          Seems like programming isn’t too dissimilar to giving a child instructions.

          • knightly the Sneptaur@pawb.social
            link
            fedilink
            arrow-up
            3
            ·
            edit-2
            14 hours ago

            It definitely feels like that!

            Have a classic joke on the subject:

            A software tester walks into a bar.

            Runs into a bar.

            Crawls into a bar.

            Dances into a bar.

            Flies into a bar.

            Jumps into a bar.

            And orders a beer.

            2 beers.

            0 beers.

            99999999 beers.

            a lizard in a beer glass.

            -1 beer.

            “qwertyuiop” beers.

            Testing complete.

            A real customer walks into the bar and asks where the bathroom is.

            The bar goes up in flames.

              • knightly the Sneptaur@pawb.social
                link
                fedilink
                arrow-up
                2
                ·
                edit-2
                11 hours ago

                Most software errors are edge cases, like when a program receives an input from a user that the programmer didn’t account for.

                The software tester is “fuzzing” the input function of the bar by throwing a bunch of weird inputs at it, like jumping through the door rather than walking or ordering absurd, negative, or non-numerical quantities of beer. This is a common way of testing software to make sure it won’t crash and burn if unexpected things happen.

                Satisfied that the inputs for entering the bar and ordering beer are working properly, the bar opens, and the very first customer still manages to crash it by asking something entirely unrelated to ordering beer.