Среда исполнения JavaScript в браузере по стандарту HTML: агенты, event loop, task'и и микрозадачи
Обычно браузер представляют так: у каждой вкладки свой поток и свой event loop, а промис срабатывает раньше таймера, потому что микрозадачи приорите…
Tech news from the best sources
Обычно браузер представляют так: у каждой вкладки свой поток и свой event loop, а промис срабатывает раньше таймера, потому что микрозадачи приорите…
Telegram разрешил запускать ботов и Mini Apps на своей инфраструктуре. Я проверил бесплатный ранний доступ на живом боте и сравнил его с двумя VPS.…
Последние месяцы я делаю 3D‑мир, который работает прямо в браузере — на Three.js: сцена, персонажи, сеть. Самое неприятное в про…
Привет, Хабр! Сегодня я расскажу о том, как пользователю ИИ, далекому от профессионального проектирования полиагентных систем, получать результаты,…
Зачем ускорять реактивность, если всё упирается в DOM? Рассказываю об устройстве Raph/Nova и показываю, как одно ядро используется для DOM и Canvas.…
Что такое функциональные флаги и как они ускоряют CI/CD. Виды флагов, инструменты (Flagsmith, LaunchDarkly), интеграция с pytest и лучшие практики в…
Привет, Хабр! В первой статье я разбирал внутреннее устройство real-time-конвейера на C++20: почему медленный YOLO не должен останавлива…
Практический разбор двух простых шин: как разделить запуск действий и реакцию на изменения в реальном frontend-приложении. Читать далее
Библиотека называется cronsense. Она переводит расписание, записанное обычными словами на русском или английском, в cron‑выражение и…
На миллионе синтетических записей в Node.js сжатый индекс обогнал простое пересечение массивов примерно в пять раз — на запросах «редкое + частое».…
Недавно в BotFather у меня появилось сообщение о раннем доступе к Telegram Serverless . Telegram предлагает запускать код ботов…
Запрос получил 202 , автотест прошёл, а через несколько дней выясняется, что часть операций так и не завершилась успешно. Такая ситуа…
История left-pad, самого нелепого апокалипсиса в истории open-source. Заодно про то, почему миф о надёжности открытого кода не выдерживает проверки…
Ночью в логах сервиса появились две записи. Сначала мусор, потом нормальный на вид договор, а в середине, между условием об оплате и условием о неус…
Что изменится, если плагин станет не дополнением, а основной единицей архитектуры приложения? На примере Cordis и DeepSeek Harness разберём, как сре…
Какие обычно бывают анимации в вебе? Появление, исчезновение, небольшой сдвиг, масштабирование. Они не обязательно плохие: чаще всего интерфейсу дей…
Представьте типичную ситуацию. У вас есть сервер на каком-то языке (сейчас какой именно для нас не важно, но допустим, это Rust). И в нём по каким-т…
pnpm 12.3.0 читает lockfile при обнаружении проектов, делает node, deno и bun нативными файлами, даёт trust-флаги для remove и update; 12.3.1 чинит…
Разбор WebLLM 0.2.84: установка, код чата со стримингом, видеопамять для 9 моделей от 0,7 до 6,4 ГБ, 71–80% нативной скорости и поддержка WebGPU в б…
Chrome 154 beta: ML-KEM и ML-DSA в Web Crypto, options bag и targetAddressSpace у WebSocket, режимы links и tabs у scroll-marker-group, CORS в Backg…
PhiloLabs выложила fable51-worlds: рой агентов Claude Fable 5.1 по одному промпту собрал проходимую 3D-копию площади Юнион-сквер в Сан-Франциско на…
WebKit переписал загрузчик ES-модулей с нуля на C++ и исправил многолетние ошибки top-level await в Safari. Что ломалось и когда убирать обходные пу…
Негативные тесты часто выглядят убедительно: отправили некорректный запрос, получили 4xx , проверка зелёная. Но такой результат ещё не гарантирует,…
Mozilla добавила в Firefox для iOS встроенный блокировщик рекламы на WebKit Content Blocker и EasyList. Одновременно вышел Firefox 155 с новыми CSS-…
Всем привет!) Напомню: в первой статье ( https://habr.com/ru/articles/1071580/ ) я показал дебаунс на Redis, который склеивает дробные сообщения кли…
Stockfish умеет находить сильные ходы. Но браузерному расширению ещё нужно понять, какая из нескольких досок относится к текущей партии, дождаться с…
Несколько лет назад у нас с одногруппником был зачёт по C++, и вместо того чтобы сделать что-то скромное (например, «Калькулятор» или «Генератор пар…
В первой части мы заставили кнопку на веб-странице запустить локальный exe-файл через расширение Chrome и Native Messaging Host. Теперь усложним зад…
Как я сделал браузерную 3D-игру на Three.js и Vue: система аномалий, GLB-сцена, PS1-рендеринг и оптимизация под слабые устройства. Читать далее
Я сделал браузерную стратегию про котов в стиральных машинах и обнаружил, что пересчитать поле гораздо легче, чем объяснить человеку,…