вторник, 20 марта 2018 г.

[prog.c++] Как лучше добавить детализацию активности агентов в SObjectizer?

В SObjectizer уже довольно давно существует такая штука, как work thread activity tracking. Но этот механизм дает только самую общую информацию о том, сколько событий было обработано на конкретном диспетчере (точнее, на конкретной нити диспетчера), сколько времени это заняло, сколько раз приходилось ждать поступления событий и сколько времени это ожидание заняло. Механизм самый базовый. Но уже, при необходимости, помогающий посмотреть на то, куда и как тратится время в программе.

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

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

суббота, 17 марта 2018 г.

[life.thoughts] Странные ощущения от чтения серьезных книг в последнее время

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

Любопытный эффект. Буквально ощущается, как накопленный опыт и текущий груз забот препятствует изучению нового.

[books.business] Впечатления от книги "Единственная книга по брендингу, которая вам нужна, чтобы начать, раскрутить и сделать бизнес прибыльным"

Уже не помню, когда и зачем купил книгу с названием "Единственная книга по брендингу, которая вам нужна, чтобы начать, раскрутить и сделать бизнес прибыльным" за авторством Мишеля Маандага и Лиисы Пуолакка, но добрался до нее только сейчас. И, скажу прямо, мало какая книга о бизнесе выбешивала меня так сильно, как эта.

Дело в том, что книгу написали два непонятных человека, один из которых консультант с якобы большим опытом в области глобального маркетинга, а вторая -- бывший дизайнер моды, которая в течении пяти лет возглавляла отдел, "отвечающий за глобальную идентичность бренда" в Nokia (и где та Nokia сейчас?). А сама книга представляет из себя альбом детских рисунков, с небольшими вкраплениями текста. Причем местами, видимо там, где авторы говорят о сфере своей профессиональной деятельности (например, в описании требований к логотипам), там все по делу. А вот там, где они пытаются говорить о рыночном позиционировании, продвижении новых товарных линеек под флагом старых брендов или даже про диверсификацию бизнеса... Вот там уже к авторам возникают вопросы. И ладно бы авторы вели повествование с оговорками "по нашему мнению" или "мы считаем разумным". Так нет, рекомендации из книги сомнению не подлежат. Яркий пример:

Когда вашей маркетинговой команде или агентству надоест повторять одно и то же, сошлитесь на эту книгу, чтобы объяснить важность повторения. Или увольте их.

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

Вот так же и в этой книге. Пара маркеров, которые обратили на себя внимание и запомнились.

Про компанию Philips. Сперва авторы много перемывали косточки Philips на тему того, что компания продвигает разные продукты под общим брендом, а не создает отдельные бренды для бытовой электроники и, скажем, медицинского оборудования. Тут уже у авторов хочется спросить: "а какие у вас есть основания полагать, что Philips действует неправильно?" Может они какие-то финансовые отчеты изучали? Проводили маркетинговые исследования? Изучали динамику продаж определенной категории товаров под разными брендами? Это все риторические вопросы, понятное дело, что авторы книги ничего подобного не делали.

Но вот что откровенно выбесило, так это обсуждение слогана компаний. К слогану Philips-а, который звучит "Let's make things better" (или "Изменим жизнь к лучшему" в русском варианте), предъявили такую претензию: "Разве существующие продукты Philips недостаточно хороши?"

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

Второй же момент, еще более показательный, касался совета компаниям Canon и Nikon. В частности:

Аналогичным образом, когда произойдет окончательный переход от ставших уже привычными цифровых фотоаппаратов к смарт-камерам — например на операционной платформе Android, — это существенно затронет бизнес производителей традиционных цифровых камер — Canon и Nikon.

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

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

В общем: книга, по большей части, унылое говно. Не стоит тратить на нее ни своих денег, ни, что еще более важно, своего времени.

среда, 14 марта 2018 г.

[books.business] Отличная книга "Дилемма инноватора: Как из-за новых технологий погибают сильные компании"

За несколько дней практически залпом проглотил отличнейшую книгу Клейтона Кристенсена "Дилемма инноватора: Как из-за новых технологий погибают сильные компании". Как раз тот случай, когда после прочтения жалеешь, что не прочитал ее лет на 10 раньше. Ну или хотя бы на 5 лет раньше.

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

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

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

В общем, книга из категории must read. По крайней мере для тех, кто хоть как-то интересуется продуктовой разработкой, а так же управлением продуктовым бизнесом. Еще лучше, если до прочтения "Дилеммы инноватора" будет изучена хрестоматия Генри Минцберга "Структура в кулаке". Тогда будут лучше понятны рассуждения о том, почему корпоративная культура успешных компаний-лидеров препятствует освоению новых технологий. И почему маленькие дочерние предприятия могут сильно помочь своим родительским компаниям. (Компании-лидеры -- это механистические бюрократии, они ориентированы на оптимизацию расходов и снижение издержек при эксплуатации уже выверенной и работающей бизнес-модели. Тогда как маленькие дочерние компании -- это адхократии, которые быстро находят новые бизнес-модели.)

Пожалуй, у книги есть всего два небольших недостатка. Первый -- это ее объем. Как по мне, можно было бы сократить раза в три, слишком уж много повторений одного и того же, но под чуть-чуть разными углами. Впрочем, это характерно для большинства западных книг, в которых одна и так же мысль повторяется снова и снова. Уж не знаю, для повышения гонорара автора книги или для того, чтобы до определенной категории читателей все-таки материал дошел. Второй недостаток -- это то, что книга базируется на достаточно старых примерах середины и конца XX-века. Она бы сильно выиграла, если бы в новые издания вошли более современные примеры. Например, крах Kodak-а после появления и развития цифровой фотографии. Но это уже чистой воды придирки.

PS. Если найду время, постараюсь написать, как можно ценить появление новых языков программирования и их влияние на индустрию с точки зрения идей из "Дилеммы инноватора". Как по мне, Java и Go полностью вписываются в теорию "подрывных" технологий. Хотя в софтостроении есть своя специфика, которую нельзя не учитывать.

вторник, 13 марта 2018 г.

[prog.c++] doctest vs Catch2: влияние на скорость компиляции

Для so_5_extra мы использовали Catch/Catch2 в качестве фреймворка для unit-тестирования. Catch2, конечно же, отличная штука. Но вот время компиляции самих unit-тестов -- это ахилесова пята. Особенно в таком проекте, как so_5_extra, который сам весь на шаблонах, да еще и часть компонентов оттуда базируются на Asio, которая вся из шаблонов.

В общем, с ростом количества тестов для so_5_extra, увеличение времени компиляции меня задолбало настолько, что в версии 1.1 попробовал использовать конкурирующий инструмент, doctest. Гораздо менее раскрученный и известный. Но зато более шустрый.

Вот результаты сегодняшних замеров. Полная сборка so_5_extra-1.1 под Windows с VC++15.6 на реальном железе:

  • Catch2: 37m 55s;
  • doctest: 26m 30s.

Но еще круче разница выглядит под виртуалкой, которую я кручу на этой же Windows-машине. ArchLinux с GCC 7.3:

  • Catch2: 1h 21m 17s;
  • doctest: 36m 25s.

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

PS. В so_5_extra-1.1 будет сделан переход на asio-1.12.0. Плюс, наверное, будет добавлен еще один диспетчер (autoscaling_thread_pool, автоматически увеличивает и уменьшает количество нитей в пуле в зависимости от загрузки). Если кто-то хочет видеть что-то еще, то дайте знать.

понедельник, 12 марта 2018 г.

[prog] А кому-нибудь приходится иметь дело с HTTP/2?

Вот такой вот внезапный вопрос к читателям блога. Может HTTP/2 уже вовсю работает в каждом утюге, а я просто этого не замечаю?

В частности интересует такой аспект: применяется ли HTTP/2 для реализации взаимодействия микросервисов?

Или же пока еще повсеместно HTTP 1.0/1.1 применяются и до широкого распространения HTTP/2 пока еще далеко?

суббота, 10 марта 2018 г.

[books] Прочел книгу про Pixar под претенциозным названием...

..."PIXAR. Перезагрузка. Гениальная книга по антикризисному управлению" за авторством Лоуренса Леви.

Сразу скажу, что ничего гениального в ней нет. Ну вот вообще. Как и нет чего-то именно про антикризисный менеджмент. Так что пусть название не вводит вас в заблуждение.

Книгу написал бывший финансовый директор Pixar-а, который был приглашен Стивом Джобсом в Pixar в конце 1994-го года. И который проработал финансовым директором до 1999-го, после чего от оперативного управления финансами Pixar Лоуренс Леви ушел, но зато вошел в совет директоров компании. За это время Леви успел поучаствовать в очень знаковых событиях в жизни Pixar-а: выводе компании на IPO, пересмотре контракта с Disney после успеха первой части "Истории игрушек", продаже Pixar-а Disney-ю. Поэтому речь в книге идет о том, что связано с этими событиями. Собственно про управление и, тем более, про антикризисное управление лично я в книге ничего не нашел :)

Тем не менее, книга не самая плохая. Читается легко. Некоторые воспоминания и внутренние переживания автора, местами, мне казались неинтересными и я бы их из текста убрал. Но общей картины они не портят.

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

Во-первых, я почему-то после прочтения биографий Стива Джобса считал, что Джобс был основателем и главным двигателем Pixar-а. Оказалось, что это сильно не так. Pixar была подразделением компании Джорджа Лукаса, которое затем было выделено в отдельную структуру и продано Джобсу. Первоначально Pixar развивалась как компания по производству специфического компьютерного железа и софта для компьютерной графики. Компьютерная анимация была лишь побочным продуктом. Но из-за того, что железо так никому продать и не удалось, компания, в итоге, сконцентировалась именно на анимации. В общем, для меня стало открытием, что Pixar не было детищем Джобса, вроде Apple или NeXT-а. Более того, даже в 1995-м, когда компания напряженно готовила к выходу "Историю игрушек" и, одновременно, готовилась к IPO, отношение к Джобсу внутри компании было настороженным и даже негативным. Сам Джобс регулярно стал появляться в Pixar только в 1995-ом, до этого его там месяцами не видели.

Во-вторых, оказалось, что Pixar за все время своего существования до IPO 1995-го не была прибыльной (вроде как даже в составе Lucasfilm и Industrial Light & Magic это подразделение не было прибыльным). И в течении всего этого времени она жила за счет инвестиций. Сперва Джорджа Лукаса, затем Стива Джобса. Джобс вложил в компанию порядка $50 миллионов собственных средств. Получается, что 16 лет (ну пусть даже 9 лет с момента покупки Pixar-а Джобсом) убыточности перед тем, как стать мегауспешной компанией... Это внушать. Н - Настойчивость.

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

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

Вот это очень правильный подход. И компания была правильной, раз позволила новому ТОП-у вникать в процесс так долго. Есть чему позавидовать.

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