Сnapshot of Success: Keeping Track of a Thousand Pages and Counting | 07 ноября 2017 года, 13:35

Сегодня сделал штуку, которой горжусь (так всегда, когда занимаешься немного не своим делом, и получается).

У меня в проекте сейчас около тысячи контентных страниц, сотни функциональных компонентов, многие компоненты используются на многих страницах, с уникальной конфигурацией или общей. Клиент обновляет как конфигурацию компонент, так и их состав на страницах, и как это часто случается при таких объемах, когда что-то чинится в одном месте, ломается в другом. Ну и задача это все держать в узде.

Что я сделал: У меня на серваке для всех страниц сайта создается графический снэпшот – набор картинок с полной копией страницы в момент снятия снэпшота. Каждая картинка лежит в папочках, соответствующих языку, стране, сайту, а также иерархическим рубрикам. Все доступно по веб. Аналогично сохраняются графические копии отдельных компонент страниц. Каждый день. Есть механизм визуализации изменений. Разумеется, когда изменения появляются там, где их не ждали, это и хорошо, и плохо. Плохо, что это значит, что кто-то что-то сделал неправильно, а хорошо – тем, что обнаружили рано.

Показать ничего не могу, коммерческий проект.

Технологии: python, selenium, chromedriver, imagemagick.

Вдоль Вислы: 10 км за 5 часов и 33 минут | 07 ноября 2017 года, 13:13

10 км, 5:33, до Вислы, вдоль Вислы, от Вислы

https://www.strava.com/activities/1265475805/shareable_images/map_based?hl=en-US&v=1510078350

Логгинг для администраторов: как создать систему мониторинга операций в Single Page Application? | 05 ноября 2017 года, 06:14

Встала интересная задача. В хайбрисовской админке нет возможности записывать все действия администратора, чтобы потом в случае чего можно было понять кто накосячил. Некоторые объекты ведут свою историю изменений, и там есть отсылка к изменившему данные, но всякие операции оставляют в лучшем случае записи в логе, но никогда – с отсылкой на конкретного администратора.

Анализировать логи сервера тоже бестолку, потому что админки сейчас построены на Single Page Application.

У меня появилась идея, как можно реализовать такой логгинг для любых систем, а не только хайбриса. И пытаюсь найти такую тулзу готовую, и пока не получилось. Ее относительно несложно сделать. Если вы разбираетесь в chrome extensions, можно попробовать сделать PoC вместе.

Идея такая:

1. Администратор заходит в сайтовую админку (не обязательно хайбрис).

2. Экстеншн в Хроме понимает, что открывшийся сайт – из списка на журналирование операций и переходит в рабочий режим.

3. При определенных событиях, как “ввод данных в форму”, “клик на элемент” система выполняет журналирование операции и отправляет на сервер результаты. А именно:

а) скриншотит экран, и выделяет область, где находится элемент (или весь экран, если так проще, для начала).

б) добавляет дополнительные метаданные к скриншоту, если их удалось выцепить (например, для textarea – введенный текст)

в) добавляет айди оператора.

г) ставит скриншот с метаданными в очередь на отправку.

д) разгребает очередь постепенно отправляя скриншоты на сервер

На сервере скриншоты падают в стек FIFO, какое-то время доступны для анализа суперадмином, если появляется проблема.

Из минусов вижу следующие:

1. Непонятно как реализовать drag-n-drop, например. Также непонятно, как определять, что пользователь заполнил форму (просто что-то ввел и ушел из textarea – нужно ли отправлять в этом случае скриншот или нет? хз)

2. Не всегда легко обогатить скриншот метаданными. Например, обработчик onClick может висеть на пустом div, а другой div будет содержать активный элемент с данными.

2. Много внимания системе безопасности

3. Возможное торможение системы из-за постоянного аплоада скриншотов. Если активно кликать в админке, исходящий траффик будет создаваться около 1Мб/сек. Потенциально может привести к тормозам. Но все же, это не очень большая проблема.

Если есть специалисты по Chrome Extensions – велкам. Может, набросаем вместе PoC?

P.S. В комментах спрашивают, почему не анализировать запросы. Вот почему: https://www.facebook.com/raufaliev/posts/10155743809477368?comment_id=10155743823937368&reply_comment_id=10155743836027368&comment_tracking=%7B%22tn%22%3A%22R%22%7D

Journey to Paradise: 2.5 Hours of Bus Ride, 40 Minutes More, and 10 km on Foot to Reach the Stunning Morskie Oko in Tatra Mountains | 04 ноября 2017 года, 13:09

2.5 часа автобусом, потом 40 мин ещё одним, потом 10 км пешком, и я в Татрах, Morskie Oko. Утверждается, что это одно из самых красивых горных озер в мире

Таймзоны: старый мир в новом свете? | 03 ноября 2017 года, 04:25

Поубивал бы тех, кто так делает выбор таймзоны. Двадцать первый век на дворе, Tesla, гравитационные волны, SpaceX повторно запустила отработанную ракету, компьютер наконец выиграл у людей в го, а в Windows для выбора таймзоны нужно помнить смещение от UTC или типичный для него город.

Почему не загнать весь список крупных городов в систему и не сделать удобный справочник? В мире всего около 500 городов, где живут больше миллиона человек и около 5000, где живут больше 100 тыс.