Сам я обычно только читаю (и иногда комментирую) здесь подобные статьи, но в данном случае есть повод поделиться собственными наработками и рассказать, как удалось: