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

О блоге

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

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

вторник, 16 сентября 2014 г.

[prog.c] Может быть кому-то пригодится: Concurrency Kit

Наткнулся на днях на Concurrency Kit. Позиционируют себя как "Concurrency primitives, safe memory reclamation mechanisms and non-blocking data structures for the research, design and implementation of high performance concurrent systems." Краткий список того, что предоставляет библиотека: "atomic operations, hardware transactional memory, memory barriers, hash tables, list, ring, stack, fifo, bitmap, safe memory reclamation, scalable locks, execution barriers, asymmetric synchronization and more."

Чистый C. Похоже, что поддерживаются только Unix-ы, без Windows и Visual C++. Лицензия BSD.

Сам глубоко не смотрел, не качал, не запускал. Но в свой склерозник внес.

суббота, 13 сентября 2014 г.

[management] Генри Минцберг об организационных схемах

Цитата из книги Г.Минцберга "Действуй эффективно! Лучшая практика менеджмента" (выделение жирным самого Минцберга -- очень советую обратить на это внимание):

Представьте себе обычную организационную схему. Предполагается, что она четко отображает компоненты организации. На самом деле она часто оказывается лабиринтом, из которого сотрудникам приходится искать выход самостоятельно. Организационные схемы основаны на том предположении, что если каждое подразделение работает "правильно", то дела у организации будут идти гладко. Другими словами, предполагается, что структура позаботится об организации, а планирование должно позаботиться о стратегии. Но тому, кто в это верит, нужно становиться отшельником.

[management] Генри Минцберг о разработке стратегии

Фрагмент из книги Г.Минцберга "Действуй эффективно! Лучшая практика менеджмента":

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

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

В свою бытность менеджером довелось ознакомиться с двумя стратегиями, разработанными "за закрытыми дверями" двумя разными группами ТОП менеджеров, а затем спущенными вниз для "ознакомления и разработки способов реализации". К сожалению, оба раза мне не хватило смелости прямо сказать авторам этих стратегий: "Ребята -- это полная х*йня!" Хотя время потом доказало, что так оно и было. А вот эта цитата из Минцберга поясняет почему.

[work.thoughts] Достаточно ли оплаты времени только деньгами?

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

Есть у меня ощущение, что многие руководители не понимают одной чрезвычайно важной вещи. А именно: наемный работник берет чужие деньги и на время, а отдает часть своей жизни и навсегда.

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

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

Надежда.

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

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

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

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

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

пятница, 12 сентября 2014 г.

[life.photo] Нафига фотолюбителю 24Mpx?

Пост навеян ожиданиями и, в конце-концов, свершившимся анонсом Nikon D750, новой полнокадровой цифрозеркалки с 24-мегапиксельным сенсором. Ожиданиями, в том числе и под впечатлениями от анонса Zeiss Otus 1.4/85mm.

С момента начала моего серьезного увлечения цифровой фотографией прошло три года, за это время было отснято тысяч пятнадцать-двадцать кадров, вбухано немеренное количество денег в камеры, в оптику и дополнительные аксессуары, напечатано несколько фотографий более-менее большого размера (включая 90x135см и 45x180см), ну и найден жанр, в котором мне интересно фотографировать. И все это только с 12Mpx камерами.

Так вот, мне очень жаль, что для такого фотолюбителя как я, у Nikon-а есть всего одна современная камера, которая для меня выглядит достойной заменой старичку D700. Это хипстерский Nikon Df. Насколько он удобен в использовании -- большой вопрос. Еще больший вопрос: а стоит ли он своих денег (у нас в РБ он будет стоить чуть больше $3000).

Все остальное у Nikon-а, за исключением профессиональных репортажных камер D4/D4s, уже 24-мегапиксельное. Даже любительская кропнутая зеркалка начального уровня, D3300 -- и та 24Mpx.

Пичаль, пичаль... :(

Не, ну реально не понимаю, зачем фотолюбителю что-то больше 12-16Mpx.

Возможность печати фотографий огромного размера? Ну вот с 12Mpx карточки 40x60см выглядят замечательно. Только сколько их доведется напечатать и где их развешивать? Мы же про фотолюбителей говорим, большинство из которых размещает фоточки 1024px по длинной стороне в соцсетях. Или печатают 10x15см для семейного альбома. Для таких вещей и 6Mpx за глаза хватит.

Зато "весят" 24Mpx в два раза больше, чем 12Mpx. Во что это выливается на практике? Ну вот с последней съемки я привез порядка 1500 снимков. Это составило около 30Gb или две почти заполненных 16Gb карточки памяти. Будь у меня не 12Mpx, а 24Mpx, это было бы уже четыре карточки памяти. И в два раза больше места на винчестере.

Соответственно, компьютер для обработки 24Mpx фотографий должен быть раза в два помощнее. Да и работы по retouching-у должно прибавиться, особенно, если кто-то снимает портреты крупным планом.

Оптика, опять же. Скажем, классный портретник Zeiss Planar 1.4/85mm, отлично работающий на пленке и на 12-16Mpx камерах, оказывает уже не так хорош, когда мегапикселей больше 20. А чем его заменять? При всем уважении к Кену Роквеллу, утверждающему, что никоновский ультразум 18-200 со светосилой 3.5-5.6 или еще более ультразум 18-300/3.5-5.6 -- это отличное "стекло", терзают меня смутные сомнения :)

С фокусировкой на многопиксельной камере, как говорят, несколько сложнее. Не прощают многопиксельные камеры небрежностей в технике съемки.

В общем, не вижу я для себя никаких существенных плюсов.

Кроме того, когда ты успешный наемный работник в успешной компании, финансовые затраты на увлечения считаются несколько иначе, чем когда ты пытаешься делать свой проект за свои кровные. Поэтому на вопрос, стоит ли за $2500 переходить на 24Mpx камеру у которой минимальная выдержка всего 1/4000, а X-Sync всего 1/200, сразу же находится однозначный ответ: нет! :)

Вообще, походу, если рано или поздно придется менять D700 на что-то более современное, то самым привлекательным вариантом для меня выглядит сейчас (как бы парадоксально это не звучало) вот такой комплект: тушка Nikon D3300 + мануальные Voigtlander Nokton 58mm/1.4 (эквивалент 85mm на FF) и Voigtlander Color-Skopar 28mm/2.8 (эквивалент 42mm на FF). Для того, что и как я снимаю, это будет оптимальный вариант по деньгам и качеству. Правда, не уверен, сможет ли D3300 правильно определять экспозицию с такими объективами, или же придется снимать полностью в ручном режиме.

Либо же совсем другой вариант: переход во вражеский лагерь. Есть же нормальные производители, которые не гонятся за мегапикселями. Тот же Fujifilm к примеру. Тем более, что они классный объектив 56mm/1.2 выпустили (а сейчас и его более крутой брат аннонсируется -- 56mm/1.2 APO). Какой-нибудь Fuji X-E2+XF56mm/1.2R с парой запасных аккумуляторов... Чем не вариант. Или вот совсем новенький X100T (со скоростью затвора 1/32000sec, т.е. можно спокойно снимать на полностью открытой дырке даже в яркий солнечный день)? И ведь всего 16Mpx...

Мечтательно: а ведь какого качества (ISO, ДД) можно было бы достичь на матрицах, если бы производители не стремились упаковать туда все больше и больше ячеек. Вот Sony A7S разместила на FF-сенсоре всего 12Mpx и получила ISO 409600. Еще раз: ISO четыреста девять тысяч!!!

PS. Вот что мне нравится в Apple iPhone последних моделей, так это то, что они мегапиксельность своей камеры выше 8Mpx упорно не поднимают. Понимают, что большие цифры в рекламных проспектах и технических спецификациях -- это не то, что реально нужно пользователям.

[prog.flame] Статья "Type Driven Wire Protocols with Boost Fusion"

На RSDN нашел ссылку на статью Type Driven Wire Protocols with Boost Fusion. О разработке библиотеки парсинга некого транспортного протокола (уж не ISO ли 8583?) посредством Boost.Fusion. Т.е. когда посредством шаблонной и макросной магии из метаописания структуры данных прямо в C++ коде получается код для сериализации и десериализации сообщений.

В финансовом секторе, блин, работают ну очень умные ребята. То OCaml с Haskell-ем им крайне необходим. То вот байтовый поток с помощью Boost.Fusion распарсить нужно.

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

По факту мне больше всего интересно, а сколько времени вся эта хрень у людей компилируется?