Обновить
494

Python *

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

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

XTools-py — универсальные утилиты для Python-разработчиков

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

🚀 XTools-py — универсальные утилиты для Python-разработчиков

Если вы когда-либо писали на Python и ловили себя на мысли «Опять писать парсер конфигурации…» или «Где-то у меня был код кеша, надо найти» — эта библиотека для вас.

XTools-py — это набор мощных и удобных инструментов для Python, которые помогают упростить рутинные задачи и ускорить разработку.
Вместо того чтобы тратить время на повторное изобретение велосипеда, вы получаете готовые и проверенные решения.

✨ Возможности

Find — быстрый поиск и работа с коллекциями данных.

Matrix — операции с матрицами.

Config — удобная работа с JSON, YAML, INI.

Validator — валидация строк, чисел и других типов.

Cache — простой кеш с TTL.

DateTimeUtils — работа с датами и временем.

MathUtils — расширенные математические функции.

ColorUtils — преобразование и обработка цветов.

EncryptionUtils — шифрование и хеширование.

TextUtils — удобные манипуляции с текстом.

UnitConverter — конвертация единиц измерения.

AWS S3 — облачное хранилище (асинхронно/синхронно).

Читать далее

Расширение известного трюка с XOR на миллиарды строк: введение в обратимые фильтры Блума

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

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

Читать далее

Разработка Битрикс-бота: история о том, как документация врала, а облака смеялись

Время на прочтение9 мин
Количество просмотров2K

Привет, Хабр! (И тебе, случайный читатель, который зашёл сюда просто потому, что заскучал в корпоративном чате.)

Сегодня я расскажу вам историю о том, какая задача посетила меня на этот раз и как я сделал «корпоративного бота с возможностью оценки сотрудников» — казалось бы, простая задача, но…

Читать далее

Решаем задачи международной математической олимпиады у себя на домашнем компьютере

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

Двое ученых из университета Лос-Анжелеса повторили результат OpenAI и Google с золотой медалью IMO, но с помощью обычной публичной Gemini 2.5 Pro.

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

Читать далее

Оптимизация инференса больших языковых моделей: комплексный анализ современных подходов и практических реализаций

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

В процессе разработки RAG-системы для обработки видеоконтента передо мной встала задача генерации качественных описаний для большого объема видео-клипов с использованием мультимодальных языковых моделей. Клипы имели продолжительность около 10 секунд, в отдельных экспериментах мы тестировали материал длиной в несколько десятков секунд. Финальные описания составляли от 300 до 2000 токенов и после генерации разбивались на чанки для индексации в векторной базе данных. При тестировании различных подходов обнаружились значительные различия в скорости и качестве обработки. Компактные модели, работающие с отдельными кадрами изображений (Phi, DeepSeekVL2, Moondream), демонстрировали существенно более высокую скорость по сравнению с моделями полноценной обработки видео, однако качество генерируемых описаний оставляло желать лучшего. Типичный workflow включал конкатенацию описаний отдельных кадров, при этом в DeepSeekVL2 дополнительно использовался system prompt для более интеллигентного объединения результатов анализа кадров. Модели для обработки изображений стабильно укладывались в временные рамки 3-5 секунд на клип, что значительно быстрее требуемого лимита. Полноценные видео-модели, получающие на вход целые видеоклипы, изначально генерировали описания за 30 секунд на vanilla PyTorch. Применение VLLM ускорило процесс до 12-15 секунд, а SGLang позволил достичь целевых 8-10 секунд на клип. Эти временные рамки позволили настроить обработку на кластере из 20 RTX 4090 и сгенерировать около миллиона описаний за месяц для production-системы. Благодаря применению различных техник оптимизации инференса удалось не только достичь поставленных временных целей, но и существенно превзойти их, завершив генерацию необходимого объема описаний за две недели вместо месяца. Система успешно развернута в продакшене и демонстрирует стабильную производительность. Данная статья представляет систематизированный анализ практического опыта оптимизации инференса мультимодальных LLM, полученного в ходе решения реальной production-задачи. Особое внимание уделяется сравнению эффективности различных подходов к ускорению, включая современные специализированные фреймворки VLLM и SGLang, а также аппаратные оптимизации на базе TensorRT.

Читать далее

От консоли к GUI: Как написать игру «Сапёр» на Python с нуля версия консоли (часть первая)

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

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

Читать далее

Мифы и легенды о производительности Python

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

Антонио Куни — инженер, давно занимающийся повышением производительности Python, а также разработчик PyPy. Он провёл на EuroPython 2025 в Праге презентацию «Мифы и легенды о производительности Python». Как можно догадаться из названия, он считает многие общепринятые сведения о производительности Python как минимум вводящими в заблуждение. На множестве примеров он показал, где, по его мнению, таятся истинные проблемы. Инженер пришёл к выводу, что управление памятью в конечном итоге наложит ограничения на возможности повышения производительности Python, но у него есть проект SPy, который, возможно, станет способом реализации сверхбыстрого Python.

Он начал своё выступление с просьбы: «Если вы считаете Python медленным или недостаточно быстрым, поднимите руку»; поднялось много рук, в отличие от презентации на PyCon Italy, где руку не поднял почти никто из присутствующих. «Совершенно другая аудитория», — сказал он с улыбкой. Антонио уже много лет работает над производительностью Python, он общался с множеством разработчиков на Python и слышал кучу устоявшихся мифов, которые захотел развеять.

Читать далее

Гайд по правильным ожиданиям в UI — тестах. SeleniumWebDriverWait и Expected Conditions

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров611

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

Читать далее

TY — не thank you, а быстрый type checker для Python

Время на прочтение7 мин
Количество просмотров2.9K

Всем привет! Меня зовут Иван, я программирую на Python, а в свободное время пишу для блога МТС. В прошлый раз поделился опытом, как я осваивал Go и с чем у меня были сложности. Спасибо всем, кто читал и комментировал! Сегодня хочу обсудить мегабыстрый инструмент для проверки типов данных Python — ty: как он устанавливается и используется, какие есть правила и нюансы, а еще посмотрим, как можно его применять. Приступим!

Читать далее

Как научиться программированию разрабатывая игры

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

Если вы учились программировать в конце 80x-начале 90х, то наверняка делали это на ZX Spectrum, БК-0010 или MSX. Во всех этих компьютерах был встроенный язык програмирования. Кто-то начинал сразу с машинных кодов Радио-86РК. В любом случае первыми программами скорее всего были игры.

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

Читать далее

Telegram Web App. Всё о Mini Apps

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

В прошлой статье я уже рассмотрел основные возможности Web App. Cегодня же подведём итоги, расскажем все особенности и нюансы работы с Web App в Telegram и соберём простенькое веб-приложение.

Читать далее

Тесты не лгут — прислушивайтесь к ним. Часть 2

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров2.2K

(Статья — результат совместной работы с Максимом Степановым)

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

Хрупкость

Зависимость от внешних систем

Невозможность протестировать пользовательский сценарий в отдельности

Избыточное покрытие.

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

Читать далее

Titanic + CatBoost (Первое решение, первый Jupyter Notebook)

Уровень сложностиПростой
Время на прочтение32 мин
Количество просмотров2K

Решение первого соревнования на kaggle титаник с помощью библиотеки от яндекса catboost. Два способа: обычная модель и второй: с перебором гиперпараметров с помощью randomizedsearch. Сравнение результатов.

Читать далее

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

От консоли к веб-интерфейсу: создание автоматического веб-инсталлятора для ALD Pro на Flask и Python

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

Программисты делятся на два типа: те, кто автоматизирует установку ALD Pro, и те, кто ещё не понял, сколько времени они теряют. Когда-то я вручную прописывал DNS, как средневековый монах переписывающий манускрипты, но потом осознал, что компьютеры должны работать вместо нас. В этой статье — мой путь от консольных скриптов, которые пугали коллег, до веб-интерфейса, где даже бухгалтер (почти) разберётся.

Читать далее

Автоматизируем печать документов с помощью Python

Время на прочтение7 мин
Количество просмотров6.3K

Меня зовут, Дмитрий, просто Дима.

Каждый день, я готовлю однообразные документы, в которых нужно печатать страницы - одинаково (однообразно):
1 (ую) и 2 (ую) страницы, двойной печатью по длинному краю;
3 (ью) и 4 (ую) по короткому краю (эти листы горизонтальные);
5 (ую) страницу отдельно (только 1 лист).

Каждый день, из раза в раз, нужно было настраивать диапазон для печати. И в один момент (спустя 3 дня) мне это надоело и было решено написать программу, с помощью которой можно будет распечатать этот документ - одним нажатием мыши.

Спойлер - мне удалось. Но пришлось поискать информацию. А информации на русском не очень много, поэтому искал преимущественно в английских источниках. Что и вдохновило на написание это статьи.

Узнать правду о печати с помощью Python!!!

Нейросетевой помощник для Catan Universe: как я научил ИИ считать карты соперников

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

Привет, коллеги-катановцы!

Знакомо чувство, когда в пылу битвы за овец и кирпичи напрочь забываешь, сколько ресурсов только что сбросил соперник? Вот и я вечно путался — пока не загорелся безумной идеей: А что если заставить нейросеть следить за картами вместо меня?

Пару месяцев, несколько килограммов кофе и одна сгоревшая видеокарта спустя — представляю вам Catan Neural Assistant — шпаргалку, которая в реальном времени подсчитывает ресурсы оппонентов!

Но сначала — лирическое отступление для тех, кто вдруг не в теме.

кто вдруг не в теме.

Применение Portainer в CI/CD процессах

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

Продолжаем знакомиться с Portainer и сферами его применения.

В этой статье узнаем как написать CI/CD для сборки Docker-образа и деплоя проекта, а также, как получить бесплатно Portainer BE.

Читать далее

BRS-XSS: Новое поколение сканера уязвимостей XSS

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров682

BRS-XSS - это профессиональный инструмент для сканирования уязвимостей Cross-Site Scripting (XSS), разработанный компанией EasyProTech LLC в рамках экосистемы Brabus Recon Suite (BRS). Он создан разработчиком Brabus и впервые опубликован 7 августа 2025 года.

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

Репозиторий

Читать далее

Оверинжиниринг: простое сложным языком

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

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

Читать далее

AI Software Engineering: От хаоса Vibe Coding к системной разработке с AI-агентами

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

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

В этой статье мы исследуем эволюцию подходов к AI-разработке - от такого подхода как Vibe Coding к системной методологии AI Software Engineering (AI SWE), которая позволяет превратить AI-агентов в управляемый инструмент для создания больших и сложных систем.

Читать далее

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