Обновить
592.28

Python *

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

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

Pech или pyRTOS: вот почему «печка» лучше чем «аналог FreeRTOS»

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

Pech — это Managed Kernel которая следует концептам Mach 3.0. В 2025 году безопасность важнее ручного управления тактами. Я использую высокоуровневый рантайм для создания математически безопасной среды, где баги памяти устранены на уровне архитектуры. Это то, к чему сейчас стремятся проекты вроде Microsoft Singularity или современные ОС на Rust.

В этой статье я попытаюсь как можно больше перечислить ошибок pyRTOS которые были исправлены в Pech.

Читать далее

Новости

Trustworthy experimentation для B2C: как перестать угадывать в A/B‑тестах

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

В продуктовой аналитике легко дойти до того момента, когда экспериментов много, а доверия к результатам все меньше и меньше: тесты закрывают “когда стало понятно”, p-value проверяют чуть ли не каждый день (принимая преждевременные решения), MDE забывают фиксировать, а денежные метрики зашумлены так, что выводы получаются, мягко говоря, спорные.

В этой статье я показываю практический каркас для более надежных A/B-тестов в B2C: как делать анализ мощности и размера выборки для конверсии и ARPU, как интерпретировать кривую мощности анализа теста и trade-off между MDE, длительностью и доступным трафиком, и почему ratio-метрики вроде выручки на сессию часто лучше голого ARPU.

Отдельно разбираю линеаризацию ratio-метрик: как привести их к user-level значениям, чтобы применять стандартные тесты корректнее и стабильнее.

Читать далее

Visual SLAM (Python)

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

В рамках своей научной работы в области роботехники я разрабатываю собственную визуальную SLAM-систему, реализованную полностью на языке Python без использования компилируемых C++-библиотек и сложных внешних зависимостей. Проект находится в стадии активной разработки и представляет собой промежуточный итог моего исследования. В этой статье я делюсь своим субъективным опытом разработки системы, описываю принятые решения и возникшие сложности.

Читать далее

Почему ночных загрузок стало недостаточно: опыт внедрения CDC в М2

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

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

В М2 мы столкнулись с этим, когда от продуктовых команд и службы поддержки начали приходить запросы на внутридневную отчётность и почти real-time метрики. Наш основной подход — ежедневная батчевая загрузка данных — перестал закрывать такие сценарии, и нам понадобился другой способ работы с изменениями в продуктовых базах.

В этой статье я расскажу, как мы внедряли Change Data Capture (CDC) с использованием Apache Flink, какие задачи это помогло решить, с какими ограничениями мы столкнулись и почему CDC — полезный, но не универсальный инструмент.


CDC и Apache Flink: кратко о технологии и нашем подходе

Давайте начнем разбираться. Некоторые из вас наверняка знакомы с понятием CDC, Change Data Capture — техника захвата изменений в базах данных.

Для контекста стоит отметить Apache Flink — движок для загрузки и обработки батчей и стриминговых данных в реальном времени. В статье речь пойдет про Flink CDC —   фреймворк с открытым исходным кодом для отслеживания изменений данных в базах данных в реальном времени.

В проектах нашего отдела в М2 основной метод загрузки — это ежедневное ночное
копирование продуктовых баз данных (PostgreSQL, MongoDB) в аналитическое хранилище на базе Apache Iceberg и последующая их обработка с помощью движка Trino.

Читать далее

ИИ бот-модератор 1: Начало проекта

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

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

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

Вы наверняка задаётесь вопросом: «Почему рубрика называется “ИИ бот-модератор”, а автор тут рассказывает про качество кода?» На самом деле, всё связано.

Telegram-бот для группы — отличный пример проекта, который очень быстро обрастает фичами: команды, настройки, роли, интеграции, хранение данных, логирование, админка, модерация, ИИ и т.д. Если делать всё “в одном файле”, это почти гарантированно закончится болью. Поэтому в этой рубрике мы будем строить бота так, чтобы его можно было развивать: добавлять функциональность без постоянного страха «сломать всё».

Читать далее

Строим сервис, который повышает собираемость показаний счетчиков ЖКХ

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

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

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

В статье разберём Python-сервис, который отправляет персонализированные SMS, принимает ответы и подключает голосовой вызов для тех, кто не ответил.

Читать далее

Использование библиотеки spaCy для поиска сущностей в тексте

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

Снова приветствую всех читателей Хабр.

В предыдущей статье был приведен пример создания кода проекта для задачи автоматизации обработки данных, в результате чего получилось подготовить нужную информацию по модели данных ЛОЦМАН: PLM. Эти данные планируется использовать для построения механизмов обработки поисковых запросов пользователей к базе ЛОЦМАН:PLM — в частности, для распознавания сущностей в тексте запроса. Это позволит понимать, на какие объекты модели данных ссылается пользователь: изделия, их параметры, типы документов и так далее.

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

Читать далее

Вайбкодинг: как я чуть не снес БД по совету Claude Opus, или Почему ИИ пока еще не замена человеку

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

Вайбкодинг обещает нам будущее, где мы лишь «менеджеры кода», а всю работу делают нейросети. Я всегда скептически относился к этому, и суровая реальность деплоя лишь подтвердила мои опасения. Мой проект лег, процессор забился под 100%, а «самая умная» кодинг-модель Claude Opus 4.5 настойчиво предлагала единственное решение — снести мою БД. Рассказываю, как инженерное чутьё спасло проект от советов ИИ, и почему даже в 2025 году вайбкодинг не заменяет мозги.

Читать далее

Обзор Divoom Times Gate для любителей кастомизации

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

Привет, Хабр! На связи Владимир Туров, разработчик в Selectel. В рекомендациях одного маркетплейса мне попалось чудо китайской киберпанковой мысли — часы и по совместительству пиксельный дисплей Divoom Times Gate. Мне понравился визуальный стиль и потенциальная возможность выводить любую информацию. У часов есть свое приложение с регистрацией, что навевает грустные мысли… Вдруг часы управляются исключительно через серверы производителя? 

Я купил девайс и немного разобрался в его интерфейсах. В этой статье проведу минимальный обзор устройства и расскажу про возможности API и локального управления на примере шуточной интеграции с Baldur’s Gate 3.

Читать далее

Как я писал книгу «Python для инженерных задач»

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

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

Читать далее

Управляю VDS с телефона: Telegram-бот + Claude Code CLI

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

Я не devops, поэтому хотел получать ответы на человеческом языке в любое время. Ты в дороге, приходит алерт, нужно срочно посмотреть логи или проверить статус сервиса. Достаёшь телефон, открываешь SSH-клиент, набираешь команды...

В итоге, я написал Telegram-бота, который принимает запросы на человеческом языке и выполняет их через Claude Code CLI. Теперь вместо journalctl -u nginx --since "1 hour ago" | grep error я просто пишу в Telegram: «Покажи ошибки nginx за последний час». Выложил в opensource.

В статье расскажу про архитектуру и примеры.

Читать далее

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

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

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

Выгорание операторов — распространенная проблема в кол-центрах. По разным оценкам, текучесть персонала здесь достигает 40–45%, а средний срок работы составляет 8–12 месяцев. Это приводит к дополнительным расходам на обучение, росту нагрузки на команду и снижению качества сервиса. При этом заметные изменения в поведении сотрудников обычно фиксируются слишком поздно — когда проблема уже стала системной.

Я Катя Саяпина, менеджер продукта МТС Exolve. В этом материале разберу способ раннего обнаружения таких изменений. Он опирается на статистические отклонения в поведении оператора и дополняет прямое общение с сотрудниками и сбор обратной связи в команде. Мы создадим на Python сервис, который объединит Telegram-бота, API МТС Exolve и LLM, развернутую на платформе MWS GPT.

Читать далее

Ускоряем LLM по максимуму. Как я создал кросс-платформенный Flash Attention с поддержкой Turing+ архитектур и не только

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

На сегодняшний день трансформеры правят балом хайпа в мире машинного обучения, особенно после появления ChatGPT и ему подобных языковых моделей. Это стало возможным благодаря лежащему в основе их архитектуры механизму внимания (attention), однако он же и является слабым местом с точки зрения производительности и потребления памяти. Хотя в связи с этим и была разработана изящная концепция Flash Attention (Tri Dao), её существующие реализации имеют ряд ограничений.

Поэтому представляю вашему вниманию первую и единственную open-source реализацию Flash Attention 2 на Triton с поддержкой Linux и Windows, Turing-Blackwell архитектур (теперь можно работать в Google Colab и Kaggle), гомо и гетерогенных кластеров, опциональным детерминизмом, а также возможностью ручной кастомизации ядер (kernels) для более гибкой настройки под каждую GPU архитектуру отдельно. Более подробно о том как это устроено и не только — далее в статье.

Читать далее

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

Архитектура кодового агента (code execution agent)

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

Что будет если дать LLM агенту права на исполнение кода?

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

* скрин взят отсюда, один из первых фреймворков, который решил дать агенту лицензию на уби исполнение произвольного кода =)

Читать далее

11 Python-скриптов, которые изменят вашу рутину

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

Готов поспорить, вы кодите на Python достаточно давно, чтобы чувствовать себя уверенно... ровно до того момента, как открываете терминал в понедельник утром и думаете: «Должен же быть способ получше, чтобы автоматизировать весь этот бардак».

Хорошие новости: он есть.

После 4 с лишним лет создания автоматизаций, отладки катастроф, которые я сам же и устроил, и написания скриптов, которые каким-то образом выставляют меня кибер-волшебником в глазах друзей, далёких от Python, я отобрал 11 чрезвычайно практичных и редких Python-скриптов, которые сделают ваш ежедневный рабочий процесс гладким, как свежеустановленный дистрибутив Linux.

Поехали.

Читать далее

MIMO LQR/LQG: линейно квадратичный и линейно гауссовский регуляторы с практическим примером и кодом

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

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

Цель публикации — демонстрация методов оптимального управления (LQR) и стохастической фильтрации (LQG/Kalman Filter) для решения задачи точного поддержания режима в условиях  взаимосвязи физических параметров (температура и давление в замкнутом объеме) и зашумленных измерений.

Проект реализован на языке Python в парадигме Model-Based Design, разделяющей физику процесса, модель управления и среду моделирования.

Он включает постановку задачи, описание решения и его программную реализацию в виде python-пакета, адаптированного для работы в Google Colab. Среда автоматически сохраняет все артефакты каждого цикла моделирования — конфигурацию и результаты.

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

Модульная архитектура делает проект относительно универсальным шаблоном: заменив модель объекта, этот же каркас можно адаптировать для решения других задач MIMO-управления с той же размерностью. Будь то стабилизация мобильного робота (скорость/угол поворота) или управление полетом (тангаж/горизонтальная скорость).

Читать далее

Борьба с дисбалансом классов. Ансамблевые и комбинированные методы

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

Привет, Хабр! На связи KozhinDev и ml-разработчик Приходько Александр. Это четвертая часть цикла о борьбе с дисбалансом классов. Предыдущие статьи:
- В первой статье мы рассказали про суть проблемы дисбаланса классов и стандартные методы борьбы с ним;
- Во второй статье обсуждались методы undersampling - удаление данных из распространенного класса;
- В третьей статье рассматривались методы oversampling - генерация примеров редкого класса.

В данной части мы рассмотрим комбинированные и ансамблевые методы библиотеки Imbalanced Learn.

Читать далее

dag_generator: лоукод-генерация гетерогенных Airflow DAG

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

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

Полноценных open-source-альтернатив, которые закрыли бы все наши потребности, не нашлось. Поэтому мы решили создать свой «мультитул» — low-code-фреймворк для генерации гетерогенных Airflow DAG с незамысловатым названием dag_generator.

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

Читать далее

Весь такой перцептивный. Сенсорная атмосфера в прозе. Пример анализа художественного текста на Python

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

Анализ глаголов восприятия в прозе Паустовского с помощью Python: подход цифрового гуманитария для NLP-разработчиков.

Читать далее

Google Maps для биржевого стакана: пишем визуализатор данных Московской биржи на Python

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

Обычный трейдер смотрит на свечной график, но свеча — это уже тень прошлого, постфактум. Между тем настоящая динамика рождается в глубине торгового стакана — Limit Order Book, где борьба заявок определяет будущий импульс.

Проблема в том, что историю стакана почти нигде не увидеть: розничные терминалы для частных клиентов дают лишь текущую таблицу DOM ( Depth of Market ) и это статичный срез без прошлого.

Чтобы увидеть то, на что обычный трейдер не обращает внимание я собрал инструмент, который превращает исторические данные L2 Order Book (стакан заданной глубиной) и Trades Stream (обезличенные сделки) в тепловые карты и позволяет изучать эволюцию заявок на Московской бирже через браузер с Deep Zoom — плавно, как в Google Maps.

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

Вклад авторов