Следующее испытание | 11 ноября 2017 года, 08:54

Если в прошлый раз это была ознакомительная прогулка, то на сегодня я выбрал сложный трейл. Метель, сугробы, перепад высот – 1000 метров (добрался до 1800м), затраченное время на круг с обходом (облазом) трёх озёр – 8 часов. Некоторые участки были реально трудные, уходило минут пять на сложные десять метров. Летом они проще. Дико счастлив:) фоток сильно больше, есть очень классные, но могло бы быть лучше: погода не солнечная, метель и снегопад.

Внедорожье по Москве за неделю: рекомендации по аренде автомобиля | 10 ноября 2017 года, 18:36

Друзья, порекомендуйте аренду авто на неделю в Москве, вдруг кто знает/пользовался. Чтобы хорошо и недорого.

Биологические часы: тайна просыпания | 10 ноября 2017 года, 12:22

Интересную штуку в командировке заметил. У меня здесь каждый день будильник заведен на семь утра (завтра на пять будет, правда). Довольно часто к семи утра я либо просыпаюсь сам, минут за пять, а то из за одну до звонка. Причем с первого раза. Неважно когда я засыпаю, даже если за 5 часов до этого. Вчера я проснулся под будильник, но обратил внимание на то, что аккурат к будильнику логически завершился сон. Видимо, где-то глубоко в голове щелкают “биологические часы” довольно высокой точности, которые подстраиваются каждый раз, когда я смотрю на часы. А когда я ложусь спать с целью проснутся в семь, где-то там во сне мозг оценивает, сколько там осталось до семи и пытается за это время выспаться, а то и показать мне сон. Интересно, где-то были эксперименты, когда люди засыпали с целью проснуться в семь, а им незаметно переводили будильник на попозже?

Посмотрел первую часть лекции Симона Шноля про биологические часы – но это не про то, что я пишу выше, просто термин тот же. Но лекция интересная,

https://tvkultura.ru/video/show/brand_id/20898/episode_id/249340/

https://tvkultura.ru/video/show/brand_id/20898/episode_id/249355/video_id/249355/

https://tvkultura.ru/video/show/brand_id/20898/episode_id/249340/

С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