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

О блоге

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

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

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

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

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

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

вторник, 23 июля 2024 г.

[prog.c++] Как в json_dto можно сделать так, чтобы элемент в JSON был либо единичным объектом, либо вектором объектов?

В проекте для текущего заказчика возникла потребность сделать так, чтобы элемент в JSON-е мог быть либо одиночным объектом:

{
  "message": {
    ...,
    "extension": { ... }
  }
}

либо же вектором объектов:

{
  "message": {
    ...,
    "extension": [
      { ... },
      { ... },
      { ... }
    ]
  }
}

Сделать это оказалось не сложно, т.к. в проекте для работы с JSON используется весьма низкоуровневый инструмент, в котором, как в RapidJSON, приходится вручную разбираться с типами элементов. Буквально что-то вроде item.SetObject("extension", value) или item.SetArray("extension").PushBack(...).

Но мне стало интересно, а можно ли будет сделать что-то подобное с помощью нашей разработки json_dto.

Мы делали json_dto как раз для того, чтобы не нужно было вручную возиться с SetObject и SetArray, чтобы сериализатор/десериализатор сам разбирался с этой скучной рутиной. А такая высокоуровневость временами выходит боком, когда пытаешься сделать что-то, что изначальным дизайном библиотеки не предусматривалось. Так что я подумал, что это своего рода "вызов" и попробовал сделать такой трюк средствами json_dto.

Выполнить этот трюк удалось без каких-либо проблем и без доработок json_dto, хотя и несколько многословно: достаточно было определить кастомный Reader_Writer.

Есть у нас в json_dto такое понятие, как кастомный Reader_Writer -- это объект с двумя методами, read и write. Именно этот объект берет на себя ответственность за то, чтобы прочитать/записать значение поля объекта посредством RapidJSON. По умолчанию для это делает сам json_dto, но когда нужно что-то кастомизировать, то пользователь может реализовать собственный Reader_Writer и приказать json_dto использовать именно этот Reader_Writer.

Как же это все выглядит?

понедельник, 22 июля 2024 г.

[dev.hiring.flame] Посмотрел давеча на YouTube ролик про "волчат" и "волков"

Вот это видео:

Да, там почти два часа, но смотреть интересно (хотя бы потому, что видно как сильно полыхает у ведущих).

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

Это понятно, это естественно, от этого не уйти.

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

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

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


Этот ролик заставил вспомнить ощущение, которое у меня сложилось лет 20 назад, где-то 2004-2005гг, когда у нас в РБ окончательно победил аутсорс (долгое время белорусский ИТ был заточен на аутсорс чуть меньше, чем полностью, а может и сейчас остается таким же).

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

Не уверен, что это впечатление было верным, но вот такое оно у меня было.

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

Да и сама ситуация, когда мне с 30-летним опытом, доступными на github-е проектами, кучей статьей и несколькими выступлениями на конференциях, нужно проходить секции live-coding-а с условным разворотом условной строки, не кажется нормальной.

Я понимаю, почему ситуация именно такая. И отдаю себе отчет, что крупным компаниям, куда ломятся толпы народа, а среди претендентов немалое количество откровенных неумех, часть из которых еще и накручивает себе опыт и приписывает несуществующие регалии, сложно (если вообще возможно) придумать какие-то другие способы отсева.

Понимаю, но все равно нормальной эту ситуацию назвать не могу.

воскресенье, 21 июля 2024 г.

[life.audiophilia.diy] Итоговые впечатления от 15.4mm динамиков с литиево-магниевой диафрагмой

В конце 2023-го года мне в руки попали динамики с литиево-магниевой диафрагмой, которые на тот момент были, наверное, единственной заслужившей мое внимание новинков на Aliexpress.

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

Как по мне, динамики дают "серединистый" звук, в котором НЧ и ВЧ заметно теряют громкость. Из-за чего у наушников получается непревзойденное трехмерность. По крайней мере в сравнении с тем, что есть у меня на руках.

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

Изначально в этих динамиках мне сильно не хватало веса на НЧ. Наушники были слишком "светлыми", хотелось большее баса.

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

В общем, с количеством НЧ смирился. А уж к качеству НЧ так вообще вопросов не было.

Засада же оказалась с ВЧ.

Литиево-магниевые динамики оказались просто недостаточно детальными на ВЧ, особенно в прямом сравнении с динамиками с LCP и DLC диафрагмами. Вот буквально, слушаешь литиево-магниевые, потом переключаешься на LCP и поражаешься насколько много в том же самом музыкальном материале всяких мелких отзвуков и призвуков на ВЧ. Как будто пробки из ушей достают.

Так что у литиево-магниевых динамиков все хорошо с тоналкой, просто шикарно с трехмерностью. К количеству НЧ, как оказалось, можно привыкнуть, а уж к проработке НЧ вопросов нет от слова совсем. Но с детализацией на ВЧ просто беда :(


Основными для меня в последние месяцы продолжают оставаться 15.4mm динамики с DLC и LCP диафрагмами. Причем, если раньше и DLC, и LCP мне казались недостаточно басовитыми, то сейчас LCP ощущаются просто как басхэдные со слишком большим количеством слегка "ватного" баса. DLC же, которые раньше ощущались, как "светлые" в сравнении с LCP, теперь кажутся практически тем, "что доктор прописал". Хотя по четкости и жесткости проработки НЧ, наверное, DLC уступают описанным выше литиево-магниевым динамикам, но компенсируют массой и громкостью НЧ.

Иногда слушаю и откровенно бюджетные 15.4mm динамики с композитной бериллиевой диафрагмой. Они хоть и бюджетные, с чрезмерной (для меня сейчас) массой НЧ, и "проваленной" серединкой, но зато с совершенно шикарными для своей цены ВЧ. Есть что-то в этих динамиках такое, что в первые два-три дня прослушивания невероятно очаровывает. Потом, правда, от количества НЧ устаешь и возвращаешься к DLC/LCP. Чтобы еще через месяц-два опять на пару дней вернутся к этому темному звуку с отличной детализацией на НЧ.

суббота, 20 июля 2024 г.

[life.business] Чего только в жизни не бывает...

Увидел некоторое время назад в ленте LinkedIn:

До сих пор пребываю в растерянности.

С одной стороны, очевидно, что 30 лет своей профессиональной деятельности занимался какой-то фигней. Мягко говоря.

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

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

понедельник, 1 июля 2024 г.

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

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

Фильмы

Однажды в Ла-Рое (LaRoy, Texas, 2023). В принципе мне нравится такое. Но тут лично меня разочаровал финал. Даже не знаю почему, но вот разочаровал. Поэтому не получается оценить этот фильм высоко. Но на мой вкус вполне себе крепкий середнячок. Получше многих современных "фильмов".

Падение империи (Civil War, 2024). Кино довольно посредственное, а общее отношение к нему будет зависеть от ожиданий: если ждать, что это рассказ о гипотетической гражданской войне в США с пояснениями что из-за чего и как оно вообще, то фильм откровенно разочарует. Он не о том. А вот если рассматривать фильм как рассказ о том, как молодая девушка, жаждущая славы, превращается в матерого и циничного фронтового фотографа, вот тогда да, фильм оправдывает себя.

Границы безумия (Upon Entry, 2022). Во-первых, это никакой не триллер, это разговорная драма, в которой все держится на диалогах и, в принципе, неплохой игре актеров. Во-вторых, следить за происходящим было интересно, но вот финал разочаровал. Как по мне, не смогли авторы сделать настоящую кульминацию.

Побег из Могадишо (Mogadisyu, 2021). Нормально, вполне можно смотреть. Но это один из тех самых фильмов, где чувствуется разница между азиатским и европейским (или американским) кино. И вот эта самая "азиатчина" слишком уж бросается в глаза.

Сериалы

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

Магазин для киллеров (Killeodeului syopingmol, первый сезон, 2024). Ну такое себе. Посмотреть можно. Но слишком уж много маразма и "роялей в кустах".

Не смог досмотреть

Я не киллер (Hit Man, 2023). Хватило терпеть дебилизм происходящего минут на 20, потом не выдержал. Ну или это кино на совсем уж подростковую аудиторию.

Онегин (2024). Не смог. Просто не смог осилить больше получаса, настолько сильно было желание обосрать происходящее в кадре.

Не для слабонервных (Trigger Warning, 2024). Редкая халтура. Мало того, что выстрелы из автоматов нарисованы на компьютере, так даже поленились нарисовать гильзы, которые при стрельбе из автомата должны были бы вылетать. Ну и окончательно добила "рукопашка" в исполнении Джессики Альбы.

Фильм вне категории

Фуриоса: Хроники Безумного Макса (Furiosa: A Mad Max Saga, 2024). Очень и очень двойственные чувства. С одной стороны, мне понравилась рассказанная история. Следить за происходящим было интересно. Да и претензий к актерской игре у меня нет. Так что как история из "вселенной Безумного Макса" очень даже OK. Но вот визуальная составляющая настолько халтурная на фоне "Дороги ярости", что просто караул. В общем, как по мне, в этом фильме был бы смысл только если бы по картинке он был бы такой же, как и "Дорога ярости". Однако, не получилось :(((