Friday, February 3, 2023

Shipping Graphing Calculator

Intro

Adam: Hi, this is CoRecursive, and I’m Adam Gordon Bell. Each episode is the story of a piece of software being built.

It’s 2010-ish and I’m staring at a wall sized whiteboard. It’s full of boxes and lines with numbers attached. One arrow goes to a box with a cartoon top hat drawn and whiteboard marker that’s labeled Pierre Magic. These are the implementation plans for a project, but there’s a big problem. And it’s not the Pierre Magic, which is a hack that Pierre found that saves a couple weeks of time by using a unresolved bug as a feature. No, the real problem is there’s roughly three times more work than there is time. This updated estimate that I put together on this whiteboard, it eventually leads to the project being canceled. The month’s worth of code that we were excited about, they never leave source control and they never run anywhere.

And I’ve been on other projects like this since. We’re building cool stuff, we’re going above and beyond, we’re excited. But then the project encounters reality or shifting priorities are budgeting constraints, and the work never goes anywhere. It always feels tragic, but then I move on. But what if I didn’t, what if I didn’t let a project get canceled? What if I just couldn’t accept that? That’s why I wanted to talk to this guy.

Ron: My name is Ron Avitzur. I’m a computer programmer, and I’ve been working on educational math software for the last 35 years.

Adam: Ron’s the person to talk to learn about how to ship despite all odds.

Ron: There’s trope if you go to TV Tropes and look up “refuge in audacity.” I am one of the real-life examples of that. Oh, let me just bring it up.

Never do anything by halves. If you want to get away with it, be outrageous. Go the whole hog. Make sure everything you do is so completely crazy, it’s unbelievable. I pretty much embodied that trope.

Adam: Ron’s not kidding. His story involves deceit, audacity, evading security, and refusing to let something go.

Physics 1992

Adam: You see, when Ron was a college student in 1992, the personal computer was changing things.

Ron: Because with the introduction of the Macintosh, you could show someone who needed to type up a paper that evening, in five minutes. It would be obvious to them that they could do it faster on the Macintosh with MacWrite than they could on a typewriter. So it was a sea change where computers were just obviously, for at least for word processing, the right tool to use and they were adopted very rapidly.

Adam: But the problem was, Ron was studying physics.

Ron: I was staying up all night, scribbling equations with pencil and paper. Doing math and physics problem sets, because even though computers are good at calculations, they weren’t good at doing the sort of math students needed. So I wrote Milo as an attempt to address that to be something that I could use for my problem sets.

Adam: Milo was a math program that could handle the type of problems Ron was doing in physics class. One of the hard problems was inputting mathematical notation.

Ron: There’s a lot of Greek letters, a lot of special symbols, integrals, derivative. It’s both intrinsically two-dimensional and uses a much larger character set than you have on a keyboard. So it seemed at the time to me that a much better way to interface math into the computer would be with a tablet and with a pen.

So I wrote a handwriting recognizer, I wrote a mathematical handwriting recognizer so you could write equations onto a tablet. And as you wrote each character, both the characters you were writing were recognized, and that includes things like Greek letters and integrals and derivatives, and the two-dimensional structure was recognized.

The Apple Demo

Adam: By the time Ron has something demo-able he’s finished his physics program, so he starts showing his demo to software companies.

Ron: A lot of the demos I’d give would be informed by my physics problem sets doing classic calculations. And I tended to talk very fast and describe the physics and have lots of symbols flying around the screen faster than people could follow, but enough to know that something impressive was happening.

And so I think I did one example that showed the Compton scattering cross section, that involves a few terms of special relativity. It’s a fairly complex equation, but at the end you get something that demonstrates how we know that atoms are electrons with a very dense nucleus in the middle. In retrospect, I tell you, I intimidated people with math.

Adam: Ron managed to license the math part of the software to a couple of places, but the thing that really caught people’s attention was not necessarily always the math, but the pen input. And eventually someone who worked at Apple told Ron, “I need you to show this demo to some people.” And so Ron heads to the Apple campus in Cupertino.

Ron: I went to people in system software, the people that were working on the next rev of Mac OS 7. And I show them Milo with pen input, and said, “Hey, look, the people at Microsoft, the people at [inaudible 00:04:56] Momentum that are doing pen-based machines, we could do the same thing here. Here’s one way to go about it.” And I showed them the finder working with a tablet and I showed them my software doing math recognition with a tablet.

This was essentially a job interview only. I went in to basically interview at Apple for a job, but went in saying, “Here’s a software that I’ve already written. Here’s how it works, and I would like to develop this inside of Apple.” And pretty much everyone who saw this was blown away. They were like, “We must hire this person immediately.” Though, what happened next was even odder.

Pen Computing at Apple

Adam: It turned out the people inside the Macintosh division were already thinking about pen-based computing.

Ron: And it was a time when laptops were finally shrinking to the size that if you wanted to carry a computer with you and make it any smaller, the keyboard was the biggest element. It was at the same time Apple was doing Newton, but this was entirely within the Macintosh division, Macintosh hardware and Macintosh system software, to take Mac OS 7 of the time and add a pen manager to it. So in the same way that you write applications to do mouse and keyboard input, you have system support for doing pen input as well.

What I did was gave them something very visual as a way of saying, “Yes, this is an existence proof and this is something that is a compelling use of it, and this is a reason why we want this to be part of system software.”

Adam: This makes Ron a shoo-in for the role, and so the team had him do more demos for other people at Apple.

Ron: I had a great demo that started out with basically, writes two plus two, it gives you four. Nothing surprising. Once you have handwriting recognition, that’s easy. Then a little bit more complicated, your write two squared, it recognizes that the squared is an exponent. Again, it gives you four. Then you add some trigonometry to it. And as the equations get more and more complex, they’re still type set and look reasonable and look like something straight out of a textbook.

If you write an equation with an X in, it’ll graph it for you. The pièce de résistance, the thing that really impressed people the most, was what I call drag algebra, where you could type something like Y equals AX plus B. And if you select the B and drag it, it does drag and drop, but not the way you’re used to it in text, where it just takes a text snippet and moves it to a different insertion point. You’re not just dragging this term as a graphical object, you’re actually subtracting B from both sides. If you drag the A to the other side, it knows now you’re dividing both sides by A, so it becomes X equals Y minus B over A. If you drag the A back over, it knows, “Okay, it’s now, it’s no longer in the nominator. “On the other side of the equal sign, you’re multiplying both sides by A.

So there’s a lot of algebra you can do by just dragging things with the mouse or with the pen that encodes a lot of algebraic understanding, only now it became interactive and immediate. So having all of that direct manipulation with algebraic understanding really let people in a few seconds of demo understand that this is something qualitatively new.

World Wide Developers Conference

Adam: That understanding, to Ron, it seemed like it could change math education. But what the pen computing people saw was an exciting demo that could sell their vision of pen computing to the world. And so the first thing they wanted him to do was demo at WWDC, Apple’s Worldwide Developers Conference. 2,000 plus Apple developers were gathered in San Jose to learn what Apple was up to.

Ron: Basically my first public speaking event was to go on stage in front of 2,000 people live, and yeah, give a demo of what I’d been working on for many years at this point. So it was both a topic dear to my heart that I was genuinely excited by, and basically let me say whatever I wanted and go off and just express my excitement to my fellow developers.

I remember both going on stage, thinking, “Okay, I’m not even going to look at the audience because that’s just too scary.” There’s bright lights, lots of people. I wrote out everything beforehand, practiced it and just had a bunch of three by five cards with notes. And got up there and just stared intently at the cards and read through them one by one as I did the demo.

Adam: Ron’s demo was mentioned in the coverage of WWDC that year by TidBITS.

Next, a very unassuming young man came out and began reading off of a prepared speech to the audience. He never looked up. He just went ahead with what was actually a very good demo. At this point he thanked the crowd, quit his demo, and began to walk off the stage. The crowd erupted into cheering and clapping and the whole hall gave him a standing ovation.

Ron: There was a long line of people who just wanted to uncomfort me because I was in such obvious distress on stage. And let me know that it went okay because I was clearly panicked.

Adam: Here’s TidBITS again.

It was the most amazing and utterly useful thing that I have ever seen on the Mac. Updates were instantaneous. As an engineer, I only know that I want and need this technology.

Adam: Part of this excitement came from the way that Ron was presented.

Ron: They didn’t say that I didn’t work at Apple, and they glossed over the fact that everything that I was demoing was something I just did on the outside as an independent developer. And they did it as the demo piece at the end of a talk about what they were planning to do in the future to support Pen on the Macintosh.

The effect was amazing smoke and mirrors. The mathematical demo went well and people were impressed by what was possible, but it gave the illusion that the Pen Manager already existed. And the support was there, and developers could now run with it and integrate Pen with their existing applications, the same way that they do mouse and keyboard input. So that part was misleading.

The Pen Mac

PenMac - The Original Apple Tablet

Adam: It’s not misleading if you get it built, though. And so after the conference, the Macintosh team starts hiring more people to build a pen-based device, a 1990s tablet computer. The only problem was hiring Ron as an employee.

Ron: Things were complicated because I had done all this work before I joined Apple. And I had licensed this work both to frame technology to be part of FrameMaker. And at the time there’s several other software companies were using bits of Milo inside their math applications as a way of doing the 2D mathematical rendering. So it was very important to me that the intellectual property for the work I had done previously stays in my name. And it’s much easier as a contractor to draw that dividing line between saying, “This is my work versus the work you’re paying me to do, which you would own.”

Adam: So Ron would join as a contractor, but getting his contract approved by legal with all its special provisions, well, that took time.

Ron: The manager at the time, who was new to Apple, said, “Look, we’re really excited. We want to get started fast, so come in, start working and we’ll figure out the legal details later.” But that meant that I actually worked at Apple on the group for nine months or a year before I had a contract with Apple or before I was paid at all. Which was fine by me because this was what I loved doing and what I wanted to do. And I figured, “Okay, legal is putting up roadblocks, I’ll just keep doing the work. They’re going to have to fix it later and I’m fine waiting.”

And my manager was like, “Look, we already have budgeted you for a year and so this money is waiting for you. Just keep track of your hours and once the contract is signed, we’ll back pay you for what we owe you.” And I was like, “Yeah, fine by me.”

The Fatefull Meeting

Adam: Eventually Ron got his contract and he got paid, but the Apple PenMac, it was this secret project. It was a tablet computer but built with 1992 technology. It was like an iPad but thicker and heavier and with a gray scale screen, but it was a tablet computer with a pen so it was the perfect vehicle for Ron’s graphing and math software. The only problem was the rumors that it was doomed.

Ron: A lot of people were very passionate about it, but it was not a device that was revolutionizing people’s use of computers in the way that iPad did or the iPhone did. The fundamental reasons were just out of our hands. The device was essentially a laptop minus the keyboard with a pen display, which in those days meant it was like two or three pounds with a battery life of a few hours, and was fragile.

Various other people from other groups would come to me and tell me, “Look, Ron, the project is going to get canceled. They’re not going to be able to deliver.” And I was loyal to the people that had hired me. And so my plan was, “I’m just going to stay here and keep working on it, if it’s to do the best job we possibly can.” So if it does get canceled, it’s not for lack of effort. And everyone on the team was like that. Everyone on the team worked really hard to overcome all of the issues to make the best software we possibly could.

Adam: But then a year into it, a meeting was called.

Ron: Contract manager came to the whole team and said the project was canceled, the funding was pulled. Everyone would be reassigned.

Adam: Now Ron could have found a way to be assigned to another project. He was good at what he did, but he was also really laser focused on his own goals.

Ron: I identified with my work, I’d been working on some version of the math software at this point for six or seven years, and it wasn’t done yet. It hadn’t yet reached what I envisioned it was capable of doing in my head and I wanted to keep working on it.

Adam: And maybe he could, because the graphing demo he’d shown off and the math software that powered it, it could be adapted to other hardware.

Ron: Originally it was for pen-based input on a handheld device, but it also worked fine with keyboard and mouse. I told the manager of the Pen project that I would find a new group in Apple to continue working on the demo app for Apple, and they were fine with that. They were like, “Great, you’re not my problem anymore. Good luck. I’m glad that some small piece of this will end up being useful.”

The PowerPC Project

The PowerPC

Adam: So did you try to shop it around to groups at Apple?

Ron: I didn’t have to. While I was working on PenMac there was a fellow that was coming to my office every few weeks to tell me, “Ron, they’re going to cancel PenMac. You really have to meet these people from PowerPC.”

Adam: Ron’s colleague had a point, the PowerPC system software group was working on getting classic Mac OS working on this new PowerPC CPU. The future of the whole company rested on these new Mac computers that used this much faster processor. These would be the Power Macs. If Ron was on the PowerPC team, his future would be secure. So the night the PenMac was canceled, Ron found him.

Ron: I went to him and said, “Okay, PenMac is canceled. My time is my own now.” He introduced me to the PowerPC team. And he brought two people over to my office and showed them what was going to be the PenMac math demo. And said, “We’d like to get this running on PowerPC.” And the three of us spent six hours until the wee hours of the morning getting all of the existing code to compile from 68k onto PowerPC, which involved cross compiling from an RS/6000 workstation and running on a prototype in another building. But after six hours of joint work, we got everything compiling and running for the new processor.

We went over to the other building. Where one of the very few prototypes was in this fellow’s office. We ran it on the prototype. First time we ran it, the monitor caught fire. It was very propitious. Had nothing to do with my software, that was in the days of old CRT tubes, which just did that once in a while, but the timing was quite the omen. And we carried the monitor out onto the veranda so the smoke wouldn’t set off a smoke detector, plugged in another monitor and tried it again. And then when we ran the software on the PowerPC it ran 50 times faster than it was running on the state-of-the-art 68k machines.

And we realized that it really was a new world. You could do things interactively that previously were not interactive, and that enabled a whole new level of user interface design when things are that much faster.

Adam: This was exciting for Ron. His calculator couldn’t take Pen input on the Power Mac, but it was so much faster at math and a graphing. There was a problem, though.

Ron: At this point my old contract had ended. I met people on the PowerPC team and they looked at what I was doing and said, “This is really awesome. You have to keep working on this. We have to figure out a way to ship it, but we are really busy because the company’s future depends on what we’re doing and we’ve got our hands full. We don’t have funds to hire you yet. Keep working on it, at some point we’ll figure something out.”

Adam: This is strange, but not for Ron. After all, it had taken months for management to get his original contract through legal and signed. Maybe he could get the PowerPC managers excited about this project and a similar process could start. Ron did have a concern, though.

Getting the Bugs Out

Ron: The software still crashed. It was buggy. It did a few things that were very impressive, but it was very clearly a demo. It showed potential, but it was not solid. And I was worried if I show this to managers in charge of the PowerPC project, they’ll just nod and go, “Yes, we have an engineer who’s very excited about their pet project. We’re very busy now, thanks for the demo.” And if it crashed in front of them, their assumption would be that, one guy, working it alone, did something that he thinks is impressive, “But we can’t actually ship this without an enormous amount of work that we don’t have time for now.”

Adam: So Ron keeps working on his project. He tells the engineers not to tell their managers about it. This is going to be a secret project for now. And somewhere around here, Ron starts to drift across an invisible line. He gave his previous manager the idea he was working for this other group, but he’s not. And he doesn’t even work there, he’s not even a contractor anymore.

Ron: I still had a working badge. I spent a few months where I would show it to engineers, but tell them, “Don’t tell your managers yet. It needs to be absolutely bulletproof before we show it to anyone who is going to be critical of it because it’s still buggy, it will still crash.”

Skunkworks

Adam: The engineers at Apple at that time, they understood where Ron was coming from. Apple was struggling. There was a disconnect between the people building things and management. And as a result, projects were getting canceled all the time. The smallest bug, the smallest problem, it could spell doom for a project.

Ron: There was one project at … I think the code name was Specter. And it was canceled and revived seven times when I last knew about it. So I had the sympathy of engineers, I had the help of lots of engineers. And the fact that I was just showing up after my project was canceled just made for a good story, so we became something of an underground cause celebre.

Adam: Everybody wanted you to ship this because they were like … They wanted their project to ship, you were like their spirit animal.

Ron: Exactly. It’s like, “Okay, it’s possible.” And things that happened before, there was a tradition of skunkworks, where if your project is canceled but you’re passionate about it, you’re an engineer, you don’t want to give up, so you work on it after hours. You get it to a point where it demos well, you show it to management and say, “Look how far we’ve gotten. Can we revive it?”

And that sometimes worked. It’ll often get canceled again, but it was not unheard of for engineers to work on pet projects after hours to try and uncancel them. The fact that I was a contractor and didn’t have a day job just meant that there was more time to work on the canceled project.

A Little Help From My Friends

Adam: So Ron keeps coming into work at the Apple campus, sitting down in his office and working on his math program. But even working full-time, it doesn’t seem like it’ll be enough. His goal is to get the demo polished into a real consumer level app and get it onto the PowerPC somehow. But the PowerPC people have a deadline. Manufacturing has to start, there’s a three-month cutoff. And there’s no way that Ron can make that timeline, at least by himself.

Ron: At this point a few engineers on the PowerPC team know about it. I went to Greg Robbins and said, “I’m burnt out. I want to finish this. Can you help me, because it’s more than a one-person job.” But I told him I wanted to finish the calculator that I was working on, and would he help me. He did it as a personal favor to me. I told him everything. He knew what was going on in PenMac. He had been part of PenMac. He said, “My contract is ending next week.” He said, “I will tell my manager that I’m going to start reporting to you, so she’s going to let me keep the office and the badge while I work on this new thing because they don’t need the space.”

Office Space

Adam: So now they were two, and they even had offices.

Ron: There were few enough people working at Apple that engineers could still have solo offices. You’d be walking down a hall and the outer doors of the hallway had window offices. The inner doors of the hallway were little six-by-six cubicles with enough space for a chair, a big desk and a bookshelf. But a door that closes, absolutely luxurious by modern standards. I was living in the Santa Cruz Mountains, with a beautiful view of the hills, with an east-facing window that had no curtain just because I loved the view. It looked out over open space with bobcats and mountain lions.

And so I woke up every morning at dawn, went into Apple, went into my office. Greg would show up an hour or two later, see me hard at work and figure, “Well, Ron’s been here all morning. I should stay late.” And since Greg was doing volunteer work to help me on my pet project, I couldn’t leave until he was done. So basically we started working 12-hour days, seven-day weeks, because we both thought we want to ship something and we want it to be absolutely bulletproof, because it’s not going to ship if there’s any problems with it because it’s not a sanctioned problem. Apple’s not going to fix problems. They’re going to look at it and if we give them something perfect, maybe they’ll ship it.

Adam: Maybe they’ll ship it. That’s really all they had was that chance and a vague idea that if they could get it polished enough, it might end up on the new Mac somehow. Thankfully, the general chaos at Apple at the time helped them not get caught, but they couldn’t just hide in their offices because Ron had to build support within the PowerPC engineering team.

Ron: I very routinely will tell people, “The project was canceled last week. The project was canceled a month ago. The project was canceled three months ago. I’m trying to uncancel it so I’m here working on it. Let me give you a demo.” And after I give them the demo they were sufficiently impressed that they would carry on with their work.

People thought this was odd. Some people like shook their heads and walked away and wanted no part of this. But most people were like, “That’s very impressive. Yes, we should absolutely ship this. How can we help you? Why did you come find me?” Or, “Here, let me play with it. Let me bring you bug reports.”

Adam: One non-issue for Ron and Greg was pay. Ron’s PenMac contract money had come in.

Ron: And they paid me a lot, like Apple’s hourly rate for contractors was high. We were both young enough from being students that we did not have extravagant lifestyles. Rent was low back then, if you can believe it. I think I was paying $300 a month for rent in Silicon Valley. We were working 12 hours a day. Our expenses were very low. We could both afford to live off savings for quite a long time.

And so the question we asked ourselves wasn’t, “How can we live?” The question we asked ourselves was, “Given the freedom we have, the privilege we have, how do we want to spend our time?” And I wanted to spend it trying to ship this and Greg was willing to help me.

The Ethics of Absurdity

Adam: This is ridiculous. Working hard as a non-employee on a non-sanctioned project, but Ron had learned to actually lean in to the absurdity of it all.

Ron: Frequently people would come up to me and ask me, “Do you work here?” And I’d just tell them no. And they’d say, “Oh, that means you’re a contractor.” And I’d say, “Actually, no.” Then they’d say, “But then who’s paying you?” And I’d tell them no one. Then they’d ask, “How do you live?” I’d say, “I live simply.” And then they’d ask me, “What are you doing here?” And I’d give them a demo.

I took a certain amount of pride in saying, “I’m never going to lie to anyone about what I’m doing here. I’ll just act like I belong, come in and do my work. And as long as I don’t cause any trouble, there’s no reason for anyone to notice me.”

Adam: That implies you were cognizant of some sort of ethical issues with what you were doing. Is that true?

Ron: I absolutely was. There was definitely a notion in my head that what I’m doing is, at the very least, sketchy, and one could easily make an argument that it was criminal. I bent over backwards to make sure that nothing I did could be construed as nefarious. But certainly, on the surface, what I was doing was not acceptable. I was just acting on faith that what I was trying to accomplish was both cool enough and of value enough that it would overcome the questionable circumstances of its creation.

And I was also very much relying on being a young, privileged white guy, so that even if I was caught and Apple decided to prosecute, it would be a slap on the wrist.

Adam: It’s not just white privilege, but actually you very much … You culturally fit in. You were one of the team there. People knew who you were. Your nerd credentials were not in question.

Ron: Absolutely. I looked like them. I acted like them. I talked like them. My values were the same as everyone else. People were used to my being there. I relied on that familiarity so they would let me in the building, but there was no nefarious purpose behind it.

And from another perspective, people trusted me because they had seen me there for so long. People that knew what I was doing trusted that what I was doing was a legitimate reason for being there, even if it had not yet had the imprimatur of management approval as a real project. So there was a large element of trust where my existence there was only possible because I was part of the culture, and the individuals that knew me actually trusted that the things I were doing there were appropriate.

Adam: I guess I have to re-ask, what’s driving you at this point? What’s the drive?

Ron: Oh, as Steve Jobs said, “Real artists ship.” I was unwilling to let a year’s worth of work be thrown away. As cool as what I was doing was in my mind, it was meaningless unless it went into customers’ hands.

Adam: And to get the software into the hands of a new Power Mac customer, there was really only one way. The software to compile PowerPC apps only existed as a prototype on the Apple campus.

Ron: It was the only path we had to do things at that time. And also part of that is, the work that I was doing was intended for math students, math teachers, and schools were lucky to have computers. And if they had computers, they did not have money to buy software. I felt that the best way to deliver my software into students’ hands was to have it installed at the factory.

Quality Is Assured

Adam: To get the software installed at the factory, the PowerPC team has to want it there. It has to be solid. I mean, they also have to know it exists. But for Ron, priority one is making sure it has no bugs and to get it bug free, it started to seem like Ron and Greg were stretched too thin. They wouldn’t be able to do it themselves. They needed testing help.

Ron: I put out the word in engineering saying, “We really need help from QA.” And late one night, these two guys came to us who had been doing QA for the PowerPC project, and they had an automated QA system that they pressed a button every night. It would run an automated test suite and run through the whole system software, through their tests.

One of them had worked on math software before, another one I believe had been a graduate student who studied math. So they were experts in the domain, and they came to us and said they would like to help. And I gave them the software and they started sending in bug reports every day.

Adam: Then Ron got more people involved.

Ron: I’d give them a copy and say, “Try this out on your machine.” People would come to my office every day and say, “I tried it. This looks great. This doesn’t quite work.” I’d take what they told me and try to fix things, and then the next day show them the new version and was working on just iterably stepwise refining it every day from people’s feedback.

And because it was essentially the only app that was running natively on PowerPC, even though there were very few machines, everyone who had one of the machines wanted to try this on it. So we had a lot of people in-house using it. We had two people who were doing dedicated QA on it, and we were trying to make sure that it was absolutely crash-proof before we showed it to any managers.

One More Thing

Adam: It seems like maybe things will never be good enough for Ron to want to show this to management. But then he decides, “No, no, there’s just one more thing I need. 3D, 3D graphics.”

Ron: I went to a friend of mine that was in a different startup company, but had expertise writing 3D software. He had been part of the team that wrote the Old Tank game Spectre and a bunch of other things, and said, “Look, I need a 3D renderer for this secret project I’m on. Can you do something for me?”

He took his weekend and he gave me a block of C code that did 3D rendering for mathematical surfaces. And in two days he’d gave me a piece of code that worked perfectly. I think it had one tiny off by one bug in it, just that was a very minor, and suddenly we had 3D rendering in the calculator.

Adam: Now the app is ready for management to see, except, what about the user interface?

Ron: It had a certain clunky and funkiness to it because, as programmers, we think about things functionally and don’t really think about things visually. We don’t have an eye for it. So I went to one of the people who had left Apple who had worked on, I think it was the Mac OS 6 look and feel and who was a visual designer, and I hired her out-of-pocket. Actually snuck her into the building and I showed her what I was doing, told her not to tell anyone, and asked her to make it beautiful. And she gave us a bunch of studio images where she basically pixel by pixel called out what every color of each pixel should be.

We looked at the artwork she gave us and put it side by side with the existing app and like, okay, immediately we’re doing exactly what she told us to do because it is gorgeous. And in terms of programming, it was very small changes. A gray line here, an odd pixel there, an adjustment of the spacing, plus or minus a few pixels. But it transformed it from looking like a clunky college project to looking like a beautiful piece of a Macintosh system software.

Adam: Do you think that you have a secret superpower as a project manager?

Ron: I wish I did. Sadly, in the intervening years I’ve learned that is not true. But the secret I did have is that I had a lot of smart friends. There were lots of things I needed that maybe I could do if I struggled and took a long time and wouldn’t do them as well, but by asking the right person, that they were done both very well and very quickly.

Adam: So thanks to the smart friends network it’s starting to feel like a real project. It’s got 3D, it’s visually appealing, and engineers from PowerPC are using it to test out the hardware and the software. And there’s two QAs working away, uncovering bugs.

Ron: But, and here was the thing where I made a mistake, Apple had recently opened the Infinite Loop campus and there was lots of space there. So for a long time engineers had their own private offices, and although engineers changed groups, not infrequently, moving was a pain. So very often someone would change groups and just stay in their old office, because why bother moving. The other group is just down the hall so we’ll keep working here, until the new group needed the space. At which point, “Okay, we’re going to move the new person into your office, so your manager has to now find you a new office.”

So when the group that the various PenMac people had moved to started to grow again, they needed the office that I was squatting in. And someone from facilities came to my office and said, “We need to move someone into your office. Let me know who your manager is and they’ll find you a new office.” And I’m young, naive and idealistic, and I said, “My contract ended. I haven’t found a new manager yet,” but I intend to tell them that I was working with Greg, who was in the same boat. And they just got a really strange look at their face. They weren’t an engineer, they were just part of the facilities. And they’re like, “That’s not acceptable. Your badge still works. I’m going to have to have your badge canceled and you’re going to have to leave.” I mean, they’re actually very polite about it, to be honest. But true to form, they had our badge canceled the next day and I needed to move offices.

Tail-Gating

Adam: Without badge access things get more sketchy, especially the mornings.

Ron: I would show up, look around the parking lot, see who was approaching the door that looked familiar. And it was still a very big building. There were a lot more people for whom I was a familiar face than there were people that knew my whole story, although I told my story on the drop of a dime because that’s how we got support for the project. But still, most people assumed, if you’re there, you belong there. You show up, you look confident. Why would you be there if they’re not paying you?

They would see me walking towards the door, and just as a matter of politeness they’d be, “Oh, hi, Ron,” and hold the door open because they already badged in, so why should I badge in again? I became a cautionary tale for building security.

Shipping

Adam: How did you expect this to actually get onto the PowerPC?

Ron: I had no idea whatsoever. That was the bit that I worried about at night, and that was the bit that I just kept saying, “I don’t know how to deal with that, so I’m not going to think about it yet. Let’s make that tomorrow’s problem.” Greg and I were just focused on, “Let’s just make the product as good as we can possibly make it, to the highest standards we possibly can.” Shipping it with something that we hoped would work itself out in the end. And surprisingly, it did.

Adam: So Ron and Greg kept sneaking into the office, and then Apple had a big layoff. Apple wasn’t doing well and 20% of its workforce was gone. Ron and Greg were saved from the layoffs because, you know, they didn’t work there, they weren’t actually employees. But now all of a sudden there was plenty of offices they could squat in.

Ron: We found some empty offices and we just kept working. Someone came into our office at two in the morning, sat down with me, said he had heard about us through the grapevine, and that he was responsible for burning the Golden Master hard disk for the PowerPC project.

And he explained it to me, that Apple is a hardware company. There was a factory in Cork, Ireland, that produced the machines. The night before production start, he would FedEx a hard disk to the factory and that hard desk would then be duplicated on all the machines on the assembly line. And he said, “I make the Golden Master hard disc. In a very real and pragmatic sense, I decide what does and does not ship on the machines. And if you bring us a copy of your software by this and this date, I can put it on the Golden Master hard disks and it will be in 30,000 units boxed in the factory before anyone else even notices.”

Adam: So they have a way to ship, although it has problems. Ron wants to make math better, yes, but also he has Apple’s interests at heart. He’s a big fan. And sneaking software onto 30,000 computers seems a bit nefarious, maybe illegal. But this is the best that they’ve got, and this whole thing was a long shot anyhow.

House of Cards

Ron: At this point, we had two QA engineers working daily on this off the books. I had snuck the visual designer into the building on my own. Greg and I were sneaking in every day. At this point, everything is surreal and I’m just rolling with it. I’m just eyes on the prize. We want to ship this. It’s a house of cards. Any one thing could cause it to all come crashing down horribly. And if Apple wanted to have me prosecuted for criminal trespass or sued for any number of things, just by virtue of my presence there, they would be entirely entitled to do so, and I would be entirely on the hook.

But the thing is, I’m not worried about criminal prosecution. I’m worried about whether or not it ships. So when he came to me, it was just a relief.

Adam: But Ron and Greg still had to hit that three-month deadline and handle all the bugs that were coming in. So they kept up the long days and somehow they did it.

Ron: We’ve made the deadline, we’re ready. And then the hardware deadline got extended three months, which was actually a godsend for us because now we had decided on all the features. We had something that looked impressive, did very useful things, was a great demo, and we had an extra three months to make sure that it never crashed and that it was totally solid.

Demo Day

Adam: But the problem was that as the project got more and more help from more and more engineers, more and more people on the PowerPC team knew about it. The pressure got higher and higher to make the project legit. Ron kept getting requests.

Ron: “Please let us show this to our managers.” And I kept putting them off at first, because now we have to add 3D first and then because no, I’m still aware of some crashes. I can’t let it crash when a manager sees it. And so when it finally got to the point where, okay, there are no crashing bugs that I’m aware of, all the functionality we want is there, it looks pretty. And even though the engineer is willing to sneak it onto the disc, we have to at least try to do this officially. I expect to be laughed off because, “Who are you? You don’t even work here. Why are you wasting our time,” was my expectation, but I told the various engineers that have been supporting us, “Okay, tell your manager to come to my office.” I think it was Tuesday afternoon at 3:00. “I’m going to give them a demo. I’ll show them what I’ve been working on.”

And they were all great, finally. And so I had think 12 or 15 high level project managers, who the future of the company depends on, working on various aspects of the PowerPC, both in the hardware division and the software division, at different levels of the company, packed into his office, because their engineers told them, “You have to see this. We can’t tell you what it is. Trust us, just be there. It’ll just take 15 minutes.”

And I gave a half-hour demo. At this point I had done it a lot, so it was smooth. The demo showed a lot of math, 2D graphing, 3D graphing, computer algebra, numeric and symbolic computation, but it did all that incidentally. The spiel I gave of the demo was, “Look, this PowerPC computer is 50 times faster than the original eight megahertz Macintosh.”

Adam: That speed and what the hardware could do, that was the real demo, because deadlines being what they were, no one had had time to write a native, highly polished performant PowerPC app. But here was a demo of what they’ve been working so hard towards.

Ron: You’ve moved something around and everything moves. Not only does the window resize live and redraw everything, but this graph, this 2D or 3D graph, gets recomputed as fast as you can move it back and right. So there’s this illusion that you’re not giving a command and saying, “Okay, graph, do this,” and now wait while it evaluates the numbers.

There’s this illusion that you have this window onto a mathematical truth and you’re just panning the window around this much larger world. And when the machine is that much faster, you can now redesign your entire user interface from the scratch to take advantage of that speed, to create this direct manipulation that gives the illusion of a larger world.

Adam: The demo wowed them in a very tangible way, but it also raised questions.

Ron: “Why are we just seeing this now? Who is your manager? Why have they been doing this in secret? Why didn’t we know about this?” Which point I just stopped and told them, “My project was canceled three months ago. I’ve been sneaking into the building. If I get this badge anywhere near a door security will escort me out. I don’t actually work here.”

And they all laughed and said, “No, really? Who do you work for?” And there was this just delicious moment of awkward silence where they all looked at each other and looked at me, because the ridiculousness of the situation was just apparent. And they all just were like, “That’s awesome. We definitely want to ship this. Whatever you do, don’t repeat your story. We’ll figure something out.”

Adam: This was a huge step forward.

Ron: It’s like, okay, we don’t have to worry about how to ship it. Now we just have to worry about making it as good as we possibly can, which is what we’ve been doing all along. And now we have this support, the official support. We have QA, we have the usability study, and we have it going through the internationalization process. Both where they’re telling us what they need, to make sure that when it goes out to the geos, it can be translated in the 25 or 30 languages.

So at this point they intend to ship it, but then things get really weird. They couldn’t get me a badge. They wanted to ship it, but they’re very busy on the project the company’s future depends on. I’m still sneaking into the building.

Adam: The project is legit, but Ron is not. And now he has to meet all the groups that do the things like user testing and internationalization, and make sure the project checks all the boxes so that it can get officially released. And somehow him, Greg, the rest of the team, they get it done.

Ron: I am both proud that I was able to get this out there, and very grateful to Apple and to all the people at Apple that made it possible.

Adam: Because it was rock solid and never crashed and had a polished UI, the app had a good chance at gaining users. And the fact that it was colorful in 3D and showed off the hardware really well meant it started appearing in sales demos. It started appearing in computer stores all around the world. The secret project was now a flashy demo being used to sell the new Macs, because when people first saw it, when they saw the 3D, when they saw the colors, it blew them away.

Shipping It

Archival Footage of PowerPC demo of Graphing Calculator

Ron: In the end, it shipped on the very first PowerPC machines and continued to ship on all of them, up through the Mac OS X era, all throughout Mac OS 7, 8, and 9. And in the Mac OS 9 folder of the first Mac OS X machines, Apple shipped it for 10 or 15 years. It was on basically all the PowerPC machines. And once Apple went fully PowerPC, all subsequent machines. So probably in the end it went out on 40 million machines, just judging by Apple’s hardware numbers,

Adam: Which helped Ron’s dream of improving math education.

Ron: I heard from many teachers in all of the subsequent years and decades. Someone who has recently retired just wrote to me saying how he’s been using it for the last 30 years. Ever since the very first PowerPC computers he’s been using it in his classrooms, teaching calculus.

Reflections

Adam: Graphing Calculator is a story of its time. Software projects are bigger now. Security is tighter. You couldn’t pull this off now. But Ron also shipped something where many others failed, and those others were actual employees. What’s interesting to me is that Ron managed to pull this all off by exercising a different type of power.

Ron: Yeah, managers have budget and headcount to make things happen, and the direction comes from the top down. And in that view of the world I had no power. I had no budget, I had no headcount.

Adam: Yeah, it makes me think of this quote, “If you want to build a ship, don’t drum up people to collect wood and assign them tasks, but rather teach them to long for the endless immensity of the sea.”

Ron: Oh, that’s beautiful. Yeah. I had a vision, I had something I wanted to do. I had my own time to spend, and that was it. And on my own, I could not have done a tiny fraction of what it took to make this real and to make this of worthwhile quality to be out there. It worked only because so many people came in to assist it and to do all the things I couldn’t do, and to turn this into this giant team project, even though it was all off-the-books. And anyone that contributed was doing so just as a personal favor, or just on a lark, or just because they saw the passion and wanted to support it.

Outro

Adam: In the end, Apple did pay Ron some amount to license the software, and he kept sending them updates for new Mac versions. Plus, he started selling a Windows version and he added new features and he sold a commercial version of the calculator as well. So this Graphing Calculator became his career. His gift to Apple became Apple’s gift to him. He’s still selling it today. You can find it in the app store as Graphing Calculator.

In a coming bonus episode we’ll delve it a little bit more into the details. I’ll talk to Ron about what it was like to work on the same piece of software, the same code base, all of your life so far, getting close to 40 years soon. We’ll talk about his recent efforts to port the same code base to Swift, and how much he learned about software by going through Apple’s usability process. We’ll also talk about his recent efforts to port things to Swift and how much he learned about the software going through a usability study. And also, why is Graphing Calculator not on Mac OS right now, what happened there?

Also, one housekeeping note, this is episode 85. The first couple years of the podcast, the first, say, 49 episodes, I focus more on talking to people about technology. And after that I switched the focus to focus more on the people and their journeys. The early episodes are almost a different podcast and not everybody loves the old format. So I labeled these episodes as Tech Talks, and there’s a couple I dropped completely because the quality just wasn’t as great as I thought it should be. Who knows? Maybe in the future I’ll put all the Tech Talks in their own feed, that can be their own podcast.

And yeah, if you’re a new listener and you like this episode, maybe check out Apple 2001, or The Original Remote Developer, which is also an Apple story, a very early Apple story, but the Apple II, that’s wild. Or Lisp in Space, which is a crazy story from Ron Garret about debugging problems on a spacecraft, using a Lisp REPL. Or become a supporter. I have a whole full episode with Ron Garret for supporters, about his time building a very famous system at Google. There’s a whole bunch of bonus episodes and they are in the narrated story style. Until next time, thank you so much for listening.



from Hacker News https://ift.tt/HMtVwIu

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.