CodeRefinery Zulipchat

The CodeRefinery zulipchat is where our primary discussion, planning, and action takes place. Many things are announced only via Zulipchat. This is a public chat and everybody is welcome to join, no invitation needed, and we explicitly invite anyone to give ideas in any channel or topic.

The chat is a joint community of CodeRefinery (teaching), NordicHPC (infrastructure), and Nordic-RSE (usage and software), which are other Nordic projects about scientific computing which share some of the same people. Together, we have a network of all aspects of modern scientific computing.

Unlike Slack, Zulipchat is very heavily threaded, and one can follow along without being active all the time. Respond within the topic (=thread) that is relevant, or make a new topic. Sometimes you can find old topics to revive.

Channels

Once you join the chat, you will be subscribed to some default channels. The first thing you should do is join some more channels, depending on your interest. Join more channels by clicking gear icon by the steams list on the left side on that chat, then selecting what you are interested in.

Gear icon to join a channel

The easiest way to find channels of interest is to go through the list and join whichever sounds interesting. You can always leave a channel again too.

If you mute a channel, you can see the contents if you click on it, but you won’t get notifications. If you mute a topic, it will be hidden from view but you can later unmute it in your personal settings. Under channel settings, you can request email notifications for all messages in a certain channel (possibly useful for the announce channels).

Default channels (everyone joining is automatically subscribed):

  • #events : Share information about courses, workshops, seminars or other events; can also be used to look for collaborators

  • #jobs : Share open job positions that others here might find interesting too

  • #greetings : New joiners are recommended to introduce themselves here, so we can welcome you. Other greetings/thanks also welcome!

  • #coderefinery : CodeRefinery organization: about the team, project, strategy, CodeRefinery Gitlab

  • #nordic-rse : Nordic Research Software Engineers: General discussion about research software and related topics.

  • #random : Memes, jokes, animal pictures, whatever makes you smile or does not fit any other channel :)

  • #general : Ideas, TIL/W (today I learned/watched), general discussions, tech stuff, …

  • #help : Community support. Ask questions related to anything about the topics on this chat (CodeRefinery, RSE, scientific software and data, HPC,…)

  • #lessons : Discussions about CodeRefinery (and other) lessons. There’s usually one topic per lesson and other related things.

There are also multiple sub-communities related to a specific event, group, region:

  • #aalto : Aalto University scientific computing community (+friends)

  • #aaltoscicomp : Aalto scientific computing support personnel

  • #advent-of-code : For chatting about the advent of code challenges

  • #cr-retreat : Temporary private channel for CodeRefinery writing retreat related discussions

  • #finland : Discussion related to activities in Finland (CodeRefinery, RSE, HPC, SciComp, anything else)

  • #hands-on-scicomp : Work on the https://handsonscicomp.readthedocs.io/ training map

  • #hpc-kickstart : Aalto’s twice-a-year kickstart courses (scicomp and HPC). Channel exists because the course is open to anyone and this is the coordination channel.

  • #nordic-rse-2025 : Nordic RSE conference 2025 organization

  • #python-for-scicomp : Python for SciComp coordination: A big course each autumn, public to the world. We are happy for any help here.

  • #rshour : Research Software Hour community and coordination. It is a weekly livestream about research software.

  • #SWC DLN/ELIXIR/UiB Dlab : a sub-community

  • #coderefinery-tools-workshop : Where we organize the “standard” CodeRefinery workshop each spring and autumn.

  • #workflows-course : Real-life cluster computing workflows course, “Tuesday tools and techniques for HPC”. A new course started in 2024

  • #hpc : Discussions around HPC in Nordics and beyond

  • #zulip: Zulip notifications and discussions around the chat platform

New channel announcements will be visible in #general, Zulip updates can be followed in #zulip channel.

You are very welcome to create new channels, e.g. for regional subgroups, such as #finland. You can also create topical private channels for groups that significantly overlap with our community. Currently, Zulip admins can’t add themselves or others to private channels.

Good practices and tips

Views

Recent conversations

To follow up on most recent conversations in chat, use recent conversations, which shows you all your channels, the number of unread messages per channel, starting with the most recent one.

Combined feed

To see all the latest messages in all your channels/topics, use Combined feed view.

Or read by channel or topic

Sometimes I see that I have many unread messages when I have been away for a while. Then I like to “zoom into” channels and read them by channel and topic. For this I start with the channel that I am most interested in. And I can return to the other channels later.

Notifications

You can set separate notifications settings for the full chat, channels, and topics.

Topic vs private message

Just want to share something with a small group of people -> Send a private message to multiple people instead of starting a new topic.

Search before creating a new X

Use the search function to search for some relevant keywords before creating a new topic. But also don’t be afraid to create a new topic. We recommend the search first because it can nicely connect to a previous discussion and those who participated previously can be notified about the new question or comment.

Mark as resolved

To indicate that a topic is resolved, for example because an event happened or a help request got resolved. This does not make the topic vanish but a small checkmark is added to the topic.

Too many unread messages?

Don’t be afraid to mark all messages in a channel or topic as read if you have been away for few days or weeks. Sometimes it can be more useful to join the current conversation rather than feeling “guilty” about not having read everything that happened in the last weeks or days.

Chat digest

If this chat is not your main “hang-out spot”, but you would still like to stay up to date, you can sign up for the CodeRefinery chat digest, providing one e-mail per week with the latest updates from the chat.

Sign up for the chat digest e-mail list.

Clients

Zulipchat can be used in a web browser, there’s a desktop app, mobile apps, and even a terminal client installable using pip.

Reacting and voting

We want everyone to take part in chat and express their thoughts, but of course people don’t want to give pointless agreeing replies (but you can always welcome to do that, too). So, we encourage everyone to use reactions in cases they want to express agreement/disagreement but not so much they want to send a message. Common reactions you might see are 👍, 👎 (thumbs up/down, agree with general sentiment), 🐙 (:octopus:, awesome/amazing/ace), and well, plenty more that are more obvious.

We also use reactions to express some idea of a more concrete vote, to empower people to take an action (otherwise, it is difficult to get a decision on anything). This is not formal or necessarily binding (so it’s not really a vote), but a useful intermediate system for a young project. If you see a message proposing something and you want to say, in no uncertain terms, “I think you should do that” or not, let us know by the following:

  • ↔️ (+0, :left_right:: I see this and am neutral.

  • 🔼, 🔽 (+1, -1, :upvote:, :downvote:) or similar: I agree/disagree with this.

  • ⏬, ⏫ (+2, -2, :double_up:, :double_down:): I agree/disagree with this and am willing to work on making it happen/finding an alternative.

If you want to do something, ask for opinions, and a reasonable time later it seems the sentiment is positive, consider yourself empowered to do it. If you are voting, feel free to be creative with emojis or numbers, but realize that other reactions may not be so explicit. Note that if you are negative, you should explain why or alternatives, otherwise your opinion may not be weighted so much. The person doing the thing decides what to do (and this is open source: we find a way for everyone to do what they need to do).

Do you think you aren’t important enough to vote? That’s wrong, because we are usually interested in the thoughts of everyone. We can see who voted and use that to weight our decision if needed.

Privacy

All activity (except private steams) should be considered public, and the data controller is zulipchat.com. Zulip admins can’t add themselves or others to private channels, but still: there is no contract guaranteeing confidentiality.