Linux as POS in Pizza Bars

Here's a new use for Linux—selling pizzas—and about time, too.

I am fortunate in that I started my career in the mid-80s as a UNIX applications programmer. Computers were fun then: Ataris and Amigas were breaking new ground each month, UNIX minis were fighting hard against the tide of IBM system 36s and 38s, and innovation ruled the day. Toward the end of the 80s, a new system, MS Windows, began gaining a tiny toehold in corporate computing. This new system offered three main advantages over minis :

  • Lower entry cost

  • Easy access to technical information

  • Ability to include exciting graphical interfaces

Many developers took to writing new applications in this new paradigm. Back then, I remembered that most corporations considered Windows something of a “renegade OS”, but the fact that a lot of new development was happening (and still happens) under Windows has helped to change that perception over time.

By 1994, I was a true believer. I lived and breathed MFC, VC++, OLE, VXD's and DLL's. Yet somewhere in the back of my mind lurked a deep yearning for the power of a UNIX command line. One day, when I got the money together, I would buy a Sun workstation and get a real computer for the home office. At that same time, one of my co-workers started telling me about Linux. I dismissed it at first—I simply assumed that a “free UNIX clone” would be some toy system that ran slowly, crashed often and lacked fundamental commands such as grep and find. To me, Windows was the key to the future, because in any objective comparison, the cost plus power of Windows would prove to be a better buy. I remember saying to him at the time: “The day that Linux is running the local pizza bar, I will start to change my mind.”

As 1995 came around, I was annoyed at having to upgrade all of my tools (again) in order to keep on the leading edge. Windows 95 was due out soon and the Win32 API was the thing to be using. I was faced with the prospect of possibly having to rewrite all of my core libraries (again) due to a company on the other side of the world which decided to change its APIs (again). I began to feel somewhat trapped.

August 24, 1995—Enter Linux

The day Win95 was released to the public, I walked down to the software shop at lunchtime, slipped past the queues of people holding Win95 boxes, and (purely out of curiosity) purchased a copy of Getting Started With Linux. For $35, this was half the cost of a book covering some of the new Win32 APIs. I was amazed to discover the book also included a CD for that price.

I installed Linux within a few hours and was literally stunned at what I found. I really did not expect to get a real system with X, compilers, source, etc. The whole experience changed the way I looked at a lot of things.

In the intervening period, I have used Linux at each place of work as a development platform for all manner of applications, web servers, database servers and more.

The Prophecy Fulfilled

In October 1997, a chance meeting with an old friend led me to a potential client who was looking to computerize a pizza bar/restaurant in Adelaide. While I normally work on large contract projects on enterprise level systems, I felt compelled for a number of reasons to take this job. While the irony of fulfilling my own comment from two years ago was indeed a factor, I also saw this as a good opportunity to prove that Linux can compete on traditional PC home ground.

A number of existing systems were available at the time for the restaurant owner to choose from; two other systems running under DOS, and one under Windows. All of the other systems were proven in existing restaurants and available at a low price. The decision on which system to purchase would come down to a number of factors:

  • Price

  • Ease of use/training

  • Reliability and support

  • Future expansion to handle multiple stores

Was it possible to produce something from scratch, in a limited time frame, and still beat the competition in all four categories? I assembled a team of three programmers, and we took the risk.

Figure 1. Main selection screen for the delivery orders shows the last orders that have been processed and allows the user to enter the customer phone number or name when they ring up for an order.

Figure 2. Shows the main order entry screen. The fields on the left scroll up and down to allow unlimited items to be added to an order, and the graphic panels on the right display a quick view of all of the various codes.

Linux helped us in the following ways:

  • Price: For a start, we had no operating system cost overhead. While this saved only about $100 initially, it would be a bigger factor when considering additional machines. Also, the wealth of freely available development tools gave us a big edge over the other systems. Finally, we could go with a more modest hardware configuration compared to the Windows solution, while still achieving the same level of performance.

  • Ease of use: Using Java, we produced nice GUIs that were as easy to use as any Delphi or VB application. For training, the X Window System allowed us to dial into the customer machine using PPP and redirect our screens onto the customer's monitor to discuss new features, while talking to them on the phone.

  • Reliability: These days it is easy to point to the proven track record of Linux as far as reliability goes. Selected articles from magazines such as Linux Journal continuously demonstrate this point.

  • Support: Linux allows us to take full control of the customer's machine from a remote location. This is especially important when a pizza bar, located 30 miles from your home, has problems at 3 o'clock in the morning.

  • Future Expansion: Linux's excellent ability to handle a distributed system comes from a long and proven track record of success as an Internet server. When you start talking about distributed databases linked via low cost dial-up lines, the opposition starts to look very shaky indeed. Most things in UNIX-based systems are a bit ugly to do, but a simple and elegant solution is always close at hand, no matter how complex the problem. The other systems, by comparison, tend to offer very friendly point-and-click solutions to simple problems, but also tend to get exponentially more difficult as the problem becomes more complex.

Figure 3. Displays the customer details, along with statistics and a history of orders.

Figure 4. Displays the contents of the docket exactly as it is printed. The generated dockets are also stored in the database, and can be viewed and reprinted at any time.



Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Wo kann ich das programm downloaden

Anonymous's picture

bin doch intressiert an diese programm wo kann ich das downloaden???

Andreas Rose

pizza bar pos

vlasto's picture

willing to try anything to stay away from windows, can you give me a hand locating the pos system



Linux POS

Anonymous's picture

I'm really interested in applying your software on Linux platform at my work at a small pizza delivery place. I haven't found it anywhere on Sunsite nor can I reach you via email. Maybe you can give me a link or help me in any other way.

And from my side, as a beginner software developer, great job guys and the description of the development process is really helpful.