Category : javascript

javascript
Как подружить React с 100 000 live-обновлений: WebSocket, Web Workers и кастомный стор

ВведениеПредставьте, что вам нужно отрендерить в React-приложении таблицу с 100 000 объектов, которые непрерывно обновляются в реальном времени через WebSocket. Каждые 50 мс прилетает батч из 5000 дельт (изменений).Стандартный подход с useState или классическим Redux (с Immer) убивает браузер за несколько секунд:Main Thread блокируется: Парсинг JSON и вычисление диффов занимают сотни миллисекунд.Garbage Collector сходит с ума: Иммутабельные обновления создают тысячи новых объектов-клонов, вызыв…

  • суббота, 24 октября 2026 г. в 00:00:12
javascript
DroidScript. Впечатления от года работы

Хотим поделиться с вами своим небольшим опытом работы с IDE DroidScript, средой разработки под Android, которая была обнаружена на просторах Google Play, как инструмент, с которым можно работать непосредственно на смартфоне, т.к. в первую очередь, появилась необходимость программировать в дороге или просто не дома, например, в электричке или на улице. Ноутбук носить с собой не всегда хочется и "можется" - всё-таки лишняя тяжесть, да и время, пока достанешь и запустишь его, а тем более, …

  • суббота, 24 октября 2026 г. в 00:00:10
javascript
Как я с нуля собрал кино-сервис с рекомендациями: Node.js, SQLite и немноголинейной алгебры

Знакомая картина: суббота, вечер, вы собрались вдвоем или небольшой компанией посмотреть кино. И следующие сорок минут уходят на тоскливое листание каталогов. Один хочет комедию, второй терпеть не может глупый юмор, третий уже пересмотрел все новинки. Персональные рекомендации стримингов здесь бесполезны: они заточены под вкусы одного конкретного профиля, а не под разношерстную группу людей на одном диване.Из этого раздражения и вырос KINO PARTY (partykino.com) — двуязычный каталог фильмов и се…

  • суббота, 24 октября 2026 г. в 00:00:10
javascript
Headless‑браузер без браузера: 5 408 байт

Или история о том, как 5 408 байт обфусцированного JavaScript, прилетающих в HTTP‑заголовке, превращаются в свободный доступ к GPT, Claude, Mistral и генерации картинок если построить браузерный манекен на чистом JS.Пролог: та самая ошибкаВсё началось с невзрачного сообщения в логах:Ошибка API (ddg_haiku): Error code: 500 - {'error': 'no x-vqd-hash-1 token'}Если вы когда‑нибудь пробовали написать прокси к duck.ai встроенному в DuckDuckGo AI‑чату, где под капотом живут GPT и Clau…

  • пятница, 23 октября 2026 г. в 00:00:11
javascript
Я разочаровался в $mol…

Может он и быстр, только экосистема нулевая. Ну и ещё система модулей кастомная, что полностью убивает любые готовые инструменты. Так что $mol — по сути одной ногой в могиле.Это как nextjs: что-то дефолтное собрать легко. Делаешь шаг в сторону, и чёт в коленке дырка появляется, ходить неудобно.$my_details $mol_view sub / <= Pager $mol_paginator value? <=> page? 0 Ну и вот этот шлак писать/генерировать/ревьювить… value? офигенно. Есть шпаргалка с мнемониками, удобными только авто…

  • пятница, 23 октября 2026 г. в 00:00:09
javascript
Прощай, setTimeout(0): как современный Web API управляет приоритетами задач и разгружает главный по…

Представьте ситуацию: человек полчаса собирал важный отчёт в веб-таблице или подбирал сложную комбинацию фильтров, нажал «Сохранить» или «Применить» — и страница намертво зависла. Курсор превратился в колесико, меню не открывается, прокрутка не работает. В голове пользователя мгновенно паника: «Всё зависло? Мои данные пропали? Нажать ещё раз? Перезагрузить страницу?!»Причина проста: если вычисления выполняются в основном потоке (Main Thread), страница будто «подвисает». JavaScript в браузере од…

  • пятница, 23 октября 2026 г. в 00:00:07
javascript
ЭЦП в Safari на macOS: как я подружил Госплагин, Контур.Плагин и КриптоПро с Safari Web Extensions

Если у вас Mac и электронная подпись на Рутокене, вы наверняка знаете ритуал: чтобы войти на Госуслуги по ЭЦП, отчитаться в личном кабинете ФНС или подписать документ в Диадоке, нужно открыть Chrome. Госплагин, Контур.Плагин и КриптоПро ЭЦП Browser plug‑in официально работают только в Chromium‑браузерах и Firefox. У КриптоПро есть старое Safari App Extension, но в актуальных версиях Safari оно даже не появляется в настройках.Я захотел, чтобы всё это работало в Safari, и в итоге получилось три н…

  • пятница, 23 октября 2026 г. в 00:00:06
javascript
Шлюз увидел «user», сервис увидел «admin», а JSON был один и тот же

Привет, Хабр!Принято считать, что JSON — самая скучная часть системы. Формат простой, парсер есть в любом языке, сломаться там нечему. Скорее спорят, как назвать поле, чем о том, что оно значит.На деле JSON описывает синтаксис и почти ничего не говорит о смысле. Что делать с двумя одинаковыми ключами в одном объекте, сколько знаков держит число, можно ли записать NaN — на всё это стандарт отвечает «на усмотрение реализации». Каждая библиотека усмотрела по‑своему. Пока JSON пишет и читает один и…

  • четверг, 22 октября 2026 г. в 00:00:12
javascript
Как я сделал мультик про котенка ФырФыр — 80 секунд за 30 минут на Sol 6.1

Стартовый кадр мультика от Sol 6.1Я тут посмотрел на свои заметки и понял, что они как каша из терминов. А как бы я объяснил это своей бабушке? Вот, к примеру, векторные мультики на JavaScript / HTML, которые нейронки сейчас делают со скоростью 1 к 30 (за полчаса - минута анимации) и копеечной стоимостью. Как бы я объяснил, почему у меня радости полные штаны?Привет, бабушка, я тут научился делать мультики на нейронке. Нееет, это не те, как кино со Штирлицем и котиками, которые разговаривают …

  • четверг, 22 октября 2026 г. в 00:00:11