Columns


On the Networks

You asked for it — X

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).

Either no one opposed to reporting on X sources contacted me, or everyone is in favor of tracking the comp.sources.x newsgroup. Either way, I have started tracking it, and, starting with this column, will be reviewing the major postings in this group as well. The postings in comp.sources.x are archived at many sites. (See my column in the February 1992 issue for how to find archive sites.)

X-based games seem to appear in either the X or the Games news groups. One example of this is xhearts, posted by Mike Yang <mikey@sgi.com> which appeared in Volume 15, Issues 168-173. This is the traditional hearts card game with three interface options. The first is curses for character-based terminals. The other two are X-based. A Motif version and an Athena Widgit (aw) version. This version is a multi-player game and supports Berkeley-style internetworking.

On the fun side (are computer games fun?), Philip Schneider <pjs@paz.dec.com> has modified the old standby Xclock, from the MIT tape into catclock for Volume 16, Issues 31-34. In addition to the old standby's of analog and digital faces, he has added Motif widgets to support a new cat mode. The cat mode is based on the famous Kit-Cat(R) plastic wall clock. In addition, the alarm mode that was in the X10 version and missing from the X11 version of Xclock has been added back to his version.

A 3-D wireframe viewer, x3d, was submitted for Volume 16, Issues 46-51 by Mark Spychalla <spy@castlab.engr.wisc.edu>. It takes a list of segments (or points) and allows displaying the resulting objects on the screen. The object can be rotated on any axis, and the position of the viewer can be changed relative to the object.

One of the major postings this period is vex.v2r2. This is a group of extensions to the X Windowing-System to support real-time video for displays that have video adapters. Typically, these display adaptors allow one or more analog signals to be digitized into an X drawable. Submitted by David Carver <dcc@athena.mit.edu>, vex.v2r2 is Volume 16, Issues 52-80, with patches 1-3 in Volume 16, Issues 107-109 and patch 4 in Volume 17, Issue 21.

With X, you have a desktop on which all windows must reside. This desktop is normally the size of the display. However, using the OpenLook Virtual Window Manager, the desktop can be larger than the display and scrolled just as windows can be scrolled. Scott Oaks <scott.oaks@east.sun.com> contributed olvwm v3.0 for Volume 15, Issues 147-167, with patch 1 in Volume 16, Issue 91. After installing this package on my system, I can appreciate having multiple desktops for each of the projects I am working on, and can switch projects just by scrolling my desktop.

For those chronically late for appointments, and not running the calendar manager from Sun, Simon Marshall <S.Marshall@sequent.cc.hull.ac.uk> submitted xalarm v3.02 for Volume 16, Issues 36-38, with patch 1 in Volume 16, Issue 92. xalarm provides pop-up reminders of future events, like the leave program. It even has a snooze function.

A very simple time-allocation program, to track the time you spend on projects was posted as timex by Harald Tveit Alvestrand <harld.avestrand@delab.sintef.no> in Volume 16, Issue 95. It puts up a window containing a list of projects. Clicking on a project activates the timer for that project, recording the time you spend on that project.

xcmdpanel from Christopher Alex North-Keys <erlkonig@gnu.ai.mit.edu>, in Volume 16, Issues 98-99, provides a simple button to shell command window. Pushing the button executes a shell command assigned to that button.

The ephem program that used to run on dumb terminals has been extended into an X program, xephem. Contributed for Volume 16, Issues 112-135, by Elwood Downey <e_downey@kwking.cca.cr.rockwell.com>, xephem is an interactive astronomical-ephemeris program. Support is built-in for all planets as well as arbitrary objects given their heliocentric orbital elements. The tables are compatible with the older ephem program. Output can be in plot or tabular form. (Note: he also posted an update to the character-based version of the program (ephem) in comp.sources.misc as volume 28, Issues 84-92.)

The last large posting this period is xfig v2.1.3 from Brian V. Smith <envbvs@bea.lbl.gov>. x fig is a menu-driven tool to draw and manipulate objects interactively in an X window. The resulting picture can be saved, printed on postscript printers, or converted to a variety of other formats. It was posted as Volume 16, Issues 6-30, with a repost of part 14-25 in Issue 39, and an additional driver for xgraph in Issue 136.

Another form of reminder system popular on X is a Post-It(R) note style system, that can leave little notes on your workspace. Jeff Bailey <jeff@rd1.interlan.com> provided pan for Volume 16, Issues 137-142.

A text editor designed for the multi-windowed environment of X was submitted by Charlie Crowley <crowley@chaco.cs.unm.edu>. tcl-editor, based on the tcl macro language and the Tk toolkit, provides unlimited number of windows and files, easy move and copy between windows, completely configurable menus, key bindings, titles, and a set of file browsers. Posted in Volume 17, tcl-editor is Issues 2-17.

Smooth Sailing

The backlog is over and things are showing signs of returning to normal. Just over 3MB was posted during the last two months. Here are the highlights.

Ben Smith <ben@btyepb.byte.com> submitted the Byte Benchmark suite for Volume 25, Issues 108-111. This set of programs, byte-benchmarks v3.1, provides a suite of benchmarks similar to sieve and dhrystone to compare the performance of different UNIX machines. It is not as complete as the SPEC benchmarks but it is a lot smaller.

Sometimes the IRS gives as well as takes away. In this case, Larry Bartz <ispin!lbartz> has provided ispin, the Indianapolis Standard Printer Interface for Networked printers, which was developed at the IRS at Indianapolis. It supports printing to networked printers through the standard System V print spooler in a totally transparent method. ispin is Volume 25, Issues 112- 126.

Dan Bernstein <brnstnd@nyu.edu> has updated his pty package to pty4. This new version, Volume 25, Issues 127-135, provides improved security, session management, automatic installation, modularity, more utilities, more libraries, POSIX support, and better documentation. ptys are a pseudo-tty interface for UNIX systems. They can run interactive programs without really having a terminal attached (among other things).

An interactive directory browser and command processor, ils, was posted for Volume 25, Issue 140, by Jack Alexander <alexj@equinox.unr.edu>. ils provides mapping keystrokes to commands that can be chosen for the selected files, in addition to walking the directory structure.

The zip portion of the portable zip/unzip tools, which are compatible with the MS-DOS PKZIP, was contributed for Volume 25, Issues 142-148, by Mark Adler <madler@cco.caltech.edu>. Those familiar with PKZIP already know what this is for. For those who do not, it's a combination of tar and compress functions.

John Walker <throop!kelvin> has submitted for Volume 25, Issue 150, his version of a program to access the atomic clocks kept by NIST (National Institute of Standards and Technology (NBS to oldtimers)) and set the time on his UNIX system. settime accesses the modem, dials the NIST's time number, and then sets the clock to the time string returned from their clock service. The NIST offers this as a "free service." You just pay for the phone call if it's long distance.

Reviews Quiet

With the return of comp.sources.unix, comp.sources.reviewed has become very quiet, as expected. However, there were some postings.

Chip Salzenberg's <chip@tct.com> deliver was upgraded with patch 9 in Volume 1, Issue 49. This patch adds support for SCO XENIX and HP-UX 8.x, documentation on using deliver with MMDF, some more configuration items and some bugs fixes. deliver can process your mail for you when it arrives, automatically filing, replying, or other programmable options for each piece of incoming mail.

A complete re-release was issued for mawk. Volume 1, Issues 50-68, contain version 1.1 submitted by Mike Brennan <brennan@boeing.com>. mawk is an interpreter for the awk programming language as specified in the 1988 awk book. Version 1.1 adds full POSIX 1003.2 draft (11.2) compliance, toupper, tolower, CONVFMT and ENVIRON, ANSI C support, removal of hard code limits, and better MS-DOS support.

Phil Nelson's <phil@cs.wwu.edu> GNU_bc was patched to version 1.02 in Volume 1, Issue 69. This patch is mostly bug fixes.

Updates in misc

Both patches and updated releases abounded in comp.sources.misc. Here are the highlights, plus, of course, some new postings.

Stephen R. van den Berg <berg@messua.informatik.rwthaachen.de> updated his procmail mailing list/server system to version 2.61. procmail can be used to create mail-servers, mailing lists, sort incoming mail, preprocess your mail, or selectively forward certain messages. Version 2.61 was posted in Volume 28, Issues 1-5. New are improvements in the regexp library, better lockfile support, better portability in the autoconfiguration script, improved documentation and of course, bug fixes.

Those who still need to read CP/M disks can get cfx from Carson Wilson <sputnik!carson>. Submitted for Volume 28, Issues 12 and 13, cfx can read normal, squeezed, crunched, CrlZH and library CP/M disks.

Once again, IOzone has been updated, version 1.14 of IOzone was released as Volume 28, Issue 16. This I/O benchmark is used to test system speed for reading and writing various-sized records to normal files. Bill Norcott <norcott_bill@tandem.com> added support for QNX and NeXT to this latest version.

Juergen Weigert <jnweigner@immd4.informatik.uni-erlangen.de> resubmitted screen v3.2 for Volume 28, Issues 18-28. This package provides multiple, full-screen windows on normal character terminals. Each window has its own shell, and a simple escape sequence that switches between the windows. The older IScreen, v3.1.1, had major security problems on SunOS 4.1.1. Those using it on that OS should upgrade to 3.2. In addition, along with bug fixes, this new version adds support for NeXT, Apollo, ULTRIX, SVR4, ISC, SGI, and bsd386. I/O is now eight bit and flow control has been redesigned.

A new version of sybperl, a set of extensions to Perl for accessing the Sybase Database system was released by Michael Peppler <mpeppler@itf0.itf.ch> for Volume 28, Issue 33. sybperl, like its cousin oraperl for Oracle databases, allows native access to the Sybase database system. It is very useful for writing ad-hoc reports. New in this version is support for Perl-based error handlers and limited support for the SYBTEXT data type.

A new version of notation, the chess-notation preprocessor, was released for Volume 28, Issues 36-39, by Henry Thomas <hthomas@ph.tn.tudelft.nl>. Version 3.9 adds more readable and editable TeX output and extensive use of the new Chess macros.

Richard Parvin Jernigan <richid@rice.edu> has contributed a new version of his mbase, multi-user, C database engine. Version 4.0, Volume 28, Issues 40-44, adds support for more systems, including COHERENT and MS-DOS.

An interesting program was submitted by Keith Gabryelski <og@monique.bubble.org> for Volume 28, Issues 70-71. advise is a program that attaches a user (the advisor) to another user's (the advisee) terminal in such a way that the advisor can type for the advisee and view what the advisee's terminal is displaying. It lets one person help another and both see the input and output. It runs on SunOS and SVR4/386.

Version 3 of cproto, a program that generates C function prototypes from source code, was submitted by Chin Huang <zerosan!cthuang> for Volume 28, Issues 100-101. It provides several bug fixes and one major enhancement. It can now convert function definitions between the old K&R style and the new ANSI C format. Patch 1 was posted in Volume 28, Issue 118, to fix a segmentation fault.

astrolog, an astrology calculation program that can calculate birthcharts and give accurate positions of planet objects and house positions at particular times, was contributed by Walter D. Pullen <pullen@cs.washington.edu> for Volume 28, Issues 104-109. It supports different display formats, forms of chart comparisons including graphical charts when compiled for X11.

One of the newer data-compression formats is JPEG, a standardized, compression method for full-color and gray-scale images. JPEG is designed for real images. It is not designed for cartoon or other non-realistic images. It is also a lossy method, meaning that the output image is not identical to the input image. Output-image quality can be sacrificed in favor of compressed image size. The Independent JPEG Group <jpeginfo@uunet.uu.net> submitted jpeg for Volume 29, Issues 1-18. This JPEG system can convert to/from PBMPLUS, Utah RLE, Truvision TARGA, and GIF file formats.

The tin newsreader was updated to version 1.1PL1 by Iain <iain%estevax@unido.informatik.uni-dormund.de> for Volume29, Issues 19-30. tin is a threaded newsreader based more on notes than on the rn type of interface. Changes include many bug fixes plus the addition of the d command to toggle display formats and a startup help message. Note, version 1.1 was posted in Volume 28, but it was quickly superseded by this version.

On the Patch front, jgraph had a virtual flood of patches. First came patch 7.0 in Volume 28, Issue 6. It added many commands and a different algorithm for calculating bounding boxes. This was quickly followed by patch 7.1 in Issue 7 to fix a bug in 7.0. And then patch 7.2 in Issue 8 for another bug in 7.0. Shortly later patch 7.3 was in Issue 17 which fixed more bounding-box bugs and added some performance enhancements. The next patch, patch 7.5, Volume 28, Issue 74, took it directly to 7.5 from 7.3 and added color support.

John F. Haugh II's <dfh@rpp386.cactus.org> shadow, a UNIX shadow password suite had patches 2 and 3 posted as Volume 28, Issues 9 and 10. These fix bugs and add support for SunOS 4.1.1.

The Rayshade Construction Company <rayshade-request@cs.princeton.edu> has submitted patches 3-6 to their major graphics package. These appeared in Volume 28, Issues 29-32. Documentation was updated and bugs were fixed. In addition, more informative error messages have been added.

Patch 4 of mush, the Mail Users Shell was submitted by Bart Schaefer <bart@zigzag.z-code.com> for Volume 28, Issues 67-68. New in this patch are several long-standing bug fixes and many other bug fixes.

Patch 1 to unproto to fix an omission was submitted by Wietse Venema <wietse@wzv.win.tue.nl>for Volume 28, Issue 69. It's a very short patch.

Patch 2 to hp2pbm from Chris Lewis <clewis@ferret.ocunix.on.ca> was posted as Volume 28, Issue 81. This patch introduces built-in support for G3 FAX modems. It also improves performance from 10-25%. Of course, this is designed to work the the PBM package from Jef Poskanzer.

Games Are Big on X

Many of the games in comp.sources.games are also X-based. Highlights are:

An update to xsokoban3 was contributed by Joseph L. Traub<jt10+@andrew.cmu.edu> for Volume 13, Issues 33-35. In addition to the 50 original screens, 35 new ones have been added along with a manual page that explains how the game works.

dominion is a multi-player world simulation game. Each user is the leader of a nation, and makes decisions (political, military, diplomatic, and economic) for that nation. The game is not real-time, each user plays his turn and the game is updated periodically. dominion was contributed for Volume 13, Issues 37-64, by Mark Galassi <rosalia@dirac.physics.sunsb.edu>.

An X11 port of ishido, an entertaining, solitaire game was contributed for Volume 13, Issues 70-71, by John Sullivan <jjs40@cd.amdahl.com>. ishido is a tile game where the goal is to match the tiles as they are laid out on the playing board.

Another X11 game is jetpack, an arcade action game for X. Contributed by Mark Edward Bradley <meb2@cec2.wustl.edu> for Volume 13, Issues 73-76. It can take advantage of screens that support hardware bit-blit or those that do it in software. It uses the three buttons of the mouse, or three keys on the keyboard to simulate a joystick, and actually does it quite well.

Lastly, another X11 game is x4war, an implementation of the Chinese four-state war game. It allows four players to play the game each on their own displays. Each player coordinates a complete army. The goal is to capture the flag of the enemy. It was contributed by Xiaobing Chen <xiaobing@cs.sfu.ca> for Volume 13, Issues 77-79.

Previews from alt.sources

Due to the length of this month's installment, I will have to be extra selective in reporting on alt.sources, so here are the highlights:

An unusual, graphical-editing program, ShoEdit, designed to edit vector-oriented graphics and originally used to draw shoe shapes, was posted on January 31, 1992 in 10 parts by Fernando Pereira <fjp@minerva.inesc.pt>. It requires C++, X11, and MOTIF.

John F. Haugh II <jfh@rpp386.cactus.org> is continuing to polish his beta of idbm with version 0.2.0 being posted on February 7, 1992 in eight parts. idbm is a ISAM database-manager suite and new in the beta are error messages and diagnostics along with bug fixes.

An update to his MOTIF graphical, front end to gdb, mxgdb v1.1.3, was posted on February 21, 1992 in fifteen parts by Jim Tsillas <jtsillas@redtape.ma30.bull.com>. It provides a MOTIF 1.1 version of a graphical interface to the GNU debuger, and is based from the generic xxgdbgraphical interface to gdb.

An update to the widely distributed UNIX security-checking program, cops (1.04) was issued by Dan Farmer <zen@death.corp.sun.com> in 19 parts on March 6, 1992. cops is a static security-checking tool that will check most aspects of a UNIX system for problems. Its goal is to let people fix the security problems on their systems, not to break into systems, and it is reasonably effective.

A simple script-driven testing program, emulator, was posted by George Bogatko <mtcusa@tigger.jvnc.net> on March 14, 1992 in two parts with a quick note on a typo in a third message. It contains two programs, mkscript and runscript that will do script-based testing of a program to see if it is behaving as expected. It does not do performance measurements, but it is free.

One program this period, while not widely portable, is a very interesting concept. The memory-management chip used by the SPARC variant of micro-processors allows for a very specific memory mapping. Using this, Bruce Perens <bruce@pixar.com> has written electric-fence, a program that detects malloc buffer overruns by making illegal references to the bytes immediately following a malloc buffer. Thus, not only write references can be detected, but also read references. The program gets an invalid memory-access trap (segmentation fault) and is immediately stopped allowing for easier debugging. It was posted on March 25, 1992 in one part.