К основному контенту

Отчет с конференции PiterPy#2

20 марта 2015 прошла 2-я ежегодная конференция PiterPy. Давненько я не был на чисто программерских конференциях. И напрасно - именно здесь заряжаешься энергетикой от большого количества увлеченных людей. На менеджерских или специализированных конференциях я такого не наблюдал.
Возможно еще сказывается достаточно камерный (пока?) формат PiterPy: 2 потока, 2 зала рядом, удобно, спокойно и без суеты.
Но коллега (Леха, привет), вернувшийся недавно с C++ Russia, отметил тот же эффект подзарядки от большого количества программеров в одном месте.
Поэтому, хочу сделать заявление: программеры (хочется верить большая их часть) очень позитивные и общительные люди, особенно когда это касается их любимой работы.

Твит-лента конфы.

Я волновался за свой текущий уровень знания Python, но, как оказалось, в голове еще что-то осталось и большинство докладов я спокойно переваривал. Правда был мега-deep доклад Александра Кошкина про кишки yield'а и тут мозг дал слабину :). Но почему то мне кажется, что я такой был не один - это действительно были кишки, мясо и расчлененка Питона в дизассемблере :) Кстати, доклад похоже один из лучших был.
Рейтинг докладов по версии афтерпати :) (с)
Заканчиваем прелюдию, ближе к теме. Здесь я уже набрасывал себе программу и получалось так, что почти все эти доклады и послушал.

Итоговую программу конференции можно найти здесь. Все видео тут.

По моему рейтингу получилось, что, по совокупности темы и мастерства докладчика, больше всего мне понравились доклады Кирилла Борисова и Алексея Пирогова. Уверен, что доклад Григория Петрова был супер, но я в это время увлеченно общался с Денисом Калановым и даже дал видеоинтервью ребятам из LoftBlog (теперь с ужасом его жду :) ) Теперь очень надеюсь на видеозапись доклада Гриши, потому что неофициальный рейтинг дал Грише призовое место. Ну а про доклад Саши Кошкина я уже сказал - это не для моего расслабленного менеджерского мозга :)

"Сверхоптимизация кода на Python"
Иван Ремизов
Доклад про то, как можно ускорить питоновский код в 30 раз. Очень рекомендую посмотреть тем, кого волнует тема. Еще раз прозвучало мое любимое "преждевременная оптимизация - зло". Оптимизацией они занимаются по факту обнаружения проблем. Часто мониторят логи продукта, чтобы держать руку на пульсе.
Видео доклада. Пара слайдов с советами и полезными ссылками:



(с)
"Beyond grep: Practical Logging and Metrics"
Hynek Schlawack
Интересный доклад про то, как можно собирать ошибки, логи и метрики. Ключевые слова и линки: Sentry + Raven, InfluxDB, StructLog, LogStash. Видео запись с конфы.


"Легковесный Dependency Injection"
Алексей Пирогов  разобрал на примерах существующие DI-контейнеры и рассказал о своей библиотеке yadic (yet another DI container). И тема была интересная и Алексей очень хорошо рассказывает. Приятно слушать. Слайды можно найти тут, видео тут. Если кому интересно, то у Алексея есть мастер-классы на его youtube-канале.

"Контроль за качеством кода"
Кирилл Борисов
Общепрограммерская история, было очень интересно. Видеозапись. Чувствовалось, что докладчик болеет темой :) Кирилл рассказал, как они в Яндекс-Паспорт работают с кодом: ревью, утилиты в IDE, утилиты в pre-commit хуках. Большая часть всего этого в нашем родном C++ встроена в компилятор, но есть интересные фишки по поиску FixMe, TODO, WTF :) (библиотека сейчас на апруве для выкладки в открытый доступ) или, например, сортировки import'ов

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

Выбор следующего доклада предопределила такая характеристика докладчика

Я купился и не пожалел (хотя доклад Armin Ronacher "Developing an Open Source Library" надо обязательно посмотреть в записи).
Петр рассказывал про то как они в Wargaming разрабатывают тулу для конвертации одного дизайнерского формата в другой. Внутренности и проблемы взаимодействия Python и .Net (C#), проблемы и достоинства IronPython. Итого: WPF с IronPython дружит плохо (знаем - плавали), поэтому UI пишут на C#+WPF, а бизнес-логика на Python (потому что много Python-библиотек от UI-сред, в которых работают дизайнеры). Взаимодействие через stdin|stdout o_O. Вот так вот забавно. Но работает :) Видеозапись.


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

"Знай и люби свой yield. Корутины и генераторы за гранью for loop."
Александр Кошкин
ААА..., ну вы поняли (см пояснения в самом начале). Это надо смотреть, объяснить я не смогу. Интересно много людей в зале врубилось в тему? :) Очень надеюсь, что такие были. Интервью Саши про yield после конференции.

"Анатомия автоматизации тестирования"
Алексей Тремаскин старательно отвечал на вопрос зачем городить свой велосипед, если вокруг и так много средств передвижения. Обожаю рассказы про новые конструкции велосипедов :) Алексей отвлек мое внимание упомянув Sikuli и и я налажал - увлекся этим вопросом и забыл спросить про Robot Framework. В итоге ребята действительно запилили свой велосипед и проверяют им UI в World of Warships.
Эхх, единственное, что может их оправдать это то, что по словам автора, он занимает около 150 строк. Если так, то может и не так страшно. Жаль не посмотреть - разработка внутренняя. Но способ использования yield для локализации ассерта интересен. Ждите слайдов и видео если кому интересны детали.

На сессии быстрых докладов запомнился Роман Бажин со своим не менее страшным чем у Кошкина докладом про то, как ломать зашифрованный питон. Слишком сложная тема для завершения конференции и урезанного формата коротких докладов. Надеюсь презентация будет, потому что я знаю человека, которому она может понравится :)

Вот вроде и все. Было интересно, здорово и позитивно. Познакомился с интересными людьми. Послушал умных людей, сам что то там рассказал. Спасибо организаторам за хорошую программу и организацию. Уверен, что PiterPy#3 будет круче. И он, кстати, уже готовится. Следите за новостями :)

Все слайды с конфы уже можно найти на ее странице.
"Как это было в лицах" - фотки с PiterPy#2
Отчет не про доклады, а про организацию конференции от Сергея Матвиенко

Короткий видеоотчет от ребят из LoftBlog

Комментарии

  1. Денис Каланов21 марта 2015 г. в 22:45

    Прямо на одном дыхании читается! Очень круто! Спасибо тебе за этот отчет!

    ОтветитьУдалить
  2. Крутой отчет! И горжусь Алексеем Пироговым и Кириллом Борисовым, приятно что такие люди работают/работали в нашей компании :)

    ОтветитьУдалить
  3. Петух Чинить23 марта 2015 г. в 13:02

    Самый интересный доклад был безусловно у Кошкина.

    ОтветитьУдалить
  4. Кто-нибудь видел видеозаписи или слайды? Словно конференции просто не было :(.

    ОтветитьУдалить
  5. Рома, обычно все не так быстро делается. Особенно видео. Слайды чаще всего докладчики выкладывают пораньше, но тут тоже пока нет. Но чуток терпения и все появится :)

    ОтветитьУдалить
  6. Денис Каланов25 марта 2015 г. в 02:09

    Часть слайдов уже можно найти в твиленте под хештегом #PiterPy
    https://twitter.com/search?f=realtime&q=%23piterpy&src=typd
    В течении этой недели постараемся все презентации выложить на сайте конференции: http://it-sobytie.ru/events/3275

    ОтветитьУдалить

Отправить комментарий

Популярные сообщения из этого блога

Mock vs Stub

Когда мы начали изучать модульное тестирование, то одними из первых терминов, с которыми пришлось познакомиться, стали Mock и Stub. Ниже попробуем порассуждать в чем их сходство и различие, как и для чего они применяются. Проверять работоспособность тестируемого объекта (system under test - SUT) можно двумя способами: оценивая состояние объекта или его поведение. В первом случае проверка правильности работы метода SUT заключается в оценке состояния самого SUT, а также взаимодействующих объектов, после вызова этого метода. Во-втором, мы проверяем набор и порядок действий (вызовов методов взаимодействующих объектов, других методов SUT), которое должен совершить метод SUT. Собственно, если коротко, то в одном случае используется Stub, а в другом Mock. Это объекты, которые создаются и используются взамен реальных объектов, с которым взаимодействует SUT в процессе своей работы. Теперь подробнее. Gerard Meszaros использует термин Test Double (дублер), как обозначение для объе

Заметки на коленке - 3. Что еще делать, если ваши тесты уже "зеленые"?

"Lately I find I'm working on automated tests that return non-binary results. Tests that neither pass nor fail" by  @noahsussman Отличная мысль, которую я ретвитил еще в 2016. Но давайте вместе подумаем, что за этим может скрываться? ( кстати, не знаю, что при этом думал Noah ) Ваши тесты прошли и прошли "успешно". Все хорошо или все же есть, куда еще посмотреть? Дальше то, что использовал я лично и то, что еще можно прикрутить дополнительно. Естественно все шаги ниже должны быть автоматизированны. 1. Контролируйте время выполнения тестов. Если набор проверок не меняется (а такое часто бывает, к сожалению), то рост времени выполнения может говорить о проблемах в продакшен коде (чаще всего) или проблемах с окружением. 2. Контроль за количеством выполняемых тестов. "Все зеленое" не значит, что сегодня выполняли те же Х тестов, что и вчера. Смешно(нет), но случается такое, что какие-то проверки "исчезают" из запуска из-за того, что у кого-то &qu

Полезные ресурсы для молодых (и не только) тестировщиков

сперто(с) Уже 3 месяца провожу собеседования тестировщиков (март 2016). Поначалу они просто  веселили - после 15-летнего опыта собеседования С++-разработчиков, общение с тестировщиками (чаще были "-цы") было чем-то экзотическим и забавным. Потом становилось все грустнее и грустнее, мимими закончилось. Началась печаль.