Armchair Scientist Blog Thoughts on an open internet (and IRC!)

Posts tagged with 'opennet'

How IRC can change the world

A list of ways IRC can be utilised to replace closed systems;

Game networks and friend lists

I was reading this reddit comment about developers moving away from Steam as a content delivery platform. It ended with the sentence:

I hope everyone loves having 6-10 logins, friends lists, etc. because that's the land we're in now.

If I made a game, rather than (or in addition to) using my publisher's friend system (like Steam, or Origin/EA etc), it wouldn't be difficult to build an open system based on IRC.

You give the user an option for IRC details (a server, a channel and a password). You share these details with friends (you could have multiple servers/channels to keep groups seperate if required) and then, each game client that listens/posts to that channel can keep it's friends list updated.

It would be easy to implement/support:

  • Who is online (the nature of IRC shows who has joined/left the channel when they launch their game client)
  • Away status can be used to show what's being played e.g. /away is playing Civilisation IV (click here to request to join)
  • It supports chat, obviously
  • We could develop a convention/standard for invites/alerts that would work cross platform
  • This IRC server could be self-hosted, or a default provided as part of the game client (which would allow larger communities to discover each other)

Problem #5891 solved.

Make Your Own Privacy

If your privacy is in the hands of others alone, you don't have any.

The web is built on open standards and there are many ways to communicate freely and securely, but due to the proliferation of social media companies, almost no one outside of the geek communities seem to place the importance I do on controlling their own data and not being beholden to a proprietary, profit driven third party for their basic communication needs.

There are a number of promising free technologies we should be looking to embrace. Among them are Mastodon (, an open source version of Twitter, and PeerTube ( a decentralised video platform. Here though, I'd like to talk about a platform that celebrated it's 30th anniversary last year; Internet Relay Chat - IRC.


Internet Relay Chat isn't an product like the links above, it's a protocol that facilities communication in the form of text. You can choose from a list of servers to host it, and a list of clients to access it, or you can create your own.

As you may already know, IRC is basically a system of big group chats (called channels) all represented as hashtags i.e. #glasgow or #cookingrecipies (two decades before Twitter popularised usage of the term). It allows people to join or leave these channels, the channels can be private, or public, topics can be set, ban lists and rules can be enforced or relaxed, everything you'd expect to enable communities to come together and discuss.

By design, IRC doesn't store the chats, it has a number of caveats and limitations and there are some better options out there... That all said, IRC is free, it's been battle tested throughout the years - it does the one thing it sets out to do reliably and well plus it's extendable - it's a great platform to build upon.

Network layout

First, lets compare IRC to Facebook (or any third party company like WhatsApp, Twitter, Discord, Slack etc - they are all the same). This is what Facebook looks like from a very simplified network point of view. All communication between two Facebook users is routed through a Facebook server. The cloud here represents one, or multiple servers:

Facebook user graph

The path in orange shows how messages are sent between two Facebook (Messenger) users, i.e. to Facebook, then back to the user. This allows Facebook to monitor the messages for marketing purposes as described in their terms and conditions.

IRC operates identically by default (especially for the channels which are synoymous with group chats):

IRC user graph

The difference here is that IRC supports Direct Client-to-Client protocol, which means, if clients choose to (clients in this context means the program a user uses to connect/chat with on IRC), they can use the server only to facilitate their first introduction, and then all subsequent communication is done directly from client to client, bypassing the server and providing much greater privacy - something that isn't available in any of the other popular platforms. This is illustrated in orange:

IRC user graph

This direct communcation can be further encrypted (in addition to SSL) using any methods the clients can agree upon, and, as this is a direct client-to-client connection, file and data transfers occur at the maximum speeds both parties can support.

Other servers can be connected to the network and secured using a common key (an SSL certificate or similar), and those users can use the server to facilitate direct communcation from one server to another:

IRC user graph

In this example, the green line represents two IRC networks (or servers) that have been linked together (and therefore share a common configuration and private key). Users can be connected to (and only aware of) one server, but still be able to make direct and secure connections to users on any other server that is also connected to the IRC network they are using. In the above example in purple, two users can communicate directly without being on the same server.


When a connection is made to any server in the network, the Message of the Day (MOTD) can display a list of the URLs of the other servers in the network - clients can be configured with that list of servers so if anything happens to the current connection/server, it can reconnect to an alternative address transparently in the background.

This ensures redunancy - if anything happens to one of the servers (or domains) then the network will still continue to exist. More servers can be added at any time.

This network topology can be easily deployed on basic hardware to support tens of thousands of users and the bandwidth and resource usage is negligible.

What now?

Come join us using any IRC client and say hello. Connect to port 6697, there are more detailed instructions here:

You can also use the guest web login available at

Some related posts:

IRC in Glasgow in 2019

This is a account of how I'd like to see IRC used to bring together like minded communities in Glasgow in 2019 in video format.

I'll create some fictional channels/examples to illustrate what could be possible and show how users from different groups might interact.

You can read more about IRC, and why I think it's a good choice on my blog post "Make your own privacy".

Points to describe in a video about how to use IRC

  • Connecting to a server
  • Listing what channels are available
  • Joining channels
  • Creating channels
  • Using services
  • Channel modes, operators and banning/kicking users

Points to describe in a video about why to use IRC

  • Freedom of censorship (if you can't do what you want to do, then create your own network)
  • Redundancy. Multi domain name availability; for example, if you connect two servers together and then those two communities can interact and if something happens to one group i.e. their website expires, then the community can still exist - each time a connection is made the Message of the Day (MOTD) informs the user of alternative ways to reach the server if needed.
  • Ownership of data, it can be as open or as private as you wish

Points to describe about how to use IRC for the geeks/advanced users

  • Creating bots and importing information into channels
  • Using services for authentication/administration
  • Development of IRC services

Videos to follow.

My Website in 2019

It frustrates me when I see businesses or interest groups that focus their entire online presence on one platform that they don't control.

"Join our Facebook group to find out more!" or "Follow us on Twitter for updates!"

Then, once their group has grown to a certain size, they find out that they are only able to reach 10% of their audience unless they upgrade to the premium package, or pay a fee per 500 users and they have no option but to capitulate or slowly try to move their users to a new platform (which might not even be possible if you can't reach the audience in the first place).

Not to mention the censorship that some groups may face, whether that's objections from inside their own group, or clashes with the site-wide policies of whatever company they are using to host their communications.

The advice in 2019, is the same as the advice from 2005. Your website should be your main point of contact no matter if you are business, a community or if it's a personal page.

Once someone has been directed to your site, there you can point them to your Facebook, Instagram, Twitter or whatever social media you are using this year.

I'd recommend the addition of one extra line though. Something like:

Reach us on IRC at #yourgroup on

Then, in this channel, you can summarise the activity on the rest of your platforms in one place:

  • Whenever you, or someone in your approved list tweets, it's summarised there
  • Facebook posts from you or your list can be posted
  • An overview of updates to blogs or forums of interest
  • New posts to Instagram, reddit, or whatever other sites you use can be announced

This information leads to discussion and the instant nature of IRC allows the community to develop in ways that are much more difficult to achieve on forums etc.

Due to the nature of IRC you can immediately see who's active in your community and it bypasses the restrictions on contacting your customers/community introduced by the GDPR because you aren't emailing this information, and instead, the users are coming to your channel precisely because they want to be informed of what's going on.

See also A fictional case study of IRC in Glasgow in 2019


Over the past year or so I've seen comments decrying nonsense buzzwords for job titles like 'evangelist', 'guru', 'rockstar' etc. While I certainly agree that some of the titles I've seen are just awful, I've realised recently that I really do consider myself an evangelist (or an advocate) and I'd like to defend that title a little.

I've been aware of the job title 'advocate' for more than a decade - a friend of mine, Scott MacVicar, left Glasgow to move to the US and become an 'Open source advocate' - I thought that job title was a big step forward - I want nothing more than FOSS to be adopted and encouraged. Evangelist is basically the same thing, although I suppose it does have connotations with religion.

Anyway, it's literally a decade on and although open source software has developed tremendously I feel the very nature of the net has degraded to a point where seeing a recent joke post made me tremendously depressed (that's a strong word - is there an emotion somewhere between sad/upset and disappointed?):

I remember when the internet wasn't just five websites with screenshots of the others

That said, I feel like now more than ever is the best time to take the internet back to what it could be. People are being made aware how valuable their data is and it's up to us, the geeks, to show them how they can use the net and not be beholden to large companies that don't have their best interests at heart.

For me, this means bringing back older services that were designed to be robust, decentralised and federated.

The biggest challenge I face isn't technical, it's getting people to understand why it's important, how it affects them and how to take the first step in freeing themselves and their data.

I need to evangelise!

  • Step 0 Identify open source protocols or software to replace third party companies
Product/service Open alternative
Chatting/group communication IRC, Matrix
Forums/bulletin boards Newsgroups, NNTP
Search engines Gopher, Federated Bookmarks
Blogging Mastodon, GNU social
  • Step 1 Make sure we have decent web and mobile interfaces for all of these. People don't expect to install software any more, and they shouldn't have to. Many web clients already exist, some could do with improvement, some are almost non-existent.

  • Step 2 ???

  • Step 3 Profit! I'm not against companies making profit for a service well rendered. I'd just like to also have an option of self-hosting, or making the service non-proprietary. For example, with IRC, you could download a web interface like Kiwi or The Lounge, install it on your own server, and use it to connect to IRC. The alternative is: a company sets up a Kiwi instance and you pay a monthly fee for that and use it to connect to IRC. The important distinction is that you always have options - the choice to move to a new provider, or set up your own.

What now?

Take a look at the following:

Return to index