[О блоге] [наверх] [пред] [2021-07-17 10:10:58+03:00] [b34c369b5ce18f0c92dd56270201bca19ea8f262]

FSF и GNU на IRC

https://www.fsf.org/news/fsf-and-gnu-move-official-irc-channels-to-libera-chat-network
Явно написали что они рассмотрели и Matrix и XMPP, но не могут
использовать первый, так как большинство пользователей будет
использовать Web-версию, которая требует несвободный JS-код.
Про XMPP деталей нет, но наверное это его прожорливость?
Вот и я независимо от них тоже пришёл к выводу что пока лучше
IRC для IM, тем более группового ещё ничего не придумали.
Как минимум не реализовали.

    [оставить комментарий]
    комментарий 0:
    From: kmeaw
    Date: 2021-07-18 08:42:50Z
    
    Пока не могу найти альтернативу XMPP. Мне интересны следующие свойства:
    
    * федеративность - если меня не устраивают условия использования
    сервера, то я могу поменять его или поднять свой, и при этом не потерять
    возможность связываться со своими контактами;
    
    * end-to-end encryption - чтобы работало в том числе с групповыми чатами;
    
    * offline-сообщения - я не могу быть онлайн круглосуточно;
    
    * хранение истории на стороне сервера - все мои устройства не могут быть
    online круглосуточно, мне нужен источник прошлых сообщений (пусть даже
    за пару недель) для синхронизации истории, когда моё устроство было
    offline;
    
    * простой способ обмена файлами - когда оба пользователя находятся за
    NAT или используют разные версии IP, я хочу иметь возможность загрузить
    файл на HTTP-сервер (желательно с использованием end-to-end шифрования);
    
    * клиенты под *nix, Windows, Android, iPhone - чтобы было, с кем
    общаться.
    
    Насколько я знаю, ни IRC, ни Matrix одновременно этими свойствами не
    обладают. Может быть есть ещё какая-нибудь IM-система, лучше подходящая
    под такие требования?
    
    комментарий 1:
    From: Sergey Matveev
    Date: 2021-07-18 09:43:58Z
    
    *** kmeaw [2021-07-18 11:39]:
    >* федеративность
    
    IRC этого не даёт, конечно же. В XMPP я подключаюсь клиентом к своему
    серверу который прозрачно для меня связывается с окружающими. Но! Если
    IRC контактом считать URL вида irc://whatever.server:1234/somebody, то
    тогда в IRC-клиенте просто появится ещё одно подключение к ещё одному
    серверу. Каждый может сидеть на своём сервере, либо хоть все на Freenode
    (или Libera.Chat, насколько понимаю тенденции). Из одной точки (клиент)
    общаюсь со всеми. Разница, как мне видится, только в том, что состояние
    контактов хранится на сервере в XMPP, а в IRC это в каждом клиенте нужно
    прописывать все эти irc://whatever.server:1234/somebody connection-ы.
    
    >то я могу поменять его или поднять свой, и при этом не потерять
    >возможность связываться со своими контактами;
    
    Но JID же поменяется? Разве не нужно будет новым контактам сообщать
    новый адрес для связи?
    
    >* end-to-end encryption - чтобы работало в том числе с групповыми чатами;
    
    Ну для точка-точка всегда можно использовать OTR -- это не обязательно
    должно быть неотъемлемой частью протокола/экосистемы (ну разве что
    вопрос эффективности). А групповое шифрование (OMEMO?) я во всех
    клиентах XMPP что использовал -- не встречал.
    
    Это же самая главная проблема XMPP: много XEP-ов, но вопрос кто их будет
    поддерживать среди используемых клиентов и серверов.
    
    >* offline-сообщения - я не могу быть онлайн круглосуточно;
    >* хранение истории на стороне сервера
    
    Когда я игрался с Oragono IRC сервером, то в нём это всё встроено в сам
    сервер. Встроенный bouncer. То есть, эти фичи могут быть и в IRC, хотя
    бы в виде бота. Ведь и в XMPP сервер тоже нужно настраивать чтобы он
    хранил историю (как минимум, в Prosody.im, который использовал).
    
    >* простой способ обмена файлами
    
    Вот этого в XMPP точно нет гарантированно из коробки.
    http://jabberworld.info/%D0%9F%D0%B5%D1%80%D0%B5%D0%B4%D0%B0%D1%87%D0%B0_%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2
    Я точно помню что передать файл было очень большой проблемой, ибо один
    клиент поддерживает один способ, а другой может совершенно сторонний.
    Надёжнее (и эффективнее, чтобы внутри XML-ей не гонять бинари)
    оставалось только заливать файл на сторонний сервер и отправлять URL.
    Точно так же как это было бы с IRC. Хотя в IRC возможны CTCP сессии с
    эффективной (не поверх XML) передачей файлов, но, как всегда, вопросы
    связанности клиентов между собой.
    
    >* клиенты под *nix, Windows, Android, iPhone - чтобы было, с кем
    >общаться.
    
    Я помню что меня убеждали в отсутствии нормальных IRC клиентов под
    macOS. Я, правда, не знаю что подразумевалось под нормальным, но типа
    как будто оно почти всё неюзабельное. Просто уж написать IRC клиент это
    самое плёвое дело из-за его простоты, но, судя по всему, этого никто не
    делает. Поэтому выбор клиента напрямую зависит от того кто готов будет
    заплатить за разработку софта -- а тут соревноваться с Telegram/WhatsApp
    никто не сможет: их клиенты всегда будут лучше.
    
    >Насколько я знаю, ни IRC, ни Matrix одновременно этими свойствами не
    >обладают. Может быть есть ещё какая-нибудь IM-система, лучше подходящая
    >под такие требования?
    
    XMPP тоже с высокой долей вероятности не будет иметь всё названное
    (шифрование групповое и передача файлов, как минимум) -- всё зависит от
    клиента/сервера используемого. Мне очень нравился MCabber. Юзал
    несколько лет Bitlbee. Сейчас, если бы надо было залогиниться во всё ещё
    существующие учётные записи XMPP, то поставил бы github.com/agl/xmpp-client.
    Но все они не имеют OMEMO, а файлы уже не помню кто мог бы передавать из них.
    А история (в том числе offline) сообщений, и в XMPP зависит от настроек
    сервера.
    
    У Matrix всё ужасно с софтом -- я в итоге вроде так и не смог ни разу
    никогда подключиться к их федеративной сети, с установкой собственного
    сервера. Использовать GUI/Web для меня не вариант.
    
    А вообще мне нравился PSYC чисто технически, с которым у меня даже было
    несколько контактов зарубежных, работающая с другими серверами федерация
    и вполне себе юзабельные клиенты.
    https://psyc.eu/intro.en.html
    https://about.psyc.eu/PSYC
    https://about.psyc.eu/Jabber
    Но это конечно же можно считать умершим уже.
    
    комментарий 2:
    From: kmeaw
    Date: 2021-07-18 13:06:32Z
    
    > Разница, как мне видится, только в том, что состояние контактов
    > хранится на сервере в XMPP, а в IRC это в каждом клиенте нужно
    > прописывать все эти irc://whatever.server:1234/somebody connection-ы.
    
    Ещё разница в том, что мне придётся зарегистрироваться на
    whatever.server:1234 и поддерживать несколько identities. Если со мной
    захочет связаться человек, который ранее этого не делал, то куда он
    будет мне писать?
    
    > Но JID же поменяется? Разве не нужно будет новым контактам сообщать
    > новый адрес для связи?
    
    Да, конечно поменяется. Но мне не придётся снова уговаривать всех
    установить ещё одно приложение. У всех собеседников уже есть
    XMPP-клиент.
    
    > То есть, эти фичи могут быть и в IRC, хотя бы в виде бота.
    
    А есть какой-нибудь стандарт для получения истории, который бы
    поддерживался несколькими разными IRC-клиентами?
    
    > Вот этого в XMPP точно нет гарантированно из коробки.
    > http://jabberworld.info/%D0%9F%D0%B5%D1%80%D0%B5%D0%B4%D0%B0%D1%87%D0%B0_%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2
    
    Есть, как раз по этой ссылке это называется httpUpload.
    
    Во многих клиентах есть поддержка XEP-0363, поэтому достаточно выбрать
    сервер с поддержкой этого XEP, а пользователю останется лишь нажать на
    кнопку attach.
    
    > XMPP тоже с высокой долей вероятности не будет иметь всё названное
    
    Я сейчас использую Conversations для Android и Gajim для GNU/Linux. Все
    упомянутые мной фичи там есть, и в целом меня всё устраивает.
    
    Слышал про Delta Chat, он использует e-mail в качестве транспорта, но
    так и не пробовал его использовать.
    
    комментарий 3:
    From: Sergey Matveev
    Date: 2021-07-18 13:36:44Z
    
    *** kmeaw [2021-07-18 16:02]:
    >Ещё разница в том, что мне придётся зарегистрироваться на
    >whatever.server:1234 и поддерживать несколько identities. Если со мной
    >захочет связаться человек, который ранее этого не делал, то куда он
    >будет мне писать?
    
    Блин, действительно. Это я ступил.
    Ну что ж, с федерацией в IRC никак, в общем :-)
    
    >Да, конечно поменяется. Но мне не придётся снова уговаривать всех
    >установить ещё одно приложение. У всех собеседников уже есть
    >XMPP-клиент.
    
    А, в этом плане (смене протокола/клиента). Это да.
    
    >А есть какой-нибудь стандарт для получения истории, который бы
    >поддерживался несколькими разными IRC-клиентами?
    
    В IRCv3 https://ircv3.net/irc/ есть chathistory. Серверы реализующие его
    точно есть. Клиенты, судя по https://ircv3.net/software/clients.html ещё
    не готовы :-). Лично я не пробовал IRCv3 фичи вообще (я вообще IM то не
    использую, кроме как на работе -- все в WhatsApp-ах и Telegram-ах).
    
    >Во многих клиентах есть поддержка XEP-0363
    
    Но ни в одном которые я когда-либо использовал :-(
    Самый навороченный (из тех кого я использовал) MCabber не имеет:
    https://wiki.mcabber.com/
    
    >сервер с поддержкой этого XEP
    
    Как и Prosody я ни разу не использовал с поддержкой httpUpload. Но это
    было лет десять назад. Вот просто и выходит что в природе то оно
    существует, но вот мой выбор софта почему-то никаких таких возможностей
    не давал. Я ж не специально выбираю такой софт.
    
    >Я сейчас использую Conversations для Android и Gajim для GNU/Linux. Все
    >упомянутые мной фичи там есть, и в целом меня всё устраивает.
    
    Верю, верю что всё это есть. Как и супер-навороченный клиент Jabber на
    Tk Tkabber вроде всё на свете умел. Но *лично* для меня это всё не
    вариант: ну не буду я сидеть в GUI, спасибо, но нет, ничто не
    компенсирует отсутствие терминала.
    
    >Слышал про Delta Chat, он использует e-mail в качестве транспорта, но
    >так и не пробовал его использовать.
    
    Тоже слышал про такой. Ну, как минимум, тот факт что можно
    заиспользовать уже существующую федеративную систему мне нравится.
    
    Но в целом я согласен что XMPP экосистема всё равно даёт гораздо больше
    выбора и возможностей. Где-то она избыточна (на работе, в пределах одной
    компании, точно IRC был бы достаточен), а так действительно альтернатив
    не вижу. Да и даже серверы типа Prosody.im я могу отнести к довольно
    минималистичным.
    
    комментарий 4:
    From: Sergey Matveev
    Date: 2021-07-20 15:51:43Z
    
    А вообще конечно нужно просто взять и добавить OMEMO и httpUpload в тот же
    github.com/agl/xmpp-client. Не настолько это сложные задачи, тем более на Go.