For those who aren't familiar with GNU Radius, can you give an brief
description of what it does?
Well, basically it is a centralized authentication and accounting system.
As such it serves two primary functions: when a user tries to access
the service, Radius decides whether the user should be allowed to do so,
and if so which permissions should he be granted.
The word "service" in
this context could mean various things: it could mean logging in
to some machine, accessing FTP, connecting to the Internet via
dial-up, etc.
Once the user was granted access to the service, Radius
begins performing its second function: accounting for this
service. This means keeping track of such parameters as overall time of
use of the service, number of bytes transferred and many others.
The most obvious use for such a system is for Internet Service Providers,
and indeed it is where Radius is used most often. However, other uses
are possible too.
What is the current status of GNU Radius, and can you tell us a little
about the history of the project?
It has reached its stable status. The project started three years ago. Back
than I needed a centralized authentication server and, having considered
several alternatives, I did not find the one that would suit my needs.
In my mind I envisioned a highly flexible system, which would follow
Jon Postel's principle:
"Be liberal in what you accept, and conservative
in what you send."
I also wanted it to be extendable via the use of some
extension language. So, I decided to write something like that. When
I started it, another goal emerged: to make the program as compatible as
possible with the existing implementations, which would simplify migration
to it.
I know that you're involved in several other GNU projects, would you
like to tell us a little about those.
Sure. I'm also developer and co-maintainer of GNU Mailutils. It is
a universal library for handling e-mail messages and a suite of
mail-related utilities, such as classic mail user agent "mail",
daemons "pop3d" and "imap4d", mail filtering program "sieve" and
many others.
It is a very complex project, and I enjoy immensely
working on it with Jeff Bailey and Alain Magloire, who had started it.
I'm also involved in another project they maintain: GNU inetutils. It is
a suite of internet-related utilities.
Yet another project I take part in is GNU Anubis, started by Wojciech Polak.
It is a preprocessor for outgoing mail, allowing users to extend the
possibilities of their mail programs.
Well, and recently I became maintainer of GNU tar and cpio. I hope
to improve them and to merge them into POSIX "pax" utility.
Are you paid to work on GNU Radius?
No, I am not.
Do you work in another job?
Currently I am working as a system administrator in an ISP. It is
using free software (GNU radius in particular), so I have a rare
possibility to personally communicate with end users.
How do you combine your job with your other work with free
software? Do you work on free software only in your spare time?
Yes, I am trying to work on it in my spare time. Of course there are
exceptions. For example, if I see that some piece of software shows
incorrect behavior, bugs or anything like that, I surely begin fixing
it right then. But I do the development in my spare time. After all,
it's counter-productive and often impossible to combine developing
software and other kind of activity.
The same goes for running mailing lists. Each software project has at
least one mailing list associated with it, where people can send their
bug reports, ask for help and so on. I am not always able to immediately
answer all the postings to these lists, so I usually process my
mail on evenings, when I am free. Sometimes this takes quite a while :)
You're the author of the manual for GNU Radius, which has
just been published by GNU Press ("GNU Radius: A Reference Manual", ISBN 1-882114-69-8).
How did you find the process of writing a manual? How would you
compare it with writing the software itself?
It was an exciting experience to write and especially to edit it.
Writing documentation is, in my opinion, much more difficult than
writing software: in fact, these are very different kinds of
work.
When writing the manual, one has to put himself into user's
shoes, that helps decide what should be explained first, what latter,
etc... It is important to remember that many things that are obvious
to the programmer who wrote the software, are unknown or cryptic for
the eventual reader. So, if the programmer himself is writing the
documentation, he should always bear in mind that the reader has no "a
priori" knowledge about the subject. That is not a simple task at all.
We have edited the book together with several professional editors
under coordination of Lisa Goldstein. This process was extremely
interesting and educative for me; it allowed me to look at the book
with other people's eyes and to learn many things about writing books
in general. I would like to express my thanks to the editors and
especially to Lisa for the remarkable job they did. Our cooperation
was delightful.
Do you have any tips on writing documentation that you'd
like to share with other developers?
I guess the rule of thumb would be: "suppose you don't know anything
about the subject. What would be the best way to explain it to you?"
What is your background as a developer? How did you become active in the GNU project and free software?
Well, I have about 10 years of experience in programming in C and Lisp
and I worked mostly with UNIX-like systems.
When Radius entered into more or less working stage I thought that it
would be great if others could use it. So I offered it to GNU. That's
how I joined the project. After some time there came Mailutils and
other projects.
Is there any story behind how you became a supporter of the free
software philosophy?
No, I guess there is not. It was always obvious to me that software
should be free. I'm kind of a technically-minded person and if I find
that some appliance I use malfunctions, I always try to fix it myself.
I may not succeed, I may break it altogether as a result, but at least
then I will know how it works and what I should have done to fix it,
so another time I face the same problem I'll do it right.
That's true for anything we human beings use. One may not have enough
knowledge, say, to fix a car, but at least he has all the possibilities
to do so. One may disassemble it to find out the part that's not
working, and while doing so one will possibly learn how other parts
work. If one cannot fix it himself, he may find someone who
can and let him do the work. So, why is it not so with the software?
Why should it be regarded as a black box that you do not have
the right to look into? I do not see any reason for that. So, in my
opinion the existence of non-free software is completely illogical and
goes against any kind of progress.
Thanks for taking the time for this interview and for your work on free software!