Mathspp Blog

370 407,913 33,622
articles words lines of code

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.

Today I learned about the behaviour of asyncio.gather.

Today I learned about 5 useful pytest options that let me control what tests to run with respect to failing tests.

This article goes over the content I taught at the world's largest programming lesson that broke a Guinness World Record with 1668 students.

This article outlines the steps I follow to prepare my technical talks, including notes on slide design, engaging with the audience, how to prepare the delivery, and how to manage the Q&A.

Today I learned how to call a makefile from within another makefile.

The function random.shuffle relies on the mutability of the argument and mutability is a pain in the arse, so we propose an alternative.

Can you solve this crossword where all hints are regular expressions?

This article outlines how I use a pre-commit hook and cog to keep my blog stats updated automatically.

The dunder method __new__ is used to customise object creation and is a core stepping stone in understanding metaprogramming in Python.

This article shows how you can create a case-insensitive string class using some basic meta programming with the dunder method __new__.

This article briefly describes the iterators available in the Python module itertools and how to use them.

Today I learned how to debug the new Python REPL with _pyrepl.trace and the environment variable PYREPL_TRACE.

Today I learned how to fix an issue with Ctrl+left and Ctrl+right not working in the new Python REPL on MacOS.

With a couple of loops and a bit of maths you can create a rotating spiral.

Today I learned the difference between __getattr__ and __getattribute__.

You can use the Python built-in function iter with two arguments to create an iterator from a function.

You can use generators to simplify nested loops and make it easier to break out of them.

Today I learned how to order the values of a dictionary according to an iterable of keys.