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

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

     16.08.2025       Выпуск 609 (11.08.2025 - 17.08.2025)       Статьи

От консоли к GUI: Как написать игру «Сапёр» на Python с нуля версия GUI (часть вторая)

Создайте свою версию легендарного «Сапёра» на Python с графическим интерфейсом! В этом подробном руководстве вы шаг за шагом реализуете полноценную игру: от настройки игрового поля с помощью Tkinter до обработки кликов, управления флагами и интеллектуального открытия клеток. Вы освоите генерацию мин с безопасной зоной, рекурсивное раскрытие пустых областей, систему подсчёта времени и проверку условий победы.

     15.08.2025       Выпуск 609 (11.08.2025 - 17.08.2025)       Статьи

Combining Django signals with in-memory LRU cache

It's easy to combine functools.lru_cache with Django signals to get a good memoization pattern on Django ORM queries.

     16.08.2025       Выпуск 609 (11.08.2025 - 17.08.2025)       Статьи

Сказ о том, как мы приложение для падел-тенниса создавали

Как‑то раз двое ML‑щиков решили соединить свою любовь к компьютерному зрению и ракеточным видам спорта. Так родилась идея сделать систему видеоаналитики для падел‑тенниса.Падел — это игра на стыке большого тенниса и сквоша. От сквоша падел взял стеклянные стенки вокруг корта, а от большого тенниса — почти всё остальное.

     15.08.2025       Выпуск 609 (11.08.2025 - 17.08.2025)       Статьи
     14.08.2025       Выпуск 609 (11.08.2025 - 17.08.2025)       Статьи

Асинхронные тесты для UI и API на Python: примеры, подводные камни и трезвый вывод

Асинхронность в тестах выглядит как способ «бесплатно» ускорить прогон: пока один тест ждёт ответа сервера, другой мог бы выполняться. Я переписал UI (Playwright) и API (HTTPX) тесты на async/await, прогнал их в CI/CD и посмотрели на результат. Спойлер: магического ускорения не произошло — разбираемся, почему так и когда асинхронность всё-таки нужна.

     14.08.2025       Выпуск 609 (11.08.2025 - 17.08.2025)       Статьи

Python Wheels: from Tags to Variants

The story of how the Python Wheel Variant design was developed

     13.08.2025       Выпуск 609 (11.08.2025 - 17.08.2025)       Статьи

Голос клиента на автомате: разбираем, как анализировать звонки с помощью речевой аналитики и LLM

Самую честную обратную связь бизнес получает не из опросов, а из живых разговоров — когда клиент сам звонит и рассказывает, что его раздражает, что не работает или чего не хватает. Мы хотим извлекать эту ценность автоматически.Сегодня покажу, как собрать простую систему фонового анализа звонков. Она забирает расшифровки разговоров через API, отправляет их в GigaChat для обработки, а результаты сохраняет в базу SQLite.

     13.08.2025       Выпуск 609 (11.08.2025 - 17.08.2025)       Статьи

Python Text Matching Beyond Regex

Text similarity is a fundamental challenge in data science. For data that contains duplicates, clustering content, or building search systems, this article explores using 4 different tools to solve this Regex, difflib, RapidFuzz, and Sentence Transformers

     12.08.2025       Выпуск 609 (11.08.2025 - 17.08.2025)       Статьи

Решаем задачи международной математической олимпиады у себя на домашнем компьютере

Двое ученых из университета Лос-Анжелеса повторили результат OpenAI и Google с золотой медалью IMO, но с помощью обычной публичной Gemini 2.5 Pro.В статье я рассказал о хронологии событий июля, а также нашёл репозиторий с проектом этих учёных, так что теперь каждый может попробовать решать олимпиадные задачи у себя дома.

     12.08.2025       Выпуск 609 (11.08.2025 - 17.08.2025)       Статьи

Разработка Битрикс-бота: история о том, как документация врала, а облака смеялись

Сегодня я расскажу вам историю о том, какая задача посетила меня на этот раз и как я сделал «корпоративного бота с возможностью оценки сотрудников» — казалось бы, простая задача, но…

     12.08.2025       Выпуск 609 (11.08.2025 - 17.08.2025)       Статьи

Расширение известного трюка с XOR на миллиарды строк: введение в обратимые фильтры Блума

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

     12.08.2025       Выпуск 609 (11.08.2025 - 17.08.2025)       Статьи

Оптимизация инференса больших языковых моделей

В процессе разработки RAG-системы для обработки видеоконтента передо мной встала задача генерации качественных описаний для большого объема видео-клипов с использованием мультимодальных языковых моделей. Клипы имели продолжительность около 10 секунд, в отдельных экспериментах мы тестировали материал длиной в несколько десятков секунд. Финальные описания составляли от 300 до 2000 токенов и после генерации разбивались на чанки для индексации в векторной базе данных.

     11.08.2025       Выпуск 609 (11.08.2025 - 17.08.2025)       Статьи

Как научиться программированию разрабатывая игры

Если вы учились программировать в конце 80x-начале 90х, то наверняка делали это на ZX Spectrum, БК-0010 или MSX. Во всех этих компьютерах был встроенный язык програмирования. Кто-то начинал сразу с машинных кодов Радио-86РК. В любом случае первыми программами скорее всего были игры.Но любительское программирование началось задолго до 90х. Посмотрим, какие игры предлагались раньше для начинающих программистов и что из этого мы могли бы извлечь для себя сегодня.

     11.08.2025       Выпуск 609 (11.08.2025 - 17.08.2025)       Статьи

Гайд по правильным ожиданиям в UI — тестах. SeleniumWebDriverWait и Expected Conditions

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

     10.08.2025       Выпуск 608 (04.08.2025 - 10.08.2025)       Статьи

Telegram Web App. Всё о Mini Apps

В прошлой статье я уже рассмотрел основные возможности Web App. Cегодня же подведём итоги, расскажем все особенности и нюансы работы с Web App в Telegram и соберём простенькое веб-приложение.

     11.08.2025       Выпуск 609 (11.08.2025 - 17.08.2025)       Статьи

Мифы и легенды о производительности Python

Как можно догадаться из названия, он считает многие общепринятые сведения о производительности Python как минимум вводящими в заблуждение. На множестве примеров он показал, где, по его мнению, таятся истинные проблемы. Инженер пришёл к выводу, что управление памятью в конечном итоге наложит ограничения на возможности повышения производительности Python, но у него есть проект SPy, который, возможно, станет способом реализации сверхбыстрого Python.

     10.08.2025       Выпуск 608 (04.08.2025 - 10.08.2025)       Статьи

Combining Django signals with in-memory LRU cache

It's easy to combine functools.lru_cache with Django signals to get a good memoization pattern on Django ORM queries.

     09.08.2025       Выпуск 608 (04.08.2025 - 10.08.2025)       Статьи

Тесты не лгут — прислушивайтесь к ним: часть 2

В прошлой статье мы показали, как тесты помогают найти изъяны в архитектуре. Для этого мы попытались протестировать скрипт на Python, проверяющий погоду. Нам пришлось разбить его на несколько функций в зависимости от зон ответственности, и это позволило написать несколько тестов. Но у них были существенные недостатки

     08.08.2025       Выпуск 608 (04.08.2025 - 10.08.2025)       Статьи

От консоли к веб-интерфейсу: создание инсталлятора ALD Pro с Flask и Python

Программисты делятся на два типа: те, кто автоматизирует установку ALD Pro, и те, кто ещё не понял, сколько времени они теряют. Когда-то я вручную прописывал DNS, как средневековый монах переписывающий манускрипты, но потом осознал, что компьютеры должны работать вместо нас. В этой статье — мой путь от консольных скриптов, которые пугали коллег, до веб-интерфейса, где даже бухгалтер (почти) разберётся.

     08.08.2025       Выпуск 608 (04.08.2025 - 10.08.2025)       Статьи

Алгоритм «Византийские генералы» Лэмпорта

Задача описывает, как достичь согласованности в распределённых системах в условиях злонамеренного поведения, например, подделки сообщений