Обновить
704.39

Python *

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

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

Надоел Celery? Не нужен K8s? Как мы сделали легковесный оркестратор на Python

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

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

Если вы когда-нибудь сталкивались с задачей запуска сотен изолированных фоновых процессов на одном сервере (будь то парсеры для клиентов, торговые боты или обработчики данных в SaaS), то вы знаете, как быстро всё усложняется.

Можно, конечно, вручную поднимать Docker-контейнеры и писать костыли для мониторинга. Можно развернуть полноценный Kubernetes, но для одной ноды это часто — оверкилл, требующий отдельного администратора. Можно использовать Celery, но он управляет задачами, а не контейнерами, и изоляция на уровне процессов — это не тоже самое, что изоляция на уровне контейнеров.

Мы столкнулись с этой болью и написали инструмент, который закрывает этот пробел. Встречайте: RedTailFox — легковесный оркестратор на Python, который управляет Docker-контейнерами с вашими воркерами на одном сервере. Он сам решает, когда поднять новый контейнер, сам следит за здоровьем слотов и сам себя чинит.

Читать далее

Новости

Как писать юнит-тесты, которые не ломаются

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

Привет, Хабр! Меня зовут Владимир, я Python-разработчик в команде IMV в Авито. Мы разрабатываем продукт, который помогает оценивать рыночную стоимость товара, будь то автомобиль, квартира или холодильник. Мы часто пишем тесты, и в этой статье я расскажу, как разные подходы к юнит-тестированию влияют на качество тестов, когда они помогают проекту, а когда — мешают, и почему само по себе наличие тестов ещё не гарантирует пользы. Статья будет полезна разработчикам, тимлидам и всем, кто пишет юнит-тесты и поддерживает код в долгоживущих проектах.

Читать далее

Как разрабатывать утилиты для тестов embedded-прошивок без железа: практика Test Driven Development

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

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

Меня зовут Рустам Ахмадуллин, я старший инженер по системной верификации аппаратуры в YADRO. Расскажу на примере датчика температуры LM75A, как написать API без физического доступа к устройству и его прошивке. Разберем методологию Test Driven Development, при которой разработка начинается с написания автоматизированных тестов, а не самого кода.

Читать далее

Рекап для разработчика: как я собрал итоги года на основе GitHub и self-hosted LLM

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

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

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

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

Читать далее

Python mmap: Улучшенный I/O файлов с помощью отображения файлов в память

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

В Zen of Python есть много мудрых идей. Одна особенно полезная гласит: «Должен быть один — и желательно только один — очевидный способ сделать это». Тем не менее в Python существует несколько способов решить большинство задач. Например, есть разные способы чтения файла в Python, включая редко используемый модуль mmap.

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

Читать далее

12 бит против 8 бит в камере для проведения металлографических исследований при помощи оптического микроскопа

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

В лаборатории к инвертированному оптическому микроскопу Zeiss Axio Observer 3 подключена промышленная камера The Imaging Source DFK 33UX265 для выполнения металлографических задач: анализ зерна, неметаллических включений, поиска дефектов структуры. Мне стало интересно, как она устроена и что есть у нее "под капотом". Когда мы проводим анализ, то не задумываемся о постобработки, а под "капотом" любой камеры есть много интересных режимов. Я ухватился за 12-битный монохромный Bayer-формат (часто обозначаемый как 12-bit Bayer Packed) — это формат RAW-данных, при котором с сенсора с фильтром Байера считывается 12 бит информации на пиксель без цветовой интерполяции. Это обеспечивает более высокий динамический диапазон (4096 уровней яркости) по сравнению с 8-битным форматом (256 уровней), сохраняя «сырые» данные.

Большинство программ, связанных с металловедением принимают картинку в 8 бит. И я хотел бы разобраться в вопросе, а так ли нужен при оценке и автоматизации режим 12 бит.

Читать далее

Я заменил Google на 50 строк Python. Через месяц я забыл, как пишется tar -xzf

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

Десять лет в девопсе. Десять. И я гуглю tar -xzf. Не раз в год — раз в неделю. Ну, может раз в десять дней, если повезёт. Открываю хром, набираю «tar extract gz linux», пролистываю три рекламы, нахожу ответ на SO, копирую, вставляю, закрываю вкладку. Через неделю — по новой.

Я не идиот. Точнее, может и идиот, но не поэтому. Просто tar — это такой синтаксис, который у меня физически отказывается залезать в долговременную память. Там дефис или нет? xzf или xfz? Или zxf? Вроде порядок не важен? Или важен?..

Короче. Месяц назад я написал скрипт, который это решил. А потом скрипт решил больше, чем я хотел.

Читать далее

Использование термодинамической помощи случайным лесам для многоклассификационных задач (с кодом Python)

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

В области объяснимого искусственного интеллекта (Explainable AI, XAI) метод SHAP (SHapley Additive exPlanations), опирающийся на прочную теоретическую базу теории игр, стал ключевым методом оценки важности признаков. Для простых задач классификации сообщество располагает обширной документацией и учебными материалами, что позволяет разработчикам легко создавать графики-водопады (Waterfall Plot) или графики-пчелиный рой (Beeswarm Plot) для объяснения прогнозов модели.

Однако при работе с многоклассовой классификацией (Multi-class Classification) применение SHAP претерпевает изменения. Из-за изменения размерности выходных данных прямое использование стандартного кода часто приводит к ошибкам размерности или неверной интерпретации.

В данной статье рассматриваются технические трудности применения SHAP в задачах многоклассовой классификации и предлагается проверенное решение для визуализации на Python. Материал основан на новейшем исследовании, опубликованном в 2025 году в журнале Measurement (статья под названием Thermodynamic simulation-assisted random forest: Towards explainable fault diagnosis of combustion chamber components of marine diesel engines), в котором реализована визуализация объяснимой диагностики неисправностей для многоклассовой задачи (вычисление SHAP для 14 категорий в пяти состояниях неисправности).

Адрес репозитория Github

Читать далее

Шаблонные строки в Python 3.14: как получить контроль над интерполяцией данных

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

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

В Python 3.14 появился новый инструмент — t-строки (шаблонные строки). На первый взгляд они выглядят как еще одна вариация f-строк. Но на самом деле это принципиально другой механизм: строка больше не собирается автоматически, а передается разработчику в виде структуры, где отдельно хранится статический текст и отдельно — значения для интерполяции.

Меня зовут Алексей Макаров, я инженер по информационной безопасности в Лиге Цифровой Экономики. В этой статье разберемся, как работают t-строки в Python 3.14, чем они отличаются от привычных f-строк и в каких сценариях действительно помогают писать более безопасный код, а где использовать их не стоит.

Читать далее

Как мы собрали СЭД для поликлиники из трёх костылей

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

В этой статье я рассказываю, как мы за 3 месяца собрали кастомную СЭД для поликлиники на базе трёх open-source компонентов: Mayan EDMS (хранилище), Camunda (workflow) и NiceGUI (фронтенд). Система закрыла ключевые потребности: электронные подписи для внутренних документов, сквозная LDAP-аутентификация и контроль исполнения задач — без единой коммерческой лицензии

Читать далее

Почему вопрос «Какой язык программирования выбрать в 2026» убивает вашу будущую карьеру

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

Привет, Хабр! (И тебе, питонист, который считает свой язык идеальным, и тебе, JS-ник, у которого уже вышел новый фреймворк, пока ты читал это предложение, и тебе, 1С-ник, который устал объяснять, что ты тоже программист всем во круг.)

Наткнувшись миллионный раз на статью «КАКОЙ ЯЗЫК ПРОГРАММИРОВАНИЯ ВЫБРАТЬ?» я задался вопросом, почему люди ещё не поняли ответа на этот вопрос, ведь он на поверхности.

Не рекомендуется для прочтения опытных разрабов считающих свей язык программирования самым лучшим.

Читать далее

ЧАСТЬ 2 — Мониторинг МФУ на Flask: новые функции, проблемы и планы

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

Опубликовал ЧАСТЬ 2: проект вырос из простого SNMP‑опрашивателя в рабочий инструмент для парка принтеров. Теперь есть склад картриджей, журнал ТО, отдельная страница парка и удобные экспорты в Excel. Пишу про реальные боли (цветные МФУ, разные прошивки, потеря данных в CSV) и о том, что планирую доделать

Читать далее

Алготрейдинг по Фибоначчи 0.5: от гипотезы до realtime-бота на BingX

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

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

Разберём полный цикл разработки торговой системы: от формализации идеи до запуска реального бота на фьючерсной бирже. Проект состоит из двух частей: скрипта бэктеста (Back.py), realtime-бота (Realtime.py).

Цель статьи — показать не только торговую идею, но и инженерную реализацию: архитектуру, контроль состояния, обработку данных, синхронизацию, и различие между backtest-движком и real-time исполнением.

Итоговой результат бектеста - 25000$ прибыли на активе стоимость в 2000$ за 6 лет. Этот результат действительно реален. Отрисовали кривую капитала и посмотрели статистику и основные данные. Подробнее об этом и ньюансах читайте в статье!

Читать далее

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

Инструменты навигации в GIGA IDE

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

Добрый день! Меня зовут Андрей Слекеничс, я PO GigaIDE, и сегодня мы продолжаем наш экскурс по функциональности GigaIDE.

Первая и предыдущая статьи цикла доступны здесь и здесь. Сегодняшний материал — последний, затрагивающий функциональность GigaIDE Community, и первый, в котором мы переходим к возможностям уже только GigaIDE PRO.

Читать далее

Как мы оптимизировали логику Битрикс на Python/Flask и уложили ее в 1 МБ

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

Привет, Хабр! Принес вам кейс о том, как мы с командой оптимизировали работу одного небезызвестного портала с помощью Python/Flask.

Напомню: я по-прежнему Алексей Постригайло, более 20 лет я занимаюсь системной интеграцией и управлением проектами, сейчас — старший партнер ИТ-интегратора ЭНСАЙН и рассказываю о том, что было «под капотом» в проектах нашей команды.

Поехали!

Читать далее

ООП в Python за 1 статью: от «Hello World» до архитектуры

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

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

Но однажды проект начинает расти.

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

Читать далее

Нанимаем ChatGPT на работу или автоматизация бизнес-процессов

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

AI (LLM) сейчас на пике популярности: новые модели выходят каждый месяц. Но чаще всего их используют как инструменты, постоянно требующие времени и внимания. А что, если сделать из них «сотрудников», которые сами автономно будут выполнять часть вашей работы?

В этой статье мы шаг за шагом создадим такого «сотрудника» на чистом OpenAI API и добьёмся его полной автономности. Он будет сам получать новые задачи, выполнять их и обрабатывать результаты. Мы научим его вести логи и отчеты, предупреждать о сбоях. По пути разберёмся с Batch API и Structured Outputs. А в конце поговорим про RAG, Fine-Tuning и MCP.

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

Читать далее

Трансформер своими руками: с нуля до Numpy реализации и обучения

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

В этой статье пойдет речь об одной из самых сложных и интересных архитектур — трансформере, лежащей в основе современных моделей от OpenAI и Google DeepMind. И это не научпоп для обывателя с наивным уровнем объяснения, а полноценный учебный материал, который поможет вам понять работу трансформера на фундаментальном уровне без черных ящиков типа TensorFlow и Pytorch.

А для того чтобы лучше вникнуть, давайте напишем настоящий мини-трансформер на процедурном Python и обучим его!

Данный материал можно изучать в разных режимах:

* Как объяснение архитектуры для общего представления;

* Как полноценный гайд с чтением кода и самостоятельной практикой;

* Как основу для собственных экспериментов.

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

Наш трансформер будет довольно простым: со статическим графом и одноблочными энкодером и декодером. Сам код написан в парадигме процедурного программирования (за исключением некоторых модулей) и может быть прочитан на любом уровне и без знания ООП. И все же это будет полноценный обучаемый трансформер с мультиголовым вниманием, батчами данных, параллельным вычислением и множеством параметров.

Для закрепления материала, выполните Домашнее задание, которое ждет вас в конце статьи.

Напишем трансформер!

Hue для домашнего Hadoop: Docker, CSRF и неочевидные грабли

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

Пятая статья цикла о построении CDC-пайплайна с нуля. HDFS и Hive работают, но управлять ими через консоль неудобно. Сегодня поднимаем веб-интерфейс Hue и разбираемся, почему в 2026 году сборка из исходников требует Python 2.7.

Читать далее

Python не нашел глаголов у Фета

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

Афанасий Фет написал импрессионистскую картину в стихах. Сможет ли цифровой анализ объективно подтвердить или опровергнуть этот миф?

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