This post was originally published on August 21, 2009 and is now updated as it has been entirely revised. Both original methods are removed and now