Raph Levien worked on Gnome and Gimp, he's quite an interesting
character; as you'll soon find out.
- what editor do you use?
Emacs and vi. I use emacs most of the time.
- do you use revision control systems of some kind, and have you any
serious thoughts on the matter?
Well, I use the Gnome CVS extensively. Having a good revision control
system is really important for collaborative software projects. CVS
gets the job done, but is a lot more difficult to use than it needs to
be. I'd love to see either CVS radically improved or a new revision
control project. Josh MacDonald's PRCS2 looked interesting, but I'm
not sure about its progress.
- What is your favorite language?
I have a renewed love affair with C. I find it has an internal beauty
and elegance rarely matched by other languages.
I do use other languages when appropriate, like perl to do quick
- X vs console
X most of the time, console when I'm messing with device drivers or
- window manager / gnome / kde environment
I just use whatever is the default. All I ask is that it works. The
early version of E and Gnome that shipped on the RH Linux 6.0 distro
was disappointingly buggy, but I've upgraded to more recent RPMs and
am much happier.
- favorite hardware and os platform?
I just got a dual Celeron 400 running Linux and am thrilled with it.
It is so powerful compared with anything I've had before that I am
still stunned. I'm sure in a few months it will be routine, and in a
couple of years I'll find it intolerably slow and will be lusting
after one of those new quad Pentium V Xeon 1000 systems (or maybe a K8
or Transmeta, who knows and who cares?).
- did you ever attempt to write yet another
- window manager?
God no. There are _way_ too many window managers currently in
- widget set?
Well, Gzilla contained Gzw, the Gzilla Widget framework. But this was
very specialized - it was just "widgets" for Web pages. I didn't have
any of the standard widgets like buttons and so on - I just embedded
the Gtk+ widgets.
- X replacement?
- programming language?
Yep, back when I was a kid I did about three programming language
designs. None of them are particularly good.
I still dream about doing a new programming language. I'd especially
like to capture the concreteness and simplicity of C, while also
enabling a more dynamic, flexible style of programming. In particular,
it would be nice if you could write and use code that did its own
memory management, but if you didn't want to bother, it would garbage
collect for you (perhaps at a large performance penalty). The
technical aspects of mixing the two smoothly are tricky, but then
again, I've never shied away from a good challenge :)
- operating system?
Not a full operating system. Back when I was a kid, I used to write
little libraries for doing scheduling and memory management that would
run directly on top of the hardware (Z80). Since I discovered Linux,
I'm just happy to let other people do the hard work.
- has anyone offered to pay you/hire you based upon your open source
Yep. I get occasional job offers, and hope to continue being able to
make money doing contract work and proprietary licensing of free
software (according to the Sleepycat model).
- what application or component is linux most lacking ?
A really clean word processor, one that can interoperate so smoothly
with Microsoft Word that people don't have to worry about the
- is that your first interview by anyone ?
Heh. Not a chance. I've been interviewed dozens of times about
encryption stuff, remailers, and so on.
- just what is the full list of gnome components and software that you have
I'm primary author on GdkRgb, gnome-print, libart, the aa part of the
Gnome Canvas, gdome, gfonted, and Gill. I've also hacked in quite a
number of Gnome modules and Gimp.
- your phd(?) was on security and encryption, whats the link between this
and the canvas ?
Not a whole lot. I just have diverse interests.
- Are you in full time academia ?
I'm finishing my PhD now. Afterwards, I'll be doing free software work
full time, supporting myself with consulting, licensing, and so on.
- what are the prospects for unicode support in the canvas and printing
architecture. Is there any chance of seeing a system where a utf-8 string can
be passed to the canvas with a recommended fontface and font metrics and
having some component do all the hard work of finding an appropiate font
in whatever existing encoding would match up with the string.
Soon. I've got a fair amount of code lying around to handle Unicode
(see http://www.levien.com/script/devanagari.png for a sample of
Sanskrit from one of the prototypes).
What makes this project tricky is that I'd like applications to have
pretty much the same API for doing high-quality Unicode text in the
Canvas and doing regular Unicode text through Gtk+. Owen Taylor and I
are working together to unify our API's, to try to get all the
functionality we need while simplifying things as much as possible.
It's going kind of slowly right now, but I think that's OK. For a
project like this, it's much more important to get it right than get
it done quickly.
Ultimately, I'd like to get together a collection of shaping rules and
free fonts for _all_ the languages in Unicode, and have these ship
with standard distributions. Then, as you say, just throw it a string
in UTF-8, and you get a pretty good display.
- Just what is the story with type1 fonts and X vs postscript. The abiword
folk have to ship seperate font metrics for the printed output to use. Whats
the skinny with this issue?
This is a fundamental design flaw of X. The abstract concept of "font"
contains both glyph shapes and metrics. But the X11 implementation of
"font" only contains glyph shapes. Further, the connection between
between the X11 server and client has no way to transmit either glyphs
or metrics, in either direction. This confluence of limitations
_forces_ the glyphs to live on the server side, and the metrics to
live on the client. There's no really clean, general way to make sure
the two are in sync. Indeed, if you run AbiWord over a plain X
terminal, the fonts just fail.
This didn't happen because the X people were stupid. At the time the X
font mechanism was being worked on, its designers genuinely believed
that Display PostScript would take over the world. Applications that
needed only simple text display would use the existing X mechanisms,
while applications that required high quality text would use DPS.
Well, this didn't end up happening, so there's a void.
One way out of the bind is just to render the text on the client side.
This has the advantages of reuniting the glyphs with their font
metrics, and also allows fancier stuff like antialiasing. There is a
performance hit compared with doing it in the X server, but it's not
too bad on modern hardware running locally. So that's where I think
this should go.
I'm in touch with Jim Gettys and other X people about a possible X
extension for antialiased graphics, and that would certainly include a
reasonable mechanism to do server-side rendering of high quality text.
- Whats the skinny on truetype fonts embedded in postscript, does this
work, can gnome do it, and is it going to cause hassle?
I haven't played much yet with TrueType fonts in gnome-print. I don't
get all that excited about TrueType, because there are a lot of high
quality Type1 fonts, both free and non-free. Finding good, truly free
TrueType fonts is hard. In addition, TrueType is patented.
Nonetheless, it certainly is possible to use TrueType fonts in
PostScript, and it's part of the long term plan of gnome-print to
handle them. There are basically two ways to do it. First, if the
PostScript implementation contains a TrueType interpreter (a
configuration known as "Type 42" fonts), you can just embed them, and
you get the full TrueType hinting and so on. Second, you can convert
from the TrueType font directly to a PostScript font, and just embed
that. You lose the hinting, though, and there is some nontrivial
computational geometry to be done (TrueType allows overlapping shapes,
like being able to make a $ from S and |, while PostScript doesn't).
- Have you been tempted to write a type1 rasterizer for XFree86, im told that
the existing one is not all that good and could be improved, and you appear to
be complemtating something of this nature for the canvas?
Well, I've already done a Type1 parser for Gill and gnome-print, but
it's intended for antialiased display. The problem is that Type1 is
just not very well suited for low-resolution bilevel displays. The one
in XFree86 (actually X11R6) does a pretty good job, all things
My feeling is that as resolutions increase, the "sweet spot" is going
to be truly high quality antialiased rendering. At 140 dpi and over,
the resolution is good enough that antialiased fonts no longer look
soft or fuzzy compared with their pixelly cousins. And of course the
computer power to produce these antialiased displays is increasing at
least as fast as the resolution. So that's the long-term goal, and in
the meantime what X11R6 has now is good enough.
- do you think that the SVG vector format is going to succeed as a web vector
format ?, what flaws do you see in it?
It is way too early to tell whether SVG is going to get a large market
share for web content. For one, I don't see evidence of serious
implementation work being done by the browser people. Microsoft I just
don't know about, but Mozilla doesn't have an SVG story right now. The
only real SVG implementation that I know about on the proprietary side
That said, SVG kicks ass. Its imaging model is way more powerful than
PostScript's, and having it based on XML is just the Right Thing. One
of the things I've noticed is that it's really easy to convert into
SVG - I'm already seeing a lot of converters for "legacy" formats into
SVG. So I think once good SVG implementations are out there, that's
going to be the path a lot of graphics take.
The biggest flaw in SVG is its complexity. The SVG draft standard
itself is not so bad, but it imports a huge amount of other stuff by
reference, including DOM and CSS2 among other things. These are
complex and in some ways broken standards.
- have you actually received much feedback for the canvas and
related products in the way of patches for added features from
other contributers ?
Yeah. For example, Lauris Kaplinski (author of Sodipodi) sent me the
original version of the Bezier path item that's in Gill. I'm also
getting code from Tim Janik, who's working on a libart-based sprite
widget that's going to be nice for games.
- what other interests do you have?
Reading (science fiction and nonfiction primarily), photography,
drawing, yoga, sex, Quakerism, and raising a 3-year-old kid.
Obviously, getting time for my thesis, my free software work, and all
these other interests can be a challenge.
- would you consider yourself to be suffering from Aspergers Syndrome,
and if so do you see this as something that you should seek therapy for ?
No, I'm definitely not medically diagnosable with Asperger's.
But think of cognitive style as a big multidimensional space. Certain
extreme regions of the space are labelled as mental disorders, such as
Asperger's, ADD, and manic depression, to name three. At the
"centroid" of this space, you've got "normal." I'd be perfectly
willing to believe that my position in this space is a weighted vector
sum, not all that far from "normal," with definitely some
manic-depression, some attention difference, and maybe a hint of
- Did you ever get mistaken for being Ralph Lauren ?
- Are the GNOME/GTK people going to replace imlib with another rendering
library - and is there any possibility of tying this in with OpenGL to
give people with DRI-supported 3D cards a big speedup for anitaliasing,
translucency and scaling, in the distant future ?
Yes, imlib is being replaced by a combination of GdkRgb, libart, and
I'm actively looking at DRI as a way of speeding things up, especially
as it looks like it's going to be pretty common with the next gen of X
servers and video cards. Some early measurements on high-end SGI
hardware indicate that the speedup could be amazing. But most of the
people I talk to are more cautious, and tend to take the view that PC
hardware is quite a bit slower, so it might not be worth it. We'll
- Will there be a day when all video cards have 3D acceleration hardware ?
Even more interesting is the question of whether we will reach a time
when most video cards _don't_ have 3D acceleration hardware. As the 3D
acceleration becomes more sophisticated, it approaches a general
purpose computer. At that point, it might make more sense just to use
a real CPU, and not have any graphics-specific hardware. Ivan
Sutherland came up with the phrase "cycle of reincarnation" to
describe exactly this phenomenon (it's in the Jargon file).
- How is the "FPS" group getting along (maybe explain it a bit) ? What do
you see as being big benefits for Joe User in the short term from their
ideas ? Do you make recommendations to software authors, or get dirty &
do it yourselves ?
FPS hasn't really gotten off the ground.
- Where do you get food & hardware money from ? Would you prefer a boring
job that gives you loads of money to help persue your interests in your
own time, or a lowish-paid job that you enjoy ? Have you any intention
of ever leaving college ?
I live off of licensing revenues. About the job preference, it's
always important to find a balance. Fortunately, it's looking like
it's possible to make good money while doing free software
And yes, I'm going to leave college as soon as I finish my thesis.
- Would you recommend the use of the GNOME libraries, and the GTK object
model in non-gui applications ? Should it be recommended to all
freeware programmers, not just GUI ones ?
Always use the most appropriate tool for the job. Glib is really nice
for getting a higher level of abstraction in the C language. I'm not
sure I would recommend the Gtk+ object system for non-UI work; it
definitely has a few quirks that are really specific to its goals and
history. But it may be the best tool for some things.
And there are definitely a few Gnome libraries that are useful for
non-UI work, especially the ORBit CORBA implementation and gnome-xml.
If you're doing CORBA or XML in C, these are far and away the best
- Have you ever found any cartoon characters to be sexually attractive ?
- Favourite film quote, and why ?
One of my favorite quotes that comes to mind is Kip's line in The
English Patient when Hana is worried that Kip will blow himself up
while disarming a landmine: "This is what I do. I do this every day."
I think I like it because of the way Naveen Andrews (Kip) spoke it.
- What kills more children ? Guns, bullets, or people ?
People, unfortunately, even if you don't count deaths from firearms :(
Other questions, various people ask:
- What's your favourite colour?
- What's on your desk right now?
This desk (I have three) has a PPro 200, a DEC Alpha 3000/300, teas
and tea paraphernalia, a phone handset (for playing with Internet
phone stuff), and a few random manuals.
- What don't you leave home without?
My clothes on.
- Which cartoon character would you choose as a role model?
My role models tend to be people like Richard Feynman, Linus Pauling
(after whom my parents middle-named me), and Alan Turing, rather than
cartoon characters. I do feel some sense of identification with Shinji
Ikari of Neon Genesis Evangelion, though.
- Does you use a mouse and what mouse is it?
Yes, usually a Logitech 3 button. I also use a Wacom Intuos pen pad as
a mouse sometimes.
- Why do you work on the projects that you work on, what draws you to do it?
Mostly because it's fun. I think one of the big draws is the promise
of creating, if not a digital utopia, then just a really good
computing environment. It's obviously something a lot of people can
Thanks for the questions. They were a nice mixture of fun and deeper
questions. I hope your readers enjoy it!
- Is there is any place that you'd rather be? Why?
Right here right now. To watch the world wake up from history.
Michael Monty Widenius
About the author, Ken Guest.