The Digital Cat


Adventures of a curious cat in the land of programming

I've seen things you people wouldn't believe. Attack ships on fire off the shoulder of Orion. I watched C-beams glitter in the dark near the Tannhäuser Gate. All those moments will be lost in time, like tears in rain. Time to die.

Blade Runner, 1982

All posts



Articles about programming in various languages, mainly Python but also Scala, Erlang, C. Other topics I discuss are algorithms, compilers, architectures, operating systems, testing.



All my retroprogramming articles, bits and bytes, and low level investigations. Home of the "Exploring the Amiga" series. Beware of the dragons!


Top series


TDD in Python with pytest

You might have heard of TDD and tests, but are they part of your workflow? Do you think that writing tests is a useless waste of time, or that it's too complicated for a beginner? Beginner or not, join me in this series of posts where I create a very simple Python class from scratch using a strict TDD approach, and discover the joy of tested, reliable, well-designed code.


A game of tokens

Python, Ruby, Javascript, C, Erlang, how many different languages. But how does a compiler work? How is the source code converted into something that works? To understand that there's nothing better than actually write a language. Let's write a simple language interpreter in Python using TDD!


Flask project setup

Have you ever started working on a web application project just to find yourself swamped in a bunch of files and directories with silly names and without a clear picture of what is really going on? In this series of post I show you how to properly set up a Flask application using TDD, Docker, Postgres and more.


Exploring the Amiga

Is it worth unearthing old architectures? Is it worth understanding how a computer system from the 80s worked? I believe old architectures can teach us a lot, so let's explore "the computer that wouldn’t die"!


Python 3 OOP

What happens behind the scenes of classes and instances? What are composition, inheritance, and polymorphism? A series of posts that dig into the Python implementation of the Object-oriented paradigm.


Clean Architectures in Python

Clean Architectures in Python

The clean architecture is the opposite of spaghetti code, where everything is interlaced and there are no single elements that can be easily detached from the rest and replaced without the whole system collapsing. The main point of the clean architecture is to make clear "what is where and why", and this should be your first concern while you design and implement a software system, whatever architecture or development methodology you want to follow.


TDD in Python with pytest (playlist)

TDD in Python with pytest (playlist)

I recorded my successful workshop "TDD in Python with pytest" and produced my first series of videos, for a grand total of 2 hours of hands-on tutorial on Test-Driven Development in Python.