Хабрахабр

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

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

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

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

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

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

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.

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

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

Django under microscope

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

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

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

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

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

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

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

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

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. К тому же, обещан интерактив, а значит будет не только познавательно, но и развлекательно.

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

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

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

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 и какая-то среда вокруг него. Этот подход не годится для системы аналитики в банке, где, как правило, много легаси.

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

Theory of Neural Networks

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

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

Как защитить алгоритм машинного обучения от 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 и отделении выполнения от реализации на примерах из популярных библиотек. И наверняка это еще не все.

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

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

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

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть