Category : javascript

javascript
Скролл-фильм на лендинге весил 84 МБ. WebCodecs ужал его до 18 — вот что сработало, а что нет

У меня лендинг устроен как «фильм, который листаешь»: крутишь колесо — камера едет по сцене. Классическая реализация такого — секвенция кадров: сотни WebP, по картинке на каждую позицию скролла. Работает, но на мобильной версии это выливалось в 84 МБ трафика. На десктопе — 128. Для лендинга, который человек открывает с рекламы на телефоне где-нибудь в лифте, — приговор.Расскажу, как я заменил секвенции кадров на видеопоток, который декодируется прямо в браузере через WebCodecs, почему выбросил …

  • среда, 26 августа 2026 г. в 00:00:09
javascript
Монорепозиторий с поддержкой Vite, TS, ESM и абсолютных импортов без расширений с использованием «s…

ЦелиНастройка абсолютных импортов без расширений для внутренних модулей пакета с использованием Node.js subpath imports, как единого источника псевдонимов: без дублирования в tsconfig path aliases;с поддержкой VSCode IntelliSense - автоимпорт, автодополнение и всплывающие подсказки импортов.Настройка conditional exports - маппинг на исходный код внутренней библиотеки в dev-режиме, для работы Vite(HMR) и VSCode(IntelliSense) с живым кодом без пересборки.Настройка приоритета для автоимпорта публи…

  • среда, 26 августа 2026 г. в 00:00:08
javascript
Один рендер‑стек, два мира: как мы показали layout микросхем в браузере через WebGPU

Тот же Rust‑код, что рисует топологию на десктопе, собирается в wasm и рисует в <canvas> через WebGPU. Сайт при этом не знает про GPU: кликнул на нарушение в списке, камера уехала на место, маркер показал дефект. Ниже как это устроено, где «просто пересобрали» было бы враньём, и какие ловушки сидят не в Rust, а в вебе.ЗадачаУ нас десктопный инструмент для топологии интегральных схем, layout в формате GDSII (и OASIS). Файл описывает геометрию кристалла: иерархия ячеек, на листьях прямоугол…

  • среда, 26 августа 2026 г. в 00:00:07
javascript
o2 game engine

Этот проект я начал 11 лет назад и вложил в него все свои навыки и опыт работы в геймдеве. Я делаю игры уже 15+ лет, и в своем движке я постарался дать разработчику то что считаю нужным: удобство и простоту, при этом оставляя его производительным и гибким. Я работаю в основном с мобильными играми, так что движок скорее нацелен на мобилки. Однако нет препятствий использовать его для десктопа и под веб.Я все еще дорабатываю его, но он уже вполне стабилен и я делаю игры на нем. Сейчас это ближе к …

  • вторник, 25 августа 2026 г. в 00:00:11
javascript
Как устроен локальный шахматный помощник в браузере: Stockfish 18, Manifest V3 и веб-доски

Я хотел подсказку рядом с доской, а не ещё одну вкладку с движком. Stockfish 18 давно умеет искать сильный ход, упаковать WASM в Chromium-расширение тоже не подвиг. Первое демо на своей статичной странице собралось за вечер: фигуры сняли, FEN собрали, стрелка легла. Настоящая работа началась, когда ту же схему повесили на живой шахматный сайт.Самый неприятный случай оказался не «движок тупит», а «движок прав, только не про эту доску». Реванш на Lichess часто стартует на том же URL и с той же на…

  • вторник, 25 августа 2026 г. в 00:00:09
javascript
DeepSeek управляет вашим рестораном

Как просьба друга «настроить кассу» закончилась open‑source ERP, тринадцатью российскими интеграциями и нейросетью, которая теперь считает закупки, ищет косяки в учёте и пишет владельцу в Telegram.Есть у меня друг. Назовём его Артём.Полгода назад он решил открыть ресторан. Небольшой: пятнадцать столиков, кухня, бар, доставка. Никакой федеральной сети и отдела автоматизации на сорок человек. Обычный ресторан, где владелец ещё вчера выбирал стулья, сегодня разбирается с поставщиком мяса, а вечеро…

  • вторник, 25 августа 2026 г. в 00:00:08
javascript
Глубокое погружение в React Fiber

Задумывались ли вы когда-нибудь о том, что на самом деле происходит под капотом, когда вы рендерите приложение React? Мы знаем, что React строит дерево DOM и отображает UI на экране, но как React конструирует это дерево и как он эффективно обновляет его при изменении состояния?В этой статье мы рассмотрим React Fiber — основной движок согласования (reconciliation) React. Мы рассмотрим, как React строил DOM до v15, недостатки этой ранней стековой (stack) модели с точки зрения производительности и…

  • вторник, 25 августа 2026 г. в 00:00:07
javascript
Модель не влезает на стол: почему плоскость — плохой нож

У меня браузерный генератор вывесок: человек набирает надпись, получает STL-модель корпуса под светодиодную ленту. Всё считается на его же машине, файл никуда не уходит. Однажды пришёл вопрос, который сломал мне неделю: надпись 500 мм, стол принтера 256×256. Что делать?Стандартный ответ — «режьте в слайсере». Слайсер режет плоскостью, и это честно работает ровно до момента, когда вы забираете со стола две половинки со срезами и понимаете, что совместить их нормально не получится они не совпадаю…

  • вторник, 25 августа 2026 г. в 00:00:06
javascript
Больше свободы агентам — жёстче проверки: линтинг React 19 на ESLint 10

Чем дальше, тем больше доверяю ИИ-агентам, наверное потому что я пока жестко не влетел. Более того, процесс идёт постепенно - тут разрешил машину в облаке запустить когда задача XXX, не спрашивая у меня разрешения на каждый чих, здесь ещё что-то.Это очень сильно ускоряет работу, хотя и влететь можно сильно и больно. Пока меня это обошло стороной, поэтому в разрезе агентов и их креатива больше всего прилетает о того что они пишут больше кода чем надо, делают мелкие опечатки и ошибки и для борьбы…

  • понедельник, 24 августа 2026 г. в 00:00:11