вторник, 1 января 2030 г.

О блоге

Более двадцати лет я занимался разработкой ПО, в основном как программист и тим-лид, а в 2012-2014гг как руководитель департамента разработки и внедрения ПО в компании Интервэйл (подробнее на LinkedIn). В настоящее время занимаюсь развитием компании по разработке ПО stiffstream, в которой являюсь одним из соучредителей. Поэтому в моем блоге много заметок о работе, в частности о программировании и компьютерах, а так же об управлении.

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

понедельник, 31 декабря 2029 г.

[life.photo] Характерный портрет: вы и ваш мир моими глазами. Безвозмездно :)

Вы художник? Бармен или музыкант? Или, может быть, коллекционер? Плотник или столяр? Кузнец или слесарь? Владеете маленьким магазинчиком или управляете большим производством? Реставрируете старинные часы или просто починяете примус? Всю жизнь занимаетесь своим любимым делом и хотели бы иметь фото на память?

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

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

[prog.c++] The follow-up for "What's new in rotor v0.09" article

There is a new article "What's new in rotor v0.09" that tells several things about yet another C++ actor framework named "rotor". As for me it's a good example of how different implementations of Actor Model could be. And it's a good reason to write some words about SObjectizer's features to show how the same things were addressed a long time ago.

Before I start, it's necessary to note that some of the decisions described below are rather philosophical than technical ones. It also means that some decisions taken from philosophical standpoints had a significant impact on technical aspects of SObjectizer's internals and API, and on applications built on top of the SObjectizer.

четверг, 8 октября 2020 г.

[prog.c++] Наш RESTinio упомянули в докладе про I/O Objects из Networking TS на CppCon2020

При просмотре доклада "The Networking TS from Scratch: I/O Objects" от Robert Leahy уронил челюсть на пол при появлении вот этого слайда:

Отрадно. Не зря, выходит.

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

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

[prog.c++] Смешанные впечатления от трюка с dont_deduce

Несколько дней назад на Reddit-е появилась ссылка на статью dont_deduce<T>. Если кто не читал, но итересуется различными плохоосвещенными закутками языка C++, то рекомендую. Станет понятно, зачем в C++20 появился шаблон std::type_identity.

На меня знакомство с трюком dont_deduce/type_identity произвело двойственное впечатление.

С одной строны, интересно было о нем узнать. Никогда о подобных вещах не задумывался, а тут такое! :)

Но, с другой стороны, C++ вполне обоснованно критикуют за то, что в C++ часто и бесконтрольно происходит автоматическая конвертация типов. Начиная от (может быть) безобидных преобразований из int в float/double и заканчивая неявным вызовом конструкторов классов с единственным параметром (как, например, конструирование std::string из строкового литерала). А применение трюка dont_deduce/type_identity, как по мне, есть не что иное, как целенаправленное закладывание в код этих самых неявных преобразований типов. О которых другой программист, использующий ваши API, скорее всего, даже не будет знать.

Так что я бы лично предпочел бы получить от компилятора ошибку о том, что он не может вывести шаблон функции т.к. один параметр имеет тип Vec3<float>, а второй -- int. Чтобы поправить код и явным образом вписать константу 1f вместо 1.

Возможно, трюк dont_deduce/type_identity может применяться в коде шаблонных функций/классов. В котором приходится хардкодить константы (типа явно описываемых в коде единичек или ноликов). Но в современном C++ есть же всякие decltype, чтобы легко определить какой тип должны иметь захардкоженные константы, так что серьезной проблемы из-за неприменения dont_deduce/type_identity я не вижу.

Итого: если кто-то не в курсе что такое dont_deduce/type_identity, то ознакомиться с вышеозначенной статьей полезно. Но вот наскольо оправданно будет применение этого трюка на практике... Это большой вопрос.

суббота, 3 октября 2020 г.

[life] Осенью в Гомеле зацвел каштан

Нынешний 2020 год продолжает удивлять и подкидывать вещи, которые раньше видеть не доводилось.

Вот, например, вчера по дороге с работы увидел цветущий каштан. В октябре. В Гомеле.

Просто афигеть.

20201002-IMG_20201002_150108

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

А тут второе цветение дерева, с которого еще не осыпались созревшие каштаны.

Просто афигеть.

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

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

среда, 30 сентября 2020 г.

[prog.opensource] c-smile собирает средства на перевод sciter в OpenSource

На RSDN в свое время был (а может и есть сейчас) такой участник: c-smile. Один из тех немногих старожилов RSDN-а, об общении с которым остались хорошие впечатления.

Так вот, уже много лет c-smile делает в одиночку проект sciter. Это встраиваемый HTML/CSS движок, который может использоваться для разработки легковесных GUI-интерфейсов на базе Web-технологий.

Оказывается, в середине сентября c-smile открыл на Kikstarter-е компанию по сбору средств для перевода sciter в категорию OpenSource: Open Source Sciter Engine.

Хоть сам я sciter-ом никогда не пользовался, но, как по мне, начинание хорошее. Посему делюсь информацией. Может кто захочет поддержать деятельность c-smile своим трудовым рублем.