Ergo – modern IRC server written in Go
github.com
github.com
Two of the most major changes:
1. First-class mobile-friendly websocket support.
2. Server can store messages to catch you up when you return
Personally I feel Matrix is the right way forward for most use cases but Matrix will continue to bridge to IRC so you have options. IRC remains a much easier to implement protocol and much easier to deploy for standalone environments where federation is not needed.
There is a reason most infra teams at FAANG companies keep IRC servers around as a fallback for when their complex proprietary solutions fail.
For large group chats IRC is still king.
EDIT:
There's pretty much one useful server last time I checked and it's too bloated to host in most places and it looks to me like this might be at least partly due to the way federation works. One of the main organizations funding Matrix is that one company in Israel that was contracted to do all the phone surveillance in the US. I haven't really been impressed with the protocol itself either.
In short, I don't think Matrix will "mature" since it's problems are deeper than just technical/implementation. XMPP already is mature and there are good clients and servers for nearly every platform.
IMO: The only reason Matrix is more popular than XMPP right now is just PR.
I also prefer irc, but been waiting for Matrix to mature so good to know where they are at.
Also worth noting, there are also issues regarding the fast evolving protocol. Room protocol versions keep increasing and if some server doesn't have the very latest version it may be unable to federate with a more modern room, from what i understand. (please correct me if i got this wrong)
Finally, some pseudonymous persons are really unhappy that as a consequence of decentralized rooms, your public matrix address is leaked to any server federated with a room you joined. Under IRC, addresses are local to a server (not federated) so this concern does not apply, while on XMPP only the servers/services you explicitly connect to know of your JID.
In the meantime, IRC and XMPP provide useful services with 1-10% of those resources, despite most clients being less polished. For example, jabberfr.org uses only a few gigs of RAM for hundreds of clients and over a thousand of server-to-server connections. Not all features may be available on all clients/servers, but "graceful degradation" is definitely there so noone is left out.
To be clear, decentralized room is an amazing concept, and it's really cool the Matrix team has full-time employees to evolve things that quickly. It's just too bad historical standards were left out (decentralized rooms could have been a XMPP extension), and Matrix focuses (though this focus is changing) on high-end clients/servers.
Also, how's your database RAM/disk usage? From what i understand conduit.rs is very optimized but still relies on a huge DB for matrix to operate its magic.
Bold interpretation of the word 'good' regarding the clients.
I'd just put Mattermost and be done with chat problems.
I don't see how people need to stick with a legacy protocol when there are so many working alternatives.
IRC was just enough mainstream and the lack of mostly economic incentives and a small enough tech-hurdle to filter to keep out "crazies".
Without human identifiers it's much easier to address an opinion without consideration for the human who is expressing that opinion. I believe many people might take for granted just how much non-verbal signals play a part in effective communication. A smiling picture signals to me, before reading any of the users text, that they are generally a person with a pleasant disposition. There are likely strong non-verbal cues than a profile picture, but they seem likely to play a part and when that part is going from virtually zero non-verbal signals to one, I imagine the impact is noticeable.
EDIT (out of quota):It's not that your profile picture would be actively used against you, but it's going to create a subconscious effect. Also they take up a ton of space in a text only chat. I stand by the idea that profile pictures are just stupid.
I'm optimistic that the vast majority of communities use those context clues to better understand someone as opposed to exclude them. I don't believe that holds true universally, but I would probably avoid using a revealing profile picture in communities I suspected would use that against me.
The IRCops of most major IRC servers are very hands off - they will not get involved in user disputes at all unless the IRC server itself is in danger.
However, you get kicked out of a Discord server or Facebook group, you're in the same situation, and Discord/Facebook isn't going to help you most of the time unless the group is violating TOS. Most IRC server's TOS are very liberal because the IRC server itself doesn't really store any data other than possibly some actual chat text - it doesn't hold images, files, etc.
> And there's also a single global namespace - it's not feasible to found a replacement for, say, #chat.
With modern IRC services you can actually create "neutral" lobby-type channels that have the services daemon as the op.
But unless you run your own chat server or social media service you'll always be at the mercy of who runs it at least a little bit.
You're basically asking for alternative systems of government to feudalism. This has been widely studied! Parliamentary democracy is a popular system. Imagine if chanops were chosen by election.
the GUI is relevant in addressing duplicate channel names as underneath you could have UUID channels that mapped to channels named "chat" for the end user.
Anyone can run an irc server, and it does not have to appeal or cater to everyone.
That's assuming I could persuade a critical mass of people to use the new network. "Have better content"? An IRC network has no "content", it has users. Talking to other users is the point. How many IRC networks are there?
This website has dang. Slack has channel owners. Reddit has mods and admins. 4chan has janitors and admins. Flat forums had mods
IRC is the same as everything else. It's a fine thing to point out, it's just not unique to IRC in any way
This is all or nothing thinking. We could design centralized protocols that have, for example, voting. We could design centralized protocols that call together digital juries[1].
Yes there may be powerhungry mods at the very top. They might be able to throw the votes or what not. Abuse is possible on centralized systems. But there's so vastly much we could be trying, could be doing, to alter the gerontocratic imbalance of power, even on centralized systems.
The problem isn't that nobody has designed or created such a system: it's that they're not very popular.
This assertion would be more interesting if there were more visible attempts. I haven't found anything on github I can deploy to moderate a channel via any kind of public-governance or other models. Can you?
Personally, I think we've done very little experimentation, and the gerontocratic rulers we dwell under generally would prefer staying in tight control. You talk about popularity, but popular for who? Even if some kind of democratic governance gained mass popularity, how many mods would be willing to hand over their long held control over channels/sites?
But that being said, the mobile phone essentially killing all open tcp connections is not really that great of a thing. IRC is not the only protocol that suffers here, but also IMAP IDLE push notifications suffer here.
It uses IRCv3 chathistory + a proposed extension for push notifications.
EDIT: ah, of course it's Android only.
EDIT2: They absolutely are Apple problems. Unfortunately Apple has convinced their users that they are IRC problems and the practical reality is that Apple users will not use IRC unless they're fixed which for me means setting up eg MMS bridges with cheogram which is a major pain. Thankfully we're getting web push on iOS next year and that will (hopefully) make all these problems effectively go away.
It's really convenient, I don't even have to pull out my phone because notifications come straight to my Apple Watch.
I would really like MutterIRC to come back or some alternative to this application.
When I was at work I got a push notification and could quickly write back on IRC chat. That's how it should work. Unfortunately, MutterIRC is not working since 2019.
Just checked discord - electron app consumes half the memory firefox does with only discord open.
You need to have a client or a proxy client running somewhere 24/7. You can self-host it (bouncer) or you can pay someone else to do it (IRCCloud).
But it's still a protocol level issue. IRCv3 might be doing something about it, but I'm not holding my breath.
So you'd have to use a server that's connected to the IRC server 24/7 and connect from your phone to that server.
Or https://ircv3.net/specs/extensions/chathistory# this might change it.
I see some IRCs even keep a mailing-list-like record of all messages posted on a channel... so I don't see how it's not possible.
At one point I extended an IRC server where you could send a list of regex filters. When messages where sent to channels you had joined that matched the filters it would send you push notifications. I think that combined with logging is really all people want on mobile.
Unfortunately someone has to actually run the push server and that
1) Requires more work than volunteers are willing to do
2) Can only be done by people holding the certificates used to publish the app.
I've personally just given up on popular mobile OSes. They're a disaster in nearly every way.
It's just a bot that runs on IRC just like the bots I made when I was using it.
Props to them for giving it a go but I feel it'd take something massive for people to switch back to IRC at this point
There's no reason not to allow this for open source apps (commercial ones would obviously abuse it and you would have battery life issues.) Unfortunately it doesn't matter what makes sense on mobile, you're not allowed to tinker with the OS in any way.
EDIT: That's great! I did not know about it. You could probably get around the issue of teaching clients to use it by modifying the BSD socket library to open sockets that way after checking an environment variable. I might mess around with that later.
The problem is that:
a) ... this requires teaching ModemManager about this API since MM is the only thing that talks to the modem.
b) ... this requires teaching clients to talk to MM for a TCP connection, likely using some new dbus-based API to match MM's existing API, instead of just socket() + connect() + read() + write(). So existing TCP-socket using programs will not work without modification. (LD_PRELOAD trickery can work, though ideally only sockets used for push notifications would be routed through MM and the rest use socket(), which can be hard for an LD_PRELOAD'd library to do.)
c) ... one should really be running the OSS firmware instead of Quectel's, and the OSS firmware does not implement those commands.
This was discussed a few months ago in #pinephone. AFAIK no one is working on it.
Run Thelounge somewhere and it provides a great interface for your phone with chat history storage and other conveniences.
1) To converse in an easy, familiar manner; talk lightly and casually.
2) To participate in a synchronous exchange of remarks with one or more people over a computer network.
No, reactions are not essential part of chat apps.
30 people leaving a reaction to an announcement is way easier than 30 lines of chat coming in at varying times.
Same goes for things like +1 -1 feedback
Talking to a person also has none of those features, yet it's still as popular today as it was 300 years ago. And I view IRC just as the text-version of talking in person. So my expectations are that it has more or less the same feature set.
And even with only partial support the delete function (if it's not limited to the user itself) gives way too much power to the ops/moderator (power corrupts. Absolute power corrupts absolutely.).
Reactions and images aren't essential for the strict interpretation of the word, but as everyone is used to them now you're not getting very far without them.
Nobody wants to play multiplayer notepad in 2022.
The fact IRC is still widely used disproves this quite clearly.
I think the real issue is people who like Discord trying to convince people who like IRC that the Discord method is better, and vice versa.
It's two pretty different demographics for the most part.
Relatively that's not widely used. Back when I used IRC you'd see that many people disconnect from the network during a netsplit if you were a network admin. Honestly if 45k people for the top network is widely used it's just... kinda sad really.
With modern resources you could probably get the the entire top 100 public networks running off a single machine. Look at Undernet, EFNet, DALNet! Those places used to have 100k users each on a slow day, they're barely reaching 10k now.
User counts have halved since I last looked, and have been decimated (literal usage of the word, nice) since the days I actively used IRC. I'll accept that maybe today is a bad day for stats or something, but it doesn't look like there's many good days left.
For clarity's sake I am still in the IRC demographic[2], but that's no use if no bugger else is using it. I'd love to get back into it if there's anywhere not-a-dead-software-support-channel to hang out but every time this comes up the usage stats just get smaller and smaller.
For what it's worth I rarely use Discord and dislike that back-and-forth knowledge for software communities is now locked away behind some rando company's sign-up form. If I ever set up a new community it'll have to be forum based I think.
[1] https://netsplit.de/networks/top100.php
[2] Literally my entire career was born in IRC. Wanted to make an IRC bot, figured that out, some other stuff happened, was seen as a tech type, asked to help admin a network I frequented, learned how to admin a Linux box, time passes, got a job doing sysadmin work.
I do miss IRC, made a whole bunch of internet friends on it and it took me down a career path I only sometimes regret.
EDIT: I can't reply to your other message but having to deal with people editing their messages is awful in any real time chat. Once you send a message it's sent and if you want to make changes send a new message. I once had someone gaslight me using message editing in Slack and never ever want to deal with that again.
Would love to know the modern day connection-numbers with something like Go+Channels
"an actor based Framework for creating microservices using technologies and design patterns of Erlang/OTP in Golang"