- MCP server with stdio transport for local use - Search episodes, transcripts, hosts, and series - 4,511 episodes with metadata and transcripts - Data loader with in-memory JSON storage 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
378 lines
17 KiB
Plaintext
378 lines
17 KiB
Plaintext
Episode: 825
|
|
Title: HPR0825: Jamey Sharp Interview at X.Org Developer Conference (XDC) 2011
|
|
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr0825/hpr0825.mp3
|
|
Transcribed: 2025-10-08 03:05:53
|
|
|
|
---
|
|
|
|
Hey all, this is Marcus again.
|
|
So this past week was the Exorg Developers Conference in Chicago, Illinois in United States.
|
|
This is the yearly conference where the Exorg guys get together and geek out basically.
|
|
Anyway, so while I was there, I managed to round up four interviews with developers and
|
|
I thought that y'all might like to hear them.
|
|
I enjoy this conference.
|
|
This is the second one I've been able to go to.
|
|
The thing I like about it is that these guys are really smart and they're really fun.
|
|
They're a cool bunch of guys and they're really productive.
|
|
If you check out the mailing lists, you know, Mesa, Exorg Develop, DRI, XCB, these guys are
|
|
machines.
|
|
They just crank stuff up and considering how few of them, they're actually R. The amount
|
|
of work that gets done is incredible.
|
|
So anyway, I wanted to do some interviews to get people an idea of who the Exorg guys
|
|
are.
|
|
So anyway, I hope you enjoy these interviews and yeah, guys, this is Marcus again.
|
|
I'm going to sound retarded starting out, but this is my third podcast for Hacker Public
|
|
Radio.
|
|
I'm sitting here with Jamie Sharp at the Exorg Developers Summit.
|
|
This one's the Ex Developers Conference.
|
|
Is this the conference?
|
|
Yeah.
|
|
I mean, it summits the European one.
|
|
Okay.
|
|
2011 today is Wednesday, the 14th.
|
|
That sounds right.
|
|
Okay.
|
|
Got a story of interviews.
|
|
Jamie was the first one who was willing to sit down with me as I fumble through this.
|
|
So anyway, so this little one, this is it.
|
|
So you want to introduce yourself, give a brief overview, history, so I'm Jamie Sharp.
|
|
I got involved in X in 2001 when I was sitting, we used to have this weekly sushi lunch
|
|
of various people around the Portland Oregon area and Keith Packard and Bart Massey would
|
|
show up and Bart, Bart's been my advisor in my academic advisor and actually I met
|
|
in a year before I started at Portland State School.
|
|
So he is really a mentor for me for a long time.
|
|
And so I'd go along with him to these sushi lunches and one day, you know, Thursday
|
|
sitting there at sushi and Bart and Keith talking about the sorry state of X-Lip.
|
|
And here I am, this poor undergraduate student and they turn to me and say, hey, Jamie,
|
|
you should fix this.
|
|
And I didn't know any better, so I said, okay.
|
|
And off I went.
|
|
And for extra bonus points, Bart then said, and you should do it in M4.
|
|
So you're stabbing in a forehead, but like a pencil or something.
|
|
But again, I didn't know any better, so I said, okay, apparently like that weekend Bart
|
|
Keith were talking on the phone and Keith's like, I can't believe you did that to him.
|
|
And Bart said, you're right, on Monday I'll tell him, you know, he doesn't have to do it
|
|
in M4.
|
|
And so Bart comes to me on Monday and I'm like, but I already did it.
|
|
So I had a working prototype, you know, over the weekend, I mean, it's the day I'm
|
|
like, boy.
|
|
Well, the X protocol is not that complicated.
|
|
I mean, it's not like I had, you know, all of the core X protocol let alone any extensions,
|
|
but I had something that could put up a window, right?
|
|
It's not that hard.
|
|
Which was the thing that was really irritating all along about X-Lip is it's solving a problem
|
|
that is not that hard and it's doing it a really, really hard way.
|
|
Hmm.
|
|
So that was the history there.
|
|
Okay.
|
|
That's enough.
|
|
Wow, that's pretty good.
|
|
Yeah, I don't know much about the X-Lip protocol stuff.
|
|
So I guess I need to dig into it a little bit more and find out.
|
|
That's, of course, one of the, I mean, you've been working on documentation.
|
|
That's one of the best documented parts is all these bits of protocol.
|
|
So anything you want to know about the protocol is in there somewhere.
|
|
Is in there somewhere.
|
|
That protocol for X-Lip is, I forgot how many pages it is.
|
|
It's quite big though.
|
|
So the protocol for the core protocol for X, yeah, that's 100 and something pages.
|
|
The X-Lip manual on the other hand, is that the one you can lie like 15 manuals or used
|
|
to be able to?
|
|
Yeah.
|
|
Okay.
|
|
Alright.
|
|
Maybe that's what I think of when I hear X-Lip, because that's just, maybe that can just
|
|
run the screen in the other direction.
|
|
Yep.
|
|
That's the correct reaction to X-Lip.
|
|
Oh, okay.
|
|
Okay.
|
|
We probably shouldn't be seeing it because part of my goal was to bring new developers
|
|
into X-Lip.
|
|
So if we probably shouldn't scare them.
|
|
Well, you know, I mean, so my, the history of my involvement in X has always been trying
|
|
to take the code and make it simpler.
|
|
If you wanted to summarize everything I've done, that's a summary that works for everything.
|
|
Have you had good luck doing that?
|
|
Mixed luck.
|
|
X-C-V has been pretty successful.
|
|
Every distro, every Linux distro, or at least every major one, and Solaris, no S10, basically
|
|
everybody now is shipping X-Lip that's built with X-C-V.
|
|
Okay.
|
|
So what is X-C-V?
|
|
So X-C-V is X-Proticle-C binding, and that's the thing that that, that sushi lunch
|
|
led to.
|
|
I mean, they said X-Lip sucks.
|
|
We need something that just does the core protocol, or just does the X-Proticle, and that's
|
|
it.
|
|
And that's what I built.
|
|
And Bart suggested calling it X-C-V, and that's the name we've gone with.
|
|
Okay.
|
|
So the whole, like, because X-Proticle itself is asynchronous?
|
|
Or is it synchronous?
|
|
Because you got, like, three or four back-and-force between a client and server every time you try
|
|
to do anything, right?
|
|
Well, no.
|
|
So the X-Proticle is actually really cool from the protocol design standpoint.
|
|
One thing I always find interesting.
|
|
According to JG, the, it jumped at us, the initial announcement for X went out on
|
|
use net in June 1984, beginning of June, which, which puts it, like, three weeks before
|
|
I was born.
|
|
So that's always kind of entertaining.
|
|
The current version of the X-Proticle that we're using, and the current version of the
|
|
server and client libraries, and, and a lot of the, the infrastructure in X, dates to
|
|
September 1987.
|
|
X-Eleven is 25 years old.
|
|
This protocol has survived 25 years, and there's, there's a reason it survived that long.
|
|
It's, it's actually really well designed.
|
|
So X, X, X, X-1 came out in 1984, and X, right now we're using X-Eleven.
|
|
Oh, it's 11.
|
|
So in three years, we had 11 versions, right, and then since then we've had basically nine.
|
|
Right.
|
|
Because by the time they got to, you know, this X goes to 11, right, by the time they
|
|
got to 11, it was actually in really good shape.
|
|
I mean, there, I think the biggest thing that's made the X protocol version 11 survived
|
|
this long is that it had a good extension mechanism.
|
|
So yeah, there were, there are lots of things that are busted about the core protocol.
|
|
All of the drawing APIs, all of the text APIs, a bunch of stuff in the core protocol.
|
|
Basically all of the input APIs, you can say most of the core protocol is not useful in
|
|
today's environment, but it doesn't matter much because the extension mechanism that
|
|
they built into the core protocol has led us do better without changing the protocol itself.
|
|
Okay.
|
|
There's, I think I saw there's 20 or 30 total extensions.
|
|
I mean, not all of them are used.
|
|
Yeah, there've been a lot that have shown up over time.
|
|
It could pull out a laptop and X-dippy info and find out, you know, what the list of extensions
|
|
on a particular server is.
|
|
There are extensions that have come and gone.
|
|
Maybe one of the best known among X developers or the older X developers, anyway, is, I think
|
|
it was called Figs or OPEX, the Figs Extension to X, which was an early attempt to add 3D
|
|
to X, and obviously OpenGL completely killed it.
|
|
What did it come out about the same time as OpenGL, or it came out and then OpenGL came
|
|
out and they said, oh, okay, this is much older.
|
|
I mean, by the time I got involved in X, PECS was already so defunct that, you know,
|
|
so I don't really know.
|
|
You could ask Keith, right?
|
|
Okay.
|
|
Maybe I'll be able to sing a little bit of time for him and pick his brain.
|
|
Oh, that's cool.
|
|
I didn't know what that one.
|
|
There've been a whole bunch of things.
|
|
There was, I don't know if you've heard of DisplayPoseScript, which is the idea is to use
|
|
it.
|
|
It's a DPS extension, right?
|
|
Yeah, yeah, yeah.
|
|
And so that came and went.
|
|
I did documentation for that one, and I don't think that one would get used, but, you know,
|
|
it was good.
|
|
It was good to exercise.
|
|
Keep everything updated.
|
|
There's a multi-buffer extension, but along the double-buffer extension.
|
|
I remember the DBE double-buffer one.
|
|
There was a multi-buffer extension.
|
|
There was a multi-buffer extension, really.
|
|
That got, finally, purged from the server just last year, I think, really, but nobody
|
|
was using it.
|
|
Okay.
|
|
All right.
|
|
But yeah, so this extension mechanism was really great, and I think it's contributed a
|
|
lot to extra-living this, but beyond that, other things that are really great about the
|
|
X Protocol design, a well-designed client can run for a long time without getting any
|
|
responses from the server.
|
|
A lot of the requests that a client might want to do, you just send them and sort of forget
|
|
about them.
|
|
The server will do them.
|
|
You don't have to wait for any responses to come.
|
|
Sooner or later, we have to worry about a timeout or anything like that.
|
|
Not only do you not have to worry about a timeout, but I mean, X is designed as a network
|
|
protocol so that you can use it across high latency links, use it across an ocean if
|
|
you want to.
|
|
Connection dies.
|
|
It comes back.
|
|
Okay.
|
|
As well?
|
|
Well, no.
|
|
That's something that has always needed special client support, and people could do it, but
|
|
nobody's ever cared enough.
|
|
So, we call that migration and replication, and there's only one application I know of
|
|
that can do X migration and replication, and that's Xemax.
|
|
But the idea is, generally, you might want to have an application open a connection to
|
|
two different X servers, and display basically the same stuff on both of them.
|
|
That would be replication.
|
|
And you might want to be able to say, well, I've got this application that's showing up
|
|
on my screen right now, but I'm moving over to that machine, so I want to move the application
|
|
with me.
|
|
Yeah.
|
|
In fact, there was a summer of code project a few years back to do something that's
|
|
like a new screen, but for X.
|
|
I know.
|
|
I think he got it to work, but I don't know that anything's happened to us.
|
|
Yeah.
|
|
Because I would be really cool.
|
|
I would really like that.
|
|
A lot of people agree.
|
|
I mean, it's a, I want to say it's a popular thing to want.
|
|
A lot of people don't think about it at all, but among other things, I think it's
|
|
among the things that most people don't think about.
|
|
That's one of the most popular.
|
|
Does that make sense?
|
|
All right.
|
|
It's one of the most popular things that people don't think about it.
|
|
Yes.
|
|
Yeah, I'll pull on that later.
|
|
All right.
|
|
What else?
|
|
I got a whole list of questions here to ask people.
|
|
Let's see what else.
|
|
Help?
|
|
Right.
|
|
You see, because one of my thing is I'm trying to pull people in.
|
|
Yeah.
|
|
And you're one of the people I pester when it, because XCB is actually very popular among
|
|
the people.
|
|
Hey, where can I help?
|
|
And they say, look through the list of things all over.
|
|
And they say, ooh, XCB, that's one's kind of cool.
|
|
So basically, throw them up with fence at you, which I shouldn't be other guys.
|
|
And then it turns out I'm always swamped.
|
|
And so I'm not so good at responding.
|
|
But I think I've said to you an email before, the task of connecting people who want to help
|
|
with people who need help is a really valuable task all by itself.
|
|
It's a really cool skill.
|
|
Yeah, finding, being able to care for people who have the time to be able to help them is harder.
|
|
Yeah.
|
|
Yeah.
|
|
Yeah.
|
|
So there's this kind of self-defeating thing, right?
|
|
And that the people who need help are too busy to help the people who might help them.
|
|
Yes.
|
|
Yeah.
|
|
Because when you're bringing people up, I mean, and you take a hit because you've got to spin them up.
|
|
And it takes effort.
|
|
So is there anything that people who want to help can do?
|
|
Or they can, I mean, for those listening who are interested in helping out XCB,
|
|
whatever, how can they get involved?
|
|
Realizing that some of them probably know the way around it.
|
|
Okay.
|
|
Most people listening probably know the way around a compiler that may not know the...
|
|
probably don't know the intricacies of X or something.
|
|
Yeah.
|
|
What you'll find is that the people in the X community are very willing to help you figure out
|
|
where you need to go hack to accomplish something.
|
|
But you need to be persistent.
|
|
I love this expression of getting lost productively.
|
|
That I think is actually the most important skill is you're going to get lost in the code base.
|
|
And that's a good thing.
|
|
Be willing to be prepared to spend time just kind of exploring,
|
|
getting a handle on where things are.
|
|
And I mean, you're not going to learn everything about X.
|
|
There's too much, no person, not even the...
|
|
Most chief understands it all.
|
|
Not even the most expert person in that conference room back there has any idea what most...
|
|
So it's okay to not understand the whole picture?
|
|
Absolutely.
|
|
But spend some time getting both the high level of view and getting an idea of the pieces that are most closely related to what you're trying to work on.
|
|
And just don't expect to jump in and say, oh, this is the obvious place to do this.
|
|
And people have crucial fix in a couple hours.
|
|
That's not going to happen.
|
|
This has a reputation in some areas for being hard to talk to people,
|
|
I guess, find out who to talk to and people kind of developers being very almost established on.
|
|
They found that that's actually not the case.
|
|
Most of the X people on IRC channel and the mailing list, especially here at the conference, are actually kind of cool people.
|
|
They're very cool. They're easy to talk to.
|
|
They're kind of fun, actually.
|
|
I think the key thing about that is, in this audience probably knows that already,
|
|
but reading essays like how to ask questions this smart way,
|
|
there's Eric Raymond's essay on the topic and there's Simon Tatham's similar essay on the topic.
|
|
I can look up those URLs.
|
|
Okay.
|
|
I know him, Simon Tatham.
|
|
You've probably played his puzzles, the SGT puzzles,
|
|
or you've possibly used Putty on Windows.
|
|
Oh, I guess I have.
|
|
Those are the things that he's famous for.
|
|
Okay. All right. I have used Putty.
|
|
Okay.
|
|
I can recommend his puzzles as well.
|
|
I could.
|
|
Okay.
|
|
Very cool.
|
|
So we can people help.
|
|
The most general answer is yes, absolutely.
|
|
There's tons of work to do.
|
|
My ongoing pushes have been for throwing away code.
|
|
Because it's September 1987 is the era that a lot of this stuff dates to.
|
|
Last year, I submitted a patch that turned out to fix a bug that was in X-11 release one in September 1987.
|
|
And nobody had noticed it for what would that be 22 years?
|
|
I can't do math.
|
|
Apparently it wasn't a showstopping bug.
|
|
No, no, it wasn't a terribly important bug.
|
|
But I'm still proud of having found it.
|
|
Okay.
|
|
Getting the award for oldest bug fixed this year, you know.
|
|
That's love.
|
|
So there are lots of opportunities for that kind of cleanup.
|
|
And the trouble is, I think the big trouble with attracting developers is
|
|
this is plumbing.
|
|
The plumbing metaphor.
|
|
I'm sure there was a conference shirt here from last week.
|
|
The plumbing metaphor, I first heard from my dad who was a general contractor for a number of years.
|
|
And actually did plumbing among other things.
|
|
And it's the stuff that you don't notice until it breaks.
|
|
Yeah, no one notices when X is running smoothly.
|
|
Right.
|
|
I just noticed it.
|
|
Why can't I get this to work?
|
|
Yeah.
|
|
Which, you know, if you have a few minutes, how can X developer today?
|
|
Well, if I'm a beard.
|
|
Yeah, that's people might appreciate that more.
|
|
Send a thank you note to someone who's actually fixed a bug you care about.
|
|
That'd be great.
|
|
That'd be cool.
|
|
We don't see here enough people hopping on to say thanks for all the work that you do.
|
|
And that's generally true of all this plumbing stuff.
|
|
Linux kernel, X, D bus, you know, anything.
|
|
What you get is complaints.
|
|
And that's kind of it.
|
|
Yes, true.
|
|
No one appreciates exactly how much work really goes into all that.
|
|
Yeah.
|
|
You see the problems.
|
|
So true.
|
|
So you guys listening?
|
|
Yeah.
|
|
Yeah.
|
|
Show some appreciation for the Xbox.
|
|
They're pretty cool.
|
|
And they, I don't get any credit for what they do.
|
|
Ah, cool.
|
|
Well, anything else in particular you'd like to talk about before we...
|
|
Before I let you get back to the topic that's going on right now, actually.
|
|
I think that's it.
|
|
Cool.
|
|
Thanks for the interview.
|
|
Ah, thanks for, uh, thanks for taking the time.
|
|
Again, that's Jamie Sharp.
|
|
And, uh, yeah, she wanted some more up guys.
|
|
And some beer.
|
|
Actually, you're not a beer guy that's so much better than I.
|
|
I'll do cider.
|
|
Cider?
|
|
Yeah, like cider.
|
|
Cider's good.
|
|
So, cool.
|
|
Well, all right.
|
|
I guess we're done here.
|
|
You have been listening to Hacker Public Radio at Hacker Public Radio.
|
|
We are a community podcast network.
|
|
The release of shows every weekday Monday through Friday.
|
|
Today's show, like all our shows, was contributed by an HPR listener by yourself.
|
|
If you ever consider recording a podcast, then visit our website to find out how easy it really is.
|
|
Hacker Public Radio was founded by the digital dog pound and near Phenomenal Computer Club.
|
|
HPR is funded by the binary revolution at binref.com.
|
|
All binref projects are proudly sponsored by linear pages.
|
|
From shared hosting to custom private clouds, go to lunarpages.com for all your hosting needs.
|
|
Unless otherwise stasis, today's show is released under a creative commons,
|
|
attribution, share a line, lead us our lives.
|