As usual, the complete code used in this article is available over on GitHub.