04 Community tools: Chat programs, blogging and conferences

This post is the fourth 'lesson' in the Participating in Free Software
LinuxChix course. You can find previous lessons at
http://www.linuxchix.org/content/courses/tools/ . Questions and
discussion are welcome, please make sure the string "[Tools]" is in the
subject of your mail.

Participating in Free Software is part technical stuff, part socialising
and community. You can go either way on this: you can limit your
interactions with other developers to patches and technical mailing list
posts. This is a good option for occasional contributors and time-poor
people as well as anyone who is just not interested in socialising with
fellow Free Software developers much. At the other end of the spectrum
are people who organise much of their lives around their fellow Free
Software developers, from organising local user groups, spending a chunk
of their day online and spending their holiday time either at software
conferences or visiting fellow developers.

Much of this course is aimed at describing a certain set of technical
tools for working collaboratively on Free Software: ie tools for people
interested in developing, whether or not they're interested in social or
semi-social interactions. This lesson is the exception, it covers some
of the tools people use to build and maintain social and semi-social
networks.

It's interesting how much socialising with developers can effect your
technical contributions and your membership in the community. If people
have met you online or at a conference, and you seemed sane and keen, it
can be a lot easier to get them to trust you enough to spend time
looking at your code, and it makes it more likely that they'll want to
mentor you personally. Assuming that you have the time and the social
energy and skills, spending part of your time interacting with fellow
developers in a social medium can draw you into the community
comparitively quickly relatively to filing bugs or even fixing them.
(Again though, this route isn't for everyone and the other more purely
technical one works for most projects too, and better in some other
projects.)

This lesson will cover three ways of interacting with developers in a
more social medium: chat programs, weblogging tools and attending
conferences.

--- Chat programs ---

The most common online chat used by developers is Internet Relay Chat
(IRC). IRC is an old messaging protocol, pre-dating the programs and
protocols known as Instant Messaging (AIM, ICQ, MSN...) Like them, it is
a real-time chat protocol. Unlike most others it is group focussed and a
number of users gather in a channel. Private chats can happen but aren't
the focus.

A reasonable number of Free Software projects not only have a mailing
list and software repository, they have an IRC channel in addition. If
you're primarily interested in development rather than discussion on
other topics, then you may find IRC frustrating, because most channels
host substantial off-topic conversation. On the other hand, if you're
interested in spending some social time with other developers, or at
least overlooking the off-topic conversations in order to be there to be
part of fast paced technical discussions, IRC may interest you.

Because IRC is a faster medium than e-mail, a lot of projects tend to be
partly run by discussions on IRC. It can be frustrating to be part of
these projects if you don't have the time or energy to put up with low
signal-to-noise ratios on the IRC channel, or if you're in an
inconvienient timezone to the rest of the developers. Some projects have
needed to institute policies along the lines of "if a decision is not
written done in [some official place, like the website], then it wasn't
made" but most projects muddle along with some participants finding out
things quickly by watching the IRC channel, and others finding out more
slowly as discussions filter out to mailing lists and bug trackers. If
you join a project and feel like a lot of decisions are being made in
private, it's worth checking whether they're actually being made on an
IRC channel.

Some of the more popular Linux IRC clients are X-Chat, a graphical
(GTK-based) IRC client; and irssi, a console (text) IRC client.

Most Free Software IRC channels are public and open to join. If you want
to check it out the easiest way is to join a large channel, say one with
50+ people in the channel. That way you're less likely to feel like
you're intruding in a group of friends and more likely to feel like you
have a ringside seat to public discussion and debate. Be sure to find a
technical channel if that's what you're interested in: IRC is also a
longstanding purely social medium. If you look on the IRC servers
irc.oftc.net and irc.freenode.net you'll find many technical channels.

--- Weblogging ---

Weblogging in the Free Software community had a relatively slow take-off
due to suspicion based on people's uninteresting 'diary entries'. I've
written a longer summary at [1], but essentially the history of
weblogging takeup in the Free Software world was:

1. http://www.advogato.org/ -- originally conceived as a mentoring
community, the only feature that really took off was the idea of the
'diaries' where many people wrote about their technical work

2. Planets. These are collections of weblog entries by people in a
community. We have our own planet at http://live.linuxchix.org/ and
there are many others listed at http://planetplanet.org/

One of the best features of the rise of weblogging about Free Software
in general and of the Planets in particular is that they're very
accessible to outsiders. You don't need to join a mailing list or an IRC
channel and wade through loads of text, you can just go and skim a
website to find developers discussing their projects.

Have a look at:
- http://planet.gnome.org/ -- Planet GNOME
- http://planet.debian.org/ -- Planet Debian

You can almost certainly find a planet for your own distribution these
days and probably for many larger individual projects too.

--- Conferences ---

Free Software conferences are gatherings of developers. Usually they are
organised around a daytime speaking program, but just as important are
workshops (usually called "BOFs", ie "Birds of a Feather" sessions) and
informal meetings.

Conferences magnify both the advantages and disadvantages of IRC in many
ways. If you're time-poor or shy, they are hard to make time for and
hard to participate in. In addition, they're expensive (especially if
you don't live in an area with its own conferences) because you need
to travel to a physical conference location. On the other hand, they're
usually quite an intense experience: a lot of work and planning gets
done, and there's the usual effect where people spending a lot of time
together in a strange place tend to bond relatively quickly.

Free Software conferences aren't quite the same as academic conferences.
The purpose of talks is more informal: it's literally to let people know
about your work and "sell" ideas to them. It doesn't usually have the
second function of academic conferences where the act of writing and
presenting a paper itself is a career move. (This can actually be
limiting for the odd academic attending, because they don't get the
usual publication credit.) Secondly, at many conferences a smaller
proportion of the attendees are speaking.

If you're interested in attending a conference, this is typically what
you need to do:
- visit the conference website and decide that you can travel to that
location at that time
- pay an attendence fee (usually covering the cost of organising the
conference)
- arrive at the destination and look over the talks schedule and attend
interesting ones

If you're alone, one of the better ways to meet people is to volunteer
to be staff at the conference. Common volunteering jobs include
introducting speakers, looking after audio/visual equipment and being a
gopher. There's sometimes also cheap admission associated with
volunteering work.

You should also consider speaking if you've been doing interesting work
on something relevant (at many conferences talks run from coding to
organising a user group). Speakers are usually chosen on their speaker
biography and their abstract. Larger conferences will consider your
speaker biography more: they will be encouraged by some evidence that
you're a basically competant speaker. Giving talks to a local user group
is usually reasonable evidence, so you can practice there if you have
one. Martin Pool, who is often on the papers committee for linux.conf.au
has written a guide to writing a good abstract at [2].

Here's a sample of Free Software conferences:
- linux.conf.au -- http://lca2006.linux.org.au/
- Ottawa Linux Symposium -- http://www.linuxsymposium.org/
- Linux Kongress -- http://www.linux-kongress.org/
- Debconf -- http://www.debconf.org/
- GUADEC -- http://www.guadec.org/

-Mary

[1] http://puzzling.org/computing/essays/planet

[2] http://advogato.org/article/549.html