Friday April 24 2020 • posted by james

Pinned Channels

Pinned channels are a new way to keep your channels and conversations organised.

You can pin any channel or private message to the top of your list from the menu (gear icon) or by pressing and holding in the mobile apps.

Pinned private messages won’t automatically archive so you can keep easy access to them.

Thursday January 16 2020 • posted by russ

Report on the January 2020 extended outage

Last night we experienced approximately 12 hours of downtime between around 18:00 and 06:40 UTC, caused by a prolonged period of internet routing issues which our ISP has attributed to a failed line card in one of their routers. This was our longest period of downtime in many years and we’re very sorry for the disruption it caused.

Running a large service which interfaces with the venerable IRC protocol poses a different set of challenges to most modern web services: Firstly, we have to manage a large number of outbound IRC connections while ensuring as few disconnections as possible. Secondly, IRC networks expect our users to connect from a consistent set of IP addresses, and lastly, IRCCloud is subject to a high volume of distributed denial of service (DDoS) attacks.

These constraints mean that our outbound connection servers, which actually make your outbound IRC connections, have been hosted for years by a specialist DDoS-resistant hosting service provided by a major ISP. This is a costly part of our infrastructure, and it wouldn’t be economical for us to completely duplicate these servers elsewhere to mitigate against rare situations like the one last night. Switching to another ISP - even if we could find one to provide the required servers at short notice - would involve a long process of getting new IP addresses whitelisted by IRC networks.

Our current architecture also restricts us to running our outbound connection servers in relatively close proximity to the rest of our infrastructure (which is hosted on Amazon Web Services). Over the last few months we’ve been working on a significant update of our backend software to remove this restriction - in fact, we started rolling this update out yesterday.

These improvements will make it easier for us to investigate other approaches for our outbound connection servers in future, and we’ll certainly be discussing network redundancy with our ISP and future providers.

If you’re an IRCCloud subscriber, we’re happy to issue you a month’s refund in compensation for this downtime - drop us an email at team@irccloud.com.

Tuesday January 22 2019 • posted by james

Bouncer: connect with other clients

Today we’re launching one of our most requested features. Paid subscribers can now use 3rd party IRC clients to connect to the IRCCloud service, just as you would with a traditional bouncer.

Connect with another client menu item

Open the menu for one of your IRC or Slack connections and choose the “Connect with another client…” option for details on how to connect.

For IRC connections, you’ll be prompted to generate a unique server password.

Backlog replay

Note: backlog replay isn’t currently available for Slack connections

Bouncer passwords are shown to you in the following format:

bnc:xxxxxxxx…

If you’d like the bouncer to replay missed messages whenever you reconnect with your client, you’ll need to change this format to include a clientid of your choosing.

This is used to identify and track the messages your client has seen to make sure we only replay undelivered messages.

The clientid can be anything, but can’t include spaces. Just make sure to use a different id for each client you use.

Once you’ve chosen a clientid, rewrite your password in the following format:

bnc@clientid:xxxxxxxx…

For example, if your generated password was bnc:abcxyz and you chose laptop as a clientid, you’d connect with the following server password:

bnc@laptop:abcxyz

Security

A bouncer password grants full access to the associated network connection, so make sure to keep it safe.

You can revoke or regenerate a bouncer password at any time, in case you no longer need it or it becomes compromised. This will also disconnect any client currently using that password.

Backlog timestamps

The latest versions of most 3rd party clients support the server-time IRCv3 feature, which the bouncer will use to provide the correct timestamp for backlog replay.

However, some clients may need a little coaxing:

Monday May 14 2018 • posted by james

Slack integration

As Slack prepares to shut down their IRC gateway, it’s time for us to fully launch our native Slack integration for paid accounts.

We’ve been testing this in the labs for a couple of months so things are pretty stable now. To use our integration make sure you’ve upgraded your account, then open the Add a network screen from the web interface. You’ll see an “Add Slack Workspace” button on the right:

Add Slack button on the add network screen

You can also migrate any existing Slack IRC gateway connections to use our integration from the labs page or by choosing the “Upgrade slack integration…” menu item for a connection.

There are a few things you might need to setup in your Slack workspace for this integration to work, more details are available in our FAQ entry.

Here’s a side by side comparison of a workspace in Slack and in IRCCloud:

Slack and IRCCloud side by side comparison - Slack Slack and IRCCloud side by side comparison - IRCCloud

You should notice our Slack integration is a lot closer to the native Slack experience than the old IRC gateway was. Here’s a list of features we’ve added support for:

  • Avatars
  • Reply threads and reactions
  • Display names
  • Custom emoji
  • Message attachments
  • Message editing
  • Typing indicators
  • Status messages and emoji
  • Slash commands using /slack
  • Shared channels

These features are all built using IRCv3 extensions, and our integration functions as a standard IRC server, backed by the Slack real time messaging API.

For now, due to the authentication flow, it’s only available to paid users within our apps, but in future we might open it up to people running their own IRC clients.

Let us know how you get on with this integration, and send us any feedback/bugs/feature requests on Twitter, email or IRC.

Monday April 09 2018 • posted by james

Image avatars

Today we’re releasing image avatars, a new feature we’ve been testing in our labs section. They come in 2 flavours, public and private, and look like this:

You’ll need to make sure the “User icons” setting is switched on in Layout & Design to see avatars. There’s also a separate setting to disable image avatars completely.

You can click on an avatar or nickname to see a larger version of it in the context menu. Avatars will also appear at the top of private messages.

Public avatars

A public avatar will work on most IRC networks, using an image tied to your user ID, a bit like a gravatar.

Upload a public avatar from your account settings and it’ll be visible to other IRCCloud users on any server based on your ident/hostmask.

Private avatars

Private avatars are only available on private team servers for now, and you can use a different image for each team.

Choose a team avatar by clicking the user icon next to your nickname in the input box.

Behind the scenes

Private avatars work using an updated version of IRCv3 metadata, a deprecated protocol extension that we’re helping to revisit and restore. Technically, any IRC server or client could support metadata avatars today, they just aren’t widely implemented yet.

We use the metadata framework to set your avatar to an unguessable URL, that won’t be published outside of the team.

If you’re running your own bot on a team server, you can give it an avatar by uploading an image and configuring it to send the following command on connect:

METADATA * SET avatar https://example.com/your-uploaded-avatar.png

Public avatars work differently. They rely on a URL that maps an image to your user ID (the bit in your ident/hostmask that looks like sid3 or uid7). We use this to detect other IRCCloud users and check whether they have a public avatar by loading that URL, e.g. https://static.irccloud-cdn.com/avatar-redirect/3.

We don’t expect other IRC clients to support public avatars, since they only work for IRCCloud users, but they could if they wanted to. It’s intended as a stop-gap until IRCv3 metadata is more widely adopted, and a way for people to try out and get used to avatars on IRC.

As usual, let us know what you think on Twitter, email or IRC.