NOP::Nuances of Programming
56.9K subscribers
4.2K photos
11 videos
12 files
5.54K links
Любые вопросы по сотрудничеству: @ramilkr
Если нужен токен:
https://telega.in/c/nuancesprog
NOP::Humor - https://t.iss.one/nophumor
NOP::Recruiter Удаленка- https://t.iss.one/nopremote

РКН: 4977653520
Download Telegram
CRDT без академических статей: интерактивный курс на JavaScript

Lars Hupel собрал серию туториалов про Conflict-Free Replicated Data Types — структуры данных, которые сливаются между репликами всегда и без конфликтов. Всё на JavaScript, весь код исполняется прямо в браузере как в Jupyter: правишь сниппет, нажимаешь Run, смотришь результат.

Зачем это вам: любое приложение с офлайн-режимом или синхронизацией между устройствами упирается в вопрос «чья версия правильная». Обычно это заканчивается баннером «вы офлайн» или молчаливой потерей данных. CRDT решают задачу конструктивно — через решётки и частичные порядки, а не через эвристики «last write wins».

Трение в том, что автор сознательно уходит в математику, а не в практику: если нужен готовый рецепт для продакшена, он честно отправляет на crdt.tech. Зато свойства проверяются property-based тестами через fast-check — сразу видно, где ваша реализация merge ломает коммутативность.

🔗 Подробнее

@nuancesprog #Data #JavaScript
👍1
Firefox остался единственным браузером с полным uBlock Origin

Microsoft Edge скоро отключит расширения на Manifest V2, включая uBlock Origin. Mozilla ответила в Bluesky: «Наша поддержка uBlock Origin никуда не денется».

Manifest V3 лишает блокировщики доступа к функциям, которые нужны для фильтрации запросов. Практически все Chromium-браузеры — Opera, Brave, Vivaldi — идут за Google по этому пути.

Альтернатива в Chromium — uBlock Origin Lite, но он ловит заметно меньше рекламы. Ирония в том, что Manifest V3 задумывался как способ повысить безопасность расширений.

🔗 Подробнее

@nuancesprog #Tools #JavaScript
👍10
Скрытый WebAudio на AliExpress ломает Bluetooth-мультипойнт

Автор блога laserphile заметил: открытая вкладка AliExpress глушит музыку с телефона. Причина — два скрытых AudioContext от скриптов collina.js и fireyejs.js.

Графы строят пилообразный осциллятор с усилением в ноль, но подключают его к системному выходу. Звука нет, зато аудиотракт остаётся активным, и кнопка «выключить звук во вкладке» не помогает.

Это часть большого отпечатка: canvas, WebGL, WebRTC, память, движение устройства. Спорно тут другое — отличить антифрод от обычной слежки со стороны невозможно.

🔗 Подробнее

@nuancesprog #Security #JavaScript
👍1