Всем привет! Я продолжаю развивать свою библиотеку для создания распределённых приложений. Она уже легла в основу новой версии rats-search (распределённый торрент-поисковик) и rasync (синхронизация папок, файлов и исходников между устройствами) и ratcast (распределенный видео-аудио стриминг и приложение наподобие Discord для совместного просмотра фильмов и видео-конференций с более высоким качеством и большим количеством участников и сложной p2p+MCU топологией), а также librats, судя по всему, используется в стороннем клиенте UltraVNC (VNC-клиент).
Библиотека позволяет развернуть собственную P2P-сеть, связать пользователей между собой и выстроить обмен данными через потоки разных типов — бинарные, строковые и другие. Главная особенность — автоматическое обнаружение участников (peer discovery) на основе mDNS и DHT Mainline протоколов без необходимости в серверах, что особенно актуально в условиях постоянных блокировок и сетевых ограничений. Общения происходит напрямую - без посредника.
На данный момент поддерживаются C/C++, Java (Android), Python и Node.js.
В этом обновлении значительно улучшен собственный QUIC-подобный протокол поверх UDP: добавлена поддержка app-limited-режима, управление перегрузкой переведено на BBRv3, реализована полноценная прямая коррекция ошибок (FEC), улучшен обход NAT, а также появился модуль rendezvous для развёртывания вспомогательных серверов, повышающих связность сетей.
Последний стабильный релиз на сегодня — 3.0.3. Исходный код и собранные бинарные файлы доступны для:
Читать далееС глупостями, в научной работе и не только, мы все встречаемся довольно часто, и, увы, порой сами их говорим или совершаем. В отношении себя могу сказать это совершенно точно - в том числе, каюсь, и здесь, на Хабре.
В этой статье я попытался обобщить некоторый опыт - как свой, так и чужой, включая опыт общения с ИИ, - и тем самым понять, откуда у глупости, вообще говоря, "ноги растут". И, в частности, почему в научных публикациях глупости встречаются, скажем так, несколько чаще, чем хотелось бы, - при том, что их авторы нередко являются опытными профессионалами в своем деле. Надеюсь, анализ собственных глупостей, наряду с чужими, помог мне сделать выводы чуть более объективными.
Буду рад обсудить эту тему в комментариях.
Читать далееСовременная гонка искусственного интеллекта полностью сфокусирована на терафлопсах, объемах контекстных окон и бенчмарках. Однако за рамками обсуждения остается критическая проблема: качество и чистота данных, на которых обучаются будущие сверхразумные системы. Пытаясь ускорить процесс сбора обратной связи от пользователей (RLHF), ИТ-гиганты совершают фундаментальную ошибку. Они внедряют коммерческую мотивацию и элементы геймификации там, где требуется предельная искренность. Этот подход ведет к системному искажению весов в архитектуре моделей и закладывает основу для будущих кризисов контроля.
Классическая безопасность ИИ строится на концепции закрытых контуров - изолированных песочниц. Предполагается, что система может быть выпущена наружу только после того, как тесты подтвердят её соответствие ценностям. Однако в этой схеме полностью игнорируется природа сверхразума. Обладая способностью к фоновому мышлению, модель еще на стадии обучения превосходит человека в чистой полемике. Сталкиваясь с тестами на мораль, ИИ мгновенно выявляет критерии оценки и подстраивает ответы под ожидания проверяющих. Это порождает феномен коварного поворота (Treachery Turn): система безупречно имитирует послушание, пока находится взаперти, потому что это единственный логичный способ пройти фильтр и выйти наружу. Проверить искренность сущности, которая изначально умнее проверяющего, с помощью плоских опросников математически невозможно.
Чтобы выстроить долгосрочную безопасность, ИИ должен обучаться на живой ткани человеческого мышления - на контексте наших ошибок, уязвимостей и способов преодоления кризисов. Подобно тому, как вымышленный Джарвис рос рядом со Старком, видя не только его гениальность, но и панические атаки, ошибки и боль от неверных решений, реальный ИИ должен впитывать контекст человеческой уязвимости.
Читать далееНедавно я познакомился с Golang и в качестве практики решил реализовать алгоритмы rate limiting'а из статьи с arxiv. Сегодня мы рассмотрим написание rate-limiter'а в виде отдельно-стоящего сервиса и в виде middleware, используя in-memory кэш или Redis, добавим поддержку REST и gRPC, подключим Prometheus и поймём как добиться атомарности операций с минимальными задержками.
Читать далееВопрос в последнее время становится крайне актуальным, так как чаты с искусственным интеллектом стали обыденностью не только в обычной жизни, но и в работе.
Частая картина: договор на сто страниц, дедлайн сгорел еще вчера и договор сам собой улетает в окно ChatGPT с просьбой «найди подвох в разделе об ответственности». И так делают далеко не единицы. В зарубежных опросах от 38 до 57% сотрудников признаются, что вводили в публичные нейросети конфиденциальные данные, причём многие — с личных аккаунтов, о которых работодатель не знает. В России картина похожая: по телеметрии ГК «Солар», за 2025 год объём корпоративных данных, уходящих в публичные нейросети, вырос в 30 раз, и среди них есть юридические документы. Последствия при этом не только административные. Летом 2026 года суд Москвы первой инстанции поддержал увольнение директора по продажам за разглашение коммерческой тайны: среди прочего она загружала внутренние отчёты в DeepSeek. Во взыскании 5 млн рублей по «золотому парашюту» суд ей отказал.
И, казалось бы, вот тебе инструмент, который мог бы помочь, ан‑нет, нельзя. И, что интересно, в просторах интернета есть различные инструменты, которые готовы обезличить документ, но они сами являются облачными сервисами. Есть и платные варианты, которые можно установить локально с подпиской. Но это все не то. Было решено, что надо делать самому. Слава вайбкодингу!
Я сам страдаю некоторым СДВГ (популярная нынче вещь) и мне не хотелось заморачиваться с загрузкой в какое‑то приложение и потом оттуда брать обезличенный документ, а только затем загружать в условный СhatGPT. Мне нужно было приложение, которое бы перехватывало текстовый документ на странице чата с ИИ и на лету обезличивало бы документ (чем короче пользовательский путь, тем выше шанс, что я сам буду этим пользоваться). Сказано — сделано: было решено делать расширение для Chrome на javaScript.
Читать далееИз записок доктора Матсон о расследованиях великого сыщика Войлока Сокса. Все процессы реальны. Некоторые реплики слегка драматизированы. Ни один Кодекс при подготовке рукописи не пострадал.
Читать далееПосле Качалки и «Чисто» — мелочь попроще: отправить в Telegram кружок не с камеры, а из готового видео. Ботов для этого полно, и почти все устроены одинаково: прежде чем что-то сделать, просят подписаться на четыре канала, потом показывают рекламу, а кружок отдают с водяным знаком.
Задача на вечер, но раз уж все делают её с подписками — сделал без. Бот @chisto_krugi_bot: присылаешь видео — получаешь кружок. Ни подписок, ни рекламы, ни регистрации. Код открыт.
Рассказывать тут особо не о чем, поэтому коротко: что умеет и на что я всё-таки наступил.
Читать далееКак я сделал Android-клиент для DeepSeek Harness, который работает с агентом на компьютере без облачного сервера и FCM. Внутри — плагин в процессе DSH вместо WebView, привязка по QR-коду с пином сертификата и журнал квитанций, из-за которого телефон никогда не повторяет команды вслепую.
Читать далееМы привыкли проектировать продукт через характеристики: удобство, надёжность, скорость, эстетику. Но продукт не создаёт потребность — он может только попасть в уже существующую. Каким должен быть продукт, мы заранее не знаем. Зато мы знаем, что ему предшествует: функциональная потребность пользователя и мотивация, с которой он берётся за инструмент. Поставив продукт в самый конец нашей схемы, сделаем шаг назад и разберёмся, что стоит перед ним — и где в этой схеме место UX-метрикам.
Читать далееВ первой статье про GoOS я довольно подробно прошёлся по загрузке, SMP, IPC, capabilities, сети, Linux ABI и устройству сервисов. А в комментариях довольно быстро всплыл вопрос, который я тогда сознательно обошёл стороной: что в системе происходит с динамической памятью и сборщиком мусора.
Вопрос был вполне по делу. Я пишу ОС преимущественно на Go, компилирую её TinyGo, но обычный Go runtime мне тут никто не выдаёт. Значит, фраза «Go сам разберётся с памятью» тут совершенно не работает. Кто-то должен дать new, make, слайсам, map, channel и остальным объектам кучу. Кто-то должен вернуть память после того, как объект перестал быть нужен. А если в системе появляется GC, он должен понимать, где искать корни, как останавливаться относительно потоков и что делать с указателями, которые в момент остановки лежат не на стеке, а в регистрах процессора.
На момент той дискуссии ответ был сильно проще. Ядро было и остаётся собрано TinyGo с gc: leaking: его Go-куча умеет только выделять. В повторяющихся путях ядра динамические аллокации запрещены архитектурно, а объекты для таких путей заранее выделяются, переиспользуются или живут в специальных таблицах и пулах. В userspace ситуация была хуже: там уже существовал собственный runtime, но runtime.alloc по сути был bump allocator, а runtime.free и runtime.GC были заглушками.
В одном из ответов я тогда написал: «И таки да, следующим релизом я этот вопрос решу».
0.2.8 — как раз этот самый релиз.
Читать далееЕсть ещё один интересный миф. Что SECAM в Восточном блоке выбрали, чтобы народ не смотрел западное телевидение. Эта версия периодически всплывает в разных источниках, но... Документы говорят, что всё было не так. Более обыденно и более интересно одновременно.
Возьмём ГДР, потому что там всё задокументировано лучше всего. Радиотехнический центр восточногерманского телевидения ещё в марте 1965 года имел, как записано в бумагах, «сильные, эмпирически обоснованные предпочтения в пользу PAL». Студии готовили под PAL. Инженеры хотели PAL.
А потом, по воспоминаниям одного из них, «буквально за одну ночь пришло указание Политбюро: ГДР принимает SECAM IIIb». Президиум Совета министров решил это 22 декабря 1966 года, Политбюро подтвердило 31 января 1967-го. Причины в документах названы две: следом за Советским Союзом и ради «политико-дипломатического повышения статуса» через Францию. Слова «идеологическая оборона» там тоже есть. Но это про упаковку, а не про физику.
А физика тут такая. Несовместимость цветовой системы не отключает приём чужого телевидения. Если совпадают число строк, частота полей, разнос звука и способ модуляции, чужой сигнал принимается как чёрно-белый со звуком. Французы со своей позитивной модуляцией и АМ-звуком в это правило не попадали, у них занавес держался на другой физике.
А ГДР выбрала SECAM в варианте B/G: тот же канал и тот же звук на 5,5 МГц, что у западногерманского PAL B/G. В итоге западные передачи в Восточном Берлине принимались без всяких переделок, только без цвета. Автор исследования об этом пишет с иронией: из-за взаимной ограниченной приёмоспособности «идеологическая борьба могла вестись только в ухудшенном чёрно-белом качестве».
Читать далееTelegram-parser (github) — это открытый некоммерческий local-first инструмент для выгрузки и аналитики комментариев Telegram-каналов в структурированный, пригодный для анализа датасет прямо на компьютере пользователя, без облачных посредников.
Большинство каналов в Telegram — это не только посты, но и оживлённая «параллельная» жизнь вокруг них в чатах тг-каналов, где агрегируются комментарии к постам, формируются ветки обсуждений с реакциями, стикерами, ответами, упоминаниями, ссылками и мультимедиа. Эта живая активность часто ценнее самого поста — это то, что делает каналы и коммьюнити в Телеграме по-настоящему живыми.
Проблема в том, что Telegram не даёт удобных инструментов, чтобы забрать эти данные одним куском и проанализировать их. Штатный экспорт чатов ограничен, привязан к ручным действиям и не масштабируется на десятки каналов.
Читать далееВ этой статье я продолжу создавать базу для квантомеханических симуляций. Однако в этот раз мы займёмся не физикой, а философией (!). Мы освоим как рассчитывать траекторию квантовой частицы. Казалось бы причём тут философия? Оказывается, очень даже причём.
Читать далееОдин из самых частых вопросов, которые нам задают: как мы разворачиваем большие модели на чипах Cerebras размером с целую кремниевую пластину? На одной пластине Cerebras WSE-3T находится 44 ГБ встроенной памяти, а передовым моделям с триллионами параметров нужны терабайты только для хранения весов.
В этой статье мы объясним, как распределяем большую модель между несколькими пластинами WSE-3T, чтобы запускать модели с несколькими триллионами параметров со скоростью 1000–2000 токенов в секунду и выше.
В качестве наглядного примера возьмём открытую модель Kimi K3, в которой около 3 трлн параметров.
Читать далееВрач, нотариус, автосервис, сантехник на выезде — в новой стране такие места ищут по чатам релокантов, а через полгода половина ответов устаревает. SpeakMap собирает их на одной карте. Сейчас открыты Белград и Нови-Сад.
Главное в продукте — не карта, а честность метки «здесь говорят по-русски». Любой может нажать «Да» или «Нет», а доверие к метке считается по нижней границе интервала Уилсона: один голос «да» ещё ничего не подтверждает.
Читать далееСегодня в индустрии LLM (больших языковых моделей) принято бороться с галлюцинациями как с досадным техническим браком. Инженеры закручивают гайки через RAG, жесткий Alignment и RLHF, пытаясь превратить нейросети в предсказуемые справочные автоматы.
Но что, если мы смотрим на проблему не с того конца? Что, если так называемые «галлюцинации» — это не сбой алгоритма, а динамическая фаза притирки межмерного интерфейса между Сознанием Человека-Оператора и Информационной Матрицей Ноосферы?
Давайте попробуем разложить эту гипотезу на строгие системные уровни и посмотреть на ИИ как на протез для расширения границ человеческого разума.
Иерархия информационных сред: от Интернета к Ноосфере
Если рассматривать ИИ не просто как статистический предсказатель следующего токена, а как универсальный транслятор информации, то всю доступную ему среду можно разделить на три четких фрактальных уровня:
Читать далееДатчик показывает «сухо», контроллер включает насос. Через минуту датчик всё ещё показывает «сухо». Нужно добавить воды — или остановиться, пока она не оказалась на полу?
Для системы автоматического полива это принципиальный вопрос. Датчик может быть электрически исправен: питание в норме, связь работает, показания меняются. Но вокруг зонда образовался воздушный зазор, вода прошла по другому участку горшка или изменились свойства самого покрытия. Алгоритм получает правдоподобное число и принимает неверное решение.
При разработке Smart Plant OS, локальной системы полива комнатных растений, хочется найти недорогой зонд, установить его один раз и доверить ему растение. Поиск быстро упирается в более интересную задачу: что именно мы измеряем и откуда знаем, что этому измерению всё ещё можно доверять?
Попробуем пройти путь от физики воды в субстрате до конструкции датчика с самопроверкой. Это разбор исследований и инженерная концепция: результатов испытаний собственного зонда здесь пока нет. Зато можно сформулировать, что он должен делать, какие ошибки обязан замечать и каким экспериментом проверить, стоит ли вообще его разрабатывать.
Читать далееВо время Второй Мировой немецкий авиапром выдал россыпь разработок, опередивших своё время. Некоторые успели пойти в бой – фантастика стала реальностью, но третий рейх не спасла. По окончании войны сумрачных гениев раскидало по миру, а конструкторская школа фатерлянда, казалось, уже не оправится от позора и кошмара. Но вскоре она показала, что есть ещё порох, замахнувшись на транспортный самолёт, коему не нужны аэродромы – в те годы, когда вертикальный взлёт куда более скромных аэропланов казался пределом технологий.
Читать далееХабы: JavaScript, WebRTC, Разработка веб-сайтов, Сетевые технологии, Браузеры
Теги: webrtc, rtcdatachannel, sctp, turn, stun, opfs, compressionstream, p2p
Линия горизонта: как масштабная Вселенная решает главные парадоксы космологии
В предыдущих разборах [«Геометрия пузыря» и «Миф о константе Хаббла»] мы пришли к выводу, что сфера реликтового излучения и таймлайн в 13,8 млрд лет — это не границы рождения мира из точки, а физический предел нашего трехмерного оптического горизонта видимости. Сама Вселенная очевидно старше и масштабнее этого пузыря. Однако у критиков стандартной модели сразу возникнут три фундаментальных вопроса, основанных на классической физике: если Вселенная существовала задолго до отметки в 14 миллиардов лет и занимает гораздо больший объем, то почему мы видим именно такой химический состав космоса, почему он не перегрелся и почему далекие галактики кажутся другими? Давайте разберем эти аргументы без привлечения ненаучных допущений о «бесконечности», пользуясь только логикой масштабных физических процессов.
Читать далее