Pull to refresh
Козлов Василий Иосифович@saintbyteread⁠-⁠only

Пользователь

Send message

Вам стоит написать своего агента

Level of difficultyEasy
Reading time9 min
Reach and readers9.7K

Некоторые концепции легко усвоить абстрактно. Кипящая вода: греем её и ждём. Другие нужно попробовать самому. Вы думаете, что знаете, как работает велосипед, пока не попробуете покататься на нём.

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

К ним относятся и LLM-агенты.

Мнения о LLM и агентах невероятно разнообразны. Но даже если это мошенничество, это серьёзная идея. Они не обязаны вам нравиться, но вы должны быть правы относительно них.

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

Читать далее

Моя б̶е̶з̶умная колонка: часть вторая // программная

Level of difficultyEasy
Reading time16 min
Reach and readers11K

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

В прошлой статье я описал аппаратную реализацию своего голосового ассистента на базе бюджетного одноплатника Orange Pi Zero 2W с 4Гб оперативной памяти. Эту же статью хочу посвятить программной реализации данного устройства. Если стало интересно, то добро пожаловать под кат.
Читать дальше →

Делаем Electron UI более «нативным». Простой гайд из 15 шагов

Level of difficultyEasy
Reading time3 min
Reach and readers19K

Ниже я приведу примеры, как пустить пыль в глаза юзерам можно улучшить ситуацию с ощущением чужеродности приложения среди других, написанных на честном Gtk, китами из XCode, Windows UWP и прочим с 0% вайбкодинга

Читать далее

Пожиратель токенов (или нет): анатомия протокола MCP для ИИ-агентов

Reading time9 min
Reach and readers6.4K

Поводом написания этой статьи послужил подслушанный диалог:

— А на чем у вас агенты написаны?

— У нас на MCP!

Для меня MCP всегда был просто протоколом, то есть именно способом отправки и обработки запросов. А когда я слушал выступления или читал некоторые статьи о том, как плох/хорош MCP, меня не покидало ощущение чего-то странного. Но все же решил, что это от незнания, и я чего-то не понимаю. А когда не понимаешь, но очень хочешь понимать, то самый лучший способ — это взять и разобраться.

Именно это предлагаю и сделать в статье, а также замерить MCP, чтобы ответить на вечный вопрос: сколько сжирает MCP, подключать ли его вообще или и так сойдет?

Читать далее

Как научить нейросеть работать руками: создание полноценного ИИ-агента с MCP и LangGraph за час

Reading time24 min
Reach and readers17K

Надоели чат‑боты, которые только болтают? Создаём настоящего ИИ‑помощника: читает файлы, ищет в сети, запоминает всё. LangGraph + MCP — пошаговый гайд для Python‑разработчиков. Меньше теории, больше работающего кода.

— Два готовых агента: классификатор вакансий + файловый помощник
— Поддержка Ollama, OpenAI, DeepSeek — выбирайте любую модель
— Асинхронная архитектура с обработкой ошибок
— Полная интеграция в Python‑проекты без no‑code конструкторов
— Код готов к продакшену: логирование, retry‑механизмы, конфигурация

От настройки окружения до рабочего агента за час.

Читать далее

MCP (Model Context Protocol)

Level of difficultyEasy
Reading time11 min
Reach and readers25K

В последнее время аббревиатура MCP стала все более часто появляться в некоторых статьях и разделах комментариев на arXiv или Daily Papers Hugging Face, которые я просматриваю. Внезапно осознав, что мое представление об этом лишь приблизительное, я решил изучить его более подробно и поделиться с вами.

Читать далее

Ory Kratos — коробочный SSO

Level of difficultyMedium
Reading time9 min
Reach and readers15K

Ory Kratos - современный cloud native сервер идентификации с поддержкой PassKeys, MFA, FIDO2, TOTP, WebAuthn, с возможностью управления профилями, схемами пользователей, входом через внешние сервисы, регистрацией, восстановлением аккаунта, с поддержкой passwordless входа. Написан на Go, headless, API-first.

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

Читать далее

Самодельная аэромышь с мультимедийным управлением

Level of difficultyMedium
Reading time8 min
Reach and readers2.4K

Имея ограниченный бюджет и страсть к DIY‑проектам, я решил создать что‑то полезное, используя те компоненты, которые уже были у меня под рукой. Порывшись в своих запасах, я наткнулся на гироскопический датчик, ESP32-C3 и ёмкостные сенсоры, оставшиеся от предыдущих проектов — и тут меня осенило! Почему бы не собрать воздушную мышь с мультимедийными функциями? Вооружившись этими компонентами и щепоткой креативности, я поставил перед собой цель — собрать Bluetooth HID‑устройство с управлением движением, которое позволит буквально взмахами руки перемещаться по меню, наслаждаясь удобным управлением мультимедиа.

Но и это ещё не всё. Этот мини‑гаджет подходит не только для телевизоров, ПК и Android‑устройств — он также может управлять радиоуправляемыми моделями, роботизированными манипуляторами и другими умными устройствами с плавным управлением движением.

Читать далее

Всё, что вы НЕ хотели бы знать о сервисах онлайн знакомств… [много букОв и иллюстраций + регулярно дополняется]

Reading time60 min
Reach and readers438K
Компьютерные сети изменили мир и подарили нам возможность не выбирать «меньшее из зол» из ограниченного числа сложившихся по жизни контактов, а найти по-настоящему любимого человека, даже если он прячется от нас на другом материке. Разумеется, мы можем отказаться от этой возможности и пойти по воспетому российской эстрадой садистско-мазохистскому сценарию «слепила из того, что было, а потом, что было, то и полюбила». И все будут только рады, если у нас всё получится. Но, если мы подведем статистику известных нам счастливых пар, сложившихся по этому сценарию, и трезво оценим вероятность успешного исхода, то, вероятно, путь поиска своего счастья в мировой паутине покажется нам более перспективным. И в этой статье я хочу рассказать вам о тех проблемах с которыми на этом пути можно столкнуться.
Читать дальше →

Я беру джойстик, лечу в поле и зарабатываю 3,6 млн чистой прибыли за сезон

Level of difficultyEasy
Reading time11 min
Reach and readers164K

В статье расскажу, сколько денег может налетать агродрон, и как быстро можно окупить подобное предприятие.

Читать далее

Использование симулятора Flight Gear в качестве виртуального MEMS

Level of difficultyMedium
Reading time8 min
Reach and readers2.1K

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

Читать далее

Я купил детский ARM-ноутбук за 500 рублей, чтобы поставить на него Linux

Level of difficultyMedium
Reading time10 min
Reach and readers53K

Сегодня компьютером на x86-совместимом процессоре едва ли можно кого-то удивить с гиковской точки зрения. Другое дело — обучающий ноутбук для детей, который работает на интересном и необычном ARM-процессоре от небезызвестной компании VIA. И хотя для запуска произвольных программ его необязательно было хакать — всем гикам известно, надо было ставить Linux!

К чему приводит давняя детская мечта об обучающем ноутбуке, что скрывается внутри устройства за 500 рублей и как на всё это накатить Linux с дуалбутом в родную систему — читайте в сегодняшней подробной статье!

Читать далее

Программируем квадрокоптер на STM32

Level of difficultyEasy
Reading time8 min
Reach and readers12K

Данный проект представляет собой систему стабилизации квадрокоптера на базе микроконтроллера STM32F411, реализованную на языке C. Включает обработку данных с датчиков (акселерометр, гироскоп), PID-регуляторы для управления моторами и алгоритмы фильтрации. Подходит для образовательных целей и DIY-проектов.

Читать далее

Ходим в Интернет с отключённым IPv4

Level of difficultyMedium
Reading time14 min
Reach and readers58K

Несколько дней назад в маршрутизаторе моего провайдера после отключения электричества поломался IPv4. К счастью, подключение по IPv6 продолжало работать, но доступна была только малая часть веб-сайтов.

В этом посте я расскажу, как на помощь мне пришли Linux, WireGuard и Hetzner, благодаря которым я смог получить доступ ко всему Интернету через одно лишь соединение IPv6.

Читать далее

Несколько сетей для энтузиастов

Reading time29 min
Reach and readers35K
Несмотря на обилие материала в сети, в том числе на русском, в том числе на Хабре, в комментариях к публикациям периодически можно встретить удивление открывшимся фактам в обсуждении. Поэтому я решил написать короткую обзорную статью, перечислив в ней сети, в которых может участвовать любой желающий.

Фактически эта публикация краткий дайджест статей на Хабре о технических хобби, в основном, на грани IT, программирования и радиолюбительства.

И первым в списке станет популярный Народный мониторинг.


The Hitchhiker's Guide to the Habr

Как помочь пользователю ждать. Научные исследования

Level of difficultyMedium
Reading time6 min
Reach and readers3.3K

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

Читать далее

Как работает yield

Reading time6 min
Reach and readers788K
На StackOverflow часто задают вопросы, подробно освещённые в документации. Ценность их в том, что на некоторые из них кто-нибудь даёт ответ, обладающий гораздо большей степенью ясности и наглядности, чем может себе позволить документация. Этот — один из них.

Вот исходный вопрос:
Как используется ключевое слово yield в Python? Что оно делает?

Например, я пытаюсь понять этот код (**):
def _get_child_candidates(self, distance, min_dist, max_dist):
    if self._leftchild and distance - max_dist < self._median:
        yield self._leftchild
    if self._rightchild and distance + max_dist >= self._median:
        yield self._rightchild

Вызывается он так:
result, candidates = list(), [self]
while candidates:
    node = candidates.pop()
    distance = node._get_dist(obj)
    if distance <= max_dist and distance >= min_dist:
        result.extend(node._values)
        candidates.extend(node._get_child_candidates(distance, min_dist, max_dist))
        return result


Что происходит при вызове метода _get_child_candidates? Возвращается список, какой-то элемент? Вызывается ли он снова? Когда последующие вызовы прекращаются?

** Код принадлежит Jochen Schulz (jrschulz), который написал отличную Python-библиотеку для метрических пространств. Вот ссылка на исходники: http://well-adjusted.de/~jrschulz/mspace/

Подробный и обстоятельный ответ

Телеграм-бот для бронирования столов на вебхуках: FastAPI, Aiogram Dialog, FastStream и RabbitMQ в единой экосистеме

Reading time64 min
Reach and readers12K

В этой статье мы создадим функционального Telegram-бота для бронирования столиков в ресторане «Binary Bites» с использованием современных Python-инструментов. Бот будет работать через вебхуки, взаимодействовать с брокером сообщений RabbitMQ и поддерживать фоновое выполнение задач с помощью FastStream и APScheduler.

Проект объединит FastAPI, SQLAlchemy, Alembic, Uvicorn и другие библиотеки, обеспечивая гибкость и масштабируемость. Готовый бот позволит пользователям бронировать столики, просматривать и отменять брони, а администраторам — управлять заказами.

Читать далее

Как составить резюме для российского рынка: практическое руководство

Level of difficultyEasy
Reading time3 min
Reach and readers5K

Автор: InfinityProductive

Это руководство поможет вам составить грамотное резюме для российского рынка. В качестве шаблона можно использовать заполненный профиль на HH.ru или готовый макет в Canva.

Читать далее

IBM PalmTop PC 110: легендарный карманный ноутбук, опередивший время

Level of difficultyEasy
Reading time8 min
Reach and readers8.6K


Признаюсь: я просто влюблён в ноутбуки от IBM — в моём компьютерном хозяйстве каким-то непостижимым образом образовались аж целых три ThinkPad’а. Изучая продуктовую линейку этой компании, я неожиданно наткнулся на очаровательный ноутбук сверхкомпактного форм-фактора. Глядя на него, я искренне пожалел, что живу не в Японии, поскольку это устройство выпускалось только для японского рынка. Речь идёт о карманном ноутбуке с названием IBM PalmTop PC 110.
Читать дальше →
1
23 ...

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity