Hacker News Digest

Тег: #caching

Постов: 2

Show HN: I Built a XSLT Blog Framework (vgr.land)

  • Сделал блог-фреймворк на XSLT: демо, код.
  • Зачем? Для себя. После пары «вайб-промптов» понял, что 20-летний стандарт покрывает всё, что надо.
  • Хочу: писать чистый HTML, без WYSIWYG и Markdown; RSS «из коробки»; единый шаблон на все посты; немного JS для картинок и тем.
  • XSLT = один файл-шаблон, XML-контент. Браузер сам превращает XML в HTML. RSS тоже XML, поэтому тот же индекс используется и для ленты.
  • Публикация: создал пост, добавил в index.xml, залил — всё. Без сборок и бэкенда.

by vgr-land • 24 августа 2025 г. в 17:38 • 87 points

ОригиналHN

#xslt#xml#html#rss#javascript#php#saxonjs#seo#caching

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

  • Участники вспомнили XSLT как способ превращать XML в HTML прямо в браузере, но большинство считают технологию устаревшей и медленной.
  • Предложено заменить RSS на Atom из-за более чистого формата дат и лучшей поддержки.
  • Некоторые используют XSLT на сервере (PHP, SaxonJS), где он работает быстро и безопасно.
  • Браузеры удаляют XSLT из-за рисков безопасности и низкого спроса; IBM предложила свой JIT-движок, но его вряд ли примут.
  • SEO и кэширование вызывают сомнения: динамически собранные страницы могут быть плохо проиндексированы.

How Figma’s multiplayer technology works (2019) (figma.com)

Как работает технология «мультиплеера» в Figma

Основная идея
Figma позволяет десяткам дизайнеров одновременно работать над одним файлом без конфликтов. Это достигается за счёт оперативной синхронизации изменений и разрешения конфликтов на лету.

Архитектура

  • WebSocket-соединение — каждый клиент держит постоянное соединение с сервером.
  • Операционные преобразования (OT) — любое действие (перемещение слоя, изменение текста) описывается как операция. Сервер применяет её и рассылает всем клиентам.
  • Дельты и патчи — вместо полной передачи файла отправляются только изменения, что экономит трафик и ускоряет работу.

Разрешение конфликтов
Если два пользователя одновременно изменяют один и тот же объект, алгоритм OT выстраивает правильный порядок операций, сохраняя логическую целостность. Пользователи видят результат почти мгновенно.

Производительность

  • Дерево объектов хранится в памяти браузера и обновляется по мере поступления операций.
  • Сжатие и батчинг — несколько операций объединяются в один пакет, чтобы снизить нагрузку на сеть.
  • Кеширование — сервер хранит последние состояния файлов, чтобы быстро «догнать» клиента, который только подключился.

Безопасность и надёжность

  • Все операции логируются и могут быть отменены (undo/redo).
  • Данные шифруются при передаче и хранятся в зашифрованном виде.
  • Регулярные снепшоты защищают от потери данных при сбоях.

Итог
Технология «мультиплеера» превращает Figma в «Google Docs для дизайна», где коллаборация происходит без конфликтов и задержек.

by redbell • 16 августа 2025 г. в 11:41 • 161 points

ОригиналHN

#websocket#operational-transformation#figma#webgl#real-time-collaboration#conflict-resolution#caching#encryption

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

  • Участники делятся ссылками на материалы Linear, Automerge, Croquet и другие решения для реал-тайм синхронизации.
  • Обсуждают, насколько сложной остаётся задача и какие новые инструменты (Liveblocks, Electric SQL, Rocicorp Zero) делают её доступнее.
  • Спорят о терминологии «multiplayer» и о том, насколько часто пользователи действительно одновременно редактируют дизайн.
  • Отмечают, что Figma пошла на радикальные меры: собственный WebGL-рендерер и протокол, отказавшись от готовых библиотек.
  • Шутят о случайном переключении сайта из тёмной в светлую тему при прокрутке и о «figma balls».