This article covers a useful LLM pattern where you ask the LLM to write code to solve a problem instead of asking it to solve the problem directly.
See an animation of a trapezoid innscribed in a circle, built with some maths and the help of an LLM.
Today I learned that cyclic quadrilaterals have supplementary opposite angles.
Today I learned how to inspect a lazy import object in Python 3.15.
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.