О CodeFest

2022-06-11

Вот и состоялся двенадцатый по счёту CodeFest. И я там был, пиво и коктейли пил. На доклады ходил. На афтепати немного общался.

Прошлый CodeFest в 2021 году я пропустил. Ковид гораздо интенсивнее шагал по планете. Да и просто решил послать все конференции к чёрту. Ошибался.

Конференции — это хорошо. Крайне полезно хотя бы раз в год опыляться новыми знаниями и идеями. И CodeFest для этого весьма выгоден. Рядом с Омском (от Омска до Новосибирска лишь ночь на поезде). Относительно дёшев. Не является узко тематической конференцией, а значит, можно нахвататься всего околоайтишного сразу везде.

И CodeFest оправдал ожидания. Конференция нисколько не испортилась. Местами даже стала лучше. Отсутствие привязки треков к залам. И, соответственно, пометка одних и тех же докладов сразу несколькими треками. Отличный тайминг: 40 минут на доклад + 20 минут на перерыв. Афтепати на барной улочке, где можно свободно перемещаться из одного бара в другой, от одной компании к другой, или даже просто застрять посередине и послушать-поговорить.

Мы, по старой традиции, поехали в Новосибирск на день раньше. И посвятили пятницу очередной экскурсии по Академгородку. Оказалось, что Новосибирск в целом, и Академгородок в частности, в мае на 250% красивее, чем в марте. Сосны, берёзы, Обское море. Так что пусть CodeFest и дальше продолжает случаться в мае. А Новосибирский зоопарк я ребёнку снова задолжал.

logo

Ладно. Поехали по докладам. Из тех, что я успел посетить.

Андрей Себрант, известный человек из Яндекса, выступил с философским докладом про Метавселенную. Metaverse. Это не обязательно виртуальная реальность. То есть, она, конечно, виртуальная. Но для взаимодействия с ней вовсе не нужны очки виртуальной реальности. Это — виртуальное, цифровое отражение нашего реального мира. Те же деньги — это часть Метавселенной, у них почти и нет физического воплощения в настоящей реальной Вселенной. А каждое наше действие в реальном мире всё чаще и чаще оставляет цифровой след в Метавселенной. И даже такая вроде простая очевидная вещь, как ползунок времени в Яндекс.Погоде стирает грань между настоящим и виртуальным. В прошлом и настоящем это — настоящие наблюдения за погодой. В будущем — это прогноз, поведение цифрового двойника погоды в ещё не наступившем в реальности будущем.

Яндекс.Погода в будущем

Пример доклада, которого не должно было быть. Совсем. Рассуждения Дениса Цветких про чистую архитектуру и DDD. Не нужно из работ Роберта Мартина и Эрика Эванса, которые про архитектуру, то есть, довольно абстрактную вещь, делать слишком конкретные выводы, а потом ещё и жаловаться, что эти выводы недостаточно конкретны. Это ведь всего лишь рекомендации (и таки да, повод для дальнейших консультаций). А каждый понимает и применяет рекомендации лишь в меру собственной испорченности. И это не беда самих рекомендаций.

Александр Воронков совершенно офигенно рассказал и показал про Music-as-a-Code. К сожалению, лишь в LiveChannel (онлайн и в отдельном кинозале трансляция, плюс маленькие доклады в перерывах). Я попал лишь на самый конец, во второй перерыв. И очень пожалел, что не смотрел с самого начала. Краткая теория музыки, равномерно темперированный строй, и даже из девятнадцати ступеней (не знал). Факт, что октава на гитаре — это середина струны (очевидно, но я не осознавал). Ух. И как закодить эти ноты, и эффекты, на Go. И какой получается шикарный DSL, где прямо в Vim можно диджеить на полную, просто печатая код. Демо было очуменным. Если буду на Ludum Dare, буду так писать музыку :)

Live Channel

Алексей Мерсон рассказал про проблемы масштабирования и нагрузки. Меня, в плохом смысле, порадовало, что даже в проектах на 100+ человек, где, вроде всё продумали про мониторинг и поддержку, всё равно случаются косяки, которые расследуются и исправляются месяцами. И основным затыком являются даже не технические проблемы, а, как оно часто бывает, люди и их взаимоотношения.

Марат Сибгатулин из Яндекса поделился болью управления сетями. Как менеджерить эти сотни и тысячи коммутаторов, в данном случае внутри Яндекса. Я помню, что 20 лет назад всё было тоже больно. Тогда для управления свичами были telnet, веб интерфейс и SNMP. Каждый из интерфейсов предлагал доступ лишь к некоторому подмножеству фичей устройств. Самым многообещающим выглядел SNMP. Но у каждого производителя или даже у каждого устройства был свой набор параметров, с которым тоже надо было разбираться и импортировать в скрипты. За 20 лет мало что изменилось. Появились новые многообещающие протоколы. Но они по-прежнему не дают полного и совместимого контроля девайсов разных производителей. В результате инженеры Яндекса вынуждены клепать свои костыли и строить свою систему управления. Где-то там внутри работает Annushka, штука, похожая на Terraform, но больше заточенная на управление конфигурацией устройств, а не облаков. Пока закрытая разработка Яндекса.

Рене ван Беверн, крутой учёный, работающий на Хуавей, единственный докладчик-иностранец, но докладывавший на русском языке 👍, рассказал про алгоритмы. «Мы тут придумываем алгоритмы, так что для нас ваш бэкенд — как фронтенд.» На примере одного алгоритма он показал, какие они могут быть хитрыми. И как доказывается, что ещё хитрее их сделать нельзя. Началась математика на конференции. А алгоритм, о котором шла речь, — это Count-min sketch. Крайне интересная штука, родственная фильтру Блума. Этот скетч позволяет приблизительно подсчитать количество самых часто встречающихся элементов в последовательности. Причём размер структуры не зависит от размера последовательности, но зависит от требуемой точности.

Count-min sketch

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

Второй день конференции начался с выступления широко известного в узких кругах математика Алексея Савватеева. Популяризатора математики. А вы знаете, что такое число? А вы знаете, что такое иррациональные числа? А показать сможете? А трансцендентные числа? А всегда ли будут встречаться пары простых чисел, отличающиеся на два? А вы знаете, что в игре Гекс, во-первых, всегда выигрывает один из игроков, не существует ничьи, во-вторых, существует выигрышная стратегия для того, кто ходит первым, вот только никто не знает, в чём именно заключается эта стратегия? Математика — рулит.

Григорий Петров рассказал про Python в 2022 году. Питон питонит нормально. Кому сильно нужно, есть экспериментальная версия без GIL. Включённые батарейки — одновременно и преимущество, и недостаток Питона. Документация у Питона действительно одна из самых лучших. А с разрешением зависимостей всё ещё по-прежнему плохо, потому что уйма зависимостей устанавливается всего лишь запуском setup.py из пакета, который делает что хочет.

Даниил Терентьев неплохо раскрыл тему проблемных коммуникаций. Идиот — не тот, кто задаёт много уточняющих вопросов, чтобы выяснить, что же всё-таки имелось в виду, а тот, кто этого не делает. А ещё лучше сразу выражаться ясно и логично. Особенно, если вы — начальник. Ну и логика, включайте её. Четыре закона логики, упомянутые в докладе, — это закон тождества, закон (не)противоречия, закон исключённого третьего и закон достаточного основания.

Как повысить уровень понимания

Антон Черноусов из Яндекса провёл неплохое введение в Serverless на примере облаков Яндекса. Мы с Антоном немного пообщались накануне на афтепати. Developer Advocate, оказывается, интересная профессия. А Serverless в Яндекс.Cloud уже поддерживается. Есть функции, триггеры, API Gateway, бесплатные тарифы на немножко запусков. Всё как у людей. Можно пользоваться.

Мой любимый регулярный докладчик КодеФеста, Виктор Грищенко, снова порадовал. На этот раз объяснением концепции нового протокола консенсуса на гномиках. Не того консенсуса, которого иногда пытаются добиться политики. А консенсуса, когда узлы распределённой системы хотят договориться об общей картине мира. Например, узлы в блокчейне хотят прийти к общему согласию насчёт последовательности блоков и включённых в них транзакций. Proof-of-Work в этих наших биткойнах — это большая дорогостоящая лотерея, кто победил — того и блок. Здесь же Виктор предлагает иную концепцию. За количество шагов, равное удвоенному диаметру сети, все узлы сети могут быть уверены, что их ближайшие соседи приняли и согласны с транзакцией. Как гномики из Gravity Falls.

мастер-гном

Сергей Хованов рассказал про ТРИЗ. ТРИЗ — это теория решения изобретательских задач. Набор эмпирических методов, позволяющих разрешать проблемы, возникающие перед инженерами (и изобретателями). Сергей весьма весомо показал, что эти методы могут применяться и при решении задач в информационных технологиях. Хоть последователи ТРИЗ и ведут себя как какие-то сектанты, существенное рациональное зерно в этой теории есть. Полезно начать применять.

Закрыл конференцию Дмитрий Иванов. Попытался дать прогнозы нашей программистской жизни на десять лет вперёд. Про IDE согласен. В слиянии с инструментами совместной работы вроде GitHub есть смысл и видны движения. Будет прикольно. Логическое программирование — прекрасная штука. Буду рад, если оно возродится. Привет, Пролог. Синтезирование программ? Ну, как-то сильно фантастично. А как же P≠NP?

CodeFest по-прежнему хорош. CodeFest за эти годы не испортился. В этом году не было иностранных докладчиков. За исключением Рене ван Беверна, который, вообще-то, изъяснялся на чистейшем русском языке, хоть и с акцентом. Мои опасения, что будет много разговоров и намёков на последние события, не оправдались. Хотя было подозрительно много участников с местом работы ¯\_(□)_/¯. Как выяснилось, скрипт так заменял пустое место работы или фразы вроде «безработный» и «самозанятый». Только при печати один символ в каомодзи не пропечатался. ¯\_(ツ)_/¯

кофий