The Log

Oud tuning and string replacement

I found out that the order in which Oud strings are connected to their pegs when replacing the strings is important for a few reasons. It makes the neck look pretty, but more importantly, it makes the tuning more accurate when replacing strings, because it becomes easier to make sure that strings are not touching each other.

A Tour of DK EyeWitness CD encyclopedias from the 90s

For the last couple of days, I've been going through all sorts of nostalgia going over DK EyeWitness CD encyclopedias from the 90s. Although I understood about 15% at best at that time, I distinctly remember spending hours clicking around, watching images, animations, videos, and listening to the fantastic narration in the encyclopedias of Science, and of Space and the Universe.

Inspect network traffic of an iOS app

I needed access to some of the endpoints used by an iOS app, which also happened to be terrible. There are a couple of different ways to achieve this, probably the simplest of which is to run a proxy somewhere, and route traffic through it. Today I found out about mitmproxy which makes inspecting web traffic going through it very simple.

Debugging macros in Nim

Nim provides three essential macros in the built-in macros module that are very helpful when writing or debugging macros. They are: dumpTree, dumpAstGen and expandMacros.

Capture stack trace when queries are executed

Asserting query counts in Django tests with CaptureQueriesContext is a great way to maintain/optimize code, but it doesn't provide enough context to find what changed when tests fail during a refactor. I found it helpful to capture some lines from the stack trace when each query is being executed and have them accessible during test runs that use CaptureQueriesContext to be logged along with the query, when count assertions fail.

Emacs Polymode for Pico PIO files

Polymode is an emacs package that provides a framework to mix multiple major modes together with a few lines of code. This can be useful when working with files that contain multiple programming languages and you'd like major mode to switch based on a matching code block for example.