Columns


On The Networks

It Was Summer Vacation

Sydney S. Weinstein


Sydney S. Weinstein, CDP, CCP is a consultant, columnist, author and president of Datacomp Systems, Inc., a consulting and contract programming firm specializing in databases, data presentation and windowing, transaction processing, networking, testing and test suites and device management for UNIX and MS-DOS. He can be contacted care of Datacomp Systems, Inc., 3837 Byron Road, Huntingdon Valley, PA 19006-2320 or via electronic mail on the Internet/Usenet mailbox syd@DSI.COM (dsinc!syd for those that cannot do Internet addressing).

Although it's almost the New Year Holidays by the time you read this, it's obviously summer vacation on the networks right now. Things have been extremely quiet. So much so that cries of, "Where is Rich Salz?" have started to surface once again. I suspect he is also on vacation. For those who are new, Rich Salz is the moderator (editor) of the USENET network news group comp.sources.unix. Since my last column in October, there has only been one item posted to that news group, and it was just the end of the last set of postings. Some people have recently discussed whether it's time for a new moderator for that group. Perhaps when school restarts, there will be more useful items to post and Rich will have time to work on his queue. (Not that Rich is in school.) Until then, here is the one new item:

Ever have a problem with pointers overwriting the end of a structure? Hard to find, aren't they? Then you need Volume 22, Issue 112 and 113, debug_malloc, by Conor P. Cahill <virtech!cpcahil>. It is a collection of routines that replace the malloc(3), memory(3), string(3), and bstring(3) library functions. They fill all mollaced areas with non-null bytes. free does validity checks on the argument, the memory block being freed, and memory beyond the end of the block. Thus it can check for problems occurring by writing before or past the memory block. The string and memory routines also check their parameters for overwriting beyond the end also. The action to take on error is selectable at runtime.

There was much new in comp.sources.misc, as Brandon Allbery, its moderator, has been posting things regularly. One of the more interesting benefits of attending a USENIX conference is having your "face saved." A database of scanned images of peoples' faces is kept on uunet from this collection and from others submitted for the database. At the conference, your face image is printed on labels to use on business cards. But it also has other uses outside of the conference. One of these is the faces program. Version 1.4 was recently contributed by Rich Burridge <richb@Aus. Sun. COM> for Volume 13, Issues 70-76, with a patch in Issue 108. The faces program is used to visually monitor a list. Typically, this is a list of incoming mail messages, jobs in the print queue, or users on a system. It displays the picture of the person identified in the item. So instead of seeing, "You have mail from Syd," you would see a picture of me along with my name at the bottom showing that you have mail. In the past, the face image, a small bitmap, had to be stored locally on the machine, which meant that faces had to be uploaded from uunet periodically. This new version supports placing the face image in compressed format on the mail header line X-Face: (plus continuation lines). This allows for displaying images that are not currently in the database. It also has an option to update the local faces database with this new image. Rich is looking for volunteers to further develop the faces program and has also included a to.do file.

FM, a binary file editor, has been through a major rewrite to increase its portability. This new version, 2.0, was contributed by D. Jason Penney <servio!penneyj> for Volume 13, Issue 77. It now supports BSD derived machines, as well as System V type and MS-DOS PCs. It uses curses to display the contents of the file in pages of ASCII and hex. The file can be edited in either mode, and the changes written back. It also supports limited simple string searching.

For those using C++, genman 2.0 from Bob Mastors <epochsys!bby> will produce a UNIX format manual page for a C++ class from its include file. Output is either troff man type input data or plain ASCII text. It is in Volume 13, Issue 78.

For those that cannot follow the output of the process status command of UNIX, in Volume 13, Issue 98, Arndt Jonasson <arndt@zyx. ZYX. SE> has published tps, a post processor to ps output. It runs ps and converts its output into a tree format. This highlights the parent-child process hierarchy.

The June 1990 issue of the Communications of the ACM presents an alternative to balanced trees. "Skip lists" are efficient and easy to deal with. The author of the article, Bill Pugh <pugh@cs.umd.edu> has contributed a C implementation of skip lists for Volume 13, Issue 107.

A long-awaited program has been 1j2ps, a converter of Laserjet PCL4 output into PostScript. This version, 1.2, is able to convert only a subset of PCL4 that includes page motion, page setup, primary font selection, and text. It cannot do macros, position stack commands, graphics, or downloadable fonts. However, the scanner does recognize all the PCL4 commands and has hooks for all the missing features. Chris Lishka <lishka@uwslh.slh.wisc.edu> contributed it as Volume 13, Issues 109-121. The author is happy to hear from others wishing to add more of the missing features.

U386MON, also has gone through a major update. Warren Tucker <n4hgf!wht> contributed Version 2.20. U386MON is a performance monitor for SVR3 type UNIXs. It reads information out of the in-core kernel tables via the kmem utility objects. It can show the process table, memory utilization, and system call information. CPU utilization is shown with a smoothing of one, five, and 10 seconds. Color and 43 line screens are used if available. Xenix and BSD type systems use a very different kernel, so this monitor will not work on those. It does work for SCO and ISC UNIX, however, as well as many 68K UNIX's and Tandem's Integrity S2. It can be a useful tool for tuning the system, and for determining why a mix of processes is slow. U386MON is Volume 14, Issues 54-59.

An enhanced make-like utility, dmake version 3.5, has been released by Dennis Vadura <dvarudra@watdragon.waterloo.edu> in Volume 14, Issues 11-31, patch 1 Volume 14, Issues 46-49. dmake is different from other makes because it supports significantly enhanced macro facilities, enhanced inference algorithms, file system traversal both during inference and during the make, parallel makes on those architectures that support it, attributed targets, and text diversions. It is portable to both UNIX and DOS and includes support for command.com and the MKS korn shell under DOS.

PAC has been officially released. David Fiedler reviewed the release in the December 1989 issue in The C Users Journal, as a submission in alt.sources. The official release is now in comp.sources.misc as Volume 14, Issues 39-43.

Several Favorites Are Updated

Since games from the net keep changing, they are kept fresh and challenging. Several favorites have gone through upgrades this time in comp.sources.games. NetHack3, the display-oriented dungeons and dragons game, was updated to patch 8. Support for more ports has been added, including updates for MS-DOS, Amiga, and the Mac. This is mostly a bug fix release. Patch 8 is Volume 10, Issues 19-42 from Izchak Miller <izchak@linc.cis.upenn.edu>. However, it was quickly followed by a complete post of the source at patch level 9. This was in 56 parts, no less. It made up Volume 10, Issues 46-101. It appears that nothing is really new in patch 9 except for some bug fixes to patch 8, but for those who always ask, "Where is the original?" here is a complete posting. At 56 parts, it is over 3Mb.

The other update was to one of the more popular multi-user games, Galactic Bloodshead, which was reviewed in the last column. This patch takes the server to version 2.2.2 and the client to 1.3.1. It is patch 2, but don't worry. Patch 1 was already in the full posting reviewed last time. Garrett Warren van C1eef <vancleef@Pooh.caltech.edu> submitted gb3/patch2 as Volume 11, Issues 39-47.

James Aspnes <asp@cs.cmu.edu> contributed Tinymud2 and Tinyclients. This is a user extensible multi-user adventure game. The server, or main program, is Tinymud2. The clients are one for emacs, one for curses under UNIX, and one for VMS. It does require BSD sockets, so MS-DOS users are probably out of luck. However, it allows several players dispersed on machines throughout the network. Tinymud2 is Volume 11, Issues 5-14. The clients, Tinyclients, are Volume 11, Issues 15-17.

Craps lovers have a new full-screen, casino-style craps game based on curses to tinker with. Contributed by Robert Steven Glickstein <bobg+@andrew.-cmu.edu>, it is a full implementation of professional casino-style craps. It is a one dollar table and supports both single and double free odds. It provides online help for both betting and for play. Vcraps is Volume 11, Issues 34 and 35, with patches in Issues 36-38.

Previews From alt.sources

For those doing network-wide backups, a program to speed up writes to tapes on remote systems was posted by Lee McLoughlin <lmjm@doc.ic.ac.uk> on July 19, 1990. It uses a shared-memory buffer to block the input and a second process to write the blocked data to the tape drive. It reads from standard-input and writes to standard-output.

Those using multiple terminal types on a system might benefit from David J. MacKenzie's <djm@eng.umd.edu> query terminal type program. It sends a couple of short strings to the terminal and tries to determine the terminal type from the response. It uses the ANSI response codes and answerback to try and determine the terminal type, allowing for a default if the terminal is not recognized.

Another vi clone, elvis version 1.3, was posted by Steve Kirkendall <kirkenda@eecs.cs.pdx.edu>. Like vi, elvis edits the file using temp files to allow for editing a file larger than available RAM. It supports most of the vi commands both in vi and ex mode. elvis has been ported to BSD, System V, Minix, MS-DOS, and Atari TOS. It was posted in six parts on August 24, 1990.

In a return to a program I have not seen since my days using BASIC, Mark Baranowski has posted a set of routines to allow arithmetic on arbitrarily long integers (bignums). He also provides routines for converting ASCII to bignums and bignums to ASCII as well as comparing two bignums. It was posted on August 21, 1990.