Обновить
573.99

Python *

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

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

Пишем свой классификатор AI-generated статей для Хабра за ночь

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

Изобретаем собственный велосипед для детекции AI-generated текстов на Хабре, используя SBERT классификатор. Нет, это не сложно :-)

Читать далее

Лучшие практики автоматизации тестирования: 9 принципов стабильных автотестов

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

Почему автотесты становятся нестабильными и перестают приносить пользу? Разбираем системные причины флаков, бессмысленных ретраев и бесконечных E2E-монстров. Практические принципы: моки, изоляция, атомарность и минимализм — без философии, только инженерия.

Читать далее

Практическое исследование: вайбкодим HFT движок с Gemini 2.5 Pro

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

Update: Неожиданно для меня несколько человек заинтересовались исходным кодом, поэтому я создал для них публичный репозиторий, где разместил финальный исходный код: https://github.com/i-s-rusakov/arbitrage-engine

На закате массового использованияGemini 2.5 Pro хочу поделиться опытом использования этой модели для тестирования продуктовой идеи: от формирования общей продуктовой концепции до работающего прототипа. Уровень проработки прототипа должен был получиться MVP — не меньше. А если исследование получилось бы крайне удачным, то далее его можно было бы уже развить в полноценный тиражируемый и масштабируемый продукт.

Читать далее

Ваш первый live‑coding

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

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

Cегодня поговорим о, наверное, самом серьезном этапе собеседования — live‑coding. На этом этапе вас просят писать код в реальном времени, под пристальным взглядом интервьюера.

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

Разобрать лайвкодинг

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

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

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

Читать далее

Как я собрал Telegram-бота-консультанта по железу на бесплатном стеке (RAG + Groq + python telegram bot)

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

Представьте консультанта в DNS/Ситилинке, который не навязывает «вот этот блок питания потому что остался на складе», а спокойно объясняет, чем один БП лучше другого под ваш билд, помнит, о чём вы спрашивали раньше и ещё просит вежливый фидбек.

В статье рассказываю, как собрал такого консультанта в виде Telegram‑бота «Кремний» — RAG‑бота по железу на бесплатных инструментах (Telegram Bot API, Groq с Llama 3.1 8B, sentence‑transformers) и что за «чуть‑чуть боли» произошло с NumPy и Pterodactyl при деплое.

Telegram‑бот‑консультант по железу

Telegram-бот для малого бизнеса на Python и aiogram 3.x: пошаговый гайд за вечер

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

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

В этой статье разбирается, как с нуля собрать минимально полезного бота для малого бизнеса (например, магазина одежды или студии услуг) на Python и библиотеке aiogram 3.x: от получения токена до развёртывания на сервере. Статья рассчитана на разработчиков, которые уже базово знакомы с Python, но ещё не работали с Telegram Bot API или современными фреймворками для ботов.

Перейти к гайду

Гречневая нейронка. Попытка закрыть национальный гештальт

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

Детекция мусора в гречке с помощью нейросети YOLO8n + попытки в real-time детекцию (Docker + FastApi, Gradio, TensorFlow Lite) + предложение добавить такую фичу в приложения продуктовых магазинов. За результатами приглашаю в статью.

Читать далее

AI-аудит звонков по чек-листу: делаем автоматическую оценку через МТС Exolve и GigaChat

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

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

В этой статье разберём, как настроить полный сценарий: от вебхуков в МТС Exolve до автоматической оценки звонков с помощью GigaChat и LangChain. По разным исследованиям, менеджеры по качеству тратят до 60% рабочего времени на прослушивание диалогов и при этом успевают проверять лишь 5–10% звонков. Мы соберём сервис на Python, который автоматически обрабатывает каждый звонок, расшифровывает аудио, прогоняет диалог через модель и возвращает структурированный JSON по чек-листу оценки оператора. Такой подход снижает ручную нагрузку и даёт воспроизводимую оценку в реальном времени.

Читать далее

Алгоритмы на графах

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

Краткое и доступное руководство по базовым алгоритмам на графах: BFS, DFS, топологической сортировке и алгоритму Дейкстры. Чёткие объяснения, примеры и код на C++ — для тех, кто хочет быстро и уверенно освоить фундамент графовых алгоритмов.

Узнать больше об алгоритмах

LEGO хаб Powered Up — передаём и получаем данные

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

Наборы LEGO с электрикой уже давно перестали быть просто игрушкой. Современная серия устройств Powered Up — это небольшая модульная робототехническая платформа: smart-устройства, моторы, датчики, подсветка, управляемые по Bluetooth, с возможностью программирования поведения моделей, что ранее было доступно только в специализированных наборах (LEGO Mindstorms, Education).

Как же получить данные из smart-устройства, ведь это открывает новые возможности по использованию LEGO наборов.

Читать далее

Роевой интеллект: как 15 строк кода заменяют централизованное управление дронами

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

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

*Код и симуляция: Python 3.8+, matplotlib, numpy

Проблема централизованного управления

Представьте, что вам нужно координировать движение 50 дронов. Первое, что приходит в голову — центральный контроллер с нейронной сетью, которая вычисляет оптимальные траектории для каждого аппарата. Но у этого подхода есть фундаментальные недостатки:

Читать далее

Магия itertools: Перестаньте писать велосипеды на циклах for

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

Почему опытные Python-разработчики редко используют циклы for для обработки данных? Потому что императивный стиль на больших объемах данных ведет к исчерпанию памяти (OOM) и замедлению работы.

Модуль itertools — это стандарт индустрии для создания эффективных конвейеров обработки данных. Он реализует концепцию ленивых вычислений (lazy evaluation), позволяя обрабатывать бесконечные потоки или огромные дампы БД, потребляя константный объем RAM.

Читать далее

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

Охлаждение после эмиграции. Грустные выводы исследования поэзии Бродского на Python

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

Жить в США стало лучше, но не веселее. После эмиграции поэт написал больше «холодных» стихов. Установлено математически точно с помощью кода.

Читать далее

Как я установил Ollama на Ubuntu 24.04 и начал обучать локальную LLM под свои задачи

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

🤖 Как я установил Ollama на Ubuntu 24.04 и начал обучать локальную LLM под свои задачи

В какой-то момент я понял, что хочу иметь свой личный ChatGPT прямо на ноутбуке — локальный, безопасный, работающий без интернета и полностью под моим контролем.

У меня обычная рабочая машина:

Ubuntu 24.04.3 LTS (noble)

x86_64

AMD Radeon Vega (Cezanne)

А значит, классические CUDA-модели мне не подходят — NVIDIA нет, но я всё равно хотел нормальную LLM у себя локально.

Решение — Ollama, движок для запуска локальных LLM-моделей в один клик.
Расскажу, как я его установил, какие модели поставил и как дальше можно обучать её под свои задачи.

Читать далее

Как тестировать конфигурацию Nginx: корректность и информационная безопасность

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

При разработке сложной системы приходится сталкиваться с использованием nginx в качестве reverse proxy: роутинг, список правил, регулирующих путь запроса во внутренние системы или между подсистемами.
Быстро развивающиеся сервисы обрастают правилами, назначение которых не очевидно или имеет недокументированные особенности. Проверенный способ рефакторинга таких систем: зафиксировать и вылечить упростить. Фиксировать будем тестами.

Как проверить корректность вашей конфигурации Nginx'а? Как проверить ее безопасность и нет ли уязвимостей ? Какие есть для этого варианты, их плюсы, минусы, практическая применимость и как эти проверки встроить в CI пайплайн ?
Ответы на эти вопросы под катом. Будет полезно, погнали.

Погнали

Бот, который не забудет полить. Часть 1. Строим диалоговую логику на python-telegram-bot

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

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

Рассматривается пошаговая реализация консольного Telegram-бота на Python 3.13 с использованием python-telegram-bot v21+ и паттерна ConversationHandler.

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

Код ориентирован на расширяемость — заложена основа для последующей интеграции с БД (SQLite/PostgreSQL)

Читать далее

Голосовой ввод для Windows через Vosk своими руками

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

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

Лучшим выходом из моей ситуации было создать свое минималистичное решение, и вот как это было:

Читать далее

FlakyDetector — мой путь к созданию инструмента для ловли «нестабильных» тестов в Python

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

FlakyDetector — мой путь к созданию инструмента для ловли «нестабильных» тестов в Python

Привет! Меня зовут Артём Алимпиев, я Python-разработчик.
Недавно я столкнулся с тем, что даже идеально написанные тесты порой ведут себя… странно.
Один день они проходят, другой — падают, хотя код не менялся.

Если вы когда-нибудь ловили такие «призраки» в CI/CD, то знаете, насколько это раздражает.

Так начался мой эксперимент — сделать инструмент, который умеет находить и объяснять, почему тесты становятся нестабильными.

Так родился проект FlakyDetector.

Читать далее

Яндекс Трекер: Инструкция. Как создать форму для шаблонизации задач и проектов

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

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

В данной инструкции предложено решение, как с помощью Яндекс Форм, Yandex Cloud Functions и Яндекс Трекера создать инструмент для шаблонов проектов с уже существующими предустановленными задачами по вашим параметрам.

Читать далее

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