Рубрика: facebook
Flavors of Duality: A Georgian Restaurant in Polands Jewish Quarter | 05 ноября 2017 года, 12:23
Чаёвничаем
05 ноября 2017 года, 11:23
Грузинский ресторан в еврейском квартале в Польше
Логгинг для администраторов: как создать систему мониторинга операций в 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
Вдохновение в движении | 04 ноября 2017 года, 16:22
Из окна автобуса сегодня.

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. Утверждается, что это одно из самых красивых горных озер в мире

A Taste of Home in the City of Love | 03 ноября 2017 года, 13:26
В продолжение ресторанной темы, ужинаю в любимом Корлеоне

Таймзоны: старый мир в новом свете? | 03 ноября 2017 года, 04:25
Поубивал бы тех, кто так делает выбор таймзоны. Двадцать первый век на дворе, Tesla, гравитационные волны, SpaceX повторно запустила отработанную ракету, компьютер наконец выиграл у людей в го, а в Windows для выбора таймзоны нужно помнить смещение от UTC или типичный для него город.
Почему не загнать весь список крупных городов в систему и не сделать удобный справочник? В мире всего около 500 городов, где живут больше миллиона человек и около 5000, где живут больше 100 тыс.

Моя безумная поисковая миссия | 02 ноября 2017 года, 10:45
Я думал, это в Америке порции большие. И там в меню была опция extra large, это я не ее взял, а поменьше. Найдите очки)

