1. Keep topics related to the #channel you are in. Randomly arguing the finer points of Salsa music on #dev would break this rule.

2. Programmers are known to curse and engage in flame wars. This is fine in channels like #random, but it's to be kept at a minimum elsewhere.

3. Comply with channel operators. They will time out or ban users who are visibly out of line, at their discretion and interpretation of what that means in context.

In the end, we want a toxic-free server with caring programmers helping each other.

Simplified History

IRC stands for Internet Relay Chat (RFC 1459), and it's a protocol designed to dictate to a programmer the rules of how to exchange messages between clients and a server in an organized way—this is known as the client/server networking model. If you were to write a C program that implements the server rules of the IRC protocol, and then you run that program, you've made an IRC server. All you'd need is to similarly write a client that implements the client rules of the IRC protocol, and provide that source (or compiled build) to users and have them run each client as they connect to the server through a valid port number. If the client you programmed allows users to write a message through a supplied interface (e.g. typing on the command-line), the server will broadcast it to all connected clients. Chat services such as Slack have relied on an IRC backend before implementing their own. Twitch chat still uses IRC. It's the simplest, oldest, and most well-known form of real-time communication method across the Web. There's more involved, such as the concept of channels, operators, and queries, but that's the general gist of this chat mechanism.

Per tradition, people ask "Are you on IRC?" instead of "Do you use a chat system that implements the IRC protocol?" to simplify the conversation.

WeeChat is an ncurses-based IRC client, available for Linux, Unix, BSD, GNU Hurd, Mac OS X and Windows (cygwin). This short guide assumes you have installed WeeChat and the CA certificates – on Arch Linux: pacman -S weechat ca-certificates – launched WeeChat and have your typing fingers poised to get yourself into the Handmade.Network IRC.

To add the secured (SSL) Handmade.Network IRC server to WeeChat, autoconnect to the server upon launching WeeChat and autojoin the #dev, #hero, #hmn and #random channels upon connecting to the server, run the following command:

With all of this set – and I apologise that it couldn't be a one-liner – you should be able to invoke /connect HMN and so find yourself joined to #dev, #hero, #hmn and #random. To then navigate between these buffers, press Alt+1 (where 1 is a single-digit number) or Alt+j [release] 10 (where 10 is a double-digit number) corresponding to the buffer number of the channel you want. If this is your first encounter with WeeChat then you will want to install buffers.pl at the very least, to make navigating between buffers more pleasant:

1

/script install buffers.pl

If you're enjoying WeeChat so far, stay tuned for a walkthrough of my setup, to give you some ideas for making a really pleasant IRC environment.

Do you really need to set ssl_fingerprint with weechat? My understanding is that weechat will verify certificate chain automatically. So as long as you have installed proper CA roots, the weechat ssl connection will validate correctly without explicit fingerprint.

Setting ssl_fingerprint will give problems to users after 2017-04-04 23:59:59 UTC, when current SSL cert will expire.

Ah, cheers Martins. I'd struggled to get SSL connections to work properly, and setting ssl_fingerprint has been the thing that helped. I've just cleared the ssl_fingerprint in favour of /set weechat.network.gnutls_ca_file "/etc/ssl/certs/ca-certificates.crt" as per the Arch wiki and have successfully reconnected, but I'll keep an eye on it to make sure it keeps working. I'm pretty sure I'd set this previously before having successfully connected, and I'm just wondering now if the the previous successful connection with the fingerprint is somehow cached, preventing it from failing. If it does keep working, I'll remove the ssl_fingerprint setting from the post.

Yeah, I'm pretty sure it's not cached anywhere. I'm using weechat on Arch, and when I connected to handmade.network I did it with SSL without setting fingerprint (and without connecting to plain IRC before). Connection just worked. There's no need to set weechat.network.gnutls_ca_file option, it's default value is already /etc/ssl/certs/ca-certificates.crt. It's pretty much package maintainers responsibility to set these kind of values to have distro-specific settings (if needded).

Btw, I think it's better to use this format to identify yourself to nickserv: "/msg nickserv identify YourPreferredNick ${sec.data.HMN}" If your nick is taken when connecting (somebody else connected just before you), then you'll get assigned temporary nick - YourPreferredNick_ or something. Then nickserv won't be able to identify you. With your nick explicitly set before your password will identify you with your real nick.

We've used it in the past, and it is indeed convenient.
However, it's unaffordable to supply a Slack account to all 1366 members and counting.

And people will say that it can be used for free. This is certainly the case, but not if you care about logs. Logs only go back so far on the free Slack accounts, and those happen to be very useful when you end up using Slack to discuss all manner of development related things that you may want to come back to later.

But all this IRC hassle is simply inconvenient. And there is no offline history, as I've got it (I can be wrong). Even using compiler from command line is far more trivial than IRC. I will give it another shot, probably. And there are forums and twitter, to say.

You should look into getting a Discord server. They fulfill all the functions of a IRC, Slack, and a Ventrilo/Skype-type thing as well. Best of all it is free and supports a large amount of users. Recently Reactiflux moved to it from Slack for some of the reasons talked about in this comment thread. You can read about that through the following link.

Discord not having a desktop linux client I would say already removes it from a list of potential alternatives, though having used both Slack, IRC and Discord, I prefer IRC way more than all the others ones

As far as Discord is concerned, I see more problems than solutions there:

Like Slack, and unlike Mattermost, there's no 'community server download' that means we can run it on our own infrastructure. We'd prefer not to be beholden to more 3rd parties than needed.

The number of people looking for voice chat (in this community) can probably be counted on one hand. Personally I consider it an anti-feature, but if it's there and can be switched off, meh. It's not a worthwhile enough improvement over IRC or Slack to switch over for on its own, let's keep it at that.

It's specifically tailored to gaming communities, from the looks of it. Which is nice, but we're not a gaming community.

Slack and Mattermost allow posting code snippets, integrations with other services and you can even supply these yourself. It appears Discord allows for posting images and links and that's about it?

In other words, Discord can't seriously be considered to be a replacement for Slack. For IRC, sure, but we have deeper integration between the website, our GitLab instance and other things in mind.

Following on Kelimion's reply on Discord I agree that it is not what we are looking for. It may be good for some groups but overall it has to many downsides for it to really be considered.

Also Kelimion's comment on voice chat not really being useful for a lot of people is true. And for those that want to use voice-chat Soul is running a Teamspeak3 server that holds 512 we don't use even a quarter of that ourselves. So if people are wanting to voice chat that is a place users can come. You can either message me(Spector) or Soul on IRC, or use !ts in #random of IRC for a link to the server. If you do decide to use the TS server please respect the admins and moderators. If you are from here ask to be put in the HMD group so you do not have to request talk power in some channels.

I look forward to seeing some of you on the TS server if you choose to use it.

The Sub-section of the TS you are looking to join is Under Communities->Handmade Network -- the list of channels can grow as people have different needs.

If some questions are had. Contact me or soul on IRC.
--
Dustin (Spector) Specht

Embedding it might be nice while we develop our own web client (which chronaldragon and effect0r have been working on). We want the site to be as self-contained as possible so we have no one else to blame but ourselves for speed hits, but Kiwi looks really good and I like where they stand. No reason to not use their service for now..