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

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

     19.05.2026       Выпуск 649 (18.05.2026 - 24.05.2026)       Статьи

Зеленые потоки Celery. Gevent и Eventlet

Вторая статья цикла о внутрянке Celery: на этот раз — зелёные потоки (gevent/eventlet). Как gevent и eventlet работают под капотом Celery, что такое Hub, monkey patching и почему autoscale для гринлетов бесполезен. А ещё — неожиданный бенчмарк: prefork против gevent на одном ядре. Спойлер: gevent проигрывает, но не спешите его хоронить. Для тех, кто выбирает пул под свои задачи. 

     25.05.2026       Статьи

Реверс-инжиниринг Xiaomi Smart Band 10

У носимых устройств есть парадокс: браслет измеряет ваши пульс, сон и активность, но готового открытого API для интеграции этих данных в сторонние системы (например, домашний мониторинг или локальную БД) производитель не предоставляет.

     24.05.2026       Выпуск 649 (18.05.2026 - 24.05.2026)       Статьи

Сводка pythonz 17.05.2026 — 24.05.2026

А теперь о том, что происходило в последнее время на других ресурсах.

     19.05.2026       Выпуск 649 (18.05.2026 - 24.05.2026)       Статьи

Как мы вывели в админку ошибки yt-dlp, которые жили только в логах. Bridge на 200 строк и борьба с alert-fatigue

История о том, как сделать видимыми ошибки yt-dlp, которые молча умирали в логах воркера. Bridge на 200 строк, классификатор content vs infra, борьба с alert-fatigue. Читать

     18.05.2026       Выпуск 649 (18.05.2026 - 24.05.2026)       Статьи

RAG в enterprise: 70-80% проблем не в модели, а в данных

Эта статья родилась из работы над AlpinaGPT. Мы недавно зарелизили в нём по-настоящему крутых AI-ассистентов и AI-проекты: с подключаемыми базами знаний, общим контекстом чатов и нормальной памятью между сессиями. Я начал смотреть, как RAG сделан у других — и оказалось, что во многих продуктах на рынке всё гораздо проще и грубее, чем нам кажется. 

     18.05.2026       Выпуск 649 (18.05.2026 - 24.05.2026)       Статьи

Ваша модель показывает 95% accuracy и при этом бесполезна: метрики для несбалансированных классов

Модель может показывать 95–99% accuracy и при этом не решать задачу: особенно если редкий класс важнее всего для бизнеса. В статье разбираем, почему accuracy ломается на несбалансированных данных, как читать precision, recall и F1, зачем смотреть PR‑кривую и confusion matrix, а также как подбирать порог классификации с учетом стоимости ошибок.

     18.05.2026       Выпуск 649 (18.05.2026 - 24.05.2026)       Статьи

Как тестировать внешние API в Python: от DI-мока до настоящего HTTP-сервера

Почти каждый сервис, который мы сегодня пишем, ходит куда-то наружу — платёжный шлюз, биллинг, чужой публичный API. И каждый раз, когда садимся писать тесты на этот код, упираемся в один и тот же вопрос: как протестировать клиента, не привлекая внимания санитаров выходя в реальный мир?Эта статья про то, как выбирать инструмент под эту задачу. Не абстрактно — на одном маленьком, но гордом настоящем сервисе catfact-demo-service, в tests/ которого рядом лежат пять способов протестировать одну и ту же интеграцию.

     18.05.2026       Выпуск 649 (18.05.2026 - 24.05.2026)       Статьи

5 слоев кэширования в веб-приложениях: Полное руководство для Python-разработчиков

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

     18.05.2026       Выпуск 649 (18.05.2026 - 24.05.2026)       Статьи

Pyrog. Основа для приложения мечты

Около трёх лет назад я выпустил программный комплекс для ускорения разработки и управления мини-приложениями на Python + PySide6, которые помогают мне в повседневной работе.За время его эксплуатации я обнаружил ряд архитектурных недостатков, которые ухудшали опыт его использования, да и многие возможности, о которых я мечтал не были реализованы. Так или иначе, я нашел в себе силы исправить свои ошибки и реализовать задуманное. Поэтому, если вы, как и я, пишете инструменты на Python или хотите этим заняться, то можете взять на вооружение мой инструмент, он бесплатный и имеет открытый исходный код. Присоединиться к проекту

     17.05.2026       Выпуск 648 (11.05.2026 - 17.05.2026)       Статьи

Сводка pythonz 10.05.2026 — 17.05.2026

А теперь о том, что происходило в последнее время на других ресурсах.

     17.05.2026       Выпуск 648 (11.05.2026 - 17.05.2026)       Статьи

Выделение одного значащего признака из набора данных с помощью машинного обучения. Используется Apache Spark

В первой части была создана инфраструктура для запуска машинного обучения. Там же была создана БД с данными для использования в примерах.В данной части будет искаться, какой тип файлов вызывает увеличение нагрузки. При этом, зная, какой именно тип файла был указан как вызывающий нагрузку.Будет использоваться машинное обучение в Apache Spark.

     17.05.2026       Выпуск 648 (11.05.2026 - 17.05.2026)       Статьи

fast-volleyball-tracking-inference — детектор волейбольного мяча на скорости 80 fps (CPU). Или «не YOLO единым»

Так сложилось, что я люблю играть в волейбол и активно снимаю свои игры и тренировки.У любителей обычно стоит стационарная камера на штативе, которая захватывает всю площадку (или почти всю) в формате 16:9. При этом современные соцсети потребляют контент вертикально (9:16) и короткими роликами около минуты.Задача: быстро делать вертикальные видео из любительских волейбольных съёмок.Центральный объект внимания в волейболе — мяч. Значит, нужно определять начало розыгрыша и дальше уверенно следить за мячом. Если сопровождать мяч и делать кроп из 16:9 в 9:16 — получаем готовый вертикальный ролик.При изучении темы детекции объектов почти сразу попадаешь на семейство YOLO. 

     16.05.2026       Выпуск 648 (11.05.2026 - 17.05.2026)       Статьи

manage.py migrate в пятницу в 17:30 на проде с 3K RPS и таблицей 200М строк

 Это третья часть мини-серии о Django-миграциях. В первой части мы готовились к миграциям и разбирались с конфликтами, во второй чинили типичные подводные камни. Если их не читали, то рекомендую начать именно с них, а затем вернуться сюда.В этом же материале поговорим о самом интересном: что происходит, когда python manage.py migrate запускается в 17:30 в пятницу на проде, под 3k RPS и таблицей в 200 миллионов строк. Расскажу какие блокировки в PostgreSQL берёт каждая операция Django, что внутри atomic = False, как пишется правильный паттерн expand-migrate-contract, зачемнужны AddIndexConcurrently, AddConstraintNotValid, SeparateDatabaseAndState и как обновлять данные на больших таблицах.

     16.05.2026       Выпуск 648 (11.05.2026 - 17.05.2026)       Статьи

Как запихнуть килограмм LLM в телеграм-бота и не сойти с ума

Все началось с прикола, я сидел с друзьями и подумал, а вот было бы прикольно запихать разные модели нейросетей в один чат и заставить их думать, что они реальные люди и работают в корпорации. Весь смысл был в том, чтобы это были действительно разные модели и пользователь мог просто между ними переключаться по запросу. Для начала мне нужно было найти зоопарк апи ключей с бесплатными лимитами. Я прошерстил весь интернет и в итоге нашел относительно норм варианты: Groq для LLama, Google AI Studio для Gemma и Gemini. В целом в это время код был простой, правда все время происходил забавный баг, когда пользователь переключался между моделями, одна модель не хотела отдавать очередь другой и просто притворялась ею, но я в целом без трудностей поправил это через системный промт. Однако до конца у меня исправить это так и не получилось, видимо, мои модели слишком тупые.

     15.05.2026       Выпуск 648 (11.05.2026 - 17.05.2026)       Статьи

Строки в Python: всё не так просто, как кажется

Начинающим разработчикам строки обычно кажутся едва ли не самым простым, что есть в языке программирования. Возможно, причина в том, что знакомство с новым языком зачастую начинается с вывода на экран строки Hello, world!.«Это же просто набор символов, заключённый в кавычки!» — обычно восклицает джуниор Python-разработчик.Но в Python всё немного интереснее. И за простым синтаксисом скрывается большой набор возможностей, правил и нюансов. Более того, если посмотреть внимательнее, окажется, что в Python целый зоопарк строковых представлений и связанных с ними особенностей. Поговорим и о базовом использовании, и о важных деталях, которые стоит помнить каждому разработчику.

     15.05.2026       Выпуск 648 (11.05.2026 - 17.05.2026)       Статьи

Использование машинного обучения в работе с SolidWorks (2 часть): тестирование и практическое применение

В прошлой статье я поделился своими наработками в области работы ИИ с CAD-программами (в моём и нашем случае, SolidWorks). В этот раз поделюсь практическими результатами на примере тестового ядра своей программы.В статье поделюсь тестами программы, опишу интерфейс и поделюсь мыслями о дальнейшем развитии.

     15.05.2026       Выпуск 648 (11.05.2026 - 17.05.2026)       Статьи

Заменит ли ИИ настоящих судей? Я скормил ему дело которое арбитры разбирали 3 недели

Спор. Деньги. Двое людей не сошлись характерами и зашли в арбитраж. На разбор у двух живых арбитров ушло три недели с переменами арбитров, отпусками, скандалами и тремя параллельными переговорами сторон.После того как вердикт уже был вынесен, я прогнал то же самое дело через свой Telegram-бот на Claude Sonnet 4.6. Те же скриншоты, та же фактура, никаких подсказок.Бот выдал тот же вердикт за двенадцать минут. Не на 100%, но суть совпала: кто прав, кто что должен сделать, какой срок, что при неисполнении.

     15.05.2026       Выпуск 648 (11.05.2026 - 17.05.2026)       Статьи

Инженерия качества: Как перестать надеяться на удачу и начать измерять своих ИИ-агентов [Часть 3]

Продолжаем рассмотрение, того как правильно оценивать качество ИИ систем, в данной части поговорим про метрики характерные для RAG системы. Способах оценить полноту, точность и соответствия выдачи контексту в подобной системе. На примере библиотеки RAGAS, с разбором того, как эти метрики работают изнутри.

     15.05.2026       Выпуск 648 (11.05.2026 - 17.05.2026)       Статьи

Как я сделал “Авиасейлз для логистики”: агрегатор заявок из 16+ источников

В логистике проблема часто не в том, что нет данных.Проблема в том, что данные разбросаны по разным местам.Одни заявки лежат во внутренней системе, другие — в закрытых кабинетах грузоотправителей, третьи — на тендерных площадках, четвёртые приходят через Excel-выгрузки, пятые доступны только через веб-интерфейс. Где-то есть нормальный HTTP-обмен, где-то данные спрятаны за фронтендом, где-то приходится читать DOM-таблицу, а где-то сначала кажется, что всё просто, пока не выясняется, что цена приходит в копейках, маршрут состоит из трёх точек, а тип кузова записан как “тент 20т, верхняя загрузка”.Для менеджера всё это выглядит не как единый рынок грузов, а как набор вкладок в браузере.

     14.05.2026       Выпуск 648 (11.05.2026 - 17.05.2026)       Статьи

Отказоустойчивый запуск WSGI приложения. Обзор архитектуры Gunicorn

Gunicorn кажется простым, пока не сталкиваешься с эксплуатацией: внезапные ошибки 502, зависшие воркеры и странное поведение при перезапусках. За этими симптомами стоят вполне конкретные причины — от медленных клиентов и отсутствия буферизации до особенностей реализации GThread и механики Graceful Shutdown.В этой статье разберём реальные сценарии отказов, посмотрим, как менялась архитектура GThread в разных версиях Gunicorn, и соберём практичную конфигурацию с Nginx, Docker и Kubernetes, которая ведёт себя предсказуемо под нагрузкой.