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

Отчет с конференции 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 uder test - SUT) можно двумя способами: оценивая состояние объекта или его поведение.

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

Во-втором, мы проверяем набор и порядок действий (вызовов методов взаимодействующих объектов, других методов SUT), которое должен совершить метод SUT.

Собственно, если коротко, то в одном случае используется Stub, а в другом Mock. Это объекты, которые создаются и используются взамен реальных объектов, с которым взаимодействует SUT в процессе своей работы.

Теперь подробнее.

Gerard Meszaros использует термин Test Double (дублер), как обозначение для объекта, который зам…

План "Б" или как прикольно провести субботний день

Всем привет.
Вчера состоялась конференция "План Б". Организаторами выступили ребята из Яндекса, за что им большое спасибо. Судя по приблизительным подсчетам в мероприятии участвовало около 200 человек.

Основной темой конференции было планирование, планирование всего: проектов, разработки, тестирования, дизайнеров и даже организации музыкального фестиваля.
Сначала думал написать отчет в обычном своем стиле: кто и что говорил, но почитав твиттер по #pbconf понял, что просто потеряю время :) Поэтому кому оооочень интересно узнать подробности следуйте за птичкой и вы все узнаете (тэг #pbconf попал в top-30 твиттера)
Здесь приведу лишь те вещи, которые мне запали в мозг
Роман Чернин о продуктовой разработке: "нет заказчика, нет требований, нет сроков -> как принимать решения? ответ: заводим себе Product Manager-а"
Оля Павлова (@op): "бойтесь иллюзии точной формулировки" "заказчик - ребенок, выдаем ему игрушку как можно чаще" "не забываем, …

Переключите тумблер или умные люди дурного не посоветуют

Навеяно интересными вопросами про TDD после вчерашнего выступления.

Uncle Bob: "Flipping the Bit"

Подробнее постараюсь перевести чуть позже, пока только это:
Как определить, что у коллеги (или у вас) ТУМБЛЕР переключен?  Если ваши ответы на вопросы ниже совпадают с приведенными - то все хорошо :)
Мантра:

Сможете ли вы выполнить работу быстрее используя TDD? ДАСуществуют ли какие-либо задачи, которые вы можете выполнить быстрее без TDD? НЕТЯ понимаю, что TDD может помочь в долгом проекте, а что если у вас короткая задача? Будете использовать TDD? Да, потому что TDD быстрее даже в короткой перспективеЧто если времени реально не хватает, и босс стоит над душой, будете ли вы использовать TDD? ДАВ любом случае? ДАЕсть ли случаи, когда вам не нужно использовать TDD? НЕТПредставьте себе что вы на звездном корабле Enterprise (Star track) и осталась всего секунда до взрыва антиматерии. Все что вам нужно, чтобы избежать этого, поменять один IF. Будете ли вы использовать TDD? ДАПочему? П…