• Software Design (44)
• Personality (33)
• Management (30)
• Technical (20)
• Lisa (17)
• Hardware Design (15)
• Apple Spirit (14)
• Marketing (12)
• Origins (10)
• Prototypes (10)
• Personality Clashes (8)
• The Launch (8)
• Inspiration (7)
• QuickDraw (7)
• Buildings (6)
• MacPaint (6)
• Celebrities (6)
• Recruiting (5)
• 3rd party developers (5)
• Reality Distortion (5)
• Andy Hertzfeld (94)
• Bruce Horn (6)
• Tom Zito (3)
• Caroline Rose (3)
• David Ramsey (2)
• William Donelson (1)
• Brian Robertson (1)
• Steve Capps (1)
• steve blank (1)
• Bill Atkinson (1)
• Susan Kare (1)
• Daniel Kottke (1)
• Dan Cochran (1)
• Paul Tavenier (1)
• Eric Barnes (1)
• Donn Denman (1)
• Jerry Manock (1)
• Scott Knaster (1)
• David Craig (1)
• Steve Jobs (83)
• Andy Hertzfeld (47)
• Burrell Smith (43)
• Bill Atkinson (41)
• Bud Tribble (23)
• Jef Raskin (18)
• Steve Capps (18)
• Bruce Horn (17)
• Steve Wozniak (15)
• Bob Belleville (14)
• Susan Kare (14)
• Brian Howard (11)
• Larry Kenyon (11)
• Rod Holt (11)
• Jerome Coonen (10)
• Jerry Manock (9)
• Joanna Hoffman (7)
• Mike Murray (7)
• Dan Kottke (7)
• John Sculley (7)
Susan Kare: (11)
A brief history of desk accessories
Date: October 1981
Author: Andy Hertzfeld
Topics: Software Design,User Interface,Personality
One of the first architectural decisions that Bud and I made for the Macintosh system software in the spring of 1981 was that we were only going to try to run one application at a time. We barely had enough RAM or screen space to do even that, and we thought that we'd benefit from the resultant simplifications. Besides, multi-tasking was supposed to be Lisa's forte, and we didn't want to usurp all of the reasons for buying a Lisa.
Bud Tribble was usually on an even keel, but one afternoon in the fall of 1981 he came into my office, unusually excited. "You know, I've been thinking about it. Even if we can only run one major application at a time, there's no reason that we can't also have some little miniature applications running in their own windows at the same time."
That sounded intriguing to me. "What kind of little programs? How are they different?", I wondered.
Bud smiled. "You'd want tiny apps that were good at a specific, limited function that complements the main application. Like a little calculator, for example, that looked like a real calculator. Or maybe an alarm clock, or a notepad for jotting down text. Since the entire screen is supposed to be a metaphorical desktop, the little programs are desk ornaments, adorning the desktop with useful features."
"But where do we draw the line?", I asked. "What are the differences between an ornament and a real application?"
"Well, ornaments have to fit into the world of the main application", Bud responded, "but not the other way around. The main application owns the menu bar, for example, but maybe the ornaments can have a menu when they're active. The main application would still run its event loop, but it would occasionally pass events to the little guys. And of course you can cut and paste between them."
That sounded good to me, but we had plenty of other stuff to work on first. Bud left Apple in December 1981 to return to medical school, but I explained his concept to new team members and considered them to be part of our plan. Chris Espinosa liked the idea when we explained it to him, and he worked on a visualization of the calculator as part of learning to program with QuickDraw, culminating in a calculator construction set . Eventually, after getting the initial implementations of the window, menu and event managers going, by May 1982 we had enough of the rudiments done to give desk ornaments a try.
The nascent Mac operating system already had an implementation of loadable device drivers, where installable code could be loaded from disk to manage optional peripherals. I decided to cast desk ornaments as a special kind of driver, adding a few extra calls so they could maintain a window on the screen, receive events from the host application, and occasionally get some processing time to accomplish something. Applications were required to make a system call periodically to yield some time for ornaments to run, and had to occasionally pass events to them and follow a few other conventions for co-existing. The very first desk ornament was a boring one, called "TestOrn", that displayed a rectangular window with an incrementing counter, showing that it was capable of doing background processing, even when it wasn't the top-most window. It wasn't very impressive, but it became the template from which all the others sprung.
In the fall of 1982, the first pass of the User Interface Toolbox was completed, so I had time to work more on ornaments, which by this time were renamed "desk accessories" by the pubs group who thought that the term "ornament" was too ornamental. I wrote a simple clock, and got the calculator going, modeled after Steve Jobs' design from the calculator construction set. The most interesting one that I wrote in that spurt was a desktop pattern editor, which was a sort of miniature icon editor that let you edit an 8 by 8 pixel pattern by clicking to toggle the dots on and off. When you made a pattern that you liked, you could make it the desktop pattern, filling the background of the screen with your new creation instead of the standard gray.
Within a couple of months, other people wanted to take a crack at writing desk accessories. Someone asked me if they could write one in Pascal, which wasn't easy because you had to pass parameters to the underlying driver in registers, which the Pascal compiler couldn't manipulate directly. I realized that you could write a little bit of standard glue code in assembly language to do the dirty work, and have most of your desk accessory written in Pascal. I wrote a number puzzle in Pascal as a test case, to prove that it could be done .
But once again I had to get back to other things and the desk accessories languished. But by the spring of 1983, the ROM was beginning to stabilize, and we realized that we had to get serious about the desk accessories that would ship with the initial system. Jerome assigned Donn Denman, who was taking a hiatus from working on Basic to help us finish the system, to help with desk accessories. Donn and I collaborated on finishing the calculator, with Donn doing the back-end that interfaced with the floating point routines. Donn was also responsible for the alarm clock and notepad.
Now that we had cut and paste working, I realized that it would be useful to have a desk accessory that could hold commonly used snippets of text and graphics, so they could be pasted into any application. I wrote a desk accessory called the "Gallery" that allowed you to manage a set of clippings using cut and paste, building it on top of the resource manager so it was easy to implement. Everyone seemed to like the functionality but not the name. I was explaining the situation to Larry Kenyon when he suggested that we call it the "Scrapbook", which was perfect, so the Scrapbook joined our growing armada of useful desk accessories.
The Macintosh's character encoding scheme allocated the upper half of the 8-bit character set to occasionally useful but obscure characters that were not portrayed on the keys, accessed with the option key, that were nearly impossible to remember. Steve Capps conceived of a desk accessory called "Key Caps" (named partially after himself?) that displayed a picture of the keyboard, with the keycaps changing depending on the meta-keys that were pressed, which allowed you to hunt for the special characters visually. He coded it up quickly and it became another great addition.
We needed a way to control various system parameters like the sound volume, or the mouse scaling parameters. We decided that a desk accessory would be perfect for that, since it would be easy to access no matter what application you were in. So the last desk accessory that I worked on before shipping, in November 1983, was the Control Panel. Susan Kare came up with a beautiful, highly graphical design (with no text whatsoever) that I implemented using a separate purgable resource for each section, so they didn't have to be in memory at once. It had a little rabbit and tortoise to represent a range of speeds, and lots of other graphical embellishments; after the Mac was released, one review described it as a crib toy, which I took more or less as a compliment.
The most controversial part of the Control Panel was the desktop pattern editor, which I had rescued from its earlier stand-alone incarnation. Users could select from a couple dozen prefabricated desktop patterns or edit their own in fat bits. It was this latter capability that caused problems, as it was pretty easy to create ugly, abominable patterns.
Bill Atkinson complained to me that it was a mistake to allow users to specify their own desktop patterns, because it was harder to make a nice one than it looked, and led directly to ugly desktops. But I thought that users should be free to do as they pleased, since it was their desktop, and it was easy to revert to one of the built-in patterns. Bill cared most about MacPaint, and didn't want a potentially ugly desktop pattern marring his creation. So he made MacPaint allocate a window that was the size of the screen when it started up, and filled it with the standard 50% gray pattern, making his own desktop covering up the real one, thus protecting the poor users from their rash esthetic blunders, at least within the friendly confines of MacPaint.
Steve has a unique idea for the software
Date: February 1982
Author: Andy Hertzfeld
Topics: Software Design,Personality
Steve Jobs often came by Texaco Towers after dinner, to see what was new, and we'd usually show him whatever recent progress we made. Sometimes he'd be pissed off about something, but other times he'd be really excited about a new idea.
I was the only one in the office one evening when he burst in, exclaiming that he had a flash of inspiration.
"Mr. Macintosh! We've got to have Mr. Macintosh!"
"Who is Mr. Macintosh?", I wondered.
"Mr. Macintosh is a mysterious little man who lives inside each Macintosh. He pops up every once in a while, when you least expect it, and then winks at you and disappears again. It will be so quick that you won't be sure if you saw him or not. We'll plant references in the manuals to the legend of Mr. Macintosh, and no one will know if he's real or not."
Engineers like myself always daydream about building surreptitious little hacks into the software, but here was the co-founder and chairman of the company suggesting something really wild. I enthusiastically pressed him for details. Where should Mr. Macintosh appear? How often? What should he do when he shows up?
"One out of every thousand or two times that you pull down a menu, instead of the normal commands, you'll get Mr. Macintosh, leaning against the wall of the menu. He'll wave at you, then quickly disappear. You'll try to get him to come back, but you won't be able to."
I loved the idea and promised that I would implement Mr. Macintosh, but not right away, since there were still so many more basic things to get done. Steve told the idea to the marketing team, and eventually recruited the French artist Folon to do some renditions of Mr. Macintosh. I also asked my high school friend Susan Kare, who hadn't started with Apple yet, to try to draw some Mr. Macintosh animations.
Most of the Macintosh system software had to be packed into a 64 KByte ROM, and ROM space got more scarce as development proceeded and the system grew. Eventually, it was clear that we'd never be able to fit bitmaps for Mr. Macintosh into the ROM, but I wasn't willing to give up on him yet.
I made the software that displayed the menus look at a special low memory location called the "MrMacHook", for an address of a routine. If the routine is present, it's called with parameters that let it draw in the menu box, and it returns a result that tells the menu manager if it did anything. Using this, an application or system module could implement Mr. Macintosh (or perhaps his evil twin) if they saw fit.
I'm not sure if anybody ever actually implemented Mr. Macintosh or used the "MrMacHook" for something worthwhile.
Having your own icon became a status symbol
Date: February 1983
Author: Andy Hertzfeld
In February 1983, I worked on putting together an icon editor for Susan Kare to use to create icons for the Finder. Inspired by the "Fat Bits" pixel editing mode that Bill Atkinson had recently added to MacPaint, it had a large window with a 32 by 32 grid, displaying each pixel at eight times its natural size, as well as a small window that showed the icon at its actual size. Clicking on a pixel would invert it, and subsequent dragging would propagate the change to the dragged over pixels.
Susan started working on icons for the Finder, but she also would draw lots of other images as well, for practice or just for fun, usually reflecting her whimsical sense of humor. One day, I came over to her cubicle to see what she was working on, and I was surprised to see her laboring over a tiny icon portrait of Steve Jobs.
Icons were only 32 by 32 black or white pixels, 1024 dots in total, and I didn't think it was possible to do a very good portrait in that tiny a space, but somehow Susan had succeeded in crafting an instantly recognizable likeness with a mischevious grin that captured a lot of Steve's personality. Everyone she showed it to liked it, even Steve himself.
Bill Atkinson was so impressed with the Steve icon that he asked Susan to do one of him, that he could use in the MacPaint about box. He sat in Susan's cubicle for an hour or so, chatting with her while she crafted his icon. I don't think it turned out quite as good as the Steve icon, but it certainly was an unmistakable likeness, and did become part of MacPaint.
At that point, It became a Mac team status symbol to be iconified by Susan. As soon as he saw Bill's icon, Burrell Smith started begging Susan for a Burrell icon, even though he had no specific use for it. He lobbied Susan for a few days, making his standard offer of best friendship , before she gave in and had him pose for his icon. Unfortunately, I can't find a copy of the Burrell icon to display here.
Susan did a few more portraits, for various members of the team who desired to be immortalized in a thousand dots. She'd usually work on them in the late afternoon, chatting with the subjects as they posed, while other team members listened in. I got to know a few of my teammates a lot better from these sessions.
We cook up a special demo for John Sculley
Date: March 1983
Author: Andy Hertzfeld
Topics: Software Design,Recruiting,Early Programs
The Window manager was the one of the most important parts of the User Interface toolbox, and the ultimate showcase for Quickdraw's "region clipping" technology. The window manager had to calculate various regions for windows as they were created, moved and resized, and objects drawn inside the windows were automatically clipped as necessary.
The Macintosh window manager was based on the one that Bill Atkinson wrote for Lisa, which was written in Pascal; my job was to rewrite it in 68000 assembly language and adapt it to the Macintosh environment. The first step was to port Bill's Pascal version. I wrote a little program to test the port, which I called "Window Manager Demo", that generated some windows and put the window manager through its paces.
A year earlier, I had written a fast "ball bouncing" routine, using custom, 16x16 pixel graphics routines, that could animate hundreds of balls simultaneously, which was a fun way to show off the Mac's raw graphical horsepower. I decided to animate a few dozen balls in each window in the window manager demo, using Quickdraw, because their continuous movement would eventually cover all the bases inside a window and expose any flaws in the underlying clipping.
After Susan started in January 1983, I asked her to draw some tiny 16 by 16 bitmaps to use in the Window Manager Demo instead of the by now monotonous ball shapes. Soon, we had a variety of little objects bouncing around in the various windows, like tiny little Macintoshes, or apples, insects and alligators. I thought that the Window Manager Demo was finished, but I was wrong.
Steve Jobs came by the software area one evening a couple of months later, excited about someone he had recently met in New York City. "Hey, I want you to do a demo next week for this guy I met yesterday, John Sculley, he's the president of Pepsi. He's really smart - you wouldn't believe how smart he is. If we impress him, we can get Pepsi to buy thousands of Macs. Maybe even five thousand. Why don't you try to come up with something special to show him?".
It sounded a little bit fishy to me, since we hardly ever demoed to potential customers at that point. But I asked Susan to draw some Pepsi imagery, and she came up with tiny little Pepsi caps, as well as Pespi cans, in his honor, so I put them into the Window Manager demo.
The next week, Mike Murray led John Sculley around the engineering area, since Steve was out of town. He brought him by my cubicle to see the modified Window Manager demo. I opened the windows one at a time, saving the Pepsi caps and cans for last. He seemed genuinely excited to see the Pepsi stuff, but oddly cold for most of the demo. He asked a few questions, but he didn't seem all that interested in the answers.
A few weeks later, we found out the real story - the purpose of John's visit was to interview for CEO of Apple, and he got the job, being convinced by Steve's famous line "Would you rather sell sugar water to kids for the rest of your life, or would you like a chance to change the world?".
How we got the unusual symbol used for the menu command key
Date: August 1983
Author: Andy Hertzfeld
Topics: Software Design
We thought it was important for the user to be able to invoke every menu command directly from the keyboard, so we added a special key to the keyboard to invoke menu commands, just like our predecessor, Lisa. We called it the "Apple key"; when pressed in combination with another key, it selected the corresponding menu command. We displayed a little Apple logo on the right side of every menu item with a keyboard command, to associate the key with the command.
One day, late in the afternoon, Steve Jobs burst into the software fishbowl area in Bandley III, upset about something. This was not unusual. I think he had just seen MacDraw for the first time, which had longer menus than our other applications.
"There are too many Apples on the screen! It's ridiculous! We're taking the Apple logo in vain! We've got to stop doing that!"
After we told him that we had to display the command key symbol with each item that had one, he told us that we better find a different symbol to use instead of the Apple logo, and, because it affected both the manuals and the keyboard hardware, we only had a few days to come up with something else.
It's difficult to come up with a small icon that means "command", and we didn't think of anything right away. Our bitmap artist Susan Kare had a comprehensive international symbol dictionary and she leafed through it, looking for an appropriate symbol that was distinctive, attractive and had at least something to do with the concept of a menu command.
Finally she came across a floral symbol that was used in Sweden to indicate an interesting feature or attraction in a campground. She rendered a 16 x 16 bitmap of the little symbol and showed it to the rest of the team, and everybody liked it. Twenty years later, even in OS X, the Macintosh still has a little bit of a Swedish campground in it.