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 E-mail: support@robelle.com Date: December 16, 1994 From: Robert M. Green, CEO David J. Greer, President Paul Gobes, Editor To: Users of Robelle Software Re: News of the HP 3000 and HP-UX, 1994 #6 What You Will Find in This News Memo: News Tidbits International WWW Conference Book Review: The MOSAIC Handbook Technical Tips Robelle Products: Problems, Solutions, and Suggestions So Many Records, So Little Time: GET Versus CHAIN About Robelle News Tidbits Busted in Cyberspace. In its first case of targeting advertising on the "information superhighway," the Federal Trade Commission has charged a Sacramento, California man with making false claims in the course of promoting his credit-repair program on an on-line computer service. The FTC contends that Brian Corzine, doing business as Chase Consulting, promoted his $99 program on America Online. The program allegedly advises consumers to take illegal steps to repair their credit records, while claiming that the actions are "100 percent legal." At the FTC's request, a federal district court has ordered a temporary halt to the alleged deceptive promotion, and frozen Corzine's assets to preserve any funds for consumer redress. [FTC press release posted on COMP.RISKS news group] IMAGE/SQL to Handle Larger Datasets. HP is working on providing support in IMAGE/SQL for datasets larger than the current 4 gigabyte limit. Although not yet officially announced, the feature has inspired some design-related discussions on the Internet. This enhancement will be welcome news for those with enormous multi-million record databases, and those who need to retain data on-line for long periods of time. Pentium FDIV Bug. Intel has recently admitted that there is a bug in the division operation (FDIV) that may cause errors in the 4th to 19th significant digits. The company has been downplaying the problem which has really annoyed some researchers and engineers. The controversy has even been aired on CNN TV news. This has generated lots of discussion on the Internet but it has also spawned a whole new batch of "Pentium jokes". Here's one found on the HP3000-L discussion group. Top 10 Intel Slogans for the Pentium 9.9999973251 It's a FLAW, Dammit, Not a Bug 8.9999163362 It's Close Enough, We Say So 7.9999414610 Nearly 300 Correct Opcodes 6.9999831538 You Don't Need to Know What's Inside 5.9999835137 Redefining the PC -- and Mathematics As Well 4.9999999021 We Fixed It, Really 3.9998245917 Division Considered Harmful 2.9991523619 Why Do You Think They Call It *Floating* Point? 1.9999103517 We're Looking for a Few Good Flaws 0.9999999998 The Errata Inside International WWW Conference. A couple of weeks ago, I attended the Second International WWW Conference. I found the conference biased towards those with high-bandwidth connections to the Internet (for comparison, we currently have a 9600-baud connection) and to Mosaic users (I use Lynx a lot, since I'm often dialed in with Reflection over a modem). Since the conference was titled "Mosaic and the Web," I shouldn't have been surprised. You can access the conference proceedings at http://www.ncsa.uiuc.edu/SDG/IT94/Proceedings/ I found parts of all of the talks interesting, but I was especially interested in attending the ones about searching WWW. The most interesting one for me was a talk by Brian Pinkerton about his WebCrawler. This is a tool that attempts to access all WWW text pages, and indexes everything that appears in the anchor text. You can query this database with http://www.biotech.washington.edu/WebCrawler/WebQuery.html The search engine implements a keyword search of the database. One audience member asked about weighted searches (where one keyword is more important than another). Brian's answer: specify the most important keyword more than once (e.g., "chicken chicken poultry" to make "chicken" twice as important as "poultry"). The WebCrawler indexes about 50,000 documents from 9,000 servers. It takes approximately one day for the WebCrawler to visit WWW, access all documents, and create a new index. The WebCrawler currently operates on a 486 running NextStep. Brian said that the 486 cannot handle the load of 6,000 queries a day that it receives and he will be upgrading to an HP workstation. At Robelle, we've played around a bit with WebCrawler and have found it to be pretty good at locating information. You may find that creative thought is required in the case of some keywords. Look for "MPE" and you end up with "Max Plank Institute for Extraterrestrial Physics." [David Greer] Logon UDCs and Parm=-1. Some HP 3000 security packages rely on a system-wide logon UDC to protect the computer. Logon UDCs can be ignored if the user logs on with Parm=-1, which can potentially be a BIG security hole unless you have a patch from HP. A new feature on MPE/iX 5.0 allows you to choose whether or not you can enforce logon UDCs by disabling the Parm=-1 option even for users with SM capability. You can turn this feature on in the Sysgen Misc section by doing the following: :sysgen sysgen> misc misc> system enforcelogonudcs=ON misc> show system misc> exit sysgen> exit The change does not take effect until the system is restarted with START NORECOVERY. Nice new feature. [Neil Armstrong] Book Review: The MOSAIC Handbook by Paul Gobes The Mosaic Handbook by Dougherty, Koman and Ferguson, O'Reilly and Assoc., 1994. ISBN 1-56592-095-3 The easiest way to navigate the Internet is through the World Wide Web (WWW); the best browser for the WWW is Mosaic; and the best publisher of UNIX and Internet books is O'Reilly: you can't really go wrong with this book. This handbook is designed for anyone who uses (or wants to use) Mosaic and comes complete with the software on CD. I didn't actually install the CD but the installation instructions seem quite easy to follow. This review is about the X Windows version but there are also versions for MS Windows and the Macintosh. The book starts with all the basics of the Internet and the WWW, and then shows how to use the Mosaic program. There are lots of easy-to-understand pictures and examples. There are even pictures of "Best of the Net" home pages from around the world, along with a file of these "hotlist" addresses on the accompanying CD. What I liked was the simple way the book teaches the Hypertext Markup Language (HTML) by setting up a sample "Marx Brothers" home page. HTML is used by WWW to define documents with links to data both on your machine and other machines on the Internet. Hints from the handbook: To change the default Print command from lpr to lp -o2 or to defer the printing of images (a good idea if you only have a 9600-baud connection), you would need to create a file called /usr/lib/X11/app-defaults/Mosaic and add these lines: Mosaic*delayImageLoads: True Mosaic*printCommand: lp -o2 If you want to see bigger graphics such as some of the art gallery home pages, you need to define an "external viewer" (xv). Create the file /usr/local/lib/mosaic/mailcap and add the line: image/*; /usr/bin/X11/imageview %s Mosaic is doing for the Internet what MS Windows did for DOS: it's making the Internet colorfully graphical and easy to use for the average person. That is Mosaic's strength and the reason for its amazing growth. Soon I'm sure we will see it directly bundled into PCs. If you want to learn more, this is the handbook for you. Technical Tips Making Spoolfiles Accessible. If you want anyone on your system to be able to read a spoolfile created by a certain user (e.g., with SM capability), try using the following ALTSEC command: ALTSEC Onnnnnn.OUT.HPSPOOL;NEWACD=(R,L:@.@) Onnnnnn is the spoolfile ID. This adds an ACD to the file that allows everyone to access it. [John Dunlop of J.P. Morgan] Which HP-UX Program Am I Running? If a program exists in various directories and your PATH environment variable is complicated, it is handy to know exactly from which directory the program will run. This is how the "Which" command can help you. $which qedit /usr/local/bin/qedit How to FTP Files Between MPE and HP-UX. We currently use DSCOPY to move files between our HP-UX and MPE machines. This will soon change since DSCOPY is being discontinued on HP-UX. The solution is to buy FTP for your MPE machines. Here are two examples: run ftp.arpa.sys ftp>open ftp.robelle.com {our HP9000} Name(mgr): anonymous Password: my_email@company.com ftp>dir {list files} ftp>cd papers ftp>get popquiz.txt popquiz {from UNIX to MPE} ftp>cd pub ftp>put myfile user-bug {from MPE to UNIX} ftp>quit Basically, you establish a connection with the OPEN command, which prompts you for a valid user and password. You then change to the appropriate directory and either GET or PUT a file. The examples above are of simple text files. To transfer programs, you would need to add a Binary command and also add needed "buildparms". For example, ftp>binary ftp>get programfile newprog;CODE=PROG;REC=128,,F,BINARY Those New Ergonomic Keyboards. If you have ever experienced discomfort in your hands and wrists while typing, or if you just like impressing your techno-friends, you may want to try Microsoft's Natural Keyboard. The keyboard allows your hands and wrists to sit in a more natural and relaxed position while typing, which helps prevent the painful Carpal Tunnel Syndrome. The keys are divided into two sections and are spaced slightly farther apart than usual. It takes a couple of days to get used to it but now I wouldn't want to go back to a regular keyboard. This keyboard is available for about $100.00 US. [Jennifer Mollan] Robelle Products: Problems, Solutions, and Suggestions Windows Help Files. We have recently been converting our "Prose-format" help files into the Windows Help format. This is pretty exciting as it now allows the use of the Windows keyword "Search" facility. The Suprtool help files are already available and we are looking for people who are interested in trying out this new feature and providing us with feedback. See the Robelle address block on the front page for the four different ways to contact us. Qedit Version 4.2 Compilers on MPE/iX 5.0. Each time there is a new PUSH release, both Robelle and the HP Response Center get calls about compilers no longer handling Qedit files correctly. Because of the new SYS account that comes with each MPE OS update, you must re-Qedify your compilers. Here are the jobs to fix your native-mode compilers: :stream savecmdf.qeditjob.robelle :stream qcompxl.qeditjob.robelle For compatibility-mode compilers, check to see if you use the compilers from the SYS account or those in the ROBELLE account. If the Whichcomp setting ends with "In SYS," you need to stream the following job: /verify whichcomp Set WHichcomp Cobol 85 Pascal V Fortran 66 In SYS /:stream qeditj1.qeditjob.robelle Hints from a Non-Techie. The following ideas come from Kerry Lathwell, our office manager. Whenever Kerry wants a quick answer to the question "how did I do that last time?", she browses her file called "Howto." It contains everything from office policies, and taxation rules to Qedit tasks. Each entry starts with "HOW TO - ..." so she can do a string search for "how to" and get an index of all the topics. Some sample entries: HOW TO - LIST TO THE PRINTER WITH PAGE BREAKS BUT NO HEADINGS /set list page on name off num off title off /list all lp HOW TO - DISABLE THE PHONE (i.e., for changing labels) Press Feature * 0 HOW TO - USE CHANGE COMMAND FOR STRINGS & COLUMNS /change "*" (1/1) "!" "92" (12/18) This means change "*" if found in column 1, to "!", where the string "92" appears anywhere in columns 12 to 18. HOW TO - DO STRING SEARCHING & PATTERN MATCHING /list "@? ST@" (pat noups) This means look for a letter, followed by two spaces, followed by ST. The "@" signs mean that this pattern can appear anywhere in the line. "No upshift" counteracts the setting from her Qeditmgr file. Tabbing to the Next Word. In Qedit Visual mode with Reflection for Windows, you can use the Ctrl Left Arrow and Ctrl Right Arrow to move to the beginning of the next or previous word on the screen. This is in keeping with most Windows word processors. Windows Copy-and-Paste. If there is some text on your screen that you'd like to add to a file, use Windows Copy-and-Paste. Select the block of data using your mouse. Press Ctrl+Insert to save the selection. Then run Qedit and use the AddQ command at the desired line number. Press Shift+Insert to "paste" in your data. Press Enter (and Return), then "//" to terminate the Add command. Note that the Insert key mentioned above is the one on the cursor pad next to the "Home" key, not the one on the numeric keypad. Suprtool Version 3.6 So Many Records, So Little Time: GET Versus CHAIN by Mike Shumko There are two commands in Suprtool for reading records from datasets: Get and Chain. The Get command reads your entire dataset serially at high speed, selecting records based on the criteria in your If command. The Chain command uses regular IMAGE intrinsics to read records based on the IMAGE key values. You can also use the If command to specify selection criteria on non-key fields. If you wanted to select records based on key values, it would seem that the Chain command would be the obvious choice. But it's not necessarily the right choice: the Get command may be more efficient. How do you decide which command to use? Let's look at an example, first using the Chain command, then the Get command. Suppose we have a detail dataset, Ord-line, with 2.3 million records. Each record is 308 bytes. We have a file called Ordfile which has the 162,000 Ord-nums that we want to select from Ord-line. There are sometimes more than one record per Ord-num; in this case the 162,000 Ord-nums will select 261,000 Ord-line records. We want the selected records sorted by Ord-num. Using the Chain command we have the following task: chain ord-line,ord-num=my-table table my-table,ord-num,file,ordfile output myfile xeq Using the Get command we have the following sequence of commands: get ord-line table my-table,ord-num,file,ordfile if $lookup(my-table,ord-num) sort ord-num output myfile xeq Which will be faster? The Chain method will use 162,000 disc reads for Dbfinds, and 261,000 reads for Dbgets, resulting in a total of 423,000 disc reads. Because Suprtool maintains the Ord-nums in the table in sorted sequence, and the Chain command reads the records in the table sequence, there is no need to sort the records. They will be retrieved in the desired order. The Get command reads many contiguous records with each disc access. Each Get reads 50,000 bytes, so Suprtool will read 162 records with each disc read. At 162 records per read, the entire 2.3 million record dataset will be read using only 14,197 disc reads. Compared to Chain's 423,000 disc reads, that's a saving of 98.7 percent of the I/O. It's true that using the Get method you must sort the records, but adding the sort still results in a major saving over the Chain method. With the Ord-line dataset, the Get command will always take 14,197 reads, regardless of the number of records selected. However, the performance of Chain will depend on the number of Ord-nums and records selected. If there are few enough records to be selected, Chain will be faster. So, while it may be more intuitive to do a chained read when you have index values of the required records, it is often more efficient to read the whole dataset sequentially and simply not select the unwanted records. When in doubt, use the GET command to read the dataset sequentially, with Set Statistics On. If the "Input FREAD calls" returned is less than the number of records selected, Get will be faster than Chain. PowerHouse Subfile Tip. The usual method for front-ending a QUIZ report with Suprtool involves using QUIZ to create a subfile, populating it with records using Suprtool, then reading the subfile with QUIZ to make the report. However, it is possible to skip the first of these three steps. There is an undocumented (and thus unsupported) feature in QUIZ: the structure of the input record is included in the "compiled" QUIZ code. When the compiled QUIZ program is executed, QUIZ checks that the record length of the input file is correct, but no longer requires that file to be a valid PowerHouse subfile with a mini-dictionary. Therefore, once the program has been compiled, it is possible for it to read regular output files created by Suprtool. Just make sure that the data layout is identical to the original subfile and that the file code is zero. Code "SD" will result in an error. [Hans Hendriks] Using Suprtool to Report Missing Records. Let's say you have your customer data in a dataset called Customers, and customer addresses in a separate dataset called Addresses. You may need to check which customers have no address record. The QUIZ report would probably look something like this: >access Customers link to Addresses optional >select if not record Addresses exists >...... This would read the Customers file, and for EVERY record do one or more indexed reads of the Addresses file. It would select only the Customer records that do not have Address records, and then report them. There is a faster way, as those who have just read the article "Get Versus Chain" now know. First, create a sorted flat file from the Addresses set: base sales,5,readpass get addresses ext customer-no out addrfile xeq Then, read all the customer records and list any that are not in the address table to a simple report. get customers table addr-tabl,customer-no,file,addrfile if not $lookup(addr-tabl,customer-no) ext customer-no,customer-name sort customer-no list standard title "Customers without Addresses" xeq This method involves two passes, but because of Suprtool's efficient reads, it is generally much faster than regular programs. About Robelle More Wedding Bells. Robelle programmer, Dave Lo, was married in late November, and is currently honeymooning in Hong Kong. Best wishes, Dave and Florence! Customer Surveys. A big thank you to the nearly 25 percent of our North American customers who responded to our survey (10 percent is considered good.) Your opinions on what is important definitely affect how we commit our resources. One of the more interesting areas was the "annoying restrictions" sections; this generated lots of reports of "bugs" which we hope to eliminate. We are tabulating the results and should be publishing them soon. International customers will be getting their surveys any day now. Reader Comment Sheets. Documentation was one area that the survey showed could use some improvement. Now, on the last page of each manual, we include a sheet asking for your comments. If you see something that is unclear or you'd like to share an idea, please let us know. Technical Support Hours. Another area that the survey highlighted was the availability of tech support. We are located on the west coast of Canada and our office is open from 7 a.m. to 4 p.m., Pacific time. After hours, an answering service records messages that we return at the start of the next business day. For urgent problems the answering service will contact a techie who should get back to you within 30 minutes. No More MCI Mail. In some of our older manuals, we listed our e-mail address as "support%robelle@mcimail.com". Now that we have a direct Internet connection, we will be closing our account with MCI Mail. As of December 31, 1994, please make sure that your electronic mail is addressed to "support@robelle.com" or "info@robelle.com". Pre-Release Expiring? Distribution versions of our software are non-expiring, but pre-release versions are always patched to expire in two years. An impending warning message is displayed during the last 30 days before the expiration date. Check the banner that is printed when you first run the program, to determine if you have a pre-release version. Unlike distribution version numbers (e.g., 3.6 or 4.2), pre-releases have a third set of numbers. If you have Suprtool 3.4.05 or Qedit 4.1.10 for example, you may want to update to the latest fully supported distribution version.