суббота, 19 августа 2023 г.

[prog.c++.message-passing] A few words after watching Anthony Williams's "Designing for C++ Concurrency Using Message Passing"

There is Anthony Williams's talk "Designing for C++ Concurrency Using Message Passing" at ACCU 2023. It wasn't an interesting talk for me personally because I didn't find anything new for myself (not surprising, because I have been responsible for the development of a message passing framework for years).

But I would like to add my 2 cents to the topic. I hope my thoughts will help to understand how message passing frameworks can differ from each other. And how such differences can affect the design and writing of software.


First of all entities that receive and process messages (let's call them "actors") can be represented as objects with callbacks or as execution threads.

четверг, 17 августа 2023 г.

[prog.c++.sobjectizer] Есть идея о том, как пользователь может реализовать собственные очереди сообщений для агентов

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

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

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

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

Свою текущую идею на этот счет я описал в разделе Discussions на GitHub: https://github.com/Stiffstream/sobjectizer/discussions/64

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

Главный вопрос для меня сейчас -- это интересно ли кому-нибудь данное направление?

Если кому-то интересно, то появляется смысл копать дальше.

Ну а если нет, то подожду удобного случая. Может со временем что-то еще лучше в голову придет.

среда, 16 августа 2023 г.

[career.flame] Рекомендация, которая меня всегда подбешивала...

..."стремись в коллектив, в котором ты будешь худшим".

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

Рекомендацию эту я встречаю уже, если не соврать, лет 15. И каждый раз меня одолевает некоторое недоумение. Чем дальше, тем больше.

В очередной раз у меня подгорело на вот этой иллюстрации, попавшейся в ленте LinkedIn:

Так что не удержусь, позволю себе излить часть желчи и сарказма.

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

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

вторник, 15 августа 2023 г.

[work] Известный на RSDN-е Ikemefula ищет работу

На когда-то известном в Рунете профильном ресурсе RSDN есть форумчанин Ikemefula (он же Pauel, он же Plutonia Experiment, он же old Dutchman, он же Dutchman). Один из немногих RSDN-еров, который отличался здравыми и логичными суждениями, да еще и записанными нормальным и понятным языком. Признаюсь, мне самому было интересно читать то, что пишет о программировании, хоть не со всем я был согласен. Но, повторюсь, умением связно излагать свое мнение Ikemefula отличался в лучшую сторону и по этому показателю был очевидно круче остальных 99% участников RSDN.

Сейчас ищет работу. Вот его профиль на LinkedIn.

Сам я с Ikemefula не работал и даже никогда не общался с ним вне RSDN, но, имхо, неправильно это когда толковые люди сидят без работы.

понедельник, 14 августа 2023 г.

[prog.c++] Вот как раз для таких вот задач SObjectizer и бывает полезен

В качестве наглядного примера: свежий вопрос на LOR-е под названием "Приоритетная очередь".

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

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