четверг, 22 августа 2013 г.

[blog] Google опять тренируется на кошках! :(

Уважаемые читатели!

Со вчерашнего вечера у меня практически нет возможности отвечать на ваши комментарии. Ссылочка "Ответить", которую Google располагает под комментарием в большинстве случаев не работает. Посему, ваши вопросы/замечания я читаю, но ответить не могу :(

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

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

[prog.c++] Расскажу о простом рефакторинге своего старого C++ного кода

Сделал я когда-то систему сериализации данных для C++. В ее тестах с давнишних времен завалялся unit-тест для проверки обработки различных типов STL-ных контейнеров. Начинался код этого теста всего с нескольких классов. Да еще во времена, когда основным компилятором под Windows был Visual C++ 6.0, в котором поддержка STL-я, да и нормального C++, была так себе. В общем, для проверки std::vector был написан класс. Потом из него посредством копипасты был сделан класс для проверки std::list, потом std::deque и т.д. А со временем этот тест стал проверять еще и разные варианты сериализации этих контейнеров. Так что количество очень похожих друг на друга классов удвоилось, а общий объем исходного файла вырос до 1200 строк. При очередной попытке впихнуть в него проверку еще одного варианта пришлось честно сознаться самому себе, что это уже ни в какие рамки не лезет, нужно браться за серьезный рефакторинг. Получилось, на удивление, быстро и не больно :) Об этом и будет нижеследующий рассказ. Пояснений много не потребуется, но вот фрагменты кода будут более-менее объемные. Поэтому кому действительно интересно, милости прошу под кат.

среда, 21 августа 2013 г.

[vim] ViM 7.4!!!

Как-то прозевал я эту радостную новость. Так что пусть и с опозданием, но все-таки: вышла версия 7.4 замечательного редактора ViM! С чем я всех vim-еров и поздравляю!

Новая версия содержит кучу исправлений и изменений, накопившихся с момента выхода 7.3. Два больших изменения в 7.4 -- это новая обработка регулярных выражений и улучшенная поддержка Python (для меня не актуально). Подробнее об модификациях можно прочитать в самом ViM-е посредством команды :help version-7.4.

Поддержка синтаксиса C++11 из коробки ;)

std::for_each( what.begin(), what.end(),
       [&to]( decltype(*what.begin()) & a ) {
          print_value( to, a );
       } );

вторник, 20 августа 2013 г.

[soft.management] Очень верный заголовок раздела в книге Э.Йордана "ИТ-Аутсорсинг"

В Интервэйле довелось столкнуться с желанием нового ТОП-менеджмента поотдавать часть разработок компании на аутсорсинг. Лично я был сильно против этой идеи по ряду причин. Более того, мне довелось столкнуться с последствиями однажды отданных на аутсорсинг разработок, что еще больше усиливало мое нежелание поддерживать такие идеи. Но общий язык с ТОП-ами по этому поводу найти не удалось. И никто из них не смог внятно мне объяснить, почему нужно платить наши деньги кому-то вместо того, чтобы развивать собственное производство, нанимать, обучать, воспитывать собственных сотрудников, которые не только будут разрабатывать текущие продукты, но и генерировать идеи для будущих разработок внутри компании. Тем более, что производство и так уже находилось, по сути, "в офшоре", в Гомеле. Даже аутсорсинг в Минск обходился дороже, чем содержание собственной команды для отданного на аутсорсинг проекта. Дешевле Гомеля разве что Индия и Малайзия :)

Но это преамбула. На написание данного поста толкнула попавшая мне сегодня в руки книга Эдварда Йордана "ИТ-Аутсорсинг". Начал ее пролистывать и в глаза бросился заголовок одного из разделов (стр.276):

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

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

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

PS. Книгу пока не прочел. Поэтому больше о ней рассказать ничего не смогу.

[prog.work] Зацепился взглядом: вкусный оффер от топовой компании? ;)

Увидел комментарий к интервью о белорусском отделении Яндекса:

Я не хочу спорить, где лучше жить - это каждый для себя сам решает. Под хорошими условиями я имел в виду вкусный оффер от топовой компании, что недоступно для 99% белорусских программистов.

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

PS. Кстати о самом интервью. Вот интересно, нет ли у белорусского Яндекса желания развиваться "в регионах", в частности, в Гомеле? :) А то я знаю, кто мог бы обдумать это дело, да и команда нормальных C++ников в наличии имеется ;)

[life.photo] Ссылки на обзоры двух штативных голов от Arca-Swiss

Малазийский фотограф Ming Thein опубликовал в своем блоге небольшие обзоры двух штативных голов от весьма уважаемой в этом деле фирмы Arca-Swiss. Думаю, что из отечественных фотолюбителей (особенно начинающих) мало кто знает о таком производителе. И тем более о том, что есть де-факто стандарт быстросъемных площадок названный именем Arca-Swiss. Эти площадки подходят к головам разных производителей, в отличии от проприетарных вариантов каких-нибудь Benro или Manfrotto. Более того, серьезные производители штативных голов (тот же Really Right Stuff) вообще не заморачиваются на изобретение таких вещей, а просто устанавливают у себя фиксирующие устройства, "челюсти", стандарта Arca-Swiss и все, никаких других вариантов.

Так вот, к сожалению Arca-Swiss у нас мало известна. А купить ее продукцию еще сложнее. Например, в марте 2013 я нашел в Интернете всего один магазин в Москве, на сайте которого были указаны штативные головы Arca-Swiss. Но на деле их в наличии не оказалось. Но в РФ еще хотя бы можно заказать продукцию Arca-Swiss через Интернет и получить ее по почте. В РБ же и этой возможности нет, из-за ограничения в 120EUR на стоимость посылок. Поэтому остается только читать чужие обзоры и облизываться. Обзоры на английском, но небольшие.

Ultimate tripod heads, part one: the Arca-Swiss C1 Cube

Ultimate tripod heads, part two: the Arca-Swiss P0 Monoball

PS. Когда я в марте 2013 выбирал себе штатив и штативную голову, то читал обзоры и сравнения. Об Arca-Swiss отзывались в том духе, что когда-то они были законодателями мод и инноваторами, их продукция была вне конкуренции. А сейчас, мол, делают просто хорошие девайсы, отличного качества, но не выдающиеся и с более высокими, чем у конкурентов, ценами -- вроде как "за марку". Уж не знаю, насколько это правда, но очень сильно напоминает ситуацию с Zeiss-овской оптикой -- да, в принципе добротная, отличного качества, но за тАкую цену! ;)

PPS. Никогда не видел официального сайта Arca-Swiss, такое впечаление, что они обходятся вообще без присутствия в Интернете. Их продукцию я смотрел на сайте www.arca-shop.de. Так же продукция Arca-Swiss есть в таких магазинах, как B&H и adorama.

воскресенье, 18 августа 2013 г.

[life.photo] Зарубка на память: переходник с C/Y на Nikon F

Будучи любителем мануальной цейсовской оптики не могу не сожалеть о том, что в современной линейке Zeiss-а для Nikon F-байонета самым "длинным" телевиком на данный момент является вот этот Apo Sonnar 2/135mm. При этом он не часто оказывается в продаже и стоит в районе $2100. Говорят, что это отличный объектив, но лично мне за такие деньги хотелось бы иметь что-нибудь более дальнобойное, хотя бы 180mm, а лучше 200mm (пусть даже максимальная диафрагма будет не 2, а 2.8 или даже 3.5).

Из-за отсутствия современных "длинных" телевиков, возникает мысль посмотреть на старые модели цейсовской оптики. Благо, при нормальном обращении они могут служить десятилетиями. Это ничуть не преувеличение. У меня сейчас есть Carl Zeiss Jena Sonnar 3.5/135mm (с резьбой M42), которому уже лет 30, как минимум, но который на D700 выдает просто шикарную картинку.

Итак, небольшой поиск в Интернете показал, что ранее Carl Zeiss выпускал несколько моделей телевиков для различных байонетов. В частности для байонета C/Y (что расшифровывается как Contex/Yashica) были выпущены: Sonnar 180/2.8, Apo-Sonnar 200/2, Tele-Tessar 200/3.5, Tele-Tessar 200/4.0, Tele-Tessar 300/4.0, Mirotar 500/4.5 и др. Обзоры на некоторые из них можно найти в Интернете (например, здесь).

Старые объективы время от времени появляются в продаже и стоят вполне вменяемых денег. Так что, вполне себе интересный вариант прикупить при случае что-нибудь дальнобойное из старых C/Y-моделей. И тогда останется вопрос о том, как прицепить C/Y-объектив на Nikon F.

Имеется несколько решений.

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

BTW. Отдельный вопрос при работе со старыми объективами через переходники -- "прыгающая" диафрагма. На моем Sonnar 3.5/135mm была прыгающая диафрагма, но после присоединения к нему переходника M42-NikonF, она оказалась заблокированной. Кроме того, на нем нет кольца, которое бы позволяло вручную закрывать диафрагму (на многих старых советских M42-объективах такое кольцо было). Поэтому при съемке Sonnar 3.5/135mm приходится наводиться на резкость при уже закрытой диафрагме! До 5.6 это еще возможно, после 5.6 практически нет, слишком темным становится видоискатель. Что в реальной жизни означает, что объектив практически всегда используется на почти полностью открытых диафрагмах (3.5 или 4). Для каких-то видов съемки это приемлимо, для каких-то нет. Кроме того, даже с "одуванчиком Лушникова" на переходнике актуальное значение диафрагмы в EXIF не сохраняется. В общем, серьезный вопрос.

Пока еще не понял, как дело с закрытием диафрагмы обстоит с C/Y объективами. Никогда не держал их в руках, ничего не могу сказать по этому поводу :(

Под занавес несколько фотографий, сделанных стареньким Carl Zeiss Jena Sonnar 3.5/135mm буквально вчера: