Видел множество статей на эту тему, но всё таки решил написать свою, свежую, без воды, с подробным описанием и решением некоторых проблем.
Отличный материал
Спасибо)