[a3b6b4ff11f962f8810c12fb331311a3655adda3] #bbs #web 

Годное предложение по современному Web-у

http://www.stargrave.org/WebForbidden.html
Годное с моей точки зрения. Добавил абзац с тем, как я видел бы
возможность посещения современных Web-страничек в Интернете. Хороший
вопрос, конечно же, а зачем? Но если им не задаваться, то вместо того,
чтобы серверы отдавали кучу исполняемого кода, который наши машины
должны выполнять, можно было бы делать VNC/X11/whatever подключение по
которому у нас фактически просто удалённый доступ. Как в BBS-ках было. Я
вот про себя думаю чем бы это сильно отличалось от "классического"
использования Chrome и не нахожу чем. На современных сайтах уже нормой
является перехват нажатий клавиш чтобы делать то, что броузеры 25+ лет
назад умели (поиск, прокрутка) (ff1d0be750ab73518138fe8f04b423822081d5d1),
а значит удобно настроенный броузер (Pentadactyl для Firefox и всё такое)
уже не будут работать, ибо родной функционал броузера не будет рабочим.
Сохранить страницу на диск, чтобы в offline смотреть, тоже не выйдет,
это же real-time rendered single page application какой-нибудь. В итоге,
удалённый запуск всё равно ничем не будет менее удобен, зато локального
никакого кода не выполняется, не ставится безопасность под удар, не
нужно тонны невероятно сложного (c07d35c602ac5422060333ff43fff37d4d44b38f)
софта, который надо регулярно-регулярно обновлять. А если это будет
X11-like протокол, а не просто передача растрового изображения (RDP/VNC),
то и трафика наверняка будет куда меньше. Даже с хорошим сжатием растра
RDP/VNC, мне кажется, выигрыш в трафике будет.

Только всего этого не будет, ибо как же о нас собирать данные то!?

[оставить комментарий]
комментарий 0:
From: kmeaw
Date: 2020-08-17 21:36:27Z

Параллель с BBS очень понравилась.

Осталось придумать, как решить следующие проблемы:

1) Когда пользователь использует современный веб, то у него загружается
страничка с ресурсами, дальше он её читает, и в это время у него может
не быть связности с тем сервером, где эта страница находится. Типичный
сценарий для человека, который едет в метро — открыл несколько вкладок,
вагон приехал на станцию, все вкладки загрузились, можно читать.
Дочитал страницу, захотел перейти с неё по ссылке — отправляешь вкладку
грузить следующую страницу, а пока поезд едет, читаешь другие вкладки.
Этот сценарий важен, так как мобильных юзер-агентов в современном вебе
больше, чем всех остальных.

В случае с VNC-подобным протоколом надо сделать так, чтобы страницу
можно было хотя бы скроллить без сети. Можно попытаться передавать
виртуальный экран, представляющий собой очень узкую и длинную колонку,
что-то вроде 1920x10000, со скроллом на клиентской стороне. Но тогда не
получится реализовать стилизованный прогресс-бар, эффекты при прокрутке
и бесконечныо-прокручиваемые страницы.

2) Современная вёрстка предполагает, что ширина экрана может быть любой.
Хуже того, она может меняться прямо во время просмотра страницы — сейчас
пользователь может ресайзить окошко с браузером, а телефон поворачивать
на бок.

Текущие браузеры умеют делать reflow всего содержимого в оффлайне.
Как реализовать похожее поведение в твоей концепции? Унести box model на
клиента?

3) Переходы с одного сайта на другой и новые окна/вкладки. Сейчас я могу
открыть страницу (например результатов поиска), а оттуда попасть на
другую страницу, которая находится на совсем другом сервере. Чтобы
сделать что-то похожее в VNC, надо научить его делать редиректы с
сервера на сервер. И по команде с сервера открывать новые подключения к
другим VNC-серверам.

X11 доволно плохо работает через интернет — при использовании
современных тулкитов и растеризатором шрифтов он требователен как к
latency, так и к bandwidth, так что кроме как по локальной сети не
работает. Мне понравилось, как работает Xpra, то там, как и в RDP,
передаётся пожатый растр.

Если совсем упороться, то можно ещё развить эту идею с 2D до 3D, и
передавать не canvas со страничкой, а карту с состоянием объектов, как в
каком-нибудь DooM. Раньше был VRML, но в нём не решили задачу бесшовного
перехода с одного документа на другой.
комментарий 1:
From: Sergey Matveev
Date: 2020-08-18 08:16:46Z

*** kmeaw [2020-08-18 00:33]:
>Осталось придумать, как решить следующие проблемы:

Я же всего лишь предлагал концепт, а не буквально готовое решение :-)
Даже в BBS-ках же тоже были протоколы сжатия передаваемых ANSI-изображений
(только сейчас задумался и понял что они наверное бессмысленны стали
когда модемы стали самостоятельно жать передаваемый трафик).

>1) Когда пользователь использует современный веб, то у него загружается
>страничка с ресурсами, дальше он её читает, и в это время у него может
>не быть связности с тем сервером

Насколько понимаю, о связанности сейчас уже давно никто не думает и все
априори считают что Интернет есть всегда и везде. Ну да, возможно кроме
переходов в туннеле в метро. А если думать о связанности, то
"современный web" вообще малоюзабелен, с моей точки зрения, ибо всё
больше всего переносится в online, даже страничку не сохранить на диск.

>В случае с VNC-подобным протоколом надо сделать так, чтобы страницу
>можно было хотя бы скроллить без сети. Можно попытаться передавать
>виртуальный экран, представляющий собой очень узкую и длинную колонку,
>что-то вроде 1920x10000, со скроллом на клиентской стороне. Но тогда не
>получится реализовать стилизованный прогресс-бар, эффекты при прокрутке
>и бесконечныо-прокручиваемые страницы.

У меня тоже первой мыслью было виртуальное разрешение большого размера.
А всё остальное что назвали: да и слава богу что не будет, ибо
практической пользы нет :-). И это я серьёзно считаю что *абсолютно*
пользы от финтифлюшек нет, кроме траты моего времени пока они
анимируются, вместо моментального показа что уже подгружено. А
бесконечный scroll... надеюсь я передам всё своё негодование об это
технологии, как это сделали бы какие-нибудь яростные религиозные
фанатики, сказав что это творение самого Сатаны :-)! Если бы лозунгом
было "let's make web usable again!", то я бы начал с уничтожения этой
идеи бексконечного scroll-а.

>2) Современная вёрстка предполагает, что ширина экрана может быть любой.
>Хуже того, она может меняться прямо во время просмотра страницы

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

>3) Переходы с одного сайта на другой и новые окна/вкладки.

Да, это тоже надо будет уметь совместисть с клиентом и говорить ему о
переходе на другие вкладки.

>X11 доволно плохо работает через интернет

Повторюсь, что я всего-лишь концепт описывал. И само собой текущие
решения нужно до него доработать. Просто, как мне кажется, это очень не
много усилий, зато аналогичный результат в виде... современной
web-странички (малоюзабельной, с моей точки зрения, но передающей все
хотелки автора). Раз уж смогли сделать современные страницы такими, что
даже на Core i7 с кучей RAM всё умудряется дико тормозит и потреблять
трафика и заставлять менять/обновлять framework-и и, соответственно,
броузеры каждые полгода/год, то уж написать то VNC/RDP/X11/whatever
решение тем более могут.

Основная проблема, тоже повторюсь, как я её вижу: выполнение *моим*
компьютеров непойми какого недоверенного кода, чего я допускать не
собираюсь. Для 99% всех задач Web-а достаточно HTML3/4(?) и возможно
маааленький subset CSS (красным там что-нибудь подчеркнуть). Но
"удалённый доступ" к ресурсу будет схож по неюзабельности с современными
web-сайтами, а при грамотной реализации, куда экономнее по трафику и тем
более CPU/RAM.