Заявки на доклады

Поиск по тегам:

DevOps, контейнеры и развертывание

Запускаем Python-приложение в облака

Евгений Слезко

Cloud-Native-подход победным маршем шагает по планете, и можно с уверенностью утверждать, что за ним будущее. Многие IT-компании в России уже используют публичные облачные сервисы либо разворачивают собственные приватные облака для своих продуктов. Каждому современному Python-разработчику необходимо иметь навыки построения приложений, готовых к работе в облаке.

В своем докладе я расскажу об основных проблемах традиционных Enterprise-приложений и о том, как использование облачных вычислений помогает эти проблемы решать. Мы обсудим особенности процесса разработки и развертки Cloud-Native-приложений на языке Python: на что стоит обратить внимание, и какие существуют подводные камни.

API
,
Python
,
Микросервисы, SOA
,
Масштабирование с нуля
,
Технологии виртуализации и контейнеризации
,
Непрерывное развертывание и деплой
Доклад принят в программу конференции

AI/ML и визуализация данных

Эффективное использование Jupyter и PySpark на Hadoop для анализа больших данных

Павел Тарасов

Одно из самых важных в работе data scientist'а и аналитика - уметь быстро проверять гипотезы. Есть много информации, курсов, конкурсов, как построить хорошую модель. Но кому будет нужна ваша модель, если на ее построение уйдут месяцы? А если вы не сможете быстро из модели собрать прототип?

Бывают простые гипотезы:
* Есть ли нужные данные?
* Как их загрузить из другого источника?
* Достаточно ли их, и корректны ли они?
* Можно ли на них обучить модель, каково ее качество?

Бывают гипотезы сложнее:
* Что, если нужно применить сложную самописную функцию к большому количеству объектов?

А теперь еще добавим, что все задачи необходимо решать не просто на продакшн-кластере, но там, кроме вас, работают еще человек 10 (или 50...).

Я расскажу, как действительно быстро проверять такие гипотезы на Jupyter и PySpark, какими дополнительными инструментами пользоваться и как не подраться с продом и коллегами за ресурсы.

Python
,
Hadoop
,
Machine Learning
Доклад принят в программу конференции

Theory of Neural Networks

Beau Carnes

You can understand deep learning, even without calculus! After explaining the key concepts of deep learning, I’ll live code a neural network without using any frameworks. This will help you understand the concepts at a deeper level.

Learn how machines learn using deep learning. Instead of teaching about a framework such as Karas or TensorFlow, I’ll give an overview of the methods behind those frameworks.

In the first part of this talk I will cover topics like: - deep learning vs. machine learning - supervised and unsupervised learning - using neural networks to make predictions - gradient descent.

During the second part off this talk I will use Jupyter Notebook to create a neural network with Python. I’ll be live-coding and explaining each line as I go.

As long as you have basic knowledge of a programming language, you should be able to follow along. No advanced math required.

Machine Learning
Доклад принят в программу конференции

Система ML-моделирования финансовых показателей

Олег Мангутов

1. Заказчик системы - крупная компания, ведущая инвестиционную и кредитную деятельность. Моделирование финансового состояния (платежеспособности) заемщиков - неотъемлемая часть работы такой организации.
2. Как правило, традиционно такие задачи решаются через построение моделей в Excel. Недостатки этого подхода - трудоемкость и возможные человеческие ошибки. Наша команда предложила решение по построению ML-моделей, что существенно сокращало время и вероятность ошибки моделирования.
3. На языке Python и библиотек numpy, pandas, scikit-learn, keras, tensorflow было реализовано аналитическое ядро - библиотека, позволяющая строить финансовые модели компаний. Отдельного внимания заслуживает собственный модуль AutoML, отвечающий за оптимальный отбор факторов и алгоритмов.
4. Для интеграции библиотеки в банковскую платформу на Python была реализована оболочка, позволяющая интегрировать ML-модели в систему управления cash flow-моделями банка. При помощи Tornado и pywin32 реализован процесс обучения и прогнозирования моделей на распределенных нодах (под управлением Windows Server).
5. Отдельным слоем идет библиотека работы с БД Oracle, при помощи которой был организован репозиторий моделей с возможностью отслеживать историю обучения, переобучения, изменения качества модели со временем.
6. В полученной системе мы добились того, что ML-модель может сконфигурировать и обучить непосредственно бизнес-пользователь, а не дата-сайентист. Инструмент для этого - удобный UI, а не ячейки jupyter notebook.

Фреймворки
,
Python
,
Oracle
,
Микросервисы, SOA
,
Организация доступа к базам данных, ORM, собственные драйвера
,
Распределенные системы
,
Архитектура данных, потоки данных, версионирование
,
Архитектуры / другое
,
Machine Learning
Доклад принят в программу конференции

Python Virtual Assistant, или Как собрать бота с AI на простом стеке

Олег Пличко

В докладе я расскажу:
- как быстро разработать чат-бот для Facebook Messenger, используя Django;
- в чем отличие topic-led discussion и task-led pathflow;
- как обучить NN (Tensorflow) для распознавания сообщений от пользователя и отправки ответов;
- как, используя Celery, обрабатывать сложные запросы в background'е, и почему пользователи ботов готовы ждать в отличие от пользователей веб-сайтов;
- что такое контекст бота, и какие данные необходимо сохранять, а какие можно кэшировать;
- как сделать своего виртуального ассистента действительно полезным для пользователей с помощью computer vision и expert system.

Python
,
Организация системы кеширования
Доклад принят в программу конференции

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

Сергей Дудоров

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

В данном докладе будут рассмотрены методы нападения, защиты и тестирования алгоритмов машинного обучения на предмет противодействия Adversarial-примерам с использованием библиотек CleverHans и Adversarial-robustness-toolbox.

Доклад принят в программу конференции

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

Refactoring in Python: design patterns and approaches

Tin Marković

Experiences and lessons learned from tackling extremely demanding code. How to bring order to mismanaged code and elevate the code base to a standard that's acceptable in today's tech environment. Detailed inspection in three parts.

Доклад принят в программу конференции

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

Илья Лебедев

Лектор муторно бубнит, объясняя написанный на доске термин. Ваш сосед рисует что-то на парте. От сна вас спасает только необходимость записывать каждое слово лектора. На дворе 1998-й год.

Как вам такой флэшбэк? Знакомо? С тех пор прошло 20 лет, но процесс обучения не сильно изменился. Скучные лекции превратились в скучные вебинары, скучные тесты превратились в скучные онлайн-тесты, скучные задачи превратились в скучные и бесполезные задачи. Как тебе такое, Илон Маск?

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

Доклад принят в программу конференции

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

Максим Мазаев

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

Python
Доклад принят в программу конференции

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

Никита Соболев

Что будет на докладе:
- будем говорить про наш линтер https://github.com/wemake-services/wemake-python-styleguide;
- расскажу про управление сложностью;
- complexity flow: как добавление одного нового действия в строчку кода заставляет создавать новые модули;
- холиварная часть: я буду показывать кусочки кода и правила нашего линтера;
- буду заставлять людей голосовать, как им больше нравится, и показывать результаты онлайн.

Доклад принят в программу конференции

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

Пётр Советов

Сегодня небольшие языки программирования для отдельных предметных областей (DSL) широко применяются разработчиками. Подход с использованием DSL является одним из самых эффективных в борьбе со сложностью программных систем. В связи со сказанным выше возникает задача быстрого прототипирования DSL-компиляторов. Перед автором доклада эта задача возникла в контексте задачи ускорения процесса разработки специализированных процессорных ядер на FPGA. Для оперативной оценки различных вариантов создаваемой системы команд процессора необходимо быстро перестраивать соответствующим образом весь набор инструментального ПО (компилятор, ассемблер, симулятор).

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

Использование Python в качестве языка реализации, а также тщательный выбор алгоритмов, позволили получить компактное решение — реализация заняла около 300 строк. Полученный инструментарий был успешно использован для создания DSL-компиляторов нескольких процессорных архитектур. При этом данный конструктор DSL-компиляторов может использоваться для создания самых разнообразных языковых средств. Среди простых примеров можно упомянуть компактную реализацию (39 строк) разбора JSON-формата. Более полно средства DSL-инструментария используются в миниатюрном DSL-компиляторе "Уж", входным языком которого является подмножество Python, а целевой код порождается для софт-процессора на FPGA.

Python
,
Прочие языки
,
Разработка библиотек, включая open source библиотеки
Доклад принят в программу конференции

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

Алексей Половинкин

Цель доклада – показать командам бэкенд-разработки, как выстраивать архитектуру Django-приложений, как не споткнуться о сотню подводных камней и не просрочить все дедлайны.

Я расскажу, как правильно приступить к рефакторингу большого веб-приложения, а также приведу примеры наиболее частых ошибок команд на начальном этапе разработки. Кроме того, поделюсь тем, как проектировать архитектуру Django-приложений, почему следует использовать распределенную архитектуру и держать статику подальше от Django.

И еще важные темы:
- почему следует использовать REST и отказаться от шаблонов в Django;
- как работать с легаси-кодом и почему важно после получения проекта потратить время на его анализ;
- как рефакторинг hotspot API помогает освободить половину ресурсов сервера;
- почему логирование важно, и как работать в среде ELK;
- зачем хранить логи в JSON.

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

Доклад принят в программу конференции

Как обновить Python 2.7 до Python 3.6 и не умереть

Александр Полищук

Эволюция - естественное явление в мире, и Python она также не обошла стороной. В свое время Python 2.7 стал вершиной развития языка и полюбился многим. Но эволюция не стоит на месте, уже появились более новые версии Python - с 3.0 по 3.7, но в некоторых проектах все еще используется "древний" Python 2.7, хотя окончание поддержки уже не за горами. Причина тому - сложность миграции между версиями.

В данном докладе я поделюсь своей тернистой дорогой обновления, расскажу обо всех граблях и набитых шишках, но в то же время поделюсь радостью - мы это сделали!

Доклад принят в программу конференции

Тестирование и автоматизация

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

Дмитрий Дыгало

Зачастую сделать код тестируемым довольно сложно, особенно в больших legacy-проектах, в докладе вы найдете советы и подходы которые помогут вам сделать код более понятным, надежным и тестируемым. Обзор содержимого доклада:
- глобальные переменные. Удобная концепция, которая часто используется не там, где нужно;
- сайд-эффекты при импорте;
- к чему может привести злоупотребление monkeypatch'ем;
- отложенная инициализация на примере Flask;
- фабрики для приложений и их использование с pytest;
- подходы к работе с тестовой базой данных. Поиск компромисса между изоляцией и скоростью;
- подходы к ускорению выполнения тестов;

Python
,
Автоматизация тестирования
,
Юнит-тестирование
Доклад принят в программу конференции

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

Иван Крутов

Используете Selenium для автоматического тестирования? Устали бороться с его тормозами и падениями? Не спите по ночам от количества памяти, потребляемой Java? Приходите на мастер-класс по эффективной инфраструктуре Selenium!

Вы узнаете, почему эффективная работа с Selenium невозможна без использования Docker и изоляции в контейнерах. За несколько простых шагов я с нуля (без установки Java!) разверну кластер Selenium на основе opensource-проектов Selenoid и Ggr, позволяющих за чашкой кофе заменить морально устаревший Selenium Grid и перестать мучиться с Selenium.

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

Технологии отказоустойчивости и катастрофоустойчивости, бэкапы
,
Devops / другое
,
Функциональное тестирование
,
Автоматизация тестирования
,
Интеграционное тестирование
,
Тестирование мобильного ПО
,
Тестирование фронтенда
Доклад принят в программу конференции

Информационная безопасность

A Hacker's Guide to Securing Python Web Applications

Eyitemi Egbejule

Being hacked is bad for business. Chances are that we might have been hacked, or know someone who might have been hacked.

Armed with some best secure coding practices and a little help from supporting libraries, security vulnerabilities in Python Web apps can be a thing of the past.

From a hacker's perspective we would explore common security vulnerabilities in Python web applications according to the OWASP Top 10, how to mitigate them and how to incorporate secure coding standards to achieve vulnerabilities-free web application.

Защита информации
,
Тестирование безопасности
Доклад принят в программу конференции

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

Lukas Hurych

In the course of the last few years I launched a lot of different attacks in our company (60+ teammates), and with some of them, I had a success rate of 70%. From getting people’s Facebook or LastPass accounts to developing custom-written malware.

The threat that anyone can steal your customer data is a potential killer of any (financial) company and being aware of all the possible attack vectors is a must.

We will take a look at the practical examples I have executed and why Python was the best language of choice. When you want to be successful in doing social engineering you need to prepare the ultimate user experience.

Защита информации
,
Бэкенд / другое
Доклад принят в программу конференции

Базы данных и ORM

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

Алексей Старков

Для управления конфигурацией сети фильтрации трафика мы используем БД на основе MySQL и SQLAlchemy. Особенностями системы конфигурации является довольно большое (сотни тысяч) число записей, сложная структура взаимосвязей между этими записями и преобладание количества пишущих запросов над читающими.

В своем докладе я на примерах расскажу, как повысить производительность такой системы, перейдя от самого наивного использования SQLAlchemy ORM к bulk-операциям и использованию SQLAlchemy Core, добившись сокращения времени выполнения некоторых операций с нескольких десятков до пары секунд и достигнув целевой скорости обработки в 10 команд в секунду.

Базы данных / другое
,
MySQL (MariaDB, Percona Server)
Доклад принят в программу конференции

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

50 оттенков celery

Олег Чуркин

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

Доклад принят в программу конференции

Django under microscope

Артем Малышев

Из доклада вы узнаете все подробности из жизни внутренних механизмов Django от первого байта HTTP-запроса до последнего байта ответа.

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

Фреймворки
,
Python
Доклад принят в программу конференции

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

Левон Авакян

Apache Kafka широко используется в проекте World of Tanks. В своем докладе я расскажу, как мы ее используем и для каких целей, с какими трудностями сталкиваемся и как мы их решаем.

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

Доклад принят в программу конференции

Make Python fast again

Ефрем Матосян

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

Поскольку доклад построен на опыте разработки такого демона в "коробочном" продукте, доклад будет разбит на две части: ограничения и особенности разработки "коробочного" продукта и непосредственно способы оптимизации. Во второй части будет дана краткая история развития такого демона, а оставшееся время мы посвятим последовательной оптимизации самой наивной реализации.

Python
,
Бэкенд / другое
Доклад принят в программу конференции

Как выкинуть из проекта C++ код, чтобы за это ничего не было

Александр Боргардт

У любого проекта есть несколько стадий...

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

В докладе пойдет речь об истории, как начинался проект на tornado, затем для улучшения ходовых характеристик "подпилили" tornado + libev. Для асинхронной обработки сокетов и ответов базы данных и кэшей было построено решение из цепочки на tornado++ и C++ коде. Потом наступил 2018, произошли замены старых хаков на связку asyncio + uvloop + aiohttp, и у проекта не понизилась производительность.

Поговорим о том, что не надо подпиливать интерпретатор ради 20%, как бывает "прикольно", и сколько трудов стоит жить с этим решением.

Доклад принят в программу конференции

High Performance Data Processing in Python

Donald Whyte

The Internet age generates vast amounts of data. Most of this data is unstructured and needs to post processed in some way. Python has become the standard tool for transforming this data into more useable forms.

numpy and numba are popular Python libraries for processing large quantities of data. When running complex transformations on large datasets, many developers fall into common pitfalls that kill the performance of these libraries.

This talk explains how numpy/numba work under the hood and how they use vectorisation to process large amounts of data extremely quickly. We use these tools to reduce the processing time of a large 600GB dataset from one month to less than an hour.

Python
Доклад принят в программу конференции

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

Игорь Мосягин

Wagtail - это полноценная CMS на базе Django для современных веб-сайтов. Встроенная доведённая до ума админка и система типов и отношений, API, работа с изображениями и другие мелочи в совокупности помогают разрабатывать сайты с Django легко и красиво не только для вас, но и для вашего клиента.

Я расскажу про framework Wagtail, построенный на базе Django, но с удобной админкой, не приводящую в шок ваших контент-менеджеров, с удобными дополнительными батарейками, которые вы и так обычно ставите в проект с Django, и про основные подводные камни, на которые можно наткнуться, если вы будете использовать wagtail в своих проектах. В рамках доклада я пройду через базовые возможности, и мы разберём хорошие (и плохие) стороны этой CMS.

Мобильные сайты и приложения на веб-технологиях
,
Python
Доклад принят в программу конференции

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

Андрей Попов

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

Доклад принят в программу конференции