Обновить
256K+

Python *

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

363,97
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности
Формат публикации

Гвидо ван Россум: памяти Тима Питерса (1952–2026)

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

Создатель языка программирования Python Гвидо ван Россум с глубокой печалью сообщил, что 15 июля этого года скончался Тим Питерс. «Трудно переоценить вклад Тима в развитие Python. Вероятно, больше всего он известен как автор Zen of Python (PEP 20), но для меня он был наставником и соавтором языка задолго до этого», — написал ван Россум.

Читать далее

Может ли ИИ писать автотесты за QA-инженера? Проверили на реальных задачах

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

Привет, Хабр! Меня зовут Евгения Мясникова, я QA-инженер SpaceWeb. Передавать искусственному интеллекту рутинные задачи тестирования — подготовку черновиков тест-кейсов, первичное покрытие, оценку трудозатрат и другие — уже стало привычной практикой. Однако при таком разнообразии инструментов важно понять, как эффективно встроить ИИ-агентов в рабочие процессы и распределить задачи между специалистом и нейросетью.

В этой статье расскажу, как мы совместно с руководителем отдела исследований и разработки SpaceWeb Виталием Киреевым разработали первоначальную модель взаимодействия QA-специалиста с LLM. Для работы с чувствительными данными мы интегрировали агента с локальной моделью Qwen3.8-27B. На реальных примерах покажу, в каких задачах ИИ действительно нам помог, а где его применение пока вызывает вопросы.

Читать далее

Presidio на практике: русский язык, свои правила и LiteLLM

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

Как скрывать имена и контакты перед отправкой текста во внешнюю LLM и возвращать их после ответа? Разбираю Presidio: настройку русского языка, собственные правила и интеграцию с LiteLLM. Сравниваю три конфигурации на 20 вымышленных текстах и показываю, где часть адреса остается открытой.

Читать далее

Как я заставляю Linux ломаться одинаково для каждого нового пользователя

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

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

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

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

Расскажу, как сейчас устроена подготовка таких окружений, на примере сценария с cron.

Читать далее

Два месяца я учил нейросеть заполнять опросные листы. Главное оказалось не в нейросети

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

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

Сейчас система совпадает с инженером в 73–86 % строк на трёх объектах, ответов которых она не видела. Рассказываю, почему маленькая NuExtract3 на 4B обошла 27B, почему дообученный поиск не добавил ни одного верного ответа, как метрика врала мне трижды и почему половина бланка оказалась вовсе не вопросами.

Читать далее

Безопасность ИИ в продакшене: на что смотреть, прежде чем станет поздно

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

Приветствую всех читателей! Эта статья — расширенная версия моего доклада «Безопасность ИИ в продакшене: на что смотреть, прежде чем станет поздно». На доклад было 40 минут, поэтому многое пришлось сократить до одной фразы на слайде. Здесь я собрал то, что не влезло: примеры кода с исправлениями, подробности инцидентов, ссылки на первоисточники и ответы на вопросы, которые задают после выступления.

Статья рассчитана на разработчиков уровня junior–middle, тимлидов и всех, кто пишет код вместе с AI-ассистентом: Cursor, GitHub Copilot, Claude Code, Gemini CLI и другими. Глубоких знаний в безопасности не нужно: каждый термин я сначала объясняю простыми словами, а примеры кода — на Python, но идеи переносятся на любой язык.

Сразу обозначу границы: речь пойдёт про код, который мы пишем с помощью AI и выкатываем в прод, и про агентов, которые работают рядом с нами. Безопасность LLM-функций внутри продукта (чат-боты, RAG по данным клиентов) — отдельная большая тема, её я затрагиваю только краем.

Читать далее

Бесплатный сигнал кривизны для сэмплеров flow matching: он предсказывает ошибку

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

Бесплатный сигнал кривизны для сэмплеров flow matching: он предсказывает ошибку, но работу делает статическая сетка шагов

Читать далее

На «ё» бывают не только рестораны. Как разработчикам угрожают две буквы

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

Для человека «е» и «ё» — повод для споров о типографике, а для базы данных и бэкенда — источник тихих коллизий, дублей и уязвимостей. Даже одна буква «ё» в Unicode может храниться двумя разными способами (U+0451 и U+0435 + U+0308), ломая len(), срезы и уникальные индексы.

Разбираемся на примерах в Python и PostgreSQL 18, чем каноническая нормализация (NFC/NFD) отличается от поисковой фильтрации (unaccent), почему стандартная нормализация не спасёт от визуальных подмен (paypal vs pаypаl по UTS #39) и как разделить контуры хранения, поиска и безопасности, чтобы не уронить прод.

Читать далее

Свой BI для стройки без интернета: как реестр документов уехал из общего Excel в PostgreSQL

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

Учёт документов поставщиков на стройке завода жил в двух общих книгах Excel. Кто утром первым открыл свод, тот и работал, остальным доставалось «Только чтение», а комментарий сохранялся у того, кто нажал «Сохранить» последним.

За три месяца реестр переехал в PostgreSQL, а поверх базы вырос свой BI на одной HTML-странице: дашборд, S-кривые, тепловая карта просрочек и карточки поставщиков. Без облака и без интернета, в закрытой сети завода. Рассказываю, как переезжали со сверкой до нуля расхождений, зачем серверная проверка сначала повторила старый макрос и как новый документ стал вставать на своё место в 81 % случаев вместо 47 %.

Читать далее

ETL на базе Apache Spark. Конфигурации преобразования в формате YAML. Сборка решения из «кубиков»

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

В данной статье описываются технологии, использованные для построения полнофункционального ETL на базе Apache Spark. Статья планируется как первая в цикле статей о решении бизнес проблем с помощью созданного ETL с использованием существующих Open-Source решений.

Читать далее

Литобзор без рутины: поиск через API Scopus, WoS и OpenAlex, отбор, PDF и список по ГОСТ

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

Кто писал обзор литературы, знает этот путь. Один и тот же запрос надо составить для трёх баз, у каждой свой синтаксис. Потом списки склеиваются, из них убираются повторы, прочитываются сотни аннотаций. PDF скачиваются по одному через «Войти через организацию», список литературы оформляется по ГОСТ. В конце нужна схема PRISMA, и цифры для неё приходится собирать задним числом. Почти всё здесь — механическая работа.

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

Читать далее

Я не верю в чёрные полосы. Поэтому посчитал серии в ста бросках монеты

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

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

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

Меня и зацепило это противоречие. Я не верю, что одна неудача притягивает следующую, но временами начинаю ожидать именно этого. В попытке разобраться я добрался до философии удачи, исследования полумиллиона ставок и небольшого расчёта на Python. Оказалось, что за сто бросков честной монеты серия из шести одинаковых результатов встречается с вероятностью около 80,7%.

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

Читать далее

Оптимизация расхода ферромарганца в ДСП-3 с помощью Catboost

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

Привет, это Рамиль Максютов со второй частью цикла про плавки в ДСП-3. Первая часть тут: https://habr.com/ru/articles/1105616/
В этой статье на данных из первой части учим CatBoost предсказывать минимальную дозу ферромарганца для выплавки отливки из стали 35Л в дуговой сталеплавильной печи с основной футеровкой.

Читать далее

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

Асинхронный OSINT против WAF: Как я дорабатывал свой сканер периметра до стандартов Kali Linux

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

«Мы не можем упаковывать каждый скрипт в мире, покажите нам реальный интерес комьюнити» — именно такой вежливый отказ прилетел мне от майнтейнеров Kali Linux в ответ на заявку добавить мою утилиту Web-Recon в официальный дистрибутив.

Вызов был принят. За последние недели простой скрипт эволюционировал в зрелый open-source продукт по гайдам Debian Policy: с переходом на src-layout, сборкой .whl колес через pyproject.toml и автоматическими CI/CD пайплайнами в облаке GitHub Actions.

Но главное — я полностью переписал сетевой движок. В этой статье я расскажу, как укрощал реактивную асинхронную мощность asyncio, защищал целевые хосты от случайного DoS-атаки с помощью семафоров и проектировал трехуровневый каскадный конвейер веерной ротации User-Agent для обхода жестких блокировок WAF и Cloudflare. Под капотом — разбор архитектуры стелс-сканирования периметра и инструкция по локальной установке пакета одной командой.

Далее

Python 3.15 включил UTF-8 по умолчанию: что ломается в cp1251 и как это найти до бухгалтерии

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

В Python 3.15 open() без encoding читает и пишет UTF-8 независимо от локали (PEP 686). На русской Windows и серверах с ru_RU.CP1251 это значит падения на выгрузках из 1С и, что хуже, тихие кракозябры в файлах для соседних систем. Воспроизводим на 3.14 и 3.15, находим такие места через EncodingWarning и ruff и чиним так, чтобы код одинаково работал на всех версиях.

Читать далее

Stackette: экспериментальная процессорная архитектура

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

В последние джва года все как ужаленные бросились реализовывать свои пет-проекты при помощи ЛЛМ. В конце концов бросился и я сам.

Читать далее

Opsgenie закрывается в апреле 2027. Я сделал дежурства с эскалациями в Telegram для команд в РФ

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

Atlassian закрыл новые регистрации в Opsgenie в первом квартале 2026 года и назначил 5 апреля 2027 года датой окончания поддержки. Функции дежурств переезжают в Jira Service Management, а для многих команд в России переезд туда закрыт. PagerDuty, incident.io и Rootly либо недоступны, либо заточены под Slack, которым у нас почти никто не пользуется.

Что остаётся? Обычно одно из трёх: бот Zabbix, который шлёт всё подряд в общий чат; Karma поверх Alertmanager, на которую кто-то должен смотреть; или договорённость «если ночью упало — звоните Васе». Все три варианта показывают алерт, но ни один не отвечает на главный вопрос: кто сейчас отвечает за инцидент и что будет, если он не проснулся.

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

Читать далее

Задача «Бедный Йорик»: как добиться от локального синтеза речи переходов на шёпот, пауз и смены эмоционального регистра

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

Для ровной дикторской начитки локальных TTS-моделей сегодня хватает с запасом: подаёшь на вход чистый образец голоса, расставляешь ударения — и получаешь разборчивую озвучку для лекции, технической заметки или видеоинструкции.

Сложности начинаются, когда нужна не дикторская читка, а актёрская игра с широким эмоциональным диапазоном — чтобы внутри одного абзаца голос прошёл через горькую иронию, ком в горле, глухой шёпот на выдохе и резкий эмоциональный срыв. Компактные модели на 0,5B–1,7B параметров такие перепады сглаживают: нейросеть держит среднюю интонацию исходного образца и читает драматический монолог с тем же бодрым выражением, что и документацию к API.

Ниже расскажу, через какие грабли я прошёл, пытаясь решить эту задачу локально — от ручной правки высоты голоса в фонетическом пакете Praat до подбора актёрских референсов — и как с этим справляется вышедшая в конце октября 2026 года модель Fish Audio Drama 3 (35B-A3B MoE) в сравнении с младшей версией S2 Pro (4B).

Читать далее

Есть ли в эмбеддингах «направление негации»? Проверил на 8 моделях

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

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

Идея простая. В word2vec есть знаменитое king − man + woman ≈ queen: «пол» оказывается почти линейным направлением. Есть ли такое «направление негации» в финальных эмбеддингах моделей, то есть в тех векторах, по которым реально ищут? И если есть, можно ли одной такой осью лечить слепоту к отрицанию?

Как я проверял

Читать далее

Как я заставил Windows Server 2003 выйти в современный интернет (и что из этого вышло)

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

Привет, Хабр! Недавно я поднимал в VirtualBox старую Windows Server 2003 R2. Кто-то скажет: «Зачем?». А мне было интересно, как поведет себя система, которая перестала получать обновления много лет назад, если её попробовать «подружить» с современной сетью.

Эпоха Windows Server 2003 и Windows XP — это время, когда интернет был другим. Тогда не было повсеместного HTTPS, сайты весили по 50 килобайт, а основным браузером был Internet Explorer 6. С тех пор веб-стандарты ушли далеко вперед, а протоколы безопасности (TLS) были переписаны с нуля. И если старую систему можно запустить в виртуалке ради ностальгии, то выйти с её помощью в современный интернет — это настоящий вызов.

Главная проблема, с которой я столкнулся — это отсутствие современных протоколов безопасности. Internet Explorer 8 (максимальная версия для Server 2003) физически не может открыть ни один современный сайт, так как он не понимает новые шифры.

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