What's Up DOCumentation Robelle Consulting Ltd. 8648 Armstrong Rd., R.R.#6 Langley, B.C. Canada V3A 4P9 Telephone: (604) 888-3666 Fax: (604) 888-7731 Date: December 10, 1989 From: Robert M. Green, President David J. Greer, Research & Development Michael C. Shumko, Customer Support Ken Robertson, MIS To: Users of Robelle Software Re: News of the HP 3000, 1989 #9 What You Will Find in This News Memo: News Tidbits Xpress E-Mail Now Transfers MPE Files! Technical Tips Doing It Right--Electronic Mail in the 1990's About Robelle Qedit Visual Training for PC Users Robelle Products: Problems, Solutions, and Suggestions News Tidbits Native-Mode QeditAccess and Suprtool2 Routines. Native-Mode versions of our interface subroutines, which eliminate the need for switch stubs, are now available to test sites. QeditAccess allows a program to read Qedit workfiles and is built into many third-party products. Suprtool2 allows an application program to invoke Suprtool to perform tasks. Qedit and Suprtool themselves are not yet available in Native-Mode. The Earthquake. They're calling it "The Pretty Big One". HP Cupertino was very lucky -- the ceiling tiles fell and the power went out, but their hundreds of computers came back up when power returned (except one poor MicroVAX that fell over and broke itself). This in spite of the collapse of one raised floor. The sense of humor is incredible. I heard lots of stories, including one about an aquarium that fell and shattered, sending all the fish to their doom, except one who landed in the cat's water dish. Luckily for the fish, the cat was so scared it hid under the bed for two days. Here is another that I found in the HP Cupertino Close Up newsletter: "Just a note to let you know we are alive and well... John and his dad had shoveled up most of the kitchen, allowing me free rein to try to get the sugar and syrup and gunk up from the kitchen floor before the ants found it... Two of my Waterford wine glasses made it through intact. I never used them because I was afraid I'd chip them while handwashing them. We are using them everyday -- and sticking them in the dishwasher... I won't have to vacuum the blankety-blank pool again and there are so many things we won't have to dust. I figure I'll be able to have a really long Christmas list for years to come." [Bobbi Mendenhall, who lives near the epicenter] Xpress E-Mail Now Transfers MPE Files! Xpress is an electronic mail system that is so easy to use that you can start exchanging mail the first day without formal training. Xpress works on any HP 3000 hardware, and on all versions of MPE (including MPE/XL). Xpress has a streamlined design that keeps the load on your machine low, and still offers all the functions you need. With our major release of Version 2.6, you can now attach MPE files to your mail messages--send a program along with a message that tells how to run it! * This version of Xpress enables you to send MPE files to any Xpress user on any machine. Any Mail message may contain an MPE file. Typing the "Delete" keyword after an MPE filename causes Xpress to delete your file after loading it. The "Temp" keyword copies the MPE file to a temporary file. You can type some MPE commands at the Files prompt, but the Mail Manager can disable this feature, or the ability to send files, individually or for groups of users. * You can send messages to a PC file. * You can send messages to a Mail Room on a remote machine. * You have faster access to editing: pressing f3 twice edits a new Out Basket message. Re-editing the same message in the Out Basket no longer results in a duplicate file message. Edited messages are re-loaded more quickly. * Each Xpress user can configure the default number of days to keep Bring-Forward, Bulletin Board, or Filing Cabinet messages, and the default number of beeps on auto-:tell messages. * You can use the MPE session name as the Xpress user name. Deleting users or changing user names no longer require exclusive access to the mail database. * When writing the text of a message, Xpress accepts "//" to terminate the message. * Xpress user passwords are now encrypted. You will find a full description of all of this year's new features in our change notice. The change notice accompanies the update tape, which all Xpress owners covered by service receive automatically. The user manuals are always revised for our updates; you can print copies or use the complete on-line help. Technical Tips Wow! Look at That Disc Space. When we created the Native-Mode RL and XL files for our QeditAccess and Suprtool2 subroutines, we took all the MPE XL defaults. It wasn't until later that we did a LISTF of these files after they were RESTOREd onto our Classic 3000: ACCOUNT= ROBELLE GROUP= PUBNEW FILENAME CODE ------------LOGICAL RECORD----------- ----SPACE---- SIZE TYP EOF LIMIT R/B SECTORS X MX NMRL NMRL 128W FB 7275 2096999 1 65532 1 32 XL NMXL 128W FB 4900 2096999 1 65532 1 32 Yikes! The problem is the enormous LIMIT that MPE XL system files have -- they can get away with it because MPE XL allows unlimited disc extents per file, but MPE V must translate that back into 32 extents. We then went back to MPE XL and changed our commands that build the XL and RL files to use a lot less disc space: :linkedit buildrl nmrl;limit=10 addrl from=qaccess.obj addrl from=suprtool.obj buildxl xl;limit=10 addxl from=qaccess.obj addxl from=suprtool.obj exit :run mpex.pub.vesoft altfile xl+nmrl;flimit=5000 exit When we RESTORE the files onto MPE V, they look reasonable (and we save 393,216 sectors of disc space, since we had three copies of each file): ACCOUNT= ROBELLE GROUP= PUBNEW FILENAME CODE ------------LOGICAL RECORD----------- ----SPACE---- SIZE TYP EOF LIMIT R/B SECTORS X MX NMRL NMRL 128W FB 334 5000 1 626 1 8 XL NMXL 128W FB 453 5000 1 626 1 8 COBOPT from SF Swap Tape. Terry Smith reports that the SF swap tape has a neat program, COBOPT the COBOL optimizer, that analyzes source code and copylibs. It makes it easier for you to use the COPYLIB for code modules, because it can detect and remove unreferenced paragraphs. The result is a smaller code space, smaller program file, and easier segmentation on the Classic machines. Keith Smelser, the author, warns that although he detects indirect references to paragraphs and PERFORM THRU references, he does not detect "fall through" execution of paragraphs (since his shop never codes that way). Only drawback: it does not read Qedit files. How to Tell if You Are on MPE XL. A program can determine whether it is executing on MPE XL by calling the undocumented thiscpu integer function (there are no parameters). We don't know all the possible thiscpu values, but HP has assured us that the 16-bit return value is always greater than 15 for MPE XL machines. A batch job can determine whether it is executing on MPE XL by doing a SHOWCACHE command and checking for cierror 9103. !continue !showcache !if cierror=9103 then !tellop This must be MPE XL. !else !tellop This is MPE V (or MPE IV--gasp!). !endif Doing It Right--Electronic Mail in the 1990's by Marie Froese (excerpt from GNYUG presentation) We hear the talk, we see the ads; but what can electronic mail really do for you and your company? With so many new computing capabilities, is electronic mail an important productivity tool? How Robelle is Set Up for Electronic Mail At Robelle, every employee has at least one CRT, and everyone uses electronic mail. There are no secretaries or receptionists. In the morning one person takes all the phone messages off the answering machine and forwards them via electronic mail. When the phone rings during the day, we have a set order for telephone answering, and pass phone messages to each other using electronic mail. We use electronic mail as a productivity tool and in many other ways which I will explore later in this paper. We have ten full-time employees who are connected to the 3000 most of the time. Five "in-office" people have direct connect terminals, and the other five use dial-up lines. We have four programmers and a technical writer who work almost exclusively as remotes, with telephone lines and modems connecting them to the HP 3000 in the office. It is important to us in the office to have a fast and efficient way to communicate with the remote users, without having to pick up the telephone and interrupt them. Most of us also have dial-up capability from home so we can work in the evenings, or on weekends (!), if we are inspired. For example, I wrote most of this paper from home. While at home I can send mail messages to people at remote sites or in the office. If I'm working late at night, I can send messages and not have to worry about waking people up at 2 AM! Message from the In Basket of Marie Froese 2 KERRY LATHWELL 27 Jun89 13:03 Send QTEST tape Please send the latest pre-release to John Spruce. Send a message to Karnakb using Ref: 723 Hunt Tree Growers Attn: John Spruce 1425 Nursery Road Green Valley, Wisconsin 73102 cc: Techies - RMG MCS DJG KBR The electronic mail package that we use at Robelle is, naturally, our own, since it is one of the software products we sell. However, the experiences and ideas in this paper will apply just as well to any of the other HP 3000 mail products designed for in-house use. Why Our Employees Like Electronic Mail Kerry Lathwell, who works in the office, finds that with electronic mail she can send messages and documents to people in a legible form (that's important - you should see Kerry's writing) and keep a copy for her own records. Bob Green is our company president and one of our programmers. Bob works from a remote site most of the time. He finds that a work environment without interruptions allows him to get lots of programming done, while electronic mail allows him to resolve management and technical support problems in a timely fashion. David Greer is head of our R&D effort and he also works away from the office. David says that he likes electronic mail to capture ideas quickly and efficiently. He can write and send a message in a few seconds, while a phone call takes much longer. Working at home and phoning the people in the office to keep in touch could take a couple of hours a day. With electronic mail, David knows he accomplishes much more. Barbara Janicki is our technical writer, and one of the people who works from home. She says that without electronic mail she would feel lonely and cut-off from the rest of the office. Using Electronic Mail to Keep Customer Information Up-to-Date Kerry is responsible for all changes to customer records, including address, telephone number, contact name, and support status. When someone else in the office discovers that the customer database needs to be updated (such as a telephone call to a customer who has been bought by another company and changed its name), she reports it to Kerry through electronic mail. The information doesn't get lost, and Kerry can update the records at her convenience. Keeping the records in order is fundamental to the operation of Robelle. Message from the IN Basket of KERRY LATHWELL MIKE SHUMKO 18 APR89 15:31 New contact name Sam Snyder has left Boston Computer (serial #73). The new support contact is Margaret Thistle, Manager of MIS. She is at a different phone number, (217) 876-1234, but the address is the same. When Kerry takes a telephone message for one of the technical people, she uses our customer database and electronic mail to send the pertinent information to the techies as quickly as possible. The customer inquiry application generates an ASCII file for the selected customer, containing a capsule summary of his account. Kerry can then use this as the basis for an electronic message. Here is an example (the customized part is in italics): Date: FRI, APR 21, 1989, 7:43 AM Company: Telamon, Inc. Name: Ross Scroggs Phone: (415) 987-7700 Serial#: Z Product: LQ 3.7.1 Exp: 30SEP89 Cpus: 1 Upd: 26JAN89 Product: ST 3.1.1 Exp: 30SEP89 Cpus: 1 Upd: 13MAR89 Ref: NEW Caller: Randy Medd Phone: Randy has a problem with QEDIT and some kind of terminal emulator. His call was on the answering machine this morning. /kdl Mike Shumko is our technical support manager. If you have ever called our office for help, Mike is probably the person you talked to. All technical questions go to Mike initially, many of them via electronic mail. If Mike needs help after talking to a customer on the telephone, he can send a message to the other programmers. If any customer call waits in Mike's IN Basket for longer than one hour, Mike electronically forwards it to one of the programmers. [ This article will be continued in the next issue. ] About Robelle Merry Christmas. Included with this news memo you should find a cumulative index for all 1989 Robelle news memos. Qedit Visual Training for PC Users by Dave Lo, Robelle Are you used to PC editors ... ... and wondering how to get started with Qedit on the HP 3000? Dave Lo, Robelle's newest programmer, had to face this transition. Here is Dave's advice: Those of you familiar only with PC editing concepts may find text editing on the HP 3000 somewhat different from editing on a PC. You can use Qedit as a line editor. It's similar to MS-DOS's Edlin or Unix's Ed, but much more powerful. As with other line editors, you type in commands for manipulating the text (think of DOS or MPE commands). A few of the most common commands have been assigned to the function keys, such as Page Forward and Back, and Find. Qedit stores its files in a memory-efficient compressed mode. This means that, unless you have a special reason not to, you edit the actual disc file, not a copy of a file in memory. Your changes immediately update the actual disc file. Hence, there is no "exit without saving" feature. This is similar to editors that automatically save your work at regular intervals. If you shut a file using another name, the file is renamed, not copied. Still, you can work on a copy instead of on the original file, but you have to make the copy yourself, before you start to edit. Although Qedit edits only one file at a time, it saves the current state of the edit session when you switch to another file using Open and Shut. You can switch among your files instantly, just by typing Open and the filename (or * for the previous file). Qedit shuts your files automatically, and saves your position, putting you back on the same line when you re-open the file later. You can conveniently switch between several files and not lose your place in any of them. This feature is called "context saving" in some PC editors. The basic text unit for copying and moving is a line. In this, Qedit is unlike PC word processors, which are oriented to words as the basic unit. It is important to change your thinking, and become less dependent on copying or moving words. You can delete or replace words easily, however, with global changes. You can specify the range of lines for the "global" Change command. Qedit is also a full-screen editor, with abilities similar to those of PC screen-oriented editors and word processors. However, there are some important points to note about Qedit's full-screen editing (called Visual mode) versus screen-oriented text editors for the PC. When you are editing in Visual mode, you are really using the abilities of the terminal (or terminal program) to move the cursor, change the text, and insert and delete lines on the screen. Qedit is not active at this point. You bring Qedit to life each time you press Enter. Qedit then takes your changes on the current screen and applies them to the file. If you forget to update by pressing Enter, and move to another page or exit Visual mode, you lose the changes on the screen. However, you can configure Qedit to update your file with every function key, including Exit. The command to do this is Set Visual Update On. The price is reduced speed when you browse through the file. If your modem or terminal connected to the HP 3000 is slower than 9600 baud, you will find that text is displayed slower than you are used to on PC editors. If you tend to page back and forth in a file frequently, you should consider adopting new habits to reduce unnecessary movement in the file. Your terminal may have a memory that stores the last several hundred lines of display. Using the terminal's paging capabilities to browse will be faster for you, and demands less of the HP 3000's resources. Features in Qedit to make your transition from PC to HP 3000 easier: * Use Visual mode. If you are accustomed to screen-oriented editors, you will find Visual mode most comfortable for basic editing. Remember to press Enter to save the changes you make. * If you use Line mode, set the Modify command to use QZMODIFY. This provides "what you see is what you get" editing for individual lines. On some systems, however, QZMODIFY might be very slow or behave erratically. If this happens to you, check with your system administrator or system operator. * Browse text with the terminal's display memory. List a range of text with Qedit, then page up and down to read it. This is more economical for the system, and faster for you. Robelle Products: Problems, Solutions, and Suggestions Suprtool Version 3.1.1 Suspending Suprtool for Performance. If you wish to optimize your batch jobs, Suprtool can be suspended inside Qedit (or even MPEX) between tasks. Suprtool keeps the previously opened database open, and preserves DEFINES and TABLES. Here is an example that invokes Suprtool for three separate tasks which depend on the results of the previous task. The job uses the suprtooloutcount JCW to decide whether to perform the second and third tasks. Each time that we exit Suprtool, we are really suspending it, leaving the file pointer in the Suprtool sdtin at the next command! !job listcall, mgr.techsup !comment *** This job will create a list of all of the !comment *** telephone calls that I logged into our bug !comment *** tracking system which never exceeded one !comment *** block (512 bytes) of text. !run qedit.pub.robelle run SUPRTOOL.pub.robelle;hold;stdin=longjob.ken suprcmd.ken exit !eoj Contents of file LONGJOB.KEN: base kb.db.karnak, 5, mypasswd get m-call-hdr { Get all calls generated by me } if call-taker = "KEN ROBERTSON" output mytable,query exit { suspend SUPRTOOL! } { --- PART 2 --- } get d-call-text { mytable contains all of the calls that I made } table mytable, call-nbr, file, mytable { Get all call-nbrs where there are more than 1 block } if $lookup (mytable, call-nbr) and block-seq > 0 extract call-nbr output blocklist,query exit { suspend SUPRTOOL again } { --- PART 3 --- } get m-call-hdr { bloklist contains all calls with more than 1 block } table bloktabl, call-nbr, file, bloklist if NOT $lookup(bloktabl, call-nbr) extract company-name, caller-name, phone-nbr output entrylst exit { we are still suspending } Contents of file SUPRCMD.KEN: if suprtooloutcount > 0 then activate suprtool if suprtooloutcount > 0 then activate suprtool endif endif We use a command file (SUPRCMD.KEN), instead of embedded commands in the jobstream, so we can take advantage of the IF-ENDIF feature. If there are no records extracted from the previous step, we don't bother running the next. You can apply this method to check flags set in your database. For example, don't run the month-end jobstreams unless we find a flag set in one of the datasets! Or if a file has the correct number of records...or if the records in the file are current...or if... Xpress Version 2.6 The Xpress Experience. Everyone enjoys the Thrill of the Unexpected. One way to get your users excited about electronic mail is with our contributed Cookie program. Cookie is the answer to the smoldering question, "How can I get my HP 3000 to make me laugh?" Each time you run Cookie, it prints a presumably witty saying (a "fortune cookie") from a vast supply. ___________________________________________________________ The difference between art and science is ... science is what we understand well enough to explain to a computer. Art is everything else. [Donald Knuth] ___________________________________________________________ The sample batch job cookie.qlibjob.robelle, once streamed, sends a daily "fortune cookie" to everyone's Xpress In-Basket. The job re-streams itself for the following day. You need to modify the job with your user names, and create a new user to send the cookies (e.g., "the Cookie Monster"). Note: on fast systems, the job may have sufficient time to stream itself twice. To find out more about the Cookie program, see the Qlib manual or print a copy of the Cookie user manual (cookie.qlibdoc.robelle).