Первоначально пост об этом появился на хабре. Тема меня заинтересовала, поэтому подготовил свой вариант.