Fork me on GitHub

Июнь 2–3

PyCon Russia 2014

Рус Eng
Brian Curtin,

director of the PSF, software engineer at Rackspace

Python 3 and the Road Ahead

Learn where we're at with Python 3, where we're going, and how we'll get there.
The talk will include a recap of Python 3 discussions from the Python Language Summit as well as some of the ideas that came out of it. There's a lot of talk around the community about what to do, and there are some plans to move forward. Find out what the future holds for Python 2.7 and the rest of the Python 3 series.
You'll also find out about some great resources to help your own projects along the way.

Видео и презентация →
Armin Ronacher,

Flask and Jinja2 creator, Pocoo Team founder, PSF member, developer at Splash Damage

Writing Secure APIs

An introduction into writing secure APIs with Python. This covers both integral API design for internal APIs as well as remotely exposed APIs; both high level basics such as use of protocols (SSL and OAuth) as well as how to structure internal security contexts. On top of that it shows how to take advantage of Python features to make writing secure code easier.

Видео и презентация →
Hynek Schlawack,

CPython & Twisted core dev, PSF member, head of infrastructure and board representative at Variomedia

The Sorry State of SSL

Those web pages with shiny lock icons boasting that your data is safe because of “256 bit encryption”? They are lying. In times of mass surveillance and commercialized Internet crime you should know why that’s the case. This talk will give you an overview that will help you to assess your personal security more realistically and to make your applications as secure as possible against all odds.
The rule of thumb for people without degrees in cryptography on securing data on the Internet is “GPG for data at rest. TLS for data in motion”. And it’s actually a very good rule everyone should follow.
The only kicker though is that configuring (and using!) TLS properly is not as simple as it sounds and if you’re not diligent as a user, developer, and ops engineer, you can easily compromise your data’s security despite best effort of everyone else.
This talk will be multifaceted; you will learn:
- how SSL and TLS roughly work and why their state is sorry,
- server- and client-side duties for best possible security,
- what alternatives you have for using TLS in Python,
- things to keep in mind when configuring servers,
- and what perils outside your control still can trip you up.
In other words, the leitmotif is to show you the most common traps you should know about when using and deploying applications relying on TLS for transport layer security and how to avoid them.

Видео и презентация →
Honza Král,

Django developer and enthusiast, python developer at Elasticsearch

From __icontains to search

Good search experience is about more than just finding matching substring, and in this talk I would like to present how it actually works. We will build out a model of a search engine and analyze the result - what sort of functionality and characteristics will the resulting engine have? What features can we implement on top of it?

Most of the talk will be generic but there will be some concrete examples from Elasticsearch. At the end of the talk there will be time for questions regarding anything search related.

Видео и презентация →
Simone Soldateschi,

developer support engineer at Rackspace

Auto scaling on the Cloud the right way

Horizontal scaling on the Cloud is the way to adapt resources to load of systems. The Cloud allows users to scale virtually indefinitely, or enough for their needs.
This way the number of servers follows trend of requests, and TCO (Total Cost of Owneship) of IT infrastructure can be minimised. Nonetheless companies can avoid dealing with capacity planning and pre-provisioning issues.
This talk will show how to use Python and Rackspace/OpenStack API and SDK to implement an event-based scaling solution (software released under the open-source Apache License).
The outline of this talk will be:
- Auto scale (Why, What, When, How);
- Leveraging Cloud Monitoring to trigger Auto Scale policies;
- Configuration management system (Ansible and playbooks) to deploy applications;
- "Go Live!", "Update" and "Rollback" patterns.
Outcome: Knowledge of scaling techniques, Cloud patterns and issues.

Видео и презентация →

Александр Кошелев, тимлид в Яндексе

Python-разработка в части Яндекс-вселенной

Что выбрать – системные пакеты или выкатка через git pull? Использовать virtualenv или нет? Так ли удобны PyPI и pip? Что делать, когда много библиотечного in-house кода? Как справиться с большим количеством сервисов в активной разработке? Я расскажу про то как в нашей части Яндекса мы разрабатываем сервисы на Python. Как мы пакетируем, тестируем и выкатываем проекты. Расскажу о проблемах и компромиссах. Поделюсь полезным опытом, который мы успели накопить за много лет. Мой доклад будет интересен всем, кто так или иначе занимается выкаткой на один или много серверов, больших и не очень проектов, сложных сервисов и вообще любого python-кода.

Видео и презентация →

Андрей Светлов, Python Core Developer или просто committer в hg.python.org. В текущее время архитектор в LevelUp

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

Вы запилили нечто очень полезное и даже выложили на github.Только этим никто не пользуется.
Разбираем проблемы, ищем решение.
Чтобы на поделку обратили внимание нужны:
-- Социальность и публичность
-- Документация
-- Тесты
-- Система контроля версий (версии, релизы) и багтрекер
-- setup.py, pypi и readthedocs

И, наконец, Программный Код.
-- Ясность интерфейсов и абстракций
-- Четкое разделение на Public API и детали реализации (напишешь пером - не вырубишь и топором)
-- Docstrings
-- Выбор хороших имен классов-методов
-- Естественная полнота Public API
-- Следование устоявшимся соглашениям
-- магические методы
-- collections.abc
-- предметная область или почему нельзя перегружать "+" для матрицы.

Каждый пункт снабжен примерами и антипримерами.

Видео и презентация →

Андрей Власовских, разработчик IDE PyCharm в JetBrains, автор библиотек funcparserlib и iterpipes.

Многозадачность в Python и других языках

В Python существует долгая традиция заимствования механизмов многозадачности из других языков. Вначале это были C и окружение POSIX, затем Java и C#. В докладе будет рассказано о том, как устроены и чего позволяют достичь механизмымногозадачности в Python, включая новые механизмы Python 3 concurrent.futures и asyncio. Мы рассмотрим какие механизмы подходят для задач, ограниченных по CPU и IO, в частности, какими преимуществами и недостатками обладают механизмы в Python. Наконец мы поговорим о том, какие подходы к многозадачности есть в языках Erlang и Go и насколько они применимы к Python.

Видео и презентация →

Константин Лопухин, Технический директор в ЧТД, помог возникновению psycopg2cffi

На что уходит память?

Я хочу поговорить о проблеме потребления памяти приложений на Python - как понять что происходит, и что делать, когда оно больше чем нам хотелось бы. Сначала мы посмотрим, как вообще Python работает с памятью внутри, как он взаимодействует с ОС, может ли он отдавать память. Затем рассмотрим инструменты для анализа потребления памяти, и научимся интерпретировать их результат. Разберем типичные ошибки, которые приводят к излишнему потреблению памяти, рассмотрим некоторые приемы, которые могут позволить его уменьшить даже при отсутствии явных ляпов. В отличие от темы анализа производительности, на тему анализа потребления памяти на удивление мало материала, в основном только ответы на stackoverflow, поэтому хочется попробовать систематизировать то, что удалось узнать.

Видео и презентация →

Алексей Малашкевич, Александр Козловский,

Pony ORM - маппер нового поколения

Pony ORM - маппер, который позволяет работать с базой данных с помощью генераторных выражений языка Питон.
С помощью такого подхода Pony позволяет формулировать очень компактные и понятные запросы, которые автоматически транслируются в оптимизированный SQL.
Pony обладает графическим редактором ER диаграмм - удобным инструментом для создания и редактирования модели данных.
В докладе разработчики Pony ORM расскажут про процесс перевода объектно-ориентированного запроса в запрос на языке SQL, о том, какие оптимизации Pony применяет на каждом этапе обработки запроса, какие сложности стояли при разработке высокопроизводительного ORM и как Pony ORM облегчает и ускоряет разработку приложений.

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

Видео и презентация →

Андрей Светлов, Python Core Developer или просто committer в hg.python.org. В текущее время архитектор в LevelUp

Как писать для asyncio. Советы от разработчика библиотеки.

В Python 3.4 вошла стандартная библиотека asyncio для асинхронного сетевого программирования. Она строилась с учетом опыта использования Twisted и Tornado, авторы этих библиотек принимали участие в обсуждениях и выработке концепций. В результате получилось очень неплохо. Тем не менее пока что мало информации по правильному использованию и написанию кода для asyncio -- по сути есть только документация и несколько постов в блогах.
Лекция включает
Обзор базовых примитивов и принципов построения пользовательского кода.
Какие части библиотеки предназначены для "простого программиста"
Что не нужно использовать, т.к. некоторые API слишком низкоуровневые и нужны только создания "человеческих" библиотек.

Видео и презентация →

Денис Чернилевский, Руководитель группы тестирования рекламных технологий в Яндексе

Понятные и расширяемые отчеты для Python+PyTest из коробки

В любом проекте, в котором есть автоматизированное тестирование, люди сталкиваются с проблемой построения удобных, понятных, легко расширяемых и красивых отчетов для тестов. При этом часто команды не используют стандартный xUnit формат и его представление по-умолчанию в системах CI, например в Jenkins, а пишут свой формат отчетов. Проанализировав требования некоторого числа команд тестирования, мы внутри Яндекса разработали инструмент построения отчетов Allure Framework, который сейчас является open source проектом. Он может применяться в разных системах тестирования и языках программирования, с помощью механизма адапторов. В этом докладе я на примерах расскажу об основных фичах этого инструмента и о том, как из коробки внедрить Allure отчеты с помощью готового python адаптора, если вы пользуетесь Python + PyTest.

Видео и презентация →

Алексей Лавренюк, Яндекс. Занимается нагрузочным тестированием в отделе рекламных технологий. Один из участников open source проекта Яндекс.Танк.

Нагрузочное тестирование с помощью Яндекс.Танка

Мы поговорим о нагрузочном тестировании, open source инструменте Яндекс.Танк и о том, как заточить его для своих нужд и автоматизировать процесс тестирования с помощью Python. Доклад рассчитан на разработчиков и системных администраторов, которые предвидят или уже столкнулись с проблемами производительности и хотят познакомиться с процессом нагрузочного тестирования и инструментами. Люди узнают о процессе нагрузочного тестирования, о том, подходит ли Яндекс.Танк для выявления проблем производительности их сервисов и о том, как расширить Яндекс.Танк для автоматизации и решения своих специфических задач.

Видео и презентация →

Александр Щепановский, автор funcy, cacheops и ещё нескольких библиотек.

Почему Python нужен (был) свой underscore

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

Видео и презентация →

Виталий Глибин, ведущий frontend разработчик в HeadHunter, преподаватель Школы программистов HeadHunter

Использование сервис-ориентированной архитектуры (SOA) для построения сложных веб проектов

Расскажу о том, что такое SOA, какие проблемы решает, а какие добавляет. Как мы готовим SOA в самом высоконагруженном job-портале рунета. Frontik и tortik - настоящее и будущее наших frontend-фреймворков на базе Python Tornado. Подробный рассказ о tortik - архитектура, возможности, тонкости. Покажу примеры использования, удобство отладки и профилирования как в development окружении, так и в production.

Видео и презентация →

Кирилл Борисов, архитектор в БАРС Груп

Behavior Driven Development in Python

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

Видео и презентация →

Роман Иманкулов, разработчик Doist Inc

Python для анализа данных.

В последнее время анализ данных стал горячей темой. В этом плане python разработчики по сравнению с остальными кастами программистов находятся в выгодном положении — в их распоряжении есть как несомненно прекрасный язык общего назначения, так и множество инструментов для научной обработки данных. О последних многие слышали, но мало кто знает, как этим пользоваться, и какую пользу они могут принести простым смертным. В докладе я познакомлю слушателей с основными инструментами для обработки данных: всемогущим ipython, библиотеками numpy, scipy, pandas и scikit-learn. В ходе ознакомления с ними на простом примере мы выясним, какую пользу для себя начинающий python аналитик может извлечь прямо сейчас. Доклад расчитан как на начинающих, так и на опытных разработчиков на python, которые, тем не менее, не имели серьезного опыта анализа данных, хотят попробовать, но не знают с чего начать.

Видео и презентация →

Михаил Коробов, работает в ScrapingHub, входит в NLTK Team, коммитер в Scrapy, автор pymorphy2 и других open-source проектов.

Извлечение информации из веб-страниц

Рассказ о том, как извлеченть данные из веб-страниц с использованием Python:
- как извлечь информацию из одного-единственного сайта;
- как сделать это без написания xpath, css селекторов и т.д.;
- как извлекать информацию, если структура сайта неизвестна заранее;
- когда стоит применять методы машинного обучения и как это делать;
- какие инструменты доступны на Python.
Доклад рассчитан на тех людей, кому хочется извлекать какую-то структурированную информацию из веб-страниц или из текста. Это могут быть задачи информационного поиска, анализа данных, составления каталогов, получения информации для каких-то исследований и т.д.
Какую пользу слушатели получат?
"Ручной" разбор веб-страниц через XPath / CSS селекторы - не единственный инструмент. Возможно, некоторые задачи, которые раньше казались очень сложными, покажутся вполне решаемыми.

Видео и презентация →

Дмитрий Овчинников, Wargaming.net

Разработка мобильных приложений на Python

Мобильная разработка на Python
Python для мобильных девайсов
Обзор похожих продуктов
Kivy — птица или фрукт?
Один код на разных платформах (Не Java)
Знакомимся с фреймворком
Как это работает?
Разметка UI на "почти" python
Сборка приложения с помощью Buildozer'а

Видео и презентация →

Виктор Коцеруба, Имхонет

Выжимаем максимум из шаблонизатора

Основное, чему в выступлении уделяется внимание – возможность просчета многих вещей, порождаемых метапрограммированием, заранее. Пример для наглядной демонстрации - hamly, шаблонизатор, в несколько раз обгоняющий jinja2 (который обычно считают самым быстрым из доступных на python). Будут рассмотрены несколько типовых кейсов применения оптимизаций и общая логика поиска новых.

Видео и презентация →

Алексей Малашкевич, Александр Козловский,

Мастер-класс: пишем интерактивное приложение для обмена фотографиями используя Pony ORM.

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

Роман Иманкулов, Михаил Коробов, Антон Патрушев

Мастер-класс Python против вандалов. Анализ данных на практике

Мастер-класс продолжает и расширяет доклад "python для анализа данных". Здесь под чутким руководством инструкторов все желающие смогут воспитать собственный алгоритм, несущий добро. Любой участник мастер-класса сможет попробовать обучить python автоматическому распознаванию вандальных правок в википедии, а благодаря сотрудничеству с проектом kaggle.com, сравнить его эффективность с результатами других участников, и побороться за звание "лучший дата-аналитик pycon.ru".