code for my blog at michael-whelan.net