Karl, you've been involved in one or another way with the GNU Project for
quite some time now, working mostly with various aspects of TeX. Could you
begin by telling us how you got involved in computers and what the first
computer was that you wrote software for?
In 1977, my mom and I lived in California for the year so she could get
a master's degree (in music) at Stanford. So I went to a middle school
in Palo Alto, and they, being a fairly advanced school, had a
programming class in BASIC and several yellow-paper teletypes in a back
room. I never saw the actual computer -- it was at the high school, I
think. The first program I specifically remember writing in that class
was factorial computation (the FOR loop assignment), and it didn't take
many iterations before the program halted with an overflow error :).
We moved back to our regular home in a tiny upstate New York town near
the Canadian border the next year. As a faculty kid, I was lucky to be
able to hang out in the local
college's computer room, where they had a modem connection (using an
acoustic coupler) to the Honeywell 66/40 computer at Dartmouth College, running a
homegrown operating system originally named DTSS.
For the GNU Project, you've been working with TeX and fonts. Indeed,
you currently maintain the texinfo and fontutils packages. But how
did you first learn of the GNU Project, and what was it that led up
to you being accepted into the FSF as an employee for some years?
I first learned about GNU in 1985 or so, via Paul Rubin (phr), who knew
rms. I met rms shortly after that when he visited California and stayed
overnight with my then-partner Kathryn Hargreaves and I.
We moved to Massachusetts to study with Bob Morris at the University of Massachusetts at Boston.
We invited rms to give a talk at umb, and generally stayed in touch.
After we got our degrees a couple of years later, we asked rms if he
would hire us -- and he did! (After looking at some sample programs.)
We were pysched.
During your time with the FSF, you also helped out to get Autoconf
to successfully configure TeX, which I'm sure was no small task, and
you also did some work on Ghostscript. What's your strongest memory
from working with the FSF?
Although those projects were fun and valuable, my strongest technical
memory is actually working on regex.c. POSIX was standardizing regular
expressions at the time, and we implemented about 10 different drafts as
the committee came out with new ones, while keeping compatibility with
Emacs and all the other programs that used it. It was a nightmare. We
ended up with regex.c having as many lines of debugging statements as
actual code, just so we could understand what it was doing.
I've since looked at a bunch of other regex packages and it seems
basically impossible to implement the regular expressions we've grown
used to in any reasonable way.
My strongest nontechnical memory is rms's vision of free software and
how clearly he communicated it and how strongly he held (and holds) to
it. It was and is an inspiration to me.
What was it that got you interested in TeX?
Typography and letterform design have been innately interesting to me
for as long as I can remember. In the 1980's, TeX and Metafont were
just hitting their stride, and Kathryn and I designed and typeset
numerous books and other random items with them.
Don Knuth's
projects are always fascinating on many levels, and it was natural to get
pulled in.
Another thing you've been working on is web2c, which I'm sure that most
people have never heard of, let alone know anything about even if they've
heard something or another about it. Could you venture into the depth of
knowledge and enlighten us?
Web2c is the core of the Unix TeX distribution, which comprises the
actual `tex', `mf', and other programs developed as part of Knuth's
projects at Stanford. Knuth wrote TeX in "web", his system for
so-called literate programming, in this case a combination of TeX and
Pascal. The result can be (has been) printed as a book as well as
compiled into a binary.
Web2c (named web-to-c at the time) converts these web sources into C.
It was originally written by Tom Rokicki, based on the original change
files for the Pascal TeX on Unix, which were written by Howard Trickey
and Pavel Curtis. Web2c was later extended substantially by Tim Morgan.
I maintained it for a number of years in the 1990's, and Olaf Weber is
the current maintainer.
The GNU Project has taken a lot of heat for using info documentation
instead of standard manpages or later, DocBook or some other system
for documentation. When did the GNU Project start using texinfo and
what was the motivation? Do you have any comments on the newer systems
for maintaining documentation?
rms invented Texinfo in 1985 or so, based on a print-only predecessor
called BoTeX, which had antecedents in Bolio (at MIT) and Scribe (at
CMU). At that time, there was no comparable system (as far as I know)
that supported printable and on-line manuals from the same source.
Of course man pages existed, but I don't think anyone claims that man
pages are a substitute for a full manual. Even Kernighan, Ritchie, and
Thompson wrote troff documents to supplement the man pages, for
information that doesn't fit into the NAME/SYNOPSIS/DESCRIPTION format.
Man pages certainly have their place, and despite being officially
secondary in the GNU project, almost all GNU distributions do include
man pages. There is a GNU program called help2man which can
create respectable man pages from --help output, thus alleviating
the burden of maintaining a separate source.
As far as DocBook and other XML-based systems go, I have nothing against
them, but I think that Texinfo source is friendlier to authors. XML
gets awfully verbose, in my experience. I've also noticed that O'Reilly
books never contain internal references to explicit page numbers, just
whole chapters or sections; I don't know where the deficiency lies, but
it amuses me.
It seems to me that the ad hoc nature of Texinfo offends the people who
like to create standards. If what you want to do is write reasonable
documentation, Texinfo will get the job done with a minimum of fuss.
On a related note, people have occasionallly suggested that the Info
format is outdated now and we should just use HTML. I still find Info
useful because I can read documentation without leaving Emacs. It is
also handy to have manuals in (essentially) plain text, which HTML is not.
When you left the FSF as an employee, where did you go and what have
you been up to these latest years? What do you work with today, and what
does your future plans look like?
Aside from continuing to volunteer for the FSF, I worked as a
programmer, system administrator, webmaster, release engineer, and
various other odd computer jobs at
Interleaf,
Harvard,
and now Intuit, due mostly to
Paul English, a good friend I
met at UMB. A significant part of all my jobs has been to install and
maintain GNU and other free software, which has made me happy.
I expect to be able to leave my current job this fall and devote
more time to volunteer work and my family.
What other hobbies, besides computing, do you have? I know you find
Antarctica interesting. Would you mind sharing why? Any plans to try to
visit some day?
Other hobbies - I read anything I can get my hands on (some favorite authors:
Andrew Vachss,
Barbara Kingsolver,
Daniel Quinn,
Stephen King,
Terry Tempest Willams), and attempt to
play piano (Bach and earlier, with
some Pärt thrown in).
As for Antarctica, its untouched nature is what appealed to me most,
although of course that quality has sadly diminished as human population
continues to explode. I have no plans to visit there since tourism is
very destructive to its fragile ecology (not to mention it is
cold!).
And finally, I must ask you to convey one of your favourite recipies to us
(and no, it can not be sour cream chocolate chip cake or chocolate chip
cookies with molasses). :-)
Ok, how about some dinner to go before the desserts: Hungarian pork
chops (with apologies to the vegetarians in the crowd). First we start
with a little note on paprika courtesy of Craig Claiborne (author of the
New York Times cookbooks):
It is ruefully true that American cooks by and large have only the
most pallid conception of what PAPRIKA is. The innocuous powder
which most merchants pass on to their customers as paprika has
slightly more character than crayon or chalk.
Any paprika worthy of the name has an exquisite taste and varies in
strength from decidedly hot to pleasantly mild but with a pronounced
flavor.
The finest paprika is imported from Hungary and logically enough it is
called Hungarian paprika or rose paprika. This is available packaged
in the food shops of most first-rank department stores and fine food
specialty shops. It is also available in bulk in Hungarian markets.
[Not having any Hungarian markets in Salem, we get it from the
bulk section of the organic grocery stores around here ... I don't
know for a fact that it's from Hungary but it's definitely got more
character than a Crayola :)]
Here's the recipe:
- 6 pork chops
- salt & pepper
- 3 tbsp butter
- 1/2 cup onion, chpped
- 1 clove garlic, minced
- pinch of thyme
- 1 bay leaf
- 3/4 cup chicken stock or dry white wine [we use a chicken bouillon cube, sorry craig]
- 1 cup sour cream [best with "full fat"]
- 1 tbsp paprika [or to taste, we usually use about 1/2 tbsp]
- Trim the fat from the chops [or not, we don't :)]. Sprinkle the meat
with salt and pepper and saute in the butter in a skillet. [Takes
about 15min on our stove, at medium heat; I usually get both sides just
starting to brown. I chop up onion and stuff for step 2 while waiting.]
- Add the onion, garlic, thyme, and bay leaf and saute over medium-high
heat until the chops are well browned on both sides. [15-20min, this
is most of the cooking.]
- Lower the heat [quite a bit, but more than simmer; 2-3 on our stove]
and add the chicken stock or wine [or bouillon cubed water in our case].
Cover and cook 30min. [I turn them over halfway through.]
- Remove the chops to a warm serving platter and keep warm. Reduce the
pan liquid by half by boiling [or whatever seems appropriate,
sometimes I don't need to boil anything away, sometimes I do].
Discard the bay leaf [or not].
- Add the sour cream and paprika to the skillet and heat thoroughly but
do not boil [maybe 5min at medium heat]. Pour the sauce over the
meat and serve hot.
We make rice on the side and use the sauce for both. Our best meal.