23 April 2017

Improve your algorithmic skills

Мне всегда поражала методика, по которой IT гиганты типа Microsoft, Google или там Facebook набирают себе в штат новый программистов.
Если кто не в курсе, в двух словах объясню. Людей ищут не на конкретный проект и с конкретными техническими скиллами, востребованными на этом проекте, а ищут взагали, без всякой оглядки на боевой опыт соискателя. При этом практически единственным критерием отбора кандидатов являются навыки оных в области решения хардкорных алгоритмических задачек. Под секундомер. Написал без ошибок и быстрее на 20 секунд, чем другие участники забега, процедуру балансировки черно-красного дерева -- welcome aboard! А какие ты при этом технологии знаешь, какой у тебя практический опыт и на чем ты этот алгоритм реализовывал -- дело совершенно десятое.


Меня весь этот цирк удивлял по многим причинам. Например, отсутствием элементарной связи между заданиями на интервью и теми задачи, которые люди должны решать на своих рабочих местах. Если кто не в курсе, в Microsoft или Google пишут точно такие же программы, как в других IT компаниях, и, соответственно, попавшие туда люди, в большинстве своем, точно так же лепят формочки для Android приложений или отдают браузеру страницу, построенную на SQL запросе к базе данных. Знать при решении этих задач 20 разновидностей алгоритма сортировки совершенно не нужно и знания эти, если и бывают когда востребованы, то исключительно в случаях, когда тебя подключают к процессу отбора желающих работать с тобой в одной компании.
Некоторые товарищи, умудрившиеся окончательно поехать крышей на алгоритмах и структурах данных, после успешного трудоустройства (которое далось им многочасовыми бдениями над скучными формулами, теоремами и псевдокодом) оказываются ужасно разочарованы -- как минимум от того, что навыки, которые так востребованы при трудоустройстве в крутые компании, день ото дня не совершенствуются при решении рабочего круга задач. Очевидно, просто потому, что связь между практическими проблемами, которые решаются с помощью программирования, и математическим алгоритмическим задротством примерно такая же, как между возможностью говорить и пониманием физиологических процессов в коре головного мозга, связанных с речью.

11 April 2017

"Слепой" тест камер флагманов. Once again.

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

#1. Во-первых, извините, но тест ни фига не слепой, хотя организаторы пытаются убедить нас в обратном:
"Там же везде номера тасуются для объективности) Т.е. порядок следования везде динамический - 5й может быть потом 4м, а дальше 2м и т.д... Иначе накрутить через биржу - изи. Проходили это уже с некоторыми компаниями вплоть до аннуляции голосов. Теперь только хардкор, все должно быть честно."

Хардкор в представленном тесте, на самом деле, следующий. Номера жестко завязаны за смартфонами. При этом смартфоны просчитываются элементарно.
Берите ручку, записывайте: 1 - Google Pixel, 2 - HTC U Ultra, 3 - Huawei P10 Plus, 4 - iPhone 7 plus, 5 - LG G6, 6 - S8 plus.

#2. Реально крутая камера там одна. Google Pixel называется. 
Все остальные на ее фоне -- статисты. 

Судить камеры по тем кропам, что приводятся в статье, это примерно как судить о погоде через закрытую занавеску. 

Вот вам пример, как надо делать правильный кроп. 

Pixel vs S8. Кликабельно. Обратите внимание на детализацию волос и фактуру одежды.

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

Кликабельно. Да, самый крутой снимок в этой категории имеет самую низкую оценку.

#3. Фактически сравнение идет jpeg движков и алгоритмов постпроцессинга. 
Досадно. Как человек, крутивший raw файлы с S7, я берусь утверждать, что камера у Samsung не сильно хуже гугловской, просто ее результаты корейцы гробят криворуким постпроцессингом и тотальным отсутствием вкуса. 
Кстати, HTC, похоже, приложили максимум усилий, чтобы научиться в обработке косить под Samsung. Идиоты. 

#4. Да, я знаю, что люди обычно смотрят снимки на экранах смартфонов. И никто не будет руками править баланс белого, даже если это делается в два клика. 
И все равно очень обидно наблюдать в какую сторону несет индустрию мобильных камер. 

зы. Писать еще по теме, если будут поводы? 



31 March 2017

Galaxy S7 "enhancer": jpeg vs raw

Нет, я конечно понимал, что разница будет впечатляющая, но увидев ЭТО я просто упал под стол.

Итак, встречайте, Galaxy S7 -- jpeg vs raw. Комментарии излишни.

Кликабельно

Кстати, качество raw исходника лично меня впечатляет не меньше, чем объемы и безвкусность постобработки в jpeg.

Как изъясняются инженеры

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

30 March 2017

Еще раз про мобильную фотографию

В командировке в Штатах довольно много снимал не только на старенькую RX100, но и на служебный Galaxy S6.
На S6 снимать было очень соблазнительно -- он всегда под рукой. Шикарный экран, на котором почти все снятое выглядит весьма эффектно. Ну и главный соблазн нашего времени -- возможность моментально выложить снятое в Интернет.
Для широкого угла RX100 я доставал крайне неохотно, брал в руки, только когда понимал, что ISO будет высоким или хотелось получить хотя бы нормальный угол.

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

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

Кликабельно. Слева S8, справа iPhone 7 Plus.

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

Я что хочу сказать. Как человек, у которого за плечами десятки тысяч отсмотренных снимков с портретами людей, я имею некое представление о том, как должно выглядеть лицо человека, запечатленное хорошей камерой. Как это не удивительно, но оно должно быть похожим на лицо человека в реальной жизни, а не быть разваливающейся на части грудой пикселей в формате jpeg.
Снимок с айфона, конечно, весьма далек от идеала. Ясен пень, это не снимок с полнокадровой камеры с портретным фикс объективом. Все огрехи маленького сенсора на нем читаются огромными буквами. Но он честен и не пытается притворяться лучше, чем он есть на самом деле.
Кадр с S8 это треть того, что действительно видел сенсор и две трети цифрового безумия, которые исказили лицо человека до неузнаваемости, превратив его в мешанину совершенно мертвых пикселей.
Это нормально, когда люди что-то снимают, а потом часами доводят снятое по своему вкусу в фотошопе. Или применяют какие-то незамысловатые фильтры. Это нормально. Но когда камера по умолчанию процессит снимок так, что он представляет собой выжженое напалмом поле, это печалит безмерно.

Статья о сравнении камер от мыла ру
Моя заметка про камеру S7

зы. Думаю, что не менее наглядным было бы сравнение raw файл и jpeg с S8 (или там с S7).
А еще у меня под рукой валяется куча снимков с изуродованными лицами, которые я привез из Штатов.

зы2. Это нормально, если куча людей скажет, что снимок S8 им больше по душе. Другое дело, сколько из них хоть раз в жизни крутило ползунок clarity в каком-нить Lightroom.

зы3. Все-таки провел сравнение raw vs jpeg для Galaxy S7. Результаты шокируют.



26 March 2017

Америка в кремне

Постараюсь сжато, практически тезисно, написать о своей двухнедельной командировке в США.

Шаг нулевой. Под правильно оформленное приглашение для командировки штатовскую визу получить вроде как не супер сложно. А вот потенциальным туристам, которые ходят в посольстве с огромными папками самых странных бумаг, отказывают частенько. Не верят, что вернутся.
Сограждан в посольство пускают исключительно в состоянии новорожденного. Ничего проносить нельзя. Даже мобильный. Даже папочка с документами должно быть прозрачной. Хитрые местные оставляют все в машине, дык даже ключ с сигнализацией проносить с собой запрещено. Другие хитрые местные пригнали под посольство грузовые машины и сделали из них "камеры хранения". Это спасает, потому что в самом посольстве камер нет. А вообще, осмысливая пережитый в посольстве опыт, понимаешь, что хуже только тинейджерские походы по военкомату в одних труселях.

Первый раз в жизни опоздал на самолет при трансфере. Абсолютно предсказуемо, учитывая стыковку в один час и классические мартовские туманы в Одессе. Turkish Airlines молодцы -- без вопросов селят в отель. Туда и обратно везут. В отеле кормят. А я, за одно, посмотрел на Стамбул.

Стамбул мне категорически не понравился. Мутный город. Безвкусно эклектичный.
Довольно грязный, весь в каких-то ремонтах и стройках. Дорогой (ха-ха, это пока ты в Штаты не попал). Половину исторического центра турки пустили под уличный базар, который мало чем отличается от нашего седьмого километра.


Хотя красивые места местами попадаются.
В туалетах народ массово моет ноги. А в туалетах в аэропорту для этих дятлов всюду написано, чтобы не совали ноги в рукомойники.
Пешеходы всюду прут на красный свет. Подземных переходов катастрофически не хватает.
Стала реальностью читаная где-то фраза "а утром нас разбудил крик муллы". XXI век -- мулла орет в громкоговоритель, слышно, блин, на полквартала. Крайне неприятно под это просыпаться. В пять утра.
Uber в Стамбуле работает еще хуже, чем у нас. Я вообще тупо попал на деньги.
Местные таксисты сплошь не знают английского. Даже числительных. И наивно полагают, что если громко орать, то ты начнешь понимать их турецкий.
Обменки натыканы почти как у нас. А в Штатах за две недели видел всего одну. В аэропорту, что логично.

Прилетаешь к туркам как к себе домой -- пять минут на паспортном контроле и ты уже в другой стране. С вылетом было сложнее -- американцы перед гейтом душу вытряхивают. Глупые вопросы задают, разувают и даже заставляют открыть ноутбук (смотрят какая у тебя заставка что ли?).
Паспортный контроль при прилете это Ад. Мы попали почти в самое начало очереди и убили на это дело почти час. Очередь за нами, если она и дальше шла в таком темпе, была еще минимум часа на два. Фотографируют, берут отпечатки пальцев. Спрашивают зачем прилетел, где будешь жить, сколько с собой денег и чо за продукты везешь. Максимум на две минуты дела. Но некоторых как-то поплотнее допрашивают.
Допрашивающие в резиновых перчатках. Удивительно, что не в респираторах.
Для местных своя система окон, которая работает сильно шустрее.
Зато при прилете из Штатов чувствуешь себя белым человеком -- сразу пускают в зону трансфера.

15 January 2017

Спасение блогера Экслера

Патриарх рунета, бедолага товарищ Экслер вышел на паперть.
Лично для меня вскрылся просто поразительный факт -- оказывается все это время он жил в солнечной Испании, нарезал хамон и мучился выбором между Château Mouton-Rothschild 1945 года и Penfolds Grange Hermitage 1951 года (в качестве напитка к скромному ужину) исключительно за счет монетизации своего уютненького stand-alone... Почему сей факт так поразил меня? Ну хотя бы потому, что бложег товарища (или правильней все-таки писать "камрада"?)  Экслера уныл просто до безобразия.


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

В случае Экслера проблема эта еще глубже. Вместо того, чтобы писать про топовые решения, он пишет про самое заунывное гавно из третьего эшелона. Oukitel, Homtom, Doogee -- кому-то из вас хоть что-то говорят все эти названия?... При этом товарищ давно пользует Galaxy S7 EDGE, но писать про него, ясен пень, "дело не приоритетное". Почему? Да просто потому, что ребята из "Ахуэль" и "Хомтом" блогеру заносят, а Samsung на любителя хамона болт ложили (потому, что им проще весь ваш родной город билбордами с Note 7 обложить).

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

13 January 2017

"28 панфиловцев"

Посмотрел на неделе москальское кино про героев-панфиловцев.

Зачем смотрел? Ну хотя бы для того, чтобы не было как в том анекдоте "Пастернака не читал, но осуждаю".

Сразу скажу, что вопрос правдивости истории про этих самых героев лично меня, в контексте оценки фильма, мало волнует. Ну вот смотрел же я "300", не сильно парясь по поводу того, а была ли на самом деле такого рода разборка между спартанцами и персами, и правда ли, что на стороне последних сражались маги, боевые носороги и бабы в состоянии ПМС.


А по "панфиловцам" вывод следующий -- нормальное себе кино.

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

Так что извините, братцы, но панфиловцы это, в принципе, норм.

11 January 2017

C++ regex

Пощупал малость регулярки из std (которые, на самом деле, есть малость перелицованные Boost.Regex).
Довольно странные ощущения, впрочем, как практически от любой штуки из STL.


Например, мне слету понадобилась функция escape для строки. А нет ее -- "сделай сам™". При этом в Qt, естественно, такая штука сразу под рукой -- QRegExp::escape().

Возникли вопросы к regex_replace()... Вот почему мы регулярку всегда передаем в виде класса basic_regex<>, а не в виде строки, из которой его можно сконструировать? Очевидно, с целью оптимизации -- если одно и тоже выражение нужно использовать несколько раз, то такой подход позволяет существенно экономить на том, что разбор строки, описывающей регулярку, и генерация некоего автомата для ее исполнения, может происходить только один раз и сохраняться в экземпляре класса basic_regex<>. В случае regex_replace() у нас еще есть входной аргумент fmt, который описывает что именно надо подставить в найденные места, это такая строка с хитрыми плейсхолдерами, заэскейпленными символами и т.д. и т.п. Очевидно, что этот параметр при использовании надо парсить, причем парсить по достаточно сложным правилам, и в случае, если вам надо будет вызывать один и тот же regex_replace() для большого количества разных строк, у вас не будет никакой возможности сэкономить на этом парсинге... Ну как так, блин, можно было задизайнить либу, да еще и умудриться протащить еще через всю бюрократию и комитеты в стандарт?

И они еще борются за почетное звание дома высокой культуры и быта...

09 January 2017

Сериал "Молодой Папа"

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


Сериал хороший. Глубокий, затрагивающий небанальные темы, с блестящим актерским составом.
Но все-таки меня не покидает чувство, что чего ему не хватает, чтобы стать настоящей бомбой. И даже трудно сказать чего именно. Может проблема в том, что лично меня совершенно не трогает проблема сиротства Папы, хотя понятно, что этот момент в фильме имеет второе дно -- проблема с земными родителями оказывается связаной с проблемами с Отцом Небесным...
А может быть дело в другом. Мне тематика сериала довольно сильно напомнила вопросы, которые задает в своих лучших произведениях Достоевский. И если Федор Михайлович хорошо понимал, что в финале романа обязательно должен быть удар серпом по яйцам (в смысле, ножом в грудь Настасьи Филипповны), то вот окончание "Папы" совершенно вялое, не тянущее ни на катарсис, ни на кульминацию, ни даже на мало-мальски приличный CliffHanger, зазывающий нас во второй сезон. Я бы даже сказал больше -- сериалу определенно не хватает какого-то заметного вектора движения, мощного глубоководного "течения", пронизывающего все серии, штуковины, которая, например, делает тот же "Breaking Bad" гениальным, ибо каждая новая серия это такой кирпичик в историю про то, как школьный учитель химии на наших глазах превращается в аморального наркодилера...

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