Pull to refresh
33
ionicman@ionicman

User

0,1
Rating
11
Subscribers
Send message

Вам не нужен OpenClaw — напишите свой

Level of difficultyEasy
Reading time14 min
Reach and readers43K

Привет, Хабр! Меня зовут Никита Пастухов — автор FastStream, Principal Engineer и мейнтейнер AG2 (фреймворк для разработки агентов). Я уже 8 лет в разработке, последний год - по уши в агентах.

И я хочу доказать вам, что написать своего агента не сложнее, чем написать CRUD

Почему это вообще нужно доказывать? Потому что есть заметный разрыв между тем, что происходит с AI в мире, и тем, что происходит в среднестатистической российской компании. В мире — в каждой компании подписка на OpenAI, миллиард стартапов с AI-продуктами, агенты глубоко интегрированы в бэкофис. В России — «опасно, хостим свои модели», «непонятно» и чат-боты поддержки. В мире инженеры уже умеют разрабатывать агентов. В России — «что это вообще такое?»

Поэтому давайте разберём устройство агентов на примере OpenClaw — самого хайпового “личного AI-агента” прямо сейчас. Он живёт в вашем мессенджере, разбирает почту, ведёт соцсети, пишет код, деплоит сервисы. Его популярность — свидетельство того, насколько мало люди пока используют агентов в быту. Для тех, кто в теме, OpenClaw не привнёс ничего нового.

Давайте разбираться

Превращаем сканер в тачскрин монитора

Level of difficultyMedium
Reading time7 min
Reach and readers20K

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

Как же я пришёл к такой безумной идее? Источником вдохновения может быть что угодно. Ко мне оно пришло, когда я убирал стол, который использую для хакинга. Как обычно, на нём валялась куча деталей и поломанных устройств и среди прочего многофункциональный принтер Epson Stylus SX125. Я купил его, чтобы задействовать детали принтера в каком-то другом эксперименте, и хотя оборудование сканера было в порядке, плата контроллера, управлявшая и принтером, и сканером, вероятно, уже ни на что не была способна.

Читать далее

Ultimate guide по веб-компонентам

Level of difficultyMedium
Reading time21 min
Reach and readers9.3K

Синхронизация атрибутов элемента с DOM-свойствами

Очевидно, что нашему компоненту потребуются атрибуты, через которые пользователь сможет контролировать его поведение. Наш компонент должен вести себя как стандартный элемент ввода типа «input», поэтому обязательно должен поддерживать такие атрибуты как disabled и required – и это самый минимум. Поэтому важно разобраться (ну или вспомнить) что такое «content vs IDL attributes», и как с этим работать.

Документация по веб-компонентам мало говорит об атрибутах, разве что рекомендует использовать attributeChangedCallback() для наблюдения за ними, но этого недостаточно. Хотя это полезное API, нам оно не подходит, потому что оно уведомляет нас о уже совершенном действии (изменении атрибута), а нам нужно контролировать этот процесс, то есть – синхронизировать атрибуты и свойства с нормализацией значений.

Так как наш компонент наследует базовый класс HTMLElement, а в нем уже реализовано большое количество разных методов, то мы можем переопределить некоторые из них чтобы получить нужный нам результат. Для начала определим наши свойства в виде пар get/set и значения в приватном поле:

Читать далее

ПИД-регулятор — это весело

Reading time12 min
Reach and readers20K

Давайте исследуем ПИД-регулятор через пень-колоду: FDTD, численное интегрирование, ракету и самобалансирующегося робота! Ворох нечитаемого кода! Мало не покажется

Читать далее

Ускоряем вставку данных в PostgreSQL

Reading time20 min
Reach and readers11K

Это текстовая версия доклада с Java Rock Star Meetup, с которым выступал Дмитрий Фатов (@FatOFF ) — руководитель разработки Газпромбанка с опытом разработки приложений более 13 лет. Дмитрий работал как backend-, так и fullstack-разработчиком на языках Java, Kotlin, JS, TS, 1С и имеет большой опыт работы с SQL-базами данных.

Читать далее

Как отменить или откатить коммит в Git командами reset, revert и restore

Level of difficultyHard
Reading time6 min
Reach and readers18K

Всем привет!

Если вы работаете с Git относительно недавно, почти наверняка у вас возникала потребность в отмене коммита. И, что печально, вы быстро поняли, что простого "откатить все назад" нет.

Где-то советуют git reset, где-то - git revert, а в третьих и вовсе пишется про checkout. По тому же правилу летят restore, amend, reflog и куча технологических формулировок, требующих знания git и после которых становится только сложнее, нежели понятнее.

На самом деле все это объясняется: под словами "отменить commit" можно иметь в виду совершенно разные действия, и мы разберем, для каких случаев, какая команда подходит.

Читать далее

«Хранилище Google переполнено»: Как очистить Gmail от мусора и обойти покупку подписки

Level of difficultyEasy
Reading time3 min
Reach and readers54K

Рано или поздно каждый пользователь экосистемы Google сталкивается с уведомлением о том, что бесплатные 15 ГБ пространства закончились. Письма перестают приходить, файлы на Диск не загружаются, а Google настойчиво предлагает оформить ежемесячную подписку.

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

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

Читать далее

Одна формула, позволяющая понять 3D-графику

Level of difficultyEasy
Reading time9 min
Reach and readers31K

Учась в школе, я обнаружил очень простую математическую формулу, о которой не перестаю думать и сегодня. Смысл её в следующем: представьте, что у вас есть 3D-точка в воображаемом 3D-пространстве за экраном. Для проецирования этой 3D-точки на экран нужно взять её координату X, поделённую на Z, и аналогично её Y / Z. И в результате вы получите проекцию точки на экран: x'=\frac{x}{z} и y'=\frac{y}{z}. А если у вас есть множество точек в этом 3D-пространстве за экраном, и вы начнёте их анимировать и вращать их, а потом воспользуетесь этой формулой для рендеринга всех точек на экране, то это будет выглядеть, как 3D-сцена или 3D-объект. Давайте попробуем эту формулу в деле.

Читать далее

Ротозумер: разбор классического демо-эффекта

Level of difficultyMedium
Reading time33 min
Reach and readers12K

Разбираемся с классическим демо-эффектом из начала 90-х. Когда и в каких демо он появился? Как работает? Почему всё не так просто, как может показаться на первый взгляд? Как написать самый быстрый ротозумер и зачем это нужно в 2026 году? На эти и другие вопросы современности я попробую ответить в этой статье.

Никаких ИИ при создании данного материала не использовалось! Продукт ассемблеро-содержащий, с натуральными картинками и витаминами!

Читать дальше

Возможно, самый гениальный код на python на сегодня: разбираем 200-строчный microgpt от Андрея Карпаты

Level of difficultyMedium
Reading time27 min
Reach and readers54K

Буквально на днях Андрей Карпаты, один из ранних сооснователей OpenAI, покинувший компанию, исследователь нейросетей, опубликовал на Гитхаб фантастическую вещь: чистый (без специализированных библиотек) 200-строчный python-код трансформера, аналога GPT-2, для изучения всеми желающими. И написал в блоге статью для понимания этого кода (и работы трансформеров). Я перевёл статью и комментарии к коду — ведь этот код (я уверен!) войдёт в ИТ-историю...

Присоединяйтесь к этому завораживающему сеансу разоблачения gpt-магии, за считанные годы овладевшей миром!..

Читать далее

Передача JPEG-видео по RTP/UDP на ESP32 (RFC 2435)

Level of difficultyMedium
Reading time9 min
Reach and readers21K

В этой статье я разберу, как реализовать передачу JPEG-видео по RTP поверх UDP напрямую с ESP32 - так, чтобы поток открывался в VLC и ffplay, без RTSP, FFmpeg и промежуточных серверов.

Читать далее

Как я отказался от FFmpeg и написал FLAC энкодер за 500 строк на Go

Level of difficultyMedium
Reading time5 min
Reach and readers14K

Избавляемся от FFmpeg: конвертер аудио на чистом Go с FLAC-энкодером

Как убрать зависимость от FFmpeg в аудиоинструментах. Разбираю архитектуру, pure Go библиотеки и написание FLAC-энкодера с нуля. Результат: один бинарник для Linux, Windows, macOS.

Читать далее

Установка Max отдельно от всего в рабочем профиле на Android

Level of difficultyEasy
Reading time7 min
Reach and readers221K

В этой статье подробнее освещу подход с установкой недоверенного мессенджера Max в "рабочий профиль" на Android, который отгораживает приложения от основного профиля. Обойдемся сегодня без покупки нового гаджета.

Из-за чего весь сыр-бор? Вчера вышла статья, что потребитель пошел по магазинам, искать себе новый телефон для установки туда мессенджера Макс. На Хабре комментаторы в большинстве своем решили: это всё из-за недоверия народного! Допустим. А что, сразу телефон отдельный покупать надо?

Читать далее

Определение скорости/факта наличия вращения микродвигателей

Reading time6 min
Reach and readers14K

Shenzhen Dehong Electric Motor Co., Ltd Store

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

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

Читать далее

Как я перестал слушать «Unknown Artist — Track 01» и написал свой распознаватель музыки

Level of difficultyMedium
Reading time7 min
Reach and readers23K

12 000 MP3 без тегов, 15 лет прокрастинации, один выходной на код. Асинхронный распознаватель на Python + Shazam: как обойти rate limiting, починить кривые кодировки и не съесть всю память. Код открыт.

Читать далее

Конфигуратор микроконтроллеров STM8S103/105

Reading time10 min
Reach and readers15K

Разработана программа с целью обучения и быстрого создания программ для управления робототехническими комплексами или электропреобразовательными установками. Программа представляет собой приложение для персонального компьютера (ПК) с операционной системой (ОС) Windows 10 и выше, разрядностью 64-бит, (версия 32-бит проверялась на Windows 7), позволяющее визуально создавать конфигурацию периферийных устройств микроконтроллеров (МК) STM8S103/STM8S105, что позволяет ускорить процесс создания “прошивки” для МК и (или) уменьшить количество ошибок при разработке. Программа по созданной визуально конфигурации, путем выбора из заданных альтернатив, ввода числовых значений и контроля правильности ввода (предупреждает об ошибках), формирует файлы проекта для программирования МК на языках C (с библиотекой SPL или программирование на уровне регистров) и Assembler (язык выбирается в настройках программы). Позволяет сохранить созданную конфигурацию в файл для использования в дальнейшем. Имеется необходимая справочная информация по МК, SPL, C упрощающая создание кода. Созданные файлы проекта можно перед отправкой в IDE редактировать в сразу этой программе.

Скачать программу Конфигуратор микроконтроллеров STM8S103/105.

Читать далее

Универсальная простота FAR. Как настроить и кастомизировать пользовательское меню

Reading time7 min
Reach and readers25K

Для меня файловый менеджер FAR — это настоящий центр компьютерной вселенной. Это та самая программа, которую я запускаю сразу после загрузки операционной системы. Это то самое приложение, которое у меня всегда открыто, что бы я ни делал, какие бы задачи ни решал. За много лет мой FAR превратился в привычный инструмент, который так удобно ложится в руку, что тут же становится её естественным продолжением.

FAR — это тихая надёжная гавань, в которой я могу отдохнуть от пёстрых окон, разноцветных иконок и безумных графических интерфейсов. Это то место, откуда начинаются все мои цифровые экспедиции, где хранятся все мои привычные инструменты и находятся дверцы во все мои заветные сокровищницы знаний.

В статье я расскажу о том, как можно настроить и кастомизировать пользовательское меню файлового менеджера FAR.

Читать далее

Использование Node.js Stream для пакетной построчной обработки файлов

Level of difficultyEasy
Reading time5 min
Reach and readers10K

Node.js Stream предоставляют мощное средство для эффективной обработки большого обьема данных, например файлов с миллионами строк. Тем не менее их использование сопряжено с некоторыми трудностями, такими как не совсем прозрачное API и не тривиальная построчная обработка текстовых файлов. Чтобы разобраться в этом процессе, напишем несколько Transform стримов, изучим преобразование chunk и декодирование байт в строки.

Читать далее

Вы больше не новичок в Git. Повышаем квалификацию с помощью 7 команд

Level of difficultyMedium
Reading time10 min
Reach and readers28K

Каждому разработчику когда-нибудь приходилось срочно переключаться между ветками, восстанавливать потерянный коммит или аккуратно вырезать одно исправление. Это можно делать примитивно с помощью базовых команд Git, но настоящий профессионал отличается от любителя тем, что применяет самые оптимальные решения, тем самым экономит время и нервы. О таких решениях поговорим далее в статье.

Читать далее

Многофункциональная утилита для работы с HDD, SSD и флешками

Level of difficultyEasy
Reading time4 min
Reach and readers19K

Обзор многофункциональной программы для работы с жёсткими дисками, SSD и флешками на «физическом» с точки зрения OS Windows уровне, независимо от файловой системы или её отсутствия. Проверка секторов, анализ SMART а том числе Seagate FARM, определение фейковых флешек, чтение и запись посекторных образов дисков (клонирование).

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

Information

Rating
4,095-th
Registered
Activity