Чтобы добавлять сообщения и комментарии, .

@agr:
agr

Дополнил все точки выхода из диаграммы условий контентом, пару раз отрефакторил.
Бинарное дерево с Bool и вышло. Лаконичнее код уже не получилось написать. Посмотрю на код через месяц-другой обязательно. Как его ещё можно улучшить.

Добрался до гипотез. Реализовал весь подсчет на стороне базейки. Надо протестировать. Потом — монетизация. Пока смотрю в сторону коробочного решения типа яндекс.кассы.

Потому что, сначала надо фичи релизить, да. А потом уже отсекать сущности бритвой Оккама. Долгострой пора выводить в продакшн.

@agr:
agr

Принёс вам туманность Лобстер.

@agr:
agr

Принёс вам немного Андромеды.

@agr:
agr

achievement unlocked: 1829x times faster code execution.
пользуясь случаем, передаю привет индийским братьям.
и да, печально, что сами ребята не справляются с рефакторингом собственного кода. ведь некогда думать, надо писать код.

@agr:
agr

Мастерство заголовка.
В Петербурге китайца заподозрили в поедании бриллианта

@agr:
agr

Я вам немного Венеры, Марса и ИСЗ принёс.

@agr:
agr

Я вам Млечного пути принёс.

@agr:
agr

I'm sudo rm -rf master

@agr:
agr

Когда имеешь дело с эмуляторами, то рано или поздно приходишь к такому.

@agr:
agr

[atom]

A0 = connect.t
Z0 = wait.t
...
A2 = auth_fail.t
A3 = retry_auth.t
A4 = logout.t

[hfsm]

disconnect = *-Z0 # any command, disconnect after timeout defined in wait.t
retry = A2-A3 # wrong username, retry authorize
sequence1 = A0-retry-retry-A4
...

Дамп из головы пока такое выдаёт в качестве синтаксиса для описания иерархических конечных автоматов.

@agr:
agr

37.187.130.94 Python-urllib/2.7
/script /jenkins/script /login /jmx-console /manager/html /msd /mySqlDumper /msd1.24stable /msd1.24.4 /mysqldumper /MySQLDumper /mysql /sql /phpmyadmin /phpMyAdmin /mysql /sql /myadmin /phpMyAdmin-4.2.1-all-languages /phpMyAdmin-4.2.1-english /sqlite/main.php /SQLite/SQLiteManager-1.2.4/main.php /SQLiteManager-1.2.4/main.php /sqlitemanager/main.php /SQlite/main.php /SQLiteManager/main.php

Суровые будни ботоводов.. Зато теперь понятно, что нынче в моде.
Пришла пора снова расчехлять банхаммер..

@agr:
agr

В продолжение этой истории #2860556. Не заметил, как фейл2бан заблеклистил мой домашний айпишник, а я хотел смену пароля рута проверить, но что-то пошло не так! Эпично, однако. Зато знаю, оно работает.

@agr:
agr

Детектив прямо, гимн собственной глупости.

Прилетает письмо. Так и так, дохера трафика замечено. пол-терабайта отожрано. Так пойдёт — мы за это с вас деньги брать будем.
Ну думаю, зашибись. Сначала думал, traffic flood. Потом смотрю на tcpdump и медленно седею: а запросы-то — исходящие. В истории команд обнаружил деактивацию fail2ban.

Было у меня несколько юзеров для разных типа приватных репозиториев на впске.
N-1 юзер был загитшелен (от git-shell). А вот 1 остался, недоглядел, на /bin/bash прибинжен.

Итого: Запущена флудилка а-ля наколеночный ботнет. Убиваешь эту дрянь — перезапускается. Убиваешь сессию sshd для этого юзера — тут же появляется новая.
В общем, юзера с его процессами долой, скрипты автозапуска прошерстил. Все остальные репозитории тоже побил, юзеров побил, всё убил лишнее. Пароли везде поменял. Ненужных юзеров побил к чертям. После рестарта тишина.

Что дальше? Чего посоветуете для сдачи анализов от ботнетов и дряни?

@agr:
agr

Есть мем про котлетки с пюрешкой.
Вот у меня при посмотре оригинального ролика прямо дежа-вю возникло.
Сначала думал, что это на Васильевском острове снимали, возле клиники неврозов. Там рядом Успенская церковь есть.
Но коллега подсказал, что речь о Троицком соборе. На карте он нашёл похожий паттерн: yandex.ru Цвет куполов, двухэтажное "выпуклое" здание, совпадение.

Выяснилось, что это действующий и поныне городской ПНД №7: spbmed.info

@agr:
agr

Прошедшей ночью одним продакшном в мире стало больше.

@agr:
agr

Утка или гусь? В ресторане...

@agr:
agr

Каково это, писать код в публичной библиотеке?

@agr:
agr

Большое Магелланово облако вам принес.

@agr:
agr

Добил отвратительную диаграмму ветвлений, отображающую зависимости между ролями и сессиями пользователей. Днём надо убедиться, что код действительно работает так, как задумано.. Наполнить все точки выхода контентом. В идеале — прикрутить поддержку гипотез для A/B тестирования.

@agr:
agr

Столкнулся с замечательной вещью. Есть файл UTF-8 without BOM, содержащий букву ó, SQL запрос. Слово "Dirección". Набирается в испанской раскладке как "[o" (без кавычек). Прикол в чем. Есть Oracle, в котором тоже кодировка UTF8 выставлена. NLS_CHARACTERSET, все по феншую.

— Пытаешься выполнить запрос в редакторе запросов. Потом о с ударением отображается как надо.
— Пытаешься выполнить запрос через sqlplus под виндой. Отображается хрень типа ó.
— Пытаешься выполнить запрос через sqlplus под линухом, на котором UTF-8 сконфигурирован — та же хрень.
— Изменяешь в INSERT-запросе 'ó' на 'o', а строчкой ниже делаешь UPDATE с replace на compose( 'ó' || unistr('\0301') ) — на отображение работает, но в рантайме не воспринимается как 50099 char.
— Изменяешь в INSERT-запросе 'ó' на compose( 'ó' || unistr('\0301') ) — всё ок.

Почему так — не разобрался до конца..