Serendipity

Dean Oisbiod

Issue #18, October 1995

This month Dean shares some of the fortuitous discoveries he's made in his journey through the Infomagic Developer's kit, including ports and clones of DOS programs and some favorite utilities.

The four-CD Infomagic Developer's Kit, which, as you know if you've been following my column, has become my choice for getting Linux, holds a lot of code. In browsing through the disks, I've looked at spreadsheets, text editors, games, and all sorts of interesting programs and packages. This month I'll focus on software that should look very familiar to those of you visiting from the MS-DOS world.

In a previous article I mentioned a WordPerfect demo which demonstrated that some very powerful and popular packages do make their way over from DOS. Though I had problems getting the demo to work, that shouldn't reflect poorly on the commercial product. It shows that Linux is being seriously considered as a valid alternative to the DOS/Windows OS mindset. [That demo is the SCO version. Easier to use will be the native Linux version that is currently being ported by Caldera and is expected to be released sometime 4Q95—ED]

The usual caveat holds. Many of the programs undergo frequent revisions. Some are shareware or freeware versions of commercial programs. Others are just as-is.

Unlike their DOS counterparts, many of these programs include the source code. Some have originated in DOS; others I mention because of their tremendous utility or interest, hence the title of “Serendipity” for this month.

Also, I should mention a change in my computer system since my previous column. I still have a 486/66, but it's now loaded with 16MB of RAM. I don't use a swap file as much, but when it's needed I'll mention it; with 16MB and no swap file, X-Windows runs happier and much faster.

Diving into the CDs...

Utilities

mc, or Midnight Commander, which I have written about repeatedly, is a clone of Norton Commander and an absolute godsend. This program removes many of the hassles of copying and unarchiving. It also reduces your chances of making bonehead mistakes by not allowing you to quickly delete things recursively (something, I have been told by experienced hackers, particularly gut wrenching). To delete recursively, that is, to delete a directory and the files and subdirectories under it, mc requires you to wade through two menus and then type “yes” to a prompt for deletion.

Unlike the DOS or Windows Norton Commander, mc offers some truly unusual choices such as those options found via the f2 key; your choices change depending on whether the cursor is on a directory or a file. If you're on a directory when you press f2, you gain the option of creating a tar file of the contents. If you're on a file, the option changes to include dumping the contents or displaying the file with roff -man. You also have options to edit a bug report and mail it to root (which didn't work for me, probably because (1) I am root, (2) I don't have a network and haven't set up mail, and (3) I don't know any better.) Another option which I both like and dislike is the information hypertext browser. I like it because it provides a lot of useful information; I dislike it because it uses Emacs (or something close to it), and I still haven't mastered many of the commands. mc also offers a useful search capability that will look for most anything anywhere. mc is a must have.

pkgtool, installpkg, explodepkg, removepkg, and makepkg are part of the Slackware setup and are a great set of utilities for file handling. Normally, to install a .gz file I would use mc but I always hated that if I wanted to uninstall the files I'd have to list the tar, remember or write down the files, manually search them out and delete them. installpkg takes care of that by building a script that records where the files went to. When it's time to delete, removepkg reads that script and does the dirty work of deletion. Even better, it won't delete a file if it's in use by some other program. This is a great system for novices. pkgtool is sort of a shell, but I prefer to work directly with the sub-utilities; it temporarily raises my “hacker” factor. makepkg does like it sounds—it makes packages. explodepkg is very similar to installpkg but it doesn't create or affect scripts. It and installpkg work on Slackware compatible and (tar+gzip) packages.

minicom should look quite familiar to you if you have used the DOS versions of the Procomm, Telix, or QModem communications programs. The alt commands are mostly here but where, for example, in Telix you'd choose alt-o for the options screen, in minicom the sequence is alt-a-o. alt-a precedes most of your choices. It took me a very short time to get used to this arrangement. minicom doesn't have as many options as the DOS counterparts. For example, you only get two terminal emulations—VT102 and ANSI—and four protocols for sending/receiving files: Zmodem, Ymodem, Xmodem, and kermit, but the options are enough. This program works well, initiating Zmodem for downloading without hitch, allowing a variety of configuration options, and even including my favorite two options: text capturing (alt-a-l) and screen scroll back(alt-a-b)---but still could use some improvements, such as adding more options to the somewhat limited dialing directory. I hope that the authors continue to support and add to this program; I like it and greatly prefer it to the X-Windows program seyon.

Two small utilities that are neither ports from DOS nor clones but are still quite useful are dos2unix and unix2dos. These programs just convert text files to and from Unix and DOS formats, which appears consist of removing or adding carriage return characters as needed. Simple and neat.

Miscellaneous

xfractint---this is a port from MS-DOS of what I consider the greatest fractal exploration program ever written. It's free, fast, and fun. Note the “x” starting the name. You'll need X-Windows to run it; it may already be a menu option if you have Slackware—look under “Applications”. I found the program to be essentially the same as the MS-DOS version, with minor differences. Pressing del does not choose the video mode as it does in DOS. Also, the color cycling commands (+, -) worked but the other cycling option, c, would occasionally freeze the program. Yet these are minor nitpicks—the fun is playing with the variety of fractal types and the parameters that go with each. My personal favorites are color cycling “plasma” and “dynamic”, which give me flashbacks to many of the Grateful Dead concerts that I missed. As an additional fractal exploration tool, you can develop your own fractal formulas—but I'll let you figure out how.

pov-ray stands for “Persistence of Vision—ray caster”, and, like fractint, it's another great program, with an enthusiastic following. To get pov-ray started requires untarring a few files, which for me meant everything but the source code. My usual complaints about unclear documentation hold for pov-ray; the directions did not quite match reality. The instructions suggest creating a pov-ray directory but the files automatically create /pov when untarred. The instructions suggest you add:

setenv POVRAYOPT -l$HOME/povray/include

to .cshrc except that, I figure, /povray should read /pov to match the untarred setup. Also, I couldn't find a .cshrc but I did find /etc/csh.cshrc, which I copied and modified accordingly. From what I can figure, csh.cshrc is the configuration file for the C shell. I also noticed three binaries of pov-ray. Two, povray.s and povray.v, looked exactly the same, or at least were the same size. (I did a file compare and they are different). povray.x was slightly larger. I figured I'd use povray.s.

pov-ray creates Targa graphics files. You'll need to view them and a viewer is not included. The manual suggested either xv or xli. I installed both. xv was on Slackware's XAP disk (note that this program requires libgr, also on the XAP disk, also be installed) and I finally found xli on the Sunsite archive CD-ROM buried in something like /X11/apps/graphics/viewers.

Not realizing that to activate changes to login scripts all I'd have to do is logout and login again, I completely shutdown the system and rebooted.

Returned to DOS to play a round of Terminal Velocity. After again having vital parts of my ship blown to pixel dust, I booted back to Linux to try pov-ray. The viewers sat waiting. csh.cshrc was now activated. I copied a sample file into /pov/bin and typed:

povray.s -w320 -h200 -ichess.pov -otest.tga \
  +ft -a -dG -v

Nothing happened. pov-ray couldn't find the include files supposedly pointed to by .cshrc. The familiar stomach cramps started. I didn't want to RTFM, not 250KB worth of text. Instead I browsed through the various Linux HOW-TO files on the main InfoMagic CD looking for information on shells scripts and login initialization. For the heck of it I modified /etc/csh.login but pov-ray again couldn't find the include subdirectory. Of course: I'm not using the C shell! I use bash. Modifying /etc/profile yielded a similar lack of success. What is going on? Finally I tried the obvious: copying the include files into /pov/bin. Yes, that worked! Sure, it's not as elegant as fiddling with the various configuration files—but this solution worked, and worked easily.

And yet pov-ray wouldn't work completely. It could find the include files but it couldn't start the graphics display. Oh yeah, I had to run it through X-Windows. (I may not have had to do it in X-Windows, but the command -dG tells it to display the picture as it raycasts. When it does so it expects X-Windows.) For about 10 minutes I saw a picture of a chess set develop line by line. While waiting for the picture to finish I read the pov-ray info that it had belched before casting and noted that the binary was compiled with 386s in mind. Later, in reading the instructions, I found the suggestion for recompiling for 486s to speed things up. Now to see the Targa output. I called up xv from my X-Windows applications menu, loaded the file, and saw a chess set. Beautiful! And xv had some options—blur, sharpen, oil paint, spread, and de-speckle, to name a few—that induced more flashbacks. But I wanted to try the other viewer as well. Via a shell I called up xli. I expected a graphics interface; I got a command line reprimand to specify options. Typing xli -help showed that the program offers a tremendous number of options and can manage darn near any type of image, including many I had never heard of, as well as many very familiar in the DOS world. But my lack of familiarity with many of the terms, combined with the command line interface, soured me on xli. I did get the chess set image loaded, but I got no farther, and went back to xv to play some more.

Dean Oisboid, owner of Garlic Software, is a database consultant, Unix beginner, and avowed chocolate addict.