As always, the source code for this article is available over on GitHub.