order

A Gradual Journey to Typed Python

Python as a gradually typed language yeilds higher development velocity and reduced maintenance.
Python is much loved by developers for its ease of development, its low time to minimum viable product and, some might say, its dynamic typing. I’ve been using dynamically typed Python for the better part of a decade now, for those same reasons. Dynamically typed Python is rapid to develop in, features amorphous blobs of data and works great for writing code quickly. Gradual typing and static analysis split the difference between the reduced velocity of a strongly typed language and the likewise reduced velocity of maintaining code where the input and output data types are unclear.

A Socratic Study of Euclid's Elements

Using the Socratic approach for the study of Euclid's Elements to increase the breadth and depth of understanding.
Studying The Elements of Euclid reveals the foundations of mathematical rigour and the systems through the lens of which we see the world today. Though the end result of the concepts covered in many of the books of the Elements will be familiar to those who have completed high school maths; seeing Euclid’s system come together to weave the fabric of maths and understanding the proofs from first principles is another matter entirely.

Creating a Zettelkasten with Hugo

Why you need a Zettelkasten, what a Zettelkasten is, and how to create a portable Zettelkasten using hugo and git. Based on the ideas of Niklas Luhmann and Umberto Eco.
Why do I need a Zettelkasten? The idea of a Zettelkasten struck me in a chat recently. I have been keeping physical journals, using a modified form of bullet journalling, for a while; I had been keeping less structured notes before that, and ruminating on how to digitize them. After learning about the concept of Zettelkasten, it seemed like the solution; and that led me down the rabbit hole of investigation.