On the widening gap between a system that checks out and one that’s actually right, now that proof itself is getting cheap.
A clean proof that composite exponents can never yield a Mersenne prime.
Solving a number-calling game with backward induction and modular arithmetic.
Three different proofs of C(n,2), from a checkerboard table to overcounting and dividing.
Counting all 35 triangles hidden inside a pentagon and its inscribed pentagram.
Why civilizations that value knowledge for its own sake are best placed to survive AI.
Why documentation fails when stakeholders never align, and a framework to fix it.
A field guide to diagnosing pod status, logs, and crashes in a Kubernetes cluster.
A technical writer’s nitpicks on BrowserStack’s documentation, from admonitions to IA.
Automating browser tests with Selenium, BrowserStack, and GitHub Actions CI.
Starting the new year with Structure and Interpretation of Computer Programs, and notes from its introduction.
Simple strategies to never lose a game of tic-tac-toe.
A hands-on tutorial for landmark detection using Google Cloud Storage and Vision API.
A practical decision guide for choosing between SOAP and REST web services.
Reviewing and refactoring a Java string-frequency counter for clarity and efficiency.
A short list of personal rules across body, mind, work, money, and relationships.