32

The Story of Sun Microsystems PizzaTool

 5 years ago
source link: https://www.tuicool.com/articles/hit/BRZ7Bfv
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
by6Znyi.png!web
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

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

AFNbiaj.png!web

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_&[email protected]

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.

nEjUBfu.gif
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 was 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

7fQNriE.gif
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

YBRryi6.png!web
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

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’ ‘ [email protected] ’)

/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

— 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.”


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK