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