As always, the code snippets used in this article are available over on GitHub.