Обновить
512K+

Python *

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

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

Безопасная чистилка Temp: как удалять файлы и ничего не сломать

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

У меня в %TEMP% тихо скопилось гигов пять, и я написал маленькую утилиту, которая чистит это — вручную кнопкой или само по расписанию.

Задача-то копеечная. Но пока писал, вылезла пара занятных вещей: почему «удалить всё из Temp» — так себе идея, как не провалиться по симлинку и не снести файлы за пределами папки, почему os.access на Windows врёт про права на запись, и как чистить по расписанию, вообще не оставляя процесс висеть в памяти.

Читать далее

Прыжок в бесконечность: как под капотом работает RBF SVM

Уровень сложностиСложный
Время на прочтение41 мин
Охват и читатели9.3K

Всех приветствую! Меня зовут Андрей, я студент 4 курса факультета математики и компьютерных наук, автор телеграм-канала Andre | Data Science. Все мы знаем, что направление машинного обучения сейчас на огромном хайпе - практически из-под каждого камня говорят о разных методах и о том, что они способны решить практически любую задачу. Но гайдов, которые бы подробно разбирали работу конкретного метода - от обычной загрузки данных до математического обоснования принципа его работы и визуализации каждого шага, - катастрофически мало.

В этой статье я хочу закрыть этот пробел и разобрать один конкретный метод - RBF SVM. Мы посмотрим, как он устроен с математической точки зрения, как появился на свет, какие у него есть сильные и слабые стороны и с чем они связаны. Также протестируем его на реальных датасетах. Так как аудитория IT-сообщества довольно широкая, я постараюсь очень подробно расписывать каждое определение и каждую часть своего повествования, чтобы по ходу чтения у вас возникало как можно меньше вопросов и нить понимания не обрывалась.

Читать далее

lukidown — Telegram бот для загрузки всего отовсюду

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

Я написал бота на Python, используя библиотеки kurigram, yt‑dlp и ffmpeg. Данный бот умеет скачивать что‑то (в зависимости от площадки) из следующих платформ: YouTube, TikTok, Instagram, Pinterest, Rutube, VK, Spotify, Shazam, Yandex Music, SoundCloud, VK Music, Deezer, Apple Music, Tenor, JioSaavn, Twitch (только клипы), Snapchat, Reddit, Kinopoisk.

Читать далее

Ссылку засчитали, компанию не рекомендовали: как проверить видимость бренда в ответах ИИ

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

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

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

Читать далее

Положил http:// в строку, и ассемблер молча собрал 0 байт

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

Мой ассемблер резал исходник построчными правилами: срезал комментарий, искал двоеточие, делил по запятым. Я заменил это одним проходом с состоянием и попутно проверил, нельзя ли было обойтись заплатками.

Нельзя: вторая заплатка ломает то, что починила первая.

Куда делись байты?

Химический калькулятор для расчета фазового состава

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

Привет, Хабр!

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

Так появилась идея заранее просчитать ряд систем, сохранить результаты и потом эти результаты выдавать из базы данных. И я так и поступил. Выбрал температурный диапазон пошире (до 3000 К), 2 базы данных веществ (с газами и без).

Сначала запустил программу на перебор по парам всех возможных элементов из таблицы Менделеева, и для каждой пары запускал расчёт их взаимодействий. Расчёт длился около суток.

После я проделал то же самое с 3мя элементами. Расчет занял около недели.

Четыре элемента рассчитывались около месяца.

Прикинув, сколько займёт расчёт 5ти элементов, я решил закончить на 4х.

После этого сделал бэкенд на сайт по извлечению соответствующего результата.

С одной стороны этот функционал бесплатно закрывает множество основных потребностей, с другой стороны рекламирует более сложные расчёты.

И конечно же мне после этого захотелось сделать соответствующее мобильное приложение. Быстро сделал WebView обёртку на сайт. Отправил в магазин Гугл – и получил не только отказ, но и удаление всех своих предыдущих приложений.

 Долго пытался зарегистрироваться на RuStore. И потом уже быстро получил отказ, мол WebView у нас не катируются.

Полез разбираться – и оказалось, что с того момента, как я написал последнее нормальное приложение, много чего поменялось. Придётся изучить и Kotlin, и много чего ещё. Либо писать с ИИ. Поэтому мысль о приложении отложил на будущее.

Читать далее

TLS PSK для Mamonsu: как мы добавили защищённую передачу PostgreSQL‑метрик в Zabbix

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

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

У нас получилось немного иначе.

При подключении нового пилотного контура PostgreSQL к Zabbix выяснилось, что Mamonsu успешно работает с базой данных и собирает метрики, но не может передать их на сервер мониторинга, если тот принимает от узла только защищённые соединения с TLS PSK.

Можно было изменить настройки Zabbix или построить обходную схему вокруг штатного zabbix_sender. Вместо этого мы решили доработать сам Mamonsu. В результате появилась поддержка TLS PSK и сертификатов с сохранением совместимости как со старыми серверными версиями Python, так и с современными версиями Python, где PSK уже поддерживается стандартным модулем ssl.

Доработку проверили на пилотном контуре, после чего отправили разработчикам Mamonsu в upstream.

Читать далее

Сколько ваших проверок хоть раз возвращали False?

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

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

Починил и задумался: а остальные шестьдесят проверок качества что-нибудь измеряют? Написал инструмент, который портит документы изнутри схемы и смотрит, какие проверки реагируют. Тридцать не реагируют ни на что.

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

Читать далее

Четыре CMS, один интерфейс публикации: WordPress, 1С-Битрикс, InSales и Joomla

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

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

Оказалось наоборот. Четыре CMS — четыре разных мира, и в каждом свой способ соврать вам об успехе.

Joomla возвращает 400, когда статья уже создана: плагин «Умный поиск» падает после записи в базу. Повторили запрос — получили дубль. InSales требует published_at даже у черновика, потому что черновиков там просто нет. А у 1С-Битрикс метода для создания статьи через API не существует вовсе — официальная документация прямо говорит про read-only режим.

Внутри: как выглядит общий интерфейс на четыре системы, почему CIBlockElement::Add() возвращает ошибку при успешно созданном элементе, зачем понадобилась двойная буферизация вывода и прямой SQL в обход автотранслитерации.

Читать далее!

Неделя после Хабра: почта человека нашлась в его же коммитах, а мой скоринг раздавал 50 очков даром

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

Шесть дней назад я рассказал здесь про resume2human — программу, которая из резюме делает список вакансий и по каждой находит 1–3 живых человека с именем, ролью и адресом, чтобы написать им напрямую. За неделю в проект уехал 21 коммит в девяти PR, тестов стало 746 вместо 345, и я нарушил ровно половину обещаний, которые дал в том тексте. Внутри: бесплатная ступень поиска личных контактов, которая держится на git вместо платных баз; три бага, из-за которых прогон честно искал не то, что просили; и разбор того, почему покрытие пустого множества равно единице и что это стоило мне в скоринге.

Читать далее

Ежедневный ряд подписчиков в MAX: публичный эндпоинт, четыре грабли и почему not_found — не измерение

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

У мессенджера MAX нет публичного API со статистикой каналов. Числа есть у каталогов-агрегаторов, но они чужие и заморожены с 10 июля. Нам нужен был свой ряд подписчиков — и мы полгода снимаем его каждую ночь с публичного data-эндпоинта max.ru.

Ниже — как устроен сбор и четыре места, где мы ошиблись. Самая дорогая ошибка стоила трёх ночей молчащего ряда при зелёном логе и exit 0: парсер на любую неудачу писал один статус not_found, а под него попадали три разных события — канала нет, max.ru сменил формат, нас затроттлило. Пока они не разделены, скрипт ничего не измеряет — он производит число, похожее на измерение.

Читать далее

Велосипед для покрытия: когда стандартные инструменты не справляются

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

Что делать, когда есть вполне стандартная задача, но популярные инструменты не могут ее решить? Правильно, время - изобретать свой велосипед.

Задача состоит в следующем: есть некие параметры, часть из которых может быть объединена в каскады, нужно вычислить покрытие параметров, при этом учитывать, что если есть тесты на каскад, в котором присутствует параметр, то параметр считается покрытым.

Видим, что нам необходимо проверять на покрытие именно сущности, а не ветвление, сценарии или код, как это делают, допустим, coverage.py или pytest-cov

Читать далее

Как оптимизировать выгрузку данных, когда не хватает вычислительных ресурсов

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

Привет, Хабр! Меня зовут Александр, и я занимаюсь развитием системы расчета налога на дополнительный доход в ИТ‑кластере. В этой статье расскажу, как без боли для себя и для пользователя выгрузить большие таблицы из базы данных и предоставить их пользователю в xls‑формате. Рассмотрю вариант выгрузки всех необходимых данных в одном файле без кэширования и объясню, почему такое подход не будет работать.

Читать далее

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

Мы научили ИИ-агента забывать — и он стал помнить лучше

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

700+ часов с Claude Code научили меня: агент забывает всё между сессиями и уверенно повторяет уже отвергнутые подходы. Я собрал skillmem — открытый локальный слой памяти, где запись бесплатна (SQLite, без LLM-вызовов), поиск двуязычный, а неиспользуемые навыки угасают по кривой Эббингауза. Внутри — архитектура, бенчмарк LongMemEval и почему забывание оказалось главной фичей.

Читать далее

Активировать мало — недостаточно: почему AI-роутеру могут понадобиться альтернативные стратегии

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

Если отбросить числа, идея выглядит просто. Системе доступна большая ёмкость, но для каждого небольшого шага она использует не всё сразу.

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

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

Погружаемся в статью

Используем Buildozer для компиляции python в apk. Проблемы, решения и личный опыт

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

В статье мы познакомимся с Buildozer и научимся собирать APK из python с его помощью. Я собрал готовое решение, как без плясок с бубном и вызова “Богов кодинга” собрать проект.

Читать далее

Just A While Loop (JAWL): асинхронный Python‑фреймворк для событийно‑управляемых ИИ‑агентов с гибридным RAG

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

В марте я уже выкладывал материал про свой ранний проект - AAF (Autonomous Agent Framework). Это был базовый эксперимент, на котором я обкатывал концепции локального контекста и вызова инструментов. За прошедшие месяцы я переписал архитектуру с нуля, учтя накопленный опыт, и сформировал новый фреймворк - JAWL (Just A While Loop).

Если посмотреть на актуальный ландшафт опенсорсных автономных агентов, выделяются два интересных проекта: OpenClaw (созданный Питером Штайнбергером) и Hermes Agent (от Nous Research).

Читать далее

Я разбил две машины и написал оркестратор ИИ‑агентов

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

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

В январе 2026 я вышел на рынок труда искать своего идеального работодателя. Все тестовые задания для SEO-специалиста одинаковы до банальности: провести аудит сайта, написать ТЗ, дать рекомендации. После первого же тестового я понял, что не готов сделать ещё сотню таких. И решил, что помощника проще написать, чем искать, учить, терпеть и оплачивать.

9 января 2026 появилась первая строка кода. Сегодня это Оракул — оркестратор ИИ-агентов: 465 коммитов, ~20 000 строк Python, четыре LLM-провайдера, планировщик, MCP-сервер и первые клиенты. Загрузка по основной работе никуда не делась, так что весь проект — это примерно 4 часа в день.

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

Читать далее

Я прогнал топ VRAM-калькуляторов для LLM — все ошибаются в одном и том же

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

Наивная формула «веса + KV < VRAM» промахивается по двум причинам, и обе стоят денег. Первая: движок (vLLM, SGLang, TensorRT-LLM) резервирует почти всю память под свой пул ещё до того, как вы посчитали KV — поэтому ответ «сколько запросов влезет» всегда мимо, в сторону «влезет», а потом OOM под нагрузкой. Вторая, которую в уме не посчитать: на DeepSeek-V2-Lite обычная формула завышает KV в 7–11 раз, и промах уже в обратную сторону — зря откажетесь ставить модель.

Я прогнал топ VRAM-калькуляторов из выдачи Google, показал на скриншотах, где ломается каждый (даже лучший), сверил числа с живым vLLM на A100/H100 — расхождение ~1% — и собрал ridgepoint: калькулятор, который считает как движок, а не как учебник. Ставится локально (pip install ridgepoint), GPU не нужен.

Сколько реально влезет

Гейт зелёный, а полезные результаты теряются: три ошибки в LLM-конвейере

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

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

Читать далее