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 who cannot do Internet addressing).
It appears that everyone has decided that they want the early appearance of their postings in comp.sources.misc over the testing of them in the other groups. During the past two months I counted the postings I saved, so I could mention them in this column. There were 0.5MB in comp.sources.games, 1.2MB in comp.sources.unix, 1.3MB in comp.sources.reviewed, and a whopping 16MB in comp.sources.misc. Now, this is only what I saved, which for all of the above except the misc group, is everything. In misc, I do not keep anything that is not written in C, that is totally specific to a single machine, or is shareware that requires a registration fee.
There is plenty to talk about, but it all falls into the misc group it seems.
Rich?, Part N
Only one posting showed up in comp.sources.unix this time. Chris Lewis <psroff-request@ferret.ocunix.on.ca> posted a major package called psroff in comp.sources.unix this time. It will be useful for those UNIX systems stuck with the older C/A/T based troff. The program troff accepts text input and outputs phototypesetter commands. Originally, it was designed to drive a particular typesetter in use at Bell Laboratories. Bell used this C/A/T typesetter to set most of its documents in the late 1970s and early 1980s. Now, with laser printers based on Postscript or HP/PCL, output from troff could potentially become unusable. However, psroff can convert the original C/A/T troff output into Postscript or HP/PCL for use in Postscript printers or the HP LaserJet/DeskJet family of printers. It upgrades the old troff, with few limitations, to be equivalent to the more modern device independent troff (ditroff). Not only does it handle the old troff, but it can also handle converting ditroff output into Postscript or HP LaserJet/DeskJet output. psroff v3.0, , was posted on September 26, 1991 as Volume 24, Issues 96-114 with patches 1 through 4 as Issues 115-118.
Hold Those Presses!
NEWS FLASH: This column is mostly written, and I was just checking the thing over when a plea crossed my desk. Paul Vixie, the postmaster at Dec Western Research Laboratories posted a request to news.admin stating that he was getting many copies of the postings to comp.sources.unix as its primary moderator and would people check their active files as some had it marked as unmoderated. Well, I don't remember seeing any change in moderator announced (although there have been a lot of "Dump the currently not producing moderator" sentiment brewing for a while). So this was a surprise. Perhaps, shortly, some postings will resume in this group.
Reviews Also Almost Empty
New postings to comp.sources.reviewed this time consisted of patches to Chip Salzenberg's Deliver program, reported on in the December 1991 issue, plus three new programs.Deliver is a system to handle incoming electronic mail. It can forward the mail based on content, store it in a set of folders, reply with requested information to the sender, or anything that can be described as a shell script. Patches 7 and 8 to version 2.1 were posted as Volume 1 Issue 15 and Volume 1 Issue 40 respectively.
New postings consisted of mawk, an interpreter for the awk language. awk is a utility language provided with UNIX systems named after the first initial of each of its authors' last names. The awk language is useful for text conversions, general report writing, and almost any task that needs to take text in and convert/process it into different text on the way out. This interpreter is based on the version of awk as defined in the 1988 book, also known as the "New awk." mawk is faster than either the new or old awks and has been ported to many flavors of UNIX as well as MS-DOS. mawk was contributed by Mike Brennan <brennan@boeing.com> for Volume 1, Issues 16-30.
The SuperServer program, posted as Volume 1, Issues 1-3 was update with a new release. SuperServer allows any program to appear as a TCP/IP service. It does so without requiring any special programming. Even shell scripts can be made into services and it aids in the debugging of network servers. Note: SuperServer does require the BSD Socket calls, including the select system call. New features include removing the need for a separate supersrv program. The first server started now acts as the master server. In addition, the master and its clients now can use UNIX domain sockets instead of IP domain sockets. This can save CPU time by not requiring network wide byte ordering to be used (optional). Version 1.5 was contributed by Steven Grimm <Steven.Grimm@eng.sun.com> for Volume 1 Issues 31-34.
Lastly, is Ajay Shah's <ajayshah%monty@rand.org> ols, a linear regression tool. ols does much of what a normal statistics package does, only by way of linear regressions. While the package provides a very useful set of tools to fit data, it is designed for those that already know and understand linear regression theory. It was posted in Volume 1 as Issues 35-39.
misc Overflows My Disk
So much was posted to comp.sources.misc, I had to clean out some of the directory prior to the end of the two months just to have room. With so many new packages posted, I can only go into selections from the over seventy different packages that I saved to comment on.In December, I reported on crack v3.2a. It turns out that v3.2a was an impostor version posted as v3.2b by someone else. To correct this, an updated version, 3.3c was posted as Volume 23, Issues 1-5. But, hold, on, Alec David Muffett <aem@aber.ac.uk> re-thought through the problem, and rewrote it entirely. crack v4.0a was posted as Volume 25, Issues 5-9. crack is a program used by system administrators under UNIX to check that users did not pick easily compromised passwords. This new version supports network wide load leveling, a programmable dictionary generator, better handling of GECOS-based passwords, faster fcrypt algorithm, a simpler user interface and better portability.
unproto, mentioned in December's previews from alt.sources has been released by Wietse Venema <wietse@wzv.win.tue.nl> for Volume 23, Issues 12 and 13. It allows K&R C compilers to compile ANSI C programs by converting the ANSI constructs back to K&R constructs after the preprocessor stage. It can handle function headings, function pointer type declarations and casts, function type declarations and combinations of those items.
Another posting previewed in December provided changes required to port GCC 1.40, GAS 1.38.1, and GDB 3.5 from the GNU project to SCO XENIX. Steve Blezard <Steve.Bleazard@robobar.co.uk> contributed these as Volume 23, Issue 28. This port works on SCO XENIX 386 and produces files in the native Microsoft/Intel OMF format. The GNU binutils are not used, so the port is compatible with the standard library files.
One of the backup tools used for UNIX is cpio (cp in/out, cp is the UNIX copy command). cpio has its problems in its original form, including lack of multiple volume support (the backup must fit on one tape) and no recovery of tape read errors. One error and the entire archive is lost. afio, a freely distributable version of cpio, was contributed as v2.2 by Jeff Buhrt <prslnk!buhrt> for Volume 23, Issues 33 and 34. It supports floppy disks as well as tapes, and allows for compression/uncompression on the fly, verification of floppies and restart at any volume break. It can also somewhat gracefully handle input data corruption.
One of the larger postings was an updated release of the Extended Portable Bitmap Toolkit (PBMPLUS). In the June 1990 issue I extensively reviewed this toolset. It is used to convert various image formats to and from a portable format. It also includes many tools for manipulating the images once they are in this portable format. The package include four parts: PBM for bitmaps (1 bit/pixel), PGM for graymaps (grayscale images), PPM for pixmaps (full color images), and PNM for context independent manipulations of any of the three internal formats. The tools for manipulation include smoothing, scaling, inversion, rotation, color map compression, and combining multiple images. This is the 27sep91 distribution and was contributed by Jef Poskanzer as Volume 23, Issues 36-59 with patch05oct91 issued as Volume 23, Issue 60 and patch30oct91 as Volume 25, Issue 33. The patches were mostly bug fixes.
The follow-on operating system product from the original authors of UNIX is Plan 9. It includes a command interpreter that is very heavily based on the C programming language. This shell is called rc. Byron Rakitzis <byron@archone.tamu.edu> has written his own implementation of this shell and contributed version 1.2 for Volume 23, Issues 61-66. It is reasonably small and fast, especially when compared to the current do-everything shells in use. It is useful for both interactive terminals/windows and command scripts.
On the other hand, an update to one of those do-everything shells was also posted this time. Paul Falstad <pfalstad@phoeniz.princeton.edu> contributed v2.1 of his zsh shell for Volume 24, Issues 1-19. zsh has most of the features of tcsh, ksh, and bash plus a few more. It is mostly a ksh syntax style shell, but it does allow most of the csh syntax. It includes many bells and whistles, and provides a new document An Introduction to the Z Shell precompiled into Post-Script.
And lastly, for those that use the Korn shell most everywhere, but don't have it on all their systems, Simon J. Gerraty has submitted PDksh, a public domain work-alike to the Korn shell (ksh). While it is not 100% compatible with ksh, Simon uses it daily on his Sun systems and does not notice the difference between it and ksh88.PDksh is Volume 25, Issues 47-55.
In October I also reported on the generic unzip utility posted by the Info-ZIP Workgroup. This month the companion zip utility was contributed for Volume 23, Issues 88-96. Info-ZIP <Info-ZIP@valeria.cs.ucla.edu> develops a complete archive library system that can handle creating and unpacking compressed file archives. These archives are compatible with the PKware ZIP archives.
Elber Gershon <gershon%gr@cs.utah.edu> has released v3.0 of his Gnuplot package for Volume 24, Issues 23-48. This package provides a command-line driver interactive plotting utility for UNIX, MS-DOS, and VMS platforms. It supports many different types of terminals, plotters and printers and is easily extensible to include new devices. Enhancements since v2.0 include surface plots, errorbar plots, a rewrite of the Post-Script driver that now also supports color PostScript and many bug fixes.
For those running mail servers or mailing lists, Stephen R. van den Berg <berg@messua.informatik.rwth-aachen.de> has updated his procmail program to v2.31. Posted as Volume 25, Issues 1-4, procmail can be used to sort incoming mail, preprocess incoming mail, or implement mailing lists or servers. procmail is small, relatively easy to install, and very configurable.
Also from the preview section of a prior column, Alan Saunders <tharr!alan> has cleaned up and contributed his QBATCH queued batch processing software for UNIX for Volume 25, Issues 20-25. UNIX does support background processing, and it has the atrun command to allow jobs to be run at later times. However there is no queueing mechanism to prevent them all from running at once. QBATCH provides this queueing mechanism to prevent any swamping and to increase overall throughput. It is a cleanup and rewrite from the earlier preview and includes new documentation. Patch 1 was issued as Volume 25, Issues 58 and 59 to fix some typo-graphicals and bugs plus a few small enhancements.
If you have an alphanumeric pager (beeper) and wanted to allow your computer to send it messages, it's easy enough. All you need to do is talk the IXO protocol. Tom Limoncelli <tal@warren.mentorg.com> submitted ixobeeper for Volume 25, Issue 43. It enables UNIX systems to send messages to pagers. It supports command line or stdin for its messages and can tee the input into stdout for a filter effect.
The Tool Command Language, TCL v6.1, was submitted for John Ousterhout by Karl Lehenbauer <karl@neosoft.com> for Volume 25, Issues 69-101. This large posting is the complete source and documentation for TCL, an embeddable tool command language created by John Ousterhout. The distribution includes the original paper from the USENIX Winter 1990 conference that described v3.0 of TCL as well as current documentation and a test suite. Extensions to TCL, tclx v6.1a were also posted at the same time as Volume 26, Issues 1-23. In addition, these extensions also provide online help to the original TCL.
Lastly, beav, the binary file editor from Peter Reilley <pvr@wang.com> was released at vl.32. Posted as Volume 26, Issues 37-45, beav supports editing binary files interactively. It can not only search and change bytes in place, it can also insert and delete bytes, of course changing the length of the file. beav is very portable and runs under UNIX, DOS, and AmigaDOS.
Of course, there were also patches issued in the group. The USENET freely distributable spreadsheet, sc was updated to v6.19 by patch 3, submitted by Jeff Buhrt as Volume 23, Issue 35. This fixed some null pointer problems and added some minor features.
David Skoll <dfs@doe.carleton.ca> has issued patch 3 for his remind package as Volume 22, Issue 102. remind can notify you of events, appointments, or other things you feel you should be reminded about via mail or screen notices. Patch 4 adds no features, it just tidies up the code and makefile.
The rayshade construction group <rayshade-request@cs.princeton.edu> has released a patch to their large graphics package reported on in the October 1991 issue. Patch 1, listed as a "HIGH" priority patch, was posted as Volume 23, Issue 75. It fixes many problems and adds transform, window, crop, spotlights, and transparency support. It also speeds up several of the processes.
Larry Wall <lwall@netlabs.com> finally issued the long awaited "Patch 11" to Perl v4.0. Many times in the past I have sung the praises of Perl. This patch (which runs over many parts, but is really one patch) fixes many of the outstanding bugs in v4 and also adds a few features. This patch was posted in two parts, patches 11 to 18 are the main patch, and patch 19 is a cleanup of problems caused by patches 11-18. Posted as Volume 25, Issues 60-68. New features include dbz support, calling back to Perl from C routines that were called from Perl (not fully calling Perl from C yet...) and several new library routines.
Games Still Quiet
Only four postings in comp.sources.games, so here is each of them.George Sicherman <gls@windmill.att.com> contributed conn4 for Volume 12, Issue 100. It plays games of Connect Four with you using only a CRT that supports cursor movement.
Metroid in Volume 12, Issue 99 from Ralph Betza <ssiny!gnhmon> allows for cracking Nintendo passwords for the game Metroid. These passwords allow access to some of the undocumented features of the game.
Don Dodson <ata@sag.cc.purdue.edu> contributed a version of Othello that only uses curses and termcap for Volume 12, Issue 98. This is a small compact version of the game as the complete posting is only 817 lines.
Lastly a patch to Tim Stoehr's rogue clone to allow it to be used with VMS was posted by Mike Zraly <mzraly@ldbvax.dnet.lotus.com> as patch 3 to the rogue package in Volume 12, Issue 97. It adds all the programs and files necessary to port it from UNIX to Vax VMS.
Previews from alt.sources
As ususal, alt.sources is being used for testing out and checking things that will later be posted to the moderated groups. This is as it should be. So here are the current previews, along with their date of posting.With computer generated faxes becoming more popular, Klaus Schallhorn <cnix!klaus> posted a program to convert HP LaserJet output generated from almost any program into a PBM file scaled for use as a low or high resolution fax image. He includes integration of the package into faxpax. Posted on August 29, 1991 in four parts it also includes the bitmaps needed for the HP built-in fonts.
A game to help improve typing skills, loosely based on the Space Invaders type games was posted by Larry Moss on October 3, 1991 in one part. It uses falling letters where the proper key must be pressed to defend against the letter. He added some new features including a bonus round and has made it more portable to various systems than the last version.
Jan-Piet Mens <jpm@logix.de> submitted editbuf, a routine to be used with the curses package to allow the user to edit an alphanumeric string. It supports using the function keys/cursor keys to move around the current field and edit the string. This subroutine for use with curses(3X) was posted on October 17, 1991 in one part.
Dan Bernstein <brnstnd@kramden.acf.nyu.edu> posted his client/server tool set. It is a set of three client-server suites that support different protocols all with the same well define interface. It allows writing programs that work the same way independent of the underlying protocol and will aid in portability of the programs that use it. It is UCSPI compliant (UNIX Client/Server Program Interface) which will help with future portability issues as well. clientservv0.80 was posted on October 21, 1991.
Those running BBS systems under UNIX may want to look for UNIX-Chat v2.10, a multiuser chat utility, designed for UNIX System V. It does not require sockets, but instead works with standard UNIX IPC calls. It supports multiple conferences at one, and no limit to the number of users in any of the conferences. It can use any terminal type, including "dumb" terminals. It was posted in seven parts on November 16, 1991 by Marc Laukien. The first part is the introduction, the program is the next three parts, followed by three patches.
Now that there is a reason to look for a UNIX BBS, Ken MacLeod <unidel@bitsko.slc.ut.us> posted the Unidel UNIX BBS system. It supports USENET news, UNIX mail, looks like a Citadel room-based BBS system, secure shell access, external editors, file-transfer, chat/talk, CB programs, and it is freely distributable. It was posted on November 17, 1991 in seven parts.
On a totally different note, Lance Norskog <thinman@netcom.com> has posted SoundKit, a set of tools to manipulate sound samples in various different formats. This package does for sound files what the PBMPLUS package did for graphic files. It allows for conversion between many common formats, and for simple manipulations on the sound clips. It was posted on November 19, 1991 in four parts.