www.donaldharper.com/posts/2009/02/15/odds-and-ends-6.md