What's Up DOCumentation Robelle Consulting Ltd. Unit 201, 15399-102A Ave. Surrey, B.C. Canada V3R 7K1 Phone: (604) 582-1700 Fax: (604) 582-1799 Date: December 15, 1992 From: Robert M. Green, CEO David J. Greer, President Michael Shumko, Editor To: Users of Robelle Software Re: News of the HP 3000, 1992 #6 What You Will Find in This News Memo: News Tidbits Technical Tips Using the Remote Cierror Locally It Took 25 Years, but it was Worth the Wait About Robelle Calendar of Events Updating Records Using Suprtool Robelle Products: Problems, Solutions, and Suggestions News Tidbits IMAGE/SQL Upgrades. As of December 1st, HP has bundled SQL access into TurboImage/XL and changed the name to IMAGE/SQL. New systems will be shipped with IMAGE and the SQL relational database functionality for IMAGE. This is a major improvement to IMAGE, since it extends the life of the product indefinitely and allows users to learn about relational technology and implement it in an incremental, phased manner. HP now has a difficult decision to make regarding the existing installed base. One choice is to charge an upgrade fee for IMAGE/SQL. This could result in most MPE/iX systems not having it, therefore use of IMAGE/SQL would be stunted, and developers would tend to not take advantage of it. Or HP can increase support charges for IMAGE and provide IMAGE/SQL to everyone in the installed base. You will be receiving a ballot from SIGIMAGE asking which choice you prefer. HP will decide based on the results of this user vote, so we encourage you to examine carefully the amount of the proposed support increase and return your ballot to SIGIMAGE promptly. "HP's MPE Still a Contender." This headline appeared in the November 2, 1992 issue of Computerworld. Here are a few excerpts from the article. Many MPE users have no intention of migrating to Unix. With MPE well entrenched throughout their companies, they have no interest in going through the costs and headaches of conversions. Furthermore, users' intense loyalty to MPE has much to do with MPE simply being, in the minds of many users and analysts, a better operating system and one that is better optimized than HP/UX to the Precision Architecture-RISC chip that drives both the 3000 and the 9000. Analysts said HP will hit a crossover point this year when 9000 sales will outpace 3000 sales. Willem Roelandts, VP and GM of HP's Networked Systems Group, noted that the current split is about 50/50, but "in the last couple of months, there were more 3000s sold". A new release, 4.5, is due this month, which HP said will be 80% Posix-compliant. Roelandts said full compliance will come by mid 1993. Congratulations BCRUG. The local HP 3000 users group here in British Columbia has been recognized by Interex for their fine RUG newsletter. BCRUG won the Golden Scroll award in the Best Overall category. Aggravation by Computer. The Communications of the ACM has a regular section dealing with computer-related risks, often highlighting horror stories in life-critical applications. These are worth reading, but are too long to reprint in What's Up Doc. Here is one shorter story about the mundane ways in which computers and their handlers have aggravated people's lives. A Vancouver woman visiting Honolulu attempted to withdraw $1,100 from her home bank using an automated teller machine, which was controlled by a computer in New Jersey. The satellite delays combined with a flaw in the atomic transaction protocol resulted in her account being debited without her getting the money. On seeing her monthly statement, she accused her fiance of theft, and had him apprehended. It took another month to sort it all out. MotorMouse: Just in Time for Christmas! A Vancouver inventor has come up with an entirely new way of "driving" your PC cursor: the MotorMouse. There are two models: exact miniature replicas of the Lamborghini Countach and Chevrolet Corvette. Alex Morton says he got the idea when he realized that the hand motion involved in moving a mouse around the desk was one that he had been using since he was a kid playing with toy cars. "We want to put some fun back into computing," said Morton. MotorMouse comes with Cruise Control software for Windows, which allows you to change the standard arrow-shaped cursor to the car model of your choice. Not only is the image of the car driving around the screen realistic, but you finally can do something useful with the middle mouse button: sound the horn! The company plans to announce additional models in the near future. MotorMouse should be available from Egghead Software and Software Etc. Technical Tips Suspending Quick 6.09. Guy Smith from Circuit City Stores called to let us know about a program, QUICKFIX, that he contributed to Interex in New Orleans. This program resets the terminal to usable settings after Quick 6.09 is suspended. Its Interex library number is #3085. Stan Sieler from Allegro Consultants reminds us that if you get into Qedit from another program such as PowerHouse without specifying the Parm=32, you can still force Qedit to terminate instead of suspend by calling the MPE Terminate intrinsic. Stan notes that the same thing happens when Qedit is run from :Debug. You can call Terminate using Qedit's Proc command: /proc terminate Dbopen Clobbers Database. A user reports that after making a mistake in altering a group's security access rights, the next Dbopen attempted against a database in that group clobbered the root file. The security was set to permit write access but not read access. As soon as a program attempted to Dbopen that database the root file was erased, wiping out all access to the base. HP acknowledges that the bug exists in MPE/XL 3.0 and 3.1, and reports that the problem is fixed in MPE/iX 4.0. Using the Remote Cierror Locally by Ken Robertson When executing a batch job which logs on to a remote machine, you must occasionally check the results of a command executed on the remote machine. It's not as easy as it might sound. For example, we would expect this to work, but it doesn't: !remote rename xyzzy,xyzzy2 !if cierror <> 0 then ! alrtuser "system manager","unable to rename xyzzy" The above will not work, as the cierror jcw is set only on the remote machine and cannot be tested by the local machine. This also won't work: !remote if cierror <> 0 then ! alrtuser "system manager","hello again" The local command Alrtuser will be issued regardless of the results from the Remote If, as the local machine knows nothing of the if/then state that the remote machine is in. In order to use the remote cierror locally, you have to test it remotely, and somehow send the result back to the local machine. Here is a method that works for MPE/iX systems. First, set up a command file called Echocier on the remote machine to get the cierror into a file. This is done so that the I/O redirection can be handled by the command interpreter on the remote machine. parm tempfile echo setjcw cierror !cierror > !tempfile A second command file, executed locally, will replace any Remote commands. The command file is called Rem, and looks like this: anyparm remcmdline remote purge rtempci,temp purge ltempci,temp remote setjcw cierror 0 remote file rtempci;rec=-255,,f,ascii;disc=1;temp file rtempci;dev=sys2# {the node name goes here} file ltempci;rec=-255,,f,ascii;disc=1;temp remote !remcmdline remote echocier *rtempci print *rtempci>*ltempci ltempci {this temp command file sets the local cierror} Note that the remote node name must be specified in the command file. If the Rem command file is placed in your path, your job stream can simply look like this: !rem rename xyzzy,xyzzy2 !if cierror <> 0 then ! alrtuser "system manager","rename of xyzzy failed" If you have more than two machines, and don't want to hardcode the remote system name into the Rem command file, you could pass it as a parameter or variable. I leave that as an exercise to the reader. Note that this method depends on MPE/iX command I/O redirection, so will not work on MPE/V. See the Q & A Column in the May 1990 Interact magazine for a method by E.A. Kilroy that works on MPE/iX and MPE/V. It Took 25 Years, but it was Worth the Wait Bob Green of Robelle is a programmer by trade, but actually majored in Ancient Greek Philosophy at Stanford University. In spite of traveling all over Europe for 13 years, he never had the opportunity to visit Greece until this fall, when he was invited to Greece to present seminars for HP users on the art of improving HP 3000 software systems. Robelle recently appointed HP Consultants as its distributor in Greece. They will be selling and supporting the Qedit, Suprtool and Xpress software products for the HP 3000 computer system. HP Consultants was founded by Mr. Harry Chryssafis, an HP 3000 analyst and an experienced Qedit and Suprtool user. Harry, an expatriate Greek now living in Los Angeles, is supported by his brother Makis Chryssafis and Kletas Stochevitch, both experienced business people in Athens. They will also be distributing software tools from Tymlabs, Vesoft, Lund and Bradmark. Previously, the only HP 3000 tool actively marketed in Greece had been PowerHouse, through Scicom Co. SA. HP Consultants suggested that Bob visit Greece, located all the local HP 3000 users, and arranged seminar dates to the users' convenience. Bob reports that "The trip was a dream come true. I was finally in Greece, and as a philosopher (well, a computer philosopher). My hosts Makis and Kletas really took advantage of my three days in Athens. Because Greece has never had the users group meetings we take for granted in North America, HP Consultants approached the situation from a fresh perspective. They designed an innovative 3-hour seminar, promising something of value to every HP 3000 site, and limited it to 6 attendees. Then because so many companies wanted to send people, they asked me to repeat it six times. The intimate format allowed people to voice their personal concerns and really kept me on my toes. The meetings were among the best organized I have ever attended and the Greek HP users were a sharp and enthusiastic audience. One HP user, Mrs. Fotini Mezari from Argonaut Insurance Company, flew in from Salonika for the day. It was exciting to meet unexpected Robelle software users, many from divisions of multinational companies. Two engineers from the Hewlett-Packard Response Center wanted to know if the HP corporate license for Qedit and Suprtool applied to their department (it does)." The subjects covered in the three-hour seminars were improving software quality, improving batch speed, and improving on-line response times. The Greek audiences took advantage of the personalized format to ask penetrating questions. For example, Mr. Leonidas of Apollon Co. S.A. was skeptical that Bob's ideas could be used to improve the quality of his software, because his software is created by outside consultants. Bob admitted that Robelle's Step-By-Step incremental method is difficult to apply in this situation, but suggested "trying to switch from adversarial fixed-price contracts to flexible, long-term relationships, much as the automotive industry is trying with their parts suppliers." Mrs. Maria Bertsou of Glaxo/Greece wanted to know if long serial scans by the ASK/3000 report writer could be made faster by front-ending them with Robelle's Suprtool and Suprlink. Bob thought that the products could be linked together, since the creator of the ASK report writer is Ares, Robelle's distributor in France. Suprtool has an output option to create ASK select files (although they are limited to about 500,000 selected records), and ASKPLUS (the newer version of ASK) is able to read and interpret Robelle's self-describing extract files. One of the methods that Bob Green suggested for improving on-line response time was to minimize costly "setup" tasks and maximize the percentage of time spent doing actual transaction work. For example, the worst possible application would be one where security forced the user to log on to a separate account for each new transaction. Ninety-nine percent of the time would be spent on overhead. Mr. Green admits that the Greek visit was not entirely work: The hospitality of the Greek people was outstanding. Late each night we were treated to exquisite food at restaurants all over Athens. I thought I worked hard for the three days, but I was amazed at how hard the Greeks work all the time (many young people take private classes after school, seldom getting home before 10 p.m.). After the seminars, Makis and Kletas arranged a relaxing trip to the beautiful Greek island of Hydra for my wife Mary Ann and I. We would like to thank everyone for making our trip a delight. About Robelle About the Newsletter. The What's Up Doc newsletter is published six to eight times a year, with no fixed publication schedule. The newsletter is always eight pages long, so however long it takes to collect eight pages of articles determines when the next one will appear. One copy is sent to each customer on support for any of our products, and is addressed to the main contact at your site. Send comments and ideas for future articles to Mike Shumko, Editor, whose Internet address is mike_shumko%robelle@mcimail.com. We welcome user-written articles. Welcome Newest Techie. Robyn Rennie is a long-time user of Robelle products in Vancouver. A year ago she took a break from data processing to spend more time with her children. We were looking for a part-time tech support person, and felt badly about all her experience going to waste. It tooks six months, but we finally coaxed her back from her early retirement. Robyn does tech support two days a week at Robelle, and adds a much-needed female perspective to the techie group. Calendar of Events January 1993 * David Greer will be in Mexico City on January 25. He will present the Interex award-winning Pop Quiz on Software Quality and his classic How Messy is Your Database? David will also give introductory training on Qedit and Suprtool. Contact Antonio Castillo at Infosistemas Financieros for details, +52 5 255 0293. * Robelle's dealer in the UK, Clive Oldfield, will be exhibiting Robelle products at the HP World Birmingham '93 conference being held at the National Motorcycle Museum on January 28. Updating Records Using Suprtool by Paul Gobes There are times when you need to serially read a big dataset and update a few selected records. You could use Query to find and update the records, but it could be very slow. Suprtool is very fast at selecting the records, but Suprtool has no Update command. There is a way to update records which involves writing them to a disc file, deleting them from the dataset, then loading the adjusted disc file back into the dataset. Here is a safe 5-step approach to change all the PRODUCT-PRICE values to $25.00 for all records with PURCH-DATEs since July 1st, 1992. Step 1: Open the database for write access, then copy the desired records to a disc file. >base store,1,writer {open for write access} >get d-sales >if purch-date > 920701 {selection criteria} >output badfile {create disc file} >xeq Step 2: Delete the same records from the database. >get d-sales >if purch-date > 920701 {same criteria} >delete {delete records from dataset} >output $null {don't write them anywhere} >xeq Step 3: Read in the disc file and extract all the fields, assigning the updated value to the field you want changed. >input badfile {read the disc file} >form d-sales {list of field names} Database: STORE D-SALES Detail Set 5 Entry: Offset CUST-ACCOUNT Z8 1 (!M-CUSTOMER) DELIV-DATE J2 9 PRODUCT-NO Z8 13 (M-PRODUCT) PRODUCT-PRICE J2 21 PURCH-DATE J2 25 SALES-QTY J1 29 SALES-TAX J2 31 SALES-TOTAL J2 35 Capacity: 602 Entries: 450 Entry Length: 19 >extract cust-account \ product-no >extract product-price = 2500 {assign new value for price} >extract purch-date \ sales-total >output goodfile {create good disc file} >xeq Step 4: Read in the good disc file, equate it to the dataset, and list a couple of the records. This will prove that all the fields are correctly lined up and that the new value is $25.00. >input goodfile = d-sales {allows List to show fields} >numrecs 2 {limit to a couple of records} >list >xeq >IN GOODFILE.PAUL.TECHSUP (0) >OUT $NULL (0) CUST-ACCOUNT = 4003302 DELIV-DATE = 920720 PRODUCT-NO = 105391 PRODUCT-PRICE = 2500 PURCH-DATE = 920715 SALES-QTY = 3 SALES-TAX = 0 SALES-TOTAL = 7500 >IN GOODFILE.PAUL.TECHSUP (1) >OUT $NULL (1) CUST-ACCOUNT = 1 DELIV-DATE = 920821 PRODUCT-NO = 105391 PRODUCT-PRICE = 2500 PURCH-DATE = 920816 SALES-QTY = 4 SALES-TAX = 0 SALES-TOTAL = 10000 Step 5: Finally, read in the good disc file and add them back to the dataset. >input goodfile {read good disc file} >put d-sales {add records back to dataset} Put to Base: STORE >xeq >:purge goodfile {clean up} >:purge badfile For the brave-of-heart or terminally reckless: Steps 1 and 2 can be done in one pass but is not recommended. Suprtool deletes the records in its Input phase and creates the disc file in its Output phase. A system crash could leave you with deleted records and no backup file. Steps 3, 4 and 5 could also be combined into one step that ignores checking your work. Simply do the Put to the dataset in step 3 instead of creating the good workfile. Just make sure that you Extract all the fields. Robelle Products: Problems, Solutions, and Suggestions Qedit Version 4.0 Reflection Creates Qedit Files. Reflection has the ability to read and write Qedit-format files when transferring files between the PC and the HP 3000. Reflection's Receive command reads Qedit files without any special action on your part. The Send command creates regular fixed Ascii files by default, but can create Qedit files if you add the Q option to the host filename. For example, Alt-Y {to get command line} send readme.txt to xyzfile.source;q {create qedit file} Qzmodify on 9x7 Console. Kurt Sager, our distributor in Switzerland, reports that on the console of the Nova class computers (Series 9x7), the Modify command's Control-V line-split function doesn't work. Apparently the keystroke is used by the HP CE to activate a special test. The workaround is to reconfigure the line-split function to use a different keystroke. For example, /set modify (v ^z) {to use Control-Z} Suprtool Version 3.4 Suprtool Reading to EOF. Suprtool 3.4 is supposed to stop reading detail datasets when it gets to the highwater mark, unless Set Eofread is On. Suprtool 3.4 has a bug where it reads to the end of file of the detail dataset if there are any deleted records. The end results are correct, but the run times may be longer than expected, especially when the capacity (EOF) is significantly higher than the highwater mark. This is fixed in the Suprtool 3.4.4 pre-release. Suprtool Does Crosswords. James Wilkinson of the Department of Rehabilitative Services in Richmond, Virginia wrote a good article in the October 1992 issue of Interact, describing how he used Suprtool, Suprlink and the Spell dictionary to solve word scramble puzzles. His article got us thinking, "Why not use Suprtool for crossword puzzles?" For example, 37 Down, an eight-letter word meaning "most befuddled or dazed", the second letter is an "o" and the fourth letter is a "z". Hmmm.... >in main.spdata.robelle >define word,1,24,byte >if word == "?o?z????~" >extract word; output *; xeq gonzales gonzalez nozzling wooziest {Aha!} IN=83569, OUT=4, CPU-SEC=8. WALL-SEC=25. Main.Spdata.Robelle is the Spell program's main dictionary, with one word per record. The double equals-sign means to use pattern-matching instead of exact-matching. Each question mark represents one letter, and the tilde matches any number of spaces. While solving a crossword puzzle may not seem like the most useful task the HP 3000 could be doing, it does illustrate Suprtool's pattern-matching capabilities quite nicely. Xpress Version 2.9 Checking Your Xpress Mail at Logon Time. You can use Vesoft's Security/3000 product to check your mail automatically each time you logon. Xpress requires that a User Name and Password be entered when running Xpress for the first time in a session. Security/3000 can pass the user's "Real Name" from the Security/3000 user profile via the $LOGON-EXECUTE command to the Status or Xpress programs at run time. The steps involved in getting this to work are as follows: 1. Ensure that the Xpress User Name is exactly the same as the User's Real Name in the Security/3000 User Profile with leading and trailing double quotes. E.g., "Neil Armstrong/Mypass" 2. Add the appropriate $logon-execute command to the Securcon.Data file. The +NAME references the Users' Real Name in the user profile. $LOGON-EXECUTE "MPE('RUN STATUS.MAIL.ROBELLE;INFO='+NAME)" @,@.@ You can also issue the commands using a command file and pass the User's Real Name via a parameter. The advantage is that the command file can issue more than one command or run more than one program.