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)