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 occasionally 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
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.