LINUX.ORG.RU

Gemini-клиент Lagrange 1.2

 , , lagrange, ,

Gemini-клиент Lagrange 1.2

11

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 ()
Последнее исправление: commagray (всего исправлений: 6)

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

Что понимать под «лучше»?

Лучше архитектурно. Возможности ПО следуют из его архитектуры. Linux можно запустить «на калькуляторах», и это следствие.

KolibriOS GUI опенсорс и работает быстрее, чем Win98.

Бгг. «GUI»!

Мне так нравятся эти рассуждения со стороны от людей, которые не пишут код!

Не достаточно сделать соломенный макет самолёта. Даже если он выглядит почти как настоящий, он не полетит.

Гибче? Покажи как к Win прикрутить темы на CSS. В GTK3 есть.

У винды начиная, кажется, с версии WinXP есть движок тем, вынесенный в DLL. Альтернативные темы оформления см. в гугле. Мне не охота вспоминать, как эта часть винды правильно называется, чтобы нагуглить. Понятно, что раз движок сменный, то его можно заменить в том числе на движок с CSS.

До WinXP была еще такая WindowBlinds, которая меняла всё оформление целиком, включая окна и элементы управления. (Она и сейчас есть.) Как она работала до WinXP, я не знаю. Возможно, подменяла часть системных dll на свои врапперы или monkeypatch-ила их.

Насчёт CSS.

Самый прикол gtk в том, что к gtk2 движок на CSS при желании прикрутить можно.

А к gtk3 скомпилированные движки от gtk2 прикрутить нельзя.

То есть gtk3 стал менее модульным и при этом более тормозным, не оставляя пользователю на старом железе даже никакого fallback-а. Легковесность? Архитектура?

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

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

А gtk и весь стек гнома — ну ты понял.

Я многие годы надеялся, что опенсорс сможет DE сделать ЛУЧШЕ проприетарного решения. Но получается только хуже.

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

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

Мне так нравятся эти рассуждения со стороны от людей, которые не пишут код!

Чем тебе GUI от KolibriOS не GUI?

У винды начиная, кажется, с версии WinXP есть движок тем, вынесенный в DLL.

Там обычный ini-файл с установкой предопределённых параметров.

Понятно, что раз движок сменный, то его можно заменить в том числе на движок с CSS.

И это «лучше архитектурно»?

А к gtk3 скомпилированные движки от gtk2 прикрутить нельзя.

Ты же сам указал: можно сменить движок, подменив динамическую библиотеку.

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

Как же бедные разработчики его пишут.

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

Чем тебе GUI от KolibriOS не GUI?

Я наверное не смогу объяснить после разговоров о gemini. Точнее, ты меня не поймёшь. Для тебя всё ОК, если оно имитирует работающую штуку, и у разрабов нашлось несколько красивых заявлений.

Но KolibriOS/Menuet вообще всегда была фан-проектом, и цель там всегда была выжать максимум из ассемблерного байтоёбства. Там люди даже рендер векторных шрифтов прикручивали, кажется. На асме. Как арт это очень круто.

Без всякой политики и заявлений, что они «устали от», как авторы gemini — от веба. Этим она мне импонирует.

Там обычный ini-файл с установкой предопределённых параметров.

Лицорука.

Ты же сам указал: можно сменить движок, подменив динамическую библиотеку.

gtk3 целиком? Удачи! :D

Как же бедные разработчики его пишут.

По результатам понятно, как они его пишут. Вот так и пишут.

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

Для тебя всё ОК, если оно имитирует работающую штуку, и у разрабов нашлось несколько красивых заявлений.

Так вопрос в критериях. Вот есть, например, nuklear. GUI? Или тоже «имитирует работающую штуку»? Объективно там разве что к шрифтам (и юникоду) придраться можно.

Или nano – текстовый редактор или «имитирует работающую штуку»?

Но почему win98 для тебя GUI (хотя по сравнению с GTK поддержка юникода, настройки тем и т.д. там практически отсутствует)?

Можешь сформулировать единые критерии?

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

Лицорука

Я про файлы .theme, которые Windows понимает начиная с WinXP.

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

Вот только themeui.dll — это не поведение.

А libgtk-3.so — это поведение. Точнее, это вообще весь тулкит целиком со всем его поведением.

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

nuklear это immediate mode для всякой встройки.

А колибри - это куча костылей на асме.

Но почему win98 для тебя GUI (хотя по сравнению с GTK поддержка юникода, настройки тем и т.д. там практически отсутствует)?

Там вся винда целиком (драйвера, сетевые штуки и прикладуху не сичтаем) укладывается в несколько мегабайт. Это с ядром и гуём. Если бы она в таком конфиге еще и юникод поддерживала, это была бы магия, а не код.

Я говорил конкретно про сопряжение разных функциональных частей.

В винде это преимущественно COM. И он там работает на том уровне, какой могли сделать в то время. Проводник — модульный конструктор, который собирается из независимых частей в рантайме. Поэтому там можно добавить новые поля в табличный вид каталога, вкладки в диалоге «Свойства файла», или дополнительные кнопки на панель задач. Можно поставить программу, которая на лету считает полные размеры каталогов в проводнике. Попробуйте сделать такое в наутилусе или тунаре.

В линуксе долго ломали голову, потом придумали dbus. Правда, через него ничего толком никуда не интегрируется. На практике каждый код знает о каждом другом куске кода детали реализации и лезет туда напрямую. Сильная связность, дублирование функций, всё работает через кое-как.

А то, что работает, это просто фейспальм и позор. Они придумали запилить V8 в polkit, но не придумали показывать, какая программа требует повысить разрешения. Если у вас всплывает дефолтное окошко полкита, там написано сообщение от программы, но не указан процесс. Любая программа может запросить привелегии, а какая — хрен знает.

Но gksu при этом устарел из-за дыр в коде, ага.

На фоне традиционных утилит, которые предзназначены интегрироваться через sh, это чудовищный мрак. Unix-философия умерла? Ну может и умерла, вот только замены нет, и Linux так и живёт на её кладбище.

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

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

На фоне традиционных утилит, которые предзназначены интегрироваться через sh, это чудовищный мрак. Unix-философия умерла? Ну может и умерла, вот только замены нет, и Linux так и живёт на её кладбище.

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

Вот из таких рассуждений и рождаются gemini, musl и прочее.

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

Все же эти веб-революционеры хотят просто нахер ограничить и запретить

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

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

Поставить в один список gemini и musl это мда…

Так в musl также выкидывают сомнительные нововведения glibc. И тоже для ценителей: широкого распространения musl не получила.

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

А что было сложно сделать поддержку таблиц в gemini? Таблицы и иллюстрации не только физикам и химикам нужны, простым пользователям тоже нужны. А выделить какое-то слово в тексте курсовом или подчёркиванием. Ответ gemini таков: «мы это не умеем, оформляйте книгу и вставляйте ссылку». И это чтобы просто подчеркнуть слово курсивом. Зачем он тогда вообще нужен этот gemini? Просто чтобы давать ссылки на более функциональные документы получается? Только блоги и новости на нём делать можно? Так блоги можно и в Telegram вести и даже более-менее оформлять на Telegraph можно. И тоже без скриптов и других излишеств.

Да мне нравится идея легковесной замены вебу без скриптов, трекинга и ненужных раздутых стандартов. Второй взгляд никогда не помешает. Только очень уж он скудный. Можно было бы сказать формат молодой и будет развиваться, но в манифесте заявлено что он не расширяемый. Это стрелять себе в ногу.

в этом фрейме, например, Blender или fbreader запустить

Фрейм с gemtext это уже хоть что-то. Это действительно нужно. Вы слишком далеко зашли. Какой 3d-модели blender. Надо начать с немного. Для начала чтобы можно было делать embed только из картинки, svg, аудио или видео как в html. Этого было бы уже достаточно для большинства.

в пользу PDF

PDF та ещё жирнота и не так давно было проприетарщина. Делая сайт на легковесном и свободном gemini и при этом раздавать документы в этом заросшем формате, требующим для себя жирного ПО.

У разработчиков есть возможность создать и использовать новый формат разметки gemini, но они его делаете ещё более ограниченным, чем html при своём появлении. Gemini умеет только заголовки и ссылки.

Походу придётся делать gemini 2.0 только для того, чтобы чтобы он в формате мог принимать таблицы и выделение текста курсивом.

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

Зачем он тогда вообще нужен этот gemini? Просто чтобы давать ссылки на более функциональные документы получается? Только блоги и новости на нём делать можно?

Именно так. Раньше были BBS, Gopher, Fido. Теперь вот ещё Gemini.

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

Походу придётся делать gemini 2.0 только для того, чтобы чтобы он в формате мог принимать таблицы и выделение текста курсивом.

Не придётся. В исходном коде программ, например, ведь никто не требует выделение текста курсивом и поддержку таблиц.

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

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

Кто тебе сказал, что не?

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

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

За этим лучше сюда: Gemini-клиент Lagrange 1.2 (комментарий)

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

Кто тебе сказал, что не?

А где-то есть исходники с таблицами и курсивом в комментариях? Я такое только на Racket видел, но с указанием, что так лучше не делать, так как формат сохранения исходного кода тогда будет бинарный.

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

Хотя нет, ещё HolyC был. Тоже шедевр, в некотором смысле.

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

Ну мне время от времени реально не хватает возможности оформить таблицу в комментах. Мой редактор такое не умеет пока.

Уверен, что где-то в емаксе это наверняка есть.

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

Надо не забыть гениальный план. xD Будет время, займусь.

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

Уверен, что где-то в емаксе это наверняка есть.

Только псевдографикой: https://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Based-Tables.html

Так и в gemini можно.

А вот в HolyC в комментариях можно было и картинки и вроде даже анимацию: снимок.

А в Racket прямо в коде можно: снимок и таблицами из псевдографики даже программу можно писать: https://docs.racket-lang.org/2d/

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

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

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

Ах ты мой маленький жопочтец!

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

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

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

Этот клиент – да. А другие клиенты – нет. В протоколе Gemini не описаны картинки, поэтому ты не можешь расчитывать, все клиенты их умеют :D

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

В протоколе есть поддержка MIME.

Это все круто, только text/gemini не умеет инлайновых ссылок.

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

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

Вспоминается, как в советское время дети, впервые увидев нормальные книги, недоумевали: как это можно читать? ведь в этой толстенной книжке нет ни одной картинки!

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

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

Вся художественная литература прекрасно читается в pdf, epub, fb2, djvu, и даже txt. Gemini для этого не нужен.

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

Вспоминается, как в советское время дети, впервые увидев нормальные книги, недоумевали: как это можно читать? ведь в этой толстенной книжке нет ни одной картинки!

Ну… и чо?

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

Художественная литература будет читаться в Gemini максимально всрато из-за того, что там нет CSS. А без CSS ты не можешь ограничить ширину текста. Поэтому на моем 27 мониторе ширина текста уйдет за 300 знаков в строке. ОЧЕНЬ УДОБНО.

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

Как ты их вставишь в страницу?

Так и вставишь:

абзац текста

=> gemini://.... рис.1

ещё абзац

=> gemini://.... рис.2

Книжки читал, где иллюстрации на отдельных страницах были?

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

Книжки читал, где иллюстрации на отдельных страницах были?

То есть ты предлагаешь ходить по ссылкам за картинками на отдельные страницы? А потом обратно? ОЧЕНЬ УДОБНО И СОВСЕМ НЕ ТЕРЯЕТСЯ КОНТЕКСТ. Самое интересно конечно начнется когда тебе захочется сравнить две картинки.

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

На примере lagrange имеем пример как это может работать.

Но вообще запил своего лисапета вместо того же markdawn выглядит как NIH.

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

Самое интересно конечно начнется когда тебе захочется сравнить две картинки.

Хотя нет, самое интересное уже началось, потому что GEMINI вопреки всему опыту человечества не делает персистентных коннекшонов и при этом использует TCP.

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

На примере lagrange имеем пример как это может работать.

А это уже самодеятельность отдельного клиента. Отрисует ли он эту картинку и как именно целиком и полностью зависит от реализации.

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

А потом обратно? … Самое интересно конечно начнется когда тебе захочется сравнить две картинки.

Зачем обратно? В далёком 1973 году технари из Xerox придумали многооконный интерфейс.

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

Зачем обратно? В далёком 1973 году технари из Xerox придумали многооконный интерфейс.

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

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

А это уже самодеятельность отдельного клиента.

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

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

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

Ведь у нас не было подобного опыта, когда веб писался без нормальной стандартизации и мы постоянно чертыхаясь оказывались в вендорлоках то от MS, то от Oracle, то от Adobe. Так, пажжи…

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

То есть вместо простого и понятного механизма

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

получаем какую-то странную срань которая работает везде по-разному

Для HTML тоже бывают текстовые браузеры, бывают аудиобраузеры, и ещё куча вариаций.

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

Так сейчас у нас веб крутится вокруг хромого. Полнофункциональных альтернатив его пихлу примерно… полтора?

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

мы постоянно чертыхаясь оказывались в вендорлоках то от MS, то от Oracle, то от Adobe. Так, пажжи

Сложно получить вендорлок от программы в сотню строк.

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

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

Всем просто и понятно. Возможно с тобой что-то не так.

И выглядит обычно некрасиво. Особенно в HTML, который, в отличие от TeX, не понимает переносы.

Это ты сейчас пытаешься нас убедить или себя?

Для HTML тоже бывают текстовые браузеры, бывают аудиобраузеры, и ещё куча вариаций.

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

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

Так сейчас у нас веб крутится вокруг хромого. Полнофункциональных альтернатив его пихлу примерно… полтора?

Я знаю как минимум четыре полнофункциональных браузера.

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

Всем просто и понятно.

https://ibb.co/HqV5G3w

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

Текстовыми браузерами пользуется пара-тройка упертых задротов

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

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

Я знаю как минимум четыре полнофункциональных браузера.

Blink/Webkit, Gecko, …. что ещё?

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