Hacker News Digest

Тег: #web-performance

Постов: 2

Sometimes CPU cores are odd (anubis.techaro.lol)

Всё ПО содержит баги; чем сложнее код, тем запутаннее ошибки. Однажды я столкнулся с «однострочным» фиксом, который спас пользователей от случайных отказов Anubis.

Как всё началось
Anubis — WAF, который проверяет, что клиент — настоящий браузер. Основной способ — proof-of-work: клиент считает хэши, ограничивая скорость подключения. Чтобы экран-заглушка исчезал быстрее, JS-код использует максимум ядер CPU.

Проблема
Firefox тормозит, если задействовать все ядра; оптимум — половина. В коде было:

threads = Math.max(navigator.hardwareConcurrency / 2, 1)

Все мои тестовые устройства (MacBook, Ryzen, iPhone, Steam Deck…) имели чётное количество ядер, поэтому navigator.hardwareConcurrency / 2 всегда получался целым. Но если устройство с нечётным числом ядер (например, 3), результат — 1.5. JavaScript-числа — это IEEE-754, и дробная часть приводила к багу «invalid response», потому что логика расчёта nonce рассчитана на целые.

Фикс
Округлил до ближайшего целого:

threads = Math.max(Math.floor(navigator.hardwareConcurrency / 2), 1)

Одна строчка — и исчезли случайные отказы на нечётных CPU.

by rbanffy • 28 августа 2025 г. в 21:39 • 98 points

ОригиналHN

#javascript#web-application-firewall#proof-of-work#web-performance#browser-detection#cpu-cores#ieee-754

Комментарии (109)

  • Разработчики Anubis не учли, что бывают процессоры с нечётным числом ядер (3, 9 и т.д.), из-за чего проверка «кол-во ядер = степень двойки» ломается.
  • Пользователи жалуются: на телефонах с 9 ядрами (S24+) тест висит и жрёт батарею, а без JS сайты работают быстрее.
  • Часть комментаторов считает PoW-валидацию бесполезной: боты всё равно запускают JS, а легитимные пользователи платят тем же временем/энергией.
  • Предлагают отказаться от PoW в пользу «Proof of React» или просто убрать жёсткую привязку к числу ядер.
  • Некоторые отключают JS и cookies по умолчанию и обходят Anubis, но всё чаще просто уходят с сайтов.

The beauty of a text only webpage (albanbrooke.com) 💬 Длинная дискуссия

Чар простой текстовой страницы

Открывая страницу из одного текста, я чувствую облегчение: нет баннеров куки, рекламы, всплывающих подписок и автозапуска видео.
Только чистый, быстрый, читаемый текст.

Такой контент можно скопировать в письмо, отправить в ChatGPT, распечатать или сохранить на Kindle — он везде работает.
Ссылка открывается мгновенно без CDN и предзагрузок.
Хостинг стоит копейки, сайт живёт даже на Raspberry Pi.

Читая, легко переключаться между беглым просмотром и вдумчивым чтением, не чувствуя вины за «потерянное» время.

Спасибо всем, кто публикует текст без лишнего.
Вы жертвуете «вовлечённостью», но дарите интернету простоту и покой.
Мне это безумно нравится.

by speckx • 15 августа 2025 г. в 15:05 • 235 points

ОригиналHN

#html#css#javascript#web-performance#web-design

Комментарии (156)

  • Участники мечтают о браузере без JS, где только HTML и выбранная пользователем CSS-тема.
  • Хвалят сайты вроде plaintextsports.com и berkshirehathaway.com за минимализм, читаемость и отсутствие трекеров.
  • Спорят о шрифтах: кто-то любит моноширинные «под печатную машинку», кто-то просит sans-serif и контрастные цвета.
  • Соглашаются, что картинки допустимы, если служат тексту, а главный враг — избыточный JS, баннеры и медленные фреймворки.
  • Вспоминают лёгкие новостные «lite»-версии CNN/NPR и альтернативные протоколы вроде Gemini как примеры «текстового» интернета.