This blog has a really interesting assortment of articles on mathematics and programming. You can use the tags to your right to find topics that interest you, or you may want to have a look at

- the problems I wrote to get your brain working;
- some twitter proofs of mathematical facts.

You can also subscribe to the blog newsletter.

Today I learned how to write the Quicksort algorithm in a weird functional style.

This article will teach you about the minimax algorithm and alpha-beta pruning, from a beginner's perspective.

This article compares the three main string formatting methods in Python and suggests which methods to use in each situation.

Today I learned about the DARPA network challenge and the power of referral systems.

This is a short article on how I quickly used APL to verify my combinatorics calculations.

Can you make the pyramid point the other way by moving only three coins?

Today I learned you can use `pathlib`

to read the contents of a file.

When you call a function in Python and give it some arguments... Are they passed by value? No! By reference? No! They're passed by assignment.

Today I learned how the rich comparison protocol and, in particular, how **eq** works behind the scenes.

Can you help these kids trick or treat their entire neighbourhood in this Halloween special?

How can two doctors operate two patients with only two pairs of latex gloves?!

Today I learned that Python 3.5+ supports the operator `@`

for matrix multiplication.

Today I learned that you can use emojis as variable names in Python if you use `pythonji`

.

Today I learned that the `.join`

method in Python is a two-pass algorithm, and that's why joining a list comprehension is faster than a generator expression.

This Pydon't will teach you how to use Python's conditional expressions.