mathspp blog

390 424,727 35,414
articles words lines of code

The 10th article of this series adds support for elif and else statements.

This practical tutorial shows how to use uv to build and install custom Python CLI applications globally on your system.

You can ignore exceptions with contextlib.suppress and in this article I show why this is preferred over try: ... except: pass.

Today I learned that I can use the percent sign to run commands from inside Jupyter notebooks.

Today I learned that Python has nested Easter eggs in the standard library.

Today I learned that Polars allows non-strict vertical concatenation of dataframes with the parameter how="vertical".

Today I learned how to create standalone Python scripts with uv.

I used an LLM to write a countdown timer and I have mixed feelings about the result.

Today I learned how I can use the method 'groupdict' from a regex match to get a dictionary with all named groups.

In this article I explore functools.cmp_to_key and propose a possible implementation.

This article teaches the decorator pattern in Python, why it exists, how to use it, and when to use it to write efficient and idiomatic Python code.

Today I learned that if you suppress the exception KeyboardInterrupt then your program is still interrupted but it doesn't display a traceback.

Today I learned that the hash of an integer is the integer itself, except for -1. The hash of -1 is -2.

This article walks through the code used to animate a tree fractal.

Today I learned how to allow my custom objects to be unpacked into keyword arguments like '**kwargs'.

Reverse-engineering the program from “Chronospatial Computer”, day 17 of Advent of Code 2024.

Today I learned how to use the Polars function pl.date_range to create date sequences with calendar-aware intervals between dates.

Solving “Bridge Repair”, from day 7 of Advent of Code 2024, in 4ms with Python with a simple deductive algorithm.

Today I learned how to use shell scripting to activate my virtual environment automatically when I change directories.

In this article I show how I wrote a parser to parse TXRX files into a more manageable object in Python.