TechWorkRamblings

by Mike Kalvas

202206191300 Computer Science

#structure

The nitty-gritty of computation and technology. Contrasted with 202109061338 Software Engineering which is more about the practice of writing software and careers or organizations in that field.

Curriculum

Programming Languages

Asynchronous computing

Type Systems

Data Structures and Algorithms

  • Graphs
    • good overview of graphs via rust petgraph in particular the idea of parallelizable todo lists from DAGs. This could be interesting when working on dependency graphs for developer tooling, local environments, ephemeral environments etc.

Databases

Threads

Since there’s an entire lifetime of knowledge that can go under this topic, this is a bucket that I can dump interesting threads to pull on instead of interleaving the #thread tag everywhere.

  • Information theoretic model of project architecture? Information as in “processing of” as well as “communication about ‘processing of’ to future devs”

    flowchart LR
      source((Source))
      esf[Standard Format]
      ecf[Channel Format]
      noise((Noise))
      channel[Channel]
      dsf[Standard Format]
      dcf[Channel Format]
      sink((Sink))
    
      source --> encoder
      subgraph encoder
        direction LR
        esf --> ecf
      end
      encoder --> channel
      noise:::noiseClass --> channel
      channel --> decoder
      subgraph decoder
        direction LR
        dcf --> dsf
      end
      decoder --> sink
    
      classDef noiseClass fill:#f08666,color:#282a2f;
    
  • CE Shannon’s Information theory has the surprise of something as the main measurement for the amount of information it carries. He measures this as the negative logarithm of the probability of the occurrence of that information. For instance, If you are told something you’re already certain of you would gain no new information (i.e. logp=i or log1=0 for the certain case and limx0logx= shows that you gain more knowledge the closer the event is to impossible (does infinite knowledge gain really make sense though for something that “can’t” occur?))

  • Could abelian groups be interesting for storing data in an order-insensitive way among distributed systems? Vis-à-vis Commutativity of operations. Something like f(some datad)=some numeric encodinge results in an abelian group G=e|ef(d). What would this even mean for things that aren't defined as abelian groups anyway? I.e. saying that the total is 2+3=5 or 3+2=5 doesn't change the interpretation of 5. Can I even think of any non-trivial things that are order-insensitive operations besides mathematical ones? Formal definition

    • Good intuition, CRDTs are this basically. Not necessarily abelian groups, but adding commutativity and associativity to a merge function on data.
  • L1, L2, and L as metric (i.e. strict definition as distance functions) for n-dimensional design for systems.1

  • Sophisticated signal processing on analytics data to "find the signal in the noise."1 (Ch. 14–17)


  1. Hamming, R. W. (2020). The art of doing science and engineering: Learning to learn. Stripe Press. https://www.goodreads.com/book/show/53349431-the-art-of-doing-science-and-engineering 2