Рубрика «node.js»

DeepSeek Harness (дальше — DSH) у меня работает на компьютере, и там же живут агент, его сессии и история, инструменты, подписки и ключи провайдеров. Чтобы добраться до этих чатов с телефона, я написал DSH Mobile — клиент для Android. Проект неофициальный, к DeepSeek отношения не имеет, код открыт под MIT. С телефона видны чаты всех проектов одним списком; агенту можно поставить задачу, приложить к ней фото или файл, ответить на его вопрос, а когда ответ готов, приходит уведомление.

Читать полностью »

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

Из этого раздражения и вырос KINO PARTY (partykino.comЧитать полностью »

История началась с того, что я искал норму магния для человека, который регулярно тренируется. Первый результат гласил о том, что необходимо 400 мг в сутки, второй — 350, третий — «до 500, если вы потеете». Ни один не объяснял, откуда взялось конкретное число. Я потратил вечер на PubMed, нашёл два обзора и понял, почему цифры расходятся: в одном случае считали потребление с едой, в другом — добавку сверх рациона. Это разные вопросы, и ответы у них разные.

Читать полностью »

Я делаю браузерную текстовую ролевую игру, где ведущим работает языковая модель. Игрок пишет любое действие своими словами, мастер отвечает рассказом, а игра ведёт механику: здоровье, деньги, характеристики, инвентарь, броски d20. Кажется, что всё просто: отправь модели историю и лист персонажа, получи ответ. На практике самые интересные задачи оказались не в промптах вида «напиши смешно», а на стыке вероятностной модели и детерминированной игровой механики. Ниже — четыре таких места и то, как я их решил.

Стек: Node.js 24, Express, встроенный node:sqlite, модели через OpenRouter и общий для сервера и браузера модуль движка.

Читать полностью »

Привет!

Мы тонем в новостях: тут говорят одно, там — противоположное, а где правда — непонятно. Информации слишком много. Не хватает инструмента, который показывал бы, как риск меняется во времени: по открытым данным, а не по громкости заголовка. Такого инструмента я не нашёл. Пришлось собрать самому.

Получился Индекс Кассандры — еженедельный сервис про уровень и направление риска глобального конфликта. Без регистрации, трекеров и подписок. Код, методика, данные и тесты открыты на GitHub, сайт статический (GitHub Pages).

Читать полностью »

Мы много разрабатываем с помощью coding agents: веб‑приложения, MCP‑серверы, пайплайны обработки данных, системы из нескольких агентов. И чем лучше становилась инфраструктура вокруг агентов, тем больше в ней появлялось инструкций, проверок, субагентов и автоматики. По идее, разработка должна была становиться дешевле. А расход контекста рос.

Первое подозрение было очевидным: слишком раздутые промпты. Мы искали не там.

38 килобайт текста со смыслом «всё хорошо»

Агент закончил изменение и запустил тесты. 178 тестов, все зелёные. На stdout прилетело 38 365 байт TAP:

# Subtest:...

ok 1 ‑...

‑-

duration_ms:...

type: 'test'

..

Читать полностью »

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

Один бот — не один процесс

Самое очевидное решение — запускать на каждого бота свой процесс с long polling. Оно же самое плохое: сто ботов — сто процессов, каждый держит соединение и память, даже если боту никто не пишет неделями.

Читать полностью »

Как‑то я захотел кошелёк Monero с нормальным веб‑интерфейсом, но без компромиссов по ключам: чтобы он работал на моей машине, ходил в мой узел и не притворялся кастодиальным сервисом. Писать криптографию самому — плохая идея, поэтому вся работа с ключами осталась за официальным monero-wallet-rpc, а на мне была «всего лишь» оболочка: бэкенд, интерфейс и куча инфраструктурной логики, которая внезапно оказалась самой интересной частью задачи.

В статье — восемь грабель, которые я собрал по дороге: от HTTP Digest, который зависит от TCP‑соединения, до JSON.stringifyЧитать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js