Today I Learned

Tidbits of knowledge I learned today.

July 1, 2020

  • entr - Run arbitrary commands when files change.

June 20, 2020

June 15, 2020

  • rook - open-source, cloud-native storage for Kubernetes. Rook orchestrates multiple storage solutions, each with a specialized Kubernetes Operator to automate management. Choose the best storage provider for your scenarios, and Rook ensures that they all run well on Kubernetes with the same, consistent experience.
  • sealed secrets - a Kubernetes controller and tool for one-way encrypted Secrets.
  • sops - an editor of encrypted files that supports YAML, JSON, ENV, INI and BINARY formats and encrypts with AWS KMS, GCP KMS, Azure Key Vault and PGP.

June 12, 2020

  • nats - a simple, secure and high performance open source messaging system for cloud native applications, IoT messaging, and microservices architectures.
  • dapr - distributed application runtime built on nats.

June 10, 2020

June 9, 2020

  • 432 Hz vs. 440 Hz Tuning Standards

June 7, 2020

  • Temporal workflow vs Cadence workflow - explaination of the differences by the original tech lead of both.
  • Cadence Workflow - a fault-oblivious stateful programming model that obscures most of the complexities of building scalable distributed applications. In essence, Cadence provides a durable virtual memory that is not linked to a specific process, and preserves the full application state, including function stacks, with local variables across all sorts of host and software failures. This allows you to write code using the full power of a programming language while Cadence takes care of durability, availability, and scalability of the application.
  • Saga Pattern - Implement each business transaction that spans multiple services as a saga. A saga is a sequence of local transactions. Each local transaction updates the database and publishes a message or event to trigger the next local transaction in the saga. If a local transaction fails because it violates a business rule then the saga executes a series of compensating transactions that undo the changes that were made by the preceding local transactions.

June 4, 2020

  • d3-graphviz - Graphviz DOT rendering and animated transitions using D3.
  • smol - small and fast async runtime for Rust.

June 2, 2020

  • Nix - a package manager and build system that parses reproducible build instructions specified in the Nix Expression Language, a pure functional language with lazy evaluation.
  • There are 3-4 implementations in mainstream use: nawk (the one true awk, an ancient version of which is installed on Mac OS by default), mawk (installed on eg. Ubuntu by default), gawk (on RH by default last I checked), or busybox-awk. Tip: mawk is much faster than the others and to get performance out of gawk you should use LANG=C (and also because of crashes with complex regexpes in Unicode locales in some versions of gawk 3 and 4).
  • xstate - JavaScript and TypeScript finite state machines and statecharts.
  • shadowenv - reversible directory-local environment variable manipulations.
  • envsubst - substitutes the values of environment variables.
FOO=foo
BAR=bar
export FOO BAR

envsubst <<EOF
FOO is $FOO
BAR is $BAR
EOF

May 11, 2020

  • Kubernetes GC - by default, once disk usage is 80% the GC will delete container images.

May 7, 2020

May 6, 2020

  • docker system prune
  • exa - modern replacement for ls written in Rust.

May 5, 2020