Phone Book

Wizard Card  -  Volume 26  -  Mr. Wizard Number 1  -  Sun, Dec 20, 1992 5:39 PM

A month or so ago, my wonderful Macintosh wristwatch emited a terrible wail and died, taking all my phone numbers with it. Instead of giving in to the dark forces of entropy, I decided to fight back by creating a HyperCard phone book small enough to fit in my wallet. It's still a little rough around the edges, but it works! Here then is my holiday present from Mr. Wizard to you...


The phone book stack allows you to enter three kinds of information: phone numbers, addresses, and birthdates/anniversaries. As you enter or edit the information, the three lists are automatically kept in alphabetical order (by first name).

The magic happens when you push the Publish button. The first step in publishing your wallet-sized phone book is to allocate how many pages you want for each of the three types of information. You do this by clicking on the page layout icons. A table keeps track of how many pages are needed and allocated for each type and hilites icons which represent non-empty pages. With this system you can quickly arrange your book in any order you wish.

Each two-page layout holds 16 phone numbers, 8 addresses, or 16 birthdays (the birthdates are printed in chronological order). The first two pages are automatically used to provide a four month calendar (beginning with the current month). The remaining 20 pages can hold up to 160 phone numbers, 80 addresses, or 160 birthdates. I find that 96 phone numbers, 16 addresses, and 32 birthdates is a good mix for me.

When you are satisfied with your allocations, just push the Print button. A Pie chart will appear to keep you informed of the program's progress. Eventually the first sheet will appear. Turn it around and re-insert it so that the second sheet can be printed on the back. (This was designed to work with DeskWriter printers; please let me know how well it works with your imagewriters or laserwriters!)

The end result is a single sheet of paper with printing on both sides. The page boundaries are delimited by dotted lines. In addition, one solid line runs vertically down the center of the page, and two lines cross it horizontially.

To assemble your book, simply cut along the three lines to form six strips, arrange those strips so that the calendar is in the front and the page numbers are in proper order, and then fold along the center of each strip and staple at two points along the fold.


The basic trick behind this stack is the layout of text fields across two 8-and-a-half by 11 inch cards that the user never sees. They are located after the three information cards and the allocation card. Thus there are only six cards in this stack. Since HyperCard requires all cards in a stack to be the same size, all six cards are actually page-sized, but the windowsize has been set to accommodate the first four cards.

The scripts which maintain the three lists are fairly ordinary. The non-name information is held in a hidden background field. Since the address information requires three lines for each name line, a little extra logic was required. A tip: when entering data, fill out both fields and then hit the enter key; this will automatically update and then push the new name button so that you can enter a list of names without taking your hands off the keyboard.

The allocation screen is where some of the more innovative scripts can be found. Feel free to take it apart. I'm rather proud of the interface for handling the tricky task of allocating pages: it's clean, simple, and easy to use. The print button uses the allocation pattern to change a few field properties on the two page layout. The hard part of writing this stack was doing all the tedious arrangements of text fields in such a way that all the pages come out looking sharp. The four month calendar was an extra little twist, just for kicks.

Please try at least one print-out. Although this stack still needs a little work (a help button would be nice, for example), I find it very useful. The phone book is the size of a business card and fits easily in my wallet. I usually just scribble changes and new numbers in the margins and then update and re-print once a month. I hope you all enjoy the stack. Happy holidays!