The Story of Sun Microsystems PizzaTool

How I accidentally ordered my first pizza over the internet.

The NeWS PostScript version of PizzaTool for The NeWS Toolkit 2.0 on OpenWindows

PizzaTool Manual

The NeWS Toolkit version of PizzaTool was shipped with Solaris 2 / SVR4 Unix OpenWindows, with this helpful manual entry. It only contained one known bug, but it was a whopper.

BUGS: There is presently no way to pay off your tab.
pizzatool - a graphical pizza menu user interface
SYNOPSIS
/usr/openwin/demo/pizzatool
DESCRIPTION
PizzaTool is a NeWS and TNT application that lets you select a pizza by choosing toppings from checkboxes and menus, and preview a drawing of your pizza in a round spinning window.
The main PizzaTool window has some buttons, menus, and text fields that you can use to configure your order. The “Pizza Parlor” menu selects between various pizza servers. The “Topping…” “Preview…” and “Edit…” buttons pop up associated control panels. The “Order!” button sends your order to the pizza server. You need to fill in your name and address so they know who you are and where to deliver your pizza.
The Topping panel has a “Preview…” button that pops up the pizza preview panel, and an “Order!” button to send your order, like the main PizzaTool window. There are settings to select how big a pizza you want, and to choose a whole or a half pizza. There is an abbreviated menu button for selecting popular pizza styles, and lots and lots of checkboxes, for selecting individual toppings. The field at the bottom of the panel displays the estimated cost of the currently selected pizza.
Popping up the pizza Preview panel paints a picture of the particular pizza you’ve picked. The round pizza is magically suspended in the hollow frame (it’s supposed to be that way), and you can resize the frame to get a closer look at the pizza. Pressing the MENU button over the pizza pops up a menu of popular pizza styles, and you can spin the pizza around with the SELECT button, to cook it.
The Pizza Menu Editor panel is for use by authorized pizza parlor personnel only. It can be used to add, delete, rename, and edit pizza styles, and to change all the prices.
SEE ALSO: The NeWS Toolkit Reference Manual, NeWS 2.1 Programmer’s Guide, OPEN LOOK Graphical User Interface Functional Specification
NOTES: NeWS is a registered trademark of Sun Microsystems, Inc. OPEN LOOK is a trademark of AT&T.
BUGS: There is presently no way to pay off your tab.

PizzaTool Source Code

PizzaTool is written in object oriented PostScript for The NeWS Toolkit on OpenWindows. And it‘s got lots of comments to explain what’s going on.

It’s a programming example for The NeWS Toolkit, and it tests out and shows how to use all the different widgets, dialogs, drag and drop, lightweight threading, and PostScript drawing.

PizzaTool History

Ben Stoltz, a brilliant and creative user interface programmer at Sun, developed the original “tatool” at Sun Microsystems in October of 1990 with Sun’s Devguide tool for building XView user interfaces.

“TA” stood for “Tony & Alba’s”, the best pizza parlor in Mountain View, located conveniently nearby Sun. Late one Saturday night, Ben came into my office, jumped up and down, gave me a mind blowing demo, and then I accidentally ordered my first pizza over the internet!

I played around with it and put together a mondo pizza with lots of toppings I couldn’t even pronounce, then Ben told me to select the (Send Fax) menu button and choose Email Only so it would email the order form to me. But I fat-fingered it and selected Send Fax, so I had to call up Tony and Albas and tell them I had spazzed out with the mouse, and to ignore the next ridiculous pizza order that came over the fax.

Me and my big mouth!

I thought it was totally cool, useful and practical, so I sent the following email to some random internet mailing list full of friends, precisely describing my first experience ordering a pizza over the internet:

Date: Wed, 24 Oct 90 13:39:00 PDT
From: Don Hopkins
Subject: PizzaTool
Last Saturday night this dude (Ben Stoltz) came by my office and jumped up and down and insisted I run this program he had just gotten working. It was called “tatool” — and its icon was a Tony & Albas pizza box. Opening the pizza box revealed a control panel with text fields automatically filled out with my Name:, Phone:, and Address:, an abbreviated Delivery: menu button (To Eat at T&A, To Pick Up, Take & Bake, Please Deliver), A total Estimated cost: text field, an email copies to: text field, buttons for (New Pizza), (Set Defaults), and a menu button for (Send Fax) (Tony & Albas, AD Fax, or Email Only) [for testing]. Then of course there’s a big scrolling text panel for Additional Instructions:.
Pressing the (New Pizza) button pins up a New Pizza Properties Sheet. At the top, an exclusive setting to select a Pizza Size: of 10", 14", 16", or 18", and another exclusive setting to select between a Fraction: of Whole or Half.
Next is an abbreviated menu button that selects the pizza Style: (Cheese, Ala Gilroy, All Meat Combo, Garlic Clam & Tomato, Keep Fit Special, Pesto Pizza Special, Tony’s Gourmet, Tony’s Special, Vegetarian Delight). Below the Style menu are two banks of Pizza Topping check boxes, for Meats: (14 checkboxes) and Vegetables: (13 checkboxes). Under that is an estimated cost field for the current pizza configuration. Naturally, selecting a pre-defined pizza Style will set all of the check boxes appropriately, then then you can customize your pizza order by adding and deleting toppings by clicking on the check boxes.
I played around with it and put together a mondo pizza with lots of toppings I couldn’t even pronounce, then Ben told me to select the (Send Fax) menu button and choose Email Only so it would email the order form to me. But I fat-fingered it and selected Send Fax, so I had to call up Tony and Albas and tell them I had spazzed out with the mouse, and to ignore the next ridiculous pizza order that came over the fax.
Last night I used the Pizza Tool to order a pizza on purpose, and it worked wonderfully! When we picked up the pizza the guy at Tony and Albas said they’d gotten several Pizza Tool orders that day, and he showed us a color screen dump of the Pizza Tool in action that somebody had brought him when they picked up their pizza!
-Don

I Kept the Receipts

Here is the automatically generated receipt from “tatool” to the Fax server for the first pizza I ordered on purpose over the internet, by faxing the text order to the pizza parlor:

Date: Tue, 23 Oct 90 22:42:37 PDT
From: Don Hopkins
To: FAX:965–8882.Pizza_Order_Taker.Tony_&_Albas@akina.Eng
Subject: Ordering Pizza from PizzaTool
Food order from: Don Hopkins
 Phone: 336–3171
 Address: 2400 Bayshore Parkway, Mountain View
We will eat the food at Tony & Alba’s.
18 inch pie:
 Ala Gilroy
 add Artichoke hearts
 add Provolone
We’re *hungry* and we’re on our way!

And the receipt from the fax server:

Date: Tue, 23 Oct 90 22:46:54 PDT
From: daemon@akina (Fax Server)
Subject: ****FAX Xmt OK****
— — — — — — — — Transmission Summary — — — — — — — 
Fax Server Version: FaxMail 0.2+
Fax Transmission Succeeded: 2 pages OK
Connected to 965–8882 () for 2 min 3 sec
2 pages out of a total of 2 pages sent
To: Pizza Order Taker Company: Tony & Albas
Subject:
 — — — — — — — — — — — — — — — — — — — — — — — — — -
*** Transmission Transcript ***
fax modem ready
dexNET200 ready
dexNET200 ready
dexNET200 ready
dexNET200 ready
dexNET200 is dialing the remote fax machine
dexNET200 connected to G3 fax machine
page 1 sent or received ok
page 2 sent or received ok
Normal call termination
Soft reset

The Trouble Begins

As it turned out, I got into a bit of hot water for accidentally revealing Sun’s secret multimedia “Email-to-Pizza” strategy to the internet.

The NeWS Toolkit 2.0 for Sun OpenWindows

At the time, I was working for Sun on the NeWS window system, programming user interfaces in PostScript. As well as a window system, Sun was also using NeWS to develop a product they had just released called “NeWSPrint”, which turns your Sun workstation into a PostScript printer server.

On top of NeWSPrint, and not yet released, Sun was developing a PostScript-to-Fax rendering server with an Email-to-PostScript converter. So there was an email address to which you could send a text or PostScript file, which would render it to a bitmap and fax the bitmap to a phone number of your choosing. And that was the key piece of technology required that finally made it possible to order a pizza over the internet.

Weaponizing PostScript

You could do a whole lot more window manipulation, user interface customization, event handling, object oriented programming, debugging, multithreaded programming and networking with the NeWS window system than with Display PostScript. […]
Sun sold a PostScript printer called NeWSPrint, which used a sandboxed version of the NeWS server running on a Sun workstation as a rendering engine, sandboxed so you didn’t have access to the file and networking operators.

First Ben got in trouble:

Date: Wed, 24 Oct 90 15:07:44 PDT
From: Vicky L. Schulman
To: Ben Stoltz
Subject: PizzaTool
Otherwise known as tatool…
In a round-about way this program has come to my attention. Did you write it? How do we get it?

So I tried to cheer up Ben and put a good spin on PizzaTool’s wide appeal:

Date: Wed, 24 Oct 90 15:52:26 PDT
From: Don Hopkins
To: Ben Stoltz
Subject: Me and my big mouth!
I sent out the message enclosed at the end, and it looks like there’s a *great* demand for pizzatool! What do I tell these people?? Will it be in the next version of SunOS?
-Don

Then I got in trouble too:

Date: Wed, 24 Oct 90 15:58:13 PDT
From: Ben Stoltz
To: Vicky L. Schulman
Subject: Re: PizzaTool
Viki,
I don’t know the first thing about the legal aspects of giving you a copy of the program. I have to consider them because the “pizza” program is directly related to the work we are doing in this department (I am serious, mostly.)
— -pause — -
Well, I just got some mail from Don Hopkins and it looks like this is not a secret anymore.
I’m not sure what to do now. I will get back to you.
Ben

PizzaTool Customer Demands

I tried to explain to Sun management that we were already getting demands for PizzaTool from Sun customers and Tony & Alba’s Pizza connoisseurs all across Silicon Valley and far away places .

The Window System Wars

The NeWS PostScript version of PizzaTool for The NeWS Toolkit 2.0 on OpenWindows

Part of my job was to test out the NeWS user interface toolkit by writing demos and small applications, as well as commenting and documenting so that developers could learn how to use it.

It was the time of the Window System Wars, and there was a rivalry between the NeWS window system developers and the X11 window system developers at Sun. There was a huge proxy war going on between XView and TNT. And of course I was on the Anti-X11, Pro-NeWS side of the war.

The X-Windows Disaster

X has had its share of $5,000 toilet seats — like Sun’s Open Look clock tool, which gobbles up 1.4 megabytes of real memory! If you sacrificed all the RAM from 22 Commodore 64s to clock tool, it still wouldn’t have enough to tell you the time. Even the vanilla X11R4 “xclock” utility consumed 656K to run. And X’s memory usage is increasing.

The PizzaTool Flame War

Ben’s original “tatool” was an XView application for X11, so I decided it was important for The NeWS Toolkit’s cause to develop a graphical version of PizzaTool in PostScript for the NeWS window system, that showed off its unique abilities by drawing a colorful preview of the pizza in PostScript, and using NeWSPrint to fax a picture of the pizza to Tony & Albas, instead of simply sending a text order.

Of course my obvious helpful and diplomatically worded suggestions touched off the epic PizzaTool Flame War at Sun about NeWS TNT -vs- X11 XView, which resulted in management banning further discussion of the issue.

To: lots of managers and mailing lists
Subject: FLAME, was: more on tnt vs XView 
Date: Mon, 29 Oct 90 09:47:39 PST
From: Don Jackson
1) Boy, am I getting tired of discussing this.
2) Of all the important issues in MMPP that we should be discussing and attempting to resolve, the toolkit used for Pizzatool is not in the top 100 as far as I can tell, and we have already spent more time thinking about this, than any of the the “top 100”.
3) Ben Stoltz came into Sun one Saturday and spent 12 of his own personal hours coding Pizzatool. He used the tools he knew about, and had access to, and was comfortable with. As a long time Sun employee who was familiar with Sunview and C, Xview was a natural choice for this applications because
 1) It did the job.
 2) His previous investments in Sunview and C were highly relevant.
 3) The goal of his project was do write a cool demo, and to finish it as soon as possible, since he was investing his own time in its creation.
Given 1,2, and 3 above:
4) I hereby request Ben to spend no more “Work” time working on Pizzatool, or pizzatool post mortems. This should be simple because Ben hasn’t spent any significant work time on Pizzatool. If anyone wants to discuss this issue with Ben, they should make arrangements with Ben to talk after hours. An exercise left to the reader is to determine how to motivate/compensate Ben for discussing this critical, facinating issue in his “free” time.
5) I am no longer going to read or respond to email discussing why tnt versus xview W.R.T. pizzatool. I am no longer going to sit in meetings where this is discussed.
6) As always I will continue to read, respond, attend meetings, and attempt to remain civil during any other discussions of tNT versus xview.
7) Ben Stoltz: As a member of MMPP, I would like to express my thanks for your efforts to showcase MMPP fax technology via the pizzatool program, especially since you spent your own time to create this program. I’m happy to work with creative, hard working people like you.
Don Jackson.
8) Pizzatool: CASE CLOSED!

Programming a PostScript PizzaTool

So I ignored the warning not to spend any more time on PizzaTool, kept my head down, and continued to hack away on the TNT version of PizzaTool in my spare time.

Painta the Pizza Toppings

I wrote a bunch of little PostScript programs to draw every different type of pizza topping on Tony & Alba’s extensive menu.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Pizza Toppings

% TODO: Order all of these toppings to see what they really
% look like!

/Dairy (Cheese) 150 {
1 1 0 setrgbcolor
.018 setlinewidth
} {
0 0
random .1 mul .1 add
0 random 100 mul 30 add
arc
stroke
} maketopping

Processa the Pizza in PostScript

NeWS would fork off a bunch of light weight PostScript processes to draw each of the toppings, and one more to spin the pizza crust, and they all worked together in harmony to render and cook the toppings and melt the cheese by repeatedly rotating the bitmap image around again and again until the jaggies melted the pixels together.

/Paint { % - => -
PizzaLock { % monitor:
/reset self send
/PaintProcess { % fork:
pause
/PaintNewPizza self send

% Wait a second until things settle down ...
% If /paint is called again within the next second,
% this process will be killed and a new paint process
% will sleep for a second.
[1 0] SLEEP

% If our parent window frame isn't opened,
% then it's hiding and we shouldn't draw the toppings.
/opened? Parent send { % if:
% Draw all the toppings at once! Weeee!
4 { % Lots of cheese, repeat:
Cheese /StartSprinkle self send
} repeat
/toppings Pizza send { % forall:
/StartSprinkle self send
} forall

% Wait around for all the sprinklers to finish.
{ % loop:
Sprinklers length 0 eq { exit } if
% push one of the sprinklers, doesn't matter which.
Sprinklers { pop exit } forall
waitprocess pop
} loop
} if
/StopPaint self send
} fork def
PaintProcess /ProcessName (Pizza Painter) put
} monitor
} def

Starta the Pizza Spinning

Thanks to the wonder of NeWS, it was easy to spin the crust by dragging the mouse, and then you could check the boxes to sprinkle toppings onto the pizza as it spun around!

  % Start spinning the pizza, to cook it.
%
/StartSpin { % - => -
/StopSpin self send
/SpinProcess { % fork:
clear
/PaintSetup self send
/ClipCrust self send
initmatrix
{ % loop:
SpinPause { pause } repeat
/Spin self send
} loop
SpinProcess currentprocess eq { % if:
/SpinProcess unpromote
} if
} fork promote
} def

Spina the Pizza Pixels Arounda the Center

Every time it spins the pixels around the center of the pizza, they become jaggier and jaggier, so it looks like the pizza is cooking.

  % Spin the pizza around a bit.
%
/Spin { % - => -
gsave
/size self send % w h
2 div exch 2 div exch % w/2 h/2
2 copy translate
SpinAngle random add rotate
neg exch neg exch translate %
self imagecanvas
grestore
} def

Dropa the Picture ona the Pizza

Then I integrated it with other fun NeWS graphical tools and toys like RasterRap, by adding support for dragging and dropping images into your pizza!

% Deal the a selection dropped or pasted into this pizza.
%
/HandleReception { % event selection => bool
exch % selection event
//is_v2? not { self } if
/begintransfer 3 index send % selection event
/Raster /query 3 index send { % ifelse: % selection event canvas
/RasterReception self send % selection bool
} { % else: % selection event
/Canvas /query 3 index send { % ifelse: % selection event canvas
/RasterReception self send % selection bool
} { % else: % selection event
pop false % selection bool
} ifelse
} ifelse % selection bool
dup /endtransfer 4 -1 roll % bool bool /endt selection
send % bool
} def
I left a pizza spinning over Christmas to see what happens, and it was really a mess when I came back!

Finda the Pope in the Pizza

Father Guido Sarducci, when he’s not collecting pizza tabs from deadbeats, reviews Pope related memorabilia and runs Pope and pizza related contests.

Faxing the Pizza to the Parlor

When you were ready to order, PizzaTool would fax a picture of the pizza to Tony and Alba’s. At first there was some confusion, after I faxed just a wordless picture of a pizza to Tony & Albas. They were perplexed and couldn’t figure out by looking at it what toppings I wanted. So I added crisp black text printed over the pizza with a thick white outline around it, so you could easily read the text over the pizza.

Faxed PizzaTool Order to Tony & Alba’s

Faxed PizzaTool Order to Tony & Alba’s

As it turns out, it takes a hell of a long time to fax a picture of a PostScript pizza, because the PostScript halftone scales and jaggies turn on and off and on and off so quickly and unpredictably that it’s extremely inefficient for the fax algorithms to compress, and very susceptible to line noise. Fax was just not designed for that kind of computer generated imagery!

Hypnotizing the Management into Shipping PizzaTool

I finally managed to hypnotize some of the managers at Sun into seeing it my way, with animated spinning pizzas.

The spinning pizza feature turned out to be extremely popular, and thoroughly mesmerizing! I sank far too many hours of my mis-spent youth staring into spinning pizzas.

You could even drag and drop images from other NeWS tools like Raster Rap into the pizza as backgrounds or toppings! A Japanese painting of a wave turned out to be perfect for “washing out” the pizza crust by spinning it around like a washing machine! Then you could drag and drop images from your art collection in to make a Mona Lisa with Mushrooms.

HyperLook Demo with Spinning PizzaTool

Demonstration of SimCity running under the HyperLook user interface development system, based on NeWS PostScript, running on a SPARCstation 2. Includes a demonstration of editing HyperLook graphics and user interfaces, the HyperLook Cellular Automata Machine, and the HyperLook Happy Tool. Also shows The NeWS Toolkit applications PizzaTool and RasterRap. HyperLook developed by Arthur van Hoff and Don Hopkins at the Turing Institute. SimCity ported to Unix and HyperLook by Don Hopkins. HyperLook Cellular Automata Machine, Happy Tool, The NeWS Toolkit, PizzaTool and Raster Rap developed by Don Hopkins. Demonstration, transcript and close captioning by Don Hopkins. Camera and interview by Abbe Don. Taped at the San Francisco Exploratorium. PizzaTool demo starts at 21:40. (Sorry about the horrible compression and noise!)
HyperLook Demo with Spinning PizzaTool, Beginning at 21:40

The spinning pizza hypnotized its first manager, and then it started to spread.

Date: Tue, 13 Nov 90 16:34:32 PST
From: Kelly Pope
Subject: Re: TNT pizza tool
Sounds good to me Rick. Anything to promote TNT! I’ve seen two versions of the TNT Pizzatool, both not quite complete. You might want to pick the version with the rotating pizza (its really cool). The only problem with that one is that the ingredient list doesn’t update when a new type of pizza is selected, and in the Xview version, that feature is really great. Also, the update on the price per added ingredients should be incorporated. (I know these are picky details, but it really makes for a whizzy demo).
And don’t worry, I’ve got you guys as #1 on our alpha list for the real thing…
- Kelly

Finally some people in marketing saw the spinning pizzas, which hypnotized them into helping promote it:

From: Craig Rolandelli
To: Don Hopkins
Subject: Re: PizzaTool for TNT 2.0! 
Date: Fri, 21 Dec 90 10:37:03 PST
Thats great! How would you like to get pizzatool distributed to Sun customers? I am putting together a demo disc that wil ship with the Sun CD players. The disc will ship in Mid-March. The code cut off is Jan 26 (if you want to make any changes/bug fixes).
Let me know.
Craig

I made a special version to hypnotize my manager Warren Teitelman that didn’t reveal Sun’s secret multimedia strategy, but had a magic word invented by my Adventurous co-worker Don Woods:

Date: Fri, 21 Dec 90 16:02:21 PST
From: Don Hopkins
To: Warren Teitelman
Subject: magic word for pizza tool
The newest version of pizzatool is in “~hopkins/tnt/pizza/pizzatool”.
It’s been cleaned up, and all references to fax have been removed. Now
it contacts a “pizza server” via email if the “ServerEnabled?”
variable is true. The file “~hopkins/tnt/pizza/faxpizzatool” is the
same version, but with that variable turned on. That’s the one you
want to run in the demo room.
The server, as it is now set up on my machine, looks for the magic
word “xyzzy” in the message. If you type “xyzzy” into one of the
“Additional Instructions” fields, it will forward the message on to
the fax server and fax it to the demo room #336–3154. Otherwise
nothing happens.
-Don

Eventually Andy Bechtolstein started leaking information about Sun’s secret multimedia pizza strategy to the press:

From: John Gilmore
To: Don Hopkins
Subject: Pizza Tool makes the big time
Date: Tue, 05 Mar 91 18:25:52 -0800
SunWorld (renamed from Sun Tech Journal) interviewed Andy B, and when they talked about multimedia, Pizza Tool was Andy’s example. He wanted to show how integrating fax and audio and email was a good thing, perhaps better than video and stuff like that for the short term.
SunWorld, March 1991, page 18, middle of first column.
John

Then “UNIX Today!” back-covered it, but got some of the details wrong, since it’s such a complicated story to cover for a fine publication of such journalistic integrity like UNIX Toady:

Date: Tue, 16 Apr 91 15:49:53 PDT
From: Rick Levenson
Subject: PizzaTool and “UNIX Today!”
The back page of the newest “UNIX Today!” (just arrived a few minutes ago) has a great 1/2 page article on the newest product from Sun, “PizzaTool”. It’s fun reading…
-Rick

We were shocked, I say shocked, that a UNIX Toady article entitled “Any Way You Slice It, Sun’s Pizzatool Is Food For Thought” didn’t get all the technical details and attributions right, so we wrote them a letter correcting the record:

Date: Tue, 28 May 91 19:25:45 PDT
From: Paul Simons
To: UNIX Today
Subject: Pizzatool
4/29/91
Editor UNIX Today:
We the following Sun engineers would like to make a historical clarification regarding the article entitled, “Any Way You Slice It, Sun’s Pizzatool Is Food For Thought” in the April 15 issue of UNIX Today. The original idea of ordering food from the workstation was conceived way back in 1989 by David LaValle who is now at NeXT. The original fully functional implementation of ordering food thru the workstation was “Pizzatool” developed by Ben Stoltz using Sun’s DevGuide. The features that were present in that original version included price optimization, pop-up preconfigured pizza menu, fully selectable ingredients, as well as the fax hook-in to fax an order to Tony and Alba’s. Fax capability courteousy of Ed Un. Don Hopkins subsequently reimplemented this original version of pizzatool in PostScript for the NeWS toolkit and added the WYSIWYG spinning popup pizza which provided a preview of the final cooked pizza.
This letter in no way represents the views, product plans, or announcements of Sun Microsystems and is only the opinions of the engineers who witnessed this historic event. :-)
Sean English
Dave Evans
Don Hopkins
Paul Simons
Ben Stoltz
Ed Un

We managed to talk Sun management into including the TNT version of PizzaTool with the official OpenWindows distribution as an official part of Solaris Unix SVR4. I removed all references to faxing orders, wrote a manual page, and commented the code profusely. When you ordered, it pretended you already had an unpaid tab and gave you a warning from Guido.

Yer pizza is being held hostage,
until ya pay’s off yer tab, chump!
Yer tab’s presently:
$437.96 [OK]
% Guido is in charge of extracting payments from dead-beats.
%
/Guido null def
% Give dead-beats something to worry about.
% If Guido can extract such a payment then all the better!
%
/YerTab 1000 random 50000 mul floor 100 div add def
    /YerTab YerTab /price Pizza send add store
Guido null ne { Guido killprocess } if
/Guido { % fork:
currentprocess /ProcessName (Guido) put
[ 2 10 random mul cvi add 0] SLEEP
beep beep beep /PayUp ShowNotice
/Guido null store
} fork store
  /PayUp dictbegin
% Dynamic popup notice text!
/Text { % - => [string ...]
[ (Yer pizza is being held hostage,)
(until ya pay's off yer tab, chump!)
(Yer tab's presently:)
YerTab
dup 100 mul round cvi 100 mod
exch floor cvi
1 index 10 lt { ($%.0%) } { ($%.%) } ifelse
sprintf
]
} def
/Buttons { oknoticebuttons } def
dictend def

That ominous popup notice made one of my managers nervous, so we trolled him:

Date: Fri, 2 Aug 91 18:48:41 PDT
From: Bill Crane
To: Don Hopkins
Subject: pizzatool
Don,
Since pizzatool is in demo directory, what really happens when a customer hits “Order!”?
And where does it get the “current tab” dollar amount?
I just want to make sure this stuff works for our standalone customers too.
Bill

Bob extended the troll:

Date: Fri, 2 Aug 91 19:15:57 PDT
From: Bob Weisblatt
To: Bill Crane
Subject: Pizzas Pizzas!!!
Are you employee number 7858? The Tony and Alba’s guy was just here looking
for you. Tell me, just how much pizza can one guy eat anyway?
Bob

He fell for it of course!

Date: Fri, 2 Aug 91 19:22:18 PDT
From: Bill Crane
To: Bob Weisblatt
Subject: Re: Pizzas Pizzas!!!
I hope you’re kidding! I was just playing with the demo…
Bill

He took the bait!

Date: Fri, 2 Aug 91 19:28:52 PDT
From: Bob Weisblatt
To: Don Hopkins
Subject: Re: Pizzas Pizzas!!!
I think he took the bait. I’m going to let him stew for the weekend.
Bob

And it ruined his weekend:

Date: Mon, 5 Aug 91 22:12:53 PDT
From: Bill Crane
To: Bob Weisblatt
Subject: Re: Pizza
X-Lines: 4
You clown… I stayed off El Camino all weekend so the T&A pizza guys wouldn’t see me… :)
Bill

That rattled him enough that he went through the code looking for easter eggs, and found a teeny tiny little one that I’d left in, merely to collect feedback from users for quality assurance:

From: Bill Crane
To: Don Hopkins and lots of managers
Subject: pizzatool sending mail to hopkins
I know this is just a demo, but I don’t really want our demo
programs sending mail back to Mt. View! This doesn’t seem
like a good idea…
I think it should be pulled out.
Bill
grep mail pizzatool
 % *** emaillabel: ClassLabel
 % *** emailfield: ClassTextField
 namefield phonefield addressfield emailfield
 — — — -> (/usr/ucb/mail -s ‘Pizza Order’ ‘pizza-server@poit.eng.sun.com’)
 /value emailfield send
 /emaillabel
 (Email copy to: ) framebuffer /new ClassLabel send 2 copy def
 /emailfield
 [ /SouthWest { /SouthEast /emaillabel POSITION 0 -2 xyadd } ]
 [ /NorthWest { 10 /SouthWest /emaillabel POSITION exch pop -15 add } ]
 emailfield /setnextfocus addressfield send
 emailfield

That was what they call a “showstopper”!

Date: Wed, 14 Aug 91 13:01:26 PDT
From: Sydney Springer
To: Don Hopkins and lots of managers
Subject: Re: pizzatool sending mail to hopkins
Should we prepare a Showstopper request and CRT request to fix this?
-sydney

So they stopped the show for PizzaTool!

Date: Wed, 14 Aug 91 22:05:24 PDT
From: Allan McKillop
To: Don Hopkins and lots of managers
Subject: Re: pizzatool sending mail to hopkins
Yes, we should fix this. Was there any real reason for having the email 
address in there to begin with?
— allan

Uuuuh, in order to better enable our excellent customer service? So I took out the easter egg, and documented the one little bug that “There is presently no way to pay off your tab,” and we shipped it!

More Outstandingly Accurate PizzaTool Journalism from “UNIX Today!”

Some really cheesy pizza jokes, seen in the August 5th 1991 edition of “UNIX Today!”, quoted without permission or shame:

To Get The Lowdown On PEX,
Consult Not Some Arcane Guru,
But Your Local Pizza Parlor
 — — — — — — — — — — — — — — — — 
Fourteen unidentified vendors are reportedly in discussions to
form a new consortium to combat Sun’s effort to standardize 
the _real_ PEX — the Pizza Extensions to X.
“It’s just one more attempt to sneak a standard into the public
domain,” said one source, who spoke on the condition that he 
remain anonymous, but who promised to say as many nasty things
about Sun as he could think of. “Sun has been going along with
the Phigs [sic] Extension to X and all the while doing Pizza in
the background,” the source charged.
“It was a ploy. Imagine the revenue Sun could derive if it owned
_this_ PEX standard — how many people use 3-D graphics as opposed
to how many eat pizza? The mind boggles.”
..Sun’s X-based PizzaTool software can take orders for many
different toppings to build custom pizzas, can “spin” an on-screen
image of the pizza to provide the hungry user with a preview, and
can fax the finished order to Tony and Alba’s pizza place in
Mountain View.
“What kind of open standard is that?” said another source. “Does
Sun think everyone in the world is going to buy Tony and Alba’s?
There has to be a standard PPI,” he said, referring to the 
consortium’s proposal for a Pizza Place Interface.
The consortium also plans to charter an R&D committee to look into
evolving technologies that could get pizza to users faster.
Sources said the ideas to be studied include:
- Cellular Pizza Fax (CPF), in which fax machines would be
 places inside roving pizza trucks to reduce the mean time
 between order and delivery.
- Just-In-Time Pizza, a technique that would be restricted
 to use inside the pizza place, in which each bit of pizza
 is delivered to the user as subassembly components of
 cheese, sauce and dough to be assembled in the mouth.
- DBS, or Direct Brain Stimulation, considered the ultimate
 pizza immediacy. “We’re not sure,” said yet another
 unnamed source, “but we think with DBS technology, we can
 simply make the user feel like he or she has burned the
 roof of the mouth, and tell the brain you’re not hungry
 anymore.”