Skunkworks At Apple -- The Graphing Calculator Story
avitzur writes with a link to the story behind the Macintosh Graphing Calculator. An excerpt from this strange account: "It's midnight. I've been working sixteen hours a day, seven days a week. I'm not being paid. In fact, my project was canceled six months ago, so I'm evading security, sneaking into Apple Computer's main offices in the heart of Silicon Valley, doing clandestine volunteer work for an eight-billion-dollar corporation."
Pacific Tech's Graphing Calculator has a long history. I began the work in 1985 while in school. That became Milo, and later became part of FrameMaker. Over the last twenty years, many people have contributed to it. Graphing Calculator 1.0, which Apple bundled with the original PowerPC computers, originated under unique circumstances.
I used to be a contractor for Apple, working on a secret project. Unfortunately, the computer we were building never saw the light of day. The project was so plagued by politics and ego that when the engineers requested technical oversight, our manager hired a psychologist instead. In August 1993, the project was canceled. A year of my work evaporated, my contract ended, and I was unemployed.
I was frustrated by all the wasted effort, so I decided to uncancel my small part of the project. I had been paid to do a job, and I wanted to finish it. My electronic badge still opened Apple's doors, so I just kept showing up.
I had many sympathizers. Apple's engineers thought what I was doing was cool. Whenever I gave demos, my colleagues said, "I wish I'd had that when I was in school." Those working on Apple's project to change the microprocessor in its computers to the IBM PowerPC were especially supportive. They thought my software would show off the speed of their new machine. None of them was able to hire me, however, so I worked unofficially, in classic "skunkworks" fashion.
I knew nothing about the PowerPC and had no idea how to modify my software to run on it. One August night, after dinner, two guys showed up to announce that they would camp out in my office until the modification was done. The three of us spent the next six hours editing fifty thousand lines of code. The work was delicate surgery requiring arcane knowledge of the MacOS, the PowerPC, and my own software. It would have taken weeks for any one of us working alone.
At 1:00 a.m., we trekked to an office that had a PowerPC prototype. We looked at each other, took a deep breath, and launched the application. The monitor burst into flames. We calmly carried it outside to avoid setting off smoke detectors, plugged in another monitor, and tried again. The software hadn't caused the fire; the monitor had just chosen that moment to malfunction. The software ran over fifty times faster than it had run on the old microprocessor. We played with it for a while and agreed, "This doesn't suck" (high praise in Apple lingo). We had an impressive demo, but it would take months of hard work to turn it into a product.
I asked my friend Greg Robbins to help me. His contract in another division at Apple had just ended, so he told his manager that he would start reporting to me. She didn't ask who I was and let him keep his office and badge. In turn, I told people that I was reporting to him. Since that left no managers in the loop, we had no meetings and could be extremely productive. We worked twelve hours a day, seven days a week. Greg had unlimited energy and a perfectionist's attention to detail. He usually stayed behind closed doors programming all day, while I spent much of my time talking with other engineers. Since I had asked him to help as a personal favor, I had to keep pace with him. Thanks to an uncurtained east-facing window in my bedroom, I woke with the dawn and usually arrived ten minutes before Greg did. He would think I had been working for hours and feel obliged to work late to stay on par. I in turn felt obliged to stay as late as he did. This feedback loop created an ever-increasing spiral of productivity.
People around the Apple campus saw us all the time and assumed we belonged. Few asked who we were or what we were doing.When someone did ask me, I never lied, but relied on the power of corporate apathy. The conversations usually went like this:
Q: Do you work here?
A: No.
Q: You mean you're a contractor?
A: Actually, no.
Q: But then who's paying you?
A: No one.
Q: How do you live?
A: I live simply.
Q: (Incredulously) What are you doing
Ummm, the story being told took place nearly 10 years ago
I'll turn into a supernova and burn up everything. Well I'll turn into a black little hole and you'll turn into string.
The secret to programming is not intelligence, though of course that helps. It is not hard work or experience, though they help, too. The secret to programming is having smart friends.
classic...
"My mother never saw the irony in calling me a son-of-a-bitch." - Jack Nicholson
>No, the graphing calculator doesn't come with OS X. :)
It is available for OS X now. You can download the free release from http://www.PacificT.com/FreeStuff.html (Well, at least you will be able to after the server recovers from the Slashdot Effect.
> a company that canned me
No. There was a line in the story that got dropped on the editing room floor. I was offered a job as an employee on a new project when the old project was cancelled. I just wasn't interested in the new project. I prefered to be working on educational software.
Find the Calculator icon in the Finder, and select "Get Info" (or press Command-I after clicking on the calculator). In the plug-ins section, select the "Add" button, and in the resulting file dialog, browser your way to the Calculator -> Contents -> Resources. Select any/all of the *.calcview directories, and press "Choose". Presto -- open the Calculator and select the "View" menu item, and your new plug-in views will be available.
Now for the caveat. Ever since one of the 10.3 updates (10.3.3 maybe?), none of the plug-ins work anymore. But in the event they ever fix this, you now know how to activate different view modes.
I doubt that the graphing capability built into the calculator has anything to do with the Graphing Calculator application, as the one built into the regular Calculator is supposedly 2D only, whereas the Graphing Calculator supports 3D graphs as well.
Yaz.
I'm too lazy to figure out what my account is, so I guess I'm an anonymous coward, but I worked with Ron at the time, and still hang out with him. The story is true, and NuCalc/Graphing Calculator got started just as he describes. I even have the embroidered NuCalc shirt he gave me as a memento.
Now, should you see anything similar in some upcoming release of some unspecified operating system, check to see whether it's the real deal (Graphing Calculator from PacificT http://www.pacifict.com/Gallery.html), or something else.
Actually Microsoft has a hardware accelerated UI in Windows XP. Read up on GDI+. Also, for newer cards with real programmable GPUs (pretty much Ati 9000, and nVidia FX and up) they use the shaders to accelerate Windows Media playback.
Either way, I'm not so sure the UI acceleration thing was a blinding flash of the obvious, I think it was more hardware needing to get to a certian point. It wasn't until about mid 1999 that a card (TNT2) existed that even had the basic 3d capibility to do what would be needed for a user interface. Even so, at that level, all you could really do was make a window a big texture stretched on a polygon. Neat, but faily useless.
Real useful UI acceleration didn't become feasable until cards became Graphics Processing Units in fact, which means some programability. The GeForce 3, which came about in 2001, was the first consumer level card that could be really considered for that.
So I don't think it was an idea that really had to think in. I remember hearing people musing about using the Voodoos for UI acceleration (and having those more knowledgable tell them why that wouldn't work), I think it was just a matter of the hardware advancing to a point where it was sufficiently useful for things other than playing games.
That is 1.4b3. It is still in beta testing. We're still working on it. I need to do is fix those example files which were created for the full version. If you type y=x^2 into a new empty document, it will work. For a comparison of the features in 1.4 vs. 3.5, see http://www.pacifict.com/FreeStuff.html. The 150-page PDF book, "Learning Math" in the help menu is almost entirely devoted to the features of the free version. You can download that by itself or browse it at http://www.pacifict.com/Books.html