В прошлой статье мы разбирались, почему после сборки БОЛТУНа на Tauri трещал голос, автокалибровка вмешивалась в разговор, а демонстрация экрана через минуту превращалась в чёрный прямоугольник.После тех исправлений мы продолжили разбирать звуковой тракт и нашли ещё одну проблему. Сам аудиопакет мог прийти вовремя, успешно декодироваться и содержать нормальные сэмплы — а на выходе всё равно появлялся короткий щелчок.Причина оказалась не в сети и не в кодеке. Мы слишком буквально превратили сете…
Прочтя недавний перевод про запаковку БД в exe, решил рассказать об идее, которую реализовал лет 6 назад в своем домашнем проекте. Сам проект недоделал и ценность его в 2026 сомнительна, но речь в статье о реализации архитектуры файлов и их запаковке, а не о проекте.Суть проекта в двух словах: генератор CRUD APIUser case: я хочу на любом самом дешевом хостинге быстро развернуть REST API с типовым набором CRUD операций (создание, изменение, поиск) для произвольной структуры данных. Это API должн…
Если вы пишете на JavaScript или TypeScript, выбор инструмента обычно начинается с двух знакомых вариантов.VS Code хорош именно своей модульностью: из него можно собрать среду почти под любой проект и точно под себя. Обратная сторона в том, что эту среду сначала придётся собрать. Нужно подобрать расширения для фреймворка, линтеров и форматтера, настроить запуск проекта и остальные инструменты. Тут важно учесть, что многие плагины разрабатывали энтузиасты, и давно забросили, так что фикса бага м…
Теперь можно говорить без всяких прикрас: мы выпустили анализатор для языков JavaScript и TypeScript. А значит, это повод испытать его в полевых условиях и посмотреть, что он найдёт в исходном коде хорошо знакомого многим Open Source проекта Visual Studio Code. Если вам интересно узнать, какие ошибки и подозрительные фрагменты кода обнаружил анализатор, — добро пожаловать в статью.О чём будем рассказыватьЭтот раздел будет полезен тем, кто не знаком с нашим форматом статей. Что вас ждёт в статье…
Короткая версия. Жалоба звучала как «скролл нестабильный»: колесо в панели с агентом то работает, то нет, текст съезжает, кадры дублируются. Виноват не скролл. Claude Code под ConPTY включает альтернативный буфер и отчёты мыши один раз при старте и больше их не переотправляет, а replay-буфер панели ограничен 256 КБ. За долгую сессию эти включения вымывает за границу буфера, и свежий xterm после реаттача остаётся в нормальном буфере, хотя агент давно в альтернативном. Ниже механика, фикс на 60 с…
Direct Control DC — модуль сам контролирует к каким конкретно реализациям ему обращаться. class Form extends Object { scope = 'Form' @mem get log() { return new ConsoleLog( this.scope ) } // direct @mem get net() { return new HttpNet( this.scope ) } // direct send( payload: string ) { this.log.info( 'Sending', payload ) this.net.request( payload ) } } class SignIn extends Form { scope = 'SignIn:' + this.auth.id + ':' + super.scope @mem ge…
Всем привет! Меня зовут Владимир, я разработчик СберБанк Онлайн в канале «web». Наверняка вам встречалось мнение, что один и тот же язык должен показывать примерно одинаковую скорость: если код написан на JavaScript, место его запуска – браузер, Node.js, Deno или Bun – кажется второстепенной деталью, а результаты должны быть близкими. Но есть одна проблема: язык сам по себе мы почти никогда не запускаем. Например, в браузере JavaScript исполняется внутри процесса Google Chrome, а Node.js, Deno,…
Всем привет! Я Артем, фронтенд-разработчик в команде мессенджера Т-Банка. Работаю с React не первый год, участвовал в миграции на разные версии реакта, в том числе в переходе с классовых компонентов на функциональные. Мне всегда было интересно, зачем will*-методы были помечены как deprecated и как устроены переходы на функциональные компоненты.Банальный пример — когда печатаешь в input, а интерфейс начинает лагать на большом списке: классическая боль старого React. Я решил разобраться, как и п…
Всем привет! Напомню: в первой статье я показал дебаунс на Redis, который склеивает дробные сообщения клиента. Во второй — модуль привязки «чат = сделка» и то, почему вебхуки стоит держать в изолированных ключах. Если первые две части были про архитектуру и концепции, то эта — с обилием кода. Я покажу, как именно вырезаются теги, парсятся телефоны и нарезаются абзацы, потому что без кода это превратится в «я просто настроил ноды». Обе предыдущие статьи заканчиваются примерно одинаково: «...и те…