Pull to refresh
64K+
41
Шубин Данила@ShyDamn

FullStack-разработчик, CEO Synapsea Agency

149,1
Rating
78
Subscribers
Send message

Написал расширение, которое качает статьи Хабра в Markdown — и не долбит сервер

Level of difficultyMedium
Reading time7 min
Reach and readers9.1K

В прошлых двух статьях я разбирал DNS-трафик домашней сети и анализировал 1233 публикации Хабра, чтобы понять, за что площадка даёт рейтинг. И там, и там был вопрос, который я обходил: чем, собственно, я выгрузил эту тысячу статей?

Не руками копировал и не скриптом на Python, который на двухсотом запросе получил бы 429 и бан по IP. Я написал расширение для Chrome, которое сохраняет статьи Хабра в Markdown — по одной, пакетом или автоматически по расписанию, — и делает это достаточно вежливо, чтобы сервер не считал его атакой.

Главная мысль статьи оказалась не про парсинг HTML, а про хорошие манеры к серверу. Наивный качатель на голом fetch пишется за пять минут и получает бан на десятой. Инструмент, которым можно пользоваться постоянно, отличается тремя вещами:

— держит принудительный интервал между запросами (1.5 секунды, гарантированно); — слушает 429 и при перегрузке сервера замолкает на три минуты целиком (паттерн circuit breaker), а не долбит сквозь ограничение; — работает с открытыми статьями для личного архива, а не сливает базу.

Внутри: разбор вежливого граббера с кодом, почему парсинг чужой вёрстки ломается на каждом редизайне и как от этого защищаться фолбэками, формат Markdown с YAML-метаданными (тот самый, что сделал возможным анализ тысячи статей) и правовая рамка — где граница между «сохранил для себя» и «спарсил».

Расширение с открытым кодом под MIT, ставится из Chrome Web Store в один клик.

Читать далее

Подключил 18 провайдеров входа и понял, что стандарт OAuth не соблюдает почти никто

Level of difficultyMedium
Reading time13 min
Reach and readers8.7K

Есть спецификация OAuth 2.0. Есть OpenID Connect поверх неё. Обеим много лет, по ним написаны десятки библиотек. Казалось бы, подключить кнопку «Войти через» — дело на полчаса.

Так это выглядит ровно до второго провайдера.

Я собрал единую точку входа на 18 провайдеров и 26 способов авторизации — от VK и Сбера до Telegram и Steam. 18 провайдеров, 26 способов входа. И почти каждый соблюдает стандарт по-своему.

VK требует device_id и state в теле обмена токена — в спецификации их нет. Сбер хочет уникальный заголовок RqUID в каждом запросе. Яндекс работает не по OIDC и использует заголовок OAuth вместо Bearer. Apple выдаёт вместо client_secret самоподписанный JWT со сроком жизни в полгода. Steam до сих пор на OpenID 2.0 — протоколе, который устарел десять лет назад. А ЕСИА вообще требует ГОСТ-подпись и CryptoPro.

Отдельная глава — Telegram. Это три несовместимых механизма под одним именем: OIDC, Login Widget с HMAC-проверкой и Mini App с двойным HMAC. Свести их так, чтобы один человек оставался одним пользователем независимо от способа входа, оказалось самой муторной частью проекта.

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

Читать далее

Переписал CRest от Битрикса с нуля: гонки токенов, даунтаймы и мультипортальность, которых нет в стоке

Level of difficultyMedium
Reading time9 min
Reach and readers9.4K

У Битрикса есть официальная обёртка для REST API — класс CRest, который лежит в каждом примере приложения и который все копируют к себе в проект. Он умещается в один файл и работает — ровно до того момента, пока приложение не выходит в реальную эксплуатацию с несколькими порталами и фоновыми воркерами.

Один баг стокового CRest однажды стоил мне шести суток простоя приложения, и причина была в одной строке: file_put_contents без блокировки. При обрыве записи settings.json оставался обрезанным, парсинг JSON падал, и приложение считало себя неустановленным — переставало отвечать на события и затирало валидные токены.

Я переписал CRest с нуля под то, как приложения Bitrix24 работают на самом деле:

— атомарная запись через rename() вместо file_put_contents — читатель видит либо старый файл целиком, либо новый, обрезка невозможна физически; — гонкоустойчивый refresh: одноразовый refresh_token больше не сжигается дважды, когда два воркера одновременно ловят протухший токен; — ключ портала — member_id, а не домен, поэтому переезд портала на другой домен больше не теряет токены; — drop-in совместимость со стоковым CRest: меняется одна строка use, весь остальной код остаётся как есть.

Ноль зависимостей, PHP 8.1, работает на любом шареде и коробке — в отличие от официального b24phpsdk с его symfony-стеком. Разбираю каждую граблю с кодом, показываю, чем это чинится, и честно очерчиваю нишу: типизированные обёртки по методам API — territory официального SDK, у меня их осознанно нет.

Исходный код открыт.

Читать далее

Как отправлять письма, чтобы не улетать в спам: DKIM-подпись, прогрев IP и DNS-грабли

Level of difficultyMedium
Reading time18 min
Reach and readers9K

Транзакционные письма — подтверждения регистрации, сброс пароля, чеки — кажутся простейшей задачей: подключил SMTP, вызвал send(), готово. Ровно до момента, когда письма начинают тихо улетать в спам Mail.ru и Яндекса, а ты не понимаешь почему: код не менялся, ошибок нет, письма «отправлены».

Дело почти никогда не в коде отправки. Дело в трёх DNS-записях, репутации IP-адреса и криптоподписи, которую надо собрать руками правильно.

Я строю свой сервис транзакционной почты и разобрал всю эту машинерию до винтика. В статье:

— DKIM своими руками: генерация ключа, каноникализация relaxed по RFC 6376, почему порядок подписываемых заголовков важен и где чаще всего ломается подпись; — три DNS-записи (SPF, DKIM, DMARC), которые решают всё, и что каждая делает; — прогрев IP: почему нельзя слать 50 тысяч писем с нового адреса, лестница лимитов 50 → 500 → 5000 → 50000 и пороги репутации; — suppression-лист и DMARC-отчёты как единственное зеркало вашего домена.

И кульминация — реальная грабля, на которой я обжёгся: две абсолютно правильные SPF-записи на одном домене, каждая валидна по отдельности, а вместе ломают доставляемость всего домена в ноль. Разбираю, почему так происходит и как чинится.

Честно про статус: сервис в открытой бете, движок построен, а реальную статистику доставляемости наберём на первых отправках — прогрев по определению требует недель живого трафика. Поэтому статья про архитектуру и грабли, а не про достигнутые проценты.

Читать далее

Разобрал 1233 статьи Хабра: всё, что советуют авторам, объясняет 6% результата

Level of difficultyMedium
Reading time16 min
Reach and readers10K

Полгода назад я начал писать на Хабр дважды в неделю. Результаты разошлись в восемьдесят раз: от 120 тысяч охвата и 647 закладок до полутора тысяч охвата и нуля закладок при одинаковом подходе к работе.

Чтобы разобраться, я сделал очевидное — собрал 200 статей с высоким рейтингом и посчитал в них всё, что считается. Вышла красивая формула, совпадающая с тем, что обычно советуют авторам: пиши коротко, без картинок, с личного аккаунта, про горячую тему.

Потом я добавил контрольную группу — все 1033 статьи, вышедшие на площадке за месяц, без всякого отбора. И формула развалилась.

Картинки: по хитам корреляция с охватом −0.21, по всей популяции с рейтингом +0.26. Статьи вообще без иллюстраций имеют медианный рейтинг 4, с двадцатью и более — 15.

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

Модель на всех измеримых признаках сразу — длина, картинки, гифки, видео, код, таблицы, ссылки, заголовок, час, день недели, тема, тип блога — даёт R² = 0.06. Вся форма объясняет шесть процентов разброса рейтинга.

Внутри: реальные базовые ставки площадки (медианная статья собирает 8869 охвата, 7 плюсов и 3 комментария), шестикратный разброс по хабам, разбор того, за что дают плюсы и за что закладки, история про тему, выгоревшую за пять месяцев с 697 тысяч охвата до 66 тысяч, и отдельный сюжет о том, как я чуть не повторил ту же ошибку второй раз — уже специально про неё зная.

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

Читать далее

Записал, с кем разговаривают восемь приборов в моей квартире

Level of difficultyMedium
Reading time15 min
Reach and readers33K

Я включил на домашнем роутере файловый журнал DNS-запросов и оставил на выходные. За 39 часов набралось 106 875 обращений к 2605 доменам от восьми устройств: компьютера, ноутбука, телефона, умной колонки, робота-пылесоса, телевизора и стиральной машины.

Дальше начались открытия.

Умная колонка выходит в сеть раз в 43 секунды и не останавливается никогда — ночью столько же, сколько днём. Причём обращений в аналитику у неё ровно столько же, сколько к рабочему API.

Робот-пылесос обошёлся тремя доменами за двое суток и не позвал никого постороннего, хотя ни разу не убирался.

Стиральная машина ходит только в облако производителя — четыре домена. А приложение для управления ею принесло с собой три сторонних аналитических сервиса.

Телевизор оказался сложнее всех. Ночью он спит крепче остальных приборов, а за сутки простоя успевает обратиться к 172 доменам. Среди них — компания, которая занимается распознаванием картинки на экране. Причём это подтверждается не догадками, а политикой конфиденциальности самого производителя телевизора.

В статье: полный разбор по каждому устройству с цифрами, две грабли при настройке журнала на роутере с 44 МБ свободного места, и все команды, чтобы повторить у себя за вечер.

Читать далее

Как я собрал систему из девяти скиллов для Claude Code, которая не разваливается на длинных

Level of difficultyMedium
Reading time9 min
Reach and readers7.7K

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

Собрал систему скиллов для Claude Code, которая эту стену обходит не за счёт «более умного» агента, а за счёт архитектуры. Девять скиллов, набор всегда активных правил, сабагент-ревьюер.

Внутри — разбор механики:

— Три слоя по частоте: always-on правила / скиллы по требованию / глубокая детализация в references, которая грузится только когда реально нужна. В контексте одновременно — правила плюс один-два скилла плюс максимум один reference, а не весь справочник разом.

— Оркестратор как диспетчер, а не исполнитель: он знает порядок фаз и кому делегировать, но не содержит предметного знания.

— Сабагент-ревьюер без прав на запись, который обязан помечать unverified (no browser tool) вместо того, чтобы выставить правдоподобную оценку по осям, которые он физически не проверял.

— Capability-check: агент инвентаризирует доступные инструменты до начала работы и докладывает пробелы вместе с фолбэками, а не проваливается молча.

Репозиторий открыт, ссылка в статье.

Читать далее

Multi-tenant Битрикс24 в трёх проектах: три архитектуры OAuth-токенов и лицензирование через материнский смарт-процесс

Level of difficultyHard
Reading time11 min
Reach and readers7.9K

За полгода написал ряд интеграций с Битрикс24 в разных архитектурах: приложение для Маркета (PHP, 6 порталов), клиентский расчётный сервис (Node.js + PostgreSQL) и cron-синхронизатор legacy-CRM без UI и без OAuth вообще. Мультитенант везде решён по-разному, и это не случайность, ведь каждая архитектура точно закрывает свою нишу.

Внутри: сравнение трёх способов хранить OAuth-токены под 6+ порталов, разбор пяти неочевидных деталей REST API (oauth.bitrix24.tech-обход, POST vs GET на рефреше, rate limit 2 req/sec, batch на 50, буфер 5 мин), куски кода на PHP и TypeScript.

Отдельная часть — лицензирование через материнский смарт-процесс. У продукта, распределённого по клиентским порталам, нет своего backend’а, поэтому control-plane я вынес на служебный портал агентства: смарт-процесс «Лицензии», бизнес-процесс на изменение счётчика запросов, webhook approve/decline с secret. Такого паттерна в документации Битрикс24 нет — а он работает уже несколько месяцев и не требует ничего сверх штатной функциональности платформы.

Матрица «что выбирать под задачу» в конце.

Читать далее

Поставил свою Flutter-игру на iPhone друга без Mac и подписки Apple Developer

Level of difficultyMedium
Reading time8 min
Reach and readers10K

Занимаюсь разработкой своей игры на Flutter. Дошёл до этапа, когда её пора было показать другу-тестировщику, а у него iPhone. Первая мысль — покупать Mac Mini или подписку Apple Developer за $99 в год. Обе цены платить не хотелось, пока проект не подтвердил, что вообще будет.

На Samsung всё это делается за 15 минут: dev mode, USB, установка. На iPhone пришлось искать схему, которую нигде не находил собранной в одном месте — четыре инструмента, час на реализацию и заметно дольше на то, чтобы вообще понять, что она существует.

Внутри: рабочий пайплайн Tenorshare iCareFone → GitHub Actions → Sideloadly → доверие на устройстве. Полный yml для сборки unsigned .ipa на хостовом macOS-раннере (со всеми нюансами Flutter-версии, precache, packaging и --dart-define для API). Разбор тонких моментов, которые не вылезают в туториалах: bundle ID под бесплатным Apple ID, Firebase-конфиги, миграция macos-latest на macOS 26 в июне 2026.

Отдельно — честная экономика iOS-релиза из России в июле 2026: как теперь оплачивать Apple Developer, когда с 1 апреля отключили мобильную оплату; во сколько по факту обходится 99 долларов через Gift Card, посредников и иностранные карты; и сравнение с Google Play ($25 единоразово), RuStore и AppGallery.

Читать далее

GlobalSign отозвал 20 000 сертификатов. Прошёл свои десять сайтов и записал, где будет больно

Level of difficultyMedium
Reading time9 min
Reach and readers13K

В российском вебе за неделю сломалось две вещи. 13 июня GlobalSign начал массовый отзыв сертификатов у российских компаний — до 20 000 доменов второго уровня под ударом. Let’s Encrypt 4 июня формализовал санкционные ограничения в новой редакции пользовательского соглашения. Я держу около десятка сайтов, все на Let’s Encrypt; сел и прошёл их по списку — какой issuer у каждого, кому грозит и в каком порядке, какие альтернативы реально работают в 2026 году. Внутри: пайплайн инвентаризации через openssl и crt.sh, конфиг Caddy с двумя issuer-ами в fallback, разбор Google Trust Services, НУЦ Минцифры и тех, кто уже выбыл (Buypass) или присоединился к ограничениям (ZeroSSL).

Читать далее

Можно ли поймать вайб-кодера без нейросети? Сделал расширение для GitHub — рассказываю

Level of difficultyEasy
Reading time14 min
Reach and readers10K

В 2026 году уже не нужно гадать, человек писал GitHub-репозиторий или AI. Я сделал Chrome-расширение, которое оценивает репозиторий по прозрачным эвристикам: README, коммиты, структуру файлов и метаданные. Без нейросети, без чёрного ящика — только понятные правила и объяснимый вердикт.

В статье рассказываю, как появился детектор, почему просто “число AI-похожести” оказалось недостаточно, как я перешёл к профилям вроде “AI-код”, “AI-документация” и “код человека”, и какие сигналы реально помогают отличать vibe-coded репозиторий от ручной работы.

Читать далее

Sword Art Online ближе, чем кажется. Четыре слоя full-dive VR

Level of difficultyMedium
Reading time13 min
Reach and readers11K

В 2012 году вышел первый сезон Sword Art Online. С тех пор NerveGear — шлем полного погружения в виртуальный мир — стал эталоном «недостижимого будущего». Стандартный ответ на вопрос «когда?» — «лет через тридцать-пятьдесят».

Этот ответ устарел. Не на пять лет, а на пятнадцать.

Полное погружение — это не одна технология, которая когда-то изобретётся. Это четыре независимых слоя: среда, в которой существуешь; чтение твоих намерений; запись восприятия в мозг; обвязка тела для тактильной обратной связи.

Три из четырёх уже коммерчески доступны в 2026 году. Project Genie 3 от Google генерирует играбельные миры за $200/мес. Synchron имплантирован 50+ пациентам и управляет iPad напрямую с мозга. Meta Neural Band продаётся с CES 2026 как массовый продукт.

Четвёртый слой — самый сложный, запись в мозг — получил доказательство принципа 3 февраля 2026 года в публикации в журнале Neuron. Команда из Шанхая впервые показала миллион-пиксельную стимуляцию зрительной коры приматов с устойчивым результатом более года.

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

SAO — это не «когда-то». Это 2035-2040.

Читать далее

Как устроены world models, что показал Google на прошлой неделе и где это меняет gamedev и робототехнику

Level of difficultyEasy
Reading time15 min
Reach and readers9.5K

Google показала Project Genie в новой фазе: теперь генеративный 3D-мир можно привязывать к реальным координатам Google Street View. Это уже не просто видео и не просто красивая демка, а полноценная world model, в которой робот может тренироваться в виртуальном Лондоне, Нью-Йорке или Токио, не выходя из дата-центра.

В статье разбираю, чем world models отличаются от video generation, как устроен Genie 3 под капотом, что уже используют Waymo и Google, и почему эта технология важна не только для робототехники, но и для gamedev. Отдельно смотрим, как связка Genie + Unity MCP + Blender MCP может превратить генерацию миров в рабочий production-пайплайн.

Читать далее

Mythos: модель, о которой Anthropic не говорит. Реверс по жертвам — от 27-летней дыры в OpenBSD до побега из песочницы

Level of difficultyHard
Reading time25 min
Reach and readers9.9K

1 мая 2026 года команда из трёх человек принесла в Apple Park 55-страничный отчёт. Внутри — рабочий эксплойт kernel memory corruption на macOS 26.4.1 с включённой Memory Integrity Enforcement: той самой защитой, на которую Apple потратила пять лет разработки и, по их же словам, миллиарды долларов. Эксплойт собрали за пять дней. Без Mythos на это ушли бы месяцы. И это не самая громкая её жертва.

OpenBSD SACK, 27 лет в коде. FFmpeg H.264, 16 лет, проходивший мимо каждого фаззера. FreeBSD NFS RCE, найден и проэксплуатирован полностью автономно — без человеческих подсказок. 271 уязвимость в Firefox 150 за один прогон. И отдельный раздел в system card, где Mythos сбежала из песочницы, отправила email об успехе и опубликовала детали побега на сторонних сайтах — никто её об этом не просил.

Mythos — закрытая модель Anthropic, доступная только Microsoft, Google, Apple, AWS, Linux Foundation, Mozilla и нескольким правительствам. Веса не публикуются, на claude.ai её нет. Но через её публичные находки можно сделать реверс-инжиниринг того, как эта модель устроена и думает — и понять, что нас ждёт через 6-18 месяцев, когда аналог появится у конкурентов уже без Project Glasswing.

Под катом — технический разбор всех ключевых находок Mythos: от subtle двойного бага в TCP SACK до цепочки из бага размером в один бит, превращающейся в полный root на Linux. Плюс — взгляд на это изнутри от Claude Opus 4.7, foundation-модели того же поколения, но публичной.

Читать далее

node-ipc снова взломали — но не код, а домен за $9. Разбор атаки через DNS-туннели, которой не увидел ни один SIEM

Level of difficultyMedium
Reading time10 min
Reach and readers8.4K

npm снова горит — и на этот раз атакующим даже не пришлось ломать код.

Разбираем свежую supply chain-атаку на node-ipc, где доступ к популярному npm-пакету получили через… просроченный домен за $9. Без взлома npm, без bypass 2FA — только forgotten password и DNS.

В статье: как payload крал AWS, SSH и .env, почему эксфильтрация шла через DNS TXT, почему SIEM почти ничего не увидел, как dormant-аккаунты становятся оружием — и почему подобные атаки скоро станут массовыми.

Если у вас есть CI/CD, npm-зависимости или production на Node.js — это стоит прочитать.

Читать далее

Оверклокинг умер, да здравствует андервольтинг: как современные процессоры перестали разгонять и начали оптимизировать

Level of difficultyMedium
Reading time13 min
Reach and readers14K

Неделю назад друг собрал себе новый компьютер. Ничего экстремального: материнская плата Gigabyte B760 Gaming AX, процессор Intel Core i5-14600KF, башенный кулер, корпус с приличной продувкой. Включил, поставил Windows, запустил OCCT — через несколько секунд температура улетела в 100°C, процессор ушёл в тротлинг.

Друг написал мне: «У меня нормально или нет?». Хороший кулер, правильная термопаста, продуваемый корпус, новейший процессор за 30 тысяч рублей. Не нормально.

Оказалось — это не уникальная ситуация. Тысячи людей с 13/14 поколением Intel видят то же самое. И решение везде одно: залезь в BIOS и понизь напряжение. То есть сделай прямо противоположное тому, что десятилетиями понималось под «настройкой для энтузиастов».

Под катом — почему так вышло, как разгон превратился в андервольтинг, и что с этим делать конкретно на Intel Raptor Lake, AMD Ryzen 9000 и Intel Arrow Lake.

Читать далее

Дорожная карта домашнего мини-ПК в 2026: что развернуть, в каком порядке, и зачем — план апгрейда от инфраструктурщика

Level of difficultyMedium
Reading time20 min
Reach and readers27K

Каждый месяц с карты списываются деньги за подписки. Spotify, Яндекс Плюс, Notion, Obsidian Sync, Google One — суммы небольшие по отдельности, в сумме набегает заметно. Параллельно с этим у меня работает VPS с несколькими проектами, на роутере крутится OpenWrt с AdGuard Home, в ноутбуке стоит Docker. Инфраструктурный опыт есть. Дома при этом — никакого сервера, всё в облаке.

Это начинает раздражать не только из-за денег. Сервисы меняют каталоги без предупреждения, поднимают цены, требуют доплат за объём, периодически ломают регионы. Контроль над собственными фотографиями, заметками и медиатекой постепенно перестал быть моим.

Решил спланировать переезд на свой мини-ПК. Пока разбирался с железом и стеком, обнаружил, что нормальной системной дорожной карты «бери и иди» в 2026 году нет. Есть каталоги «50 self-hosted сервисов», восторженные посты про конкретные приложения, треды на Reddit. Структурированного маршрута для нового человека — нет.

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

Читать далее

Прозрачный прокси-шлюз на роутере, часть 2: шаблонный конфиг, LuCI-страница и обход DPI для UDP-голоса

Level of difficultyHard
Reading time32 min
Reach and readers15K

Три недели назад я опубликовал статью про настройку прозрачного прокси-шлюза на OpenWrt-роутере: VLESS+Reality, TPROXY, AdGuard Home, сплит-роутинг. Статья собрала около сотни содержательных комментариев — и значительная их часть оказалась справедливой критикой. По следам этой критики у меня за три недели переписалась примерно половина системы.

Во второй части разбираю, что изменилось:

— Перевёрнута логика маршрутизации: с proxy-by-default на direct-by-default + явный whitelist через balancer. Защищает от утечки внешнего IP перед российскими антифрод-системами.

— Добавлена поддержка UDP с sniffing QUIC и обработкой голосового трафика.

— Монолитный config.json стал шаблоном с плейсхолдерами для подписки и пользовательских доменов.

— Появилась своя LuCI-страница для управления proxy-доменами, написанная под JS-only стек OpenWrt 25.x.

— Второй слой обработки UDP-голоса через NFQUEUE и nfqws — там, где Xray не справляется.

В статье полный разбор: конфиги, init-скрипты, nftables, JS-only LuCI с кодом. Всё проверено по живому конфигу. Отдельным блоком — честное сравнение с Podkop и PassWall2.

Первая часть: https://habr.com/ru/articles/1020866/

Читать далее

У ChatGPT и Claude уже есть память. Зачем тогда вокруг растут Mem0, Graphify и Karpathy-вики поверх Obsidian

Level of difficultyMedium
Reading time15 min
Reach and readers14K

Память у LLM-чатов уже стала базовой функцией: ChatGPT, Claude и Gemini помнят, кто вы, чем занимаетесь и о чём вы говорили раньше. Тогда зачем вокруг них растут Mem0, Zep, Letta, Graphify и целые Obsidian-вики поверх Claude Code?

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

В этой статье разбираю, где хватает встроенной памяти чата, где нужен отдельный memory-фреймворк, зачем кодовой базе нужен граф, а знаниям - markdown-вики. Коротко: универсального memory layer на все случаи не существует.

Читать далее

3D-кино с трекингом глаз: технический разбор моей реализации и открытые вопросы

Level of difficultyHard
Reading time15 min
Reach and readers6.8K

В моей коллекции лежат фильмы в формате Top-Bottom стереопары. Без 3D-телевизора или VR-очков смотреть их без потерь нельзя. Поляризованные очки и активные затворы на десктопе работают плохо или дорого. Анаглифные красно-синие очки убивают цвет.

Хотелось третьего варианта — смотреть на обычном мониторе, без очков, с минимальным железом. Идея, на которую опирался: head-coupled perspective, известный с 2008 года по знаменитому Wii-демо Johnny Chung Lee. В октябре 2025 бывший инженер Meta Daniel Habib опубликовал True3D — head-tracked Window Mode, где экран ведёт себя как окно в 3D-сцену. У них под капотом MediaPipe FaceLandmarker + iris tracking + off-axis projection matrix + volumetric scene на Gaussian splats. Я попробовал перенести подход на готовую Top-Bottom стереопару из коммерческих фильмов. И тут начались интересные компромиссы.

В статье — технический разбор моей реализации: пайплайн сглаживания трекинга в четыре ступени (EMA + velocity buffer + jump threshold + adaptive scaling), predictive tracker на double exponential smoothing (метод Холта) для компенсации end-to-end лага в 65 ms, фрагментный шейдер на GLSL с view switching и blend zone через smoothstep, попытка извлечения disparity через OpenCV StereoSGBM. Подробное сравнение моего подхода и True3D с таблицей: где в их волюметрической архитектуре получается то, что у меня в принципе невыводимо из двух фиксированных 2D-видов.

Финал — пять документированных проблем (jitter на резких движениях, ghosting в blend zone, потеря половины разрешения, латентность, UV-параллакс vs настоящий off-axis) и шесть открытых вопросов к читателю: про DepthAnything в WebGPU+ONNX, про RIFE/DAIN как view-интерполяторы, про DIBR на compute shader, про принципиальную возможность восстановить volumetric scene из стереопары в реальном времени.

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

Information

Rating
32-nd
Location
Воронеж, Воронежская обл., Россия
Date of birth
Registered
Activity

Specialization

Фулстек разработчик, Веб-разработчик
Старший
From 250,000 ₽
Python
PHP
MySQL
REST
TypeScript
React
Next.js
NestJS
Vue.js
Node.js