[О блоге] [наверх] [пред] [2020-12-13 18:25:01+03:00] [559781a8756ad1b6362a8228970cec7f5ac901a2]
Темы: [hate][web]

Bombadillo и Gemini

https://bombadillo.colorfield.space/
https://gemini.circumlunar.space/docs/faq.html
Свеженький, UTF-8 aware, броузер gopher://, gemini://, finger. Да ещё и
на Go написанный, без проблем у меня собираясь. Мой phlog работает в нём
отлично.

С одной стороны мне конечно нравится что gopherspace не умирает, даже в
общем-то разрастается (но это наверное связано с возрастающей
доступностью компьютеров и Интернета). С другой стороны, gopher протокол
чисто технически, чисто формально, не юзабелен, так как его RFC не
разрешает что-то кроме 7-бит ASCII. Встречал strict броузеры которые
действительно UTF-8 не показывают.

Gemini, с точки зрения протокола, "закрывает" недостатки Gopher:

* non-ASCII поддержка
* MIME-типы вместо item type Gopher-а. Я это одобряю, ибо, хоть и не
  компактно, но рабочий вариант по чёткому понимаю что за контент
* Добавлены коды ошибок. По идее действительно нужно и важно, чтобы
  машина могла понять успешен ли был запрос
* вставка URL без хаков. Действительно, в gopher нет штатного способа
  указать URL или сделать ссылку на него. Де-факто многие делают
  HTML-like ответ с redirect-ом, но это костыль
* redirect-ы. Полезно, когда что-то переместилось
* domain-based virtual hosting. Ну... тут не уверен одобряю ли. Зачем на
  один IP вешать несколько ресурсов? Пора забыть про IPv4 мир, пинать
  кто не может из него выбраться. Адресов в IPv6 даже конечной квартире
  дают уйму
* Gemini старается уйти от древовидной структуры директорий/файлов
  Gopher-а. В целом мне это нравится, ибо, как и в Texinfo, оно не
  всегда удобно

Основные цели Gemini это сделать нечто для тех, кто не любит слежку (web
tracking), кто устал от баннеров и кто устал ждать загрузки страниц на
своём мощном многогигабайтном amd64 компьютере.

Форматы запроса/ответа Gopher/Gemini очень простые и по сути просто
представляют отправку URI некого. Чем это отличается от "GET URI HTTP/X"?
Иметь возможность качать большие файлы (большие -- значит должна быть
докачка) я считаю необходима. Если не необходима, то рядом держать
HTTP-ноду для раздачи больших файлов? Что Gemini предлагает? Что плохого
в том, чтобы к запросу (да и ответу) можно было опционально добавить
key-value дополнительные данные, которые можно будет проигнорировать,
если не поддерживается? Чем кардинально HTTP тут не устраивает? Точнее
подмножество HTTP, которое даже на Си не сложно написать для задач
Gopherspace?

Как HTTP и HTML заставляют людей вставлять баннеры, кучу дерьма и
следить за людьми? Никто из них не заставляет. Всё это можно
использовать приватно, почти без overhead-а относительно gopherspace.
Мне нравится жёсткий минималистичный формат страниц gopher, и
text/gemini. Но что мешает передавать их поверх HTTP?

Но автор даже в FAQ имеет целый раздел "почему бы просто не использовать
подмножество HTTP/HTML"? И его ответ меня не устраивает. Он просто
говорит, что видя gemini://, точно можно быть уверенным что сейчас будет
всё открываться без говн. Но кто мешает использовать броузер без говн,
который бы не отправлял User-Agent, не загружал эти CSS и прочее? Такой
броузер реально написать за вменяемое, особенно для (X?)HTML подмножества.

Мне просто не нравится что HTTP тут не рассматривается. Уж для этих
задач он вполне себе хорош и приятен. Сам по себе со всеми chunked
encoding, pipelineing-ом и кучей других фич он конечно громоздок, но
никто не заставляет их реализовывать. Если я хочу выложить PDF-ку, то
она может занимать много мегабайт и докачка обязательна.

text/gemini одобряю в целом, хотя ещё не пробовал. Отсылка к Markdown
мне не нравится (da160c3c7b3f5393aa37f2d042f9b281264273de), но ладно уж,
там über маленький subset. Возможно добавлю в SGBlog его поддержку и это
будет ещё и gemlog-engine. Just-for-run.

А вот что мне яростно не нравится, так это обязательное использование
TLS. Пускай даже и TOFU, но обязательное использование. Нет, это ни в
коем случае не могу одобрять.

FAQ говорит что осознанно нет ничего подобного Content-Length, ибо
появление одного "расширения" сразу приведёт к другим. А тут всё так
урезано, что соблазна не будет. Опять же, не согласен. Некоторые люди
превратили HTTP/HTML в адовый ад, согласен. Но кто заставляет
"тусоваться" вместе с ними и быть как они? Нет уж, но я хочу знать качаю
я 20 мегабайтную фотографию, потому что какая-то редиска не умеет
масштабировать изображения, или это нормальная фотография на 100-200
килобайт? FAQ предлагает дать ссылку на HTTP/BitTorrrent/whatever. Снова
для меня это говорит о том, что ничто не мешает использовать HTTP.

Также в FAQ явно сказано что осознанно нет версии протокола. Типа чтобы
никогда не расширять. Я так же мог бы подумать лет 10-15 назад. Но я
давно уяснил что ВСЕГДА её надо добавлять (в протоколы). ВСЕГДА, пускай
даже и не сменится. Но у меня никогда не было случая чтобы всё равно она
да не возросла, ибо не всё можно продумать и не всё предусмотреть (это
вообще невозможно). Так и хочется сказать что это какой-то детский аргумент.

Вот для меня и вырисовывает картина такая: gopher создавали тогда,
когда, можно сказать, многих best-practices не было, да и таких вещей
как URL/URI. Им, в общем-то, всё простительно. А вот Gemini как будто
ребёнок писал с подобной аргументацией. Ведь вовсю делали и поддерживали
Gopher+, в котором всё равно появились generic key-value сущности.

И заметки https://gemini.circumlunar.space/docs/best-practices.html по
поводу TLS: пожалуйста используйте ECDHE, AES/ChaCha20 и SHA2/3...
только подтверждают это. DHE это хорошо. А *25519 было бы ещё лучше,
кроме того оно и поддерживается. ECDHE зачем рекомендовать? Вот упомянул
бы DHE и промолчал бы насчёт ECDHE -- было бы лучше. AES/ChaCha20...
допустим, упомянул, хорошо. Но писать про SHA2/3 для целостности
сообщений? Серьёзно? Не использовать AEAD? Если бы автор промолчал бы,
то было бы куда лучше.

Ну и его ответы в рассылке на тему замены TLS тоже не лучше, хотя там
Drew DeVault пришёл. Gemini это типа про "здесь и сейчас". Ну ok, он
здесь и сейчас уже не актуален одной только темой про TLS. Здесь и
сейчас требует громоздкий и сложный софт для одного только TLS. Здесь и
сейчас требует (ok, советует) ECDSA, что без комментариев.

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

    [оставить комментарий]