LWN.net Logo

Using Irssi to communicate within free software projects

June 26, 2007

This article was contributed by Joey Schulze

Many developers of Free Software projects discuss and coordinate issues of their projects via Internet Relay Chat (IRC). Intelligent tools like Irssi help maintain sanity during the conversation.

Due to the nature of Free Software projects, unorthodox means of communication are needed. For many projects it is not possible for a developer to just walk into the next office and discuss matters. Developers are often spread over the entire globe like grains of sand.

Communication via Mailing Lists

While the official communication channels often refer to public mailing lists that are archived on the web, members of many projects also enjoy real-time chats as well. Both means share their unique set of advantages and complement each other.

One advantage of mailing lists is their asynchronous nature, which means that there's no problem for Europeans, North Americans and Japanese to discuss the same topic, no matter in which timezone each member lives. Since there is no immediate need for members of a discussion to be awake during the same time it will often last a few days at least.

Another reason for preferring public mailing lists as main communication channel is the archiving function. The discussion and its outcome are automatically archived on the Internet. They can be re-read later and referred to. The archive also demonstrates development progress and documents design decisions and their origin.

It helps interested people understand how the project evolves and gives users many ideas when problem solutions are discussed. Thanks to a large number of commonly used search engines, such discussions are indexed quickly and are found by using proper search keywords.

Real-time Chat Systems

Even though mailing lists have advantages, chat systems are quite useful as well. If you want to check out something quickly with other developers, opening an online chat and talking to those present is a lot faster than waiting for mailing list responses. It's like opening the next office door and asking your colleague, except that they might live thousands of kilometers away.

A real-time chat is similar to a small chat in the office. Even though the general topic may be work, from time to time there will also be a personal component, especially when its members have become acquainted with each other. This also helps bonding developers to a healthier community.

IRC Networks

Several networks provide Internet Relay Chat (IRC). In the early days of Linux development, a new network was quickly established as the Linux network. In recent times, many projects run their main IRC channels on either Freenode or OFTC. Both networks have been founded to provide services for Free Software projects in particular, and even buddy up these days.

Many developers stay logged in during the entire work day even though they may be working on jobs other than their favorite open-source project. This way, they stay in touch with their colleagues and can seek help from like-minded people for their other job when needed.

Several IRC clients are available, some provide a graphical interface, some are text-based. However, many developers prefer one client: Irssi. It is a terminal-based client that can be run under the X window system or on a text-based console.

Irssi Windows and Scripts

One important feature of Irssi is that unlike the older client ircII, every channel (i.e. chat room) and every conversation is virtually moved into its own window. Conversations don't clutter the main screen and it becomes easier to keep track of different conversations at the same time. This feature enables asynchronous use as well, since you don't lose the context when your colleague responds on the following day.

When activity is recognized in a channel, its window number is highlighted in the status line so that you notice ongoing conversations. Windows can be rearranged with the /window move n command so that the most important ones get lower numbers. It is possible to jump directly to a window with Alt-[1..0] (and Alt-q ... Alt-o for windows 11 to 19).

Another advantage Irssi provides over many other clients is the Perl interface that is used to improve the client and adapt it to a user's special needs. It is possible to load and unload scripts manually with the /load command. Scripts are automatically loaded during startup when they are copied or linked to in the directory ~/.irssi/scripts/autorun.

Many user-contributed scripts for Irssi are available on the web::irssi::scripts page. The Debian distribution also provides a large number of scripts in the irssi-scripts package.

Long Topic Names

A special feature of the IRC networks mentioned above is support for topic names that are longer than 80 characters. The topic for a channel usually contains a short description of what is going on in the channel, i.e. the scope of the channel it is associated with. Irssi displays this on the top of the window. The information can also be displayed with the /topic and /list commands.

Longer channel topics have been implemented for a reason. They are no longer used only to carry a description of the channel's scope, they also serve as a pin board onto which the most recent and important news or problems are announced.

For developers it may be important to read the topic. However, a problem arises when somebody changes the topic, there is no easy way to recognize the difference when it is more than 300 characters long and you don't have the old version stored somewhere. Note that the client only displays the first line of the topic and this depends on the width of your terminal.

For text files the differences are easily visualized, so why not for long topic lines as well? The solution is the script topic-diff.pl. When it is loaded each topic change is accompanied with a list of items that have been added or removed.

The script has been developed with a focus on development channels where the pipe symbol is treated as a delimiter of topic components. It will split the topic into components and report changes in them. If a component has only been moved within the topic, no difference is reported, of course.

By using a combination of mailing lists and realtime chat systems, it has become quite easy to stay in touch with project colleagues and watch development and discussions without losing sanity.


(Log in to post comments)

Using Irssi to communicate within free software projects

Posted Jun 28, 2007 4:11 UTC (Thu) by dberkholz (subscriber, #23346) [Link]

This article could have been a lot more useful to me if it went into more depth and taught me new things about irssi that I didn't already know. I expect many LWN readers who are already familiar with how free software is developed feel the same way. It was just starting to get interesting when it ended.

Using Irssi to communicate within free software projects

Posted Jun 28, 2007 10:45 UTC (Thu) by rwmj (subscriber, #5474) [Link]

Seems to be an extended advert for IRSSI. However it still wasn't clear to me what this client does which my preferred client (XChat) doesn't.

Rich.

Using Irssi to communicate within free software projects

Posted Jun 28, 2007 12:36 UTC (Thu) by Guhvanoh (subscriber, #4449) [Link]

... and no screen shots either.

Using Irssi to communicate within free software projects

Posted Jun 28, 2007 21:40 UTC (Thu) by njs (guest, #40338) [Link]

Advantages over xchat? "Runnable in screen(1)", mostly. This matters more to some people than others.

Using Irssi to communicate within free software projects

Posted Jun 30, 2007 5:14 UTC (Sat) by jordanb (guest, #45668) [Link]

Lots of IRC clients run well in screen, and *most* window different channels. I've never seen that doesn't besides the original irc and ircii.

I guess this thing is scriptable in Perl.. and that's useful for Joey, not for me. If I had a need for a scriptable IRC client I'd probably use erc in emacs. If I have to use a crusty old language that I don't know at least it's going to be an interesting one. :)

By the way, I use "lostirc', still a gtk client but with a teeny tiny footprint compared to xchat.

Using Irssi to communicate within free software projects

Posted Jun 29, 2007 11:27 UTC (Fri) by ekj (subscriber, #1524) [Link]

This is LWN.

You don't need to explain that it is possible to communicate with other developers over mailing-lists and/or IRC.

You don't need to explain that many developers are geographically dispersed.

You don't need to explain the difference between real-time chat and email, nor why one migth want to use both types of communication.

You don't need to explain what "IRC" means or what an "IRC Network" is.

And you very very definitely do not need to point out that terminal-based programs will generally also work in an xterm (or equivalent)

However, when you remove this useless fluff, what's left of this "article" is: 'There exists a terminal-based IRC-client named Irssi, it can have several windows, and can be extended by scripts. One such scripts makes adjustments to topic-handling.'

Which is completely useless. Sorry, but it's the truth.

Using Irssi to communicate within free software projects

Posted Jul 3, 2007 22:21 UTC (Tue) by k8to (subscriber, #15413) [Link]

I would not go so far in the criticism, but more detail on effective communication using irssi would possibly be neat, if there is more detail to be had.

Using Irssi to communicate within free software projects

Posted Jul 4, 2007 6:16 UTC (Wed) by ekj (subscriber, #1524) [Link]

Yeah, Ok, I was being a bit harsh, and for that I apologize.

Still; it would be nice, as you say, to get significantly less of the useless surrounding fluff and more information about what, precisely, is special about the client, and why, precisely, anyone should care.

I don't think I'm much off the mark in claiming that "everyone" on Lwn already knows what IRC, xterms and mailing-lists are.

Copyright © 2007, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds