Algorithms + Data Structures = Programs - Episode 27: MacHack & Apple with Sean Parent
Episode Date: May 28, 2021In this episode, Conor and Bryce talk to Sean Parent about MacHack and how he got hired at Apple.About the Guest:Sean Parent is a principal scientist and software architect for Adobe Photoshop. Sean h...as been at Adobe since 1993 when he joined as a senior engineer working on Photoshop and later managed Adobe’s Software Technology Lab. In 2009 Sean spent a year at Google working on Chrome OS before returning to Adobe. From 1988 through 1993 Sean worked at Apple, where he was part of the system software team that developed the technologies allowing Apple’s successful transition to PowerPC.Date Recorded: 2021-05-19Date Released: 2021-05-28Orange MicroMacHackMacHack Annual Report ‘88Ted NelsonProject XanaduMacsBugQuickDraw GXSkia: The 2D Graphics LibraryWebKitIntro Song InfoMiss You by Sarah Jansen https://soundcloud.com/sarahjansenmusicCreative Commons — Attribution 3.0 Unported — CC BY 3.0Free Download / Stream: http://bit.ly/l-miss-youMusic promoted by Audio Library https://youtu.be/iYYxnasvfx8
Transcript
Discussion (0)
so much so that I, you know, we weren't paying attention to the time and I missed my flight
back down to Southern California. I'm actually still angry about the whole thing.
Welcome to ADSP, the podcast episode, recorded on May 19th, 2021.
My name is Connor, and today with my co-host Bryce, we continue our conversation with Sean
Parent and get into some epic stories about Sean Parent's time at MacHack and how he got
hired at Apple.
So yeah, I've heard, I'm not sure if I've heard about every single one of these stories,
but I've definitely heard of a couple of them.
So Sean, if you can take us back to, I think it's 1988, 1989,
and tell us your Mac hack stories, because these are awesome.
But first, Connor, how old were we in 1989?
That's not nice.
We both weren't born.
Yeah, I think my youngest son is older than both of you guys.
So that says something.
Yeah, so a little background, I guess, here.
In that time frame, I had graduated from Seattle University
and was trying to get established with a career.
I landed a job at a little company called Orange Micro.
They were a hardware manufacturer down in Anaheim. They were known for something
called the Grappler, which was a parallel card to plug in printers into an Apple II.
And they were pivoting and doing these smart cables for Macs. So it was a serial cable you could plug into a Mac and in the cable
it did serial to parallel conversion and escape sequence conversion and would let you print
to Epson printers, you know, or non-Apple printers, which sounds silly these days,
but that was a problem at the time.
And so I spent some time doing firmware on this, and then kind of pivoted and said,
okay, well, I could do a print spooler,
and this was before the Mac had multitasking,
and so I basically had to figure out
how to write a multitasking system for the Mac
so I could render graphics and print in the background and then the
once I kind of had that going it was like oh well now I can take over a lot
of what was on the done in the little firmware and we could handle more
complicated cases so so we had like the first solution to plug a Mac into an HP
laser jet or an HP deskjet printer to use one of those laser
printers instead of Apple's laser printer, which was ridiculously expensive at the time because
it had a more powerful computer than the computer you were using in order to run PostScript to
render graphics. And so that's what I was doing. And then, you know, I asked my boss, I said, hey, there's this conference called the Macintosh Technical Conference in Michigan.
And could I go?
And so he was like, sure, you could go.
So the alternate name for the Macintosh Technical Conference was MACAC.
And this was in Ann Arbor, Michigan.
And was this run by Apple? No, no, it was independent.
It was run by the Mac Hack Group. And the people who ran the Hack Contest, which is what it was
known for, were Scott Boyd and Greg Marriott. So they ran the Hack Contest, and the one rule at the hack contest was that Scott and Greg make the rules.
But the hack contest kind of dominated the conference.
And so the conference was a technical conference, and people presented papers and gave talks, and there were a couple of tracks.
It was a relatively small conference, a couple hundred people.
And they would invite in a keynote speaker.
They had some really amazing keynotes over the years.
The keynote always started at midnight on the first day of the conference.
And the conference ran three days, so it was 72 hours.
And the keynote speaker would start at midnight and could talk as long as they wanted to talk.
And I think the record holder was Ted Nelson.
I don't know if you guys know who Ted Nelson is.
I did not.
Ted Nelson invented the concept of hypertext kind of pre, before there was a web,
and worked on a project called Xanadu, which is where a lot of the ideas for the modern web came from. But Xanadu was kind of this nutty
system where you had links were bi-directional. So if you created a link
to something then you it wasn't just to the thing but the thing created a link to something, then you... it wasn't just to the thing, but the thing that you linked to could also get back.
So it was like, you know, built-in Google search into the links.
And this was... I don't know, this was maybe 88, 89.
Ted Nelson gave this talk on Xanadu, and this was way before the web existed, and talked for probably six hours, you know, so from midnight to 6 a.m.
And I thought the man was brilliant, but completely nuts.
You know, he put up all these slides going, you know, we're going to build this.
It's going to be this, you know, worldwide system.
You'll be able to link to anything,
anywhere. One key feature of Xanadu was there was no deletes. So you had like full history of everything. And everything was distributed, you know, in the cloud. You literally would use the
term the cloud. And you could get, and you know, you would put up all these graphs about there was no reason why we would ever need to delete anything because the
the cost of storage was falling so rapidly and on such this such the sharp
decline that you know all the textual information that had ever been produced
by mankind could be stored and replicated within
this cloud without breaking a sweat, especially since, you know, if you copied and pasted, those
were just links and you weren't actually copying anything. And so it tended to be a pretty
dense format. And what he didn't anticipate was video and the amount of storage space that, you know, video and audio circulating on the web would take.
But otherwise, he was pretty spot on.
But yeah, so in any case, I went to my first Mac hack in Ann Arbor, and this would have been 88.
Yeah, it would have been 88.
So that was the first one that you saw Ted Nelson speaking?
I don't know if he was at that one or he was the next year.
I think he was probably the next year.
And how many years had MACAC been going?
This had been on your radar for a while or you found out about it rather recently?
There had been maybe one or two before that.
I could probably look it up, the history of MACAC.
It was not the first MACAC conference.
So I went, and, you know, relatively young guy, and didn't know anybody, was working at this,
you know, small company, Orange Micro. When I'd hired in, they'd just gone through a restructuring,
and I was the only software person at the company. And so I went to the conference and decided, well, I'm going to do a hack.
And the idea with a hack was you should come up with the idea for the hack while you were at the conference.
Don't bring code. Code it while you were at the conference.
Hacks should be collaborative. They didn't have to be.
But, you know, get a group of people together to work on your hack.
And it could be anything that demoed well, right?
So I had an idea for a hack to do a floating clock on the Mac.
And this was before Mac had Multifinder. So Mac was, like I said, it was one app at a time, no threads,
you know, single tasking system.
But I just wrote this print spooler, so I knew how to get code to run in the background
and draw graphics in the background.
What I didn't know how to do was overlay something on the screen, right?
We didn't have window compositors or anything like that.
The screen was just a big bitmap.
And the Mac had a you know windowing
system built on something called Quick Draw where you could carve out regions
right so kind of a window was described by a region which was a compact data
structure to represent a bitmap and as a set of inversion points and so I need
somebody who knew about regions and there was a guy at the conference whose name I knew, Darren Adler.
He had written some articles for a magazine called MacTutor, which later became MacTech.
He had written articles about how the window manager regions worked and doing things like how you could draw circular windows.
And I thought, OK, he would know how to hack into the window manager so
that we could get this clock floating on the screen and so he worked at Apple first day there
I approached him at lunch and said you know you don't know me and and I've got this idea for a
hack do you want to work on it he said that would be great and so we ended up spending most of the
time in I don't even remember if it was his hotel room,
but it was one of the Apple people's hotel rooms
working on this hack,
and he had brought a computer.
You didn't have laptops at the time,
so I didn't bring a computer.
I actually brought a printer, an HP DeskJet,
to show what you could do with that.
We didn't have any copies of inside
Mac which were the the Macintosh manuals in paper so to figure out like the OS
API calls we were sitting in in what's known as Macsbug which is the Mac is
an acronym from Motorola it's not actually Macintosh, but it was a low-level assembly
language like GDB or LLDB debugger. So we were figuring out API calls by setting breakpoints
on OS functions and watching how the parameters were passed to figure out what the parameters were.
And we wrote this system extension that pulled off this floating clock. And it would not only float over windows, it would float over menus,
which at the time the menu system went through kind of a completely different mechanism
than the windowing system and even over the menu bar.
And so it was a pretty impressive hack.
And we took third place.
And because I had brought a printer and there were no other printers at the conference and we had to do things like print ballots, you know, for the hack contest.
You know, I also got an award for the best commercial hack for my work on the grappler.
Wait, if that only got third, then what could have possibly gotten second and first?
Because that sounded pretty impressive.
Yeah, you know, I don't remember what got,
you know, first or second
was probably something called net train.
You know, most of the things,
because who got first or second
was based off of what showed well and
the last night you had uh you know you you you had this everybody would stand up on stage and
present their hack and so there was a fair amount of showmanship involved in in into who the winner
was going to be and flash for the hack and you know a floating clock is fairly utilitarian uh i'm fairly notorious for
you know i i uh uh never won best hack but i think i was you know in the the top three without
winning the best hack more than anybody so so because i always wrote useful things and those just didn't show well.
But yeah, one or two was I think something called NetTrain, which was a train, like a literal animation of a train that would go across your menu bar.
And it would go from machine to machine on an AppleTalk network.
And so it understood, you know,
AppleTalk networks were daisy chained.
And so it actually understood the topology
of the daisy chain.
And so would basically go from machine to machine
following the cable around the network.
So that's pretty cool.
Yep.
So that was kind of my first experience.
And from that, you know, I ended up spending all this time not with Darren, not just with Darren, but with Scott Boyd and Greg Marriott, who were also from Apple.
And they were the ones who ran the hack contest.
And to this day, I consider Scott, you know, one of my,
my, you know, closest friends and, and spent all this, this time working on this hack with,
with Darren and impressed Darren. And like two weeks later, I got a phone call from Apple and,
and cause Darren had passed my name along. And so that turned into me uh getting a job at apple did we did we tell
that story last time i don't know if we told that story last time i don't think we covered sean's
apple era yet oh man because this i'm not sure if there's more mac hack stories but if if if
because this is like one of the best stories is one of my favorite stories is the how you got a job at apple um
yeah the interview process um so it's your it's your choice if you if you have more mac hack uh
we can do more mac hack or you can you can uh we can take a tangent to um how to get a job at apple
uh and everyone can take notes yeah this is the this is the surefire way to get a job at apple
so so uh right so after this first mac hack um a couple weeks later i get a phone call from apple
they want to bring me up for interviews and this was for kind of the next generation printing team
at apple for a project that eventually became uh quickGX. And so this was the printing side of QuickdrawGX,
which was going to be, well, it shipped.
It was going to be Apple's new graphic system.
And oddly, the code name for QuickdrawGX is Skia,
which some of your listeners might recognize
because that's the graphic system that's in WebKit.
And so two of the principals on Quickdraw GX were Mike Reed and Kerry Clark.
And after Quickdraw GX was canceled at Apple,
Kerry and Mike Reed started their own company doing a 2D graphics system
and sold it to Google.
And so that's where Skia comes from.
And I discovered this history oddly,
you know, a decade ago when I worked briefly at Google and was working on Chrome OS and the
graphic system was Skia. And I was like, well, Skia, that's an interesting coincidence. And then
I opened the header files and I'm like, no, this skia like I worked on this graphic system how bizarre uh so uh yeah so in any case so so I get this phone call to go work on on quicktry gx
and they want to interview interview me uh will stein who I think is back at apple still at apple
was the the hiring manager.
And so I flew up and spoke with some people on the team,
and my last interview of the day was with Will.
And Will and I sat down, and I told him what I had been doing at Orange Micro as far as kind of, you know, hacking this printing system.
And one of the tricks that I did was to get this
printing system to work. I actually used Apple's printer drivers to do the
rendering. I would just lie to the printer driver about the size of the
page to get different resolutions for pages and leverage it. But a big problem you had at the time if
you were changing scales or resolutions was that fonts were all bitmap fonts at
the time and all hand-tuned and that means that fonts didn't scale linearly.
So if you if you doubled the point size of your font it didn't take up twice the width. And so that creates this problem
called line layout. And so if you think, you know, an application is sending
information to the printer by making a whole bunch of graphics calls to draw
runs of text or to draw characters, but the printer driver would have to make
that look correct as it scaled it up. And so to do that, it would have to make that look correct as it scaled it up.
And so to do that, it would have to figure out what was a line of text
and then basically re-justify that line of text
so that the endpoints hit at the same spot.
And so line layout was a fairly complicated algorithm. And so Will asked me
in the interview to describe how line layout worked. And so I said, well, you know, the image
writer LQ driver, this is how line layout works. And I kind walked walked through the algorithm a step at a time and he
said no you're wrong I wrote the driver and that's that's not how it works and he gave a different
description and I was like I don't even think that that would work no I've you know I've been
in this code I've stepped through this code I've taken it apart, you know, at the assembly language level. You know, I know exactly how this algorithm works and you're mistaken.
And we got into a very heated argument about the details of this.
And so much so that, you know, we weren't paying attention to the time,
and I missed my flight back down to Southern California.
And so after we kind of wrapped it up, it's like, fine, we agree to disagree.
We just had this big argument.
I'm actually still angry about the whole thing.
I go to the airport, and now I have to arrange another plane
and sit at the airport and, you know, wait for another flight. And so, you know, now I'm sitting at the
airport thinking, oh, I just completely blew my chance of working at Apple. You know, I just
got into this heated argument with my hiring manager about how what he was, you know, that
he was wrong about code that he wrote himself.
And so, you know, flew back down to Southern California and went into work the next day.
And bright and early in the morning, my phone rang and it was Will.
And he said, oh, he was calling to apologize about the argument, and he went back and looked at the sources after
our argument, which I thought was somewhat impressive, because I think it was probably
six o'clock in the evening by the time we were done, so he didn't just go home, he actually
went back and pulled up sources and read through them. And, and he said that, you know,
he told me that that I was right, that it worked the way I had described. And, and I was hired.
So if anyone has a better hiring story, reach out to us, we'd like to have you on the podcast.
I don't recall if it was a hiring story but I recall there's another Sean story
where
I recall you say
something to somebody along the lines
of
something
like
somebody was telling you that something couldn't be done and you were
like well hire me and I'll come do it for you
was that this particular
one or was this
another one? No, that was a, that was a much more political thing that you would have to, you know,
fast forward until after I left Apple. So, you know, I left Apple after five years and went to
Adobe to work on Photoshop. We'll stop it here. Thanks for listening and be sure to tune in next
week for our final part,
part three of our conversation
with Sean Parent
where he talks about his history
with Steve Jobs.