Обновить
512K+

Python *

Высокоуровневый язык программирования

450,19
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Кнопка нажата, а ответа нет: как не потерять действие пользователя и не наделать дублей

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели4.7K

Пользователь нажал кнопку, сеть пропала, а браузер не знает, дошёл ли запрос до сервера. Повторите запрос — можно получить дубль. Не повторяйте — потеряете действие.

Показываю схему, которая решает обе проблемы: API без toggle, ключ идемпотентности в PostgreSQL, очередь в IndexedDB, Service Worker и проверка офлайна в Playwright. Это не полный offline-first — только защита действий в момент обрыва связи.

Разобраться с повторами

Новости

Генератор музыкальных видео на Python: зерно раздуло файл в 13 раз, спектр врал на тишине, AV1 выиграл втрое

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели3.9K

Я отрендерил трёхминутный ролик из одной статичной картинки и получил файл на 472 МБ. Виновным оказалось плёночное зерно: шум амплитудой меньше 2 % шкалы, который почти не видно, умножает размер видео на тринадцать, а попиксельный — на тридцать три.

Разбираюсь, почему межкадровое сжатие ломается именно о шум, чиню это тремя способами (зерно блоками, другой кодек, синтез зерна в AV1) и меряю результат по VMAF: при одинаковом качестве x264 просит 15.2 Мбит/с, а AV1 — 4.4. Заодно ловлю собственный визуализатор спектра на вранье — на цифровой тишине он бодро плясал на 0.885 от полной высоты — и разбираю три грабли, включая пустую строку в argparse, которая вписала слово «использование» внутрь prog.

Читать далее

Агент пишет код. Что тогда остаётся инженеру данных?

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели4.6K

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

Такую работу удобно поручать Агенту.

Опять агенты

Подключил локальную Gemma к Codex, чтобы экономить лимит. На простой задаче расход вырос вдвое

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели6K

У меня MacBook Pro 16 2019 года: шестиядерный Intel Core i7, 16 ГБ оперативной памяти и Radeon Pro 5300M с 4 ГБ VRAM. На нём уже стояли Ollama, gemma3:4b и gemma2:2b.

Идея казалась очевидной: зачем тратить облачный Codex на разбор короткого traceback, сводку лога или commit message? Пусть Codex отдаёт такую работу локальной модели, получает готовый результат и занимается только сложными задачами.

Я сделал MCP-сервер, подключил его к Codex, прогнал одинаковые задачи и посмотрел точный расход токенов. Интеграция заработала. Экономия — нет.

На одной простой задаче маршрут через локальную модель использовал примерно в два раза больше облачного input, чем прямой ответ Codex.

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

Читать далее

Graceful Shutdown в Python-приложениях на Kubernetes: внедрение и практический опыт

Время на прочтение8 мин
Охват и читатели5.2K

Часто ли вы сталкиваетесь с проблемой потери данных, неконсистентными состояниями или ошибками в Sentry о внезапно закрытых соединениях при рестарте сервисов? Если вы когда-нибудь пытались это исправить, то наверняка слышали про Graceful Shutdown.

Привет! Меня зовут Антон, я бэкенд-разработчик Python в Selectel. В этой статье поделюсь опытом внедрения Graceful Shutdown в наши сервисы и расскажу, с какими сложностями мы столкнулись.

Читать далее

Автоматизация процесса привлечения инвестиций

Время на прочтение6 мин
Охват и читатели7.8K

У меня есть проекты, на который я привлекаю инвестиции. Потому что эти инвестиции помогут проектам масштабироваться, привлечь больше юзеров, выполнять задачи большего масштаба и тд и тп - в общем все, что будет приносить этим проектам больше денег. Соответственно, инвесторы с этого получат хороший процент прибыли.

Я автоматизировал почти всю цепочку действий по фандрейзингу: сбор инвесторов из источников, отбор, отправку им сообщений через свою CRM, отслеживание ответов и вывод на звонок.

Чуть ниже описываю, как делал и какие цифры получились. Ну и где не получилось так, как мне бы хотелось.

Читать далее

async def или def в FastAPI: как одна строчка делает сервис в 40 раз медленнее

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели8.4K

В FastAPI можно объявить обработчик как async def, а можно как обычный def. Многие ставят async везде «потому что так быстрее» и спокойно вызывают внутри requests.get() или синхронный драйвер БД. Сервис при этом работает, тесты проходят, а на первой же реальной нагрузке всё встаёт колом, причём вместе с health‑check'ом.

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

Читать далее

PhishIntel — инструмент WEB‑разведки для сбора публичных данных с сайтов и доменов

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели11K

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

PhishIntel написан на Python и немного приправлен Go, не требует установки дополнительных библиотек, запускается полностью готовым к бою одной командой.

Читать далее

Работа со сторонними библиотеками в Java Card

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели6.1K

В статье «Асимметричная криптография в Java Card» был приведен пример по установке защищенного канала в два этапа:

1. генерация общего секрета по алгоритму ECDH;
2. использование общего секрета в качестве ключа AES.

В этой статье речь пойдет о написании библиотек (апплеты, не наследующие от javacard.framework.Applet), их загрузке и линковке с апплетами на карте. По касательной затронем VSCode, библиотеку взаимодействия с картой FunGP и нюансы инструмента сборки .cap-файлов ant-javacard.

Читать далее

Как мы внедряли сквозное логирование в монолит

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели6.3K

Всем привет, давайте представим ситуацию, у вас есть зоопарк из сервисов и сторонних интеграцией, и вот как-то раз, ваша складская система написанная на 1С присылает к вам на ручку запрос с информацией по товару и дальше все начинает идти не по плану, и ожидаемое действие не произошло, ваш сервис что-то сделал, но вот что именно вы не знаете под валом таких же запросов, а отловить нужный запрос никак не получается. Если ситуация знакома, то решение вам отзовется в сердечке. Мы столкнулись с таким кейсом на проекте заказчика. Чтобы отдебажить весь путь события, пришлось потратить немало времени на поиск всех вызываемых зависимостей и определить момент, в котором всё пошло не так. Повторять такой сценарий не хотелось, поэтому мы решили повысить наблюдаемость за сервисами заказчика с помощью сквозного логирования. Повторение подобного кейса мы не захотели пережить и решили повысить наблюдаемость за нашими сервисами с помощью сквозного логирования.

Читать далее

Кредитный радар: LLM-воркфлоу, который каждое утро читает условия 12 банков и сам проверяет свои числа

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели6.7K

TL;DR. Собрал воркфлоу на языковой модели, который раз в сутки обходит 34 страницы условий у 12 российских банков, сравнивает их со вчерашним снимком и публикует сводку изменений с ссылкой на источник в каждой строке, а при изменении цены пишет разбор с расчётом. Модель вызывается в четырёх точках и ни в одной не решает, что делать дальше. Цитаты, числа и статистика проверяются кодом. Каждый выпуск оценивается по 14 бинарным проверкам, метрики публичные. Стоит от 3 центов до 70 в день. Ниже устройство, проверки, evals и что он нашёл за первую неделю.

Я работаю в розничных кредитных рисках банка. С языковыми моделями познакомился пару недель назад, начал собирать себе инструменты, и один из них за это время дорос до публичного продукта: Telegram-канал и сайт, где каждое утро в 09:00 выходит сводка изменений условий кредитных карт, рассрочки, кредитов наличными и автокредитов, а когда есть повод, короткий разбор одного изменения.

Как устроен и что нашел

Как проверяющий ИИ испортил правильные ответы: разбор генератора учебных заданий

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели5.5K

Генератор учебных заданий положил «маши…ый» в правильную корзину, а проверка переложила слово в неправильную. При этом модель-арбитр в своём же объяснении написала «машинный». Разбираем по сохранённым ответам три сбоя проверяющей модели: что пошло не так в процессе, что поменяли в коде и чего эти правки не доказывают.

Читать далее

Сорок раундов ревью на код, который уже был отревьюен: что два ИИ-ревьюера нашли друг за другом

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели4.6K

Код skillmem прошёл два независимых ревью, и я считал его чистым. Потом две модели с разных сторон — Claude и GPT — сорок раундов подряд читали его враждебно, обязанные воспроизводить каждую находку командой. Шесть P1 и около двадцати пяти P2 в коде, который «уже был отревьюен», и главный урок: каждый второй фикс рождал регрессию, которую ловил только следующий раунд.

Читать далее

Ближайшие события

Я устала листать вакансии в телеге и собрала себе агрегатор. Бесплатный, на GitHub Pages и без API нейросетей

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели10K

Если вы ищите работу и у вас много телеграм-каналов с вакансиями, слова апи, python, гитхаб вам знакомы, то вам будет полезно. Мой кейс: когда я искала работу то смотрела по 50+ постов в день в десятках каналов в телеге, из них подходящих вакансий было штук 10, одна и та же вакансия висит в четырёх каналах, половина постов это курсы и "ищу работу", фильтров никаких. Платить за агрегатор мне не хотелось.

Собрала свой сервис, который вы можете адаптировать под любую роль: скрипт читает папку каналов в Telegram, отсеивает не-вакансии, вытаскивает компанию, грейд, город и зарплату, склеивает дубли и раз в день выкладывает одну страницу с фильтрами на GitHub Pages. Стоимость - ноль, ключи нужны только от Telegram.

Читать далее

Как мы измеряли рекламные обещания регулярками и почему первая выгрузка соврала вдвое

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели8.2K

Нам понадобились свои данные о том, как устроены страницы, продающие франшизы. Не мнение, не подборка скриншотов, а числа, которые можно пересчитать через полгода и сравнить. Готовых датасетов по этой нише нет, поэтому мы написали скрипт: он забирает шестнадцать страниц, ищет на них набор признаков и складывает результат в JSON.

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

Читать далее

Как писать моки, чтобы тесты падали вместе с продом: 7 частых ошибок

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели6.5K

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

В статье разберём типичные ошибки при работе с unittest.mock, особенности patch, spec и autospec, а также когда лучше использовать фейки вместо моков.

Разобрать ошибки

Как я собрал охранника для комнаты на YOLO и подключил его к Telegram

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели10K

Я живу один, и обычно знаю, кто может быть у меня дома. Но во время отъезда в голову иногда лезут неприятные мысли. «А вдруг кто-то всё-таки заходил, пока меня не было?». Это мог быть сосед, родственник или мастер, но без камеры остаётся только гадать.

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

В этой статье расскажу, зачем здесь вообще нужна YOLO и почему простого детектора движения оказалось мало. Как я проверял работоспособность проекта в реальных условиях, почему не отправляю в чат обычные фотографии людей и как организована приватность. А также как подключить телефон в качестве камеры и вынести тяжёлую обработку на удалённый сервер.

Смотреть дальше

Как массово преобразовать DOCM в DOCX: готовое решение

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели5.1K

Вот было у Вас такое, что на вход реализованному на Python автоматизированному процессу, принципиально не использующему приложение Microsoft Word и COM‑объекты, нет‑нет да и придет файл с расширением docm? Ведь фактически, чтобы обращаться к текстовым файлам, на текущий момент в экосистеме Python существует только одна более‑менее функциональная (и, что греха таить, бесплатная) библиотека — python‑docx. А она позволяет работать только с docx‑файлами...

Читать далее

IMPulse: аутентификация, Inhibition, Maintenance и шаблоны тредов

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели5.8K

IMPulse - ChatOps система менеджмента инцидентов. Если вы получаете алерты напрямую от Alertmanager, IMPulse поможет формировать из них полноценные инциденты с эскалацией, ответственными и тредом обсуждения проблемы. Подробности в статье.

После прошлого поста вышли v3.4.0-v3.7.0. Ниже - что изменилось по факту.

Читать далее

Одиннадцать релизов за сутки: как мы чинили память ИИ-агента и что из этого вышло

Время на прочтение5 мин
Охват и читатели8.1K

Я сел проверить собственный инструмент — локальную память для кодовых агентов — и нашёл в нём подряд одиннадцать вещей, которые надо было чинить. Stop-хук, рекурсивно породивший 4083 сессии за сутки; recall, мёртвый на обычной установке; миграция на 66 секунд внутри хука с таймаутом 10. Разбор каждого пункта: что сломалось, как чинили и кто это нашёл — я, внешнее ревью другой моделью, CI или проверка на живой Ubuntu.

Читать далее
1
23 ...