Pull to refresh

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

Reading time 1 min
Views 587
Southbridge corporate blog

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

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

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

Многопользовательский онлайн-шутер на 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

Асинхронный 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

Транспорт-бот Jabber конференций для Telegram

Reading time 7 min
Views 21K
Instant Messaging *Open source *Python *
Sandbox


Доброго времени суток.

В один прекрасный день, после значительного перерыва, судьба вновь столкнула меня с jabber-конференциями. Правда, среди знакомых jabber уже никто не использует, 2007 год канул в лету, а основным средством общения стал Telegram. Поддержка XMPP на мобильных устройствах оставляла желать лучшего — клиенты на Android хороши каждый в чём-то одном, с iOS и WP всё мягко скажем, не очень. И особенности протокола тоже сказываются на автономности. Поэтому возникла мысль: а не сделать ли бота, которой будет транслировать сообщения из конференций в чат Telegram?

В качестве инструментов использовались:
  • Python 3.5
  • aiohttp для API Telegram
  • slixmpp для xmpp
  • gunicorn как wsgi сервер
  • nginx как фронтенд и прокси для gunicorn
  • VS Code в качестве IDE

Читать дальше →
Total votes 20: ↑18 and ↓2 +16
Comments 13

Telegram-бот, webhook и 50 строк кода

Reading time 5 min
Views 167K
Python *Programming *
Tutorial
Recovery mode
Как, опять? Ещё один туториал, пережёвывающий официальную документацию от Telegram, подумали вы? Да, но нет! Это скорее рассуждения на тему того, как построить функциональный бот-сервис используя Python3.5+, asyncio и aiohttp. Тем интереснее, что заголовок на самом деле лукавит…
Читать дальше →
Total votes 31: ↑21 and ↓10 +11
Comments 19

Получаем фотографии NASA с Марса с помощью aiohttp

Reading time 5 min
Views 13K
Python *
Translation
Я большой фанат книги «Марсианин» Энди Вейера. Читая её, мне было интересно, что же Марк Уотни чувствовал, гуляя по красной планете. Недавно наткнулся на пост на Twillo, в котором упоминалось, что у NASA есть публичный API для доступа к фотографиям с марсоходов. Так что я решил написать собственное приложение для просмотра изображений непосредственно в браузере.
Читать дальше →
Total votes 15: ↑15 and ↓0 +15
Comments 0

Tornado vs Aiohttp: путешествие в дебри асинхронных фреймворков

Reading time 12 min
Views 24K
AvitoTech corporate blog High performance *Website development *Python *Microservices *
Привет! Я Дима, и я довольно давно и плотно сижу на Python. Сегодня хочу показать вам отличия двух асинхронных фреймворков — Tornado и Aiohttp. Расскажу историю выбора между фреймворками в нашем проекте, чем отличаются корутины в Tornado и в AsyncIO, покажу бенчмарки и дам немного полезных советов, как забраться в дебри фреймворков и успешно оттуда выбраться.


Читать дальше →
Total votes 58: ↑57 and ↓1 +56
Comments 16

Самые быстрые Python веб-фреймворки в 2019

Reading time 4 min
Views 51K
Python *Programming *
Translation


В 2018 году Python укрепил свои позиции популярности среди программистов и вошел в Top 3 самых популярных языков на github. Все больше и больше людей переходит на светлую сторону…то есть Python. Появилось еще большее количество разработчиков, которые интересуются данным языком и ведут разработку своих проектов с его помощью. Одним из популярных направлений для Python является web-разработка. Хочется, чтобы не только процесс разработки был удобным и быстрым, но и сами проекты могли похвастаться скоростью и стабильностью работы.

Читать дальше →
Total votes 35: ↑28 and ↓7 +21
Comments 30

Мелкая питонячая радость #2: Starlette

Reading time 2 min
Views 27K
Python *


Туннельное зрение


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


По этой причине у многих Python-разрабов складывается некое подобие туннельного зрения — их инженерный подход заперт между этими двумя библиотеками.

Читать дальше →
Total votes 21: ↑18 and ↓3 +15
Comments 14

RealWorld: aiohttp, Tortoise ORM

Reading time 3 min
Views 8.1K
Website development *Python *
Tutorial

На Real World отсутствует пример для aiohttp, и я решил его сделать. Опытным разработчикам, похоже, некогда этим заниматься, а начинающим в aiohttp непонятно как делать правильно. Я начал его делать с помощью Tortoise ORM. Пока начал делать аутентификацию.


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

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

Практическое руководство по разработке бэкенд-сервиса на Python

Reading time 57 min
Views 151K
Яндекс corporate blog Python *Programming *System Analysis and Design *Web services testing *
Tutorial
Привет, меня зовут Александр Васин, я бэкенд-разработчик в Едадиле. Идея этого материала началась с того, что я хотел разобрать вступительное задание (Я.Диск) в Школу бэкенд-разработки Яндекса. Я начал описывать все тонкости выбора тех или иных технологий, методику тестирования… Получался совсем не разбор, а очень подробный гайд по тому, как писать бэкенды на Python. От первоначальной идеи остались только требования к сервису, на примере которых удобно разбирать инструменты и технологии. В итоге я очнулся на сотне тысяч символов. Ровно столько потребовалось, чтобы рассмотреть всё в мельчайших подробностях. Итак, программа на следующие 100 килобайт: как строить бэкенд сервиса, начиная от выбора инструментов и заканчивая деплоем.



TL;DR: Вот репка на GitHub с приложением, а кто любит (настоящие) лонгриды — прошу под кат.
Читать дальше →
Total votes 70: ↑68 and ↓2 +66
Comments 50

Web-сервер машинного обучения «ВКФ-решатель»

Reading time 21 min
Views 4K
MySQL *Python *Machine learning *
Сейчас в глазах обычной публики машинное обучение прочно ассоциируется с различными вариантами обучения нейронных сетей. Если первоначально это были полносвязные сети, потом заместившиеся сверточными и рекуррентными, то теперь это стало совсем экзотическими вариантами типа GAN и LTSM-сетей. Кроме все больших объемов выборок, требуемых для их обучения, они еще страдают невозможностью объяснить, почему было принято то или иное решение. Но существуют и структурные подходы к машинному обучению, программная реализация одного из которых описана в настоящей статье.


Читать дальше →
Total votes 4: ↑3 and ↓1 +2
Comments 10

Web server for Machine Learning 'VKF-solver'

Reading time 20 min
Views 1.4K
MySQL *Python *Machine learning *
Nowadays most people identify Machine Learning with training of various kinds of neural networks. At the beginning there were fully connected networks, then convolutional and recurrent networks replace them, now there exist a quite exotic variants of networks such that GAN and LTSM networks.

Their training requires constantly increasing volume of samples, and they also do not be able to explain why a particular decision was made. Structural approaches to Machine Learning avoiding these drawbacks exist, the software implementation of one of which is described in the article. This is an English translation of original post by the author.


Read more →
Total votes 1: ↑1 and ↓0 +1
Comments 0

День и ночь в интернете, или открытое письмо веб-разработчикам

Reading time 3 min
Views 4K
Website development *
Sandbox

Я — веб-разработчик со стажем, и мне приходится подолгу сидеть за компьютером. Поэтому, чтобы к вечеру глаза не уставали, мне пришлось перепробовать все возможные способы снижения нагрузки на зрение — от защитных экранов, специальных очков и упражнений для глаз до различных режимов «eye saver» и прочих манипуляций с настройками монитора.

Читать дальше →
Total votes 16: ↑14 and ↓2 +12
Comments 15

Aiohttp + Dependency Injector — руководство по применению dependency injection

Reading time 13 min
Views 5.8K
Python *Designing and refactoring *
Tutorial
Привет,

Я создатель Dependency Injector. Это dependency injection фреймворк для Python.

Продолжаю серию руководств по применению Dependency Injector для построения приложений.

В этом руководстве хочу показать как применять Dependency Injector для разработки aiohttp приложений.

Руководство состоит из таких частей:
Читать дальше →
Total votes 3: ↑3 and ↓0 +3
Comments 0

Фоновые задачи на Faust, Часть I: Введение

Reading time 5 min
Views 4.8K
High performance *Python *Distributed systems *Finance in IT

https://habrastorage.org/webt/wo/6b/ui/wo6buieqgfwzr4y5tczce4js0rc.png


  1. Часть I: Введение
  2. Часть II: Агенты и Команды

Как я дошёл до жизни такой?


Не так давно мне пришлось работать над бэкендом высоко нагруженного проекта, в котором нужно было организовать регулярное выполнение большого количества фоновых задач со сложными вычислениями и запросами на сторонние сервисы. Проект асинхронный и до того, как я пришёл, в нём был простой механизм крон-запуска задач: цикл с проверкой текущего времени и запуск групп корутин через gather — такой подход оказался приемлем до момента, пока таких корутин были десятки и сотни, однако, когда их количество перевалило через две тысячи, пришлось думать об организации нормальной очереди задач с брокером, несколькими воркерами и прочим.

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

Фоновые задачи на Faust, Часть II: Агенты и Команды

Reading time 9 min
Views 3K
High performance *Python *Distributed systems *Finance in IT

Часть II. Узнаем, как писать агентов, обрабатывающих стрим событий из kafka, а так же как написать команды (обёртка на click).

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

О первоклашках, дистанционке и асинхронном программировании

Reading time 15 min
Views 4.8K
Website development *Python *JavaScript *Video conferencing
image

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

Пока я увлеченно занимался веб разработкой, где-то на фоне жена периодически жаловалась на проблемы выбора школы для ребёнка. И тут (вдруг) ребёнок подрос и школьный вопрос встал ребром. Ладно, значит, время пришло. Давайте вместе разберёмся, что же все-таки не так с системой образования в бывшей 1/6 части суши, и что мы с вами можем с этим сделать?
Читать дальше →
Total votes 6: ↑6 and ↓0 +6
Comments 23
1