LINUX.ORG.RU

Gemini-клиент Lagrange 1.2

 , , , ,


8

5

Вышла новая версия красивого и полнофункционального Gemini-клиента — Lagrange, написанного на языке C с использованием библиотеки SDL.

Gemini — это новый протокол прикладного уровня, по своему предназначению являющийся простой альтернативой HTTP и усовершенствованной альтернативой Gopher, то есть проектом «посередине» между ними в плане сложности. Он появился как реакция на недостатки последних, в особенности HTTP. В основу его дизайна легли идеи уважения приватности пользователя и сознательного отказа от расширяемости в пользу консервативного сохранения спецификации в минимальном, но удовлетворяющем пользовательские потребности виде (сейчас она заморожена). Проект использует уже знакомые многим стандарты, вроде URI, MIME и TLS. Проект не использует HTML, CSS и JavaScript — для разметки файлов предлагается похожий на Markdown формат Gemtext, а запуск кода и применение стилей на стороне клиента не предусмотрены. Для интерактивного взаимодействия с сервером существует CGI и потоковая отправка сообщений клиенту с помощью долгоживущего TCP-соединения (вследствие чего, например, возможна реализация чата). Сайты принудительно используют шифрование с помощью TLS без CA — вместо него используется механизм TOFU, а для аутентификации пользователей используются пользовательские сертификаты.

Сообщество разрастается интересными для пользователей проектами, вроде поисковой системы GUS, агрегатора новостей CAPCOM, каталогом Gemini-капсул (так называются местные сайты) Medusae, техническими демо возможностей протокола, вроде анонимной текстовой доски, агрегатора ссылок и чата. Доступны прокси как для просмотра Geminispace с помощью HTTP [1] [2] [3], так и для просмотра HTTP с помощью Gemini, и то же самое для Gopher.

Протокол достаточно прост, чтобы любой желающий мог создать свой клиент и сервер — чего нельзя сказать о текущем состоянии современного WWW с тысячами страниц спецификаций. По этой причине уже существует разнообразие проектов энтузиастов и активная дискуссия в почтовой рассылке проекта.

Lagrange является одним из таких проектов — небольшим Gemini-клиентом с поддержкой аппаратного ускорения с помощью SDL и плавного листания страниц, отображения картинок на странице, вкладок, тем оформления, закладок, истории, пользовательских сертификатов, оглавлений, новостных лент.

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

В разработке порт Lagrange на мобильные платформы! А до тех пор пользователи могут попробовать Ariane на Android, например.

>>> Подробности

★★★★★

Проверено: Shaman007 ()

Ответ на: комментарий от monk

Если внезапный разрыв в тексте «разработанный в …. .. .…. исследовательском центре» — это для Вас типографики, то я Вам сочувствую.

Ты всегда корежишь браузер до 150px ширины а потом бегаешь орешь что текст не читается? Потому что если подвинуть чуть влево или чуть вправо то сразу становится нормально.

А на всех остальных полтора браузера (в смысле, движка).

В смысле браузеры. Chrome, Firefox, Brave, Safari, Konqueror, Edge, Opera, Vivaldi. Это разные браузеры, потому что в Chrome не работает нормально блокировка рекламы теперь, а в Vivaldi – работает.

Тогда можешь считать, что у Gemini один браузер.

Нет, не могу, потому если один браузер отрисовывает мои картинки в тексте, второй создает новые табы, третий вызывает доставку картинки мне домой в пакете через DHL, то я не буду пользоваться Gemini, а сделаю нормальный сайт в WWW.

anonymous ()
Ответ на: комментарий от anonymous

Ты всегда корежишь браузер до 150px ширины

Многооконный режим придумали ещё в 1973.

потом бегаешь орешь что текст не читается

Читается. Но когда иллюстрация над или под абзацем читается намного лучше.

Это разные браузеры,

А Debian и Ubuntu — тогда разные операционные системы. Your milage may vary.

я не буду пользоваться Gemini, а сделаю нормальный сайт в WWW

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

monk ★★★★★ ()
Ответ на: комментарий от anonymous

Что-что, а вот прокрутка в Lagrange действительно очень плавная, такую я даже в хвалёном Firefox не видел. А ещё отображение текущего заголовка в специальной рамке это очень удобно для больших организованных текстов.

fuggy ()
Ответ на: комментарий от anonymous

Всё как отцы завещали. Форматировать переводами строки (как на lib.ru), чтобы не больше 72 символа в строке. А то вдруг кто-то интернет смотрит через DEC VT100.

А если по честному, то считаю что всё подобное форматирование должно на браузер ложится. Насколько я заметил в Lagrange есть темы, а значит и должна быть возможность указать шрифт, максимальную ширину текста и тому подобное.

fuggy ()
Ответ на: комментарий от anonymous

Кажется, веселье кончилось:

Закрыто добавление комментариев для недавно зарегистрированных пользователей

А жаль. Этот анон жжот.

wandrien ()
Ответ на: комментарий от monk

Так в этом и суть. Ты можешь в сотню строк написать такого клиента, который удобен именно тебе. Хочешь, втыкай картинки в текст, хочешь вывешивай рядом, хочешь вешай на жесты их масштабирование…

…ты не поверишь…. С HTML МОЖНО ДЕЛАТЬ ТОЧНО ТАК ЖЕ.

wandrien ()
Ответ на: комментарий от wandrien

Вот хороший доклад от Александра Соловьёва который с ней пытался работать и в итоге создаю свою более удобную библиотеку. Особенно показательна проблема с наследованием атрибутов. https://www.youtube.com/watch?v=47q_yLxsfOU

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

Правда что мешает это делать сейчас? Ведь уже долгие годы есть html form action, с валидацией форм и другими декларативными элементами. Нет, никаких проблем от частой перезагрузки страниц не будет. Люди просто отвыкли, что веб-страницы так и должны работать. Браузеры умеют быстро перезагружать страницу, если она лёгкая, используется http2 и все стили вынесены в отдельный файл. Даже на медленном интернете. Можете проверить это будет намного быстрее, чем загрузить мегабайтный JavaScript-фреймворк для SPA, который всё равно ещё будет в фоне подтягивать данные в Json-формате.

Если создать универсальную декларативную библиотеку, тогда возникают другие проблемы. Это то что, тогда браузер будет обновляться не как сейчас, а раз в час. Потому что у веб разработчиков так принято, если новая версия не вышла в этот день, значит проект заброшен. И каждому разработчику надо будет именно самую новую версию. И сайты опять будут показывать, что ваша версия декларативной библиотеки устарела, обновите систему. Но есть и другие проблемы. Это огромное легаси сайтов. И желание всех затолкать в одну парадигму, что думаю не всем придётся по душе, откуда и возникают тысячи версий велосипедов JS-библиотек. Явная проблема языка JavaScript, что в нём нет полноценной стандартной библиотеки языка, которая бы покрывала большинство требуемых возможностей и была бы модульной.

MathJax — это явный раздуватель кода. Зачем он нужен когда уже есть MathML. Он не поддерживается в вашем любимом Chrome? Так это проблема конкретного браузера, пишите разработчикам, чтобы они добавили поддержку. Или ставьте плашку на сайт, что сайт «оптимизирован» на работу только в Firefox и Safari. Зачем нужно тянуть библиотеку, когда браузеры это и так умеют. Да формат громоздкий, но стандарт — есть стандарт. Конечно было бы удобнее чтобы формулы можно было бы задавать в TeX формате, а они уже пускай потом в MathML конвертируются уже у клиента.

fuggy ()
Ответ на: комментарий от wandrien

Ты можешь в сотню строк написать такого клиента, который удобен именно тебе.

…ты не поверишь…. С HTML МОЖНО ДЕЛАТЬ ТОЧНО ТАК ЖЕ.

В сотню строк написать клиента? HTML? Максимум, можно расширение к существующему клиенту наваять. Но из расширения, насколько я помню, внешние приложения не запускаются.

monk ★★★★★ ()
Ответ на: комментарий от fuggy

Не необходимости сувать их в дистр браузера. Пусть скачиваются так же как сейчас.

wandrien ()
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от fuggy

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

Исполнять можно, но как раньше Java-аплеты, с явным разрешением.

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

Аналогично версии браузера сейчас. Могут писать, могут держать совместимость. Для декларативной это проще. Вон как HTML5 внедряли.

Это огромное легаси сайтов.

Легаси останется также как сейчас самоподписанные https. Предупреждение при входе и пусть работает.

MathJax — это явный раздуватель кода. Зачем он нужен когда уже есть MathML.

Конечно было бы удобнее чтобы формулы можно было бы задавать в TeX формате, а они уже пускай потом в MathML конвертируются уже у клиента.

Так это и есть MathJax.

monk ★★★★★ ()
Ответ на: комментарий от monk

Так это и есть MathJax.

Я понимаю что это такое. Но это должно делаться один раз на серверной стороне, а в браузер отдаваться готовый MathML. Формулы они статические. Зачем в моём браузере это библиотека, если у меня браузер формулы и без библиотек поддерживает. А для браузеров, которые не поддерживают (Chrome) пишите полифил или отдельную страничку, где уже будет подключена эта библиотека.

fuggy ()
Ответ на: комментарий от fuggy

Да можно и так. Суть не в конкретной либе, я просто пример привел.

Суть в том, чтобы тьюринг-полный код исполнялся в пределах страницы только свободный, официально кем-либо релизнутый, проверенный на безопасность и заверенный хэш-суммой или подписью.

А сам сайт давал только декларативный код, не способный запускать произвольную логику.

MathJax как пример, так как на странице присутствует декларативный «код» формул.

wandrien ()

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

Dmitry_Sokolowsky ★★★★★ ()
Ответ на: комментарий от wandrien

Согласен, что сайт должен предоставлять только декларативный код, а тьюринг-полный исполняться только либо встроенный в стандартную библиотеку языка или в сам браузер. Но вы только что изобрели Decentraleyes. Где популярные библиотеки исполняются из локального подписанного хранилища. Но тут движение идёт от пользователя. Пользователь сам ставит дополнение. А движение должно идти со стороны разработчиков сайтов. Это должно быть частью браузера (или официальным плагином), где содержится только свободный и проверенный код. Но и при этом сайты должны заявлять, например в doctype, что они используют данную технологию и им необходимо этот плагин. Это должны хотеть производители контента. Просто со стороны потребителя к этому прийти нельзя. Поэтому пользователям надо требовать от разработчиков чтобы они выкинули JavaScript и его выпилили из браузеров, тогда и заживём.

Из этого получается, мы хотели Decentraleyes, а в результате получились AMP Pages, где ограниченный html и ограниченный js. И все сами знают к какой ещё большей монополии это приводит.

свободный, официально кем-либо релизнутый, проверенный на безопасность и заверенный хэш-суммой или подписью

А кто потом докажет, что функция для трекинга пользователя не нужна. Ведь эти библиотеки пишут интернет-гиганты, и кто им помешает добавить в библиотеку функцию для слива данных. Они её обоснуют технической необходимостью. Откуда сейчас и растут ноги у cookie, повсеместно используемые для трекинга.

fuggy ()
Ответ на: комментарий от fuggy

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

wandrien ()
Ответ на: комментарий от fuggy

Но и при этом сайты должны заявлять, например в doctype, что они используют данную технологию и им необходимо этот плагин.

Зачем? Лишние скрипты по желанию пользователя или порежутся или включатся с предупреждением. Фактически, это Decentraleyes + NoScript.

А кто потом докажет, что функция для трекинга пользователя не нужна.

В NoScript уже сейчас можно включать/выключать JS по конкретным сайтам-источникам. Так и функцию трекинга: хочет пользователь - включит. В отличие от NoScript, скрипты из хранилища будут с нормальным описанием на каждый скрипт, а не «верю всему cdnjs»/«не верю всему cdnjs».

monk ★★★★★ ()

Тут рассказывают что зря велосипеды пилят, хотя есть уже существующие браузеры, можно отключить то, отключить это. Но там настолько всего много, что есть куча неочевидных вещей, например много вариантов слежения через CSS, кеш, а теперь и такое - https://www.opennet.ru/opennews/art.shtml?num=54727

MOPKOBKA ()
Ответ на: комментарий от wandrien

С HTML МОЖНО ДЕЛАТЬ ТОЧНО ТАК ЖЕ.

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

ugoday ★★★★★ ()
Ответ на: комментарий от wandrien

Lor мог бы быть и на gemini реализован. Так-то.

ugoday ★★★★★ ()
Ответ на: комментарий от wandrien

В целом современный веб настолько сложный, что браузер для него настолько сложный, что дыры в нём будут всегда. Потому что сложно.

ugoday ★★★★★ ()
Ответ на: комментарий от eternal_sorrow

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

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

autonomous ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.