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!
|