вторник, 3 февраля 2015 г.

[prog.c++] Состоялся релиз SObjectizer-5.5.2.1

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

Версия 5.5.2.1 может быть загружена из раздела Files или получена из Subversion-репозитория.

В Files для загрузки доступны следующие архивы:

  • so-5.5.2.1.7z -- исходный текст ядра SObjectizer (включая тесты и примеры);
  • so-5.5.2.1--doc-html.7z -- сгенерированный посредством Doxygen API Reference Manual;
  • so-5.5.2.1--bin-msvs2013-x86.7z -- исходные тексты и 32-битовые бинарники для Windows (скомпилированы посредством MS Visual Studio 2013 Express);
  • so-5.5.2.1--bin-msvs2013-x86_amd64.7z -- исходные тексты и 64-битовые бинарники для Windows (скомпилированы посредством MS Visual Studio 2013 Express).

[life] Дебилизм происходящего в соцсетях временами зашкаливает

Вот, например, недавнее из LinkedIn:

Там же арифметическое выражение записано неправильно: если первые два ряда 1+1... являются частью выражения, то в конце каждой из строк должен стоять знак плюса, который показывает, что выражение продолжается. Ну и, соответственно, доставляют попытки вычислять непонятно как записанное выражение. Особенно, когда в ответе получается единица :)

Таки количество разума на планете -- величина постоянная, а население-то растет :(

[prog.c++11] Uniform initialization syntax позволяет писать в духе Ruby-новых eDSL :)

Появившаяся в C++11 штука под названием uniform initialization syntax позволяет писать код, который очень напоминает Ruby-новые eDSL-и.

понедельник, 2 февраля 2015 г.

[prog] Хорошая презентация про Akka

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

PS. Надо бы собраться с силами и сделать что-то подобное про SObjectizer.

воскресенье, 1 февраля 2015 г.

[prog.wow] В 2015-ом код уже можно не отлаживать?

Походу, я проспал какой-то фундаментальный прорыв. По крайней мере на RSDN так утверждают:

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

[prog.c++] Еще в качестве рекламы современного C++ :)

Совсем маленький пример того, как современный C++ защищает от элементарных ошибок разработчика.

[prog.c++] Серия статей "Code reuse series"

По ссылке на isocpp.org наткнулся на серию статей "Code reuse series" в блоге "Modern Maintainable Code". Имхо, для тех, кто в свое время не штудировал Джосаттиса, Вандервуда, Александреску, Мейерса и Саттера или же штудировал их очень давно, имеет смысл прочитать эти статьи. В них рассказывается о том, как использовать перегрузку и шаблоны (в том числе различные варианты специализации шаблонов) для того, чтобы адаптировать свои функции/классы под разные условия. Например, как получить функцию getNthElement(), учитывающую тип контейнера, из которого нужно достать элемент по порядковому номеру. Или как std::unique_ptr удается работать правильно с разными типами ресурсов.

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

Вот перечень статей в хронологическом порядке:

Еще в догонку к этим статьям могу порекомендовать статью из того же блога "A corollary on overloading". Хотя я сам там далеко не со всем согласен (например, с запретом делать перегрузку стандартых функций для своих типов в пространстве имен std::, имхо, для std::swap именно так и нужно делать). Но прочитать имеет смысл. Полагаю, тема пересекается с тем, что пару дней назад обсуждалось у меня в блоге (#1, #2).

PS. ИМХО, перечисленные выше статьи отлично показывают, с какими именно проблемами сейчас сталкиваются C++ разработчики. Это отнюдь не повисшие указатели, расстрелянная память или ее утечки. Актуальность этих древних проблем, имхо, за последние годы сильно снизилась. А вот как разобраться в современных возможностях такого мощного языка, как C++11/14, как выбрать наилучший баланс между эффективностью/запутанностью -- вот это сейчас более актуально.