Pull to refresh

Запуск курса по asyncio

Reading time 2 min
Views 2.5K
KTS corporate blog Python *Studying in IT

В понедельник, 18 октября, стартует новый курс школы Metaclass, посвященный asyncio. 

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

А в этот четверг, 14 октября, мы проведем вебинар про курс, на котором преподаватели ответят на вопросы по программе и разыграют бесплатное место на продвинутый трек курса.

Записаться на вебинар можно по ссылке, всех ждем!

Посмотреть, что будет на курсе
Total votes 12: ↑9 and ↓3 +6
Comments 0

Вебинар «Пишем Websocket-сервер для геолокации на asyncio»

Reading time 1 min
Views 500
Southbridge corporate blog

22 сентября в 19:00 мск Слёрм приглашаем на вебинар «Пишем Websocket-сервер для геолокации на asyncio» от наших партнеров KTS.

На вебинаре создадим веб-сервис на Python с использова­нием библиотеки aiohttp. Он позволит делиться своим местополо­жением и отслеживать местопо­ложение других подключённых к нему людей. И всё это в режиме реального времени.

Читать про вебинар
Total votes 14: ↑11 and ↓3 +8
Comments 0

Прокачаться в асинхронном программировании на Python за 6 недель

Reading time 1 min
Views 1K
Southbridge corporate blog

Через два дня стартует курс по асинхронному программированию на Python от нашего партнёра KTS. Его можно пройти за полтора месяца, если заниматься 8–16 часов в неделю.

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

Читать далее
Total votes 11: ↑9 and ↓2 +7
Comments 0

Примеры использования asyncio: HTTPServer?!

Reading time 8 min
Views 49K
Website development *Python *Programming *
Не так давно зарелизилась новая версия Python 3.4 в changelog которой вошло много «вкусностей». Одна из таких — модуль asyncio, содержащий инфраструктуру пригодную для написания асинхронных сетевых приложений. Благодаря концепции сопрограмм (coroutines), код асинхронного приложения прост для понимания и поддержки.

В статье на примере простого TCP (Echo) сервера я постараюсь показать с чем едят asyncio, и рискну устранить «фатальный недостаток» этого модуля, а именно отсутствие реализации асинхронного HTTP сервера.
Читать дальше →
Total votes 33: ↑31 and ↓2 +29
Comments 9

Работа с ZeroMQ и PostgreSQL в asyncio

Reading time 2 min
Views 14K
Python *
Наверное, все уже слышали о чудесной библиотеке asyncio?

Если нет, то коротко: эта либа стала стандартом на асинхронное сетевое программирование на Python. tornado и twisted или научатся с ней работать или постепенно уйдут в маргиналы.

asyncio прекрасна, но это просто библиотека для работы с TCP, UDP, UNIX сокетами, PIPES и асинхронным запуском subprocess.

Чтобы всем было здорово нужны сторонние библиотеки, умеющие работать с asyncio. Кое-что уже есть, но мало.

Вот я с коллегами и сделал пару: одну для ZeroMQ и другую для PostgreSQL

Если вы прочно сидите на Python 2 и не интересуетесь Python 3 — не ходите под кат во избежание глупых вопросов и прочих недоразумений.
Читать дальше →
Total votes 37: ↑37 and ↓0 +37
Comments 36

Окружение для разработки на aiorest (asyncio) + angular.js

Reading time 4 min
Views 6.2K
Python *Angular *
Tutorial
В этой статье мы соберём вместе aiorest + jinja2 + angular.js + gulp.js + bower.js + nginx. В результате мы получим:
  • авто-перезапуск сервера при изменении python-кода и jinja-шаблонов
  • сборка, минификация и автоматическая пересборка при изменении клиентского js-кода
Начнём с главного — как пользоваться, а затем я подробнее опишу некоторые моменты реализации. Если вам легче читать код — вот ссылка на репу.

Читать дальше →
Total votes 15: ↑13 and ↓2 +11
Comments 6

Python реализация парадигмы event-driven с помощью сопрограмм

Reading time 7 min
Views 52K
Python *Algorithms *Concurrent computing *
Статья про то, как с помощью расширенных генераторов Python сделать собственную реализацию сопрограмм, переключающихся по получению событий. Простота кода получившегося модуля вас приятно удивит и прояснит новые и мало используемые возможности языка, которые можно получить, используя такие генераторы. Статья поможет разобраться и с тем, как это устроено в серьезных реализациях: asyncio, tornado, etc.
Читать дальше →
Total votes 23: ↑22 and ↓1 +21
Comments 17

Многопользовательский онлайн-шутер на WebGL и asyncio, часть вторая

Reading time 17 min
Views 23K
Python *JavaScript *NoSQL *HTML *WebGL *

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

Введение
1. Структура игры
2. Импорт моделей и blender
3. Подгрузка моделей в игре с babylon.js и сами модели
4. Передвижения, миникарта и звуки игры в babylon.js
5. Вебсокеты и синхронизация игры
6. Игроки и их координация
7. Балансировка игроков по комнатам и объектный питон
8. Asyncio и генерация поведения бота
9. Nginx и проксирование сокетов
10. Асинхронное кэширование через memcache
11. Послесловие и RoadMap

Всех кому интересна тема асинхронных приложений в Python3, WebGL и просто игр, прошу под кат.
Читать дальше →
Total votes 28: ↑27 and ↓1 +26
Comments 5

Асинхронная работа с Tarantool на Python

Reading time 12 min
Views 24K
VK corporate blog High performance *Python *NoSQL *Tarantool *
На Хабре уже есть статьи о NoSQL СУБД Tarantool и о том, как его используют в Mail.Ru Group (и не только). Однако нет рецептов того, как работать с Tarantool на Python. В своей статье я хочу рассказать о том, как мы готовим Tarantool Python в своих проектах, какие проблемы и сложности при этом возникают, плюсы, минусы, подводные камни и, конечно же, «в чем фишка». Итак, обо всем по порядку.



Tarantool представляет собой Application Server для Lua. Он умеет хранить данные на диске, обеспечивает быстрый доступ к ним. Tarantool используется в задачах с большими потоками данных в единицу времени. Если говорить о цифрах, то это десятки и сотни тысяч операций в секунду. Например, в одном из моих проектов генерируется более 80 000 запросов в секунду (выборка, вставка, обновление, удаление), при этом нагрузка равномерно распределяется по 4 серверам с 12 инстансами Tarantool. Не все современные СУБД готовы работать с такими нагрузками. Кроме того, при таком количестве данных, очень дорого ожидание выполнения запроса, поэтому сами программы должны быстро переключаться от одной задачи к другой. Для эффективной и равномерной загрузки CPU сервера (всех его ядер) как раз нужен Tarantool и асинхронные приемы в программировании.
Читать дальше →
Total votes 46: ↑44 and ↓2 +42
Comments 10

Python 3.5; async/await

Reading time 5 min
Views 243K
Python *Programming *Designing and refactoring *Algorithms *Concurrent computing *
Тихо и незаметно (с), вышел Python версии 3.5! И, безусловно, одно из самых интересных нововведений релиза является новый синтаксис определения сопрограмм с помощью ключевых слов async/await, далее в статье об этом.

Поверхностный просмотр «PEP 0492 — Coroutines with async and await syntax» поначалу оставил у меня вопрос «Зачем это надо». Сопрограммы удовлетворительно реализуются на расширенных генераторах и на первый взгляд может показаться, что все свелось к замене yield from на await, а декоратора, создающего сопрограмму на async. Сюда можно добавить и возникающее ощущение, что все это сделано исключительно для использования с модулем asyncio.

Но это, конечно же, не так, тема глубже и интереснее.
Читать дальше →
Total votes 29: ↑28 and ↓1 +27
Comments 26

Асинхронный Python 3.5 и Mongodb

Reading time 4 min
Views 33K
Python *NoSQL *MongoDB *
Tutorial
Translation

Это достаточно вольный перевод статьи об основных новшествах асинхронного драйвера для mongodb используемого в tornado. Основной мотив, который послужил для написания этого перевода — новшества, появившиеся в этой версии, такие как поддержка asyncio, async, await и Python 3.5. Сама статья не сколько перечисление новшеств, сколько лаконичные примеры асинхронной работы с MongoDB.


Введение
asyncio
aggregate
Python 3.5
async and await

Читать дальше →
Total votes 18: ↑18 and ↓0 +18
Comments 22

Asyncio Tarantool Queue, вставай в очередь

Reading time 9 min
Views 20K
VK corporate blog Python *Tarantool *


В одной из своих статей я рассказывал об асинхронной работе с Tarantool на Python. В данной статье продолжу эту тему, но внимание хочу уделить обработке информации через очереди на Tarantool. Мои коллеги опубликовали несколько статей о пользе очередей (Инфраструктура обработки очередей в социальной сети Мой Мир и Push-уведомления в REST API на примере системы Таргет Mail.Ru). Хочу дополнить информацию об очередях на примере решений наших задач, а также рассказать о работе с Tarantool Queue на Python и asyncio. Почему мы выбираем именно Tarantool, а не Redis или RabbitMQ?
Читать дальше →
Total votes 34: ↑32 and ↓2 +30
Comments 14

Вышел uvloop — продвинутая реализация цикла событий для asyncio в Python

Reading time 1 min
Views 40K
High performance *Python *
В стандартной библиотеке Python 3.4 в своё время появился модуль asyncio, позволивший удобно и быстро писать асинхронный код. А уже к Python 3.5 в синтаксис были добавлены конструкции async/await, окончательно оформившие асинхронность «из коробки» как красивую и гармоничную часть языка.



Хотя asyncio сам по себе и позволяет писать высоконагруженные веб-приложения, оптимизация производительности не была приоритетом при создании модуля.

Один из авторов упомянутого PEP-492 (async/await) Юрий Селиванов (на Хабре — 1st1, его твиттер) взялся за разработку альтернативной реализации цикла событий для asyncio — uvloop. Вчера вышла первая альфа-версия модуля, о чём автор написал развёрнутый пост.

Если вкратце, то uvloop работает примерно в 2 раза быстрее Node.js и практически не уступает программам на Go.
Под катом небольшая выжимка из записи в блоге
Total votes 34: ↑32 and ↓2 +30
Comments 60

Moscow Python Meetup №35 (23 мая, 19:00)

Reading time 1 min
Views 3.6K
Rambler&Co corporate blog Python *
image

23-го мая мы вновь встречаемся на Мансарде в 19:00 на 35-й встрече MoscowPython:

На встрече мы услышим 3 доклада:

1. Павел Петлинский (Rambler&Co). Asyncio/Aiohttp — предел производительности.

«Смотрим как мерить, что мерить, какие накладные расходы и где нас обманули маркетологи.»

2. Антон Егоров (Островок). Докеризация приложений на Python:

«Контейнеры уже давно стали стандартом для доставки кода. Я расскажу о нашем опыте с Docker-ом в Островке и покажу практический пример создания образа для Django-приложения.»

3. Азамат Галимжанов, (ГдеМатериал, технический директор). Автоматизация интернет-знакомств.

Построение системы на основе django, python-rq, dlib, scikit-learn для обучения и предсказания рейтинга привлекательности лица на фотографии. Подключение к Tinder API.

Регистрация тут.

Приходите, будет интересно!
Total votes 10: ↑9 and ↓1 +8
Comments 4

PyCon 2016 в Портленде: видео всех значимых докладов и мастер-классов

Reading time 2 min
Views 5.8K
Python *
image

Под словами PyCon чего только не проводится. От шумных конференций с билетами за N сотен долларов до бесплатных заседаний зимбабвийского клуба питонистов в количестве 2-х голодных темнокожих разработчиков.

Портлендский PyCon этого года — мероприятие крупного калибра с крутыми докладчиками и действительно ценной информацией. Тут были и простые развлекательные презентации на 30 минут о будущем Python, и мастер-классы по популярным темам типа масштабирования Flask и упаковки приложений в Docker, и хардкорные многочасовые занятия по статистике и машинному обучению.

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

Несколько примечательных видео с комментами под катом
Total votes 9: ↑9 and ↓0 +9
Comments 4

Вышла asyncpg — клиентская библиотека PostgreSQL для Python/asyncio

Reading time 1 min
Views 11K
Python *PostgreSQL *
На конференции EuroPython 2016 Юрий Селиванов (автор async/await-синтаксиса и автор uvloop) представил новую высокопроизводительную библиотеку для асинхронного доступа к PostgreSQL — asyncpg. Тесты демонстрируют в среднем в два раза большую скорость, чем у psycopg2 (и её асинхронного варианта — aiopg).


Причина высоких показателей в том, что asyncpg реализует бинарный протокол PostgreSQL нативно, без использования абстракций, вроде DB-API. Кроме того, это позволило получить простую в использовании реализацию:


Читать дальше →
Rating 0
Comments 2

Принципы реактивного программирования на примере простого RSS-агрегатора с использованием ReactiveX для Python

Reading time 7 min
Views 22K
Python *
Sandbox

В последние годы реактивное программирование в целом, а технология ReactiveX в частности, обретает всё большую популярность среди разработчиков. Одни уже активно используют все преимущества этого подхода, а другие только “что-то слышали”. Со своей стороны я постараюсь помочь вам представить, насколько некоторые концепции реактивного программирования способны изменить взгляд на привычные, казалось бы, вещи.
Читать дальше →
Total votes 32: ↑30 and ↓2 +28
Comments 1

Учимся работать с asyncio+aiohttp: в Москве пройдет курс от Core-разработчика Python

Reading time 3 min
Views 9.2K
Positive Technologies corporate blog Python *Programming *


17 и 18 декабря в Москве пройдет двухдневный курс под названием «Обучение работе с asyncio+aiohttp». Его автор — core-разработчик Python, украинский программист Андрей Светлов (подробнее о нем можно почитать здесь). Андрей — один из ведущих мировых экспертов по Python и создатель авторского курса. Он никогда раньше не читал его в Москве, так что наше мероприятие — отличный шанс для всех, кто интересуется Python и асинхронной разработкой, получить новые знания и ответы на свои вопросы напрямую от создателя популярных инструментов.

Мы поговорили с Андреем о том, какие вопросы будут рассмотрены на курсе, кому он может быть полезен, и какие еще ресурсы Python-разработчикам следует изучить, чтобы повысить свой уровень.
Читать дальше →
Total votes 10: ↑10 and ↓0 +10
Comments 12