Programming Humour

One of my alltime favourite jokes in the context of software engineering is: “There are 2 hard problems in computer science: cache invalidation, naming things, and off-by-1 errors.” I recently discovered it came from a post on X. It’s been 16 years since it first came out, and there’s finally a small update we can make: 16 years later, we’ve finally solved off-by-1 errors with the help of agents. Unfortunately, we replaced them with AI slop. Two hard problems remain. ...

March 8, 2026 · 1 min · 114 words

Python 3.9 StatsProfile — My first OSS Contribution to cPython

You can try out all of the code in this article yourself using this Google Colaboratory notebook. If you’ve ever tried to debug and optimize your python application, it’s likely that you stumbled upon Python Profiles to understand where most of the execution time is being spent. You enable the profiler at the beginning of a code segment you’re interested in profiling with pr.enable(), and call pr.create_stats() at the end. View code on GitHub Gist ...

February 17, 2020 · 4 min · 760 words · Medium

TestIex — Easier Test Driven Development in Elixir

One of my favorite features of elixir is being able to start a shell that loads the entire context of my project: $ iex -S mix It provides easy access to all of the project’s modules so you could easily iterate on your code by compiling it directly from within the shell. You have the option to recompile the whole project or just a single module: # single module $ r MyModulesNameSpace.MyModule # whole project $ recompile The other great thing about elixir is how easy it is to run unit tests: ...

January 27, 2019 · 3 min · 529 words · Medium