I was hired on at Apple in October of 1995. This was what I refer to as Apple’s circling the drain period. Maybe you remember all
the doomsaying — speculation that Apple was going to be shuttering soon. It’s a little odd perhaps then that they were hiring
at all but apparently Apple reasoned that they nonetheless needed another “graphics engineer” to work on the technology known as
QuickdrawGX. I was then a thirty-one year old programmer who lived in Kansas and wrote games for the Macintosh — surely, Apple thought,
I would be a good fit for the position.
I had never experienced anything like the interview process (detailed here)
but as it ultimately turned out, I was offered (and I accepted) the job as QuickdrawGX graphics engineer at Apple Computer, Inc.
Moving the girlfriend, all my stuff (and two cats) from Kansas to California was pretty wild but we got on with it. As it would turn out
I had a good deal to learn about my new career — er, well, about professionalism in general. And immediately I came to find that I may
well have been in over my head as a programmer. These other engineers at Apple were friendly, but also very smart. (If I have not already,
I should write up a little bit about the early panic that I endured — feeling like I had wandered into the deep end of the pool.)
Eventually though (about six months later) I started to get into the groove so to speak and felt a little more comfortable with
getting the work done. But as I’ll soon make obvious I was still an undisciplined bumpkin not at all in step with Professional Corporation™.
QuickdrawGX, the project, imploded not long after I was hired though and so instead I was asked to join a new team (the ColorSync team) and
soon was handed a new project. Apple had a standard window with which the user could select a color — this was called the Color Picker. Apple
also was at this time beginning to transition from using Motorola 68K chips in their computers to using the new and faster PowerPC (PPC) chips.
My task was to get the existing Color Picker project, written for 68K chips, to compile for the new PPC architecture.
Color Pickers
The original HSL and RGB color pickers (some assembly required). As I explain later, I really don’t like “lightness” because,
among other things, the vivid color is in the center of the slider. Not very intuitive.
The color picker was a modular architecture with two color pickers: an HSL (Hue, Saturation and Lightness) color picker and an RGB (Red, Green,
Blue) color picker. There was a good deal of assembly code written for the HSL picker that allowed it to render a color wheel very quickly to
the screen — even as the user dragged the Lightness slider in real time. In case you don’t know, assembly is a programming language that targets
a very specific and narrow set of chips. In this case the code had originally been written for the 68K family of chips from Motorola. So in order
to compile the color pickers for the new PowerPC chips, the existing assembly code would have to go — would have to be replaced.
Having never written anything in assembly, you can imagine how overjoyed I was. It’s not actually a very accurate analogy, but imagine someone handing
you a book in Chinese and asking you to translate it into English (I’m assuming here that you don’t know Chinese of course). Okay, it wasn’t that
hard, but maybe you get a sense that this was quite a hurdle that I would have to overcome.
To keep a long story short, I did get it sorted out — I rewrote the assembly code in straight C (a language I was familiar with) and the PowerPC was
happy to display the HSL color wheel. The PPC chips were so much faster than the 68K ones that in fact some assembly was not required.
Let’s be clear, handing the color picker project over to the “new guy” was not an act of kindness — it was because no one else wanted it. A dick move?
Maybe that’s putting too fine a point on it — it’s to be expected.
And while I am often quick to point out how much better programmers many of the engineers I worked with at Apple were, I will say that I was the guy
that accepted everything that was put on my plate. Quite often I ended up finding little ways in which I would end up enjoying working on them.
There were however other challenges with the Color Picker — there were a lot of callback procedures that I was new to, did not understand. I wanted
to be very sure that I had not broken any of these procedures. Because the Color Picker project was modular, I decided the best way to understand how
all these callbacks work was to write my own color picker. Often writing code from scratch gives you so much more insight than trying to stare at
existing code that you did not write and try to see the big picture — how all the code fits together. I suppose, to drag up my Chinese analogy again,
it’s something like learning Chinese by immersion — go to China and learn the language by living it.
I disliked HSL as a color space, I preferred HSV (Hue, Saturation, Value) because when I did artwork I was more comfortable thinking about
color in those terms. So writing an HSV color picker was on my short list.
My HSV color picker.
When I had my own color picker working I think I found that it was kind of fun. Perhaps for that reason, I struck out again and wrote another
color picker. The World Wide Web (www) was a rather new thing that seemed to be catching on, so I naturally thought that an HTML color picker made
sense. So I tackled that one as well. It was more or less the RGB color picker but the values were in hexadecimal and a combined RGB string value
like “#FFCC33” was made easy to copy for the web designer.
My HTML color picker.
On a roll, I decided to also knock out a “crayon picker”. At this point, to be clear, the color picker was working and I felt I understood it
well enough. As I say, I was kind of just having some fun now.
My crayon color picker with 60 crayons. Original and New colors are displayed as scribbles with a touch of randomness.
Browns and both warm and cool grays line the front row of crayons. The saturated (vivid) hues are in the next row with
increasingly de-saturated (pastel) crayons in the rows that follow. The back row of course are all neutral grays.
I looked into copyright issues with the crayon color picker. I concluded that the name Crayola was trademarked and I think maybe the wavy pattern
on the end of the crayon wrapper. So it looked okay to me to ship.
It was frankly a thing I liked about working for Apple in those days. The engineers were the one’s driving the ship. As I said, I wrote an HSV picker
because it was, I thought, a more intuitive color space for artists. I wrote the HTML color picker because of the advent of the web. And I wrote the
crayon picker because it seemed to me to be the kind of thing Apple was all about: HSL, RGB — these were kind of nerdy color spaces — a box of crayons
is how the rest of us picked colors.
I had forgotten about the CMYK color picker until I started looking for screenshots for this post. I suspect that David Hayward contributed a good
deal to it though. And again, since Apple’s base included a large segment of the printing market, adding a CMYK picker made some marketing sense.
The CMYK color picker. Colors were represented as percentages — common in printing.
And it turned out, to my surprise, Apple shipped all the color pickers. No marketing or design person ever asked for them. But we, engineers,
were not only programmers, we were also users and often had an intuitive sense of what other Macintosh users wanted. We knew what
we wanted anyway. I was creating the things I would have wanted.
Easter Eggs
I think everyone knows what an “Easter egg” is with regard to software. It was fun to learn about or share an Easter egg that you learned about
with other Macintosh fans. Working within Apple was no exception. I mean the engineers that had created the Easter eggs were now in the same
building I was in. From time to time someone might pull up a new easter egg that I was not aware of.
The color pickers I had written seemed like a place I could sneak in an Easter egg of my own.
Perhaps you are reading this and thinking, “Ahhh, this is when he almost gets fired.” And you would be correct.
I am not sure my mistake was to try to sneak an Easter egg into the color pickers. It is a delicate thing though — by their nature they are
secretive. So do you ask permission to include an Easter egg? Or do you take your chances and beg forgiveness after the fact? The answer, I think,
is to bounce your Easter egg idea off a few engineers and see if there is buy-in. Perhaps it goes without saying that I did not adequately do that.
So what was the Easter egg that got me in trouble? As it turns out it was a few lines from T.S. Eliot’s “The Love Song of J. Alfred Prufrock”.
Specifically it was the closing line:
“We have lingered in the chambers of the sea
By sea-girls wreathed with seaweed red and brown
Till human voices wake us, and we drown.”
The text from the above was broken up across a number of resources in the color pickers — used as the names of the resources. These resource names,
like the file names of images in a web page, are not visible to the user. Someone exploring the resources in the color picker might stumble
across them. No doubt someone at Apple was looking through all the strings submitted to the OS build and spotted the lines of poetry.
It seemed like a humble and discreet Easter egg. I mistakenly assumed the poem was in the public domain but, regardless, a single
stanza would seem to me to be “fair use”. Still, it should have been obvious to me that Apple Computer Inc. was going to be very much
copyright-violation averse. (I think some of us might know of a few times Apple got in hot water over intellectual property rights.) But as I tried
to lay out earlier, I was not very sophisticated to the intricacies faced by Corporate America and so stupidly (although innocently) I jeopardized
the entire operating system Apple was about to release.
Yeah, fortunately for me and Apple, the strings were caught before the software was mastered and released.
Being Called Into the Office
I don’t remember the specifics of how it all went down. Perhaps my manager was told — perhaps he took me into his office to tell me what fire
I had foolishly started. He probably worried that my antics had reflected poorly on not just me but on his team as well (and therefore him).
He likely ended by telling me that I was to have a meeting with a higher-up within Apple — a meeting that would decide my fate with the company.
As I say, I don’t remember the specifics, but I knew immediately that I had massively fucked up and that my job was clearly on the line.
I remember I did then meet with the head of the OS effort (I think that was his position). He was an interesting character from those early-ish
days at Apple — we’d often see him riding his Honda Goldwing to and from Apple with a pipe clenched in his teeth as he rode. (He has a YouTube
channel now — I assume in his retirement — as I am).
So, yeah, he gave me a dressing down. I remember him explaining how many CDs would have to be destroyed (had they already been created?) and
the cost of those. I think I weakly explained that I had assumed that there were no copyright conflicts but he wasn’t hearing it. After
that half-hearted defense I let him berate me and more or less accepted whatever fate was coming my way.
He may have asked me what I thought would happen to me — or perhaps should happen to me. I vaguely remember acknowledging that I
could see that my job was on the line. I candidly told him that it went without saying that if I kept my job I would never do anything
remotely like that again.
And as it turned out, I did keep my job — for another twenty-plus years in fact. I became a cautionary tale though and would occasionally warn
off the new hires who might have had an inkling to do something similar. And true to my word, I would tread very carefully from that day on with
an eye to what Apple HQ would think about any of my actions — and potential consequences (intended or not).
It’s an embarrassing thing when you realize that those irresponsible tendencies you had in your youth are still with you. To fuck up in a
professional environment like Apple is like committing some social faux pas that reveals suddenly to all the guests your poor and
unsophisticated upbringing. I was suddenly Eliza Doolittle. And in addition to embarrassing myself I had also let down the team.
There would be other ways that I would come face to face with my lack of white-collar training. Like the time, several years after having
worked at Apple, that my manager asked me why I had not been contributing to my 401k. “What is that?” I asked. It turns out that my first day
at Apple was supposed to be spent in a day-long orientation that probably would have gone over what a 401k was and showed you where to
assign a percentage of your paycheck to contribute to it. I of course had skipped orientation and reported directly to my office. (My manager
at the time should have caught this and sent me to orientation. This though was another situation where I really didn’t know what I was doing.)
If the title of this post suggests to you that there was at least one other time that I was almost fired from Apple — you are correct. But
it did not involve the kind of swagger that this one did. I’ll have to post about it at some later time.
Other Easter Eggs
As I say, the result was that I was not in fact fired. To this day I have no idea why not. Perhaps Apple saw no purpose in it. Or perhaps they
thought I deserved a second chance — that everyone is allowed to fuck up once. Maybe my manager went to bat for me. I don’t know.
A few other Easter eggs that had nothing to do with intellectual property rights were in the color pickers as well. In time, the crayons in
the crayon color picker would appear worn down or broken. This had no effect on the functionality of the color picker but was kind of … cute?
I believe the crayons were all restored though on Christmas Day (a new box of crayons!).
There was a secret way where you could bring up alternate names for some of the crayon colors — substituted would be anagrams of the names
of the engineers on the team. The only one I remember was the anagram “I Born Short”.
I suspect all these Easter eggs were pulled though when the hammer came down on me for the T. S. Eliot strings. Maybe someone knows
different though.
Coworker, manager, and my first daughter (with crayons) in a meeting at Apple — around 2000. This was in the ColorSync lab that we called
“Dithering Heights”. Anyone need a SCSI or ADB cable?
Coda
When NeXT was purchased by Apple and came on board, I was a little surprised when I saw that some engineer had apparently been tasked with
bringing the Mac crayon color picker to the early Mac OS X. I think it was only then that it became a little clearer to me that the crayon picker
had become kind of legitimized. Why hadn’t Steve Jobs nixed it with a simple, “Fuck that cute crap.”
A final thought: it occurred to me that, had Apple in fact closed up shop back in 1996 or whenever, the little T. S. Eliot quote would have
been a kind of poignant sendoff. Perhaps that sense of “impending doom” was in fact going through my head at the time I typed the text in.