Обновить
256K+

Python *

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

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

Как не проиграть свою голову в битве с AI

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

Битва уже идёт, даже если ты этого не замечаешь. Более того, AI уже побеждает!

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

В бой!

Wazuh без ограничений дашборда: работаем напрямую с индексами

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

На связи Андрей, руководитель направления безопасности облака в Selectel. В статье расскажу, как работать с индексами Wazuh напрямую через OpenSearch. Такой подход пригодится, когда встроенных возможностей Wazuh уже не хватает: нужно собрать собственный отчет, посчитать статистику по всей инфраструктуре, настроить нестандартный алертинг или выгрузить данные для BI и других внешних систем. Вместо того чтобы обходить ограничения дашбордов, мы научимся работать с тем, где эти данные хранятся на самом деле.

Под катом разберем, какие индексы есть в Wazuh 4.14, как устроены документы внутри них, как безопасно читать данные из Python и не создавать лишнюю нагрузку на кластер. А в конце посмотрим, что изменится в Wazuh 5.0 и к чему стоит подготовить свои скрипты уже сейчас. Небольшой спойлер: индексы там переименовали целиком.

Под кат →

Структурированные логи в FastAPI: практический гайд от request_id до trace_id

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

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

На примере FastAPI соберём JSON‑логирование, в котором запрос можно проследить целиком, ошибки — фильтровать по типу, а задержки — анализировать по duration_ms.

Читать далее

Я думал, что 16 воркеров ускорят обработку задач в 16 раз. Но что‑то пошло не так

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

Недавно я написал свою систему распределённой обработки задач. Сначала это был учебный проект. Мне хотелось лучше разобраться в очередях задач, координации воркеров, блокировках строк в PostgreSQL, retry‑механизмах и планировании фоновых задач.

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

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

Увеличение количества воркеров с 16 до 32 практически не дало прироста производительности, а при 64 воркерах ситуация стала ещё интереснее: задачи, которые должны были выполняться около 0.5 секунды, начали занимать больше секунды.

Первой моей мыслью было, что я упёрся в PostgreSQL.
Оказалось, что нет.

Читать далее

Я хотел просто спросить нейросети, где искать квартиру. В итоге собрал исследовательский пайплайн с 1197 тестами

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

Вокруг GEO‑продвижения слишком много разговоров о том, как попасть в ответы нейросетей, какие сайты любят ИИ и что нужно сделать для того, чтобы бренд чаще рекомендовали в выдаче. Но чем больше я погружался в тему, тем сильнее меня смущало то, что большую часть таких выводов делают по нескольким ручным запросам. Спросили нейросеть 5–10 раз, увидели несколько знакомых брендов и уже делают выводы о видимости компании.

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

Читать далее

Мне нужен был скрипт для выключения виртуалок. В итоге я написал VDI

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

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

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

Первое решение было очевидным — скрипт по таймауту. Никто не подключён N минут — машина гасится. Понадобилась — поднимается.

Скрипт я написал за вечер, и он даже работал, но по итогу я изобрёл VDI. Только не так, что посмотрел готовые решения и они меня не устроили, — я вообще не формулировал свою задачу как «нужен VDI» и потому не искал. Я решал «пусть виртуалки сами гасятся», а всё остальное наросло само, вопрос за вопросом. Когда стало очевидно, во что это превратилось, переезжать на готовое было уже и поздно, и незачем.

Дальше разбираю вопросы, которые нарастали.

Читать далее

Тенденции и тренды Python разработки

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

Как быть востребованным Python разработчиком? Какие технологии нужно знать, чтобы легко найти работу? Какие библиотеки и фреймворки уходят в закат и перестают пользоваться популярностью? На все эти вопросы вы получите ответ в этой статье.

Цель статьи: развеять мифы относительно реального применения различных технологий, библиотек и фреймворков в коммерческой Python разработке. После чтения статьи вы научитесь принимать верные решения относительно изучения той или иной технологии, чтобы всегда оставаться востребованным разработчиком.

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

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

Сегодня мы будем говорить преимущественно о таких гигантах, как Django, FastAPI и Flask, а также затронем не менее важные библиотеки: для работы с базами данных, тестирования, сборки проектов. Поговорим о таких противостояниях, как uv vs poetry, pytest vs unittest и других. В общем, будет интересно. Усаживайтесь поудобнее и погнали!

Вы, скорее всего, встречались с кардинально противоположными мнениями: "Django умер, да здравствует FastAPI", "Сейчас на FastAPI уже не пишут, встречай LiteStar", "Вообще на FastAPI особо ничего не пишем, только на Django".

Читать далее

TabFM против XGBoost: 5 фактов, которых нет в релизе

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

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

Читать далее

Эволюция подхода к сжатию контекста в AI Агентах

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

AI-агенты - это цикл обмена сообщениями между пользователем и языковой моделью (LLM), где для ответа пользователю модель может обратиться к доступным ей напрямую инструментам (tools) или через настроенные для неё MCP. Каждое такое взаимодействие дописывает историю диалога. Для простоты часто считают, что вся эта история и уходит в любой следующий вызов модели - иначе она «не вспомнит», о чём шла речь, и криво соберёт ответ.

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

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

Читать далее

Как я первый в Казахстане измерил ИИ видимость банков (и что из этого вышло)

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

Это моя первая публикация на Хабре, который я читаю уже лет 10... Так что, если честно, даже немного трясусь от волнения. Всё равно что смотреть футбол и выйти на поле в составе моего любимого Кайрата. Но постараюсь без лирики и перейду к делу.

Итак, в 2026 году уже всем как будто понятно, что потенциальные клиенты всё чаще выбирают банк не в поиске, а в диалоге с нейросетью (хотя многие с этим до сих пор почему‑то спорят). На выходе клиент получает короткий список из трёх‑четырёх названий.

Так как я занимаюсь аналитикой данных, мне стало интересно, по какому принципу этот список собирается, как эти данные обрабатываются, и кто вообще попадает в этот заветный шорт‑лист.

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

Читать далее

Как работают текстовые ИИ-вотермарки и как их обходить

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

Наверное уже многие знают, что в силу недавно вступивших в ЕС законов, регулирующих использование ИИ, провайдеры LLM обязаны помечать ИИ-сгенерированные тексты. Та же Claude недавно обновила справочную информацию о работе своей помечалки сгенерированного ИИ контента, в том числе и текста. Но в подробности его работы почему-то вдаваться не стала, как и размещать в публичном доступе средства добавления и обнаружения этих самых вотермарок.

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

Читать далее

Ваш бэктест нейронки врёт на ±10 процентных пунктов

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

Недавно я решил проверить на себе классический сюжет: может ли нейронка зарабатывать на бирже. Не «взял стратегию с ютуба», а как положено инженеру: собрал данные Мосбиржи, построил честный walk‑forward пайплайн, зашил комиссии в каждую цифру и стал измерять.

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

Подозреваю, что этим страдает заметная часть статей вида «я обучил LSTM на котировках и получил X% годовых». Проверить легко: спросите автора, что будет, если поменять random seed.

Читать далее

Игра-головоломка «Прогулка по подземельям»

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

Прогулка по подземельям — это минималистичная, но при этом очень интересная и сложная головоломка из игры MIT Mystery Hunt 2014 года. Она представляла собой видеоигру со множеством уровней, каждый из которых был подземельем с различными препятствиями и врагами, которые игроку нужно было преодолеть, чтобы добраться до выхода. Пройти первые несколько уровней не представляло особого труда — их главной целью было познакомить игрока с основными механиками игры. Однако затем сложность и оригинальность уровней резко возрастали, и каждый их них представлял собой уже далеко не тривиальную задачу.

Читать далее

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

Программный код летучий

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

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

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

Читать далее

ISO 9797-1: поросячья латынь

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

Увы, у меня нет профильного математического образования (я вообще гуманитарий), потому любой стандарт по криптографии для меня ничто иное, как поросячья латынь. А после детального изучения приходит горькое осознание, что это я лезу в калашный ряд со свиным рылом... И вот прилетела задача, решить которую промптом не получится (я пробовал, честно), а потому надо лезть в калашный ряд ISO9797-1 и смотреть, что там такое делается. Результаты изучения решил расписать здесь, т.к. может кому-то будет полезно, а может кто-то из crypto-лордов укажет на недочеты/ошибки.

Читать далее

Книга: «Современная бизнес-аналитика. Увеличьте ценность данных с помощью Python и R»

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

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

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

Читать далее

В Telegram-бот пришли 300 человек. Через полгода регулярно возвращаются 11. Разбираю, где я накосячил

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

После моей прошлой статьи в Telegram-бот за один день пришли 60 человек. Я тогда подумал: ну всё, полетело. Спойлер: не полетело.

Сейчас в базе почти 300 аккаунтов, за неделю возвращаются 11 человек, средний DAU 7, а реферальная программа привела троих. Разбираю честную воронку, ошибки с метриками, странный парадокс обратной связи и V2, которая должна проверить одну конкретную вещь: получится ли удержать хотя бы четыре возвращения из семи.

Посмотреть честный разбор

Как за 5 недель построить рекомендательную систему в TravelTech: Kafka и MongoDB вместо Feature Store

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

Привет! Меня зовут Кристина, я MLOps-инженер в Туту. Занимаюсь тем, что помогаю рекомендательным системам добраться до прода со всеми компромиссами, горящими дедлайнами и новыми идеями. 

Эта статья — про один из таких запусков.

В идеальном ML-мире запуск рекомендаций выглядит примерно так: полгода проектируют хранилище признаков (Feature Store), настраивают, откуда и как берутся данные, гоняют тяжёлые расчёты фичей и моделей, а отдельная команда следит, не деградирует ли модель из‑за изменений в данных. 

В реальном бизнесе у тебя есть 5 недель до старта высокого сезона, два инженера, DS и задача: сделать так, чтобы пользователь, который купил билет, сразу увидел релевантный отель. Рассказываем, как мы собрали работающую RecSys v1 на привычном стеке: Kafka, MongoDB, ClickHouse. При этом мы сознательно отказались от перфекционизма ради скорости.

Инженерный вызов здесь не в масштабе и не в алгоритмах, а в контексте. Cross-sell в travel — это не «похожие товары». 

Пример

Пользователь купил билет Москва → Сочи на 10–17 июля: значит, нужно показать отели именно в Сочи, именно на эти даты. 

Коллаборативная фильтрация без контекста поездки — «похожие пользователи → похожие отели» — не знает ни город, ни даты, ни то, что заказ только что оплачен и его ещё нет в DWH. 

Нужен подход, где контекст конкретной поездки — куда, когда, с кем — задаётся явно до ранжирования.

«Правильный» путь —  Feature Store и полноценная ML-платформа, занял бы 4–6 месяцев. Бизнесу нужно было проверить гипотезу на живом трафике. Мы собрали v1 на том, что уже работало в проде, с некоторыми компромиссами и без иллюзий насчёт идеальной архитектуры. 

Читать далее

Почему цена Bitcoin «сломалась»: разбор аномалий 2022–2026 с WhyTrend

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

Увидел провал на графике → открыл Google или Twitter → полдня собираешь версии "почему". Знакомо? Детектор аномалий сам по себе даёт только точки на оси времени, а вопрос "почему" как был ручным, так и остаётся.

В этот раз я прогнал WhyTrend не на паре аккуратных точек из Google Trends, а на полном ряде BTC за 4.5 года — и заодно на двух разных LLM. Результат оказался неожиданным: модель меньшего размера дала в три раза больше настоящих объяснений, чем более крупная. Расскажу, что случилось и почему.

Читать далее

73 замечания начальника как датасет: делаем цифрового двойника рецензента

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

У меня есть руководитель, который очень хорошо ревьюит документы. Настолько хорошо, что один его проход по моим текстам породил 73 комментария. За один день.

Первая реакция была ожидаемая: сесть и править. Вторая пришла минут через десять и оказалась продуктивнее: это же датасет.

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

Смотреть все 16 правил