Weeknotes 15
Engineering
- Why Numbering Should Start at Zero | Edsger W. Dijkstra. A simple and beautiful argument for why numbering for arrays should start at zero.
- How I ship projects at big tech companies | Sean Goedecke. The author defines shipping as making sure your boss knows that you have shipped it. I vehemently disagree with this take, but maybe this is how it works in big tech.
- Cryptographic Right Answers | Latacora. A collection of answers for common questions one will have related to cryptography, like, “What should I use to encrypt data?”, “How to store passwords?”. The answers are based on recommendations from various standards and other research.
- Which IDEs do software engineers love, and why? | The Pragmatic Engineer. A survey on what IDEs do people prefer with a focus on AI features. You’ll get some good options to start with if you haven’t explored LLMs for your development workflow yet.
- Bit Twiddling Hacks | Sean Eron Anderson. A collection of operations implemented using bitwise operations.
- The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) | Joel on Software. An eye-opening read on what Unicode actually is. Completely changed my mental model of Unicode.
- More compact dictionaries with faster iteration | Python-Dev. An old proposal for changing the memory layout of dictionaries in Python. Fascinating to look at and crazy to think the impact that this change has on a global scale.
- The SO_REUSEPORT socket option | LWN.net. This talks about the option which lets multiple processes to bind to the same port. I learnt in college that only one process is allowed to bind to a port at one time. Nice to see it being proven wrong. I will have to investigate this and figure out how they did it.
- Laws | Frugal Architect. A set of architecture principles to build cost-aware applications.
- Barely an Interface | David Beazley. Reasoning on why ABCs in Python is not suitable for an interface.
Tools
- LibreTranslate — Free, Self-Hostable and Open Source Machine Translation API.
sqlc
— Compile SQL to type-safe idiomatic Golang Code.- NuExtract 1.5 — Multilingual, Infinite context, still small, and better than GPT-4o! — NuMind
networkQuality
— A built-in macOS utility for monitoring network speed. Basically fast.com in your terminal.