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

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

     01.09.2026       Выпуск 664 (31.08.2026 - 06.09.2026)       Статьи

«Подписываем данные SHA-256 с секретным ключом». Такую подпись подделывают, не зная ключа

Знакомая схема защиты от подмены. Сервер кладёт клиенту cookie user=guest&role=reader и рядом — подпись sha256(secret + данные), чтобы клиент не переписал reader на admin. Секрет знает только сервер, поэтому пересчитать подпись под изменённые данные клиент вроде бы не может.Поломается не сама SHA-256, а конструкция вокруг неё: к данным можно дописать хвост &role=admin и предъявить к нему валидную подпись, не зная секрета вообще. Атака называется length extension, и в статье мы её проделаем на своём же сервере.

     01.09.2026       Выпуск 664 (31.08.2026 - 06.09.2026)       Статьи

Агенты выполнили задачу. Почему тест всё равно провален?

Допустим, у тебя есть несколько AI-агентов. Один разбирает тикет, второй меняет код, третий запускает тесты, четвёртый готовит релиз.Задача закрыта, тесты зелёные, артефакт собран. Метрика success_rate показывает успех.Можно праздновать?Не обязательно. Агенты могли несколько раз выполнить одну работу, нарушить порядок операций, одновременно захватить общий ресурс или случайно добиться правильного результата через недопустимую последовательность действий.

     31.08.2026       Выпуск 664 (31.08.2026 - 06.09.2026)       Статьи

Быстродействие, или Смотря как измерять

Один и тот же JavaScript-код в браузере, Node.js, Deno и Bun должен показывать примерно одинаковую скорость – по крайней мере, так кажется до первых замеров. Я взял четыре прикладные задачи, добавил к сравнению Python и измерил не только время выполнения, но и потребление памяти, причём отдельно посмотрел, как результат меняется вместе с границами замера. Оказалось, что у каждой среды своё представление о быстродействии, а лидер зависит не только от алгоритма, но и от того, входят ли в задачу чтение файлов, парсинг или обработка изображений.

     31.08.2026       Выпуск 664 (31.08.2026 - 06.09.2026)       Статьи

Находки в опенсорсе: мир питона за август 2026

В августе было много новых интересных PEP’ов (например, PEP 805: Safe Parallel Python), которые я поревьюил, было много новых релизов, было много новых опенсорс проектов чуваков из нашего сообщества, пару интересных подкастов и множество другого интересного!

     29.08.2026       Выпуск 663 (24.08.2026 - 30.08.2026)       Статьи
     28.08.2026       Выпуск 663 (24.08.2026 - 30.08.2026)       Статьи
     27.08.2026       Выпуск 663 (24.08.2026 - 30.08.2026)       Статьи

Тестирование крупного Django-монолита: от хаоса с ID к стабильным прогонам в pytest

Сегодня хочу рассказать об особенностях автоматического тестирования крупного проекта на Django, в котором тесты написаны в разных стилях и есть много пересечений моделей данных. Поговорим о том, как привести всё к единому знаменателю без риска получить непредсказуемое поведение тестов. Также разберём конфигурацию pytest, параметры его запуска, работу с фабриками моделей и стили тестирования в двух парадигмах (Django и чистый pytest).

     27.08.2026       Выпуск 663 (24.08.2026 - 30.08.2026)       Статьи

Переход к неанонимным изменениям схемы СУРБД Firebird

Когда я только пришел на должность помощника DBA, я заметил, что все production базы фиксируют изменения странным образом, а именно каждый день в 00:00 вызывался скрипт, который выгружает схему БД Firebird, в виде файла script.sql, созданный встроенной утилитой isql. Далее делил весь файл на объекты (файлы), по группам (директориям) принадлежности, объясняю: есть кусок скрипта создания таблицы, он помещается в директорию 01_TABLES в виде отдельного файла названного в честь названия объекта который он содержит, и так далее. Чем же это плохо? А суть в том что разработчиков много, правки анонимны, история тяжело воспроизводимая. В такой каше сразу не разберешься.

     27.08.2026       Выпуск 663 (24.08.2026 - 30.08.2026)       Статьи

Modern Django Deployments in 2026

A written guide to my talk on deploying Django and why 90% of it is the same.

     26.08.2026       Выпуск 663 (24.08.2026 - 30.08.2026)       Статьи

Три негативных ответа ИИ оказались о другой компании: разбор одной ошибки в метрике тональности

Решил посчитать, сколько раз языковые модели отзываются плохо о конкретной компании. Вроде простая задача: прогнать запросы через несколько моделей, разметить тональность ответов, поделить негативные на общее число. У меня получилось три негативных ответа из 358 — 0,8%. Число выглядело спокойным, и я чуть не отправил его в отчёт как есть. Потом я открыл сами эти три ответа, чтобы понять, из-за чего именно модель поставила минус.

     26.08.2026       Выпуск 663 (24.08.2026 - 30.08.2026)       Статьи

CP-SAT OR-Tools против Excel: решаем задачу оптимизации офисного пространства

Несколько раз в год отдел оптимизации думает над тем, как разместить сотрудников бэк‑офиса по локациям на несколько лет вперёд. Раньше ребята делали это вручную: было медленно (месяц работы), больно (Excel) и неоптимально (никто не мог гарантировать, что найденная рассадка удовлетворяет всем ограничениям).Коллеги хотели автоматизировать ручную работу — с этим они и пришли к нам. В целом, получаем самую стандартную задачу оптимизации, которая решается с помощью одной библиотеки. Постараюсь рассказать о некоторых нюансах, которые не с первого раза гуглятся (со второго).

     26.08.2026       Выпуск 663 (24.08.2026 - 30.08.2026)       Статьи

ИИ-агент вместо тестировщика: 20 копеек за диалог и причина, почему вас не заменит llm

Тестирую диалоговые системы: чат-ботов и голосовых ботов, часть из них с обращениями в RAG. Моя работа устроена так: беру схему диалога на Холсте, примеряю на себя роль клиента и последовательно прохожу сценарий. Задаю вопрос и проверяю ответ, соглашаюсь — смотрю, правильно ли сработал переход, отказываюсь — проверяю фолбэк. Так приходится проходить десятки сценариев, которые в крупном проекте быстро складываются в большой объем ручной работы.

     25.08.2026       Выпуск 663 (24.08.2026 - 30.08.2026)       Статьи

ICO — как я осмелел и написал свой типизированный ML-фреймворк на Python

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

     25.08.2026       Выпуск 663 (24.08.2026 - 30.08.2026)       Статьи

Подсчет транспорта в видеопотоке: пять мест, где я ошибся

Счетчик показал десятки проездов за одну красную фазу светофора. Машина была одна, и она стояла.Нейросеть при этом отработала правильно. Она видела машину и держала ее рамку все это время. Ошибка была в семидесяти строках обычного Python, которые я написал сам.Система считает машины, автобусы и трамваи на видео с неподвижной камеры… Готовых наборов данных не брал: хотел пройти весь путь от съемки до обученной модели сам и посмотреть, где он ломается.Ломался он пять раз. Метрики тоже будут, вместе с разбором, почему верить им нельзя.

     25.08.2026       Выпуск 663 (24.08.2026 - 30.08.2026)       Статьи

Приложение упало в закрытом контуре: скрытые загрузки в Python‑библиотеках для ML

В статье расскажу, почему Python-библиотеки для ML могут незаметно ходить в интернет, как находить такие скрытые загрузки и что с ними делать в закрытом контуре.

     24.08.2026       Выпуск 663 (24.08.2026 - 30.08.2026)       Статьи

RAG‑система для анализа новостей с позиций исторической личности на основе литературных источников «АЙ_Ленин»

Широкое распространение СМИ в сети привело к формированию группы тематических экспертов — лидеров общественного мнения — блогеров. Их задача — оценка и анализ фактов, подача информации через призму собственного мнения.Закономерно, мысленное упражнение, как человек, оставивший след в истории, оценил бы тот или иной современный факт.

     24.08.2026       Выпуск 663 (24.08.2026 - 30.08.2026)       Статьи

SIMD in Pure Python

SIMD is Single Instruction, Multiple Data, an approach that does calculations with vectors of data sets. Python doesn’t support it natively, but libraries like NumPy allow you to code this way.

     23.08.2026       Выпуск 662 (17.08.2026 - 23.08.2026)       Статьи

Что вы увидели на картинке первым? Спрашиваем трансформер

Что видит трансформер: крокодила, лодку или силуэт человека? Проверяем BLIP на визуальных иллюзиях. Наверняка многие видели картинки-тесты, которые предлагают по тому, что первым бросилось в глаза определить характер, какое полушарие доминирует или что-то еще. Обычно на этих изображениях находится несколько объектов или один объект меняется в зависимости от "угла" обзора. А что будет, если попросить трансформер описать эти картинки? Что "увидит" он и на что он "обратит внимание"?

     22.08.2026       Выпуск 662 (17.08.2026 - 23.08.2026)       Статьи

Развитие FastAPI приложения в ходе разработки production-системы

Полтора года назад я написал о своём подходе к структуре FastAPI-приложений. С тех пор два крупных проекта, production и несколько архитектурных граблей заставили меня многое пересмотреть. В этой статье расскажу, что изменилось и какие решения действительно упростили мне разработку.

     21.08.2026       Выпуск 662 (17.08.2026 - 23.08.2026)       Статьи

Как найти остров по одной фотографии: геолокация через геометрию и CUDA

Фото островного курорта. Ни EXIF, ни GPS, ни модели камеры – ничего. Нужно назвать курорт, координаты и сторону света, куда смотрела камера. Пытаться ответить на эти вопросы через google lens – значит упустить возможность повеселиться. Поэтому я взялся за задачу с помощью математики и программирования.