2017-04-09

О CodeFest 2017

Снова случился CodeFest. И я снова собирался на него не поехать. Настолько, что собрался даже на DUMP в Ёбург. Там совершенно убойная программа на секции Science вырисовывается. Точнее, собрался на оба: и CodeFest, и DUMP. Даже попытался пробиться в докладчики DUMPа, чтобы немного сэкономить. На CodeFest-то бесполезно пытаться докладчиком, ведь я не работаю в яндексах, мейлру, двагисах да бадах. Но в результате я побывал на CodeFest, и на DUMP уже никаких сил нет. Сильно много общения, видимо.
CodeFest logo
В этот раз удалось погулять по Новосибирску. По центру. Было мокро, холодно, грязно и ветренно. Как обычно в это время в Сибири. Делать в центре Новосибирска совершенно нечего. Разве что сфотографироваться на фоне задницы памятника Ленину. Гулять надо по Академгородку. Ну и летом надо обязательно сгонять в новосибирский зоопарк. К стыду своему я там ни разу не был. На карте он выглядит чудовищно громадным.
Посмотрели «Призрака в доспехах» в IMAX. Фильм годен, даже для любителей оригинального аниме. Хотя, конечно, получилась типичная голливудская поделка. IMAX и 3D — к чёрту.
GiS city
Конференцию открывал Marko Berković аж из самого GitHub. Говорил про корпоративную культуру. Как они в ГитХабе отказываются от почты в пользу репозиториев и чатиков. Как они админят всё через чатики с Hubot.
Конечно, принимать совместные решения, редактируя документ в репозитории, и принимая правки через пулреквесты, — замечательно. Это действительно эффективнее, чем почтовая переписка. Но вот что мне в пулреквестах никогда не нравилось. Изменения кода и прочих текстов — под управлением системы контроля версий, в данном случае Git. А пулреквесты, а также связанные с ними обсуждения, — где-то совершенно сбоку, в какой-то БД какой-то проприетарной системы под названием GitHub. Причём, как показал опыл GitLab, удалить эту БД может любой достаточно опытный админ. Я всё жду, когда пулреквесты станут частью самого репозитория, тоже под контролем версий. Кто запилит нужный экстеншен к Гиту или Меркуриалу?
Ну вот, хотел посмотреть, какие доклады я отметил звёздочками. А официальное приложение CodeFest начало падать даже у меня, на Android 6.0.1. Так что, господа организаторы, дело не в том, под какие версии Андроида делали приложение, а в кривых ручках компании Allmax, чей логотип гордо красуется при запуске приложения. А может, во всём виноват React Native.
xSQL
Костя Осипов заменил Дорофеева, собрав полный зал, ещё и с хвостами в коридоре. Я не влез, но полностью доклад поддерживаю. Все эти SQL, NoSQL, NewSQL — это всё об одном и том же, только с разных сторон. А самого Костю мы поймали на афтепати. Разговор был про жизнь, бизнес и всё такое... Но что было на афтепати, останется на афтепати.
Кстати, похоже, это первый тренд конференции: NoSQL и SQL, радость в слиянии. Но я его как-то не заметил, ибо для меня это года два как совершенно ясная тема.
Макса Дорофеева не было. По официальной версии дырка в его расписании для CodeFest не совпала с самим CodeFest в этом году. Зато был конкурс мемасиков, и даже мой хороший знакомый выиграл книжку с автографом. Зато все докладчики, как могли, пытались заменить Дорофеева. Костя Осипов собрал полный зал, Павел Мочалкин рассуждал об устройстве человеческого мозга, Никита Прокопов рисовал слайды «вручную», Фёдор Овчинников сказал слово «жопа» со сцены, впрочем, лишь один раз.
человек-снежинка
Виктор Грищенко очень мило рассказал, как добавив чуток схемы, точнее формального описания грамматики, и таким образом сведя JSON к регулярной грамматике, можно заметно ускорить и стабилизировать парсинг этого самого JSON, в частности в JavaScript, фактически заменив стандартный парсер регулярным выражением. Немного увлекательного матана с неоднозначными практическими выводами.
На этом докладе я понял, что обладаю талантом задавать вопросы из очень неприятной для докладчика категории. Есть такие вопросы, которые очень тщательно обходятся в самом докладе, потому что обнажают недостатки предлагаемого решения и даже могут поставить под сомнение ценность доклада в целом. Хорошие докладчики заранее знают об этих недостатках и готовят ответы на подобные вопросы. Вот я на такие заготовленные ответы и нарывался :)
Второй тренд конференции: протоколы взаимодействия, схема/типизированность или её отсутствие, попытки заменить HTTP и JSON.
Вот и Игорь Кашкута рассказал, как они используют Protobuf поверх голого TCP или WebSocket для общения мобилок с сервером. Казалось бы, Protobuf — это такая жутко строго типизированная штука, которая создаёт код для клиента и сервера, и эти клиенты и сервера должны быть одинаковых версий. Это не SOLIDно. Но ребята из Badoo воспользовались тем, что любое поле структуры, объявленное в Protobuf, вполне себе может быть необязательным. И у них сложился вполне расширяемый и гибкий протокол, работающий через строго типизированный Protobuf.
Пионер
Третий тренд конференции: машинное обучение. Да, оно везде. Уже есть, а будет ещё больше. И пусть мой коллега утверждает, что на Курсере задачки посложнее того машинного обучения, про внедрение которого рассказывали на CodeFest. Это всё дело наживное. Да и не крутостью алгоритмов меряется достигаемый результат.
Иван Бондаренко как раз рассказал, как они обучали машинки распознаванию адресов-телефонов на сайтах компаний. Это у них такая хитрая штука в 2ГИС, чтобы оперативно выяснять, что эти самые адреса-телефоны внезапно изменились. А ещё получившийся ПиоNER успешно потрошит описания лекарств или номенклатуру автомобильных шин.
RTB
Четвёртый тренд конференции: RTB. Ну может, и не тренд, кажется, про RTB больше говорили в прошлом году. А в этом году про RTB, кажется, был вообще только один доклад. Но, имхо, это был настолько замечательный доклад, что вполне достоин обозначить тренд.
Максим Пугачев рассказал про SaaS платформу для RTB от IPONWEB. Первая половина доклада была посвящена обзору RTB как явлению рынка, и какие технические вызовы оно бросает. Это был самое краткое, но объемлющее определение RTB, что я слышал. Браво!
Отрадно слышать, что такая технически сложная штука как RTB, ушла таки в облака. И многие, кто хочет свой RTB, перестали ваять его на коленке. Впрочем, знающие люди говорят, что IPONWEB всё же дорого, и свои костылики обходятся дешевле, если, конечно, знать, где их взять.
Оперный театр
Павел Мочалкин обычно закрывает конференцию. Охлаждает энтузиазм, чтобы все технари не бросились внедрять услышанное с понедельника. В этот раз он решил всех опохмелить утром второго дня. Ну и заодно утешить, что обученные машинки не отберут у нас работу. Потому что мы все такие творческие и уникальные.
Тут обозначился ещё один тренд конференции. Правда, я прошёл почти мимо него. Но между докладами и после весьма много обсуждали. Бирюзовые организации. Где сотрудники обладают достаточной свободой и правом действовать самостоятельно ради общего блага (организации). Самоорганизуются.
Протокол
Никита Прокопов удивил. Снова поднял тему протоколов. Но рассказал вовсе не о том, что было заявлено в описании доклада. По крайней мере я главным увидел другое. Он поднял проблему синхронизации. Данных. Между множеством клиентов и сервером. В исторической и технической перспективе. Про то, как от синхронизации состояния перешли к пересылке событий и их упорядочиванию. Но и это не даёт окончательного решения.
Вообще большинство докладов строилось по одной схеме. Вот тема. Для тех, кто не в теме, вот вам введение для чайников разной степени кипячения, на полдоклада. А вот вам наш крутой продукт, который посвящён этой теме. Либо какое-то частное решение. Либо просто похвастаться хотим. Покупайте наших слонов.
А вот у Никиты получилось хорошо. По-инженерному. Проблему поднял. Всех заставил задуматься. А решения не предложил. Потому что его нет :)
Снова про xSQL. Дмитрий Долгов рассказал про jsonb в PostgreSQL. Удивительно, но в конце прошлого года у нас появился стандарт на JSON в SQL. Продвигаемый, вроде, Oracle. Какой-то странно закрытый. Который скоро будет поддерживать PostgreSQL.
А потом были бенчмарки JSONов в Постгресе, Монге и Мускуле. Постгрес, конечно же, победил. Хотя для тестирования наконец-то взяли не ноутбук Олега Бартунова, а серваки в Амазоне.
Тестировали с YCSB, блин. Ну почему я до сих пор не родил ничего получше, чем этот синхронный ява-монстр, неприспособленный для создания нормальной распределённой нагрузки?
Упоминали контейнеры, Docker, Kubernetes. В той же Lamoda. Пусть это будет ещё одним трендом конференции. Хотя я этого наелся по работе столько, что уже не воспринимаю как откровение. Похоже, это просто стало стандартом. Используем докеры там, где можем.
Resource management
Послушал единственный менеджерский доклад. Дмитрий Плетнев подробнейше рассказал про ресурсный менеджмент. У аутсорсных компаний есть ресурсы. Человеки. Которые что-то умеют и чего-то хотят. И заказчикам нужны эти ресурсы, их часы. Надо свести одних с другими, чтобы никто не страдал. Нужно, чтобы сотрудники были заняты, но не перетруждались, и не простаивали. Нужно, чтобы сотрудними делали то, что они умеют хорошо, но и чтобы развивались.
Очень много чего нужно. И следить за продажами, чтобы тормозить их, когда нет свободных ресурсов. И знать и отслеживать, кто где находится, чем занимается, чего хочет, чем недоволен, куда хочет двигаться.
У них всё получилось. Причём не взрывом мозга у одного директора по ресурсам. Удалось распределить обязанности между менеджерами по ресурсам, на каждом пуле ресурсов. И это в компании из 70 человек. А я вот хорошо знаю человека, который несколько лет в одиночку всё это разруливал в компании, где работает более 200 человек.
Дмитрий задал залу вопрос: Кто проводит у себя стажировки? Потому что стажёры — это очень лояльный и дешёвый ресурс. Из порядка 600 человек в зале руку подняли лишь человек пять. Что? Я думал что в ИТ только те, кому совсем-совсем не надо расти, не проводят стажировок. По крайней мере в Омске все, кому нужны люди, это делают. Оказалось, что Омск — не показатель.
HoloLens
Снова немного машобуча, а на самом деле даже матана, было в докладе Дениса Баталова. В роли слонов выступали некоторые продукты Амазона, включая Amazon Kinesis. Теперь их SQL по потокам данных умеет искать аномалии с помощью леса случайных разбивок.
Andrea Di Persio рассказывал про Go и микросервисы, сдабривая это всё терминами вроде Domain Driven Design. То ли потому, что было на английском, то ли одно из двух, но мне было скучно. Как-то ни про Go не рассказал, ни про микросервисы. Оставлю лишь одну ссылочку для дальнейшего изучения: Prometheus.
Сергей Звягин здорово рассказал про виртуальную, дополненную и другие виды реальности. И продемонстрировал HoloLens. Это такой Project Tango на голове, или сильно прокачанные Google Glass.
Запомните эти жесты. Надо смотреть мимо собеседника, куда-то вдаль. Потом сложить пальцы в щёпоть на вытянутой руке, и резко разжать эту щёпоть (сказав «вах»). Этим вы вызовете меню HoloLens. Потом нужно слегда поводить головой, прицеливаясь в нужный пункт меню. И, наконец, протянуть руку с воображаемой мышкой, и дважды кликнуть этой мышкой. Так вы выберете нужный пункт меню. Со стороны это выглядит неимоверно смешно, даже если у вас на голове хайтековая штуковина за несколько тысяч долларов. Повеселите друзей.
Почему-то на вопрос, что они собираются с такими штуковинами делать, эти ребята-энтузиасты отвечают, что просто следят за тенденциями, но ничего конкретного не пишут. Похоже, рано ещё программистам сюда соваться. Надо контент делать. То же 360° видео. А потом уже захочется сей контент сделать более интерактивным.
Guesture
На закуску участникам подарили Фёдора Овчинникова. Айтишники его плохо знают. Потому что он — создатель сети пиццерий «Додо Пицца». Фёдор — за максимальную открытость. Он кидал клич за идеями по «рефакторингу» их информационной системы. Он, не стесняясь, сообщал о потере 8 миллионов рублей (при обороте за 2016 год более 2.5 миллиардов), просил помощи. И помощь пришла. Любопытно, что Фёдор сказал, что причиной ошибки, и основой решения было одно и тоже. Доверие сотрудникам. Да, та самая бирюзовая организация. Сами напортачили, сами и исправили. Никого не наказали.
Кстати, про информационную систему. Я много раз слышал, что «Додо Пицца» — компания-киборг. Что все процессы внутри компании проходят через информационную систему. Что сама суть компании — эта система, а вовсе не изготовление пиццы. Только сейчас, из первых уст, до меня дошёл смысл этого. «Додо Пицца» — это не компания, которая автоматизировала всё, вплоть до рецептуры теста. «Додо Пицца» — это компания, которая была создана вокруг информационной системы, которая развивалась и росла вместе с компанией. Информационная система не была внедрена в бизнес. Это бизнес вырос на скелете информационной системы. Мне кажется, ещё никто так не делал раньше. Тем интересней следить за экспериментом.
Додо Пицца
В этом году на конференции было как-то мало знакомых лиц. Из Омской компании, где более 200 человек, приехал только один. Где вся эта туча омичей, что значились зарегистрировавшимися? Кто все эти люди вокруг? Поколение сменилось? Хорошо это или плохо?
Резюмирую.
  • SQL никуда не денется, в разных вариантах будет проникать в NoSQL и NewSQL.
  • Протоколы и взаимодействие всё ещё интересны, HTML и JSON хочется чем-то заменить.
  • Машинное обучение уже здесь и сейчас, возможны наколенные применения даже на малых задачах и данных.
  • RTB уже рутина.
  • Микросервисы уже рутина.
  • Контейнеры и Docker уже рутина, но можно поспорить, каким инструментом с ними удобнее обращаться.
  • Виртуальные и прочие реальности всё ещё слишком нишевы, чтобы для них требовалось массово писать софт.
  • Организации мечтают стать бирюзовыми, чтобы сотрудники сами всё делали.