What about IRC (in relation to Matrix)?

Since this topic came up in Future of the weekly Ansible Community Meeting, and we don’t yet have an active discussion about it on the forum, let’s have that discussion here (instead of side-tracking other discussions).

We moved from Freenode to Libera.chat a couple of years ago (when Freenode was dissolving), which already increased some fragmentation (not everyone came along). Then a bit later we decided to embrace Matrix as well, to make our community chats more attractive to a larger audience. Back then this seemed like a “safe” idea since there was a Matrix-IRC bridge to Libera.chat. That basicaly means that the different rooms / channels were visible from both sides (Matrix and IRC): if you write a message in one of them, it’s visible on the other end as well. Obviously not every kind of message worked (media like images, videos, … work differently enough), and there were some details like editing of Matrix messages that caused annoyance on the IRC side, but in general it was great, since everyone could talk to each other, no matter whether they used IRC or Matrix.

Unfortunately the bridge caused problems with Libera.chat (Disabling Matrix Portalling | Libera Chat, Matrix.org - Deportalling from Libera Chat) a bit less than a year ago, then was deactivated temporarily (Matrix Bridge Temporary Shutdown, a Retrospective | Libera Chat, Matrix FAQ | Libera Chat), and eventually finally shut down (Matrix.org - Shutting down the Matrix bridge to Libera Chat). In the beginning, we used a relay bot in some channels/rooms to relay messages back and forth, but that bot also got kicked and banned from Libera.chat from time to time. So basically we now have fragmentation: Matrix and IRC cannot talk to each other anymore.

This state is really annoying, since some folks really prefer IRC, while others really prefer Matrix. And even for folks like me, who can live with both, it’s annoying since I forget more and more often to actually look into IRC since it’s less active than the Matrix side.

There are a lot of different things we can do about this, and this is the place to discuss it :slight_smile: Please be nice to each other and don’t start flame wars :wink:

4 Likes

One possibility would be to switch from Libera.chat to Open and Free Technology Community (OFTC), or at least also have a room there, since there seems to be a working Matrix-OFTC bridge (Bridged Networks - Matrix IRC Bridge). (First mentioned here: Future of the weekly Ansible Community Meeting - #9 by felixfontein)

As @shertel pointed out below that post this again increases fragmentation of the community. But on the other hand we’d have a bridge back between IRC and Matrix. Maybe just having one channel on OFTC (instead of the pletora of channels/rooms that we have on Libera and Matrix) would already improve the situation, in particular for the community meeting (whose future has its own topic: Future of the weekly Ansible Community Meeting).

What do others think about this?

I am hesitant to reply, because I generally have negative feelings of how things changed…

This is all my opinion, and how it worked for me…

IRC was great precisely because it was a streaming chat - no threads. So when I skimmed the posts, I frequently learned new things, even when the topic was about something that was useless to me. But still, there were mentions of certain code fragments or whatnot that I could apply to my situations.

In Matrix, this doesn’t happen - people use threads. There is no real simple way for me to see all updates, unless I go back and review each and every update to every thread - which is not feasible. I suggested disabling threads early on, but it is either not possible and/or some objected. Also, when IRC & Matrix were connected, that caused issues, because IRC couldn’t see the threads…

IRC, as stated, is less active, so virtually useless by itself now.

Matrix is fine from the perspective of posting a question and getting an answer, but with the advent of this forum, I don’t know that it’s needed.

I don’t see a way back to the “OG IRC channel”-type of usage, so my counter-question would be, why wouldn’t we get rid of both and just use this forum?

3 Likes

Personally, I don’t like threads in Matrix. But luckily I don’t see a lot of them. Maybe we’re hanging around in different rooms / channels.

Out of curiosity: Is it possible to disable threads in Matrix rooms? I really don’t know :person_shrugging:

Discourse does have a chat feature that could be enabled here, what about trying to use Discourse chat for meetings (if no expiry date is set this would also provide logs, a channel per meeting type might be needed) and keeping Matrix and IRC for community peer-to-peer support?

1 Like

But isn’t that the purpose of the Get Help section in this forum?

My point is why keep anything else?

Meetings need chat and I don’t see the point of forceable closing down IRC channels and Matrix room if people use them? You don’t have to use them.

1 Like

Reducing fragmentation is the point. Contingent of course on the quality of chat on the forum. I have nothing against Matrix or IRC, but if I could follow only one of this forum, Matrix, and the google group(s), I’d pick this forum.

Similarly with docs: it would be nice to know there was a place - some single place - from which I could find and navigate to any officially sanctioned Ansible document. (Bonus points if there’s a complete table-of-contents!) But I digress.

3 Likes

I’m not sure how well-used threads are in Matrix - since the Matrix client I’m using doesn’t show them. So maybe I’m already annoying the heck out of some folks by replying outside of threads…

And I’m not a fan of how threads work in Matrix either… it’s similar to threads in Slack, which I dislike for the same reasons. I like the general idea of threads, and I really like how they’re handled in Zulip - there they have been part of how Zulip works right from the beginning, like it feels for emails and newsgroups (if anyoone remembers), and weren’t added as an afterthought, as it feels for Matrix and Slack.

I think having both chat (for this argument it doesn’t matter what kind of chat) and forum is important, as they serve different uses: the forum is great for longer, asyncronous discussions, while chat is a lot better for faster synchronous discussions. If you need a quick hint, asking in the users room on IRC or Matrix will likely get you an answer faster than asking here on the forum. But if you have a more complex problem with a lot of different files involved, explaining that here in the forum will make it easier to follow and comment. Similar for project discussions: on chat you can more easily bounce ideas around and hash something out (it’s also less inviting to write long texts as this one :slight_smile: ), which can improve discussions on the forum by providing fresh and more condensed input from the same group of folks than if the same discussion would have happened in the forum. (At least in my opinion and from my experience. YMMV.)

Which leads me to the idea of integrating chat in the forum: I’m somewhat sceptical - unless it’s basically a web Matrix client (or using a similar, open protocol that’s not limited to this forum or Discourse in general). The huge advantage of IRC and Matrix are that there is a huge amount of different client apps for all kind of devices and usage scenarios. (I’m using both IRC and Matrix via a text mode UI through SSH + tmux, for example. It’s very unlikely that this will work for something that is Discourse specific.)

2 Likes

Currently Discourse chat is limited to the web interface, no other clients can be used, if you haven’t tried it then perhaps login to meta.discourse.org and give it a try? find an instance that has it enabled, meta.discourse.org did in the past but doesn’t appear to now.

We have a development Discourse server at discourse.webarchitects.org.uk which could be used for testing the Chat feature, if you want to use it for testing please create accounts and DM me usernames to grant admin access to.

I think Discourse Chat might be suitable for Ansible meetings? :person_shrugging:

FWIW, the way Matrix handles threads varies based on client. So it might improve.

…More importantly, if threads are meant for long(er) form discussion, then maybe they should happen in Discourse and let nettiquette dictate that meetings use Matrix for realtime chat (to mimic the behavior in a conference room where guests are expected to have “one meeting”

2 Likes

I’ve been waiting to reply to this in order to do some stats, but I just haven’t had time. I will do the stats later on and come back to this thread then, but for now, here’s some thoughts. I’ve repeated a few things people have already said here, and thanks to them. I just want to make sure I get all my thoughts out in a consistent way - not that I expect my thoughts will surprise anyone :slight_smile:

Defining defaults

Ultimately, we can’t tell folks what to do, that’s how communities are (e.g. there is a sizeable Discord, even though we don’t really do anything with/about it). What we can do is define the defaults, and the “official” channels that we place in our READMEs and docs.

Defaults have power - in the absence of strong opinions, most will go with the docs. So what we’re really discussing is what to make “official” - if that’s Matrix, IRC will still exist (and vice versa).

Multiple chat systems

In “The Art of Community” (2nd ed, p76-77) Jono Bacon points out:

“One of the mistakes a lot of new communities make is to fragment individual communication mediums too heavily … people waste time choosing the right forum instead of just posting. What is worse, some get confused and just don’t post at all. Discussion gets going faster when you have fewer choices”

He also talks about how for one of his projects, he created a forum and an IRC channel, but did not mention the IRC channel at all to the users. It was intended for real-time developer meetings, as was not appropriate for the end users - that was what the forum was for (I think this speaks to @utoddl’s point).

Ultimately this all comes to “keeping all your eyeballs in one place”, and I would argue that place is here. So I would not want to make an official move to OFTC, as it’s yet-more locations to look at.

On Threads

Threads in Matrix are … not ideal. They are a medium designed for large-audience rooms, or support rooms where dedicated staff check all the threads. They are not optimised for medium rooms with dedicated members who all want to keep up with the chat.

Back when they first came to Matrix I argued strongly for threads to be disable-able by the room admins, but I didn’t get that in. We could still look at writing an MSC for it, I think it would get a receptive audience - I’ve just not had the time (thanks to @blaisep for the reminder that we could do this).

On Discourse chat

It’s true that Discourse chat exists - I disabled it at launch because (as per above) I didn’t want yet more fragmentation in our communication channels. There was some exploratory work to connect it to Matrix (here) but it is a bit stalled as the technical implementation is tricky.

I’m wary of another big change to our community - we’ve done Matrix, and Discourse. My inclination is to let that settle for a while longer, but if chat diminishes to the point wheer we don’t think it’s a big upheaval, then we could do it. However, I think Discourse chat is considerably less full-featured than Matrix or other platforms - it’s an addon to the forum, rather than a solution in it’s own right (and that means no choice of client, federation, etc, too).

Do try out a chat-enabled forum if you like the sound of it (thanks @chris for the option). It’s decent - but for me, the lack of clients make it feel second-class.

TLDR

IRC has been declining for some time, and the breakdown of the bridge was the final straw. We knew we’d have to pick - and organically, we appear to have already picked Matrix. We do need to do some stats here, and that’s on me, I think. I just need to find a couple of hours to crank though it, but that will likely be after DevConf now.

However, if the stats lie where I think they do, then my proposal would be:

  • Make the forum the primary call-to-action for most docs and READMEs
  • Make Matrix the official place to have real-time chat / meetings, and leave it on the communications page.
  • Remove all mention of IRC from our docs and treat it as we do Slack and Discord - it’s there, but it’s not official

I recognise this will not be to some people’s taste - but we have to confront things as they are, and keep fragmentation to a minimum. I’d even suggest not mentioning Matrix (as Jono Bacon did for IRC) and trying to keep (almost) everything here, but I suspect that might be a step too far.

Thoughts?

6 Likes

We did officially adopt Libera over OFTC, so it makes sense to me to officially unadopt Libera if it’s no longer an official medium, even if we don’t officially adopt OFTC in its place. The lack of IRC bridge has prevented me from participating in the real-time community meetings, so restoring the bridge to Libera our making a new one to OFTC would improve things for me.

3 Likes

So, I promised some data, and here it is.

For context, this is:

  1. Matrix data direct from the REST API
  2. IRC data courtesy of @gundalow who maintains a bouncer
  3. Forum data from, well, here :stuck_out_tongue: 3.

We’re comparing like-for-like engagement here:

  1. Matrix users who posted some message
  2. IRC users who posted some message
  3. Forum users who posted or liked something (i.e. engagement)

Two things jump out at me. First, Matrix overtook IRC before the bridge broke. So I think the choice there is pretty clear, and I won’t rehash what I said above.

Second, though, the forum has already overtaken both! And notable, it overtook IRC (a decade-old known channel) pretty much from day 1 in Sept 2023 (yes, there was a spike on launch day, but the smoothed line is higher). I said there was appetite for this tool - my interpretation of this data is that I was right.

So, if I were to pick one place to direct users, to put in our READMEs, to write in our docs, and to send people to from meetings/conferences - it’s here, not to chat. By all means, lets have room details in our Working Group pages, and lets have more meeting details in Events so people can find them. But the era of “chat as the primary communication” is over, according to this. And having the whole community here has enormous value.

4 Likes

I need one more factor to be able to make sense of the data: how much overlap is there in unique visitors? If it’s the same 135 people in all three week-to-week, then it really doesn’t matter which one you keep. (Well, unless it isn’t the Forum!) But if we’re looking at three largely unique groups of people with only marginal overlap, then we have a different problem.

3 Likes

The data viz is breathtaking.

Your conclusion aligns with my experience that chat favors frequent interactions about dynamic, time sensitive content.

Forums favor less frequent interactions about long(er) running topics (eg. Reddit posts tend to be worth reading even years after posting)

Outstanding graph

2 Likes

If one asks on irc and someone is answering on matrix, then you count 1 for irc and 1 for matrix.
If that happen on the forum (one asks, another answers), you’ve counted 2 - and the forum wins.

But the era of “chat as the primary communication” is over, according to this.

IMHO you have to sum the matrix and IRC engagements. They are the same medium (chat).

Fair question, but difficult to answer. There’s no way to map users between the systems - some people do fill out the questions I put on the the forum signup, but not that many. So where the names are the same, you could assume it’s the same person - but where they aren’t the same, there’s no way to aggregate them.

I’ve also glossed over the fact that I’ve actually got users-per-day in my data set, and then I’ve summed that over each week to remove some noise. That means I could be double-counting there too - but I’m not, the result is the same, it’s just a lot more noisy :slight_smile:

I didn’t lead with that as it’s harder to parse :stuck_out_tongue:

Thank you <3 - and I agree, chat is for bond-building in small groups, it favours repeated small interactions that build contact between people.

(For those interested, the code is in R and is fairly simple - it’s just that R’s defaults look really good. Code in the spoiler :slight_smile:)

Graph code
# Assume 3 tables of "day, n" for unique users per day

library(tidyverse)

inner_join(matrix_sender_per_day, irc_sender_per_day, by = "day") |>
  inner_join(forum_visits) |>
  rename(Matrix = 2, IRC = 3, Forum = 4) |>
  pivot_longer(cols = c(Matrix, IRC, Forum), names_to = "Type", values_to = "n") |>
  drop_na() -> total_chat

total_chat|>
  # Uncomment these if you want users/week
  # mutate(day = as.Date(cut(day, 'week'))) |>
  # count(day, Type, wt=n) |>
  ggplot(aes(x=day, y = n, colour = Type)) +
  geom_point() +
  geom_line() +
  geom_smooth() +
  theme_minimal() +
  scale_x_date(date_breaks = "1 month", date_labels = '%b') +
  labs(title = "Chat/Forum Engagement", x = "", y = "Unique users")

It’s a fair point, but I think it only works if the bridge was still present, so that they act as one medium - it isn’t. This topic started off being about which of those two chat systems to choose (I don’t see OFTC as a likely outcome, for the record), so I’m adding a third option to the mix.

For the record, I don’t ever want to see chat go away, and I still maintain that the embedded Discourse chat isn’t good enough for us. I just think that our first-place-to-visit for new people should be here. The use of deeplinks allow for a pre-created catgory/title/tags link in anyone’s README, and I think that’s the perfect way to get people to start asking questions. Especially given the traffic)

1 Like

For those that didn’t see it, I’ve created a separate discussion around The Forum being the default place. By default, I mean the main one advertised. Would love to hear you thoughts in this thread Proposal: Consolidating Ansible discussion platforms - #7 by gundalow.

I know (maybe ironically) we are talking about reducing fragmentation, and I’ve created a separate Forum Thread, though I do feel IRC (in relation to Matrix) (this Forum post) and Proposal: Consolidating Ansible Discussion Platforms (The Forum as default) are different topics.

Either way, feedback is important, so let us know what you think.

3 Likes