• moseschrute@lemmy.world
    link
    fedilink
    arrow-up
    6
    arrow-down
    2
    ·
    edit-2
    3 days ago

    Let’s settle this once and for all.

    I’m Gen Z. Quiz me on how computers work.

    Edit: I bet I can run circles around some of you millennials :)

          • Onomatopoeia@lemmy.cafe
            link
            fedilink
            English
            arrow-up
            6
            ·
            3 days ago

            Hahahahahaha, omg that’s a brilliant read. Thank you, I will be sharing it with my technical friends (any kind of technical will get it, one friend is in hydraulics and boy, the stories are so like mine in IT).

          • moseschrute@lemmy.world
            link
            fedilink
            arrow-up
            7
            ·
            edit-2
            3 days ago

            Also, the bridge was designed as a suspension bridge, but nobody actually knew how to build a suspension bridge, so they got halfway through it and then just added extra support columns to keep the thing standing, but they left the suspension cables because they’re still sort of holding up parts of the bridge.

            Idk if I’ve laughed this hard in a while 😂

            Once a week my coworker is like, this code has been working for years so we don’t touch it

            • dXq9dwg4zt@lemmy.sdf.org
              link
              fedilink
              arrow-up
              2
              ·
              2 days ago

              Most people don’t even know what sysadmins do, but trust me, if they all took a lunch break at the same time they wouldn’t make it to the deli before you ran out of bullets protecting your canned goods from roving bands of mutants.

              Same.

      • moseschrute@lemmy.world
        link
        fedilink
        arrow-up
        6
        arrow-down
        1
        ·
        edit-2
        3 days ago
        • The lowest level is transistors, which are electronic switches that have an on and off state. In other words, they are binary and can represent 0 and 1
        • Those get combined into gates of two inputs. An “and” gate outputs 1 if both its inputs are 1. An “or” gate outputs 1 if either of its inputs are 1. And Xor gate outputs 1 if and only if one of its inputs is 1.
        • A bunch of other complicated shit happens
        • Boom assembly. Don’t try and read or write it, because it will make you wanna quit computers
        • C comes into play. Designed to unfuck, assembly so you can actually write readable code. Just don’t forget to release your memory
        • More complicated shit. Something about kernels and GNU. Userland vs kernel land? Idk
          • ARM might be different since it can run process outside of userland and kernel I think? Something about secure compute/marketing BS
        • Inside of user land, we have the web browser. This is there the cool shit happens.
        • The browser runs JavaScript, CSS and HTML. JavaScript is a single threaded, but nonblocking language with an even loop and microtask queue.
        • Inside of the browser we run React. React is a framework where UI is a function of state and the data flows in one direction. It can also be used to slam your CPU.
        • Now that we’re into high level languages, it would only be fun if it looped back around to the beginning. So we invoke some C code that has been compiled to web assembly. Mmmm how efficient

        Edit: I tried to do this all off the top of my head. After writing this, I think I meant user space vs kernel space. Idk if user land is a word

          • moseschrute@lemmy.world
            link
            fedilink
            arrow-up
            3
            ·
            edit-2
            3 days ago

            I guess between C and assembly there’s abstract syntax trees and maybe LLVM, which is probably also written in C. Idk I skipped compilers in college.

            I also know the networking stack has a bunch of layers, but that felt like its own separate thing to “computers”. I think UDP makes more errors than TCP but UDP also go brrrrr

            • jatone@lemmy.dbzer0.com
              link
              fedilink
              English
              arrow-up
              2
              ·
              3 days ago

              Hehe, llvm is a compiler framework, basically provides all the utilities for processing an AST.

              ASTs have various flavors but they’re all the same thing an intermediate representation for a program that optimizers and linkers use to create binaries.

              The network stacks meh, 6 or 7 layers depending on what protocol you use but in brief: physical, transport, application. More and more functionality has moved into the transport in the name of efficiency, see quic. But in general not worth worrying about most of the abstraction was nonsense anyways.

              And you missed out compilers was one of the most useful classes in cs circulums since it teaches you how languages work.

              • moseschrute@lemmy.world
                link
                fedilink
                arrow-up
                1
                ·
                edit-2
                3 days ago

                I KNOW! My biggest mistake in college was worrying about my GPA and that worry keeping me from taking harder classes. But I did learn about ASTs.

        • slackassassin@sh.itjust.works
          link
          fedilink
          arrow-up
          1
          ·
          2 days ago

          Transistors are only on and off switches when run in saturation. This is relevant to CPUs in the sense that the rising/falling edge and jitter affect the setup and hold times and thus the maximum clock rate. End pedantry.

            • slackassassin@sh.itjust.works
              link
              fedilink
              arrow-up
              1
              ·
              2 days ago

              There’s an active region between on and off where the current from the collector to emmiter is proportional to the base current. This can be used in other applications like amplifiers. But in digital applications that active region is the transition time between low and high states.

              In order to obtain a deterministic outcome the rising edge must be predictable and it must stay at a logic level 1 for long enough to account for propagation delay. These considerations are known as setup and hold. The higher the frequency the clock runs, the tighter these constraints become.

        • Valmond@lemmy.world
          link
          fedilink
          arrow-up
          1
          ·
          3 days ago

          Nice 👍🏽!

          Machin code comes to mind, and “more” high level languages like C++, template metaprogramming and other horror stories 💀

          And CD players!

          Cheers 😋

          • moseschrute@lemmy.world
            link
            fedilink
            arrow-up
            4
            ·
            edit-2
            3 days ago

            My impression of C++ is that’s it’s actually C++++++++ as in, how many more decades of features can we cram into this language before it explodes

            What’s a CD player /s

            Fun fact about a random CD player. The USB-A external CD player Apple sold after removing the internal CD player kinda abused the USB standard. I believe it needed more current than was allowed by USB, so Apple found some way to make this specific device draw more power than the USB standard supported at the time. Today, I believe USB-C includes a handshake that negotiates power requirements, but at the time, USB-A didn’t support this.

            Tbh, I don’t really know where assembly ends and machine code starts. But do know that assembly is tied to your specific architecture

            • Valmond@lemmy.world
              link
              fedilink
              arrow-up
              2
              ·
              3 days ago

              You’re not wrong about C++ 😋

              Machine code is just the numbers, assembler is mnemonics and stuff and needs an “interpreter” to turn it into useful machine code (a C++ compiler also spits out machine code BTW).

              Spot on about USB standards, no idea if apple did what you saulid though, wouldn’t doubt it!

    • grue@lemmy.world
      link
      fedilink
      arrow-up
      5
      ·
      3 days ago

      I have a Proxmox server with a random assortment of hard drives and SSDs of various capacities {8TB, 2TB, 2TB, 240GB, 240GB}. I want to create a CephFS filesystem spanning them, using erasure-coded pools in order to maximize capacity (kind of like RAID 5 except without requiring same-sized drives). How do I configure my CRUSH Map in order to accomplish this?

      • moseschrute@lemmy.world
        link
        fedilink
        arrow-up
        3
        ·
        3 days ago

        Lol, you lost me there. I’ve read up on the various RAID configurations. I’ve heard about CephFS. I don’t know much about it, but I get the sense it’s the new kid on the block.

        I actually have a RAID question for you. I want to setup a little RAID array starting with 2 mirrored drives and add more drives later. But it seems there is no easy way to migrate RAID versions? Let’s say I want to start with 2, then 3, than 4 drives as stuff fills up. I always want some level of redundancy. And I don’t want to use any additional drives aside from the 2, 3, then 4 in the array. Is this possible? Either with RAID or with CephFS?

        • grue@lemmy.world
          link
          fedilink
          arrow-up
          1
          ·
          2 days ago

          Funny you should mention that, because it’s what got me thinking about Ceph in the first place. My other Proxmox node has a 2-drive mirrored ZFS pool, and I went to add a third drive to it and realized that I’d have to move all the data off and rebuild it from scratch, so I started looking for other solutions.

          So yeah, I think Ceph can add to an array after-the-fact like that (in addition to the not-waste-capacity-of-random-assorted-disks thing), but I haven’t figured it out enough yet to be sure.

          • moseschrute@lemmy.world
            link
            fedilink
            arrow-up
            1
            ·
            2 days ago

            I also totally was mixing up Ceph with ZFS. Linux tech mentions ZFS a lot. That’s the source of most of my RAID knowledge lol