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

О блоге

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

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

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

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

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

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

суббота, 18 августа 2018 г.

[life.business] Странные впечатления от одного видео и некоторая рефлексия на тему бизнеса

На LinkedIn попалась на глаза ссылка вот на это видео:

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

Проблема, правда, в том, что если у меня спросят "А что же здесь не так?", то я затруднюсь сделать какой-то внятный перечень. Как говорится, нутром чую, а математически выразить не могу.

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

Вообще говоря, размышляя по поводу всей этой хрени вокруг стартапов, подъемов инвестиций и пр. модной лабуды, поймал себя на мысли, что в моем случае занятие бизнесом -- это не попытки выстроить что-то масштабируемое (по типу того, что сделал Рэй Крок с McDonald's) и даже не попытки удовлетворить массовый спрос на что-то. Это скорее попытки научиться продавать тот набор знаний и умений, которым располагает наша команда. Мы не выводим на рынок новый офисный пакет и не выстраиваем очередную розничную сеть продуктовых магазинов, не делаем новый инновационный продукт, который перевернет ваши представления о чем-то. Наша задача -- рассказать о том, что среди множества подрядчиков, задачей которых является эффективная продажа жопочасов криворуких недоучек, есть маленькая команда, которая берет и делает. Осталась самая малость -- научится делать это хорошо.

пятница, 17 августа 2018 г.

[prog.c++] Завершение(?) серии статей про Shrimp на Хабре

Сегодня мы опубликовали очередную статью на Хабре про свой демо-проект Shrimp: "Делаем Shrimp еще полезнее: добавляем перекодирование картинок в другие форматы". Статья, вероятно, заключительная в серии. Ибо дальнейшее развитие Shrimp-а возможно разве что при выполнении одного из следующих условий:

среда, 15 августа 2018 г.

[prog.c++] Про попытку изобразить strong typedef из подручных средств

У нас завершается очередная итерация работ над демо-проектом Shrimp. На днях выйдет статья на Хабре с некоторыми подробностями (если кто-то пропустил, то вот первая статья про Shrimp, а вот вторая). Сегодня же я попробую рассказать об одной штуке в коде Shrimp-а, которая у меня самого вызывает неоднозначные впечатления. Если кому-то интересны потуги натянуть сову на глобус извращения старого сиплюсплюсника, то милости прошу под кат.

пятница, 10 августа 2018 г.

[prog.c++] json_dto-0.2.6: небольшое, но довольно важное обновление

Мы сегодня зафиксировали свежую версию 0.2.6 своей легковесной библиотеки json_dto. Там одна новая фича, но, думается, достаточно важная для определенных сценариев работы с JSON-документами.

Дело в том, что мы json_dto делали для себя, для ситуаций, когда JSON-документ хранил внутри единственный сериализованный объект. Т.е. мы имели дело с JSON-документами вида: {"field":...}. А вот на днях один из пользователей json_dto обратил наше внимание на ситуацию, когда JSON-документ представляет из себя вектор из объектов. Т.е. что-то вроде: [{"field":...}, {"field":...}, {"field":...}]. В такой ситуации json_dto оказывался бесполезным.

Этот же пользователь поделился своими соображениями о том, как он бы хотел использовать json_dto в такой ситуации. Он бы хотел иметь возможность написать json_dto::from_json<std::vector<Data>>(json_document) и чтобы результатом был экземпляр std::vector с объектами типа Data внутри.

Собственно, именно это мы и добавили в версию 0.2.6. Теперь можно писать вот так:

#include <json_dto/pub.hpp>

#include <iostream>
#include <algorithm>

struct data_t {
   std::string m_key;
   int m_value;

   template<typename Json_Io>
   void json_io(Json_Io & io) {
      io & json_dto::mandatory("key", m_key)
         & json_dto::mandatory("value", m_value);
   }
};

int main() {
   const std::string json_data{
      R"JSON(
         [{"key":"first", "value":32},
          {"key":"second", "value":15},
          {"key":"third", "value":80}]
      )JSON"
   };

   auto data = json_dto::from_json< std::vector<data_t> >(json_data);
   std::sort(data.begin(), data.end(),
      [](const auto & a, const auto & b) { return a.m_value < b.m_value; });

   std::cout << "Sorted data: " << json_dto::to_json(data) << std::endl;
}

И получать при этом вполне ожидаемый результат:

Sorted data: [{"key":"second","value":15},{"key":"first","value":32},{"key":"third","value":80}]

В общем, кто хочет легко и удобно работать с JSON-ом, то не стесняемся, берем json_dto, пользуемся, делимся впечатлениями. Взять json_dto можно на BitBucket-е или на GitHub-e (со временем версия 0.2.6 подтянется и на vcpkg).

Кстати говоря, с теми, кому json_dto интересен, можно было бы обсудить вот еще что: в принципе, в описанном выше сценарии вовсе необязательно работать только с std::vector<Data>. Запросто может быть использован и std::deque<Data>, std::list<Data> или даже std::array<Data, N>. Если кому-то хотелось бы видеть в json_dto поддержку и других STL-левских контейнеров, а не только std::vector, то дайте нам знать. Постараемся эту поддержку добавить. Ну а если это никому не интересно, то пусть все остается как есть.

среда, 1 августа 2018 г.

[life.cinema] Очередной кинообзор (2018/07)

Подошло время очередного кинообзора. Как обычно в начале списка идут фильмы, которые понравились больше. В самом конце -- откровенный шлак.

Миссия невыполнима: Последствия (Mission: Impossible - Fallout, 2018). Качественно выполненный аттракцион. Заходишь в кинозал, выключаешь мозги и наслаждаешься красочно сделанным зрелищем. Вполне в духе и на уровне предыдущих частей.

От семьи не убежишь (La ch'tite famille, 2018). Очередная добротная французская комедия с Дени Буном. В которой, местами, видно, что Дени не просто хороший комик, но и хороший актер.

Дыши во мгле (Dans la brume, 2018). Оказалось очень даже неплохо. Не ожидал.

Великий уравнитель 2 (The Equalizer 2, 2018). В принципе, тоже самое, что и в первой части. Только более занудно. Совсем без юмора. И финальная разборка унылая.

Шпионская игра (The Catcher Was a Spy, 2018). Удивительное дело: взяли за основу интересную историю, подтянули хороших актеров, сняли профессионально. А получилось неинтересно с невнятным финалом.

Черновик (2018). Если бы это был не отдельный фильм, а дилогия или хотя бы минисериал, который раскрывает тему полностью, а не обрывается где-то на полдороги с обещанием продолжения... Тогда, может быть, и хорошо бы зашло. А так слишком много претензий и к спецэффектам, и, местами, к актерской игре. Поэтому получилось, скажем так, сильно неоднозначно.

Хмарочос (Небоскреб, Skyscraper, 2018). Редкая бредятина. Не смотреть ни в коем случае.