IRC is having its second wind as far as I can tell. Libera is very active and it offers an experience that is unlike the over-stimulating chat apps like discord.
Some projects have both a discord and an IRC channel and when you compare the two chats the conversations are wildly different — IRC being a more focused, on topic chat without floods of gifs, emojis, and off-topic channels.
The hardest part about using IRC is getting chat history and mobile notifications. As part of https://pico.sh we run a soju bouncer (soju.im) for our members to use to help with that. We have a bunch of daily active users.
> The hardest part about using IRC is getting chat history and mobile notifications.
Its not hard if the client isn't monolithic. I use ircs/ircx on Plan 9 which is a two part client: server that maintains connection to a network and channels the user joins. The server buffers incoming messages to a flat text file while the client just attaches to these buffers. I have a CPU server running 24/7 at home so it runs the server half and I can run the client on as many terminals as I want. It might be too simple but that is what I prefer.
Discord has some structures and dynamics that really work against it for the sort of communities IRC excels at.
The standard Discord experience has you look for and join a "server", each of which is meant to feel like distinct island. This has every server duplicate the same set of boilerplate #general, #off-topic etc. channels, as if there are no others. As a result the vast majority of servers are fairly dead and barren, the userbase is spread too thin. Also because the UX makes switching between servers a fairly heavy context switch, so monitoring this deluge of channels is not fun and nobody can stay on top of all of their servers.
I once looked around for maker-y/electronics Discords, and joined probably 7-8, and they were all dead. ##electronics on Libera is highly active.
i think this is not an easy problem to solve.
but this has been a big enough of an itch for me and i've got some time on my hands these days so i'm building www.ever.chat for anyone interested to take a look.
if anyone wanna chat, stop by and/or hit me up on X!
If you think about it IRC is the same, but making an IRC server is much harder so nobody does it, while creating a Discord server is so easy you'll have too many.
IRC is also different in the sense that it is federated, but when most people think about an IRC "server" they actually think about "networks".
Also, once you create a channel in Discord you cannot get rid of it without destroying chat history.
With IRC, you just /part without disrupting other people and even then you can go back and read chat logs, nicely persisted on your local disc as text files.
> Also, once you create a channel in Discord you cannot get rid of it without destroying chat history.
This is true; the closest thing you can do is collapse the category that channels are in, and mute the ones you don't want to show up. Any new conversation in a channel will pop them out.
Seeing hexchat always gives me a pang of nostalgia for hours spent as a teen on various IRC channels. I know that even if I went back to some of those servers I wouldn't be able to recapture the same "magic" since it was primarily the people there (and besides, those people are largely reachable on slightly more modern services these days), but I do miss the simplicity of IRC as a protocol and the massive variety of clients and interfaces.
Maybe matrix will recapture some of that platform-agnosticism? I haven't used it in a while and the general sentiment around the protocol seems vaguely negative these days (at least in channels like HN).
I recently started using IRC again (I joined a small channel because of a random event). Surprisingly the magic is still there for me.
>besides, those people are largely reachable on slightly more modern services these days
The thing is, people are NOT reachable on IRC in general. They join when they wake up (or return from school, or return from work). When they leave you can't contact them (and you can criticise/praise them freely if you want). Sometimes a new person joins and never returns again. Sometimes they join tomorrow, the day after, and become a regular. Other times someone starts joining less and less frequently, then one day leaves and never returns.
People say "hi" when joining and "bye" when leaving.
I'm general, I realized this is much more similar to talking with real people than modern groupchats. Of course this is just a protocol, and nowadays this behavior is just a choice (everyone can install a mobile client and stay always online. Even back then it was possible with a bouncer). But I'm surprised how invested I became in this micro-community, in a way i never would on a discord server.
the main complaints against Matrix atm seems to be that we have made heavy weather of the migration from 1.0 to 2.0 (“either you get a slow client or a fast but incomplete client”)… or that Element has had to focus on building stuff for govts rather than irc-style communities in order to get sustainable. (see also https://gist.github.com/ara4n/190ad712965d0f06e17f508d1a45b5...). Both problems could be much worse, and we had the annual Matrix Conference a few weeks ago which was a great success (https://element.io/blog/the-matrix-conference-a-seminal-mome...), so I suspect/hope the negative sentiment will pass.
https://libera.chat is what Freenode turned into after Freenode imploded. Really great communities there - F/OSS-centric, yes, but there are good unofficial channels for cloud services, and even some proprietary software and services, like vscode, AWS, Azure, Oracle, etc.
I am such a fan of minimal, text-forward, straight to the point website designs like this. I feel like it makes it easier to quickly determine whether the text content is worth reading.
It's not terribly far from the truth. IRC is a pretty thin layer on top of a generic TCP server. On your classic ircds the notion of users and channels is about the minimum possible, and everything's tightly coupled to the network and DNS. Single-core servers back in the day could and did handle 10,000 active users.
This awk contraption is launched by inetd, and there's not much of any kind of sanity checks for anything. As a result, there was around ten thousand processes running :)
And also, thanks for showing interest. I'll push the source code on the website on the weekend.
A couple decades ago I remember somebody using awk in programming competitions, as a stunt, and doing surprisingly well. For tasks involving text processing it has a huge advantage, and it ends up doing ok with other stuff.
I’ve had people be very confused and perplexed when I told them awk is a programming language in the past lol. Most seem to think it’s solely a tool like sort or uniq etc
I have only dabbled in AWK, but I love the book "The AWK Programming Language" by its authors. Its a great read for any programmer, highlighting pragmatic techniques to solve real-world problems.
What I always point out though is the bathtub curve of that perception.
Awk started life as a unique, weird, but extremely clever and expressive environment with which you could do tricks that were impractical anywhere else. And that's sort of back where it is now.
But for a solid decade and a half, awk was a forgotten dinosaur that no one cared about. Because in the era where Everyone Knew Perl, awk had no home. Perl was awk but bigger and better.
But now all us perl nuts have moved on or gone silent, all the kids are writing code for node or python or whatnot, and No One Knows Perl.
And in a world where no one knows perl, awk looks clever again.
The whole Perl era shaped so much of how we think about text processing. It's funny how tools cycle - awk is "new" again because we forgot the middle chapter. Same thing is happening with Rust vs C - people rediscovering memory safety like it's a fresh idea.
It has options to split up input into fields and loop over every line for one-liners, yeah. For a trivial example,
awk '{ print $2 }' foo.txt
becomes
perl -lane 'print $F[1]' foo.txt
I'm one of those people who out off learning awk for a decade+ because I knew perl, but when I finally picked it up I found it's often simpler and cleaner. I still switch to perl for complicated processing but awk can get a lot done.
As mentioned it actually does have modes that assume various loops over the input. But it also has a bunch of syntax that naturally lends itself to that kind of very-narrow-text-dsl kind of code. Things like implicit variables, "postfix if", BEGIN/END blocks, all make awk-like just as easy to express as in awk. And then you add on top of that a much more capable base engine (despite awk's reliance on regex matching, it's still stuck with regular unix extended expressions) and library ecosystem.
Again, in 1998, in the early perl 5 era, you'd be looked at as a nut if you seriously tried to argue for doing some new tool in awk, even a tiny script. Everything worked better in perl.
How and why did it implode? I always have a feeling of wanting to go back to basic chat rooms for linux and all but today it´s more like a chore than anything else.
Also, a gemini browser written in AWK:
https://github.com/leovilok/gem.awk
It needs OpenSSL or LibreSSL in order to create network connections.
IRC is having its second wind as far as I can tell. Libera is very active and it offers an experience that is unlike the over-stimulating chat apps like discord.
Some projects have both a discord and an IRC channel and when you compare the two chats the conversations are wildly different — IRC being a more focused, on topic chat without floods of gifs, emojis, and off-topic channels.
The hardest part about using IRC is getting chat history and mobile notifications. As part of https://pico.sh we run a soju bouncer (soju.im) for our members to use to help with that. We have a bunch of daily active users.
> The hardest part about using IRC is getting chat history and mobile notifications.
Its not hard if the client isn't monolithic. I use ircs/ircx on Plan 9 which is a two part client: server that maintains connection to a network and channels the user joins. The server buffers incoming messages to a flat text file while the client just attaches to these buffers. I have a CPU server running 24/7 at home so it runs the server half and I can run the client on as many terminals as I want. It might be too simple but that is what I prefer.
Discord has some structures and dynamics that really work against it for the sort of communities IRC excels at.
The standard Discord experience has you look for and join a "server", each of which is meant to feel like distinct island. This has every server duplicate the same set of boilerplate #general, #off-topic etc. channels, as if there are no others. As a result the vast majority of servers are fairly dead and barren, the userbase is spread too thin. Also because the UX makes switching between servers a fairly heavy context switch, so monitoring this deluge of channels is not fun and nobody can stay on top of all of their servers.
I once looked around for maker-y/electronics Discords, and joined probably 7-8, and they were all dead. ##electronics on Libera is highly active.
Jabber would work better in these niche cases.
i think this is not an easy problem to solve. but this has been a big enough of an itch for me and i've got some time on my hands these days so i'm building www.ever.chat for anyone interested to take a look.
if anyone wanna chat, stop by and/or hit me up on X!
If you think about it IRC is the same, but making an IRC server is much harder so nobody does it, while creating a Discord server is so easy you'll have too many.
IRC is also different in the sense that it is federated, but when most people think about an IRC "server" they actually think about "networks".
> deluge of channels
Also, once you create a channel in Discord you cannot get rid of it without destroying chat history.
With IRC, you just /part without disrupting other people and even then you can go back and read chat logs, nicely persisted on your local disc as text files.
> Also, once you create a channel in Discord you cannot get rid of it without destroying chat history.
This is true; the closest thing you can do is collapse the category that channels are in, and mute the ones you don't want to show up. Any new conversation in a channel will pop them out.
Seeing hexchat always gives me a pang of nostalgia for hours spent as a teen on various IRC channels. I know that even if I went back to some of those servers I wouldn't be able to recapture the same "magic" since it was primarily the people there (and besides, those people are largely reachable on slightly more modern services these days), but I do miss the simplicity of IRC as a protocol and the massive variety of clients and interfaces.
Maybe matrix will recapture some of that platform-agnosticism? I haven't used it in a while and the general sentiment around the protocol seems vaguely negative these days (at least in channels like HN).
I recently started using IRC again (I joined a small channel because of a random event). Surprisingly the magic is still there for me.
>besides, those people are largely reachable on slightly more modern services these days
The thing is, people are NOT reachable on IRC in general. They join when they wake up (or return from school, or return from work). When they leave you can't contact them (and you can criticise/praise them freely if you want). Sometimes a new person joins and never returns again. Sometimes they join tomorrow, the day after, and become a regular. Other times someone starts joining less and less frequently, then one day leaves and never returns.
People say "hi" when joining and "bye" when leaving.
I'm general, I realized this is much more similar to talking with real people than modern groupchats. Of course this is just a protocol, and nowadays this behavior is just a choice (everyone can install a mobile client and stay always online. Even back then it was possible with a bouncer). But I'm surprised how invested I became in this micro-community, in a way i never would on a discord server.
I started using IRC when I was 13. I’m 39 now, and it never lost its magic.
While the rest of the internet has turned into some weird corporate thing, IRC is still a nice play for us nerds to hang out.
LONG LIVE LIBERA
the main complaints against Matrix atm seems to be that we have made heavy weather of the migration from 1.0 to 2.0 (“either you get a slow client or a fast but incomplete client”)… or that Element has had to focus on building stuff for govts rather than irc-style communities in order to get sustainable. (see also https://gist.github.com/ara4n/190ad712965d0f06e17f508d1a45b5...). Both problems could be much worse, and we had the annual Matrix Conference a few weeks ago which was a great success (https://element.io/blog/the-matrix-conference-a-seminal-mome...), so I suspect/hope the negative sentiment will pass.
I suspect the terribly generic name "Matrix" isn't helping. Guess what's #1 in Google when you search for Matrix, IRC and Discord.
Yup, we're #3 behind the film and the hair company. Doesn't seem too bad; meanwhile Element is #1, terrifyingly, at least for my geoip.
#4 in mine, but you're not even 3rd page in my mom's phone (I stopped 3rd page, not sure when you'll show up)
Discord (which is your mainstream competitor) is #1 in both even if it's also a terribly generic name.
I couldn't be happier if you dethroned Discord.
EDIT: Element is 3rd place in my mom's phone. Quite an achievement!
IRC is still around. HexChat is unmaintained, but still works for now.
irssi is still maintained. :P
"-nocap"
Maybe that's how we get the new generation into IRC!
WeeChat supremacy! (I kinda miss irssi…)
Libera.chat, EFNET, and such are stil there. Ditto with the SDF IRC server, the ones today at the tildeverse...
True geeks and nerds never left.
There are nice Jabber/XMPP servers out there too.
https://libera.chat is what Freenode turned into after Freenode imploded. Really great communities there - F/OSS-centric, yes, but there are good unofficial channels for cloud services, and even some proprietary software and services, like vscode, AWS, Azure, Oracle, etc.
ZNC is an excellent way to keep history between your IRC sessions: https://github.com/znc/znc And WeeChat is an excellent companion to ZNC and libera.chat: https://github.com/weechat/weechat And IRC for Android is an excellent IRC client that also plays well with ZNC: https://play.google.com/store/apps/details?id=com.countercul... Cheers!
I am such a fan of minimal, text-forward, straight to the point website designs like this. I feel like it makes it easier to quickly determine whether the text content is worth reading.
I've heard IRC servers jokingly referred to as "layer 7 multicast routers."
It's not terribly far from the truth. IRC is a pretty thin layer on top of a generic TCP server. On your classic ircds the notion of users and channels is about the minimum possible, and everything's tightly coupled to the network and DNS. Single-core servers back in the day could and did handle 10,000 active users.
Sadly it seems like it is down
Thanks for the bug report. Should be ok now!
This awk contraption is launched by inetd, and there's not much of any kind of sanity checks for anything. As a result, there was around ten thousand processes running :)
And also, thanks for showing interest. I'll push the source code on the website on the weekend.
As is the gopher service, which is a shame.
Up and running. Seems that the Gophernicus didn't appreciate the ten thousand awks reserving all the available memory..
If you have any ideas of the content I should push there, let me know.
Given the source isn't released, how about an IRCd in bash: https://github.com/dgl/bash-ircd
> it's made with gawk.
gawk is always best when served live.
https://www.youtube.com/watch?v=hXHuygyyulE&t=53s
That's funny, and totally not what awk was designed for, but it does it anyway!
It's exactly what it was designed for - text processing! Which fits perfectly for the irc protocol.
A couple decades ago I remember somebody using awk in programming competitions, as a stunt, and doing surprisingly well. For tasks involving text processing it has a huge advantage, and it ends up doing ok with other stuff.
I’ve had people be very confused and perplexed when I told them awk is a programming language in the past lol. Most seem to think it’s solely a tool like sort or uniq etc
I have only dabbled in AWK, but I love the book "The AWK Programming Language" by its authors. Its a great read for any programmer, highlighting pragmatic techniques to solve real-world problems.
Many books are by their authors, though perhaps fewer nowadays.
As many already know, the authors of that book and the related eponymous language are; Alfred Aho, Peter Weinberger, and Brian Kernighan.
What I always point out though is the bathtub curve of that perception.
Awk started life as a unique, weird, but extremely clever and expressive environment with which you could do tricks that were impractical anywhere else. And that's sort of back where it is now.
But for a solid decade and a half, awk was a forgotten dinosaur that no one cared about. Because in the era where Everyone Knew Perl, awk had no home. Perl was awk but bigger and better.
But now all us perl nuts have moved on or gone silent, all the kids are writing code for node or python or whatnot, and No One Knows Perl.
And in a world where no one knows perl, awk looks clever again.
The whole Perl era shaped so much of how we think about text processing. It's funny how tools cycle - awk is "new" again because we forgot the middle chapter. Same thing is happening with Rust vs C - people rediscovering memory safety like it's a fresh idea.
Does perl have an awk-y mode? Or is this just "perl has a bunch of regex-y things to make everything flow well".
It has options to split up input into fields and loop over every line for one-liners, yeah. For a trivial example,
becomes I'm one of those people who out off learning awk for a decade+ because I knew perl, but when I finally picked it up I found it's often simpler and cleaner. I still switch to perl for complicated processing but awk can get a lot done.As mentioned it actually does have modes that assume various loops over the input. But it also has a bunch of syntax that naturally lends itself to that kind of very-narrow-text-dsl kind of code. Things like implicit variables, "postfix if", BEGIN/END blocks, all make awk-like just as easy to express as in awk. And then you add on top of that a much more capable base engine (despite awk's reliance on regex matching, it's still stuck with regular unix extended expressions) and library ecosystem.
Again, in 1998, in the early perl 5 era, you'd be looked at as a nut if you seriously tried to argue for doing some new tool in awk, even a tiny script. Everything worked better in perl.
Which channels should we join? Feeling lonely
This doesn't seem interesting without the code, which I can't find. They said it will be available when "ready". Is it ready yet?
Early 2000s, writing your own client to join freenode was a programmer's rite. Sad to see the network implode. And no, I won't use libera or whatever.
> And no, I won't use libera or whatever.
Any special reason? AFAIK, it's effectively the same network run by the same people, just under a different name.
One letter too close to the L-word /s
How and why did it implode? I always have a feeling of wanting to go back to basic chat rooms for linux and all but today it´s more like a chore than anything else.
The name freenode went away, but the actual operators moved over -> https://libera.chat/ . So you can still join!
A summary: https://gist.github.com/joepie91/df80d8d36cd9d1bde46ba018af4...