Аналоги умеют мигать рамкой вокруг обновившегося компонента. Этого хватает, чтобы заметить проблему, но не чтобы её починить: остаётся вопрос «а что вообще изменилось?».Оказалось, Vue знает ответ и отдаёт его сам — просто этим почти никто не пользуется. Под катом: как устроен хук renderTriggered, почему сырое событие из него нечитаемо, и три способа уронить прод‑сборку чужого приложения дев‑инструментом, который в проде вообще не должен работать.Чего не хваталоЕсть Vue DevTools с галкой «Highli…
Электронные навигационные карты (ENC) формата S-57 стоят на каждом коммерческом судне в мире. Стандарт живёт с 1996 года, но живого JavaScript-парсера для него я так и не нашёл: либо серверный GDAL, либо проприетарные SDK за шестизначные суммы в год. Я написал полный стек с нуля: бинарный парсер ISO 8211, доменную модель S-57 и S-101, рендер символики S-52 на Canvas2D. Всё бесплатно работает в браузере, без сервера, MIT-лицензия. s57-parser: морская карта S-57 в браузере. В коде слева оставил п…
JavaScript получает новый стандарт языка каждый год. Некоторые редакции представляют синтаксис, который меняет то, как программы пишутся или как они выполняются. Версия ECMAScript 2026 (ES17) представила набор полезных возможностей, которые мы рассмотрим в этой статье. Эти возможности добавляют API для задач, которые сейчас решаются с помощью небольших утилит, повторяющихся проверок или обходных путей, подверженных ошибкам.В этой статье я сфокусируюсь на дополнениях, позволяющих удалить часть к…
У меня в проде работает ИИ-консультант на сайте. У него есть два правила, которые нарушать нельзя вообще: не называть цены и не называть клиентов, которые под NDA. Оба правила были написаны в системном промпте капслоком, с объяснением почему.Я замерил, как они соблюдаются. Получилось так:правило «не называй цен» модель срывает примерно раз на восемь прогонов;имя клиента под NDA проскакивало раз на пять.Это не «модель плохая» — модель нормальная. Это про то, что инструкция в промпте не является …
Представим обычный интернет‑магазин. Пользователь открывает каталог, вводит «наушники» в поиск, включает фильтр наличия, задаёт цену до 10 000 рублей, открывает карточку и добавляет товар в корзину. Шесть вполне понятных действий. Если их выполняет человек, всё хорошо. Если за дело берётся AI‑агент, начинается небольшой квест: прочитать страницу, найти поле, угадать назначение переключателя, нажать кнопку, проверить результат и не купить случайно кофеварку вместо наушников.А что, если сайт сам …
Мы делаем карту загруженности московских парковок — parkout.ru. Раз в полчаса собираем данные по 210 муниципальным парковкам, показываем теплокарту и прогноз.Подложка у нас была растровая, от Esri. И она была мыльная. На максимальном зуме вместо домов — кашица из пикселей, подписи не читаются. Стали разбираться: оказалось, что тайлы z17 и z18 приходят одинаковыми — байт в байт, 2521 байт каждый. Это заглушка. Выше z16 у этого слоя данных просто нет, а сервер вместо 404 отдаёт растянутую картинк…
NB. Это дневник почти двух месяцев разработки. Здесь будет много кода, неудачных экспериментов, технических решений и анимированных примеров. Одно изменение постоянно тянуло за собой другое, поэтому получилось длинно. Для удобства разбил историю на главы — можно переходить сразу к интересующим задачам.Приятного чтения!ОглавлениеВступление Мельтешение рта или как я переделал артикуляцию Ручной фон слишком долго делать или зачем мне понадобились генераторы Правка сценария затирала весь проект или…
Эта статья — перевод оригинальной статьи «React 19.3».Также я веду телеграм канал «Frontend по‑флотски», где рассказываю про интересные вещи из мира разработки интерфейсов и AI.Новые возможности ReactView TransitionsНовый компонент <ViewTransition> позволяет анимировать элементы интерфейса при их появлении, исчезновении, перемещении или изменении размера с помощью браузерного View Transition API.В прошлом году мы представили его как экспериментальный API, а в React 19.3 он получил стабиль…
Хочу рассказать о своей npm‑библиотеке — это мой второй и самый сложный npm‑проект на момент написания статьи. Глубоко в код погружаться не буду — поделюсь историей создания и мотивацией.ВступлениеПримерно в 2015 году я получил свою первую работу UI/UX‑дизайнером. Рисовал интерфейсы мобильных и десктопных приложений в популярном тогда Sketch, на выделенном мне Mac, и был этому искренне рад. Шло всё неплохо: я соблюдал гайдлайны iOS и Android, а когда идея приложения во мне откликалась, старался…