Nim: [TODO] create a nim slack team

Created on 27 Mar 2018  路  17Comments  路  Source: nim-lang/Nim

(also asked on https://www.reddit.com/r/nim/comments/6jqsjx/anyone_interested_in_having_a_nim_slack_team/ but that question was closed for commens)

In D we have a forum and IRC, but after slack was added it became very popular and a lot of discussions happen there now.
In particular the channels and threads are a neat way to organize discussions as opposed to having a single channel and single thread. Also slack can support IRC integration IIRC

Lots of people use slack (eg at work) and would make switching back and forth bw nim slack and other team slacks easy.

Tools

Most helpful comment

@dom96 do you mind sending me an invite for slack at timothee DOT cour2 AT gmail DOT com ?
thanks!

All 17 comments

Welcome to gitter.im/nim-lang/Nim ! :)

I'm aware of that; however I miss many of the functionalities in the more popular, widely used slack:

  • anyone can create channels, they're low friction and good to organize conversations around themes; having just 1 chat room just results in noise and doesn't scale when there are too many ppl
  • threads: likewise, allows threaded conversations to easily scope discussions and make them easy to follow
  • allows private channels for quick 1:1 (or more ppl)

take a look at the D slack to see how well these work (I can send invite if needed)

Why all your proposals look like "do as in D"?

I'm much more familiar with D and interested in seeing whether nim would be a good fit for my next projects instead of D ; besides it's always a good idea to borrow/steal features and tools from other languages (see also https://github.com/timotheecour/D_vs_nim/ to track these)

Unfortunately Slack will close its IRC integration on May 15th: https://get.slack.help/hc/en-us/articles/201727913-Connect-to-Slack-over-IRC-and-XMPP.

Also, we already have Discord, Gitter and Matrix bridges with IRC. We can also add #nim-foo, #nim-games, #nim-embedded like what was done for #nim-offtopic (though it's not as easily discoverable as on Slack).

On another note, Sketch, Bootstrap, React, Node discussion are also happening a lot on Spectrum.

In any case, whatever we do I think the first requirement is a Gitter, IRC, Matrix and Discord bridge.

@mratsim matterbridge is on of the best (if not the best) solutions for making bridges between different networks. It supports Gitter, IRC, Telegram, XMPP, Matrix, Discord and much more

We already have a Slack team. It's just a case of providing a way for anyone to join and a bridge between Slack<->IRC

@dom96 do you mind sending me an invite for slack at timothee DOT cour2 AT gmail DOT com ?
thanks!

It's just me, @Araq and @zah in there currently. It's our little chat room so I'll have to discuss it with them first.

@timotheecour Slack is not bad, but it has some problems:

Too many threads can also lead to fragmentation, you have a limited history for unpaid customers, and I can't see how easy would the slack threads map to gitter/irc

limited history for unpaid customers is a strong argument.

I recently discovered Keybase (eg https://keybase.io/) (which launched slack-like product in sept 2017) and been trying it, advantages (for this use case) are:

  • open source
  • very similar to slack (eg channels, etc)
  • free, regardless team size
  • has a cmd line interface

plus:

  • encryption (but not very relevant here...)

cons:

So, once chat search is implemented, this could be a viable option

Well I close this as rejected, slack seems to be the wrong solution for open source projects. A slack bridge is still very welcome as all other forms of bridges to other chat platforms.

I have my own personal slack bridge I use for my account using matterbridge. It would be nice to have an official bridge.

I had proposed bridging the Telegram group in the past but everyone wasn't as receptive to the proliferation of bridges. I don't see the difference in 3 vs 8 but that's just me.

  • @genotrance could you please share some details on how to set it up?
    can I read/write to nim IRC channel using slack?
    can I search nim IRC channel msgs using slack?

  • channels and lack of threads is the number 1 thing I'm missing when using gitter compared to slack; it results in very fragmented threads, harder to follow / search, and overall it's less efficient to use. Is there any way to use channels with the tools we're using?

To answer your questions:-

  • Yes, you can read/write - messages flow back and forth and appear as from you.
  • Yes, you can search depending on how much history your workspace saves.
  • You need to map each IRC channel to a Slack channel, as done below. That way, things are organized just as if using IRC directly.
  • There's no threads capability since IRC/Gitter have no such concept.

Here's a simple matterbridge.toml config file to bridge from IRC to Slack. Put it in a directory, download a release binary (or build on your own if you prefer) and run. You can add multiple IRC, Slack or Gitter servers/workspaces and bridge everything in one file. I could add your accounts to my instance but would need to know your tokens ;)

# IRC connection details
[irc]
  [irc.freenode]
  Server="chat.freenode.net:7000"
  Password=""
  UseTLS=true
  Nick="IRCNICK"                  # <= set as needed

  UseSASL=true
  NickServNick="IRCNICK"          # <= set as needed
  NickServPassword="IRCPASSWORD"  # <= set as needed

# Slack connection details
[slack]
  [slack.workspace]
  Token="SLACKTOKEN"              # <= set as needed
  RemoteNickFormat="{NICK}"

# Gitter connection details if preferred
[gitter]
  [gitter.name]
  Token="GITTERTOKEN"             # <= set as needed

# Bridges

# Create channels nim, nim-offtopic and nim-nologs
# in your Slack workspace

[[gateway]]
name="nim-irc"
enable=true
  [[gateway.inout]]
  account="irc.freenode"
  channel="#nim"

  [[gateway.inout]]
  account="slack.workspace"
  channel="nim"

[[gateway]]
name="nim-offopic"
enable=true
  [[gateway.inout]]
  account="irc.freenode"
  channel="#nim-offtopic"

  [[gateway.inout]]
  account="slack.workspace"
  channel="nim-offtopic"

[[gateway]]
name="nim-nologs"
enable=true
  [[gateway.inout]]
  account="irc.freenode"
  channel="#nim-nologs"

  [[gateway.inout]]
  account="slack.workspace"
  channel="nim-nologs"

# Bridging from Gitter to Slack if you prefer that
# Routed to nim-gitter channel in Slack workspace
# I have both so that I can see Gitter snippets quickly

[[gateway]]
name="nim-gitter"
enable=true
  [[gateway.inout]]
  account="slack.workspace"
  channel="nim-gitter"

  [[gateway.inout]]
  account="gitter.name"
  channel="nim-lang/Nim"

@genotrance thanks! I'm running into issues, eg:

[0000] INFO irc: Connecting chat.freenode.net:7000
[0002] ERROR irc: disconnect: error: closing connection: SASL authentication failed

I try putting the username and password I use when connecting to https://webchat.freenode.net/?channels=nim
eg: if I populate fields nickname and username with bob, and password with myawesomepassword here:
image

putting these 3 fields in Nick, NickServNick and NickServPassword results in disconnect: error: closing connection: SASL authentication failed

  • is Password="" correct above?
  • are the only fields I need to change marked as set as needed ?

Makes no sense why it doesn't work. Probably try removing the password=""?

Anyway, best to check out the sample toml for guidance.

https://github.com/42wim/matterbridge/blob/master/matterbridge.toml.sample

You could also just try nickserv auth rather than sasl. That's what I used to do until I ran into the following issue.

https://github.com/42wim/matterbridge/issues/482

Was this page helpful?
0 / 5 - 0 ratings