Pizza Server Introduction
Our need for a dedicated Pizza Server account was paramount, so we went to work on that first. The account was finally secured in October 1993 and our programmers started pounding out code. We had no idea what we were getting into.
The first task was implementation of a mail filter that would serve our purposes. We looked at several prepackaged mail filters, and opted for none of them. So we pounded out the durable and easily configurable "mfilter" mail filtering package which consists of ~350 lines of C source.
Once in place, mfilter would pass e-mail messages to various programs depending on the message subject. Some of the first sample services were implemented (and some still remain!) and work began on the main pizza generation engine.
The heart of the Pizza Server is the "makepizza" program that converts your text pizza orders into fairly realistic graphical pies. It supports half and half pizzas, as well as extra toppings. Also, the topping database is large, and is still growing. "makepizza" is made up to just over 1000 lines of C source.
"makepizza" initially builds the pizza in Portable PixMap format (PPM) and proceeds with conversion to other types from there. The programs "ppmquant" and "ppmtogif" are used for GIF conversion, and "cjpeg" is used to create the JPEG images.
Initially, we were only going to send the pizzas in uuencoded format. However, the Multimedia Internet Mail Extension (MIME) was beginning to catch on, and we thought it would be a good idea to implement a MIME encoding scheme for the convenience of our patrons. This took a small amount of extra time, but it was worth it.
Around the beginning of December 1993, we were running the first version of makepizza. It was basically fully functional but was still to go through several revisions and one mfilter overhaul before it would be made available to the general public.
Finally, in April 1994, the Internet Pizza Server officially went on-line. Announcements were posted to alt.internet.services, as well as other groups and usage skyrocketed. Since the initial opening, the Pizza Server has only gone down once, and that was for an overhaul of the mfilter program. With the exception of that, and the patching of a small security hole, the pizza server has been running bug-free for nearly a year.
Now, for the first time, you can order pizza from the Internet Pizza Server via WWW. We have a form based entry system for the pies, and C programs to handle information transmission between the form and the makepizza program. Hopefully other form based services will show up soon.
And so, in a way, we've completed our task, but in another, we've only just begun. We will continue to bring wacky free services to the world of the Internet, long after everyone else has gone commercial for a buck. (Not to say we'll never go commercial for a buck, but we'll always have things for free to complement them!)
The Internet has changed more than we ever expected when we first conceived this pizza notion, but we still love it all the same. The seasoned Internet Veteran is rapidly becoming a minority, replaced by Green Card Lawyers and others out to make free money on the "Information Superhighway". Hopefully others will continue the age-old tradition of providing free services on the Internet and help to make this world a better place for all of us.
Update: In 2001, the Pizza Server was given an elven overhaul, and fixed up and prettied for the royal visit! And because it was busted solid when we moved from an HPUX box to a Sun and the elves were locked out for months because they weren't students, so we all had a big bonfire and ate peppermint candies and danced 'til the mooses came home.
And then the ugly old monolithic "makepizza" program (written by a college junior) was ripped apart and zapped back together in a new leaner faster form called "renderpie" (written by a professional with years of experience in both the software and pizza food-service industries.) Pizzas which used to take several seconds to create are now pounded out in a few score milliseconds. (40-50ms on a 1.3GHz Athlon according to independently unverified benchmarks.)
The new system is also far more modular, which is good. It's also bad because many of the needed modules have not yet been written. The old mail filter "mfilter", for example, will be retired and replaced with a procmail/Python combination straight from heck, and heck's comin' with it! You hear!?
--The Internet Pizza Server Elves