• FlatFootFox@lemmy.world
    link
    fedilink
    arrow-up
    311
    arrow-down
    1
    ·
    8 months ago

    The two hardest problems in computer science are cache invalidation, naming things, and off by one errors.

  • monk@lemmy.unboiled.info
    link
    fedilink
    arrow-up
    103
    arrow-down
    1
    ·
    8 months ago

    And before Pidgin was named Pidgin, it was named GAIM, which was short for GTK AIM, which was short for GIMP toolkit AOL IM, which was short for GNU Image Manipulation Program toolkit America Online Instant Messenger, which was short for GNU’s Not Unix Image Manipulation Program toolkit America Online Instant Messenger and it never ends.

  • waigl@lemmy.world
    link
    fedilink
    English
    arrow-up
    93
    ·
    8 months ago

    Also, almost all of that is written in C, which is a successor to B, which is a simplified version of the Basic Combined Programming Language. There was never an A.

  • Kerb@discuss.tchncs.de
    link
    fedilink
    arrow-up
    79
    arrow-down
    1
    ·
    8 months ago

    im almost sad that its linux that became the dominating open source kernel instead of “GNU’s Not Unix! Hird of Unix-Replacing Daemons”
    (hird stands for “Hurd of Interfaces Representing Depth”)

  • nothacking@discuss.tchncs.de
    link
    fedilink
    arrow-up
    77
    arrow-down
    1
    ·
    8 months ago

    GNU is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX is not UNIX[Maximum call stack size exceeded]

    • Klear@lemmy.world
      link
      fedilink
      arrow-up
      22
      arrow-down
      1
      ·
      8 months ago

      GNU is not UNiplexed Information Computing System is not UNiplexed Information Computing System is not UNiplexed Information Computing System is not UNiplexed Information Computing System is not UNiplexed Information Computing System is not UNiplexed Information Computing System is not UNiplexed Information Computing System is not UNiplexed Information Computing System is not UNiplexed Information Computing System is not UNiplexed Information Computing System is not UNiplexed Information Computing System is not UNiplexed Information Computing System is not UNiplexed Information Computing System is not UNiplexed Information Computing System is not UNiplexed Information Computing System is not UNiplexed Information Computing System

    • A tail-recursive version written in OCaml that should not reach stack limits easily. (Not an expert in OCaml, so this might be stupid. But I tried it with 10000 iterations, and it worked without any issues.)

      let gnu =
          let rec aux s = function
          | 0 -> s
          | n -> aux (s^" is Not Unix") (n-1)
      in aux "GNU";;
      
      • barsoap@lemm.ee
        link
        fedilink
        arrow-up
        8
        ·
        edit-2
        8 months ago

        Not an OCaml expert either but that looks tail recursive, you’re never going to blow the stack.

        You can tell by how after the recursive call within aux, its result does not get used within the function. That means that the compiler doesn’t need to push a return address to the stack as the only code that would be at that address is instructions to pop another address and return there, we can short-circuit all that and jump from the base case (0) directly to where aux(10000) is supposed to return to instead of taking 10000 dumb steps (like practically all procedural languages do because they don’t have tail call optimisation).

        This would’ve been different if you had concatenated the string not as an argument to aux.

        • sacredfire@programming.dev
          link
          fedilink
          arrow-up
          3
          ·
          edit-2
          8 months ago

          I thought Tail recursion just gets turned into an iterative loop by the compiler? Hence why you won’t get a stack overflow. And since in procedural languages you can just use a loop in place of a tail recursive function you would never run into this problem, right? At least this is how it was taught to me when I was learning about it in lisp.

          • barsoap@lemm.ee
            link
            fedilink
            arrow-up
            3
            ·
            8 months ago

            Yes you still need the loop part I skipped over that one, only focussing on the “why no return address on the stack” part. It’s what you need to focus on to see whether a recursive call is in a tail position and if it is the compiler does the rest no need to worry about that part.

          • barsoap@lemm.ee
            link
            fedilink
            arrow-up
            5
            ·
            8 months ago

            OCaml certainly isn’t a bad language to learn for a non-professional. It’s almost painfully sensible and well-engineered, you’re far away from hype train nonsense and startup production jank but also not out in the “the purpose of this language is to be beautiful and earn me a PhD” territory, OCaml definitely is a production language.

  • Dizzy Devil Ducky@lemm.ee
    link
    fedilink
    English
    arrow-up
    68
    ·
    8 months ago

    Not gonna lie, took me a moment of thinking and waiting for a search engine to load before I realized Kool Desktop Environment is just KDE…

    • tal@lemmy.today
      link
      fedilink
      arrow-up
      35
      ·
      edit-2
      8 months ago

      Web browsers: elinks, based on links, which I’m pretty sure was a play on words on lynx, which is a play on words on “links” on a web page.

      Then there’s email. There’s mahogany and balsa and mulberry, which are in-jokes referring to pine, which was a joke referring to elm, which stood for ELectronic Mail. Pine has been forked to alpine, in an entirely different play on words.

      • mindbleach@sh.itjust.works
        link
        fedilink
        arrow-up
        7
        ·
        8 months ago

        Open Watcom supports a debugging format called DWARF, which I assumed was a ridiculous acronym, until I learned it only works on ELF binaries.

        The big one is how there was a programming language called A Programming Language. There is a B programming language, but it’s unrelated, being developed for Multics… Multics being the inspiration for Unix, a joke about castration. The developers of B went on to develop C. C was followed up by the command to increment a variable: C++. Except some interdisciplinary dorks thought it was a musical note and created C#. D is somehow a sequel to both of those.

        There’s a reason why-- look. Nicholas Metropolis, namesake of the raytracing method, was sick of mainframe computers with ridiculous acronyms like ENIAC, AVIDAC, and ILLIAC, so he named his university’s new machine MANIAC. Absolutely no-one got the joke. All computer scientists are broken in the same peculiar way, and it is impossible to satirize how stupid we get when asked to name a thing.

      • corsicanguppy@lemmy.ca
        link
        fedilink
        arrow-up
        1
        ·
        8 months ago

        Pine has been forked to Alpine

        Wonder if it runs on Alpine the Linux distro.

        In other news, I never knew pine’s genetic code still lives on; but I miss elm more. Can we do uw-imap too? Dovecot annoys me.

    • dan@upvote.au
      link
      fedilink
      arrow-up
      7
      ·
      8 months ago

      Naming things is hard, and everyone remembers these names, so they must have done something right.

    • KrapKake@lemmy.world
      link
      fedilink
      arrow-up
      5
      arrow-down
      1
      ·
      8 months ago

      Yea no kidding. Gnome is pronounced Guhnome, Mate DE is pronounced Matay, Open Suse is susuh not soos, and Qt is to be pronounced as “cute” instead of just… Q-T. Many such cases.

      • cmbabul@lemmy.world
        link
        fedilink
        arrow-up
        3
        ·
        8 months ago

        Wait for real? I don’t think I’ve heard many say those terms out loud, i pronounce them in my head Nome, Mate, Soos, and q-t

    • mindbleach@sh.itjust.works
      link
      fedilink
      arrow-up
      2
      ·
      8 months ago

      My favorite part of the AI boom is how all the stupid internal names become public. It moves so fast that there’s no time to rebrand from the dork-ass things engineers come up with.

  • okamiueru@lemmy.world
    link
    fedilink
    arrow-up
    26
    arrow-down
    1
    ·
    edit-2
    8 months ago

    With just little bit of formatting, it would communicate the information infinitely better. Why don’t people make the minimal effort, once, when not doing leads to each and everyone having to figure out what the fuck it’s actually trying to say.

    Apologies. I’m grumpy after a three hour meeting.

    • nexussapphire@lemm.ee
      link
      fedilink
      English
      arrow-up
      10
      ·
      8 months ago

      the real problem is this sentence contains no formatting no punctuation and no capitalization it must be a failure of our public education system in america that kid dont get the proper education they need in this day and age to use proper gramer and formatting where needed i bet most of you cant tell me the proper time to use a semicolon vs using a colon and thats ok because i dont either i do try my best to put it in the right place sometimes looking it up and failing to understand comas are also frequently used to much by people im sure your not alone in this assumption it could also be that english is hard and schools spend more time teaching us to consume and parse english rather than a balance of both reading comprehension and writing skills

      • nexussapphire@lemm.ee
        link
        fedilink
        English
        arrow-up
        3
        ·
        8 months ago

        Typing this thing was admittedly hard on the phone. Without selecting any suggestions, it still manages to get the capitalization and punctuation right.

      • starman2112@sh.itjust.works
        link
        fedilink
        arrow-up
        3
        ·
        8 months ago

        A semicolon is used when you’re separating sentences that are themselves part of a list. Typically you would use commas to separate list items, but when the list items are complete sentences with commas in them, you use a semicolon to separate them. A colon is used when you have to poop