Columns


On the Networks

Flip/Flop

Sydney S. Weinstein


Sydney S. Weinstein, CDP, CCP is a consultant, columnist, lecturer, author, professor, 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).

Well, last column's news is reversed this time. Once again, and with no explanation, comp.sources.unix seems to have gone quiet, and comp. sources.x picked up just as I started writing this column. Who knows why these things happen, but I vote for the moderators running out of spare time. I know I have lately. Before comp.sources.unix went quiet again, two postings were made in the final flurry that came after the previous column's deadline.

First, dup, a utility for SCO Xenix, adds a special device driver to handle the dup system call from an open. Thus you can pass /dev/fd/0 to pass in the current unit 0 to a process. David J. Fiander <xenitec!golem!davidf> contributed dup for Volume 26, Issue 87.

Second, a set of two utilities, called faucet, extends the pipe concept over a network. faucet provides a sink to catch its input and send it over the network to a source on the remote machine, which then continues the pipeline. Robert Forsman <thoth@raybans.cis.ufl.edu> contributed faucet for Volume 26, Issue 86.

Too Many Files

Programmers create many more files than they can possibly remember. You can easily forget the location of a file in the numerous subdirectories of a modern system. And the file names, while once meaningful, can become more and more cryptic as memories fade. Well, you cannot do much about losing track of the file itself, but while searching the disk for the files, perhaps describe, posted by Tim Cook <tim@deakin.edu.au> as Volume 35, Issues 12-14 of comp.sources.misc, can help.

To each directory, describe adds a database of file descriptions, placing the database in the dbm indexed file .desc. (With dbm this means you have .desc.pag and .desc.dir.) Each entry in the database is indexed by name and inode number (to allow for finding it after a file rename). Then the describe package adds a few utilities: dl — a replacement for the ls command, describe — to set or list the descriptive comment for a file, and patches — to support the descriptions directly with the common commands mv, compress, and ftpd.

Highlights from the remaining postings in comp.sources.misc this time include:

With the need to wrap text from within an editor, and the Berkeley tool fmt not always available, Chad R. Larson <chad@anasazi.com> contributed fill for Volume 35, Issue 3. fill provides optional left and right justification, centering, paragraph indention or hanging indention, and boxed paragraphs. To use it from within an editor, you must be able to pipe a text object.

If you are not running in Suns and don't have access to the OpenLook Ftptool, consider ncftp from Mike Gleason <mgleason@cse.unl.edu>, posted as Volume 35, Issues 4-7. ncftp, a tool to automate ftp transfers and make them more convenient, handles automatic anonymous logins, use of your pager to view files and directory listings, wildcard support for get and put, and multi-site access in the same session. It even has a command-line interface to allow for noninteractive use.

Angus Duggan <ajcdC@dcs.ed.ac.uk> has updated his psutils package to version 1.7 for Volume 35, Issues 8-11. This set of programs rearranges the pages of a PostScript file for printing or display, makes signatures, extracts pages or ranges of pages, prints multiple pages on a single page, and fits an encapsulated file within a given bounding box. It also contains utilities to add the proper Adobe Postscript Convention headers to Frame, WordPerfect, Microsoft Word, and Macintosh documents so they can be manipulated with the utilities in this package. Patch 1 was posted as Volume 35, Issue 110, to fix some bugs and better handle scaling for American Letter paper size.

Stephen R. van den Berg's <berg@pool.informatik.rwthaachen.de>procmail was re-released at version 2.80 in Volume 35, Issues 21-32. procmail is a mail agent that sorts and processes incoming mail automatically. The most visible changes include full biff/comsat support, mailboxes in the home directories, better mailing list support, and numerous other enhancements.

A new BBS package for UNIX, ix/MBox, was contributed as mbox for Volume 35, Issues 36-50 by Volker Schuermann <Volker.Schuermann@unnet.w.open.de>. This BBS uses the underlying UUCP, MAIL, and NEWS transport software to move its files, but it provides: A News reader (or you can use your own UNIX newsreader), an internal mailer for intra-bbs mail, a hook to UNIX MTAs for intersystem mail, variable and configurable command set, user-defined commands, international support. The package uses SX/SZ/SB and RX/RZ/RB for upload/download protocols, supports its own line editor and can use full-screen editors, includes a full-screen MIME RTF editor, and much more.

An updated release, and transfer of control, of the UNIX shell contains zsh was contributed for Volume 35, Issues 51-72 by The Zsh Mailing List <zsh-list@cs.uow.edu.au>.zsh is a shell designed for interactive use and based on bash, ksh, and tcsh. It also has a strong scripting language. This release, version 2.3.1, includes bug fixes, improvements in the vi line-editing mode, improved portability, RFS support, ksh compatibility mode, nested variables, array slices, and much more (the list goes on for about 100 lines).

S. Manoharan <sam@dcs.ed.ac.uk> contributed a C++ class for parsing command-line options as getlongopt for Volume 35, Issue 75. It supports long names and environment variables, but does not currently support abbreviations.

The speed of the decompress side of freeze/melt caused a reposting of a complete 2.5 release by Leonid A. Broukhis <leo@ipmce.su> for Volume 35, Issues 77-79. This supersedes the patches against version 2.4 that also appeared recently. freeze/melt is a file compression/decompression system.

Hugh F. Mahon <hugh@nsmdserv.cnd.hp.com> contributed ee, a simple to learn editor for e-mail and such. Easy Edit's goal was to provide an editor that needed no instruction to learn to use. Although based on System V, it should work on other platforms if they have the appropriate curses support. It also supports X/Open localization for international character sets (single octet only). It was posted in Volume 35, Issues 80-84.

Philip D. Howard <pdh@netcom. com> contributed a function library, bitio, that implements a bit stream on top of a byte stream (eight bits per byte). This bit stream is designed to be exchangeable between different platforms and retain the same bit order regardless of the endianness of the platforms. It includes macros and functions for writing from 1 through 32 bits per call and a complete test suite. It was posted as Volume 35, Issues 105-107.

Wietse Venema <wietse@wzv.win.tue.nl> updated the tcp wrapper program log_tcp, adding access protections. Contributed for Volume 36, Issues 4-6, tcp allows sites directly on the Internet, such as dsi.com, to control who accesses which services on our systems. New since the prior version are better protection against spoofed network addresses, extensions to the access control language, and portability changes.

Patches

On the patch front, the calendar/reminder program remind from David F. Skoll <dfs@doe.carleton.ca> had three patches posted. Patch 2 in Volume 35, Issues 18-20 added support for non-English languages and generally internationalized the code, added ISO encoding to the PostScript output, and allows for more flexible formatting of calendars. Patch 3 in Volume 35, Issue 73 fixes a bug in the RUNOFF command and some problems with the ISO PostScript output. Patch 4 in Volume 36, Issues 1-3 allows for reminders to be sorted in the normal mode of operation, additional languages, and a new SCANFROM clause to make "safe movable OMITs" possible.

Raphael Manfredi <ram@eiffel.com> posted patches to mailagent, a competitor of procmail. Patch set 17-19, posted as Volume 35, Issues 33-35, contains many bug fixes and enhancements, including better bogus address recognition, auto reply based on keyword rules, NOTIFY (a utility that accepts a list of addresses), security enhancements, and enhanced support for the From: line.

A rather large patch to the xvi editor was posted by John Downey <jmd@cyclone.bt.co.uk> in Volume 35, Issues 98-104. Patch 1 fixed xterm/vt100 updating, XENIX and System V compile problems, and removed the fixed limit on line lengths in input files. In addition, several other bugs were fixed. The patch takes version 2.15 to version 2.19.

Tony Field <tony@ajfcal.cuc.ab.ca> submitted patch 4 to his psf3 package for Volume 35, Issue 109. This patch to his PostScript print filter system corrects problems with ctl-D processing and some of the usage of the ISO-LATIN encoding.

A small patch was made to James Clark's <jjc@jclark.com>lprps PostScript print filter for the lpr print spooler. This change, patch 2, makes lprps ignore a leading ctl-D in the input stream such as that produced by the Microsoft Windows print driver.

X Is Back

As I said, all of a sudden, comp.sources.x has started flowing again, so here are some highlights, mostly of games.

xtmines, another version of the minefield game, where adjacent squares tell you how many mines are touching your square, was contributed by Timothy Tsai <ttsai@crhc.uiuc.edu> for Volume 19, Issues 4-5. His additions include providing you with three hand grenades that can be used to cause mines to explode (causing all adjacent mines to explode in a chain reaction).

Jonny Goldman <jonathan@Think.COM> contributed a space invaders game, xinvaders, for Volume 19, Issues 6-8. It is based on Terry Weissman's roids program and requires at least X11R4 to run.

Steven Grimm <koreth@hyperion.com> posted his latest version of workman, a graphical tool for controlling audio CDs in the system's CD-ROM drive. It provides all the standard features of a programmable CD player, but also includes a database that can store the artist's name, disk title, and track titles, can remember which tracks you like and don't like, and will automatically recall this information when the appropriate CD is inserted in the drive. workman is Volume 19, Issues 9-17.

A searchable od octal(hex/ascii, etc.) dump utility was contributed as xod by Robert Starr <rfs@se28.wg2.waii.com> for Volume 19, Issues 18-21. It provides the ability to search based on bytes and strings, and the ability to change display formats on the fly.

Like ncftp above in the comp.sources.misc group and XView's ftptool, Salim Alam has written and contributed a Motif-based, screen-oriented FTP client called xgetftp. It provides an X/Motif user interface, remote directory caching, remote file viewing, and simple multiple file and directory retrieval. It was posted as Volume 19, Issues 22-25.

One of the more unusual programs for X I've seen is xodometer from Stephen O. Lidie <lusol@Turkey.CC.Lehigh.EDU>. Posted in Volume 19, Issues 37-40, xodometer is a tool that tracks the total distance your mouse cursor moves since startup, and since the trip reset button was pushed. A strange concept, but then, perhaps it fits in nicely with the next program.

Mark Martin <mmm@cetia.fr> submitted xruler for Volume 19, Issue 42. It creates a shaped window in the form of a ruler, or as a transparent grid, which can be used to take measurements in other windows. Strangely, it uses shape, xbiff, and awk instead of C to perform its work.

NetHack Updated

The big news in comp.sources.games is the update to NetHack, one of the largest projects in the games group, nethack31. The 3.1 update is the product of two years work by over 30 team members from different countries. Submitted by Izchak Miller <izchak@linc.cis.upenn.edu>, it spans all of Volume 16, Issues 1-108. Yes, that's about 6.5MB of source. NetHack 3.1 is a new generation of NetHack. Quoting the announcement posting, in Volume 15, Issue INFO11: "Unlike 3.0, NetHack 3.1 is a multi-dungeon game. New dungeons branch off the main dungeon at different locations. A unifying mythology was adopted for the game. There are tasks which must be completed in various dungeons before the main task of capturing the Amulet can be undertaken. There are different quests for the different character classes. There is a new multi-level endgame full of surprises. Many of the monsters in NetHack 3.1 now can wield weapons, zap wands, read scrolls, and cast spells. Fighting them must take these special abilities into consideration."

The game's display was completely rewritten. Now based on a line-of-sight principle, it gives a new feel to the game. The new display uses a standardized window interface that allows easy substitution and addition of windowing systems independent of operating system. For example, the UNIX port now supports X11 as well as the traditional tty. Numerous local changes were made, and many new monsters, objects, and intelligent artifacts were added. And, as they say, you will discover the details and the rest of the changes for yourselves.

Dave Cooper <dcooper@datap.ca> officially released the xjewel game previewed in alt.sources a while back for Volume 17, Issues 1-5. xjewel is an X port of the jewel dropping game from Yoshihiro Satoh of HP. This revision fixes some bugs and adds monochrome display support.

dinkum3 is the latest revision in the Australian text adventure game series from Gary Allen <gary@sun.mech.uq.oz.au>. Posted in Volume 17, Issues 6-12, version 2.12 fixes several bugs and includes extensive revisions. Patch 1, with portability fixes for Macs and Coherent, was issued in Volume 17, Issues 35 and 36.

The other big release this time is a new revision of Galactic Blodshed, called gbp for Galactic Blodshed+. Contributed by John Deragon <deragon@harpo.cs.nyu.edu>, it also entails a change in authors to the gb+ development team. Posted in Volume 17, Issues 13-33, the entire installation and configuration script has been redesigned for this release.

Previews from alt.sources

As usual, plenty in alt.sources, so here are just a few highlights of what's to come in the main stream groups.

Al <rbc!al> posted the ACS circuit simulator in 20 parts on January 25, 1993. ACS is an interactive circuit simulator for both analog and digital circuits. It performs nonlinear DC and transient analyses, fourier analysis, and AC analysis linearized at an operating point. It is fully interactive and command-driven. It can also be run in batch mode that is mostly Spice-compatible, so it is often possible to use the same file for both ACS and Spice. Spice-compatible models for the MOSFET (level 2) and diode are included in this release. Other models (MOSFET levels 1 and 3 and BJT) are in the testing phase.

Lance Norskog <thinman@netcom.com> posted his ST, sound tools, package in eight parts (0-7) on February 8, 1993. ST translates sound samples between different file formats, and performs various sound effects. This release understands raw files in various binary formats — Sound Blaster .VOC files, IRCAM SoundFile files, SUN Sparcstation .au files, mutant DEC .au files, Apple/SGI AIFF files, Macintosh HCOM files, Sounder files, and Soundtool (DOS) files. The sound effects include changing the sample rate, adding echo delay lines, applying low- and band-pass filtering, and the infamous Fender Vibro effect.

Sam Lantinga <slantin@swrl36.calstate.edu> posted splitsh on February 22, 1993 in one part. splitsh splits the screen into two windows, each with its own shell, so you can do two things at once.