Columns


On The Networks

Where to Get the Source

Sydney S. Weinstein


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

This is my fifth anniversary in writing this column, and before I go on to some highlights, I want to update you on where to get the sources mentioned in this column. One method I can tell you won't work is e-mailing me for it. I write these columns based on the CUJ production schedule, which is months ahead of when you see them. So the items I write about are long since gone from my local disk before you even know I have written about them.

However, all is not lost. Many Internet sites do archive postings that were made to the USENET Network News source groups. And with the increasing availability of Internet access, its becoming even easier to reach them.

First, the quick overview: "On The Networks" covers articles posted to several of the source groups on USENET Network News: comp.sources.games, comp.sources.misc, comp.sources.reviewed, comp.sources.unix, comp.sources.x, and alt.sources. (However, comp.sources.reviewed is a bit quiet of late.) Each of these groups is like a section of a large electronic magazine called USENET Network News. I call it a magazine, and not a bulletin board, partly because of the way its "news" is distributed. Unlike a bulletin board, requiring each reader to access a central machine to read the messages, USENET Network News arrives on a subscription basis at each participating computer site.

Since most participating sites keep news articles online for a short period of time (usually less than two weeks), by the time a piece of software appears in this column it will have been expired and deleted for a long time. Thus it is necessary to access a news archive site.

Many sites around the country have agreed to archive specific news groups. These archive sites are listed in the comp.archives.news group. Many archive sites also identity themselves as such in their USENET Mapping Project map entry. Some sites have even been listed in this column. These sites allow remote computers to access their archives to retrieve the sources. How you access the archives depends on where they are, and how that site has set up access. Most archives are available for either FTP (file transfer protocol, a TCP/IP protocol used by internet sites) or UUCP access and a few even allow both.

If a site supports FTP access, you need to be on the Internet to access them. FTP allows for opening up a direct connection to the FTP server on their system and transferring the files directly to your system. FTP will prompt for a user name and optionally a password. Most FTP archive sites allow the user name anonymous. FTP may then prompt for a password; any password will work, but convention and courtesy dictate that you use your name and site address for the password.

Recently CompuServe and AOL have announced plans to provide FTP support, however there are already many local Internet access providers across the country. I've seen a rash of books lately that list various Internet providers. A trip to the local computer bookstore should provide you with a list from which to start your search.

If a site supports UUCP access, anyone with UUCP can access the archives. Most sites of this type publish a sample entry for the Systems (L. sys) file showing the system name, phone number of their modems, the connection speeds supported, and the login sequence. Using the uucp command you can poll the system directly and retrieve the software. Many sites post time-of-day restrictions on access to their modems. Courtesy dictates that you follow their requests, and some sites use programs to enforce the limits. Be sure to call early enough to complete your transfer in the allotted time.

How to Decide What to Retrieve

When I list a package archived in the moderated groups I provide five pieces of information for each package: the Volume, Issue(s), archive name, the contributor's name, and their electronic mail address. My listing will explicitly name the volume and issue numbers. I show the archive name in italics, and list the contributor's name followed by their electronic mail address, in angle brackets (<>).

To locate a package via WAIS or archie, use the archive name — the short, one-word name in italics shown with each listing. To find the file at an archive site, use the group name (listed in this column's section header), the volume name, and the archive name. Most archive sites store the postings as group/volume/archivename. The issue numbers tell you how many parts a package was split into when posted. You can check the issue numbers to be sure you get all of the parts.

I also report on patches to prior postings. These patch listings also include the volume, issue(s), archive name, the contributor's name, and their electronic mail address. Different archive sites store patches differently. Some sites store patches along with the original volume/archive name of the master posting. Some sites store them by the volume/archive name of the patch itself. The archive name listed is always the same for both the patch and the original posting.

alt. sources, being unmoderated, does not have volume and issue numbers. So I report on the date in the "Date:" header of the posting and the number of parts in which it appeared. If the posting was assigned an archive name by the contributor, I also report on that archive name. Archive sites for alt.sources are harder to find, but they usually store things by the archive name.

Where to Retrieve It

Let's say you've read this column, and you've figured out what you want, and how to specify it in terms of archive name, group, volume name, etc. The problem then is finding out which sites archive which groups, and how to access these archives. I again refer to the articles by Kent Landfield of Sterling Software and Jonathan I. Kames of the Massachusetts Institute of Technology, posted to comp.sources.wanted and news.answers. These articles appear weekly and explain how to find sources.

As a quick review, here are the steps:

I. If you know which sites archive the group, derive the path name for the item. Most archive sites keep their information in a hierarchy ordered first on the group, then on the volume, and last on the archive name. These together usually make up a directory path, as in comp.sources.unix/volume22/elm2.3. In that directory you will find all of the articles that made up the 2.3 release of the Elm Mail User Agent that was posted in Volume 22 of the comp.sources.unix newsgroup. If you do not know the archive name, but do know the volume, each volume also contains an index file that can be retrieved and read to determining the archive name. One common publicly accessible archive site for each of the moderated groups in this column is UUNET (ftp.uu.net).

II. If you do not know which sites archive the groups, or whether any site is archiving a particular item, (because they are not archiving the entire group), consult archie. (See "Archie At Your Service," CUJ, August 1991, Vol. 9, No. 8). archie is a mail response program that tries to keep track of sites reachable via FTP that have sources available for distribution. Even if you cannot access the archive site directly via FTP, it is worth knowing that the archive site exists because there are other ways of retrieving sources available via FTP.

III. If you know the name of the program, but do no know what group it was posted in, try using archie and search based on the name. Since most sites store the archives by group and volume, the information returned will tell you what newsgroup and volume it was posted in. Then you can retrieve the item from any archive site for that newsgroup.

IV. If you do not even know the name, but know you are looking for source code that does xxx, retrieve the indexes for each of the newsgroups and see if any of the entries (usually listed as the archive name and a short description of the function) look reasonable. If so, try those. Or, make a query to archie based on some keywords from the function of the software and perhaps it can find items that match.

CD-ROM Archives Available

Even if the above access methods don't work for you, you can buy CD-ROMs that archive sources from USENET and from other services as well. Two of the larger publishers are Walnut Creek CD-ROM and Prime Time Freeware.

Walnut Creek CD-ROM, 1547 Palos Verdes Mall, Suite 260, Walnut Creek, CA (800) 786-9907 or (510) 947-5996, publishes several CD-ROMs each year. Some contain the Simte120 MS-DOS Archive, others the X and GNU archives, and still others MS-Windows sources, and other collections of sources and binaries. Disks run from $25 to $60 each (varies by title) plus shipping. In addition, they offer those hard-to-find CD-CADDYs at reasonable prices.

Prime Time Freeware, 370 Altair Way, Suite 150, Sunnyvale, CA 94086, (408) 738-4832, <ptf@cfcl.com), publishes twice a year a collection of freely distributable source code, including the complete USENET archives. Their disks run about $60 each set plus shipping. They also offer a standing subscription plan at a discount.

Now it's time to look at some of the new stuff on the 'net.

Perl Shines Bright Anew

Perl 5.000 was finally released after a long beta period. Perl 5.000 is a cleaner and more portable version that supports a greatly simplified grammar and a tighter, faster interpreter. Perl, the interpreter for the Perl Programming Language, is a combination of sed, the shell, and awk. Perl is an extremely useful tool for writing scripts and filters. It has been ported to UNIX and VMS, and ports of 5.000 to MS-DOS and Windows/NT are in the works. Additional features in 5.000 over version 4.036 include the following:

In addition the documentation has been entirely overhauled into both standard man interface and HTML versions.

Perl 5.000 was posted as perl in Volume 45, Issues 64-128 of comp.sources.misc and contributed, as usual, by Larry Wall <lwall@netlabs.com>.

Slip-Like Connections

Michael O'Reilly wrote and Bill C. Riemers <bcr@physics.purdue.edu> submitted term-2.1.2 for Volume 28, Issues 164-172 of comp.sources.unix.term simulates many Slip-like features through an ordinary user's account. term requires no kernel support on either end, and no root access on either end. It is built to run over a modem to connect a non-internet machine with an internet machine. If your machine is of the former type, and you don't have slip/ppp, then term is for you. If you do have slip/ppp, then you should probably use it instead.

term is run at both ends, and does multiplexing, error correction, and compression across the serial link between them. term is designed to be as efficient as possible, with good response time, even over slow modems. term behaves the same from both ends. A user on either machine can connect to the other.

term includes several clients, including the following:

trsh This client runs a shell on the remote end. It's like a normal login (similar to "rsh" without the need to specify a hostname).

tupload The usage is tupload <local file> -as <remote file>.file uploads a file, taking the name of the local file and the optional argument as the name of the remote file. This format is a bit more robust than that of "rcp," but at the price of not allowing specification of a different host or username.

txconn This client hangs around in the background waiting for X connections, and re-directs them to the local X server. txconn is intended to be run on the remote machine.

tredir This client lets you alias a port on one system to another, i.e., 'tredir 4000 23' run on host. 'a' means that anyone telneting to port 4000 on 'a' will get a login prompt of machine 'b'.

tshutdown Terminates term.

Magic Image Manipulation

ImageMagick, the rather complete image manipulation package for X, was updated by Cristy <cristy@eplrx7.es.duPont.com> for Volume 22, Issues 35-87 of comp.sources.x.

ImageMagick is an X11 package for display and interactive manipulation of images. The package includes tools for image conversion, annotation, compositing, animation, and creating montages. ImageMagick can read and write many of the more popular image formats (e.g. JPEG, TIFF, PNM).

ImageMagick includes the following:

display This is a machine-architecture-independent image and display program. It can display an image on any workstation display running an X server. display can read and write many of the more popular image formats (JPEG, TIFF, PNM, etc.). You can perform these functions on the image:

import This program reads an image from any visible window on an X server and outputs it as an image file. You can capture a single window, the entire screen, or any rectangular portion of the screen. You can use the display (see display(1)) utility for redisplay, printing, editing, formatting, archiving, image processing, etc. of the captured image.

You can specify the target window by ID or name, or select by clicking the mouse in the desired window. If you press a button and then drag, a rectangle will form which expands and contracts as the mouse moves. To save the portion of the screen defined by the rectangle, just release the button. The keyboard bell rings once at the beginning of the screen capture and twice when it completes.

animate This program displays a sequence of images on any workstation display running an X server. animate first determines the hardware capabilities of the workstation. If the number of unique colors in an image is less than or equal to the number the workstation can support, animate displays the image in an X window. Otherwise, animate reduces the number of colors in the image to match the color resolution of the workstation before display.

animate's color reduction capability allows a continuous-tone 24 bits/pixel image to be displayed on a 8-bit pseudo-color or monochrome device. In most instances, the reduced color image closely resembles the original. Alternatively, a monochrome or pseudo-color image sequence can display on a continuous-tone 24 bits/pixels device.

montage This program creates a composite image by combining several separate images. The images appear tiled on the composite image with the name of each image optionally appearing just below the individual tile.

mogrify This program applies transforms to an image or a sequence of images. Possible transforms include image scaling, image rotation, color reduction, and others. The transmogrified image overwrites the original image.

convert This program converts an input file using one image format to an output file with a differing image format. By default, convert determines the image format by its magic number. To specify a particular image format, precede the filename with an image format name and a colon (e.g. ps:image) or specify the image type as the filename suffix (e.g. image.ps). Specify file as - for standard input or output. If file has the extension .Z, the file is decoded with uncompress.

combine This program combines images to create new images.

segment This program segments an image by analyzing the histograms of the color components and identifying units that are homogeneous with the fuzzy c-means technique. The scale-space filter analyzes the histograms of the three color components of the image and identifies a set of classes. segment uses the extents of each class to coarsely segment the image with thresholding. It determines the color associated with each class by the mean color of all pixels within the extents of a particular class. Finally, segment assigns any unclassified pixels to the closest class with the fuzzy c-means technique.

xtp This is a utility for retrieving, listing, or printing files from a remote network site, or sending files to a remote network site. xtp performs most of the same functions as the ftp program, but does not require any interactive commands. You simply specify the file transfer task on the command line and xtp performs the task automatically.