Category : javascript

javascript
В кадре весь класс, а слушаться нужно учителя: как M2 отличает свои руки от чужих

Привет, Хабр! Это первая статья уже в блоге M2 Holo Lab. До этого я писал со своего аккаунта: сначала как крутить 3D-модели голыми руками через обычную вебку, потом про мозг, мышь, дом и ДНК.Если вкратце: M2 это 3D-лаборатория в браузере. Камера следит за руками, а ты жестами крутишь, разбираешь и собираешь модели. Руки распознаёт MediaPipe, рисует Three.js, видео с камеры никуда не уходит.После прошлых статей мне стали писать учителя, и сейчас у меня планируется пилот со школой. И вот тут выле…

  • вторник, 10 ноября 2026 г. в 00:00:16
javascript
Анонс Rspack 2.3

Эта статья перевод оригинальной статьи «Announcing Rspack 2.3».Также я веду телеграм канал «Frontend по‑флотски», где рассказываю про интересные вещи из мира разработки интерфейсов и AI.ВступлениеВышел Rspack 2.3. В релиз вошли парсер SWC Next, ускорение сборки, снижение потребления памяти и размера бандлов, новый экспериментальный кэш с кэшированием отдельных лоадеров и улучшения встроенной поддержки CSS.Баннер Rspack 2.3Основные изменения касаются интеграции SWC Next, производительности и опт…

  • вторник, 10 ноября 2026 г. в 00:00:14
javascript
Движки e‑repa.ru

Часть 1. dub: аудиодиктантАнглийский я преподаю с 1989 года. С 1995 по 2005 год работал старшим преподавателем в Институте иностранных языков Уральского государственного педагогического университета, а с 2001 по 2005 год был там же заведующим отделением перевода и переводоведения. С 2004 по 2006 год был председателем приёмной комиссии Института иностранных языков и составлял экзаменационные материалы для поступающих. С 2005 по 2009 год был старшим преподавателем Института лингвистики Российског…

  • вторник, 10 ноября 2026 г. в 00:00:12
javascript
Как защитить статус оплаты в React от запоздалых ответов

На экране оплаты подписки на закрытый Telegram-канал статус обновляется автоматически. Есть и кнопка «Проверить оплату». Пользователь нажимает её, пока фоновый запрос ещё выполняется. Интерфейс показывает «Оплачено», а через полсекунды возвращается к «Ожидаем оплату». В Network у обоих ответов HTTP 200: ошибка видна только в данных и порядке их прихода.Фоновый запрос прочитал заказ до оплаты, но его ответ задержался. Ручная проверка прочитала заказ уже после оплаты и ответила первой. Если обраб…

  • вторник, 10 ноября 2026 г. в 00:00:10
javascript
Движки e-repa.ru. Часть 2. qb: конструктор вопросов

В первой части я показал, как js-движок dub помогает ученику преодолеть трудность восприятия английской речи на слух: js-движок переводит структуру синтагмы из слухового канала в визуальный. Другая трудность, с которой сталкивается русскоязычный ученик, — английская грамматика, в частности построение вопросительного предложения. Помимо особенностей самого английского вопроса — инверсии, наличия вспомогательного глагола, недопустимости разрыва определения и определяемого слова — ученику трудно р…

  • вторник, 10 ноября 2026 г. в 00:00:10
javascript
Расширение врёт: как я учил Android-приложение открывать двести типов файлов по первым байтам

У каждого файла два имени. Первое написано после точки, и верить ему нельзя: его придумал человек, почтовый клиент или сайт, который «на всякий случай» переименовал вложение. Второе лежит в первых байтах. Вот оно почти никогда не врёт.Я делаю XanderFiles — просмотрщик для Android, который открывает двести с лишним расширений: от PDF и Excel до winmail.dat, подписанных .p7m, RAR с паролем, книг FB2, RAW с фотоаппаратов, билетов Wallet, снимков КТ с диска из клиники и рисунков CorelDRAW. Это стат…

  • воскресенье, 8 ноября 2026 г. в 00:00:09
javascript
Как я не купил терменвокс и сделал его в браузере или Air Theremin

Играю на Air Theremin: Слева - экран телефона: между ладонями натянута струна-осциллограф. Справа - я.Доча посмотрела серию из «Кати и Эфа» и сказала, что видела там прикольный инструмент под названием терменвокс. Я вспомнил, что давно хотел тоже попробовать поиграть на нём. Загуглил, и цены оказались какие-то негуманные для инструмента на полчаса игры.Тут мне пришла мысль сделать аналог терменвокса для телефона, чтобы для игры можно было использовать гироскоп. В современном мире расстояние от …

  • суббота, 7 ноября 2026 г. в 00:00:12
javascript
Мы живём во время, когда создать что-то интересное гораздо проще, чем рассказать людям об этом

Скучные головастикиЯ часто смотрю стримы по «лутер-шутерам» — Escape from Tarkov, Arena Breakout, всё такое. И на многих из них замечал оверлеи для зрителей. Но они все одинаковые и, честно говоря, скучные: по низу экрана ходят «головастики» — болванки со шрифтом чата, дублирующие сообщения зрителей. Зритель написал в чат — его человечек помахал. И всё. Это не игра, это индикатор активности чата.Идея сделать игру жила у меня давно. И в какой-то момент щёлкнуло: а почему бы не совместить одно с …

  • суббота, 7 ноября 2026 г. в 00:00:10
javascript
Как React не даёт несрочному рендеру потеряться: startTransition, useDeferredValue и Suspense

Представьте поиск по каталогу: поле ввода, а под ним список из тысяч товаров. Перестраивать такой список долго, и если делать это на каждое нажатие, поле начнёт тормозить. Поэтому обновление списка можно пометить как несрочное: тогда React покажет символ в поле сразу, а список перестроит потом, урывками, в промежутках между нажатиями клавиш. Но что, если пользователь печатает без остановки: список не обновится никогда? И что видит пользователь, пока новый список считается или грузится с сервера…

  • суббота, 7 ноября 2026 г. в 00:00:09