Конференция про Python и про общение

Традиционно Python используют для создания сетевых сервисов, бэкенда в вебе и, конечно, для сбора и обработки данных, как правило Больших. Эти направления в равных долях с экосистемными докладами и постараемся обсудить на грядущей Moscow Python Conf++. Эта конференция для Python-разработчиков состоится в Москве 22 и 23 октября, и я возглавляю её Программный комитет. Программа, можно сказать, выстрадана, нам удалось сделать её именно такой, как мы и планировали, — разнообразной. Бэкенд, Big Data и особенности языка, у нас гармонично сочетаются с докладами по тестированию, искусственному интеллекту, безопасности и DevOps. Хочется заранее поделиться с вами результатом, поэтому предлагаю обзор докладов по секциям — то, что к вам никак не относится, можно проматывать.

chetppwrojelci0xb4nsxivbwdm.jpeg

Хотя, подождите, не спешите перескакивать на следующую тему. На картинке выше написано: «Профессиональная конференция» — то есть, предназначена она для профессиональных разработчиков. Но гостями мы видим не только собственно Python-разработчиков, но еще программистов, преимущественно использующих другой стек, но заинтересованных в возможностях Python для вспомогательных задач. Последним должны зайти доклады, например, про Apache Kafka, Wagtail, SQLAlchemy или линтеры.
Все доклады будут построены так, чтобы можно было вникнуть, даже не разбираясь в конкретной теме выступления, тем самым расширив свой кругозор, но в то же время профи смогут добраться до самых заковыристых проблем. Условно можно выделить три блока тематик и «разное»:


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

Сеть, бэкенд и веб-разработка


Начнем обзор с серьезной и достаточно универсальной секции, к которой относится почти треть всех докладов.

High Performance Data Processing in Python


В настоящий момент Python — это основной инструмент для преобразования больших неструктурированных данных. numpy и numba популярные библиотеки, но при работе с ними разработчику легко угодить в ловушку и потерять всю производительность. Donald Whyte (Engineers Gate) объяснит, как numpy/numba работают под капотом и как они используют векторизацию для быстрой обработки больших объемов данных. Дональду эти инструменты позволили ускорить научные вычисления в 10 и более раз, перенять его опыт будет очень полезно.

Опыт использования Apache Kafka в World of Tanks


Левон Авакян в своем докладе расскажет, как используется Apache Kafka в проектах Wargaming, какие трудности в связи с этим возникают и как их преодолеть. Также не секрет, что в компании Wargaming для разработки широко применяется Python. Левон поделится опытом использования различных библиотек для Apache Kafka на Python.

rzkcrc0rskwpdan9jnyqskgqlrc.jpeg

Wagtail: когда хочется чего-то приятнее, чем просто Django


В мире PHP разработки есть WordPress, на котором практически кто угодно может сделать простой сайт, а специалиста подключить позже, когда понадобится этот сайт расширять. В мире Python до недавнего времени ничего такого не было. Но теперь появился проект Wagtail — полноценная CMS на базе Django для современных веб-сайтов. Игорь Мосягин из Lamoda расскажет, как работает Wagtail, где его удобно применять, и действительно ли это так просто.

Django under microscope


Из доклада Core разработчика Django Channels Артёма Малышева (уже знакомого нам, например, по этому выступлению) вы узнаете все подробности из жизни внутренних механизмов Django от первого байта HTTP запроса до последнего байта ответа.

Вас ждет настоящая Феерия от том, как работает парсер-форм, как компилируется SQL, как реализован шаблонизатор для HTML, как управляется connection pool и т.д. Всё это в хронологическом порядке обработки WSGI объектов.

Beyond Jupyter. Системы построения пайплайнов обработки данных


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

  • Когда уместно использовать celery/rabbit, а когда лучше построить дата-пайплайн.
  • Сравнение Airflow и Luigi.
  • Luigi 101 — основные концепции и примеры их использования.


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

История обновления архитектуры проекта


Александр Боргардт поделится достаточно нетривиальной историей эволюции одного проекта. Начинался он на tornado, затем для улучшения ходовых характеристик часть переписали на C++. Потом наступил 2018, и оказалось, что теперь многие старые хаки не нужны. Связка asyncio + uvloop + aiohttp чаще всего даст производительность не хуже. Именно о таком случае на конкретном примере, с понятными рекомендациями, и поговорим на докладе Александра.

ecf3gsbut0pk1zlkbbeeltqp8kw.jpeg

50 оттенков Celery


Олег Чуркин уже 8 лет занимается разработкой на Python и сейчас выполняет роль техлида в финтех-старапе TechOps. Когда мы говорим финтех, подразумеваем — Big data. Из доклада Олега узнаем о тонкостях использования планировщика Celery для обработки больших данных:

  • для каких типов задач можно и нужно использовать Celery;
  • как запустить 500 тысяч задач и оставить базу данных и внешние сервисы живыми;
  • как мониторить производительность задач;
  • как не потерять задачи при деплое;
  • как писать поддерживаемый код задач.


А еще рассмотрим авторские библиотеки, позволяющие успешно масштабировать Celery и мониторить очереди / задачи в Grafana и Prometheus. Может быть вы уже видели немного спойлеров тут.

Язык Python, его эволюция и использование


Перед тем, как перейти к любимому Python, замечу, что программа конференции у нас такая, чтобы любой гость мог выбрать интересный для себя кейс, послушать спикера и, главное, пообщаться со всеми тем людьми, которые пришли на тот же доклад.

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


Напомню, конференция, на мой взгляд, это про общение, и не стоит пренебрегать этой возможностью.

Обновить Python 2.7 на Python 3.6 и не умереть


Эволюция — естественное явление. Python она также не обошла стороной, но в некоторых проектах все еще используется Python 2.7 по одной простой причине — из-за сложности миграции между версиями. Александр Полищук (Код Безопасности) предлагает поделиться своей тернистой дорогой обновления. Из доклада узнаем о граблях и набитых шишках, и на живом примере поймем, что результат, конечно, того стоит.

Холиварный доклад про линтеры


Никита Соболев основатель студии wemake.services, выступал не на одном нашем митапе и уже хорошо вам знаком. Нам удалось заманить Никиту на запись подкаста Python Junior, прямо в ходе которого и была создана заявка на доклад.

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

Как учить людей программированию и радоваться жизни


Лектор муторно бубнит, объясняя написанный на доске термин. Ваш сосед рисует что-то на парте. От сна вас спасает только необходимость записывать каждое слово лектора. Знакомо? К сожалению, процесс обучения не сильно изменился. Скучные лекции превратились в скучные вебинары, скучные тесты превратились в скучные онлайн-тесты, скучные задачи превратились в скучные и бесполезные задачи.

Илья Лебедев опытный разработчик на Python, создатель обучающей платформы devman.org. Как соорганизатор MoscowPython уже несколько лет развивает и преподает на learn.python.ru. В своем докладе Илья поднимет вопрос образования программистов, с которым все очень не очень. Причем, вообще. Простой способ найма джуниоров из выпускников конкретного вуза, факультета или специальности не работает. Илья на основе своего опыта попробует объяснить, какие сложности возникают при обучении разработке, и даст советы, что делать, чтобы повышать свою квалификацию и помогать сделать это подчиненным.

Refactoring in Python: design patterns and approaches


Tin Marković из компании Kiwi.com (Чехия) поделится опытом организации огромного количества чрезвычайно сложного кода на Python. Как навести порядок, как обновлять код, не давая развиться новому бардаку, и в целом придерживаться высоких стандартов в кодовой базе. Всё это как мы любим на реальных примерах и личном опыте.

Pylint изнутри. Как он это делает


Максим Мазаев разрабатывает на Python в ЦИАН, интересуется внутренностями языка, асинхронностью и функциональным программированием. Его доклад перекликается с докладом Никиты Соболева про линтеры, но будет ориентирован на один основной инструмент, в котором зато разберемся основательно. Вооружившись этими знаниями, применим их во имя повышения качества кода — напишем свой плагин для Pylint.

Создание DSL-компиляторов на Python


Использование небольших языков программирования для отдельных предметных областей (DSL) позволяет бороться со сложностью программных систем, когда это нужно. К следствие возникает задача быстрого прототипирования DSL-компиляторов. Например, перед Петром Советовым из МИРЭА эта задача возникла в контексте ускорения процесса разработки специализированных процессорных ядер на FPGA. Об этапах и впечатляющих результатах работы Пётр расскажет на Moscow Python Conf ++.

Распространенные ошибки в архитектуре Django-приложений


Алексей Половинкин из Agima ставит амбициозную цель доклада — показать командам бэкенд-разработки, как выстраивать архитектуру Django-приложений, как не споткнуться о сотню подводных камней и не просрочить все дедлайны. Рассмотрим примеры наиболее частых ошибок команд на начальном этапе разработки. Обсудим, как проектировать архитектуру Django-приложений, почему следует использовать распределенную архитектуру и держать статику подальше от Django. На забудем про рефакторинг, затронем много важных вопросов, познакомимся с опытом разработчиков Agima.

Машинное обучение, искусственный интеллект и визуализация данных


Машинное обучение и Python — стойкая ассоциативная пара. И, конечно, на Moscow Python Conf++ не обойдется без докладов обо все об этом.

Как внедрить современный ML в суровый legacy


Когда речь идет об автоматизации ML-моделей, чаще всего имеется в виду, во-первых, новые проекты, во-вторых, Jupyter и какая-то среда вокруг него. Этот подход не годится для системы аналитики в банке, где, как правило, много легаси.

Однако, Олегу Мангутову удалось подружить современный Machine Learning со средой, где в ходу Oracle и SOAP, с помощью универсального клея — Python. Главный вывод этого доклада, на мой взгляд, в том, что обычный разработчик при должном усердии может внедрить алгоритмы машинного обучения в существующие проекты, не переписывая всё с нуля и не изучая досконально, как работает Oracle. А польза от этого может выйти колоссальная, разработанным интерфейсом смогут пользоваться живые бизнес-пользователи.

Theory of Neural Networks


Beau Carnes имеет огромный опыт преподавания на IT темы и сейчас готовит новый курс по глубокому обучению. Его доклад будет разбит на две части (обед посередине для переваривания знаний). В первой части доклада затронем базовые понятия: обучение с учителем и без; нейронные сети для прогнозирования; градиентный спуск. Обсудим, чем методы глубокого обучения отличаются от традиционных методов машинного обучения, и разберемся с ними, не ограничиваясь рамками фреймворков.

Во второй части выступления нас ждет live-coding в Jupyter Notebook. Бо прямо на ходу на чистом Python с нуля создаст нейронную сеть, которая обучится и распознает…, а вот, что распознает, узнаете 22 октября.

Как защитить алгоритм машинного обучения от Adversarial примеров


Когда мы используем для машинного обучения публичные данные, на приходится рассчитывать, что они будут полными и чистыми. Однако, как легко заметить на примере Google переводчика, данные могут выглядеть как правильные, а на самом деле вместо корректного перевода научить систему неожиданным интерпретациям. Это один из вариантов adversarial примера.

Специалист по анализу данных из Digital Security Сергей Дудоров подробно познакомит нас с этой проблемой, расскажет о методах нападения, защиты и тестирования алгоритмов машинного обучения на предмет противодействия таким манипуляциям с использованием библиотек CleverHans и Adversarial-robustness-toolbox.

Python Virtual Assistant


Олег Пличко обещает наглядно продемонстрировать, что можно создать чат-бота с искусственным интеллектом, используя распространенные инструменты: TensorFlow, Celery, Django. Из доклада узнаем, как сделать своего виртуального ассистента действительно полезным, и увидим пример одного очень интересного чат-бота, который многим из нас может пригодиться в будущем. Сможем задать Олегу все свои вопросы про ботов и когнитивные сервисы.

Jupyter и PySpark на Hadoop для анализа больших данных


Машинное обучение — это новая, быстроразвивающаяся область, тут еще не так много устоявшихся практик. Поэтому каждый data scientist ставит много экспериментов и хочет делать это быстро. Хорошо, если это простые гипотезы типа, достаточно ли данных и корректны ли они. А что, если нужно применить сложную самописную функцию к большому количеству объектов? К тому же, все задачи необходимо решать на продакшн-кластере, на котором работают еще человек 50.

Павел Тарасов расскажет как действительно быстро проверять сложные гипотезы, используя минимальное количество инструментов и кода. Jupyter и PySpark в данном случае то, из чего можно собрать стенд, и не тратить неделю на подготовку окружение, как это часто происходит с большими данными, ведь они же Большие.

Конференция пройдет в Инфорпространсте, небольшой зал будет выделен под user-generated content. То есть митапы, который может собрать любой желающий — главное, чтобы нашлись единомышленники. Организоваться можно будет и на месте, но если записаться заранее, то попадешь в расписание.


Разное: тестирование, безопасность, DevOps


Дальше доклады-одиночки, они не входят в большие секции, но решают поставленную задачу разнообразия. Темы, кстати, очень важные и интересные, одна социальная инженерия чего стоит, или вот «гид по хакерству».

A Hacker«s Guide to Securing Python Web Applications


Надеюсь, что ваши веб-проекты никогда не подвергались атакам и не были взломаны, но скорее всего кто-нибудь из ваших знакомых сталкивался с их печальными последствиям. Наш коллега, один из организаторов PyCon Nigeria, Eyitemi Egbejule утверждает, что, вооружившись практиками безопасного кодирования и кое-какими полезными библиотеками, можно навсегда забыть об уязвимостях в веб-приложениях на Python. Опираясь на большой опыт в аудите безопасности веб-проектов Eyitemi расскажет, какие ошибки чаще всего допускают разработчики сетевых сервисов, где искать уязвимости в первую очередь, и какие из них быстрее всего закрывать. Не обязательно это будет софт, проблемы могут быть в логике или в использовании распространенных, но неправильных настроек по умолчанию.

Мы надеемся, что этот доклад позволит разработчикам по-новому посмотреть на свой код и даже, возможно, начать применить советы прямо тут же на конференции.

Эффективная Selenium-инфраструктура


Используете Selenium для автоматического тестирования, но устали бороться с его тормозами и падениями? Тогда мастер-класс Ивана Крутова (Aerokube) по эффективной инфраструктуре Selenium для вас.

На мастер-классе Иван обещает показать, как в несколько простых шагов с нуля развернуть кластер Selenium на основе opensource-проектов Selenoid и Ggr, позволяющих заменить морально устаревший Selenium Grid и перестать мучиться с Selenium. Вы увидите, как легко можно записывать видео исполняющихся тестов, добавлять новые версии браузеров и смотреть логи в реальном времени.

Материала оказалось так много, что этот мастер-класс займет два часа 23 октября — до и после обеда, чтобы вперерыве успеть все тщательно обмозговать.

Dark Python: Social engineering and hacking with 70% success rate


Если верить самому надежному источнику информации — кино, то хакеры теперь вместо консоли используют методы социальной инженерии. Lukas Hurych из Twisto.cz в качестве хобби пробует различные способы атак на своих коллегах. Результаты ошеломительные — 70% успеха. Причем наш Python играет немаловажную роль в автоматизации этого процесса.

Лукаса поможет узнать, как выглядит враг и какие методы наиболее распространены и эффективны, чтобы мы смогли защититься от них в нашем бэкенде и UX.

Ускорение SQLAlchemy для архитектурных космонавтов


Огромное преимущество SQLAlchemy в том, что это очень распространенная ORM и одно из лучших решений для общения с базой данных на языке высокого уровня. Но иногда это удобство иногда может обернуться неожиданностями. Очевидно, это удобство иногда может обернуться неожиданностями. Алексей Старков из Qrator Labs на примере конфигурации сети фильтрации трафика с большим (сотни тысяч) числом записей покажет, как добиться высокой производительности. Для этого нужно перейти от самого наивного использования SQLAlchemy ORM к bulk-операциям и использованию SQLAlchemy Core, а подробности 23 октября в 16:00.

Хорошие и плохие практики для написания тестируемого кода


В своем докладе Дмитрий Дыгало из kiwi.com собирается обсудить подходы, которые помогут сделать код более понятным, надежным и тестируемым. Поговорим о самых разных проблемах и получим конкретные советы, например, о том, что глобальные переменные — удобная концепция, которая часто используется не там, где нужно. О том, как найти компромисс между изоляцией и скоростью в тестовой базе данных. О dependency injection и отделении выполнения от реализации на примерах из популярных библиотек. И наверняка это еще не все.

Кажется, этого более, чем достаточно, чтобы составить представление о том, что будет на конференции. За работу над программой хочу выразить благодарность всем членам Программного комитета: Владимира Филонова, Злату Обуховскую, Александра Хаёров а, Ивана Цыганова, Леонида Кальнеуса.

Путем сложных логических операций мы уже уместили все доклады в гармоничное расписание (тут pdf с визуализацией по темам). Получилось то, что мы задумали, начиная подготовку к конференции полгода назад: темы распределены по всему многообразию использования Python, разумное количество англоговорящих спикеров, есть о чем поговорить за чашкой кофе и бокалом пива на афтапати.

До встречи на Moscow Python Conf ++ 2018!

© Habrahabr.ru