Written by @markgritter, source code on Github