Today I Learned
Tidbits of knowledge I learned today.
July 1, 2020
- entr - Run arbitrary commands when files change.
June 20, 2020
- Charles Proteus Steinmetz, the Wizard of Schenectady - His contributions to mathematics and electrical engineering made him one of the most beloved and instantly recognizable men of his time.
- Function tests in Bash and the errexit mode -
#!/bin/sh
vs#!/bin/bash
, POSIX mode and the inconsistencies of errexit.
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
- GOTO 2020 • What We Left Behind - 10 Valuable Skills From The 1990s • Garth Gilmour & Eamonn Boyle
- GOTO 2020 • Beyond Microservices: Streams, State and Scalability • Gwen Shapira
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
- GOTO 2019 • "Good Enough" Architecture • Stefan Tilkov
- ISO/IEC/IEEE 42010 Systems and software engineering
- Standardization vs. Autonomy - there must be a balance between the two.
- Centralization - hurts; become a bottle neck.
- There's a fine line between diversity (that adds value) and chaos (that doesn't add value).
- Loose coupling requires very few rules, but they need to be enforced strictly.
- Add enriched metadata to Amazon VPC flow logs published to CloudWatch Logs and S3