Sydney S. Weinstein, CDP, CCP is a consultant, columnist, lecturer, author, professor, and President of Myxa Corporation, an Open Systems Technology company specializing in helping companies move to and work with Open Systems. He can be contacted care of Myxa Corporation, 3837 Byron Road, Huntingdon Valley, PA 19006-2320, or via electronic mail using the Internet/USENET mailbox syd@Myxa.com (dsinc!syd for those that cannot do Internet addressing).
Electronic mail has been the most used and the longest living application on the networks, spurring the development of a large collection of useful tools to assist in electronic mail processing. During the past months a number of these tools have been posted, either for the first time, or as new versions.
For those sites on the Internet wishing to run an ftp to mail server to assist others in obtaining sources, Volume 43, Issues 72-74 of comp.sources.misc provided ftpmail from Lee M J McLoughlin <lmjm@doc.ic.ac.uk>. Written in perl, ftpmail implements a complete e-mail>ftp gateway. It supports calling mail or sendmail for delivery, use of MIME, and automatic transfer retries. New features in version 1.23 include multiple queue processes running in parallel, ftp site-based scheduling, site restrictions, return address verification, and an RFC-822 mail parser.
Two sets of patches were posted for mailagent, a perl-based mail filtering and processing package from Raphael Manfredi <ram@acri.fr>. It takes care of all your incoming mail by applying a set of rules and trying to figure out what to do with each message. With mailagent you can save a message in a folder, leave it in the main mailbox, post it to a newsgroup, forward it to other people, split it (if it is a digest), and so forth. You may even delete all those mailings you do not wish to see. Filtering rules are specified to mailagent with lexstyle rules; each consists of a set of patterns on the left hand-side (lhs) and a set of actions within { } braces on the right hand-side (rhs). mailagent applies patterns on the lhs in sequence until one match occurs, at which time it executes the rhs. Normally, the first match stops the processing, but you can change that response in mailagent's configuration. mailagent itself is Volume 41, Issues 1-26. Patch set 8-11, Volume 43, Issues 125-128 provided a large set of low priority changes, including several new configuration commands, use of the newer metaconfig package, better mail file locking, and many bug fixes. This patch set implements many clean-up suggestions contributed by users of the package. Patch set 12-16, Volume 44, Issues 86-90 adds an edusers script for editing user configuration files with locking, more configurable parameters, more filtering actions including AFTER and DO, fuzzy address matching to avoid duplicate replies, and enhanced security.
A competing mail filtering and processing package is procmail from Stephen R. van den Berg <berg @pool.informatik.rwth-aachen.de>. Version 3.03 was posted in Volume 43, Issues 56-65. You can use it to create mail servers and mailing lists, sort your incoming mail into separate folders/files (really 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 else. procmail can be used and installed by an unprivileged user, or as a drop-in replacement for the local delivery agent, /bin/mail. As a replacement, procmail provides biff and comsat support, and will work as a general mail filter for whole groups of messages when called from within sendmail.cf rules. procmail is secure, relatively small and easy to maintain, event driven, uses no temporary files, and is efficient. It uses egrep-style regular expressions for matching commands to incoming messages.
Stephen van den Berg has also provided smartlist, an add-on package to procmail. Posted in Volume 43, Issues 66-70, smartlist enhances procmail to provide the following:
All in all, this is everything anyone needs to maintain a mailing list.
- The overseeable management of an arbitrary number of mailing lists
- Convenient and simple creation of new mailing lists
- Convenient and simple removal of existing mailing lists
- Fully automated subscription/unsubscription/help-request processing (no operator intervention needed)
- Enough intelligence to overcome the ignorance of some subscribers (will direct subscribe and unsubscribe requests away from the regular list and automatically onto the -request address)
- No hardwired format for (un)subscribe requests (i.e., new subscribers need not be educated, unsubscribing users do not need to remember any particular syntax)
- "Intelligent" autoremoval of addresses from the list that cause too many bounces
- Optional restriction of submissions to people on the accept list (which could be the current list of subscribers)
- A fully automated subscription mechanism which allows for a reject list of unwanted subscribers, and a general address screening mechanism which allows you to control exactly who is allowed to subscribe
- Optional implicit subscription upon first submission to the list
- MIME-compliant auto-digest-generation (configurable per list)
- Joint management of several mailing lists, if desired
- Customization per mailing list or mailing list group (simply remove or create the desired hardlinks)
- Provision for a list maintainer that can be assigned per list; miscellaneous requests that couldn't be handled by the list automatically are then forwarded to his/her mail address (instead of being accumulated in a file)
- Provision for remote maintenance of any mailing list by a listmaintainer
- Integrated archiving service
- Integrated diagnostic aid to give hints to the maintainer about possible problems
- Moderated mailing lists with an arbitrary number of moderators
- Automatic elimination of duplicate submissions
- Optional set up of a mailing list to function as a stand-alone mail archive server
- Extended MIME support (auto recognition of well-known file formats)
- Archive server capability to send arbitrarily long (even binary) files in MIME-multipart mails
On the mail utility side, Matthew David Aldous <aldous@mundil.cs.mu.OZ.AU> contributed page for Volume 43, Issue 123. page is a basic alphanumeric pager interface run from incoming e-mail messages. It will notify a user when their e-mail arrives, by paging them, and sending a part of the message if the pager is alphanumeric.
More from misc
Continuing on with comp.sources. misc, a new release of cwish was posted in Volume 43, Issues 12-17. cwish is an easy-to-use, curses-based, full-screen tool for traveling through the file system, either for doing administrative work or as a shell replacement. You can also use cwish to browse quickly through CD-ROMs, as it provides a special mode to handle untranslated ISO-9660 filenames. The major new features for this release are configurable command aliases, configurable actions depending on the file type (filename endings), and the ability to follow symbolic links to directories when "walking" through the file system.Many UNIX systems use PostScript-based printers. Yet the UNIX printing subsystem is text printer based, due to its origins. The subsystem requires a filter to convert ASCII to PostScript. One such filter is pform from Steven Weintraub <stevenw@austin.ibm.com>. Published as Volume 43, Issues 18-20, it's really four programs: pform, differ, mform, plus a helper program, dform.
pform is an ASCII-to-PostScript formatter. pform is like the program enscript, but with more features. differ is a file difference pretty printer. Given two files, it uses diff(1) and pform(1) to print an output. differ generates two outputs. The first is the difference file itself, and the second is a printout of the new file with the changes highlighted. mform is a simple-minded version of pform for use on manual pages.
A1 Longyear <root@longyear.slip.netcom.com> has written subs, a utility to change words in a file. subs performs multiple substitutions of strings simultaneously against an input file. It substitutes only words, so it's useful for changing variable names. subs was published as Volume 43, Issue 34.
A C++ based gray-scale imaging system was contributed as grayimage by Kiselyov Oleg <oleg@ponder.csci.unt.edu> for Volume 43, Issues 51-55. grayimage_classlib is a C++ class library to do generic processing of gray-scale images. This library lets you do a variety of different operations on images and rectangular regions, including adding two images, computing their scalar product, modifying pixel values via histogram equalization filtration (convolution), and morphological filtration. The package can read/write XWD, Group G TIFF, and PGM file formats.
Rick Richardson <rick@digibd.com> contributed x10 for Volume 43, Issue 86. The x10 program is used to command the X10 brand CP290 Home Control Interface to control lights and appliances around the house. The X10 interface controls lights and appliances via modules that are installed between the AC power and the appliance. The CP290 is a smart controller that connects to the serial port of your computer. The CP290 will accept commands via the serial port to turn a module on or off, or to dim lamp modules. The CP290 can also store periodically scheduled events, set to occur at a particular time each day. The x10 program accepts a limited, English-like language to control the CP290. X10 can read the language directly from the command line, or from standard input.
Bas de Bakker <zsh-list@sterling.com> has released a new version of zsh, a UNIX shell with Bourne shell (as opposed to csh) syntax and lots of features. Posted as Volume 43, Issues 89107, zsh includes command-line editing with programmable completion, multi-line command editing, a powerful set of metachars for filename expansion, including a find-like ability, multiple redirections, named directories, integer arithmetic built in, and even spelling correction.
A new version of vim, the improved vi editor from Bram Moolenaar <mool@oce.nl> was posted as Volume 44, Issues 20-45. Version 3.0 is an almost-compatible implementation of the UNIX vi editor. Only the Q command is missing. vim also adds many new features, including multi-level undo, command-line history, filename completion, block operations, and more. vim is portable to DOS, Amiga, Windows, and many UNIX systems.
Another update is the newest version of unzip from Info-ZIP group <zip-bugs@wkuvx1.wku.edu>. Volume 44, Issues 66-85 contain version 5.12 of this cooperative project. New in 5.12 include bug fixes, a self-extraction utility, a copyright-free version of unshrink, performance tweaks, more bad-zipfile intelligence to handle extraction of some multi-part archives, and improved documentation.
On the patch front, dist-3.0 received several patches including patch set 27-29 (Volume 43, Issues 9-11), patch set 30-31 (Volume 43, Issues 42-43), and patch set 32-35, (Volume 43, Issues 46-49). All of the patches update the configure modules to add more submodules or fix problems in prior modules. Keep those contributions coming in, it really does make writing portable software easier.
Print Locally
Often I've been asked how can I print to the printer attached to my local terminal. Now I can answer. In comp.sources.unix Volume 28, Issues 71-73, there appeared vtprint-2.0 from Garrett D'Amore <garrett@athena.sdsu.edu>. vtprint is a program that allows users to print from a remote UNIX host to a printer that is attached to their local terminal or emulator. This makes vtprint great for printing files at home. vtprint-2.0 represents a complete rewrite of vtprint. It is designed for UNIX or UNIX-clone systems. Version 2 of vtprint supports several new operations: printing from any terminal with printer control codes via an external library file, direct CR/LF handling, output to any device file via the command line, setting of session defaults via an environmental variable which can hold command-line options, and printing in an optional binary mode, overriding CR/LF translation.An extended version of the UNIX from command, called fromwho was contributed for Volume 28, Issues 92-93 by Johnson Michael Earls <darkfox@netcom.com>. Instead of just listing who your mail is from, fromwho tells you how many total messages you received, how many are new, how many messages each person sent to you, and lists the subjects of the messages. fromwho supports both sendmail and MMDF-style mailboxes.
Type Funny?
For years the QWERTY keyboard has seemed like it deserved to become obsolete. Care to try the Dvorak keyboard without buying one? Then get xgdvorak from Ulrich Kuehn <kuehn@GOEDEL.UNI-MUENSTER.DE>. Posted in Volume 22, Issue 33, it switches the X keyboard map alternately between the Dvorak and QWERTY layout.An X11R5-based note pad, notes, based on the Athena Widget set was contributed to comp.sources.x by Bob Smith <bob@snuffy.penfield.ny.us> for Volume 22, Issues 30-32. There's really nothing fancy about this program; it merely keeps a collection of notes in popups and saves them to a file called .notes in your home directory. This .notes file not only saves the contents of each note, but also the geometry of each note. Theoretically, you should be able to keep an unlimited number of notes, but in practice, the list widget will run off the bottom of your screen at some point.
The big posting of the past few months to the X group was a new version of ImageMagick from Cristy <cristy@eplrx7.es.duPont.com>. ImageMagick is an X11 package for display and interactive manipulation of images. The package includes tools for image conversion, annotation, composition, animation, and creation of montages. ImageMagick can read and write many of the more popular image formats (JPEG, TIFF, PNM, etc.). It appeared in Volume 22 as Issues 35-87. ImageMagick is a large system and includes a machine-architecture-independent image and display program, an animator, a window grabber, a montage tiler, a mogrify transformer to scale, rotate and color images, a file format conversion utility, and a color-scale segmenter.
Mark Dobie <mrd@ecs.soton.ac.uk> provided xdrop, an Open Look tool that let you launch other applications by dragging and dropping files or by selecting and pasting text. You can make xdrop run arbitrary shell commands which can use the files/text as part of their arguments. xdrop comes with four examples which demonstrate its use for starting xterms, editing files, looking up man pages and checking spelling. xdrop appeared as Volume 22, Issues 91-92.
An Xlib-based paint program, sp, was contributed as Volume 22, Issues 93-95 by Ken-ichi Chinen <k-chinen@is.aist-nara.ac.jp>. sp requires X11R5 or R6, a color display, convert, from ImageMagick (above), and xwd from the core X distribution.
Previews from alt. sources
Here are some highlights of what is to come in the mainstream groups.A new version of an X/Motif day planner, plan, with the long-promised PostScript output, was posted by Thomas Driemeyer <thomas@bitrot.in-berlin.de> on June 4, 1994 in 13 parts (00-12). plan is a schedule planner based on X/Motif. It displays a month calendar similar to xcal, but every day box is large enough to show appointments in small print. By pressing on a day box, you can list and edit the appointments for that day. Alarms are supported and programmable. New features in 1.3 include PostScript output, Japanese character support, improved holiday file format, recycle option, better time string parsing, and better highlighting.
Version 1.05 of pts, the X Problem Tracking System, was posted on June 19, 1994 in 16 parts by Dean Collins <dean@halcyon.com>. PTS/Xpts helps with system management. It lets people report problems and lets sysops record their solutions to those problems. It also helps automate other related communication activities. Some might categorize this program as "help-desk" software or "groupware." This version introduces a command-line utility for reporting problems. It can also be used interactively. Also, all filenames in this posting are now 14 or less characters long.