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. C0M (dsinc!syd for those who cannot do Internet addressing).
It's been two years in the making, and often I wondered if it would ever see the light of day, but now, I can finally announce it's here! In early October, Elm Version 2.4 was released to the archive sites and the comp.sources.unix queue for eventual posting. Of course, with the backlog in that group who knows when it will finally be posted. I'll give the Volume and Issue details in a future column.
Elm 2.4 includes several new features and a massive internal reorganization of the code within Elm. The most visible new feature is a complete replacement of the alias subsystem. Aliases are now presented just like messages. In addition, the prior restriction on group aliases has been removed. It is no longer necessary to make the members of a group be prior aliases.
The Internet is rapidly switching to multimedia mail, via the Multipurpose Internet Mail Extensions (MIME) and 2.4 of Elm supports MIME via the metamail package from Bellcore. This allows messages to contain voice and graphical information, or even binary files.
Elm is available via uucp or ftp from UUNET in the /networking/mail/elm directory as well as via ftp from wuarchive.wustl.edu, archive.cs.ruu.nl, uk.ac.soton.ecs, and ftp.adelaide.edu.au. Please use the archive site nearest you.
Other new items in comp.sources.unix include utree from Peter Klingebiel <klin@iat.uni-paderborn.de> in Volume 26, Issues 64-71. utree is a screen-oriented utility for navigation through filesystems, and for doing some default and user-defined commands on directories and files.
Psgraph takes input files in a format similar to the UNIX graph utility and produces output in PostScript. Submitted by Jeff Mogul <mogul@dec.com> for Volume 26, Issues 72-74. The output can either be an EPS includable document, or suitable for directly sending to the printer.
Adapting normal programs to be network client/server savvy can take some work. However, replacing the input and output at the file level with sockets can be simplified by using a network wrapper program. Juergen Nickelsen <nickel@cs.tu-berlin.de> submitted his socket program for Volume 26, Issue 75. socket provides an interface to TCP sockets at the shell level. Client and server sockets can be used from shell scripts or interactively. socket can also run a program with stdin, stdout, and stderr connected to the network.
Netpipes, a pipe-extender program, performs a similar function by connecting UNIX pipes across the network. Netpipes from Robert H. Forsman, Jr. <thoth@lightning.cis.ufl.edu> provides for connecting arbitrary programs over sockets, extending the | character across the network. One major problem with his programs, however, is the entire lack of provisions for security. Perhaps someone will enhance them to remove this glaring omission. Netpipes is Volume 26, Issue 76.
Is .reviewed too Reviewed?
These has been much discussion on the difficulties in getting submissions accepted by comp.sources.reviewed. Many authors have complained about their process being too drawn out and too picky. Others have defended it. As with all USENET functions, it will evolve and change, and learn from its history. One change they have adopted is to post packages after some "go arounds" even if there are still some problems.A linear problem solver, lp_solve, was submitted for Volume 2, Issues 21-23 by Michel Berkelaar <michel@es.ele.tue.nl>. lp_solve, a very efficient (mixed integer) linear problem solver, is based on a sparse-matrix dual-simplex linear-program solver. Berkelaar has used the program to solve linear programming problems up to about 30,000 variables and 50,000 constraints (on a 22 MFLOPS HP9000/750). Others have reported round-off errors on large problems, but report it works well for small to medium problems.
Another old standby to the USENET Community is compress. This workhorse is used to shrink everything to save space and network transmission time and is the de facto standard in the UNIX world. Peter Jannesen <peter@ncs.nl> has improved on compress with an update. compress version 4.2, ncompress, is an update to the standard version 4.1 distribution posted as Volume 2, Issues 24- 26. compress is a fast, simple LZW file compressor. compress does not have the highest compression rate, but it is one of the fastest programs to compress data. Version 4.2 has a special, fast-compression hash algorithm. It uses more memory to provide faster compression. The output of v4.2 is still fully compatible with all compress versions from 3.0 or higher.
Games are still popular in X
The latest in the arcade games to be translated into X programs is xmris from Nathan Sidwell <nathan@inmos.co.uk> for comp.sources.x, Volume 18, Issues 22-30 with patch 1 in Volume 18, Issue 59. xmris is a version of the arcade game Mr. Do in which you control a gnome in a garden and gather cherries for points. In addition, there are monsters to kill and a prize to collect from the monsters.A simple solitaire game similar to Klondike was submitted by Jon Brinkmann <jvb7u@fermi.clas.Virginia.EDU> for Volume 18, Issues 68-71. The program includes the images for the cards.
While utree (described previously) is for character based terminals, xdtree from Konstantinos Konstantinides <kk@hpkronos.hpl.hp.com> is for X displays. Posted in Volume 18, Issues 31-33, xdtree displays a graphical representation of the UNIX directory tree using colors to distinguish between files, directories and symbolic links. Based on dtree from Dave Borman this new version has a Motif-based user interface.
A new release of Bruce Schuchardt's <bruce@SLC.COM> xgrabsc screen-capture utility was posted as Volume 18, Issues 52-56. Unlike xwd, xgrabsc allows for root-window rubber-banding to extract arbitrary sections of the display. It also supports run-length encoding to reduce the site of the output and various output formats including several PostScript options.
Also updated was Mike Jipping's <jipping@cs.hope.edu> xvtdl v3.0. The XView To-Do List Manager supports multiple to do lists, each kept in priority order. Events which are not marked as completed, automatically propagate from one day to the next. In addition, it supports recurring events and logging of completed items. Various print formats for both plain and PostScript output are supported. xvtdl v3.0 was posted as Volume 18, Issues 62-67.
Another useful tool for those with ftp access to the net is Mike Sullivan's <Mike.Sullivan@EBay.Sun.COM> ftptool. ftptool v4.3 is a XView-based tool to assist in accessing files from remote sites via ftp. It supports viewing as well as transfer of files, and point-and-shoot file transfer. As one who uses it, I can add my voice to the clamor that it's easier to use than trying to find the files in a dir listing.
For those working in TeX, Armin Liebl <liebla@informatik. tu-muenchen.de> has contributed bibview for Volume 18, Issues 99-118. bibview allows for the display and updating of BiBTeX databases. It even allows for the moving of bibliographies from one database to another across windows.
On the patch front, olvwm v3.0 was updated to patch 2 by Scott Oaks <sdo@soliado.East.Sun.COM> for Volume 18, Issues 48-51. The OpenLook Virtual Window Manager provides for multiple desktops on the display. Patch 2 solves some window-placement problems, especially when windows cross desktop boundaries. In addition, some menu problems were fixed and the window menu now displays the windows for the current display (when multiple displays are being used). Also, it provides better support for the virtual keyboard keys.
Communications in misc
Several of over 20MB of postings in comp.sources.misc relate to communications. Warren Tucker <wht@n4hgf.Mt-Park.GA.US> issued the next major update to his ECU utility. Version 3.20 was released as Volume 32, Issues 36-75. Patch 1 is Volume 32, Issue 76, patch 2 in Volume 32, Issue 82 and the documentation for ECU is Volume 32 Issues 77-81.ECU (Extended Call Utility) is a research and engineering communications program originally written for users of SCO UNIX V.3.2/386 and XENIX V on 80286 and 80386 systems. Support for other systems has been added and further porting is possible with "minor" effort to other systems based on or similar to UNIX System V. ECU supports arbitrary video consoles and X displays via the Xterm utility. It also supports numerous file-transfer protocols including: XMODEM, XMODEM/CRC, XMODEM-1K, YMODEM/CRC Batch, ZMODEM/CRC-16, ZMODEM/CRC-32, C-Kermit 5, and SEAlink.
procmail, a program to support automated mail processing was updated to version 2.71 by Stephen R. van den Berg <berg@pool.informatik.rwth-aachen.de> for Volume 31, Issues 40-44. procmail can be used to create mail-servers, create mailing lists, sort your incoming mail into separate folders/files (real convenient when subscribing to one or more mailing lists or for prioritizing your mail), preprocess your mail, start any programs upon mail arrival (e.g. to generate different chimes on your workstation for different types of mail), or selectively forward certain incoming mail automatically to someone. It also includes the program formail, which enables you to generate autoreplies, split up digests/mailboxes into the original messages, do some very simple header-munching/extraction, or force mail into mail-format (with leading From line).
A generic version of the ZIP compression and file-packing utilities is maintained by the Info-ZIP group <zip-bugs@cs.ucla.edu>. They have released zip19, version 1.9 of Zip for Volume 31. Issues 93-103 with patch 1 in Volume 31, issue 133. This version of Zip has been ported to a wide array of UNIX and other mainframes, minis, and micros. Although highly compatible with PKware's PKZIP and PKUNZIP utilities of MS-DOS fame, its primary objective has been one of portability and other-than-MS-DOS functionality. Features not found in the PKWare version include creation of Zip files in a pipe or on a device; VMS and OS/2 extended file attributes; conversion from UNIX to MS-DOS text-file format; the ZipSplit and ZipNote utilities; and, of course, the ability to run on most of your favorite operating systems.
The companion unzip50 was posted as Volume 31, Issues 104-117. Windows UnZip, wizunzip, Volume 31, Issues 118-123, is an add-on set of source files to convert UnZip 5.0 into a native Windows 3.x program. It is compatible with both Windows 3.0 and 3.1. Lastly, the encryption utility zcrypt19 was posted as Volume 31, Issue 128.
Two different C++ approaches to command-line argument parsing were posted. options is a bare-bones package that does just the basics with very few bells and whistles thrown in. It was contributed by Brad Appleton <brad@hcx1.ssd.csd.harris.com> for Volume 31, Issues 45 and 46. The other package, CmdLine, also from Brad, and posted in Volume 31, Issues 47-54, is a fully object-oriented approach to command-line parsing that does more than most of you could ever want. CmdLine also comes with a program named cmdparse (similar to parseargs) to parse arguments for your shell-scripts (including perl and tcl).
Rich Salz <rsalz@osf.org> has contributed editline for Volume 31, Issue 71. editline is a line-editing library. It can be linked into almost any program to provide command-line editing and recall. It is call-compatible with the Free Software Foundation's readline library, but it is a fraction of the size (and offers fewer features). It does not use standard I/O and is distributed under a "C News-like" copyright.
Kent Landfield <kent@sparky.sterling.com>, the moderator, contributed an update to his own lc package for Volume 31, Issues 72 and 73 with patch 1 in Volume 31, Issue 90. It is much like the ls command except that it separates the types of files into groups and then displays located filenames to the user in a columnar fashion. lc has incorporated minimal spell-checking for people whose fingers like to transpose characters regularly. It uses three different environment variables COLS, CDPATH, and LC, allowing you to customize how you wish lc to perform on a default basis.
Lee Hounshell <tlhouns@srv.pacbell.com> contributed var, his C++ object library. It could be called a "super-string" class. The var class does a pretty good job of offering a data object that assumes its "type" at runtime, based on context of use. Rarely will you need to declare ints, longs, doubles, or char[] or even string objects again! var does it all (or at least tries to). var is Volume 31, Issues 91 and 92.
While tags works well for C files, it does not understand C++ syntax. So Sam Kendall <kendall@centerline.com> has contributed tags++ for Volume 31, Issues 124-126. tags++ is an enhanced version of etags and tags.el (for use with GNU Emacs Version 18) and ctags (for use with vi). The enhancements support C++, and they support C better than the standard etags, tags.el, and ctags.
An official release of Conor P. Cahill's <cpcahil@vti.com> dbmalloc was posted as Volume 32, Issues 5-15. This library contains a drop-in replacement for the standard dynamic memory allocation routines and many of the other C modules that are typically used to access and/or manipulate these data areas. The replacements function almost identically to the original functions with the exception that they perform a significant amount of error checking and/or validating. This version contains the many changes since the comp.sources.reviewed release at patch level 7, in Volume 2, Issue 1.
On the patch front, jgraph has patch 8.1 issued by James Plank <jsp@Princeton.EDU> for Volume 31, Issue 56. This patch fixes some bugs with labels and line lengths on legends. Patch 8.2 was in Volume 32, Issue 90 and changes the bounding box to integers for better compatability and added the ability to specify the file name on the command line.
Patch 6 was issued for pdksh by Simon J. Gerraty <sjg@zen.void.oz.au> for Volume 31, Issues 74 and 75. The patch fixes a bug in redirected loops, adds support for FCEDIT and COLUMNS. The patch also added support for the BSD/386 operating system.
The threaded newsreader, tin received patch 5 in Volume 31, Issues 80-86 from Iain Lea <iain%anl433.uucp@Germany.EU.net>. Patch 5 fixes many bugs and adds support for many more system types. It also adds an option to use ispell.
Back to the Cave...
The latest and greatest version of umoria came in to comp.sources.games from David Grabiner <grabiner@math.harvard.edu> and overflowed our disks. umoria4, Volume 14, Issues 33-71, tips the scales at about 2.25MB. Now, although this is called umoria4, actually it's the source to version 5.5. umoria is a dungeon-exploration game. New features in version 5 include inventory commands, memory about monsters seen and their types, better support for low-speed connections, smaller and faster execution copies, and many more.For those with networks, the latest version of xbattle was also released by Steve Lehar <slehar@cns.bu.edu> and Greg Lesher <lesher@cns.bu.edu> for Volume 14, Issues 72-78. xbattle is a multiplayer concurrent battle-strategy game in X Windows. Each player gets a gameboard consisting of a grid of squares, some of which contain smaller colored squares representing troops. Players command their troops simultaneously using mouse clicks, to occupy territory and eliminate enemy forces.
A more cerebral battle is also available over the network via okbridge2 updated by Matthew Clegg <mclegg@cs.UCSD.EDU> for Volume 14, Issues 79-92. The okbridge program is an interactive computer-mediated bridge game. It allows four players at (not necessarily) different locations on the network to participate in a game of rubber or Chicago (duplicate) bridge. The program handles the dealing, scoring, and communication of bids and plays. It is screen oriented, although the screen display is rather simplistic.
The official release of xpilot from Bjoern Stabell <bjoerns@staff.cs.uit.no> occurred in Volume 14, Issues 3-26. I covered this in the previews section of October's column. XPilot is a multiplayer game which has some common features with games like Thrust and Gravity Force, i.e. you have control over a "fighter" (a triangle-shaped ship) which you maneuver through cave-like (customizable) worlds. These worlds have gravity (downwards) and scattered gravitational sources (miscellaneous types). Also, players may form teams or just have a plain old dogfight.
A port of the VMS minesweeper program (minesweeper, Volume 14, Issue 27, Jerry Jeremiah <jeremi@bode.ee.ualberta.ca>) to UNIX System V was submitted as mine by Laurent Thery <Laurent.Thery@cl.cam.ac.uk> for Volume 14, Issue 32. The goal is to find and flag all the mines in the minefield. You win when the field is entirely cleared except for the flagged mines. Previews from alt.sources
I think alt.sources set a record this time about 30MB of postings! Here are some highlights.
Farrell McKay <fbm@ptcburp.ptcbu.oz.au> posted on July 20, 1992 his xcb cut-and-paste buffer program for X. xcb provides access to the eight cut buffers built into every X server. It allows the buffers to be manipulated either via the command line or with the mouse in a point-and-click manner. The buffers can be used as holding pens to store and retrieve arbitrary data fragments, so up to eight different pieces of data can be saved and recalled later. The program is designed primarily for use with textual data
Uwe Doering <gemini@geminix.in-berlin.de> has posted version 2.10 of his FAS async driver for 286/386 UNIX/XENIX systems in five parts on August 17, 1992. fas210 now supports 115,200 bps and fixes several bugs. It also includes further performance improvements to cope with speeds as high as 115,200 bps.