Перевод этого поста: http://old.reactor.cc/post/4338793
Перевод в комментах. Ранее: Часть 1, Часть 2, Часть 3. Оригинал