By Dave Whitinger,
So, I am sitting on our booth at ZD Open Source Forum,
preparing a keynote speech for broadcast, when who would walk up
but Miguel de Icaza, head developer of the GNOME project. The
interesting looking audio equipment must have lured him in for a
To try out the equipment, he sat down for an interview…
Dave: Miguel, how’s it going?
Miguel: Alright, Thanks, Fine.
Dave: You know, you’re a ball of energy.
Miguel: What?? No, no, no.
Dave: Yes, you are pure energy in human
Miguel: Actually, I am trying to merge with the
web. Me and the web will become one. One and only – same thing. I’m
going to become pure energy and merge with the web.
Dave: That’s pretty ambitious.
Miguel: (Laughs) Note to all the people around
the world, you should run ssh on port 80 on your machines.
Dave: That’s if you’re at the ZD Open Source Forum.
Miguel: Yeah, but I have found other places who
also firewall those sorts of things. Like at Linux Expo Paris, they also
blocked the ssh port. So run your ssh on a web-looking port…
Dave: Or port 8000… they’re probably not
firewalling anything about 1024.
Miguel: You think so? I don’t know, I’m not
really an expert on that sort of thing. So, run your ssh on port
80, never fails. So, anyway, here we are at the Open Source
Dave: How’s it going?
Miguel: I’m doing fine.
Dave: Having a good time?
Miguel: Yeah, yesterday we drank until I lose
my English-speaking abilities, so we had to take a walk.
Dave: And then, on the way home, we had to stop
at every single head-shop.
Miguel: Yeah, and I had to go to the bathroom
real bad, and these guys were trying to buy every single thing in
every single shop.
Dave: Well, it was maddog who was doing
all the purchasing. He bought a snake-earring, a bullfrog
Miguel: He also bought this nuns. Electric
Dave: The fighting nuns.
Miguel: Yeah! (laughs) We had a good talk
yesterday with Kirk McKusick at the restaurant… interesting
person. He explained in detail this thingy he’s working on
called… what’s it called… Soft Updates… and doing some really
cool stuff with that. It’s doing check-pointing, doing, oh my God,
very interesting. You can back up your system live, you can get
lots of speed improvements, it’s amazing. An Amazing guy.
Dave: And what company is he with?
Miguel: Oh, I don’t think he has any company. I
think he just has money and he just hacks these days.
Dave: Oh, okay, wow.
Miguel: Yeah, that’s what every one of us
should be doing.
Miguel: The problem is that he’s got the
Dave: That’s the big difference, right?
Dave: But you’re going to have big money real
Miguel: I’m going to?
Miguel: Well, if things work…
“I’m ready to make
millions of dollars, though.” — Miguel
Dave: Your company…
Miguel: yeah, well, it’s a startup company, one
of those… I don’t know… people keep telling me, “Yeah, I
started a company a few years ago and went bankrupt”, so I hope
this one doesn’t go bankrupt.
Dave: Well, you know, It’s hard work, running a
Miguel: Yes, I’m ready to make millions of
Dave: The company supports GNOME, right?
Miguel: Yeah, exactly. We get to write system
extensions for GNOME and we get to write cool software and make it
all free, so that’s gonna be good. Writing all GPL software. Talk
to some people here, it’s interesting. They say you can’t make as
much money with Open Source as proprietary technology, but you can
still make money. So I won’t get depressed if I don’t become Bill
Gates, money-wise, right? But, if we can make money and support
ourselves, and support other GNOME hackers, and have them release
cool software, that’s gonna be good.
Dave: That’s a great thing that could
Miguel: Yeah, exactly. I don’t know who said
this, but whoever said that “not being a millionaire like Bill
Gates – it’s not a tragedy, and you can live with that. I’m ready
to live like that. As soon as I can go and travel to these places
and meet cool people and… (background phone rings) oh my God, the
phone is ringing.
Dave: It’s the bat-phone.
Miguel: All the phones are pretty strange here,
they’re all red. I’m wondering if this is a secret connection to
turn off ssh port every time I approach a terminal.
Dave: We have this bright, fire-engine red
telephone, it’s the bat phone!
Miguel: Oh God, you have great audio in these
Dave: Good audio?
Miguel: Yeah, the audio is just great, best I
Dave: Thank you.
Miguel: You have great stuff here.
Dave: Thank you, thank you very much. We’ve had
a lot of fun with this audio stuff. You know, we just started it
Miguel: Oh my God, this is new? This isn’t the
same stuff you had last … uh…
Dave: Linux Expo?
Dave: No, that was the Linux-Radio guys.
Miguel: Oh, that’s right, what were you doing
there with them?
Dave: We were sponsoring them to come to the
Linux Expo. They’re good friends of ours, and they’ve since quit
doing it. [ Ed Note: They’ve since started their project again.
Dave: I don’t know.
Miguel: It looked like a good thing.
Dave: Those two guys just aren’t together
anymore, and their website hasn’t been updated…
Miguel: They were lovers? They broke up?
Dave: I don’t think that was the case.
Miguel: Oh, okay. I’m here spreading
Dave: That is not the case, and I didn’t say
that, that was Miguel speaking.
Miguel: That was Miguel, just wondering.
Dave: The site hasn’t been updated for a couple
months, and this is such an interesting thing with the audio, and
it has to be done.
Miguel: So what do you do with this stuff, do
you broadcast it now, or do you store it on your harddrive?
“Am I interviewing you, or
are you interviewing me?” — Dave
Dave: Am I interviewing you, or are you
Miguel: It just seemed like a cool thing to
Dave: I’ve been interviewing people all week,
and finally someone is asking me questions.
Miguel: (chuckles) Yeah, yeah, so when did you
start with this audio thing? Tell us?
Dave: Well, Miguel, it’s a funny story…
Dave: No, let’s see. Your question was, “how
are we broadcasting”, and the answer is, we’re using icecast
(icecast.org is their website), and we’ve got a 3-way deal here
where the audio goes from the mixer to the sound card, the sound
card goes to this program called liveice, which takes it and calls
this encoder, which takes the sound and encodes it into an mp3
file. icecast then gets it and streams it off a http server, on
port 8000. Then in another xterm, I have lynx doing a -dump on
localhost:8000, and redirecting it to a file called
Miguel: Oh my God, so this is encoding mp3 real
Dave: Yeah, isn’t it cool?
Miguel: Oh, my God, I need this for my CDs!
Dave: Oh man, it’s awesome. All you gotta do is
plug it into the back of your sound card and every piece of sound
that comes is recorded and encoded… It’s pretty complex, I had to
have Barath, one of the icecast developers actually come into my
box and configure the thing. It’s real good, I can stream this
right off my box.
Miguel: Wow, that’s a cool technology.
Dave: And you can do it live…
Miguel: And the quality is okay?
Dave: It’s very good. It’s fantastic.
Miguel: Why don’t they do that for my CD’s? So
I can share the music. Think of it this way, you have a hundred
CD’s. You don’t want to carry them everywhere, when you’re
traveling. So you just put them on the laptop and you listen to
them on the plane.
Dave: Have you seen those RIO players?
Miguel: I have seen about them, but haven’t
gotten around to seeing it yet.
Dave: Maddog has one. He told me he was going
to bring it to the show today.
Miguel: They don’t have much memory, right?
Dave: Well, it has 16 megabytes.
Miguel: That’s about 16 minutes?
Dave: About an hour. Half an hour was 5
Miguel: On my laptop, I have about 300
Dave: You could fit a lot of mp3 on there.
Miguel: Several hours for hacking. So I could
leave my CD collection at home, and I can go to work without
worrying about my co-workers taking my CD’s.
Miguel: Like borrowing… and then take the
manual out, oh my God. How do you call that, the cover thing they
put in the CD.
Dave: Uh, the case?
Miguel: Not the case, but goes in the case.
Dave: The paper?
Miguel: Yeah, the little paper. It comes with
all this graphic art.
Dave: I think everybody knows what we’re
talking about, but I just can’t put a word to it. Somebody is
currently talking into their speakers saying, “It’s called a …
something” and I wish I could hear them, and then we’d know. Back
to your company..
Miguel: GNOME Support. So what are we
doing? We’re trying to get a number of contracts from a number of
companies to double up new GNOME applications. So we’re basically
concentrating on groupware tools, like, uh, well, one of them is,
how do you call that, scheduling stuff. So you can schedule
appointments with people in your company and say, “I need to get me
a schedule with these 4 people”.
Dave: Isn’t that kind of like Groupware?
Miguel: Exactly. This is like, I think
Microsoft has something like this in Outlook, but I’m not sure. I
just bought a book on Outlook so I can copy/paste the user
Dave: There was something you sent out, sort of
a call for an idea you had for a nice E-Mail program.
Miguel: Yes, we’re also working on that.
Actually, most of the work is being done by Bertrand Guiheneuf.
Bertrand is working on a beautiful mailer API for GNOME. And this
is basically the foundation for the mail application. So it’s a
real API you can use for writing other mail clients if you want to,
or you want to write any kind of mail related thing.
Dave: What about Balsa?
Miguel: Uh… Well, Balsa tries to be a
conventional mail system. It’s just a nice interface for a
conventional mail system. And, it’s pretty much the same as Eudora
or Netscape Mail. Nothing really fancy, nothing really
Dave: This new mail program you’re talking
about, one of the new concepts behind it is this one big file that
has all the mail in it, and you’re sort of indexed in there, and
the folders are…
Miguel: Well, it’s not actually a big file. It
can be a bunch of sources. You can actually split the mail, but
from a conceptual point of view, it’s just a big mass of messages,
right? It’s just a body of messages. And, the idea here is that you
have vfolders. vfolders are actually a result of a query on a
database that keeps track of all these files, right? So, you can
actually have multiple views of the same information, that’s the
idea behind this. We’re starting to do this because it’s a problem
we have ourselves with mail, right? We’re starting to get so much
mail that it’s difficult to find all the mail to file and find
information, that sort of thing. So, it’s basically trying to
address a problem that we currently have. Many free software
people… free software developers. Because you have to keep track
of many mailing lists, many ports going on. And retrieving
information from the mail is usually a pain. I have about a gig of
mail, archived mail, and finding something is not fun. We’re doing
this to mainly help us, ourselves.
Dave: I see what you’re saying. A lot of people
can make good use of that. I’m not a developer, but I also have
about a gig of mail.
Miguel: But you have to keep track of things,
right? Like, you know, what’s going on, exactly what’s being
Dave: Being in my line of business, I have to
be on every single mailing list on the face of the planet.
Dave: My mail server has about 10,000 things
coming in every minute.
Miguel: Exactly. So you need a way of
organizing these things. Now, the problem is that we’re just at the
tip of the iceberg. Internet and mail are just starting to become
important. I can see in a few years where every single kid in the
world, and every family in the world having a mail address, right?
Every person having a mail address. Well, not everyone, but just
picture 10% of the population… 20%. And, uh, many things are
going to be done in mail, and you’ll need a good recruiting system
for that information. And we don’t have the framework now. I don’t
think anyone has that framework.
Dave: At the Linux Today office, we’ve got one
big box that’s our server that has all the home directories on it,
all of our workstations are actually just NFS-mounting our home
directories. So when I go to my TkRat,
and I switch to a new E-Mail, it takes about 5 seconds to come
across the 10 megabit ethernet. If it’s all one big file, is that
going to be a problem?
Miguel: As I said, it’s conceptually one big
file, but it’s not actually implemented like that. It can be a
bunch of files. Everytime you incorporate mail into the system and
you fetch the mail, it gets indexed for you, and probably split
into other sources. Like, you can say, “I’m pulling my mail from
pop but I want to store it back into an imap server.” So, you fetch
it from pop, you then store it in an imap server, or you store it
in a mail file or you store it in a directory or an image file. It
doesn’t matter. Basically you have input sources, and storage
backends. So you can have multiple storage backends. And all of the
information is stored in the storage backends. For example, you can
choose to keep all of this stuff on an imap server, so you just
pull it, index it, and keep in the imap server without moving it,
for example. But from the point of view of the vfolder, which is
what the end-user has access to, what they see is this big body,
and this big body is completely indexed. So, that is an important
design is asynchonous, which means that there are no blocking
calls. The user interface is always responsive. You can have
multiple threads, it is not implemented as threads, it is
implemented as processes. But, it looks like threads. It is all
being done at the same time. It is pretty cool, pretty cool.
Dave: Very good.
“…one of the problems
that has plagued the GNOME development community…” —
Miguel: It is a way of experimenting with lots
of stuff that is happening that lots of people have found to be
useful, and now we are trying to get all of these ideas
Dave: When am I going to be able to actually
Miguel: Ah.. I don’t know. That is a good
questions. We were expecting 5-6 months to have version 1.0
Dave: You know, that is one of the problems
that has plagued the GNOME development community. The technology
behind GNOME is so solid and carefully planned out, but it takes a
lot of time to get these things actually, you know, you put the
floor in, and then you can have the stuff on top of it. So, it
looks like there is not a lot of progress being done, but actually
there is an incredible amount of development being done.
Miguel: Actually, it is sort of funny that you
mention that, because we have this core. Right, this GNOME mailer
core, which is called “Camel” API. Which Bertrand did. And it’s
this beautiful API for mail messaging and manipulation, and
somebody took this API and built another mail client, and it was
like, Dude, wait a second, we’re trying to get this right! So, he’s
free to do it, but we’re still building more infrastructure on top
of that. The API is so usable now, that somebody actually went and
in two weeks implemented a mail client. And it’s pretty nice! It’s
like a Eudora thing. But we’re aiming at the higher thing. If we
can address our mail problems now, I think we’ll be able to address
people’s needs in 5 years. So, it’s going to be a very powerful
infrastructure for people.
Dave: Is it fun to program in GTK?
Miguel: Uh, yes, yes, very fun to program in.
Now, the thing about this is that it’s independant of, uh… One of
the design principles besides this is that this whole vfolder
interface, and this whole mail interface, is not bound to the GUI,
that’s the thing. It’s actually a CORBA service that provides this
mail architecture, this mail system, for you. And, uh, on the other
hand, we have a GTK/GNOME interface, which lets user have a nice
GUI for their mail. But, we have also planned to provide a
web-based interface, so that when you are on the road, you can
check your mail and access the same exact mail, with the same exact
folders, you can store it in the same exact locations that you do
at home, but you can do it from a Cafe Internet.
Dave: That’s nifty… Nifty…
Miguel: That’s nifty. And if you run it over a
secure HTTP port, you basically have your secure mail, and you can
access it all over the world, wherever you are. That’s interesting.
That’s one of the things, and I guess some people will provide a
text-based interface to a service, it’s up to them. I just want the
web-based interface and the GNOME interface to be working. All the
plugins are up to people.
Dave: Where are you going to be next week?
Miguel: Oh my God, next week? I’m going to be
in Boston. I’ll be visiting Boston next week, and then we go to
California to meet a new GNOME company. That’s interesting.
Dave: What’s the name of the company?
Miguel: Uh, I don’t think they have a name yet,
but it’s pretty important people are working in that company.
Dave: Who are they?
Miguel: Ahh, I cannot tell you.
Dave: Come on, man.
Miguel: No, I cannot tell you. Especially, this
is a broadcast thing!
Dave: Come on, I won’t tell anybody at all, I
Miguel: Yeah right, you won’t tell them.
(chuckles all around)
Miguel: Some people are, it’s an interesting
company. They are doing very cool stuff. They’ll be doing,
basically, take over something that we have failed to achieve very
nicely, like the GUI, the user, how do you say that? The interface?
The guidelines for user interfaces. They’re gonna be maintaining
that, they’ll be replacing some of the applications we wrote, which
are not particularly very good. So they’re coming up with a newer
design, nicer stuff, using asynchronous I/O for some of the things.
I don’t want to mention the name of the company, because they’re
gonna kill me, but it’s cool people!
Dave: Will you tell me after we disconnect our
Miguel: Yeah, sure, I can tell you.
Dave: Okay, thanks. When are we going to start
seeing things coming out of this company?
Miguel: I don’t know, that’s why we’re meeting
in a couple weeks – to see exactly what they want to do, and what
are their plans.
Dave: Will you keep me up to date on it?
Miguel: I’ll keep you up to date, of course, of
course, of course. They’re gonna be making a big announcemnent,
because it’s an interesting company. You’ll want to keep an eye on
that. But you will know it, it’s going to be mentioned all over the
place. Here’s another thing. Havoc Pennington, he wrote a book on GTK
programming, and GNOME programming. It’s a very good book. Many
of the GNOME core developers have read it, and like it.
Dave: It’s be out in about a month, right?
Miguel: About a month… 2 months, perhaps. The
nice thing about this is that, the publisher has agreed to make it,
uh, open source. So, we’re gonna be putting the source code out for
the book in a few weeks, months…
Dave: So, it’s free, as in GPL’ed type
Miguel: Yeah, you can modify the sources,
redistribute the sources. The only restriction they have is that if
you print the manual, you have to acknowledge that it was
originally published by this publisher and the author is the
Dave: I think that’s fair.
Miguel: Yeah. So, basically, if you print the
book, you have to give credit to the original publishers, which is
Dave: Havoc Pennington… He’s the guy who does
Miguel: He also does the GNOME summary. Now
that he has finished the book, he has time for doing this sort of
Dave: The summaries are great.
Miguel: Yeah, his summaries are great. I
actually read them all.
Dave: Me, too. He sends them to me, and I
convert them into HTML and post them on Linux Today for our
readers. And then, maybe, he takes my HTML version off Linux Today
and uses them somewhere else, which is cool – I recommend that.
Miguel: Okay, good, good. Net cooperation here!
It’s a network at work.
Dave: That’s exactly right. He sends it to me
and it takes, like, 15 seconds to convert the thing, because I’ve
gotten very fast at doing this.
Miguel: Yeah, and you probably have it all set
Dave: With vi macros, it’s like my fingers are
Miguel: Oh, vi, you said vi. The vi war.
“I use emacs for hacking
and vi for quick hacking.” — Miguel
Dave: What are you, a pico user?
Miguel: No, no, oh my God, you’re talking to a
Dave: Well, Elliott Lee is a pico user.
Miguel: Well,Elliott Lee has other issues. He’s
vegetarian, too. (chuckles) He’s a wonderful person. He’s a pico
user, but he’s also an emacs user. It’s funny, actually, he uses
emacs for his hacking, and pico for his quick editing. And I use
emacs for hacking and vi for quick hacking. So when I need to
modify a file quickly, I just use vi. It’s strange, because I have
tried to use emacs, because emacs loads just as fast on my machine,
but it’s just so hard-wired on my brain, it’s just very hard. I
even tried once to use an alias, so I said ‘vi=emacs’, and then I
found myself typing ‘/usr/bin/vi’. Oh my God, that’s terrible.
Somebody is playing a trick on my mind.
Dave: I use vi for everything. I can’t stand
emacs. It’s a…
Miguel: It’s fine.
Dave: Half of the listeners right now are
hating my guts, but uh, what are you gonna do? I just know that no
matter where I go, I’m gonna have vi, and I just want to get very
proficient in that…
Miguel: That’s a good point, that’s a good
Dave: You know, there are some embedded systems
that I’ve worked on, you know, with Linux and PowerPC, you know,
for Telecom situations where you just don’t have emacs available to
you, and I feel really happy that I’m proficient in vi.
Miguel: emacs is, I think, a bit big these
days. The full distribution, at least. I remember myself using
epsilon on the PC, and I kept a floppy with the epsilon, which is
basically an emacs clone, written in assembly. It fit in 300K of
code, so it would be nice to have something like that in Linux. I
mean, GNU/Linux, correct me, please.
Miguel: Yeah, or FreeBSD, or BSD, or whatever
thing that you use these days.
Dave: What about that GNU/Linux? You’ve been
talking to Richard Stallman.
Miguel: Oh, well, I really don’t mind. At
least, my involvement with GNOME has shown me that really the thing
beneath, the operating system, I mean, besides the libc level, will
pretty much run on anything. Solaris, Unix, Linux, whatever, you
name it. And in some ways it makes sense to acknowledge that Linux
is just a kernel, right, so say somebody was trying to put together
a distribution with a BSD kernel and the Red Hat userland, right?
Because it’s beautiful, so well configured, that sort of thing. So,
they went to port glibc to FreeBSD, and so they’ll have a nice NFS
server, and they will have the features of Linux. So, at that
point, where’s the division?
Dave: Well, would they call it ‘GNU/FreeBSD’
Miguel: I don’t know, it’s GNU/BSD,
Dave: Because what’s interesting is the GPL is
a very different license than the BSD. In fact, those two licenses
are sort of, two camps in the free software community. So, you’re
saying, ‘GNU’ and ‘BSD’ together.
Miguel: For example, you have a Linux system,
which uses X Windows, which uses a different type of license,
right? You’ll still use it on the system, right? I really don’t
understand the FreeBSD people, they want to keep the base system
completely under that license, but I don’t think their tools have
evolved like they should have evolved. Their kernel is great, but
their tools, their userland, is just ancient. It needs some
updating. And, doing a Red Hat port, you’ll hate me here, but the
Red Hat port to the BSD kernel, looks like a good idea. You get
some nice features from the kernel, and it’d be nice if you could
just switch the application and run on the kernel is more
interesting to you. Actually, you can do that. If the library is
the same, and if the application is going to do any system calls,
they just call the library, you can actually have binaries from
both the BSD kernel and the Linux kernel.
Dave: Very interesting. I’d like to play with
Miguel: Yeah, BSD has some nice and interesting
features. So, to me the difference between Linux and GNU/Linux. If
Stallman wants to get some credit for that, it’s fine with me.
Dave: I think Stallman deserves a lot of
Miguel: Exactly. People bicker a lot, and I
think he’s a nice person. He’s an interesting person, too. And, I
don’t know. People are very opinionated, I am very opinionated.
Don’t start me in that.
Dave: I’m opinionated, but I try not to show my
opinions…. I’m hungry. Do you want to go to lunch now?
Miguel: Yes, let’s do lunch!
You can also listen to this
complete interview with any streaming mp3 player.