Discord Server

Background

Much of the work of running #include <C++> happens online on our Discord server, in channels dedicated to that purpose. In addition, the server has dozens of channels for discussing various topics that are relevant to C++ developers and other members of our community.

All our channels are moderated, to ensure that we remain a welcoming community. See Moderation.

Getting Started with Discord

To use Discord, you can use a web page, or clients for PC, Mac, and Linux desktops as well as for phones. When you follow our Discord link to join, you’ll be given information about clients you can install.

When you join, by following this Invitation to Join Discord, you will receive a copy of our Code of Conduct and a bot will welcome you in our #welcome channel. Often people who are online will say hello, and you can introduce yourself there.

Using our Discord for programming help

We welcome newcomers and learners and work hard to create a positive and welcoming atmosphere. For some general advice about asking for help online, including what to provide when asking on Discord, please read How to ask for C++ coding help by one of our admins who helps many learners on the server. Asking for help effectively increases the amount of help you get from busy people.

Channels

Selection of Discord Server Channels

We try to have separate channels for distinct topics, for example the #compilers channel has entirely different topics than the #testing channel. See Choosing a channel to post in, below, for a list of the more commonly-used channels.

Things to note in the above screenshot:

  • The coloured #include logo represents our Discord Server.
  • Channels are shown in a sidebar (which you may have to open with a hamburger menu button, if on a small screen).
  • Channels with a bold name have messages you haven’t yet seen.
  • Channels with a non-bold name do not have any new messages.
  • Channels have a symbol in their name. The channels above are all public, and so have a globe in their names.

Most channels display their purpose. This can give you confidence you’re posting in the right channel.

In the desktop and web clients, it’s at the top of the window, to the right of the channel’s name.

Purpose of Discord Channel Shown on Desktop

The mobile apps have it when you open the members list on the right:

Purpose of Discord Channel Shown on Mobile

Choosing a channel to post in

You will find generic channels where you can start a conversation about the topic you are interested in. Sometimes, your question or contribution might relate to a certain domain or narrower topic. In those cases, checking if we have a channel that relates better to your question or contribution might help you find more engagement in your conversation.

Don’t be afraid to post in any channel: people will let you know if it would be a better fit in another one.

C++ and ecosystem:

Some special purpose channels:

  • #meta-discord: questions or suggestions about #include<C++> community and discord server
  • #meta-website: questions or suggestions about includecpp.org
  • #show-and-tell: share with us something you created or find interesting, be it some code, a blog post about C++, an open source project you are collaborating on,…
  • #accessibility: making your software work for a wide variety of users
  • #job-posting: publicising and seeking jobs. You can find the rules to job posts as a message pinned to the channel.

We also have channels for many C++ conferences. See #conferences and the other per-conference channels in the same category.

Direct Messages

Discord provides a capability for sending private (direct) messages (DMs) to a single user. In most cases, requests for help or for more information belong in a channel, such as #cpp-beginners and #cpp-general for C++ questions. Reserve DMs for conversations that can only be one on one, and understand that some users may prefer not to have such conversations. Remember also that some may be in a very different time zone from you.

To send DMs, you either need to have a Discord server (such as #include <C++>) in common, or be Friends.

Managing Message Volume

Muting channels

  • If a channel doesn’t interest you, you can mute it, then the channel name will be faint, such as the #gpu channel in the screenshot above.
  • You can still read muted channels at any time.
  • You can also hide muted channels, in the server settings - see “Hide Muted Channels” near the bottom in this image:
    • Server Settings

Channel Groups

  • Channels are grouped by category, to keep like-with-like.
  • You can collapse categories, which hides all contained channels with no new messages, as shown below:
    • Selection of Discord Server Channels - Some Collapsed

Roles

Overview of Roles

If you are an experienced Discord user, you might be familiar with using Roles to describe yourself.

Roles are also used to give particular users various permissions.

People with specific roles have coloured names. You can click on a person to see all their roles.

When users first join the server, they have no roles. In this broad section, we describe the ways that we use Roles here.

Pronouns

A very important use of roles on this server is for pronouns. Users join and leave pronoun roles themselves.

A user with she/her role

A user with multiple pronoun roles

Usually on this server we talk to each other. Occasionally, we talk about someone: “She said her error was intermittent, though.” If the person you are talking about has a coloured name, click on their avatar or their name, to see their roles and learn what pronouns to use. Guessing pronouns from names or avatars, or just assuming everyone is male, is not ok on this server.

Most of our roles are solely to let others know your pronouns. You can add these yourself, by typing a command such as:
!pronouns she/her

To see all the pronouns use:
!list-pronouns

Our original pronoun list came from Pronoun Island and we added “no pronouns” and “any pronouns” to it on request. We will consider requests for more pronouns carefully; please ask in #meta-discord.

Importance of pronouns

These roles are for pronouns. If you’re unfamiliar with some of them they might be surprising, or even funny, but do not treat them as a joke. We take pronouns seriously in this Discord, as should everyone, given our Code of Conduct. If you’re unable to be respectful with these pronouns, then you’re not respectful to our members and this Discord may not be a place for you. Using the pronouns properly shouldn’t be a hard thing to do.

Occasionally, someone new to the server is unaware of the purpose of these pronouns, so we have the following, which writes the paragraph above:
!pronouns-purpose

Permissions

Another thing we use roles for is to control access to some channels. If you don’t have access to a channel, you won’t see it in the list.

You may see some users with non-pronoun roles. This section explains them.

A user with multiple permission roles

Established

From time to time, users who are active and participating are granted the Established role.

Some channels that appear to be missing, such as #off-topic, are in fact restricted to Established users. These channels naturally lead to discussions that include your name, history, where you live now … We don’t want to lead people into those discussions in public, because we often all forget that parts of this server are very public. Those globe symbols on some channels are a reminder of this. Anyone can go to our web site and click the “Join Discord” link, and there are people on this planet who are not nice. We want to make sure everyone is protected without everyone having to constantly remember to protect themselves.

These protected channels are restricted to Established users as a privacy mechanism - that’s what the lock in the name reminds us of. Please don’t share information from them elsewhere unless it’s clearly public.

In these channels, you might read about problems minorities have that you are not familiar with and want to know more about. Please keep in mind that people talking about these problems suffer from them and have to explain them on a daily basis. Be wary not to add to their burden and never contact them privately for more information about the matter unless they explicitly offered you to.

Organisers (Purple)

Channels used to actually run #include <C++> are restricted to Organiser members. Here we make plans for specific conferences and events, as well as our overall plans, work on this website, and so on. The Organiser role is offered to people who appear interested in it, or to those who need it to assist the group.

Moderators (Blue)

Moderators enforce our Code of Conduct according to our Moderation guidelines. If you need to contact a Moderator, you can type @moderators, ideally in the channel where the problem is happening.

Administrators (Red)

Administrators can do everything, including go in every channel. They can be contacted with @admins.

Only Administrators can create new channels. You can make suggestions for new channels in #meta-discord.

Other Permissions

C++ Community Facilitator

C++ Community Organizers who run user groups, conferences, and podcasts are granted this role to enable access to some channels for their discussions.

Other Information

Note: we only have text channels, as voice channels are very difficult to moderate.

Emojis

We do not allow custom emojis.

For some people, animated emojis cause real, physical illness: it affects their brains badly. So some people’s fun is other people’s pain. This is one of those things where we have opted for being kinder to our members - which is a big part of the culture here.

In particular, it does not matter that there is a user setting to turn off animated emojis because people only discover they need that after it’s too late and they have been made unwell.

We have also learned over time that some emojis which look fun are actually really harmful or painful references to some of our underrepresented folks here. Whilst we don’t expect everyone to know all those references, it’s easier if we know that the emojis available here are none of those. We don’t allow these symbols on our server.

Having said that, we do add new emojis here periodically, so if there is a specific emoji you would like added, please raise it in #meta-discord, letting us know what it means to you.

Bots

There’s @Dyno who greets people in welcome, lets you set your pronouns, and who will, on request, remind us of a few server rules.

And we have @npaperbot who lets you find papers for the C++ Standards Committee, also known as wg21. To use it, simply @mention the bot with a paper number or a search term.

Examples:

  • @npaperbot search "sy brand"would search for an author name or a term like monadic
  • @npaperbot p0650 returns a specific paper
  • In addition, if you put a paper number in square brackets, e.g. [P0000] or [EWG9999] in any sentence (even without @mentioning), it will look up the paper for you.

The bot doesn’t have permission to run in every channel. If you have questions or comments about @npaperbot and the marvelous work of @Mara who has wrangled it into existence for us, please use #meta-discord for that.

Avoiding “Guys”

Many English speakers have a habit of addressing groups of people as “guys”, saying things like “thanks guys” or “hello guys”. While this may be intended as a gender neutral word, it doesn’t feel that way to everyone. As a reminder, the @Dyno bot can summoned by typing !guys, and will say:

Many of this server’s members are not guys; you may want to consider using more inclusive language (e.g. folks, everyone, or just dropping the word altogether)

Occasionally, someone new to the server feels the need to get us to change this policy. We take it very seriously: this is an important part of the welcoming and inclusive culture of our community.

On the rare occasions it’s needed, we can express this with another response, summoned by typing !guys2, which says:

We know you didn’t intend any offense, and changing the way you use the word “guys” may be difficult, but please trust that we have done our due diligence on it and we will not change our policy. This is an important part of the welcoming and inclusive culture of our community. For more information, see “guys” in our Resources section: https://www.includecpp.org/resources/language/#guys

Usernames, nicknames and avatars

Unacceptable names and avatars

Many Discord users have usernames, nicknames or avatars that fit a “gamer persona” well but might not suit you on this server. Specifically, references to abuse, violence or slurs are upsetting to other users and against our code of conduct.

You may get a message from a moderator about your username, nickname or avatar. Even if you didn’t intend any offense, if a moderator asks you to change some aspect of your account, doing so is a pre-requisite for staying on the server.

Here are some instructions from Discord:

Mentioning users

Users with non-ASCII characters in their names may be hard for you to “mention” with an @. If you need to mention such a user, you can right-click their name and use the Mention option.

We have turned off the ability to mention @everyone, @here, @channel and so on. Simply posting in a channel is enough for all those interested to know there is a message. Be cautious about mentioning an individual; do not use it to bring someone to a channel just because you want something from them.

Similarly, in an ongoing conversation it is not necessary to use the reply function every time you post. This pings the person you’re replying to and can be annoying. Save the reply function for times when two conversations are happening at once and you want to be clear what post your “yes” or “thankyou” applies to.

Linking to other accounts

It’s possible to change your Discord profile, so that it links to accounts you have elsewhere, such as GitHub, Twitter and so on. Other users will see these links when they view your profile.

This is optional. To enable it, go to “User Settings > Connections”.