A minor comment. We use <code></code> tags here for a reason. People use the site in different ways and like to have control over how code is rendered for them. When you post your code as you have you break this, which people find annoying. Its real easy to see your code as literal text if you use <code> tags even if it doesnt always render exactly as you might like for every users personal settings. But thats the point of personal settings, the user wants to choose and not simply accept what the author is willing to provide.
Anyway, I quite enjoyed the posting. Thanks.