Законченная версия этого поста.