среда, 18 ноября 2020 г.

[prog.c++] Обработка событий агента с учетом приоритетов в SObjectizer: нужно, не нужно, если нужно, то как именно?

Этот пост служит предложением к разговору о том, что и как может быть добавлено в SObjectizer. Или о том, что не нужно добавлять.

Некоторое время назад на GitHub-е был открыт issue с предложением сделать привязку какой-то дополнительной информации для подписки. В частности, информации о приоритете подписанного сообщения.

Сейчас появилась возможность вплотную заняться данным issue. Хотя с этой темой не так все просто.

Суть проблемы в том, что в SObjectizer-5 все события у агентов равноприоритетны. Т.е. если агенту отсылаются сообщения вот в таком порядке: msg_A, msg_B и msg_C, то обрабатываться эти сообщения будут в таком же порядке.

Если нужно обрабатывать поток входящих сообщений с учетом приоритетов, то в SObjectizer-5 есть приоритеты у агентов. Нужно создать несколько агентов-обработчиков с разными приоритетами, затем их нужно привязать к одному из тех штатных диспетчеров, которые реализуют обработку событий с учетом приоритетов обработчиков.

Но вот на практике одного из пользователей SObjectizer-а такая схема не устроила. Поэтому им был выбран другой подход: допиленная под себя версия SObjectizer-а, в которой при подписке агента может задаваться приоритет для события. Плюс к этому собственный диспетчер, который при получении новой заявки определяет ее приоритет и сохраняет заявку в std::priority_queue с учетом ее приоритета.

Получается, что у кого-то из пользователей SObjectizer есть потребность в приоритизированной обработке сообщений для одного агента. Которую либо нужно удовлетворить в самом SObjectizer (или в so5extra), либо нужно показать, как этого же эффекта достичь без допиливания SObjectizer-а под себя.

Пока есть более-менее свободное время хочется либо закрыть issue 17 добавлением в SO-5/so5extra новой функциональности, либо написанием примера (примеров) с демонстрацией получения искомого результата имеющимися средствами.

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

Так что если кого-то интересует SObjectizer и его возможности, то приглашаю присоединится к разговору. Либо прямо в обсуждении issue 17 на GitHub, либо же здесь в комментариях. А я под катом попытаюсь рассказать, что думаю по этому поводу.

четверг, 12 ноября 2020 г.

[prog.c++] Библиотека RESTinio обновилась до версии 0.6.12

RESTinio продолжает развиваться. Выкатили версию 0.6.12. В этой версии появились возможности для более жесткого контроля за тем, что приходит от клиента. Что может помочь в случае, если написанный на базе RESTinio сервис смотрит напрямую в Интернет, а не прячется за каким-то proxy-сервером.

Если кому-то интересны потроха RESTinio, то на Хабре опубликована свежая статья о том, как новая функциональность включается/выключается посредством C++ных шаблонов.

По поводу дальнейшего развития RESTinio можно сказать следующее: соображения о том, куда двигаться дальше, есть. Часть озвучивалась ранее, часть нет (как из суеверия, так и из недостаточной проработки). Но тут нужно понимать простую вещь: RESTinio напрямую нам денег не приносит, поэтому что-то новое в RESTinio появляется только тогда, когда у нас находятся для этого и время, и возможности. Се ля ви.

В завершение хочу сказать спасибо всем, кто выбрал и использует RESTinio. Вы ведь могли предпочесть что-то другое, но сделали правильный выбор ;) За что вам большое спасибо.

Так же напомню, что если вы что-то хотите увидеть в RESTinio, но ничего нам об этом не говорите, то оно и не появится. Ибо мы об этом даже и не узнаем. Посему не стесняйтесь открывать issue ;)

понедельник, 9 ноября 2020 г.

[work.memories] Понастальгировал читая статью про интерфейсы SCADA-систем

Свежая статья на Хабре под названием "Что не так с интерфейсами SCADA-систем" всколыхнула давно забытые воспоминания...

Картинка из хабровской статьи

Прошло уже 20 лет как я ушел из темы АСУТП, а люди продолжают рисовать "красивые" мнемосхемы в графических редакторах, подкладывать итоговый битмап в качестве фона, поверх которого уже отрисовывается оперативная информация.

Дело в том, что когда в первой половине 90-х в нашем местном КБ системного программирования руководитель отдела АСУТП Аркадий Косарев задумал сделать принципиально новую объектно-ориентированную SCADA систему, одним из требований к ней было использование векторных, а не растровых мнемосхем. Как раз потому, что уже в 1994-ем было понятно, что будут экраны разных разрешений и перерисовывать одно и то же для 640x480 и 1024x768 не вариант.

Как раз под этот проект Косарев собрал в своем отделе сильную команду, в которую вошли и несколько молодых специалистов, включая меня. И эта команда в итоге сделала SCADA Objectizer (реинкарнацией которого и является SObjectizer).

И да, у нас таки были векторные графические мнемосхемы. С собственным редактором. Первую версию редактора делал мой друг, Сергей Саевич. Вторую, после того, как Сергей из КБ ушел, написал уже я сам, используя в качестве образца для подражания CorelDRAW. Получилось, понятное дело, сильно попроще. Но группировка, операции с группами, изменение тех или иных свойств у элементов группы и т.д. там были. В 1999-ом.

[life.sport] Маленькое послесловие к завершившимся велосипедным гранд-турам

В этот странный и жуткий 2020-й год, когда весной казалось, что весь большой велоспорт накрывается еще более большим медным тазом, пусть с задержкой, но все-таки состоялись все три больших гранд-тура: Тур де Франс, Джира и Вуэльта. Да какие!

В плане накала борьбы и непредсказуемости результатов гранд-туры 2020-го оказались чем-то феноменальным. Уж не знаю, как скоро мы сможем увидеть что-либо подобное еще раз.

На Тур де Франс и Джире победители общего зачета определились лишь в последний(!) соревновательный день. И на Вуэльте в последний соревновательный день идущий на второй позиции Карапас таки успешно атаковал Роглича и сумел финишировать на этапе на 20 секунд раньше своего соперника, но этого не хватило. Разрыв между первым и вторым местом на Вуэльте в результате составил всего 24 секунды. Всего 24 секунды после трех недель гонок! Кстати, разрыв на Туре ~50 секунд, на Джире ~40 секунд. Во всех трех гонках между первым и вторым местом меньше минуты.

В общем, феноменальный год.

Теперь бы дождаться следующего...

Пожелаю всем спортсменам, болельщикам, а так же читателям мого блога здоровья. Берегите себя!

четверг, 5 ноября 2020 г.

[books.management] Прочитал давеча книжицу от Додо Пицца про Додо Пиццу

Некоторое время назад заказали пару пицц с доставкой из местной "Додо Пицца". В доставку нам вложили и книжицу "Додо книга. Как прыгать выше головы, ловить волну, двигать горы и менять мир"

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

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

Чего лично мне очень не хватило в "Додо книга", так это пусть даже краткого, но жизнеописания основателя "Додо Пиццы", Федора Овчинникова. Имхо, было бы интересно узнать, какой опыт помог ему основать такое не маленькое и непростое дело.

Есть в книге несколько моментов, которые привлекли мое внимание и по которым я не откажу себе в удовольствии оттоптаться пройтись.

понедельник, 2 ноября 2020 г.

[work] Маэстро художественного слова в ИТ

По ходу знакомства с различными литературными и видео-материалами об Agile регулярно вспоминается отдельная категория ИТ-специалистов, о которой, наверное, можно сказать пару-тройку не злых и тихих слов.

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

Такие люди в нашем ИТ-шном мире очень ценны, поскольку они, как никто другой, могут "ездить по ушам" заказчика. Если нужно созвать совещание, на котором будут самые высокие представители договаривающихся сторон, то без подобных разговорчивых людей не обойтись. Уболтают любого. Или если нужно написать маркетинговую статью о том, как в нашем непростом и постоянно меняющемся мире, где никто не защищен от проблемы X новая мегатехнология Y от вендора Z станет настоящим спасением. Причем так, что ничего конкретного ни о X, ни о Y сказано не будет, но зато останется впечатление, что вендор Z -- это вот прямо молодцы.

У меня есть ощущение, что у них в голове сложилась какая-то огромная, очень сложная картина мира. Покрытая плотным туманом.

Именно из-за этого самого тумана упомянутые выше мастера изящной словесности в принципе не могут изъясняться лаконично и выражать свои мысли четко и точно у них не получается от слова совсем. Поэтому все, что они извергают наружу оказывается тем самым нескончаемым потоком сознания.

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

По моим наблюдениям, концентрация подобных специалистов прямо пропорционально размеру компании и обратно пропорционально расстоянию от столицы. Т.е. в крупных столичных компаниях их много, в мелких, да еще и в региональных, практически не бывает.

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