← Timeline
Avatar
Shmuel Leib Melamud
Прекращение поддержки расширения для браузера

Расширение для браузера было частью Moera с самого начала. Оно выполняет несколько задач:

  1. Автоматически загружает клиент Moera при переходе на сайт, поддерживающий Moera. Поскольку сеть децентрализованная, Moera может быть установлена на любом сайте и расширение для браузера помогает это обнаруживать.
  2. Загружает всегда именно тот клиент, который предпочитает пользователь.
  3. В адресной строке браузера показывается прямая ссылка на сайт, поэтому её можно просто копировать оттуда вместо того, чтобы выбирать "Копировать ссылку" в меню поста или коммента.
  4. Позволяет избавиться от единственной точки отказа, которой является сайт, перенаправляющий пользователя на выбранный им клиент Moera.

Я по-прежнему считаю, что именно так делать правильнее всего. Но, к сожалению, такая архитектура создаёт проблемы, которые практически невозможно устранить.

  1. Пользователи не хотят устанавливать расширение. Это является дополнительным препятствием, отбивающим у пользователей желание регистрироваться в Moera.
  2. Подавляющее большинство мобильных браузеров не поддерживают расширения.
  3. Переход между разными блогами вызывает перезагрузку клиента, который довольно тяжёлый и грузится существенное время.
  4. Необходимость обращаться к расширению замедляет загрузку ещё больше.
  5. Существенно усложняется архитектура клиента.
  6. Браузер старается изолировать каждый сайт, из-за чего не работает встроенное кэширование, дублируются preflight-запросы, нет возможности пользоваться локальным хранилищем и т.д.
  7. Посты во френдленте открываются с домашней ноды. Это значит, что даже с установленным расширением для браузера в адресной строке показывается ссылка не на пост, а на его копию, которая не откроется, если по ней перейдёт другой пользователь.

Таким образом, цель №3 даже с установленным расширением не достигается. А остальные цели не актуальны на данный момент, потому что клиент пока есть только один, пользователей немного и нет ни одного стороннего сайта, который поддерживает API Moera. Но даже тогда, когда они станут актуальны, их можно будет достичь при помощи упрощённого расширения, которое просто перенаправляет пользователя на выбранный им клиент, а не внедряет его прямо в страницу.

Поэтому я принял решение пока прекратить поддержку расширения для браузера.

Browser Extension - Moera
The Best Decentralized Social Network
MOERA.ORG
To react or comment  View in Web Client
Comments (13)
Avatar

звучит, что всё так.
я когда-то давно думал, что имеет смысл иметь зарезервированный домен вне даже твоего прямого контроля. от него могут плясать кнонические ссылки. на самом домене должен жить простой редиректор на любой клиент (на куках, я думаю), поверх него расширения могут рисовать веб клиент, и например на него могут вешать хуки все приложения

Avatar
Avatar

Кстати, хороший вопрос: в каком виде выдавать сейчас ссылки на посты? https://lamed.moera.blog/post/xxx или https://web.moera.org/lamed_0/post/xxx?

Avatar
Avatar

https://lamed.moera.blog/post/xxx

Этот вариант наиболее читабелен для конечного пользователя.
Но да, требует более умного бэкэнда на moera.blog, знающего всех юзеров.

Avatar

лично мне не нравится нынешний адрес ноды в пермалинке

Avatar

с другой стороны мы зачем-то разрешаем почти что угодно в юзернеймах, так что их сложно совать в урлы

Avatar

зачем-то разрешаем почти что угодно в юзернеймах,

Затем, чтобы расширить пространство имён.

так что их сложно совать в урлы

Совсем нет. Сейчас в урлы можно совать что угодно.

Avatar

Затем, чтобы расширить пространство имён

штука в том, что разрешить ты можешь постфактум, а запретить практически нет. то есть сейчас мы не можем зарезервировать символы или запретить часть для защиты от фишинга например.

Совсем нет. Сейчас в урлы можно совать что угодно.

то есть да, просто если такие ссылки куда-то копировать они бывает или выглядят фигово или не парсятся как линки

Avatar

У меня зарезервирована практически вся пунктуация, более чем достаточно символов, даже если считать только ASCII. Резервировать буквы национальных алфавитов я не вижу смысла. А для защиты от фишинга нужны галочки верификации. (Правильно сделанные, а не так, как в Twitter. И нет, не Маск их испортил, они были испорчены с самого начала.)

Avatar

Eliyahu Duvidzon Объясню, что я хочу от URL-ов.

https://lamed.moera.blog/post/xxx

Достоинства:

  • Короткий, легко читается, без лишних символов.
  • При заходе бота сразу выдаётся страница для ботов.

Недостатки:

  • При перемещении к другому провайдеру пост уже невозможно найти.
  • При заходе человека приходится рассчитывать на саму ноду, чтобы она перенаправляла на клиента.
  • В клиенте не получится показывать такой URL в адресной строке.
  • В системе нельзя повесить обработчик на такой адрес.

https://web.moera.org/lamed_0/post/xxx

Достоинства:

  • При перемещении к другому провайдеру пост всё равно открывается.
  • При заходе человека гарантированно перенаправляет на клиента.
  • По крайней мере в одном клиенте получится показывать такой URL в адресной строке.
  • В системе можно повесить обработчик на адрес.

Недостатки:

  • Длиннее, могут быть лишние символы.
  • При заходе бота надо резолвить имя, это занимает время. Если имени нет в кэше, боты могут обломаться ждать.

https://web.moera.org/lamed.moera.blog/lamed_0/post/xxx

Достоинства:

  • При перемещении к другому провайдеру пост всё равно открывается.
  • При заходе человека гарантированно перенаправляет на клиента.
  • По крайней мере в одном клиенте получится показывать такой URL в адресной строке.
  • При заходе бота сразу выдаётся страница для ботов.
  • В системе можно повесить обработчик на адрес.

Недостатки:

  • Самый длинный, могут быть лишние символы.
  • При заходе бота могут быть сбои, если пост перемещён к другому провайдеру, а имени нет в кэше.
Avatar

я пытаюсь понять, как последний вариант решает проблему с переездом к другому провайдеру? у нас всё ещё хост вместо имени в адресе. хотя я осознаю, что поздно и я не полностью понимаю разговор 😁

Avatar

В последнем варианте есть и хост, и имя. И если имя не удалось резолвнуть достаточно быстро, используется хост.

To react or comment  View in Web Client