IRC technology news from the first half of 2024
ilmarilauhakangas.fi
ilmarilauhakangas.fi
nwi]
s/nwi]/no way i won't use "s//" to correct stuff ever again T.T
Separate question: is it encrypted?
The following is a controversial opinion, but i like that it is ephemeral. You are either online or you dont see it and dont have to worry (yes i know what a bouncer is and that most other people use that)
Most clients store the history locally in plain text files, which makes them easy and fast to search in with grep.
> is it encrypted?
The short answer is no. Many clients support E2EE using an OTR (https://otr.cypherpunks.ca/) plugin but it's not very user-friendly and your recipient is unlikely to have such a plugin already installed
- Matrix gives you persistent sessions (which sometimes seem like a concept despised by IRC proponents), meaning you won't miss messages even if your connection to the server gets disconnected for short or longer durations
- ..therefore alert sending clients are easy to implement without keeping an open connection to the server, so e.g. just a curl invocation from your favorite network monitoring system
- Side note: it seems IRC is unique in the way how people get offended if your network connectivity is poor, possibly resulting in a ban..
- You can connect these sessions from multiple devices at the same time, so I can see the same messages in PC and mobile devices, without using an additional host between Matrix server and my terminal, running screen/tmux/bouncer/etc.
- Channels (called rooms) can be configured to show past messages to new people. For some channels this is quite handy, because newcomers can see the vibes immediately after joining (traffic/no traffic/style of communication?) and participate faster. In addition, they are able to search such messages (though the search is not very featureful).
- Messages are not limited to 512 octets and there is no need for clients to come up with ad-hoc continuation messages. Instead, they are 64KiB JSON that can be easily extended for other applications, such as https://github.com/eras/mxrxtx .
- Because server communication is based on HTTP, it is easy to see in the protocol which message is in response to which request, unlike in IRC
- One can share media without uploading it first to another service
- Matrix has the modern communication tools like utf-8-per-spec, reactions, threads, replies, mentions, edits, redacts, writing status, email notifications, voice/video chat, opt-in phone number/email based people discovery—though some of these are also considered anti-features by some. Some more rare features: per-channel nicks, html subset messages (useful for tables, bot messages and pasting HTML-colorized fragments from supporting terminals)
- Matrix has end-to-end encryption available and enabled by default
- Mobile clients benefit from push notifications with better battery longetivity
- Like IRC, Matrix servers form a network; unlike IRC, anyone can just setup a server and connect to the network without arranging connectivity first with someone they know, with possibly quite tight criteria for getting the server accepted. This is quite like email.
- This is possible because the servers don't need to trust each other, via a mechanism called state resolution. So if a server doesn't have required permissions in a room (via a participating user) to e.g. change user permissions or kick a user, then it cannot (whereas, as I understand it, ircops have power beyond their IRC server)
- The communication graph (full mesh) is formed automatically per channel between participating Matrix servers, instead one per-network single-rooted tree with multiple points of failure (granted I understand IRC servers can be manually configured to overcome these failures with minimal disruptions). In Matrix each server participating in a room maintains a copy of the room contents.
- Matrix uses a novel distributed graph database for ensuring messages sent during server disconnects will eventually* reach all the participants
Not all of these features are the best they could be, though :), but I thought of not digging into them as I was just comparing to IRC.
Some of these points may have been improved by IRCv3, or are going to, I haven't followed a lot.. At least I recall it should/will have message tagging to address the problem of protocol-level request-response matching.
I like IRC for the culture, mostly. The way people use chat products seem to be pretty shaped by very small product decisions nobody probably thought much about when they were made (e.g. default notification settings), plus whoever happened to be early adopters. But of course, it's never going to have a resurgence.
The real competitor is slack & discord.
The internet needs a light weight chat protocol.
On another security issue: I owned an EFnet server at the time, so I modified my HOSTS file to be able to go online as president@whitehouse.gov
For those of us who still like IRC despite how the UX remains somewhat dated, this is the dream.
I agree, but the IRCv3 spec rectifies most of this by implementing chat history and some other niceties, while modern ircds such as Ergo implement server-side bouncer functionality so that you can have multiple clients connected.
It's not there yet, which is why I used the term "dream".
Slack and discord are very attention grabbing. I want to be logged into my chat client while still being able to get work done. The dated ux serves to not steal my attention.
As for encryption, I use OMEMO with XMPP for private conversations, but I use IRC for public forum conversations, so TLS is enough for me. Think Hacker News, but in real-time.