Wybór narzędzia do komunikacji synchronicznej (chat)

Ustaliliśmy, że przydałoby się nam narzędzie do komunikacji asynchronicznej.

Kiedyś korzystaliśmy w tym celu z Telegrama, ale potem przenieśliśmy się na Riota z dwóch powodów:

  • rozdzielenie komunikacji Sealcode’owej od osobistej (część z nas korzysta z Telegrama do rozmów z bliskimi);
  • Telegram nie jest self-hosted i jego kod backendu nie jest otwarty. O ile ma zdrowy ekosystem aplikacji klienckich i każdy jego oficjalny klient jest open-source, o tyle backend jest ściśle zamknięty i tak pewnie pozostanie. Powoduje to pewne tarcie ideologiczne.

Note: (Rozdzielenie komunikacji sealcode’owej od osobistej moim zdaniem można osiągnąć odpowiednio konfigurując ustawienia powiadomień, a fakt, że Telegram nie ma otwartego backendu wciąż mi przeszkadza, chociaż nie tak bardzo jak kiedyś.)

Przenieśliśmy się więc na Riot. Riot jest oparty o w pełni otwarty i zdecentralizowany system Matrix. Założyliśmy konto na jego publicznej instancji, nie trzymaliśmy go na naszym serwerze.

Riot działał bardzo wolno. Wiadomości na urządzenia mobilne dochodziły z bardzo dużym opóźnieniem, co sprawiło, że Riot nie miał u nas opinii narzędzia komunikacji, na którym można polegać. Podejrzanym sprawcą opóźnień działania Riota jest fakt, że korzystaliśmy z publicznej instancji - być może jak trzymalibyśmy go na własnym serwerze to działał by istotnie lepiej - ale ta hipoteza nie została jeszcze sprawdzona.

Potem nastąpił #ChatlessApril, w którym zdecydowaliśmy się spróbować nie korzystać wcale z czatu i całą komunikację przerzucić na Forum.

W moim przekonaniu bardzo dużo było zmian w #ChatlessApril na plus - w dużej ilości wątków mogło wziąć więcej osób, niż gdyby dana rozmowa toczyła się na czacie synchronicznym, w którym jak przegapimy dyskusję to już ciężko się w niej udzielić. Niemniej jednak przy sytuacjach “Hej, spóźnię się”, albo “Idziemy do GW na obiad, jak ktoś chce dołączyć to zapraszamy tam” potrzeba komunikacji synchronicznej dawała się we znaki.


Anyways, tyle z historii. Czas pomyśleć o przyszłości! Wykonałem zestawienie dostępnych opcji:

aplikacja darmowy hosting Self-hosting możliwy Aplikacja desktopowa (poza wersją www) Natywna aplikacja desktopowa (nie jest wrapperem na stronę) aplikacja na androida natywna aplikacja na androida apka mobilna fdroid apka na ios integracja z Forum Linkifikacja rzeczy z Sealhuba rozmowy audio/video dodatkowe funkcjonalności całkowicie open-source
Zulip :white_check_mark: :white_check_mark: :white_check_mark: :x: :white_check_mark: :white_check_mark: :x: :white_check_mark: :white_check_mark: :white_check_mark: :x: podział konwersacji na wątki, oznaczanie jako przeczytane :white_check_mark:
Telegram :white_check_mark: :x: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :x: :x: Działa bardzo bardzo szybko :x:
Mattermost :white_check_mark: :white_check_mark: :white_check_mark: :x: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :x: :x: :white_check_mark:
Riot :white_check_mark: :white_check_mark: :white_check_mark: :x: :white_check_mark: :x: :white_check_mark: :white_check_mark: :white_check_mark: :x: :x: wersja publiczna działa wolno :white_check_mark:
Rocket.chat :x: :white_check_mark: :white_check_mark: :x: :white_check_mark: :white_check_mark: :x: :white_check_mark: :x: :x: :x: opcja widgetu chat na stronę :white_check_mark:
Let’s chat :x: :white_check_mark: :x: :x: :x: :x: :x: :x: :x: :x: :x: kierowane do małych zespołów :white_check_mark:
Nextcloud Talk :x: :white_check_mark: :x: :x: :x: :x: :white_check_mark: :white_check_mark: :x: :x: :white_check_mark: Towarzyszy aplikacji którą I tak planowaliśmy instalować - :white_check_mark:

Myślę, że nadam konkretnym atrybutom różne wagi i zobaczymy, jak te opcje plasują się w rankingu

EDIT: Ustaliłem jakieś wagi:

cecha waga
darmowy hosting 1
Self-hosting możliwy 8
Aplikacja desktopowa (poza wersją www) 2
Natywna aplikacja desktopowa (nie jest wrapperem na stronę) 3
aplikacja na androida 10
natywna aplikacja na androida 10
apka mobilna fdroid 4
apka na ios 7
integracja z Forum 5
Linkifikacja rzeczy z Sealhuba 7
rozmowy audio/video 6
całkowicie open-source 4

Wiem, że wagi mogą się wydawać wybrane trochę z czapy, na swoją obronę powiem, że po ich wybraniu wynik mnie zaskoczył :wink: Zachęcam też do polemiki na temat tego, które z cech mają dla nas jaki priorytet.

Ranking wygląda następująco:

ranking apka suma punktów
1 Zulip 54
2 Mattermost 51
3 Telegram 42
4 Rocket.chat 41
5 Riot 41
6 Nextcloud Talk 29
7 Let’s chat 12

O ile być może nie wskazuje to jednoznacznie na zwycięzcę, to myślę, że porządkuję nam kolejność, w jakiej możemy próbować nowych rozwiązań :slight_smile:

Arkusz z obliczeniami: porownanie-chatow.ods (13,0 KB)

EDIT: Odjąłem punkty dla NextCloud Talk, bo jego aplikacja mobilna nie wspiera chatu pisanego, tylko audio/video. Piszą, że w przyszłości będą wspierać ten ficzer, ale to dopiero melodia przyszłości.

EDIT2: Dodałem punkty za możliwość self-hostowania. Nie wiem, dlaczego oryginalnie dałem im wagę “0”. Ustawiłem też wagę dla “Darmowy hosting” na “1” (było 0), gdyż jest to przydatna rzecz - możemy sprawdzić, jak to działa bez dręczenia się z ustawianiem wszystkiego na serwerze.

TLDR: W najbliższym czasie próbujemy Zulipa :wink:

A jakie właściwie są wymagania dla tego chatu?
Bo narzuciła mi się oczywiście od razu odpowiedź: IRC. Wszystkie wymienione w tabelce cechy ma, więc dostaje maksymalną liczbę punktów. Do tego ma wiele zalet, których nie mają projekty tworzone przez millenialsów. :wink:
<dinosaur mode=“off”>

2 Likes

W moim odczuciu trudno jest korzystac IRC na wielu urzadzeniach jednoczesnie (np telefon i komputer). Do tego na IRC jak ktos pisze a ja jestem offline to przegapiam te wiadomosc, prawda? Popraw mnie jezeli sie myle, widzialem ze wyszlo IRC3, moze cos sie zmienilo?

Jeśli się chce być zalogowanym jednocześnie z kilku urządzeń i widocznym dla innych użytkowników jako jeden nick, to trzeba sobie to załatwić przez jakieś proxy; wiem, że takie rzeczy ludzie robili - ja nie miałem nigdy potrzeby.
Sam protokół IRC nie dostarcza wiadomości zaległych, ale można albo kanały logować, albo użyć różnego rodzaju IRC services zawierających boty, które po zalogowaniu użytkownika usłużnie powtórzą mu co się na kanale działo jak go nie było. O ile wiem, IRC3 nie implementuje niczego takiego natywnie, tylko ułatwia tworzenie takich botów. Ale szczerze powiedziawszy, o IRC3 to wiem niewiele.

Swego czasu korzystałem z Centravi, które komercyjnie udostępniało gotową instancję ZNC + IRC, gdzie było wsparcie dla przechowywania wiadomości. Rozważając podobne rozwiązanie proponuje nie stawiać na naszym serwerze IRC tylko sam ZNC dla osób, które potrzebują historii. Proxy ZNC należałoby wtedy udostępnić zarejestrowanym osobom i ograniczyć do sieci IRC, z których zdecydowalibyśmy się korzystać, np.: OFTC gdzie znajduje się trochę otwartych projektów.

ZNC wspiera tą funkcję

Podoba mi się pomysł z ZNC! Zwłaszcza fakt, że udostępniają moduł imapauth, dzięki któremu można się logować swoim mailem i hasłem z konta sealcode’owego :smiley:

@Jakski Jak ciężko jest coś takiego postawić? Dlaczego proponujesz nie stawiać IRC na naszym serwerze?

Nigdy nie stawiałem ZNC, ale patrząc na ich wiki, zadanie wygląda na ~3 godziny żeby zrozumieć dokumentacje i to bezpiecznie skonfigurować razem z IMAP.

Z powodu niższych kosztów utrzymania i dołączenia do już istniejącej społeczności typu Freenode albo OFTC zamiast tworzenia własnej. Niektórym użytkownikom może się nie chcieć dodawać do swojego klienta IRC konfiguracji nowego serwera tylko po to żeby pogadać z deweloperami z Sealcode, a jak będziemy np. na Freenode to większość potencjalnych rozmówców będzie od nas dzieliła tylko komenda /join #sealcode :slight_smile:

BTW: W którejś sieci zarejestrowałem dla nas kiedyś kanał #sealcode, ale nie pamiętam już, w której(możliwe, że został usunięty z powodu braku aktywności) :smiley:

Freenode wydaje mi się znacznie popularniejszą opcją. Czy są jakieś przeciwwskazania abyśmy tam postawili swój kanał?

Prywatność, a raczej brak jej - serwer IRC z założenia wszystko słyszy. Wprawdzie można kombinować na IRC z end-to-end encryption, ale to jest dodatkowa bariera do przeskoczenia.

Myślę, że na IRC nie będziemy poruszać kwestii poufnych, tylko publiczne, więc na szczęście nas ten problem nie dotyczy :wink:

1 Like

Napisałem do ludzi od Freenode - czekam na akceptację naszego pokoju. W międzyczasie postawię nam tymczasowy serwer IRC na OVH

Status update: udało mi się postawić relay IRC. Teraz tylko zdaję sobie sprawę, że brakuje dobrych apek IRC na Androida…

Kolejny status update: znalazłem dobrą aplikację mobilną do IRC na Androida. Niestety ma jeden kluczowy problem: jeżeli jesteś offline, przegapiasz wiadomości. Po ponownym podłączeniu nie dostajesz o nich informacji.

Dodatkowo, nie jest możliwe korzystanie z IRC na ios tak, aby otrzymywać powiadomienia.

Moim ostatnim podejściem do IRC będzie postawienie relaya Telegram <–> IRC tak, aby każdy miał wybór jak chce korzystać. Jeżeli to nie pójdzie, to porzucam temat IRC.

Podjąłem decyzję i wdrożyłem IRC+Telegram. Opis setupu tutaj: