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.