IT-новости про Python, которые стоит знать

Собрали в одном месте самые важные ссылки
и сделали Тренажер IT-инцидентов для DevOps/SRE

     13.08.2017       Выпуск 190 (07.08.2017 - 13.08.2017)       Видео

Экстремальное прототипирование

Что делать, если за неделю надо сделать MVP, но не такой, чтобы показать инвестору в лифте, а чтобы с его помощью заработать денег? В докладе мало питона (import django, requests) и много суровой реальности: сайты не нужны, про Телеграм никто не знает, программист может работать без ТЗ

     13.08.2017       Выпуск 190 (07.08.2017 - 13.08.2017)       Видео

The AJAX, The REST and The GraphQL

Рассмотрим историю того, как люди писали API для современного веба: как всё было весело и просто в начале, с какими трудностями сталкивались и какие паттерны применяли. После чего плавно подведем почему GraphQL является логичный эволюцией на возникшие трудности и посокрушаемся, что решение это не для всех

     13.08.2017       Выпуск 190 (07.08.2017 - 13.08.2017)       Видео

Rolling upgrades на примере OpenStack Keystone

Большинству разработчиков сервисов на Python приходилось менять схему базы данных в какой-то момент жизни сервиса. Эта задача настолько типична, что для неё есть отдельный подмодуль для Django. Всё становится сложнее, если приложение, как типичный микросервис, работает в нескольких экземплярах. И ещё сложнее, если допускать даунтайма сервиса нельзя. В докладе будет рассказано, как эта проблема была решена в Keystone -- сервисе аутентификации и авторизации в OpenStack

     07.07.2017       Выпуск 185 (03.07.2017 - 09.07.2017)       Видео

Анатомия баннерной системы Lamoda

В докладе рассмотрим баннерную систему, разработанную в Lamoda.

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

     07.07.2017       Выпуск 185 (03.07.2017 - 09.07.2017)       Видео

Python в первой половине 2017 года

В мире Python за первую половину 2017 года произошло множество интересных событий: перенос репозитория проекта на github, интервью с Гвидо на подкасте “Talk Python”, выход новой версии Django и еще много всего. Краткую выжимку вы сможете послушать в нашем традиционном (второй раз — это уже традиция!) докладе на этом Moscow Python Meetup. Будьте в курсе всего нового!

     15.06.2017       Выпуск 182 (12.06.2017 - 18.06.2017)       Видео

Современные словари в Python: Сочетание дюжины отличных идей

Словари в Питоне удивительно хороши. На протяжении многих лет различные идеи дополняли друг друга, чтобы образовать современную реализацию в Питоне 3.6.

Этот рассказ в картинках и коде объяснит ключевые идеи и их развитие в течении времени, затронет темы разделяемых ключей, компактности и версионирования.

     13.06.2017       Выпуск 182 (12.06.2017 - 18.06.2017)       Видео

Оптимизации, сделавшие Python 3.6 быстрее Python 3.5

Различные оптимизации сделали Python 3.6 быстрее Python 3.5. Давайте разберём, что и как было сделано.
Python 3.6 превосходит любую другу версию во многих тестах производительности. Мы познакомимся с результатами тестов на Python 2.7, 3.5 и 3.6.

Формат байткода и инструкции вызова функций были изменены для ускорения его исполнения. Новое соглашение «быстрого вызова» для C было добавлено, чтобы избежать создания временных кортежей и словарей. Метод разбора аргументов был оптимизирован с использованием внутреннего кеша. Операции над байтами, а также кодировками типа UTF-8 были оптимизированы благодаря новому API для создания байтовых объектов. Некоторые части asyncio были переписаны на C, чтобы получить до 25% ускорения. Функция PyMem_Malloc() теперь использует быстрый распределитель pymalloc, также предлагая небольшое увеличение скорости.

     08.06.2017       Выпуск 181 (05.06.2017 - 11.06.2017)       Видео

The Memory Chronicles: A Tale of Two Pythons

MicroPython — самая микроскопическая полная реализация Python. Данная разновидность Питона, разработанная для микроконтроллеров, занимает менее 300 Кб памяти, сохраняя при этом наиболее популярные особенности языка. Так что же нужно для создания самого маленького Питона? Или даже: почему CPython потребляет много памяти? В ходе выступления, с упором на аспекты использования памяти, будут рассмотрены детали внутренней реализации MicroPython и сопоставлены с CPython. Мы рассмотрим разные объектные модели Питонов, мы затронем тему различий в конструкциях используемых ими компиляторов байткода и интерпретаторов.MicroPython — самая микроскопическая полная реализация Python. Данная разновидность Питона, разработанная для микроконтроллеров, занимает менее 300 Кб памяти, сохраняя при этом наиболее популярные особенности языка. 

Так что же нужно для создания самого маленького Питона? Или даже: почему CPython потребляет много памяти?

В ходе выступления, с упором на аспекты использования памяти, будут рассмотрены детали внутренней реализации MicroPython и сопоставлены с CPython. Мы рассмотрим разные объектные модели Питонов, мы затронем тему различий в конструкциях используемых ими компиляторов байткода и интерпретаторов.

     07.06.2017       Выпуск 181 (05.06.2017 - 11.06.2017)       Видео

Питонизация стартапа

Python хороший язык для бэкэнда. Но почему его нельзя применить и на frontend? Или можно? Я покажу как на практике можно писать Python код и на frontend (с Rapydscript) и на бэкэнд (Web.py).

     06.06.2017       Выпуск 181 (05.06.2017 - 11.06.2017)       Видео

QaAPI или какое API нужно вашим тестировщикам

Жизнь тестировщика насыщена экспериментами и рутиной. Чем больше рутины и меньше экспериментов, тем тестировщик сильнее грустит. Как разработчики ПО мы можем сделать тестировщика счастливым — написать софт, который автоматизирует рутину. В докладе расскажу об инструменте QaAPI — реализации API для применения в тестировании. Поделюсь опытом разработки такого инструмента в Welltory.

     05.06.2017       Выпуск 181 (05.06.2017 - 11.06.2017)       Видео

Прицельная регрессия, или запускаем только релевантные автотесты

Как известно, чем раньше найден баг, там дешевле его починить. Лучше всего, когда проблема обнаруживается юнит-тестами или статическим анализатором на самой ранней стадии. Иначе обстоят дела с проблемой, проникшей в общую ветку. В этом случае необходимо дождаться прохождения автоматической регрессии, формально описать баг, а после исправления — проверить, что в свежем билде его действительно больше нет. Всего этого мы могли бы избежать, запустив регрессию на dev-бранче перед коммитом в общую ветку. Но это тоже малоэффективно потому, что регрессия выполняется долго и не все тесты в ней имеют отношение к измененному коду Как с этим бороться? В докладе я расскажу про наш опыт автоматизации поиска тестов, покрывающих изменения в dev-бранче, с помощью информации о покрытии кода.

Как известно, чем раньше найден баг, там дешевле его починить. Лучше всего, когда проблема обнаруживается юнит-тестами или статическим анализатором на самой ранней стадии. Иначе обстоят дела с проблемой, проникшей в общую ветку. В этом случае необходимо дождаться прохождения автоматической регрессии, формально описать баг, а после исправления — проверить, что в свежем билде его действительно больше нет. Всего этого мы могли бы избежать, запустив регрессию на dev-бранче перед коммитом в общую ветку. Но это тоже малоэффективно потому, что регрессия выполняется долго и не все тесты в ней имеют отношение к измененному коду 
Как с этим бороться? В докладе я расскажу про наш опыт автоматизации поиска тестов, покрывающих изменения в dev-бранче, с помощью информации о покрытии кода.

     03.06.2017       Выпуск 180 (29.05.2017 - 04.06.2017)       Видео

Создание desktop-приложений на Python

Евгений Ильин (МАИ, доцент, инженер)

"Создание GUI на Python".

Слайды: http://www.moscowpython.ru/meetup/45/sozdanie-desktop-prilozhenij-na-python/

     02.06.2017       Выпуск 180 (29.05.2017 - 04.06.2017)       Видео

Promises and service worker for pythonist

Александр Хаёров

"Миры frontend и backend неразделимы и порой важно понимать ключевые вещи в смежных областях. В докладе поговорим о двух важных вещах из мира frontend — промисах и сервис воркерах. Чтобы было веселее — попробуем изучить эти штуки на примере аналогий".

Слайды: http://www.moscowpython.ru/meetup/45/promises-and-service-worker-for-pythonist/

     02.06.2017       Выпуск 180 (29.05.2017 - 04.06.2017)       Видео

Python Opcodes

Артём Апалько (RedMadRobot backend-dev)

"Обзорный доклад по опкодам в питоне. Изменения в Python 3.6 (изменение размера, оптимизация branch-prediction)".

Слайды: http://www.moscowpython.ru/meetup/45/python-opcodes/

     23.05.2017       Выпуск 179 (22.05.2017 - 28.05.2017)       Видео

Lightning Talk: Сергей Архипов - Правильная демонизация

Слайды: https://speakerdeck.com/9seconds/daemonize

Небольшой рассказ о том, как правильно демонизировались процессы до прихода systemd.