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)

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

Может быть кому-то не нравится, что за ним следит браузер, следя сайты. Если вас это всё устраивает, я за вас очень рад.

Вы отвечали на вопрос:

Чтобы была возможность практически у любого желающего сесть и написать свой браузер для gemini://.

Зачем? Это такое особое хобби — писать браузеры?

Как ваш пост отвечает на этот вопрос?

Ваш браузер gemini за вами следит? Или что?

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

Может быть кому-то не нравится, что за ним следит браузер, следя сайты

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

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

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

Необходимость для этого прочитать и понять несколько десятков миллионов строк кода.

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

Потому что фишка - это возможность, а не ее отсутствие.

Иногда отсутствие возможности даёт новые возможности. Текстовый документ с отсутствием макросов позволяет исключить возможность получения вируса через них. Отсутствие присваивания в чистых языках программирования позволяет компилятору лучше оптимизировать алгоритмы.

Даже на ЛОРе намеренно сделано отсутствие возможности менять шрифт и вставлять изображение в сообщениях.

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

Необходимость для этого прочитать и понять несколько десятков миллионов строк кода.

Зачем?

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

А отключение JS автоматически отключит все остальные средства слежки от заголовков HTTP до печенек?

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

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

А еще отсуствие интернета и компьютеров в целом, не так ли?

Что тут у нас, решение технических проблем административным способом? Очень здорово. Это так не работает.

Отсутствие присваивания в чистых языках программирования позволяет компилятору лучше оптимизировать алгоритмы.

Но оно там есть, просто разовое, лол.

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

Затем, что где-то в этих миллионах строк кода может быть отправка телеметрии.

Ты уже прочел все миллионы строк ядра, я полагаю?

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

Что тут у нас, решение технических проблем административным способом? Очень здорово. Это так не работает.

Почему? Вот тебе прислали два файла из неизвестного источника. Один текстовый, второй для текстового процессора типа MS Word. Текстовый можно открывать безопасно, а второй по-хорошему надо открывать на изолированной машине, где нет ничего нужного, в контролируемом окружении.

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

Ты уже прочел все миллионы строк ядра, я полагаю?

При чём тут я? Я и браузером пользуюсь. Вот прямо сейчас.

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

Кто-то очень хотел написать браузер HTML

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

поэтому написал браузер для разметки markdown-подобия?

Я не помню что конкретно он написал, только библиотеку или ещё что-то, но написал, да.

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

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

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

В конечном счете, если ты разрабатывая программу, с использованием 3rd компонентов, сам себе буратино, что позволяешь рандомным подсистемам ходить в сеть без твоего присмотра, а не через единую точку, то земля тебе пухом, например.

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

Как ваш пост отвечает на этот вопрос?

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

Ваш браузер gemini за вами следит?

Нет, в этом и суть. Мне кажется вы начинаете приближаться к пониманию.

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

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

Нет. Достаточно отключить выполнение макросов для произвольных документов в твоем текстовом процессоре, представляешь? Не говоря о том, что по умолчанию поведение именно такое.

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

на первой странице можно найти оценку объёмов информации, которую надо изучить для создания браузера с нуля

Так это, как я понимаю, для создания браузера именно под современный раздутый веб? А если сознательно взять ограниченный HTML и ограниченный же CSS?

С другой стороны, если пользователь получает ссылку вида gemini:// то сразу понятно, что его там ждёт

Кстати, уже очень скоро в этой роли будет выступать ссылка вида http:// — жирнобраузеры кричат от этой ссылки «караул», а для неинтерактивных страниц без авторизации нужность шифрования, на мой взгляд, сомнительна.

Я вот открыл NetSurf-ом версии 3.10 свой сайт, потом ЛОР, потом википедию. На мой взгляд, кстати, очень даже неплохо, ещё год-полтора назад, кажется, у википедии ломалась вёрстка.

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

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

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

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

Речь про хромиум? Посмотрим как справятся ребята, когда гугл выкинет API для эффективной блокировки рекламы. Очевидно, нужен будет форк, кто его будет поддерживать… Вон ребята форкнули лису, их список изменений выглядит довольно жалко.

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

Ты сам-то понимаешь, что это за API, делая такие заявления? В каком «кольце» оно работает, и что, в случае если ты сам разрабатываешь свой браузер на основе хромиума, это тебя никак не касается, потому что этот уровень ты будешь программировать самостоятельно, и предоставлять нужные API тоже сам?

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

А вот этот комментарий отправлен непосредственно из NetSurf. :) Ну вот с комментированием чуть похуже, поле ввода разъехалось за пределы окна, текстовый курсор куда-то пропал. Кто тут виноват, NetSurf или ЛОР, сказать затрудняюсь. Да, улучшать тут есть чего.

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

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

Я вот открыл NetSurf-ом версии 3.10 свой сайт, потом ЛОР, потом википедию. На мой взгляд, кстати, очень даже неплохо, ещё год-полтора назад, кажется, у википедии ломалась вёрстка.

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

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

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

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

Хех. Я тоже как-то ЛОР пробовал использовать из netsurf, похоже не так уж много изменилось с тех пор, но хорошо, что эти изменения есть.

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

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

Такая задача не ставится.

Опять занимаетесь передергиваниями. И ради чего? Неужели самому не приятнее вести разговор прямо?

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

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

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

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

Такая задача не ставится.

Даже не знаю кому верить, вам или авторам netsurf:

Adhere to the standards There are many web standards. HTTP, HTML and CSS are just a few of them, and new specifications appearing all the time. The NetSurf team is devoted to implementing these standards.

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

Хм, что-то я не смог нагуглить такой стандарт. Значит ли это, что гегл уже начал применять ЕЕЕ? Если да, то это ещё один довод за сабж.

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

Значит ли это, что гегл уже начал применять ЕЕЕ?

слупок.жпг

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

Я говорил про историю с API хрома, той части что использовалась авторами расширений для блокировки рекламы. Если не ошибаюсь, последние новости говорили о 3й версии API. Со второй разработчики расширений как-то совладали, а вот для 3й версии уже не выйдет, автор uBlock Origin заявил, что оставит поддержку своего расширения для хрома, если последняя версия API останется единственной. Авторы других расширений для блокировки рекламы также писали о невозможности реализации всего своего функционала с новым API.

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

А я тебе написал, что если ты занимаешься разработкой своего браузера, этот слой API контролируешь лично ты, как и весь слой API для расширений и не зависишь от разработчиков хрома. Понимаешь или нет?

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

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

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

Не нужен никакой форк. Ты просто НЕ ИСПОЛЬЗУЕШЬ то, что тебе не нужно, и ИСПОЛЬЗУЕШЬ то, что тебе НУЖНО.

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

Ты же рассматриваешь разработку браузера на основе движка, словно это рюшечки у окна поменять. Нет. Это не так работает.

Чтобы тебе было понятнее - чтобы в ОС на базе ядра линукс заменить upstart, на systemd тебе внезапно не нужно форкать само ядро.

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

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

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

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

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

Ты просто НЕ ИСПОЛЬЗУЕШЬ то, что тебе не нужно, и ИСПОЛЬЗУЕШЬ то, что тебе НУЖНО.

Я уже в 3й раз пишу, что API, необходимое для расширений блокировки рекламы гугл объявил устаревшим, а значит в одном из релизов удалит. Что делать разработчикам условного вивальди или яндекс-браузера, чтобы сохранить возможность работы этих расширений?

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

А вот этот комментарий отправлен непосредственно из NetSurf. :) Ну вот с комментированием чуть похуже

NetSurf значится работает хуже Elinks в котором написан мой комент:( Что-то в консерватории неладно

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

Я тебе в третий раз отвечаю, что подсистема, отвечающая ха этот слой API полностью контролируется тобой и не имеет никакого отношения к разработке браузера. Ты можешь сам как выпилить вообще поддержку WebExtensions в своем браузере, так и расширить её. За ее поддержку отвечаешь ТЫ, а не разработчики хрома.

ОЧНИСЬ УЖЕ И ПОЙМИ ЧТО СЛОЙ API РАСШИРЕНИЙ БРАУЗЕРА ЭТО GLUE CODE НАПИСАННЫЙ ЧУТЬ МЕНЕЕ ЧЕМ ПОЛНОСТЬЮ НА JAVASCRIPT, РАБОТАЮЩИЙ В ПОВЕРХ ЯДРА БРАУЗЕРА, А НЕ САМ БРАУЗЕР.

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

Ну, я об этом и пишу, что нужное API придётся поддерживать разработчикам условных вивальди и яндекс-браузеров. Может, конечно, обойдутся не форком, а патчами. А может решат, что дешевле забить. Увидим.

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

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

Что за «придётся»?

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

Яндекс и Вивальди не будут того делать не потому что ПОДДЕРЖИВАТЬ ЭТОТ КОД ТЯЖЕЛО, а потому что это API вредит корпорациям, в том числе Яндексу и Вивальди. Им в целом глубоко насрать на твои потребности как пользователя и как разработчика, в ТОЙ ЖЕ мере, как разработчикам хрома.

Никто из разработчиков мейнстримных браузеров не вносят никакого функицонала по существу . Все только меняют рюшечки, потому что в этом и состоит их задача - создать коробочный БРЕНДОВЫЙ продукт, и получить возможность самим собирать твою телеметрию,от которой ты так яро хочешь избавиться.

Хочешь еще более страшную правду? Если ты запилишь свой словно правильный браузер без слежки, но захочешь, чтобы пользовался им не только ты, то в конечном счете, ты сделаешь там свою собственную слежку и свой собственный сбор телеметрии И будешь ходить всех убеждать, что эта-то телеметрия правильная, не то, что у злобных корпорастов, она нужна для дела, а не просто так. Но тебе никто не поверит.

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

Хочешь еще более страшную правду? Если ты запилишь свой словно правильный браузер без слежки, но захочешь, чтобы пользовался им не только ты, то в конечном счете, ты сделаешь там свою собственную слежку и свой собственный сбор телеметрии И будешь ходить всех убеждать, что эта-то телеметрия правильная, не то, что у злобных корпорастов, она нужна для дела, а не просто так. Но тебе никто не поверит.

+1

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

В той же мере, как systemd часть линукс.

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

Спасибо, капитан, за срыв покровов. Вообще изначально я примерно об этом и писал. Если вас стригерило слово «форк» то я выше написал, что может это будет и не форк, а патчи и не в условных вивальди и яндексе, а в каких-нибудь brave и ungoogled chromium. А может ничего не произойдёт и все расширения, полагающееся на упомянутое API выкинут на мороз. Как я и написал изначально, мне интересно посмотреть чем это закончится. Потому что (тут мы подходим к вашему сообщению, с которого началась эта подветка) это покажет захочет ли кто-нибудь взять открытый браузерный движок, чтобы сделать свой браузер и если захочет, то как долго продержится.

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

Все забывал написать. Если вдруг что, тебе ничто не мешает в целом, в свой собственный браузер, встроить перманентный блокировщик рекламы, с какой тебе вздумается функциональность, а не опираться на разработчиков расширений uBlock или AdBlock. Можешь там хоть небо, хоть Аллаха блокировать.

Ровно как и затащить себе в браузер обратно флэш, если вдруг ты по нему скучаешь, поддержку PPAPI, NAPI, NaCL, заменить встроенный видео-проигрыватель, на какой-нибудь mpv, и прикрутить embedded-просмотрщики каких-угодно форматов файлов. И вообще ЧТО УГОДНО ЕЩЕ.

Это о твоем беспокойстве наличия необходимых API.

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

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

И разбираться в миллионах строк кода для этого не надо. Надо разобраться в программных интерфейсах только тех компонент, которые тебе требуются. Если уж ты настолько параноишь, то разумеется, можешь напялить шапочку из фольги и отправится проводить их аудит, начиная прямо с какой-нибудь Skia (а то мало ли она на сервера гугла ходит в перерывах между складывания полигонов в в памяти). А можешь просто грамотно выстроить архитектуру (как в целом и должно делаться всегда), чтобы если у тебя вдруг библиотека юникода захотела лезть в сеть, ты это заметишь в подсистеме, отвечающей за походы в сеть, а не будешь сначала перечитывать кодов ICU, ICONV, OPENSSL, и всего остального.

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

Хорошо, тренируем ясность изложения мысли.

Я в курсе, что браузеры на основе хромиума есть. Также в курсе, что в большинстве своем они созданы чтобы собирать «правильную» телеметрию. Мне интересно посмотреть, как отреагирует в описанной мной ситуации сообщество на выбрасывание функциональности (понятно зачем) из хромиума. Как отреагируют авторы расширений и других репаков хромиума. Это отчасти покажет, есть ли смысл «писать свой браузер на основе открытого движка» или нет и судьба веба целиком в руках корпорации(й).

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

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

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

Как и со всем остальным.

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

Тысячи их. Каждый день пилятся.

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