пятница, 13 мая 2016 г.

[prog.c++14] Шаблоны против копипасты-5: variadic templates упрощают написание unit-тестов

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

Если использовать тупой метод грубой силы, то получилось бы что-то вроде (названия типов и полей искажены):

четверг, 12 мая 2016 г.

[prog.c++14] Как же выглядят реальные агенты в SObjectizer?

Если не ошибаюсь, уже несколько раз говорил о том, что C++ Actor Framework (он же CAF) производит довольно неоднозначное впечатление. С одной стороны -- это очень удачная попытка изобразить Erlang-овые процессы в виде C++ных акторов. Но, с другой стороны, никогда толком не понимал, как же в CAF-е будет выглядеть что-либо более-менее приближенное к реальности. Т.е. не тестовая программка из категории ping-pong или fixed-stack. А настоящий, живой актор, выполняющий какую-то прикладную логику.

Ведь один из уроков, который мы выучили, уже довольно долго работая с агентами в C++, -- это то, что агенты со временем пухнут в размерах. Тупо код одного агента может занимать не одну сотню строк (а в редких случаях и не одну тысячу строк). Как все это уложить в CAF-овские акторы с кучей лямбда-функций... Это вопрос.

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

среда, 11 мая 2016 г.

[life.book] Дочитал таки "Признание шефа разведки"

Сумел дочитать книгу Боба Вудворда "Признание шефа разведки". Книга толстая, читается трудно -- большое количество имен, дат и событий, ну и структурирован этот объем как-то не очень (мне так показалось). Но было любопытно. В очередной раз подтверждена старая мудрость: ужас советской пропаганды в том, что она говорила правду. Т.е. если сохранились воспоминания о том, что в тогдашних газетах, книгах, документальных фильмах и телепередачах говорилось про вмешательство США во внутренние дела других стран, то никаких откровений в "Признании шефа разведки" не будет -- только подтверждение того, о чем говорилось в СССР раньше. Разве что подоплека событий в Ливии 2011-го года стала еще лучше понятна.

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

воскресенье, 8 мая 2016 г.

[life] Предпраздничное, грустное.

Иногда кажется, что мое поколение -- это чуть ли не последнее поколение, для которого последствия Великой Отечественной Войны ощущались на физическом уровне. Мои родители родились до войны. Их детство пришлось на военные годы, а юношество -- на послевоенные. Дед по отцу погиб в 1941-ом в Ленинграде. Отец смог разыскать его могилу и посетить ее только в 1988-м. Мою маму с семьей отправляли в Германию, им удалось сбежать из обоза, прожить несколько месяцев в лесу и затем тайком вернуться в свой дом.

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

Но время идет. Для нынешнего поколения та война настолько же далека, как далека для большинства из нас была Гражданская. Уже даже нет той страны, которая одержала эту великую Победу.

Поэтому вполне понятно, что появляются деятели, которые задаются вопросом "а не следовало ли сдать Ленинград?" Или заявляют "Я не понимаю, что такое Великая Отечественная война. Это какой-то странный кусок войны, прихотливо вырезанный пропагандистами из Второй Мировой войны."

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

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

Задуматься нужно о том, что распространяя подобную гадость вы вступаете в войну.

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


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