Modern IRC Client Protocol
modern.ircdocs.horse
modern.ircdocs.horse
Also, can we please stop using the word "modern" in everything? It's essentially meaningless. At least the name of the page doesn't have it.
Example: I have a book titled "Modern Welding" on my bookshelf (or, as others have called it, "Modem Welding", which partly explains why it's there...), whose copyright date is 1965.
IRC has changed a lot over the years, and this is an attempt to document the subset of the protocol that is currently being used in most implementations (hence the "modern" title).
MSNP8 is when all the terrible MSNSLP (MSN SLP-Like Protocol) stuff began, with the binary packets. Spent a couple months figuring out the content of those packets... And while avatars were part of the protocol at this point, custom content was no longer as viable. I can understand some of the reasons they wanted to change it, but in the end, I think they ruined a decent (if imperfect) protocol.
Though it would have been nice if there was an actual text encoding specification. Right now, various networks, especially in Asia, have all kinds of funny encodings going on. Meanwhile in US and European contexts, UTF-8 isn't standardized, so you have to expect other encodings as well.
I am using a text-based browser and so I do not use the upvote/downvote javascript. Consider this comment an upvote.
The increasingly pervasive attachment of the word "modern" to software descriptions in recent years is confounding. I thought maybe it was annoying only me but apparently not.
Sometimes I have thought it could be a manifestation of cognitive dissonance arising from the realization that in software, in most cases, "there is nothing new under the sun".
Honestly I do not understand where it comes from or what it means. Is it some sort of marketing buzzword?
I haven't tried, but looking at this page source it looks to me that vote arrows are divs wrapped in anchors pointing to up- and down vote URLs. They should definitely be usable without JS; maybe the problem is that the empty divs are not visible in your text browser?
I could convert these anchors into visible URLs and they should work. Nevertheless I will not be doing that.
When I mentioned JS I was thinking of the presence of the onclick attribute and the vote() function as seen below.
<a id='up_15739117' onclick='return vote(event, this, "up")' href='vote?id=15739117&how=up&auth=&goto=reply%3Fgoto%3Dedit%3Fid%3D15738201%2315739117%26id%3D15739117#15739117'>
If anyone's interested in contributing or asking questions, just reach out!
This[1] XKCD ;-)
See, è.g., https://wiki.bitlbee.org/HowtoHipchat
Didn't exactly work out, now that a fair number of devs are using it as a legit protocol reference. Still, gives the site some decent character and makes it memorable :P
There's been a number of E2E encryption methods proposed in the past such as SSL/TLS DCC (which doesn't do certificate verification from what I've seen, so that's not too useful here), FiSH and OTR are already used decently out there but I'm not aware of any widely-available, simple-to-implement specification for clients to look at. There's another interesting proposal here, but it hasn't gained traction as of yet: http://blog.bjrn.se/2009/01/proposal-for-better-irc-encrypti...
Quoting from https://modern.ircdocs.horse/
This document intends to be a useful overview and reference of the IRC client protocol as it is implemented today.Thanks for the link to matrix.org though.
matrix/riot is indeed a good attempt but if you are going to modernize it, it makes sense to use a modern stack to keep up with the times.
[1] https://github.com/matrix-org/dendrite
[2] https://github.com/ruma/ruma
[3] https://github.com/bismark/matrex
[4] https://matrix.org/docs/projects/try-matrix-now.html#servers
End to end encryption and chat room backlog would be nice. DCC and CTCP need to go away. A simpler protocol that does more with less would in my opinion be optimal.
edit: With regards to encryption and backlog, they're being worked on in the IRCv3 WG, worth checking out if you're interested in changing the protocol for the better: http://ircv3.net
For sure, simplicity is better than complexity. A fair amount of the v3 work aims to simplify things that are already done in a bunch of vendor-specific ways and bring them all under one clean, well-specified roof. Always happy for extra help there :)
We've picked the irc "/" idea for commands as a way to communicate between processes.
For example, we have /say and /listen commands.
I started a document to describe that this afternoon (very early wip - only to make an idea)
And, yes! IRC is still alive and some networks (like freenode) are even growing.
FYI we are on irc.rizon.net #eva
And also, https://en.wikipedia.org/wiki/IRCd#/media/File:IRCd_software...