8 ms·
Ergo – modern IRC server written in Go
- cosmin800 4y agomore yaml config files insanity, happy that irc is not dead
- zxcvbn4038 4y agoI really hate Slack but the killer feature nobody in irc world is solving is mobile connectivity. If get logged out every time I lock my phone then I have to keep dealing with Slack.
- Darmody 4y agoI don't think that's going to change. It's like that by design and I don't think IRC devs are willing to change it. 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.
- DrJokepu 4y agoIsn't that what BNC is?
- johnisgood 4y agoIt is.
- brabel 4y agoWhy is it designed that way? Just to avoid the server having to keep data while you're offline? Or there's a grander motivation?
- vegai_ 4y agoIRC is a message-passing service, not a log synchronization service -- like many of the more modern ones are. You might say that that is one of its architectural strengths, unless, of course, you want to see old messages that were passed when you were offline. In which case you'll need to hack something like bouncers up, which works in practice really well. Or https://ircv3.net/specs/extensions/chathistory# https://ircv3.net/specs/extensions/chathistory# this might change it.
- okasaki 4y agoIRC doesn't have accounts, you just connect, specify a nickname and it's yours unless it is used by another connected user. So not really possible to track users.
- brabel 4y agoI've been using https://libera.chat/ https://libera.chat/ which allows "claiming" Nicks with a registered email account... I suppose it would be possible to "buffer" messages? 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.
- usrn 4y agoLogging and nick registration are both extra services that run ontop of IRC. 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.
- Darmody 4y agoIf the nick bot is down, there's no registration. It's just a bot that runs on IRC just like the bots I made when I was using it.
- onion90 4y agoThe Ergo IRCd has an built in "Always-on" feature which allows you to stay online without an additional server.
- one_more_q 4y agoThat’s what a bouncer is. And I already used it to solve this problem 20 years ago. The main point back then was of course that nobody steals your username.
- tamrix 4y agoAnd don't forget idling in your friends chat rooms so it appears higher on the list and randos would join.
- sleepydog 4y agoI use chat.sr.ht, which is a hosted instance of the ircv3 bouncer soju.im. This keeps me logged in without requiring my phone to be always connected.
- darrenf 4y agoirccloud.com has worked wonderfully for me, for many years now.
- cpach 4y agoIrccloud is really nice. Best IRC client I’ve ever used.
- vegai_ 4y agoThe chathistory extension[0] might take care of that problem. If IRC lives that long. [0] https://ircv3.net/specs/extensions/chathistory https://ircv3.net/specs/extensions/chathistory
- johnisgood 4y agoThat is a non-issue. That is what bouncers are for. It has been around for over 20 years or something. Personally I run irssi inside screen on a server and I ssh into it using my phone.
- welterde 4y agoThis issue has been solved by the ergo in that it integrates the bouncer functionality into the IRC server. So from everyone elses perspective you never get disconnected and combined with support for the chathistory extension (which your mobile IRC client has to support) you won't miss things happening in between either. 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.
- rob74 4y agoI don't hate Slack per se, but I hate their bloated Electron client. Fortunately some weeks ago their Linux client stopped working on my machine (it had been warning me for some time that my OS version is "too old" - interestingly other Electron apps and Chrome itself are just fine with that). Since then I discovered that the web version works just as well and is less resource-intensive...
- hatch_q 4y agoElectron hate is in most cases unsubstantiated, esp. when compared to their web counterparts. Just checked discord - electron app consumes half the memory firefox does with only discord open.
- deleted 4y ago[deleted]
- corobo 4y agoYeah I use Slack in a pinned browser tab too. I figure if the interface is the same I might as well wrap it with the browser I have open 90% of my day than some separate Electron app I'll forget to open.
- theshrike79 4y agoThe biggest issue with mobile IRC that it needs a constant open TCP connection to the server. 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.
- emersion 4y agoWorking on it: https://github.com/ircv3/ircv3-specifications/pull/471 https://github.com/ircv3/ircv3-specifications/pull/471
- unhammer 4y agoPut https://weechat.org/ https://weechat.org/ on your vpn (or a raspberry pi under your couch or whatever) and install one of the weechat apps.
- charcircuit 4y agoAnother killer feature IRC is missing is being able to react with a party parrot or other custom emoji.
- pmlnr 4y agoThis is sarcasm, right?
- charcircuit 4y agoNo. I think custom emoji and being able to use them as reactions are essential parts of what a chat app should have.
- usrn 4y agoReactions are cancer. If you have something to say send a message. 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.
- charcircuit 4y agoI want to reach with an emoji. Sure I could reply with a custom emoji, but reactions just is a better way to do it without adding extra noise to the conversation.
- deleted 4y ago[deleted]
- cbm-vic-20 4y ago:(
- pmlnr 4y agochat chăt intransitive verb 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.
- pmlnr 4y agoIt's the other way around: the phone systems actively block background connections.
- usrn 4y agoI've experimented with this on the pinephone. You can often just get away with leaving TCP connections open while the device is locked (on mine "locked" means something like Android where the device suspends and periodically wakes up so apps can maintain their sockets) as long as you wake up before the keep alive message for the protocol you're using leaving sockets open is fine. That's effectively what the push notification receiver in the OS is doing anyway (although it does something special with the hardware so the incoming packets actually wake up the device for lower latency.) 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.
- Arnavion 4y agoFor the Pinephone, the Quectel firmware supports AT commands for creating a TCP connection through the modem, after which the modem sends wakeups on the bus when it receives data on that socket. So that can be used to implement push notifications without any lag from having to periodically wake up to check. 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.
- sph 4y agoWould QUIC with its connection migration feature help here?
- znpy 4y agoYou can run thelounge somewhere and use thst as web interface. Android and iOS allows you to iconify a website, so that would feel like a native app. https://thelounge.chat/ https://thelounge.chat/
- emersion 4y agoShameless plug: someone is trying to solve these issues: https://sr.ht/~emersion/goguma/ https://sr.ht/~emersion/goguma/ It uses IRCv3 chathistory + a proposed extension for push notifications.
- usrn 4y agoWho's going to babysit the iOS push server? Colloquy already has this and I modified an IRC server to support it but the push server is down so often it's not usable. I'd run the push server myself but Apple requires that I pay them $100/year, buy a macintosh, and convince them my version of the app is substantially different all for the privilege of maintaining a service required to support their miserable OS. 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.
- zepolen 4y agoThese sound like Apple problems not IRC problems.
- modinfo 4y agoYou can always give the possibility that the user enters his API key to Pushover and by pushover you can receive push notifications, I have already written many programs that work with Pushover, one works to this day, every 6 hours I get the current price of bitcoin back with a difference whether the price has decreased or increased. It's really convenient, I don't even have to pull out my phone because notifications come straight to my Apple Watch.
- there 4y agoJust FYI, Pushover has a Glances API so you can push data like that directly to an Apple Watch complication. https://pushover.net/api/glances https://pushover.net/api/glances
- Fnoord 4y agoThat issue was solved ages ago with screen or bouncers. One could also push notifications via e.g. Gotify.
- tenebrisalietum 4y agoThelounge solves it nicely. Run Thelounge somewhere and it provides a great interface for your phone with chat history storage and other conveniences.
- corobo 4y agoYup, lack of roaming support was what killed IRC for me. I see that IRCv3 tries to address this but it's about 20 years too late and 10 years since I last used IRC. 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
- Agamus 4y agoToday I learned that mobile connectivity issues are another thing I love about IRC.
- nly 4y agoTradional way to deal with this is a bouncer on a VPS somewhere
- giancarlostoro 4y agoConnection bouncer is what you're yearning for. If that doesn't interest you, then try IRCCloud, which is fantastic on mobile.
- lrvick 4y agoAnyone interested in IRC protocol improvements should check out https://ircv3.net/irc/ https://ircv3.net/irc/ 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.
- mekster 4y agoWhat good is a chat platform without mobile notifications? I don't see how people need to stick with a legacy protocol when there are so many working alternatives.
- welterde 4y agoSome people prefer to chat on desktop and don't really like the mobile-derived UI and prefer a text-heavy dense layout. Throw in lightweight resource usage as a requirement and suddenly there are not that many working alternatives anymore.
- deleted 4y ago[deleted]
- usrn 4y agoMatrix has a lot of nasty issues, I'd argue XMPP is probably the right way forward for small group chats and one to one convos. I personally refuse to use matrix since I still don't feel comfortable self hosting it. 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.
- rawoke083600 4y agoMan how I miss my time on IRC. It was the "apex" for "decent-social" for me :) I'm old enough to have enjoyed BBS and Usenet. Both the BBS and Usenet was mostly tech/geek. IRC was just enough mainstream and the lack of mostly economic incentives and a small enough tech-hurdle to filter to keep out "crazies".
- toolz 4y agointeresting. I grew up on IRC as well, but my takeaway from IRC is that people have a very hard time treating others with decency without visual indicators like a profile picture. I did very much appreciate how many people were on IRC just to help other people learn, though.
- TingPing 4y agoThere were good communities and bad communities. I really don't think profile pictures have much to do with it.
- toolz 4y agoI'd be very surprised if profile pictures didn't have a large impact. Anything you can do to make one end of a conversation seem more human would (I suspect) have large implications in how the other end engages/reacts. 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.
- usrn 4y agoI'd argue that profile pictures might even make things worse because people get tempted to use pictures of themselves which drags difficult (and completely irrelevant) ideas like race and sexuality into the situation. 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.
- rawoke083600 4y agoAny info on benchmarks ? Purely for curiosity sake ? "Back in my day" - server-overloads were a common thing, and the connection counts were in the low thousands ? Would love to know the modern day connection-numbers with something like Go+Channels
- tjpnz 4y agoWhat makes this "modern" specifically?
- memorable 4y agoIt supports IRCv3, so you may call it modern I guess.
- voi 4y agoUnrelated project with the same name (coincidentally written in the same language): https://github.com/ergo-services/ergo https://github.com/ergo-services/ergo "an actor based Framework for creating microservices using technologies and design patterns of Erlang/OTP in Golang"
- rr888 4y agoSurprised that Discord isn't used more in professional settings. Its a great alternative to Slack/Matrix/IRC even if it isn't open source.
- freeplay 4y agoTheir branding is very "gamer." It's worked out great for them as they have cornered that market, but it doesn't surprised me that they aren't even considered when comparing chat clients in a work environment.
- mp3il 4y agoGod I miss the IRC days. EFnet, DALnet :(
- Minor49er 4y agoAlso EsperNet and Undernet
- dTal 4y agoThe biggest problem I have with IRC is its feudal social model. The first person to join a channel becomes the monarch, and can appoint deputies to impose their will on the others. There's no system for dealing with an abusive op. It's all very well to say "just start your own channel then", but that's rather like telling someone to move to Canada if they don't like the president. A channel has inertia and cannot simply be "moved", especially when the person running it can simply silence anyone who raises the idea. And there's also a single global namespace - it's not feasible to found a replacement for, say, #chat.
- toolz 4y agoyou can build GUIs on top of IRC that abstract away from all of this and still use the underlying protocol. I am curious what you think a better alternative would be for moderation, though. It's easy to point out flaws in all moderated systems, but it would be interesting to consider what an improvement might look like
- dTal 4y agoI'm not sure what you're on about with GUIs, that doesn't seem relevant to any point I was making, but to address your other point: 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.
- toolz 4y agowhen would elections be held? after N number of new people join? How would you prevent rigged elections with many bots joining to represent many votes for 1 person? Other forms of governance are in wide abundance, but implementing them on top of pseudo-anonymous chatrooms is hard and could lead to mostly benefiting malicious actors. 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.
- beardedwizard 4y ago