Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

On the Networks


August 1993/On the Networks

Flop/Flip?

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 [email protected] (dsinc!syd for those that cannot do Internet addressing).

This is getting to be a habit.... Once again, and with no explanation, comp.sources.unix seems to have come back to life, and seems to be emptying out its backlog with a vengeance. Paul Vixie, its moderator, even jokes about comments in postings requesting immediate patch turnaround instead of ten month delays, and delivers on that immediate promise. The highlights:

J. Dana Eckart <[email protected]> provided us with cellular-2.0 for Volume 26, Issues 88-90. It is a cellular automata programming language, Cellang 2.0, with its associated compiler, an abstract virtual machine, pe-scam, and a viewer, cellview. Compiled Cellang 2.0 programs can be run with input provided at any specified time during execution. The results of an execution can either be viewed directly or output as a stream of cell locations and values. This stream of output data can then be fed into cellview for viewing, or it may be passed through a filter that compiles statistics, massages the data, or merely acts as a valve to control the flow of data from the cellular automaton program to the viewer.

Continuing in the science vein, DR Ata Etemadi <[email protected]> contributed chernikov, a stochastic web computation program, for Volume 26, Issue 91. It computes webs produced by the Chernikov equations (see Nature Vol. 326, April 1987) and produces a PGM image based on occupancy of cells. The equations essentially describe the path of a nonrelativistic charged particle rotating about a magnetic field line, and experiencing a periodic electric field impulse.

Stewart Forster <[email protected]> contributed tcx-1.1, his version of a transparent compression routine for executables. Posted in Volume 26, Issue 97, TCX allows you to compress UNIX executables using a compression algorithm of your choice. Once compressed, the executable may be run as normal. The system provides transparent uncompression, (then execution), and finally recompression of the executable. Recompression takes place after an installer-defined interval of disuse, so one may balance the disk and CPU resources of the machine according to local needs, hence allowing for a smooth control of compressed disk space. Features include emergency procedures in case of disk shortages when uncompressing, and a fairly robust scheme whereby files will not be lost if the system crashes during operations. It also works for NFS mounted executables.

An updated release of Gray Watson's <[email protected]> malloc-1.2.0 was posted in Volume 26, Issues 98-102. This drop in replacement for malloc aids in debugging heap related problems.

Multicasting is always a hot topic in current networking research and Casey Leedom <[email protected]> has contributed mcast, an experimental implementation of a multicast communication system from Lawrence Livermore National Laboratory. It allows applications to communicate in a broadcast-like manner with other applications. multicast would typically be used by the parts of a distributed application. The system consists of an application programming interface (API) modeled on the Berkeley socket abstraction, a communications server, and a complete set of manual pages all posted in Volume 26, Issues 105-108.

Another interesting multicast service on networks, Radio-2.0.2, from Guido van Rossum <[email protected]> allows you to turn your LAN of workstations with sound capabilities into a broadcasting system. Often also considered a "bandwidth waster," it uses UDP packets to broadcast the audio as U-LAW samples at 8000 1-byte samples/second, using about 1 percent of available ethernet bandwidth per channel. It was posted in Volume 26, Issues 162-163 with Patch 3 in Volume 26, Issue 234.

A companion Motif program, tuner1.4, contributed for Volume 26, Issue 164 by Jack Jansen <[email protected]>, allows selecting an ethernet radio station to listen to.

Another companion program is cdsendl.2 from Sjoerd Mullender <Sjoerd. [email protected]>. It reads audio CDs over the SCSI bus, converts the data to a format suitable for broadcast, and writes this converted data to standard output. Optionally, it also plays the music over the system's own speakers. Currently cdsend only works on certain Silicon Graphics systems, as it requires the ability to read the CD audio data over the SCSI bus.

funnelweb from Ross Williams <[email protected]> is a literate-programming tool that emphasizes simplicity and reliability. It provides a macro facility, and assists in the production of typeset documentation. FunnelWeb runs on most popular machines (Sun, VAX, Mac, PC) and its highly portable source code in C is freely available under a GNU license. Posted in Volume 26, funnelweb is Issues 121-140.

Tired of more and pg, think less is too little, try most-3.2 from John E. Davis <[email protected]>. It is a more/less type program that runs on both VMS and UNIX systems. In particular it runs on Ultrix and SunOS versions of UNIX. This is not a general purpose paging program, but one restricted to VTxxx compatible terminals. However, this is not as restrictive as it might at first seem since many terminals, including xterm, understand the VTxxx escape sequences. most is Volume 26, Issues 148-149.

An update to an old reliable communications program for UNIX/XENIX was posted to Volume 26, Issues 150-152 by Jean-Pierre Radley <[email protected]>. xc-4.-1 runs both interactively and from scripts. It includes Xmodem, Compuserve B+ internally, and the ability to tie the stream to standard-in and out of a process to allow any communications protocol to be used. It has a dialing directory with pre- and post-session commands for the modem and honors cu/uucp LCK file locking conventions.

A competing program, pcomm-2.0.2, was posted for Volume 26, Issues 153-158 by Emmet Gray <[email protected]>. Pcomm is menu-driven and designed to operate similarly to the MS-DOS program ProComm. It includes a large dialing directory, full scripting, automatic redial, six built-in file transfer protocols, external file transfer protocol support, data logging, printer logging, screen dumps, and keyboard macros.

Chris Wolfhugel <Christophe.Wolfhuge@univ-lyonl .fr> contributed a mailing list manager, tulp-3.0.3, for Volume 26, Issues 160-161. It implements a subset of the commands of the well-known LISTSERV, used mainly in the Bitnet world. It can also be used, in a very limited manner, as a mail-server for text archives. TULP allows an easy management of mailing-lists. Once their lists are created by the TULP-manager, users can subscribe, signoff, get the list of subscribers, or retrieve past articles by sending mail to an automatic software, typically [email protected]. The implemented commands are really close to the syntax used on Bitnet-Listserv running on IBM mainframes.

Shell development continues, as demonstrated by Steve Baker <[email protected]> and his ssh-1.7 in Volume 26, Issues 167-170. This shell supports job control, string, numeric and null variables, recursive string variable insertion, aliases, logical assignments, advance wild card support, enhanced redirection, and piping, C-like expressions, a history file, secondary password support, key macros and gold key support, command-line editing, and many more features, including over 50 built-in commands.

Sun has contributed to the public-domain a set of standards for remote procedure calls (RPC) and a library to use them. Michael Lipp <[email protected]> has updated his C++ version of an interface to Sun's RPC in mnlrpc++-2.3.1. It uses templates and was built using the GNU c++ compiler. This C++ RPC interface was posted as Volume 26, Issues 181-3.

An update to the portable strftime-3.0 was issued by Arnold Robbins <[email protected]> for Volume 26, Issue 208 with a patch in Issue 235. strftime is the POSIX-compliant date-to-string conversion utility for C. This version also includes a POSIX-compliant date command.

Peter Miller <[email protected]> has provided for Volume 26, Issues 209-220, cook, a make-type program. It is a tool for constructing files. It is given a set of files to create, and recipes of how to create them. In any non-trivial program there will be prerequisites to performing the actions necessary to creating any file, such as include files. The cook program provides a mechanism to define these. The cook program also provides a facility for implicit recipes, allowing users to specify how to form a file with a given suffix from a file with a different suffix — for example, to create filename.o from filename.c.

On the patch front, Robert H. Forsman, Jr <thoth@lightning. cis.ufl.edu> provided patch 1 to netpipes in Volume 26, Issue 96. This patch fixes some problems with portability to systems without fcntl and for UNIX-domain sockets.

Chris Lewis <clewis@ferret. ocunix.on.ca> added patches 11-16 (Volume 26, Issues 202-207) to psroff, the old-troff/di-troff to PostScript or Laserjet conversion filter. Highlights of the changes include many optimizations in the PostScript output greatly shrinking the resulting file, a new configuration checker, use of scalable LJ fonts, support for LJ di-troff graphics via PCL4, seamless integration into groff, support of the European character set, and many bug fixes.

Reducing Connect Time

There were several utilities aimed at reading mail and news in comp.sources.misc.

If you pay connect charges to read mail or news, and wish to read it offline, Steve Belczyk <[email protected]> has contributed uqwk for Volume 36, Issue 8 with patches in Volume 36, Issue 70 and Volume 37, Issue 31. This program collects all a user's unread mail or news and formats it into something called a QWK packet, then downloads the packet. Mail and News can then be read offline, saving phone charges. QWK readers exist for almost every machine.

If you can do SLIP or TCP/IP, Stephen Hebditch's <[email protected]> slurp might come in handy. Posted in Volume 36, Issues 13 and 14, it's an advanced passive NNTP client for UNIX. It will connect to a remote NNTP server and retrieve articles in a specified set of Usenet newsgroups that have arrived after a particular date (typically the last time it was invoked) for processing by your local news system. It replaces nntpxfer from the NNTP 1.5.11 reference implementation and nntpget from the INN distribution.

Another simple, useful utility is msend from Joe Ilacqua <[email protected]>. Its a program for sending one-line messages to other users on both local and remote systems. msend can also do local and remote broadcast messages in the manner of wall and rwall. It differs from write in that it identifies its message on each line, and starts the message so it appears on a line by itself. Msend is in Volume 36, Issue 18.

If your needs include translations between character sets, then Volume 36, Issues 23-32 are should be considered. translit from Jan Labanowski <[email protected]> is a powerful tool for such tasks. It converts an input file in one representation to the output file in another representation using the appropriate user-defined transliteration table. A transliteration table allows for very elaborate transliteration tasks and includes provisions for plain character sequences, character lists, regular expressions (flexible matches), SHIFT-OUT/IN sequences and more. The program comes with documentation and examples of popular transliteration schemes. The Russian language serves as an example.

In the same vein as cellular-2.0 mentioned previously, Joerg Heitkoetter <[email protected]> submitted hodge-c for Volume 36, Issues 34-67 (yes, it's big). HODGE-C is a (mostly ANSI) C language implementation of Gerhard & Schuster's hodge-podge machine. It implements a class of cellular automata that resembles very closely autocatalytic chemical reactions like, for example, the Belousov-Zhabotinskii (BZ) reaction.

The chiaro suite of image analysis programs was contributed by James W. Birdsall <[email protected]> for Volume 36, Issues 71-88. The the Chiaro Suite is group of image analysis programs covering several popular formats (GIF, IMG, JFIF, PCX, PBM/PGM/PPM, SunRaster, Targa, XBM, and BMP). At present, only the GIF format is extensively supported; additional formats will be added in future releases. The Chiaro Suite is currently comprised of three programs: chils, gifstrip, and gifcheck. A manual page for each is provided. Since this is a work in progress, I expect we will see updates from time to time.

An interesting concept is ldb, backgammon by e-mail or Long Distance Backgammon from Perry R. Ross <[email protected]> and posted in Volume 36, Issues 98-109. This is a program that lets two people easily play backgammon by e-mail. It currently runs only on character-oriented terminals and takes care of rolling dice, checking moves, and communicating with your opponent's ldb via e-mail. Duplicated mail messages are rejected, and lost messages may be regenerated easily. Gammons and backgammons are detected, and the game value is automatically calculated at the end of the game. Doubling is fully supported, and automatic doubles (when there is a tied opening roll) may be enabled at the user's option. Ldb also allows you to enclose a two-line comment with each move which will be displayed on your opponent's screen.

Another clone of the vi editor was contributed for Volume 37, Issues 1-24 by Bram Moolenaar <[email protected]>. vim, Vi IMitation has full vi compatibility (except for the Q command) and includes most Ex mode commands. Extra features above vi include: multilevel undo, command-line history, improved command-line editing, command type-ahead display, command to display yank buffers, possibility to edit binary files, file name stack, support for Manx QuickFix, shows current file name in window title, and on-line help.

The newest release of sybperl was contributed for Volume 37, Issues 33 and 34 by Michael Peppler <[email protected]>. New in version 1.6 of this extension to Perl to support Sybase database access include integration of outstanding batches, improved dblogin, allowed associative array as a return from dbnextrow, and support for the new datatypes.

Chris Thewalt <[email protected]> has released an update to his input-edit package in Volume 37, Issue 50. This is a small, simple package to add input line re-editing and history usage. New features in this version allow for saving of type-ahead in BSD mode, add a prompt-width calculation, and add a header file for use by the calling function, as well as some bug fixes.

A program, not too dissimilar to an assignment I give my students in class was contributed by Lee M. J. McLoughlin <[email protected]> for Volume 37, Issue 53. buffer speeds up writing tapes on remote tape drives. The program splits itself into two processes. The first process reads (and reblocks) from stdin into a shared memory buffer. The second writes from the shared memory buffer to stdout. Doing it this way means that the writing side effectively sits in a tight write loop and doesn't have to wait for input. Similarly for the input side. It is this waiting that slows down other reblocking processes, like dd.

On the patch front, psutils received two patches. Patch 2 (Volume 36, Issue 33) allows pstops to work with arbitrary global coordinate systems and fixes some bugs. Patch 3 (Volume 26, Issue 95), which takes it to Patchlevel 10, adds dynamic page sizing removing the maximum page limit, improves psselect to allow end of document relative page selection, and fixes up WordPerfect 5.1 support.

The options C++ class library for parsing UNIX command-line options received patch 1 in Volume 36, Issue 92 from Brad Appleton <[email protected]>. Options understands both short options and the gnu-long-options styles. The patch allows compilation with g++ and an OptIstreamIter class to iterate over options from an input stream.

Brad also issued patch 1 to cmdline C++ library and cmdparse command to go along with the options patch. In Volume 36, Issue 92, this patch updates g++ compatibility and adds description strings and sequence items to the command line.

remind received patch 5 (Volume 37, Issue 28) from David F. Skoll <[email protected]>. It adds the Hebrew calendar to this sophisticated calendar/alarm program. He also sent in patch 6 (Volume 37, Issue 35) which allows adding arbitary PostScript code to the PostScript calendar and of course some bug fixes.

An Old Sunview Favorite in X

xblockbuster, an favorite game from Sunview, is now ported to X and contributed to comp.sources.x by Mark Wedel <[email protected]>. XBlockbuster is a variation of the break-out type games, only a bit more complex in the type of bricks it has and the effects the bricks have. It should run on any X11 system (color or black-and-white). Quoting the older Sunview version: "It supports many more brick types, and stages are built from various building blocks, some of which are based on recollection from analogous blocks in the video game, others, in particular the interesting ones, are new." The stages can be defined from the ASCII map codes using any text editor. XBlockbuster appeared as Volume 19, Issues 44-48 with patches in Issues 49 and 79.

Patch 1 (Volume 19, Issue 43) and patch 2 (Volume 19, Issue 78) to xgetftp were contributed by Salim Alam <[email protected]>. The patches are mostly bug fixes, but it also does include a better Makefile for sites with xmkmf problems and better customization for different archie clients.

Is it an engineering simulation or a game? Well, it's a bit of both. xspringies is a mass and spring simulation system. Written using Xlib only, no widget sets are required. It uses an off-screen Pixmap and the frame is drawn from this map at 30 frames/second, which can cause blinking problems on slower systems. It was posted in Volume 19, Issues 53-68 and contributed by Douglas DeCarlo <[email protected]>.

Marc W. Mengel <[email protected]> contributed logwatcher, a multiple-mailbox widget application that lets you associate shell commands with clicking on various mailbox widgets, letting you set the bitmap displayed, and placing a name under each bitmap. A simple example is the included xbiff.cf config file which puts up two mailboxes watching two mailfiles. It was originally designed to watch console logs from the Purdue/OSU conserver package, but as shown, has other uses. Logwatcher appears in Volume 19, Issue 72.

jetedit, a Motif programmer's editor, was contributed for Volume 19, Issues 80-83 by Duane Clark <[email protected]>. It has a Mac-like interface, along with features useful to C programming such as: multiple undos, line-number indicator, goto line number, find and replace, tabbing in and out a block of text, automatic C syntax sensitive indenting (which can be easily configured to suit the style you want, or disabled), and a clipboard with the ability to cut and paste between editors, even if they are running on different hosts. All of the configuration options are set through dialogs. In addition, they can be set to your desired defaults through resources in your .Xdefaults file. Patches were posted in Volume 19, Issue 86 and 87.

An update to xephem, an interactive astronomical ephemeris program for X Window systems, was contributed for Volume 19, Issues 110-130 by Elwood Downey <[email protected]>. It computes lots of information about the planets and any solar system objects for which orbital elements are available. A sample database of some 16,000+ objects is included in the release kit. Xephem also displays information about the moons of Earth, Jupiter and Saturn, Mars' central meridian longitude, and a subsolar view of Earth. Xephem displays all information in user-configurable tabular menus as well as with schematic graphical displays. Xephem can also search for arbitrary circumstances among all objects, generate and display plots of all computed information and generate tabular listings of all information. This version requires the Motif widget set at version 1.1 or higher.

No Reviews

The reviewers for comp.sources.reviewed seem to have gone to sleep, but the postings are timing out and being posted anyway, sans reviews, by the moderator.

chipset-2 was contributed for Volume 3, Issues 1-11 by Paul Sander <[email protected]>. This revised version of the Software ChipSet reusable software components includes changes from the reviewers from the last version, some bug fixes and some enhancements. Changes include unpacking and build instructions, a verify target to the top-level makefile that verifies that the package unpacked properly. Sander documentedq the build scaffolding and procedures for adding new components to the package, rewrote the build scaffolding so that all configurable options are collected into one file and default rules are collected into another common file, added aliases for the spotless target including clobber, veryclean, and made about seven other additions.

An updated release of Brett K. Carver's <[email protected]> am-2.7 loan amortization program was posted in Volume 3, Issues 17 and 18. It's a creeping featurism release and adds all kinds of "Wouldn't it be nice if" features to the program. It has quite a large amount of flexibility for a regular-payment amortization, but is not set up for intermittent payments.

Patch 3 to mawk was posted in Volume 3, Issue 12. From Michael Brennan <[email protected]. com> this update adds some performance enhancements, more configurations including coherent, 386bsd, and linux, and of course, some bug fixes. mawk is a awk (intrepretive language) clone.

Patch 11 to deliver was contributed by Chip Salzenberg <[email protected]> for Volume 3, Issue 15. It fixes some bugs, especially for the NFS configurations. Deliver is a mail processing agent to sort through and deliver your mail.

Arcade Time

All quiet on the comp.sources.games front, but the arcade people do have a few.

Phil Goetz <[email protected]> contributed his updated xasteroids3 for Volume 17, Issue 34. This X11/Xlib game uses just the basic X calls, and displays slowly on color screens, but works fine on monochrome. Improvements include better collision detection, explosions, high score script, aggressive enemy at higher levels, and some others.

A new game was contributed by Johannes Sixt <[email protected]> for Volme 17, Issue 74. malawi is an X11 game using only Xaw. It is a strategy board game for two players played on a 6x6 raster. Each player has a base line on the board, six sticks, and 12 eumels. Initially, the six sticks are positioned on the base line, each carrying two eumels. The goal of the game is to move a stick that carries at least one eumel onto the opponent's base line such that the eumels carried by the stick cannot be captured immediately by the opponent. To achieve this goal the sticks can be moved, eumels can be redistributed, and opponent's eumels can be captured. There are always six sticks per player in the game, but the number of eumels will decrease (and never increase) as they get captured.

Patch 1 to dinkum3 was contributed for Volume 17, Issues 35 and 36 by Gary Allen <[email protected]>. It provides a Macintosh makefile and a port to the Coherent operating system.

Patch 4 to xasteroids added HP portability. It was contributed for Volume 17, Issue 37 by Qiang Alex Zhao <[email protected]>.

Previews from alt.sources

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

An extension to C source debuggers to provide a high-level debugging language was posted in seven parts on February 24, 1993 by Michael Golan <[email protected]>. It extends any debugger you have source code for (and includes changes for gdb). An example of its extensions include asking the debugger to print values of an array that are greater than some other value. It adds if statements, loops, and other language constructs to the debugger commands.

An X front end to the radio program mentioned previously was posted on April 28, 1993 by Luis Fernandes <[email protected]>. It includes a slider for volume, and a toggle for speaker or headphone jack. It does not tune multiple stations.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.