Software, Firmware, Hardware Study Groups - eviltoast

After chatting with some of you on this forum and seeing that we all are on Lemmy rather than Reddit, I think it would be a good idea for us to have some study groups to improve our technological literacy and competency.

During my time on Lemmy, I’ve been able to increase my digital literacy and overall knowledge surrounding my system. I’ve loved the nearly endless rabbit holes Wikipedia has pulled me into, as well as the resulting happiness that comes from finally fixing a broken Linux system or piece of technology.

But what exactly does technological literacy encompass, one might ask? I’d like to illustrate via anecdote. When I first got into Linux, I was told to “Get a terminal emulator to SSH into the HPC so that you can run computational jobs”. To most of you this sentence is completely normal, but to my unconditioned mind, I felt like a big bright light was flashed before my eyes while my PI spoke martian to me. After the initial disorientation, I downloaded what I thought was my only option for a terminal emulator (MobaXTerm), and found myself sitting in front of a pitch black terminal screen with a blinking prompt. Not knowing what a host was, how to manage a network, any Linux commands (coreutil, never heard of her…), or really do anything past opening up WoW and Google Docs. The only things more advanced than the plug and play Google/Microsoft software solutions I’d use, was my botched LaTeX setup. I used it to typeset math equations for my students, homework, and lab reports from how much faster I could type in the TeX format than click on every Greek letter/symbol I needed. Overall, it really messed with my ability to do the research I was tasked to do. I was supposed to learn how to use Vim as my IDE when the only IDE I had ever worked in was Spyder from Anaconda! VSCodium, CodeBlocks, Emacs, etc, I did not know that any of these existed.

Needless to say, this was extremely discouraging to be thrown head first into a difficult scenario with very little assistance whilst trying to juggle coursework and outside responsibilities. Humble beginnings reinforced in me that if I experimented with my computer and messed up on the OS side, that I’d brick my hardware and have some variation of Homer Simpson holding up the “So you Broke the Family Computer” book.

I’m sure that we all come from varying origins of computer literacy, which IthinkI’ve proposed a couple of possible areas of study, that we could set up in small or large groups depending on interest. The frequency, literature references (textbooks, white papers, blogs, forums, etc.), and the project goal (could be concrete or abstract) should be drawn up and worked towards to keep the topic focused. I’ve come up with a couple of fields for us to start with, feel free to add to the list or modify what I’ve written.

  1. Cryptography with a rigorous mathematical foundation applied to both classical and quantum computing paradigms (AES, RSA, Hash functions deeper than just the surface, information theory (We love our boy Claude Shannon), Cryptographic primitives, Shor’s Algorithm, etc.)
  2. A hardware agnostic study of firmware (What are some unifying principles about firmware that can empower the user to understand why certain aspects of the device are not functioning)
  3. Hardware architectures (GPU, NPU, TPU, CPU, RAM, DIMM)
  4. Form factors (How geometry can impose certain design decisions, and so forth
  5. Fundamentals from First Principles, i.e condensed matter physics theories to understand the classical computing systems. The group can also choose to segwey into topological states of matter (Dirac fermions, Weyl semimetals, Mott insulators, and a myriad of other cool matter states that aren’t really discussed outside of physics / graduate engineering classes) Qubits (Bloch sphere representations) and loads of other things that I’m sure exist but am unaware of.
  6. LLM Inference technology and how it can be applied to case law, accounting, stocks, and various other fields where the solution to the problem lay somewhere in an encoded technical language.

I’d like to begin the discussion with this as our starting framework, does anyone have any interest in the topics listed above or suggestions for other subjects? How should we manage these groups? Should we add some chats to the Matrix instance?

  • nickwitha_k (he/him)@lemmy.sdf.org
    link
    fedilink
    English
    arrow-up
    9
    ·
    1 year ago

    I work as a software engineer on Linux systems and also have interest in most of these subjects both in learning and teaching. However, I am not diagnosed as on the spectrum (do have adult ADHD and a sibling on the spectrum though). I don’t want to intrude into a space intended for building autistic community but, would be interested in participating, if my participation would be welcome.

    • gronjo45@lemm.eeOP
      link
      fedilink
      English
      arrow-up
      7
      ·
      1 year ago

      Your participation is more than welcome in this project! You are still neurodivergent as well, so as long as you’re here and ready to obsess about the topics, your expertise would be great to have on board. Do you have a particular interest in any of the sub-categories?

      I noticed that I failed to mention a group specialized to learning programming languages. I kind of got obsessed with learning “what” other programming languages existed, like Zig, OCaml, Go, Julia, Lua, and some of the lower-level languages like C, ASM, Forth, and BASIC. Would this be more of your wheelhouse, or are you interested in a different facet?

      • nickwitha_k (he/him)@lemmy.sdf.org
        link
        fedilink
        English
        arrow-up
        3
        ·
        1 year ago

        Thank you! I would say that I have the most interest currently in hardware architecture and recently got an FPGA board to try to learn more about it, especially RISC-V and vintage/extinct architectures, as well as GPU (at some point, I want to build an entire computer that is capable of running modern software, completely on open-source hardware, gateware, firmware, and software).

        I have a bit of interest in cryptography but, my ADHD has been a bit of a blocker from digging too deep into it. And less interest in LLM, though I am supporting some coworkers in their interest in it - probably a bit fatigued from hype and wishing it were actual AI.

        I would indeed say that, skill and experience-wise, programming languages, virtualization, and operating in Linux are indeed well in my wheelhouse. I mainly use neovim as an IDE and program in Go and Python, though I’ve learned a bit of Rust (embedded), Lua (for neovim), and C (mainly Arduino). Frontend is less in my interest/skillset.

        • gronjo45@lemm.eeOP
          link
          fedilink
          English
          arrow-up
          3
          ·
          1 year ago

          I’ve heard interesting things about the RISC-V architecture which have made me want to look more into it. Logic design is something that I feel isn’t nearly touched upon as much as it should in other technical disciplines. My undergraduate engineering coding experience was complete shit for lack of a better term.

          Another reason why I think a group of highly-motivated, like-minded neurodivergent individuals could help keep each other on focus towards a grander goal. The fatigue definitely is real, sometimes after learning 200 acronyms through Anki and trying to actionate what I’ve learned from them can leave my brain all numb lol

          I think that having a masterclass to get everyone on board with using Vim/Neovim/Emacs (Something at least that has much more versatility as an editor) as well. Embedded systems have had particular interest for me too. I took a control theory class in my senior year where we had to analyze reactors, distillation columns and disturbances in steady states: (i.e. fluctuations in P,T,x_{i} (liquid fraction compositions), and many more). I’m assuming the embedded systems that actually implement this could go into the curriculum too. I think my background in chemical engineering could poise us well to discuss lithography techniques and various quality control instrumentation.

          • nickwitha_k (he/him)@lemmy.sdf.org
            link
            fedilink
            English
            arrow-up
            2
            ·
            1 year ago

            Oooh! Very cool stuff. As one whose academic background was in chemistry, I really like that.

            I’ve heard interesting things about the RISC-V architecture which have made me want to look more into it. Logic design is something that I feel isn’t nearly touched upon as much as it should in other technical disciplines. My undergraduate engineering coding experience was complete shit for lack of a better term.

            Yeah. I’ve been slowly working towards going through Learning the Art of Electronics but, too much has come up this year. RISC-V, coupled with artificial hardware shortages (scalpers), is really what got me interested in digital circuits, as I’ve been a FOSS proponent for years and have been gaining both annoyance at lack of innovation and effort to rectify supply shortages, as well as less and less comfortable with centralized control of hardware implementation (repairability, privacy, modifiability, and general ability to figure out how a thing works).

            RISC-V, to me, seems to be solving a lot of that by encouraging more open approaches to ISA development. It isn’t quite GPL level but, some of the most performant and general-purpose oriented implementations have been open-sourced by their implementers (ex Berkeley BOOM series of cores and even Alibaba’s THead cores, which are likely to be present in servers by the end of the decade).

            The biggest challenge, to me, is that there are not currently any great ways to make the ISA implementations democratized, accessible, and performant in modern use cases. The performance side is directly related to the two options for implementation: FPGA and custom silicon.

            FPGAs are limited both in number of logic cells and physic due to the size and nature of their logic gates (bigger and further apart means slower and less efficient). For example, an implementation of a modified Berkeley SonicBOOM (BOOMv3) that is hardened against Spectre attacks takes about 115k LUTs per 100MHz core (my Xilinx 7-series FPGA, which is 4 generations old, only has an 85k LUT capacity, a cutting-edge FPGA chip costs thousands of dollars just for a bare chip).

            Custom silicon is just insanely expensive and out of reach for most. The lithography equipment necessary for currently node processes is pretty much only available to multinational corporations. I’m going done alternatives that are “good enough” for modern workloads become more available.

            I think that having a masterclass to get everyone on board with using Vim/Neovim/Emacs (Something at least that has much more versatility as an editor) as well.

            Absolutely. That sounds like a worthwhile undertaking.

            Embedded systems have had particular interest for me too. I took a control theory class in my senior year where we had to analyze reactors, distillation columns and disturbances in steady states: (i.e. fluctuations in P,T,x_{i} (liquid fraction compositions), and many more). I’m assuming the embedded systems that actually implement this could go into the curriculum too.

            Indeed. I’m mainly self-taught there, with focus on hobbyist MCUs but the entry requirements both financial and knowledge have gone down significantly. An RP Pico W, a dual-core 32-bit ARM MCU with onboard WiFi and BLE can be had for $6. It can also be programmed on bare C, Arduino C, at least two implementations of Python, Rust, and a number of others, including drag-and-drop languages like MakeCode.

            Definitely interested to see where this goes and contribute.

  • bionicjoey@lemmy.ca
    link
    fedilink
    English
    arrow-up
    4
    arrow-down
    1
    ·
    1 year ago

    I’m AuDHD and I’m probably the same type of guy who gave you that first task. I run an HPC for scientists to do analysis (although in my case it’s mostly bioinformatics)

    • gronjo45@lemm.eeOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      1 year ago

      That’s so cool that you work on HPC systems. Do you ever have to work on the hardware side of things if some piece of the system suddenly stops functioning?

      I watched a video awhile back on Ruler SSDs (U.1 I think?) So I imagine there’s some modularity in the systems? Would you be interested in being part of an HPC group for those trying to learn more about them?

      • bionicjoey@lemmy.ca
        link
        fedilink
        English
        arrow-up
        2
        ·
        1 year ago

        I’m more on the sysadmin and systems engineering side of things. The guy who was in my position before me was the one who built the system we run currently.

        I’ve had to do some system maintenance before, but I didn’t build 'em, and I didn’t make any choices about what parts to put in 'em. If something in the datacentre breaks, I call one of the datacentre guys and have them check it out physically. I work for a federal government, so it’s an absolutely huge organization with lots of teams to do every different job. The datacentre is actually physically not in the same facility as my office, and either way, I work from home.

        Most of my job nowadays is actually more providing expert advice on HPC and scientific computing for the upper management of my organisation. There’s a guy on my team who services support tickets from the scientists, and I help him out if he gets stuck. I also help out a lot with documentation and training to help onboard scientists who’ve never used computing like this before in order to get skilled up and start doing science.

        • gronjo45@lemm.eeOP
          link
          fedilink
          English
          arrow-up
          2
          ·
          1 year ago

          That sounds like a lot of responsibility for the job, but I’m sure it’s fun to work on such an impressive system!

          I’ve only seen videos/pictures of what the HPC systems actually look like in real life, so it’s definitely nice to have someone fix it when something goes awry. The HPCs that I worked on were for my university and a federal government national laboratory, but sadly my mentor was very unresponsive and unavailable to assist me. The dynamics of my life were all over the place at the time, so I didn’t get as much out of it as I would have liked. We wanted to run some molecular dynamics simulations to discover new catalysts and molecular sieves, so it was a really interesting project to combine with DFT.

          To be considered an HPC, does one have to be in the PetaFLOPs regime of computation? I recall that some of the Radeon and NVIDIA cards are able to get up to TeraFLOPs which is already mind-blowing given that I still have a Turing architecture card in my system. Do you work in protein folding / soft matter-like things?

          • bionicjoey@lemmy.ca
            link
            fedilink
            English
            arrow-up
            3
            ·
            1 year ago

            The definition of “HPC” is actually a constant point of contention in my job. Most scientists and indeed most management people I work with use the term “HPC” to describe any multi-tenant science computing infrastructure that uses a Job Scheduler, regardless of how HP the C actually is. Most of the time I actually avoid the term, since it’s got this ambiguity.

            The system I work on takes up three full racks in the datacentre, but in the grand scheme of things it’s not that big of an HPC, only 20 compute nodes of around 64 cores and 1-3 TB of RAM.

            Most of the work my clients are doing is in the realm of bioinformatics for research purposes, so things like genomics, metagenomics, etc. Not so much something like protein folding. Mostly it’s lots of big complicated data science pipelines where the inputs are things like FASTA files and reference data. Lots of machine learning and statistical models trying to make connections between plants, animals, bacteria, fungi, viruses, etc. Notably, the science my organisation works on has very little to do with Human biology specifically.

            • gronjo45@lemm.eeOP
              link
              fedilink
              English
              arrow-up
              1
              ·
              1 year ago

              Slowly been getting back to the comments. Any programs you’d recommend to play around with metagenomics? I’m definitely interested in learning how to use the FASTA format for jobs. Are you still interested in participating in one of the study groups?

              • bionicjoey@lemmy.ca
                link
                fedilink
                English
                arrow-up
                2
                ·
                edit-2
                1 year ago

                I’m not a bioinformatician, so I can’t recommend any utilities. I’m also not really on Matrix so probably no to the study group idea, but I’m happy to answer questions in a thread like this. (Or maybe in a dedicated Lemmy community for science computing)

                • gronjo45@lemm.eeOP
                  link
                  fedilink
                  English
                  arrow-up
                  1
                  ·
                  1 year ago

                  I think I’ll make a page for scientific computing. Let’s see if we can get others interested as well. How do I get an instance up?

  • Franzia@lemmy.blahaj.zone
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    1 year ago

    Sounds fun to me, OP

    I imagine it similar to a book club. Weekly main post, and then there’s a tag for peole submitting new poats about it if they need help and feedback, at the end of the week another main post to talk about how it went?

    • gronjo45@lemm.eeOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 year ago

      Exactly! Nobody wants to hear us rant about init system design or ways one could design hardware abstraction layers for new architectures :( That’s why we have each other :D

      Welcome aboard the crew. Do you have a Matrix account? I was thinking we should get a group chat going, introduce ourselves, and get some project ideas going

  • Lotsen@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 year ago

    I am not a programmer but I know a little bit about coding. The thing I know stuff about is modding and repairing technology like computer and older games consoles. For me preservation of hardware is necessary. Eaven tho emulation is great all consoles arnt supported yet (like the ps3). I want to learn how to create a website with html but right now I’m not that intresed in coding.

  • Haui@discuss.tchncs.de
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 year ago

    Autistic systems engineer here. I build servers, pcs, networks, write software, troubleshoot, automate.

    I‘m into linux for a little over 2 yrs I believe both professionally as well as privately.

    All of these topics interest me on some scale. Let me know if I can be of assistance (I also mod the ubuntuserver community on tchncs instance).

    Have a good one.

    • gronjo45@lemm.eeOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      Sounds like you’ll fit right in with the crew. Welcome aboard, friend!

      Do you have Matrix? I think we should get a group chat going ams get a consensus on what projects we’d like to accomplish.

      Ich hab dir eine Private Nachricht geschickt. Indem liegt mein Matrix Name.

  • Cpo@lemm.ee
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 year ago

    Non autistic lurker with a wife and two daughters here who are “slightly on the spectrum” here.

    I have been a linux user since the early editions of slackware, full stack Kotlin/Java/angular/react developer professionally.

    In my spare time I build stuff with electronics (mainly esp32 microcontrollers) and am trying to automate the living daylights out of our home.

    I have organized Coderdojo (programming for kids) in the city I live and am doing volunteer work at a music venue.

    (If I read this back, ADD could surely fit my personality lol, no disrespect intended)

    If there is something I can help out with, don’t hesitate.