Today I learned how to install jupyter properly while using uv to manage tools.
Today I learned how to do multiline input in the REPL using an uncommon combination of arguments for the built-in open.
Learn how to remove extra spaces from a string using regex, string splitting, a fixed point, and itertools.groupby.
Learn how to use structural pattern matching (the match statement) to work recursively through tree-like structures.
Today I learned how to create and register a simple Sphinx extension to use as a custom directive in a Jupyter Book project.
In this article you will learn about itertools.pairwise, how to use it, and how to generalise it.
Today I learned how to inline SVGs in Jupyter notebooks in two simple steps.
Today I learned how to set the configurations of my Jupyter Book to build my book in the EPUB format.
A high-level overview of how to use the module compression, new in Python 3.14.
A generator, duck typing, and a branchless conditional walk into a bar.
Today I learned how to build the Python documentation to preview changes I wanted to make.
This article serves as a complete reference for all the non-trivial things you should know about Python functions.
Today I learned how to use the equals sign to align numbers when doing string formatting in Python.
Today I learned about the shoelace formula to compute the area of arbitrary simple polygons.
Cheatsheet with the most common and useful uv commands to manage projects and dependencies, publish projects, manage tools, and more.
Today I learned you can change the casing of matched groups when doing a search & replace in VS Code with regex.
I am truly honoured to have been awarded a PSF Community Service Award in Q2 of 2025.
Learn how to use functools.Placeholder, new in Python 3.14, with real-life examples.