Обновить
512K+

Python *

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

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

Эволюция логирования в Lenta tech: грабли, миграции и неочевидный финал с Victoria Logs

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

Привет, Habr!

Меня зовут Максим Юрченко, я руководитель группы DevOps-инженеров в Lenta tech («Группа Лента»). В статье я расскажу о том, как за последние четыре года менялась наша система логирования, какие решения мы принимали по ходу роста инфраструктуры и к какому результату в итоге пришли (спойлер — без подводных камней и граблей не обошлось).

Читать далее

Генеральный директор не делает холодные звонки: как мы разделили роли LLM и сэкономили бюджет на AI-разработке

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

Попытка внедрить популярных AI-агентов (вроде Aider) в реальный продакшен обернулась для нас провалом: бесконечные циклы ошибок, потеря контекста и счета за API, от которых дергается глаз. Мы поняли, что стандартный паттерн «Оркестратор + Кодеры» не работает.

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

Читать далее

Мечтают ли папки с заметками об отдельном бэкенде? От ресерча к MVP

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

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

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

Меня в тот момент зацепили не сами действия, а их архитектурная странность. Формально мои заметки лежали в обычной локальной папке и принадлежали мне. Практически же доступ к ним был завязан на конкретный десктопный клиент, плагины, sync и костыли. Попробуйте, например, нормально достучаться до своей локальной базы заметок с телефона или прикрутить к ней простую автоматизацию и быстро обнаружите БОЛЬ.

Именно тогда у меня появился не ответ, а вопрос: это моя частная боль или уже ставший привычным сценарий у других людей, которые уже ведут большие vault'ы в Obsidian, Logseq, Zim и других PKMS? И если проблема реальна, то чего им на самом деле не хватает — стабильной синхронизации, нормального плагина, ещё одного клиента... или отдельного серверного слоя?

Этот текст — не история в духе «смотрите, я сделал notes‑as‑a-service». Хотя соблазн подать его именно так есть, говорить об этом пока рано. Это дискавери о том, как из личной боли, ресерча и создания MVP у меня сложилась гипотеза, что части пользователей markdown‑заметок нужен не новый редактор и не мощные плагины, а бэкенд поверх уже существующей папки с заметками.

Читать далее

Как отправлять email через LoRa mesh-сеть (Meshtastic + Python)

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

Meshtastic позволяет обмениваться сообщениями через LoRa mesh-сеть даже без доступа к интернету. Но можно ли связать такую сеть с обычной электронной почтой?

Как получать и отправлять email там, где нет интернета и мобильной связи? Я сделал Python-шлюз для Meshtastic, который позволяет передавать письма через LoRa mesh-сеть и также писать ответ в сеть, который потом отправится как обычная почта.

Скрипт проверяет почтовый ящик через IMAP, разбивает письма на небольшие фрагменты и отправляет их через Meshtastic-ноду в сеть. В обратную сторону всё работает похожим образом: сообщение из mesh-сети можно отправить в определённом формате, после чего шлюз превратит его в обычное email-письмо и отправит получателю.

В статье я расскажу, как устроен этот шлюз, как решалась проблема ограниченного размера LoRa-пакетов, как реализована фрагментация сообщений и как подключаться к Meshtastic-ноде через USB или Bluetooth, автоматически находя её текущий адрес.

Читать далее

Разнообразие нейронных сетей: Обзор основных задач

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

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

Читать далее

Добавляем в бизнес‑портал Битрикс24 роботов для автоматизации

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

В прошлой статье мы сделали первое пробное фронтенд-приложение.

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

Для проекта используем специально подготовленный для работы с AI-агентами шаблон AI-стартера, где уже заложены подробные инструкции для работы с ИИ.

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

Что есть в других статьях на сегодня:
1. Пишем первое приложение с AI-стартером, чтобы видеть прибыли и убытки
2. Добавляем в бизнес-портал Битрикс24 роботов для автоматизации (вы здесь)
3. Что даёт воспроизводимая среда разработки и как развернуть контейнеры на VPS.
4. Анализ и модернизация коннектора баз данных с помощью AI-агентов
5. Создание чат-бота в портале Битрикс24 с помощью AI-агентов

Читать далее

Асинхронность в Python для senior interview: от asyncio до выбора правильной реализации под задачу

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

Асинхронность в Python — одна из тех тем где на собеседовании начинают плыть.

Почему await не делает код параллельным?
Как на самом деле работает event loop?
Когда asyncio — правильный выбор, а когда лучше использовать потоки или процессы?

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

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

Подробнее

Автоматизируем сканирование инфраструктуры: скрипт 3.0 для Сканер-ВС 7

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

Привет, Хабр! Это Антон Дятлов, инженер по защите информации в Selectel. Не так давно компания «Эшелон» выпустила Сканер-ВС 7, в котором изменилась логика работы с API. Старый скрипт перестал корректно работать, да и улучшения напрашивались сами собой. 

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

Под кат!

Как я переводы видео автоматизировать собирался

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

2 года назад переводил я локальными моделями WoW на русский язык (https://habr.com/ru/articles/818513/) и тут недавно возобновил канал свой на YouTube-ах этих ваших, но выкладывая нарезки со стримов про прогу (https://www.youtube.com/@the_homeless_god). И в тестовом режиме переозвучил видео от Fireship про OpenClaw. Да и на тех же стримах возник концепт про цифровые замещения и аватары.

И вот сижу я и думаю, что, например, владея английским языком смотреть могу видео в оригинале, но, тот же Veritasium смотрел в оригинале всего несколько раз, так как мне ближе адаптационная озвучка от Vert Dider. А я чем хуже? Правильно, мне лень этим заниматься на стабильной основе. Что я могу сделать? Автоматизировать за несколько часов часть процесса, который по-хорошему должен занимать 15 минут, зачем тогда десятый год я программирую?

В общем, статья написана как всегда в стиле (б|в)лога, потому заваривайте чай, мы начинаем писать cli и десктоп для переозвучки с помощью локальных моделей ollama!

Ну чё погнали

Можно ли торговать, не анализируя рынок? Небольшое исследование

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

Я иногда наблюдаю за людьми которые зарабатывают на рынке. Достаточно часто они выкладывают годовые результаты или даже налоговые отчёты с миллионными выплатами. И при этом все в основном стесняются рассказывать о своих стратегиях даже чуть‑чуть. Правда это вполне естественно, ведь если стратегия приносит деньги зачем о ней говорить? 

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

Представьте детский сад. Один ребёнок приносит коробку конфет. Он её открывает. Показывает всем. Но делиться не собирается.

У остальных детей возникает понятная смесь эмоций: любопытство, раздражение.

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

Заработок без прогноза?

Удаление шума и деформация 3D‑облаков точек в Python с помощью графовых лапласианов

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

Облако точек — это набор измерений в формате точек в 3D‑системе координат, где каждая точка представляет одно пространственное измерение на поверхности некоторого объекта. Вместе все точки описывают внешнюю поверхность объекта в пространстве. Такие облака точек можно получить с помощью 3D‑лазерных сканеров, LiDAR-сканеров или фотограмметрии; их часто используют для построения точных цифровых 3D‑представлений в строительстве и архитектуре, геодезии и картографии для создания цифровых двойников зданий или моделей рельефа и местности, а также в промышленности для создания 3D-моделей деталей (CAD), контроля качества продукции и анализа износа оборудования.

Часто возникает необходимость анализировать локальные геометрические свойства 3D-поверхностей — чтобы понимать, как они изгибаются, как меняется наклон, как варьируется плотность точек. Это важно для реалистичной графики, анализа 3D‑сканов и инженерной оптимизации форм. Математический инструмент, позволяющий это сделать — вычисление производных.

Ключевое отличие облаков точек от 3D‑сеток (mesh) в том, что облака точек — это несвязанные точки данных, а не поверхность, построенная из треугольников или полигонов (рисунок 1).

Читать далее

Прогнозирование цен на Airbnb в Нью-Йорке

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

Привет, Хаброжители! Чтобы сравнить машинное и глубокое обучение с точки зрения простоты, сопоставим два решения для конкретной задачи классификации табличных данных: прогнозирование того, будет ли объект недвижимости, предлагаемый в аренду на платформе Airbnb в Нью-Йорке (NYC), иметь цену больше или меньше средней цены в объявлениях Airbnb на этом рынке.

Читать далее

Иволга это молитва. Доказано с помощью Python

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

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

Читать далее

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

HTTP-кеширование изнутри: ETag, Last-Modified и эвристика браузера

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

Как браузер принимает решение о кешировании? Что такое условный HTTP-запрос? Как возникает 304 Not Modified? Как устроен принудительный запрос ресурса, минуя кеш? Если эти вопросы для вас актуальны, прошу на огонёк.

Изложение намеренно подробное: статья адресована и тем, кто только начинает путь в веб-разработке, и тем, кто просто хочет закрыть отдельные пробелы в понимании механизма кеширования.

Скажем «нет» слепому копированию заголовков кеширования.

Погружаемся

Мета-модель для диагностики обучения нейросетей

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

Когда мы обучаем модели машинного обучения, почти всегда возникает один и тот же вопрос:

Что именно происходит во время обучения?

Обычно мы смотрим на графики метрик и пытаемся вручную интерпретировать происходящее.

Можно посмотреть на learning curves и понять, что происходит:

Но этот анализ почти всегда выполняется вручную или с помощью простейших эвристических правил. А ведь сколько времени, сил и нервов можно было бы сэкономить, если обучить до 100 эпохи а не до 500 (см картинка выше) :-(

Но можно задать интересный вопрос:

А можно ли автоматически определить состояние обучения модели?

Читать далее

Дроны над Дубаем и новостной агрегатор: Flask, MCP-сервер, AI-агент и Telegram-бот

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

28 февраля 2026 года я стоял у окна на 41-м этаже в JBR в Дубае и смотрел, как системы ПВО ОАЭ перехватывают иранские беспилотники прямо над моей головой. Полез в новости — в Google и Яндексе статья двухчасовой давности, Telegram-каналы противоречат друг другу. Когда это происходит где-то далеко, не придаёшь этому значения. Когда ты в центре событий, то хочешь знать оперативную информацию, желательно с push-уведомлениями.

Читать далее

6 800 замеров глюкозы у кошек с диабетом: что я узнал, создав платформу для мониторинга

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

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

Полгода назад я писал здесь, как за 5 дней с помощью Claude создал приложение для мониторинга диабета у своей кошки Манишки. Ей было 13 лет, она весила 3 кг, и каждый день я мерял ей сахар глюкометром и колол инсулин. Из блокнота на холодильнике данные перекочевали в Excel, потом в Python-скрипт с графиками, а потом — в полноценное веб-приложение Diabnostic.

С тех пор кое-что изменилось: Манишка вышла в ремиссию в декабре 2025 — глюкоза пришла в норму, инсулин больше не нужен. Но приложение жило своей жизнью: за 5 месяцев работы на платформе зарегистрировались 346 владельцев, и вместе с их питомцами накопился уникальный датасет — 6 783 записи глюкозы от 121 питомца.

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

Поехали!

Как устроены память и Garbage Collector в CPython: разбор для Python backend interview

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

В Python памятью управляет не только Garbage Collector.
На самом деле основа всего — reference counting, а GC лишь помогает собирать циклические ссылки.

В этой статье разберём, как на самом деле устроено управление памятью в CPython:

что находится внутри PyObject
как работает ob_refcnt
почему одного reference counting недостаточно
как GC ищет циклический мусор
какие объекты вообще участвуют в сборке
и как всё это помогает искать memory leak в production

Если ты готовишься к senior Python интервью или просто хочешь понимать, как Python работает под капотом, — добро пожаловать под капот CPython.

Читать далее

22 протокола мониторинга в PingZen: от пинга до Playwright-сценариев

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

Вам точно нужен только HTTP-мониторинг? А как насчёт проверки, что DNS резолвится правильно, SMTP-сервер принимает почту, а Minecraft-сервер отвечает на handshake? В PingZen мы добавили 22 протокола, включая Transaction с Playwright, чтобы вы могли мониторить буквально всё. Рассказываю, зачем это нужно и как работает «под капотом».

Читать далее

Подключаем MAX к своей CRM за 30 минут на Python

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

Мессенджер MAX набирает обороты в корпоративном сегменте. У него есть Bot API, но документации и примеров интеграции в открытом доступе минимум. В этой статье покажу, как за полчаса поднять микросервис, который принимает и отправляет сообщения MAX, и подключить его к любой CRM или внутренней системе.

Что получим в итоге

FastAPI-микросервис на Python

Приём входящих сообщений через Long Polling

Отправка ответов из CRM обратно в MAX

Автоматическое переподключение при обрывах

Systemd-сервис для продакшена

Читать далее