пятница, 17 июня 2022 г.

[work.open-source.anger] А давайте подсчитаем чужие деньги или почему не стоит смотреть зубы дареному коню

По случаю тяпницы позволю себе тригернуться на комментарий к последней статье о SObjectizer на Хабре. Вот этот комментарий:

Ещё б документация была б хорошая, а не вот это месиво доксигена. Ну и в туториалах на gh кросс-ссылки и вычитку английского, а то встречаются там местами штуки типа "бесплатных функций" (free functions).

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

среда, 15 июня 2022 г.

[work.self.promotion] Опытный велосипедостроитель открыт для заказчиков из РБ/РФ

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

И постоянно строил велосипеды, которые тут же шли в работу. За счет чего приобрел специфический опыт и навыки.

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

А вот если вам нужен программист-камикадзе с нестандартными идеями чтобы соорудить велосипед на котором можно ехать быстрее/безопаснее/комфортнее... Таковым могу быть я.

Открыт для предложений в виде контракта между заказчиком и СтифСтрим. Варианты войти наемным сотрудником в штат клиента на данный момент не рассматриваются.

С получением денег из-за рубежа у нас в РБ сейчас все не очень гладко, поэтому наиболее интересны заказчики из РБ/РФ.

Связаться со мной можно через eao197 на gmail тчк com. Если кому-то интересен профиль на LinkedIn, то вот.


Дабы не быть голословным по поводу опыта создания велосипедов вот несколько примеров "из недавнего":

  • timertt. С++ библиотека для поддержки таймеров. Реализует механизмы timer_wheel, timer_list и timer_heap. Позволяет поддерживать большое количество (миллионы и десятки миллионов) активных таймеров. С 2014-го года используется в SObjectizer.
  • so5extra. Набор прибамбасов для SObjectizer-а, вроде дополнительных типов диспетчеров, mbox-ов и пр.
  • easy_parser в составе RESTinio, который представляет из себя реализацию PEG-парсера на С++ных шаблонах и constexpr-функциях (в рамках C++14) Подробнее в основной документации или вот этих статьях: раз и два.
  • MxxRu::externals. Велосипед, который мы с 2016-го года используем для управления зависимостями в собственных C++-проектах. В отличии от conan, vcpkg и пр., он не требует предварительного опакечивания зависимостей. Ознакомиться можно здесь или здесь. Кстати говоря, MxxRu -- это также мой старый собственный велосипед (документация здесь).

Упомяну также arataga. Хоть это и не инструмент для разработчика, но лисапед, сделанный практически в одиночку под специфические условия.

Кому-то я известен по проектам SObjectizer и RESTinio. Эти все создано с моим непосредственным участием и под моим руководством.

Опыт велосипедостроения в наличии. Теперь дело за тем, кому мой опыт и навыки понадобится.


Буду признателен, если вы сможете поделиться ссылкой на этот пост в своих соцсетях и/или распространить среди своих профессиональных контактов.

[prog.c++.sobjectizer] Обновленная версия моей самой первой статьи на Хабре

В июне 2016 вышла первая обзорная статья про SObjectizer (одновременно это была моя самая первая статья на Хабре). Благодаря этой статье о SObjectizer узнали не только читатели моего блога, но и множество людей вообще никак со мной не связанных.

Спустя шесть лет почувствовал желание и необходимость сделать свежую редакцию этой статьи. Чтобы те, кто услышат про SObjectizer впервые, не судили о нем по информации отнюдь не первой свежести.

Так что вот: SObjectizer: что это, для чего это и почему это выглядит именно так? Взгляд из 2022-го.

Удивительными для меня оказались две вещи:

  • насколько мало изменений пришлось внести в текст исходной статьи. Не смотря на то, что SO-5.6/5.7 очень сильно в некоторых деталях отличаются от описанной шесть лет назад версии 5.5, потребовалось сделать всего несколько небольших правок в примерах кода. И вообще не пришлось ничего менять в описании ключевых аспектов. Т.е. за шесть лет эволюции что-то поменялось лишь в частностях, но осталось точно таким же в целом. Что просто здорово. Это дает надежду на то, что не смотря на развитие SObjectizer-5 уже на протяжении двенадцати лет, потенциал для дальнейшей эволюции у SObjectizer-5 еще есть;
  • насколько сложно оказалось написать послесловия. Потому, что я публично рассказываю в Рунете о SObjectizer, минимум, года с 2014-го, если не с 2013-го. И путь популяризации SObjectizer-а (если это вообще можно так назвать) отнюдь не был усыпан лепестками роз. Хотелось сказать и об этом, но, видимо, еще не пришло время, когда я мог бы спокойно об этом говорить. Поэтому послесловие вышло таким, каким вышло.

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

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

Просто в этот раз хотелось сконцентироваться на другом: проект живет уже больше двадцати лет. И пока у меня есть желание и возможность им заниматься. Поэтому проект все еще живет и все еще движется вперед.

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

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