Fork me on GitHub

Июль 16–17

PyCon Russia 2017

Рус Eng

Александр Подсобляев, Rambler&Co

Про аналитику и серебряные пули

В своем докладе я расскажу о том, как мы перезапускали Рамблер/топ-100, доступных инструментах на рынке и о нашем опыте переезда с архитектуры батч-обсчета данных на обсчет данных в реальном времени. Расскажу об архитектуре двух решений и их компонентах. Кратко обсудим особенности обработки данных с помощью python в hive, фундаментальные проблемы хранения агрегатов, кратко рассмотрим преимущества и недостатки альтернатвного подхода. Подробно разберем способ обработки меняющихся событий с помощью pyspark, способы работы с различными компонентами системы из pyspark, возникающие при этом проблемы и их решение. Плюс посмотрим на результаты, скорость работы новой системы и некоторые подводные камни.

Александр Кошкин, Positive Technologies

Python на острие бритвы: PyPy project

Производительность интерпретатора PyPy достигается за счет специализации, как и везде, в общем-то. Однако, что именно подразумевается под этим и как RPython позволяет строить быстрые интерпретаторы произвольных языков? Об этом, в меру сил, я постараюсь рассказать в этот раз.

Łukasz Langa, Facebook

Gradual Typing of Production Applications

Thanks to Python's dynamic nature and minimal boilerplate, it's easy to start a project. But how do you keep it maintainable and easy to understand as it grows beyond a million lines of code? Come learn how annotating it with types makes your program better for human readers and more robust during execution. No prior Haskell experience required!

In an hour I'm going to demonstrate real world problems of big software projects that type annotations solve. The talk is going to explain how you can introduce typing to an already mature application, what is a sensible workflow to follow and how to solve common gotchas. No ducks were harmed in the making of this talk.

Lynn Root, Spotify

Tales of Tunes on Tubes: Python in Spotify's Infrastructure

Spotify's infrastructure depends heavily on Python. I'll walk through how we use the language for critical tasks while operating the biggest music streaming service worldwide. I'll highlight where Python has shined for us, where it lacks, and how we are migrating from 2.7 to 3.6.

Paul Hildebrandt, Walt Disney Animation Studios

Inside the Hat: Python @ Walt Disney Animation Studios

The Walt Disney Animation Studios has a long history of creating acclaimed animated films and continues to be an industry leader with regards to artistic achievements, storytelling excellence, and cutting-edge innovations. Since the 1923 release of "Snow White", they’ve been pushing forward technology in the art of movie making. This push continues in the modern day with classics such as Oscar-winning box office hits "Zootopia", "Big-Hero 6", and "Frozen" and Oscar-nominated hits "Moana", "Wreck-It Ralph", "Tangled", "Bolt", "Treasure Planet", and "Dinosaur".

«One of the most common questions I get when attending Python conferences is "Why are you here?" People seem confused that technology, especially Python is used in the making of animated films.»

Paul will give you some background on the Walt Disney Animation Studios and talk about where specifically Python comes into play.

Александр Сибиряков, Scrapinghub

Scrapy internals

Scrapy — это хороший пример современного асинхронного приложения. Более того, это швейцарский нож, совмещающий в себе всякий функционал: Item pipelines, HTML/CSS селекторы, Middleware, поддержку нескольких сетевых протоколов, останов/продолжение с момента остановки и многих других. В этом докладе я расскажу о том, как обработка данных выглядит изнутри Scrapy, архитектура очереди модуля загрузки контента и других компонент, необходимых для ее отладки: Scrapy shell, telnet консоль, отладчик потребления памяти.

Scrapy это 100% асинхронный фреймфорк для веб-скрэпинга, реализованный на базе Twisted event loop и 21 тысячью звезд на GitHub’е!

Александр Швец, Marilyn System

PyWat. А хорошо ли вы знаете Python?

Все мы, Python-разработчики, с обоснованным недоверием относимся к другим языкам программирования — никто же не спорит, что Python круче всех! А с каким удовольствием можно постебаться над JavaScript или Ruby за их неочевидность и магию. Но так ли всегда очевиден наш родной Python в своем поведении? Не подведет ли он в самый ответственный момент? Давайте посмотрим!

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

Михаил Юматов, ЦИАН

Тотальный контроль производительности

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

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

Александр Мокров, Positive Technologies

Gevent — быть или не быть?

Когда Python был маленький, совсем еще второй, то не было в нем асинхронности и её реализовывали как могли. Одним из сопутствующих продуктов таких начинаний стал пакет greenlet и основанная на нем библиотека gevent, которая используется в различных проектах и по сей день. О ней и будет мой доклад, о том, что у неё под капотом и для чего она может быть полезной. Я приведу архитектурные решения по построению асинхронного RPC на основе gevent, и расскажу о проблемах, с которыми можно столкнуться при её использовании. В завершение покажу, как то же самое можно реализовать стандартными средствами современного Python (библиотека asyncio), и сравню эти подходы.

Андрей Степанов, Тинькофф Банк

Мастер-класс «Распознавание речи на Python без PhD»

Пока стримы говорящих друг с другом Google Home штурмуют топы Twitch-а, а исследователи из Microsoft Research добиваются уровня распознания речи, сравнимого с человеческим, нам, программистам, остается только догадываться, как это устроено под капотом. Мы привыкли к тому, что такие технологии могут позволить себе лишь крупные компании с гигантскими объемами данных и десятком-другим исследователей со степенью PhD. Но это уже давно не так!

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

Ольга Сентемова, Тинькофф Банк

Детские болезни live-чата

Telegram, Viber, Whatsapp, социальные сети — все это давно стало необходимым в работе системы поддержки клиентов. Это значит, что более требовательными к масштабируемости и нагрузке становятся платформы, которые реализуют взаимодействие по текстовым каналам связи. Сегодня с нашим live-чатом работают около 50 операторов одновременно, а всего мы обслуживаем более 10000 чатов в день.

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

Александр Хаёров, Ingram Micro (ex Parallels)

Amazing AppEngine

В докладе я познакомлю аудиторию с одним из незаслуженно малоизвестных сервисов Google Cloud Platform — Application Engine для Python. Кроме традиционного обзора сервиса по устройству и функционалу, я опишу наш двухлетний опыт использования, плюсы и минусы. Слушатели узнают тонкие моменты и получат знания для дальнейшего применения по размещению своих проектов в облаке по концепции PaaS.

Nina Zakharenko, Venmo

Elegant Solutions for Everyday Python Problems

Are you an intermediate Python programmer who becomes frustrated by copy and pasting or duplicating code? Luckily, the Python programming language provides us with a unique set of tools to make our code more elegant, readable, and reduce duplication. In this talk, I’ll share common anti-patterns in python programs and show you practical pythonic solutions for supercharging your code with tools like Decorators, Context Managers, Mixins, and Lambdas.

Кирилл Борисов, Яндекс

Python of Things

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

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

Игорь Новиков, Scalr

Write once run anywhere — почём опиум для народа?

Хоть разработка на Python давно и прочно сместилась в сторону серверного сегмента, десктопные приложения на Python тем не менее остаются актуальными. Более того, с ростом производительности процессоров, python-приложения стали возможностью сократить финансовые, людские и временные затраты на выпуск десктопных версий. И наиболее интересным моментом в этом становится мультиплатформенность таких приложений. Данный доклад и посвящен мультиплатформенным тулкитам и проблемам, связанным с ними.

Надежда Миргородская, Яндекс

How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со вкусом питона

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

Хорошо, если для тестирования производительности хватает простых инструментов вроде ab или wrk. А если нужно реализовать более сложный сценарий — что выбрать? Jmeter — ведь под него так много плагинов? Tsung - он ведь так легко масштабируется? Gatling - у нас ведь не только HTTP? А почему бы не написать сценарий нагрузочного теста на Python?

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

Николай Марков, Aligned Research Group

Что такое serverless-архитектура и как с ней жить?

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

Андрей Власовских, JetBrains

Что может Python на микроконтроллерах

Микроконтроллер — это процессор, память и ввод-вывод, размещённые в одном чипе. Их в мире десятки миллиардов штук: микроконтроллеры везде от часов до автомобилей. Софт для их крохотных ресурсов пишут в основном на C, а таким языкам, как Python, тут делать нечего. Точнее, так было до 2014 года, когда появился MicroPython — реализация Python для микроконтроллеров.

Как вообще удалось заставить Python работать на чём-то с всего лишь 16 килобайт памяти? Сильно ли пришлось урезать для этого язык? (спойлер: нет!) Что интересного можно делать с железками и MicroPython? Разные сенсоры, акселерометры, светодиоды, моторчики — вот это всё.

Артём Малышев, независимый разработчик, Нижний Новгород

Как написать свой debugger

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

Maciej Fijałkowski, PyPy

Why is Python slow?

In this talk, I will cover one of the usual topics of discussions of deficiencies of the Python language, notably it's speed.
We've spent last decade improving on the performance of the language (but not the default implementation). What we've learned so far is not the common interpretation of that question - things like dynamic dispatch, dynamic typing and interpreter can all be worked around.
What we've learned are the places in the Python language which make unnecessary string copies, but are easier to write, a lot of "pythonic" constructs that cannot be implemented efficiently and a lot of quirks that make some constructs slow for no good reason. Additionally we're overwhelmed by the sheer size of the "simple" language and the necessity of supporting C extensions.
This talk will cover detailed view of those problems and some potential remedies.

Елизавета Шашкова, JetBrains

Отладка в Python 3.6: Быстрее, Выше, Сильнее

В декабре 2016 года была выпущена новая версия языка — Python 3.6. Этот релиз включил в себя много новых интересных возможностей. Некоторые из этих возможностей довольно просты в использовании: например, Python-разработчик может прочитать про f-strings, и сразу же начать их использовать в своих программах. Однако некоторые появившиеся возможности не являются столь очевидными, и одна из них - новый интерфейс для вычисления фреймов.

Этот интерфейс был реализован в CPython благодаря PEP 523, и он позволяет определять для интерпретатора собственную функцию для вычисления фреймов. На первый взгляд довольно сложно понять, где это можно использовать в повседневной жизни, но зато без труда можно понять, как построить на этой основе быстрый отладчик.

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

Алексей Кузьмин, ЦНС

Память и Python. Что надо знать для счастья?

Вы хотите знать, как устроена работа с памятью в Python? Вы хотите знать, почему ваши приложения потребляют ее так много? А может они вообще «текут»?

Если вы ответили хотя бы на один вопрос «ДА!», приходите. Если вы ответили «НЕТ!», тем более приходите, ПАМЯТЬ – ЭТО ОЧЕНЬ ВАЖНО!

Олег Чуркин, Rambler&Co

Микросервисы наносят ответный удар!

Вот уже более 10-ти лет тема микросервисной архитектуры будоражит IT-индустрию. Несмотря на это, многие разработчики еще не «распилили свой монолит» и не «катают контейнеры в облаке», но наверняка очень этого хотят. В своем докладе я расскажу, какие требования к процессу разработки и инфраструктуре проекта необходимо выполнить, чтобы относительно быстро, эффективно и вполне безболезненно попробовать микро(сервисы). Поговорим о том, с какими проблемами придется столкнуться питонисту при использовании микросервисов в продакшене. Выясним, как правильно выбрать фреймворк или утилитарную библиотеку под определенный тип задач. Расскажу, как обеспечить отказоустойчивость и правильно реагировать на ошибки от сторонних интеграций. Пройдемся по списку классических ошибок разработчиков и немного затронем тему кэширования данных.

Иван Цыганов, Positive Technologies

(Без)опасный Python

Каждый разработчик надеется, что его приложение неуязвимо. Но все мы знаем, что неуязвимых приложений не бывает, бывают плохо проверенные. В этом году Open Web Application Security Project (OWASP) опубликовал очередной TOP-10 наиболее критических уязвимостей веб-приложений. Я расскажу, что это за TOP-10 и что изменилось за последние 4 года с момента публикации предыдущей версии. Объясню, какие типы уязвимостей находятся в зоне ответственности разработчика, а на какие мы напрямую повлиять не можем. Покажу, как популярные фреймворки помогают нам разрабатывать безопасные приложения, и в каких ситуациях фреймворк ничем нам не сможет помочь.

Иван Меньших, Лев Константиновский, RaRe Technologies, WorldSense

Gensim — тематическое моделирование для людей

В компаниях с течением времени копится всё больше и больше текстов: почта, сообщения из чата, логи сервисов и так далее, из них можно извлечь профит. В докладе расскажу про то, что вообще такое тематическое моделирование (что такое «темы» и как их извлечь из множества текстов) и как мы можем применить его к тем данным, которые у нас есть (и не только). Расскажу про фреймворк Gensim и продемонстрирую его возможности.