- publishing free software manuals

Articles > An interview with the founder of Network Theory Ltd

April 2004

This interview with Brian Gough, founder of Network Theory Ltd, explains the background to the company.

For more information, visit the company information web page.

What is the company "Network Theory" about?

We publish books about free software, under free documentation licenses. The money raised from the sales of the books is used to create more free documentation and software.

As Richard Stallman says in his original article about free documentation "the biggest deficiency in free operating systems is not in the software --- it is the lack of good free manuals". If you look in any bookshop you'll see that 99.9% of the books about free software are not under free documentation licenses.

The idea of a free manual is that you should be able to update it, to keep it current with any changes in the software. If the manual cannot be updated, it can hinder the continued development of the software.

Sometimes people have written a whole new manual which cannot be modified or redistributed, when there is a good free manual available that just needs "polishing". This leads to a situation where the free manual falls into a state of disrepair, because most people are using the proprietary manual instead, and not reporting documentation bugs or making contributions to it.

What manuals are you currently publishing?

The main software manuals for developers are "Version Management with CVS" by Per Cederqvist (the official CVS manual), "Comparing and Merging Files with GNU Diff and Patch" and the "GNU Bash Reference Manual".

The latter two books were recently reviewed in Linux User and Developer magazine and got top ratings --- the GNU Bash manual was selected as the special "classic" title for that month.

We are also publishing the official Python manuals, written by Guido van Rossum, the inventor of Python --- currently the Python Tutorial "An Introduction to Python" and the "Python Language Reference Manual" are available, the Python Library Reference Manual and C API manual should be published later this year.

For scientific users, we publish the manuals for some of the science-related GNU packages, including the "GNU Octave Manual" (a GNU program similar to Matlab), the "GNU Scientific Library Reference Manual" and manuals for GNU R (an advanced statistics package). These programs are quite popular in universities.

How did you get into publishing free software manuals?

Originally I was a physicist using free software for my work and research (which was in high-energy physics, doing large-scale numerical simulations).

I can't remember exactly when I started using free software, but it was probably in 1987-88 when I began using emacs as a student, a few years after the initial GNU announcement by RMS. My current .emacs file still has some lines that date back to then, I think. I also started developing free software when I got involved in writing the GNU Scientific Library (GSL) for the GNU Project, which was much later around 1996 (I'm currently the maintainer of GSL).

One of the projects I was involved in when I was working as physicist in the US made heavy use of TeX (arxiv.org --- a large archive of freely-available scientific papers), so I ended up also knowing quite a bit about the technical side of publishing.

Initially, I made use of this knowledge to publish the reference manual for the GNU Scientific Library as a book, and I realised I could do the same for many other useful free manuals. It has always been obvious to me that software and documentation should be freely modifiable and redistributable, and that computers and the internet are about freely exchanging information for the benefit of humanity.

How does the publishing process work?

I try to select manuals which are concise and written by experts --- the developers of the software themselves. I dislike books that have a lot of fluff or padding, which seems to be the case with many commercial titles today. Of course, the manual must be under a free documentation license.

When I decide to publish a free manual I have to organize a lot of things: proofreading, making improvements to the text (where possible), and including additional index entries, as well as formatting to put the book into paperback size and preparing the cover designs. I generally try to hire people with special knowledge of the package to do this, but I also do some parts myself when I can't find anyone or don't have enough funds.

Any corrections or improvements are then sent to the official maintainer to be incorporated into the main version.

Finally, it is a question of preparing files for printing, which is a very time-consuming and costly process, involving some trial and error. Once the files have gone to press it is expensive to change anything, and it can take weeks of going through the text, checking and double-checking everything to make sure it is going to be ok.

It is amazing how, even after reading a book through five or more times, that some errors can still be discovered --- but I suppose that it is just like software, where even a very mature package can still have a bug. I generally keep doing proofreading "passes" until I find no errors, and then do another "pass" to confirm it. If I don't find any errors on the follow-up pass then I go for publication.

Where are the books available?

The books are available through online bookstore, such as Barnes and Noble in the USA and Blackwells or WHSmith in the UK. They are also available through Amazon, but the Free Software Foundation recommends not buying from them --- due to the fact that Amazon has used software patents against its competitors (EDITOR'S NOTE: The FSF boycott of amazon was officially terminated in 2002 -- see the FSF's announcement at GNU.org).

We have contracts with the major wholesale book distributors in the UK and the USA, so any bookshop can order our titles, including small local bookshops.

In terms of being on the shelves, you won't see these books because the shelf-space is dominated by the big publishers, but if the bookshop orders them they will usually arrive from the distributor within a few days.

I regularly make test orders from the bookshops which are listed on our website (www.network-theory.co.uk) to confirm that they are working ok, and that I am satisfied with them all (for example, that their sites are compatible with Mozilla and Konqueror).

In the past some of the UK bookshops were a bit slow, sometimes taking a couple of weeks to ship orders, but we now have a new distributor in the UK and books should be shipping a lot faster.

Why would people want to buy the books when they are also available online?

I guess the main reason is that it's a lot easier to read the printed versions, than to read a whole book on-screen. There's also a question of professionalism. Searching documentation online can help if you know what you are looking for, but unless you read the manual all the way through it won't help you discover things you didn't know about.

For example, at a software company I was working at once, I saw someone who had spent a whole week manually merging changes from 3 different versions of a program, by running diff on each pair of source files in two different xterms and cutting-and-pasting individual lines into their editor by hand. The whole job --- which is known as a 3-way merge --- could have been done automatically in a few seconds using the -m "merge" option of the standard GNU diff3 command, but that's the sort of thing you'd only know if you sat down and read the manual for GNU Diff, where there is a chapter on it. A more professional developer would have read the manual for the tool they were using first, and avoided wasting an entire week.

How does the money raised from the sales of the book support free software?

Well, I'm a supporter of the free software philosophy so this is a free software/free documentation business --- all the money raised goes back into hiring people to work on more free documentation, or free software that we need to run the business, as far as possible. Buying books from us is a way to ensure that free documentation continually improves.

I try to hire free software developers as editors, proofreaders and consultants, so that the production costs also support free software development.

We make specific donations from the sales of each book where possible, to support the development of the corresponding free software projects. For example, there is a donation of $1 to the PSF (Python Software Foundation) for each copy of the Python manuals sold, and similarly for manuals such as the "GNU Bash Reference Manual" and "Comparing and Merging Files with GNU Diff and Patch" where we donate $1 per copy to the Free Software Foundation. We also support the Free Software Foundation, and Free Software Foundation Europe, through their patronage programmes.

What is next for the company?

Our newest book is "An Introduction to GCC", which will be available very soon. I spent about six months writing it, trying to cover all the questions about gcc and g++ that I had seen being asked on mailing lists again and again. The technical editor for the book is Gerald Pfeifer, who is a member of the GCC steering committee and works for SuSE in Germany. It also had input from Andreas Jaeger, one of the maintainers of the GNU C Library, who also works at SuSE, and Richard Stallman has written a foreword for it. I think the book will help to save people a lot of time, if they are new to GCC and want to get a good foundation in using different GCC options and general "best practice" that experienced developers pick up over the years.

We will be publishing the other Python manuals, and also bringing out an introductory book on GNU Bash and shell programming. I'm always looking for interesting titles to publish so people should feel free to email me at sales at network-theory. co. uk with any ideas.

If anyone is interested in proofreading or writing work, they should send me some information about their experience and availability and rates. I can't guarantee anything, but certainly I would keep the information to hand and if some work came up that was well-matched I would get in touch. As a free software developer myself, I believe in paying people a commercial rate for the work --- I certainly don't believe that free software means that people should work for free. Of course, if we can sell enough books then I would like to hire people full-time!