
Linux Gazette... making Linux just a little more fun!

      Copyright &copy; 1996 Specialized Systems Consultants, Inc. linux@ssc.com
      
   
   
   
     _________________________________________________________________
   
   
   
Welcome to Linux Gazette! (tm)

   
   
   Linux Gazette, a member of the Linux Documentation Project, is an
   on-line WWW publication that is dedicated to two simple ideas:
     * Making Linux just a little more fun
     * Sharing ideas and discoveries
       
   
   
   The basic idea behind these two concepts is that Linux is one cool OS,
   whose price for admission is a willingness to read, learn, tinker
   (aka, hack!), and then share your experiences. The Gazette is a
   compilation of basic tips, tricks, suggestions, ideas and short
   articles about Linux designed to make using Linux fun and easy. LG
   began as a personal project of John M. Fisk, and grew to include
   contributions freely provided by a growing number of authors. Linux
   Journal is now publishing the Gazette using material contributed by
   outside authors (note to potential authors). Without these authors
   there would not be a Gazette, and I thank them all. Drop a note to the
   author of anything that you find helpful or instructive--the author's
   e-mail address is included for this very purpose.
   
   Linux Gazette is a non-commercial publication and will remain that
   way. A tar, gzip file containing all issues of Linux Gazette and one
   containing the current issue can be found at ftp://ftp.ssc.com/pub/lg/
   
   
   Thanks to Matt Welsh, coordinator of the Linux Documentation Project,
   for graciously bringing the Linux Gazette under the auspices of the
   LDP. The material included in these documents is covered by a
   designedly liberal copyright: as long as you are using the material
   for non-commercial purposes, you may do with them as you please. For
   information regarding copying and distribution of this material read
   the Copying License.
   
   A new table of contents will appear with each issue that will allow
   you to easily find articles of interest. A search engine is also
   provided to allow you to search all issues for items relating to a
   particular subject.
   
   Have fun!
   
   
     _________________________________________________________________
   
   
   
     * Table of Contents Issue #11
     * Table of Contents Issue #10
     * Table of Contents Issue #9
     * Table of Contents Issues #1-#8
     * Index of All Issues
       
   
     _________________________________________________________________
   
   Search In: [Linux Gazette (TM).......]
   Search For: ______________________________ ______
   
   
   
   
     _________________________________________________________________
   
   
   
  CLICK HERE FOR LINUX JOURNAL'S LATEST HOT LINUX NEWS! 
  
   
   
   
     _________________________________________________________________
   
   
   
Linux Gazette WWW & FTP Mirror Sites

   
   
    For those readers who are accessing Linux Gazette from outside the
   U.S. or are having problems with slow connections at a particular
   site, mirror sites are available worldwide. Thanks to all of the
   people who have kindly offered the use of their WWW and FTP sites in
   order to make this possible!
   
   
     _________________________________________________________________
   
   
   
   Got any great ideas for improvements! Send your comments, criticisms,
   suggestions and ideas.
   
   
     _________________________________________________________________
   
   
   
  LINUX GAZETTE IS PUBLISHED BY:
  
SSC - Publishers of Linux Journal (tm)

   
   
   
     _________________________________________________________________
   
   
   
   Linux Gazette, http://www.ssc.com/lg/
   This page written and maintained by the Editor of Linux Gazette,
   gazette@ssc.com
   
   
     _________________________________________________________________
   
   
   
                                 LINUX GAZETTE
                                       
      Copyright &copy; 1996 Specialized Systems Consultants, Inc.
      For information regarding copying and distribution of this material see
      the Copying License.
      
   
   
   
     _________________________________________________________________
   
   
   
                          TABLE OF CONTENTS ISSUE #11
                                       
   
   
   
     _________________________________________________________________
   
   
   
     * The Front Page
     * The MailBag
     * More 2 Cent Tips
          + Another X Term Title Trick
          + File Decompression
          + Quick Tricks from John Fisk
          + Two Tips for the Price of One
          + The Ultimate Emacs Control M Trick
          + VI Trick
          + XDM Replacement
     * News Bytes
          + News in General
          + Software Announcements
     * Graphics Muse, by Michael J. Hammel
     * Kill-Ring for Xemacs, by Larry Ayers
     * Linus to Move to U.S. in 1997, by Phil Hughes
     * New Release Reviews, by Larry Ayers
          + Sun's Hotjava Browser on Linux
          + The TkGoodstuff Package
          + X-Files
     * TAPR Statement on Spread Spectrum Technology Development, from
       Steve Stroh
     * TCL/TK Installation, by Earl Brown
     * Weekend Mechanic, by John M. Fisk
     * The Back Page
          + About This Month's Authors
          + Not Linux
            
   
   
   
     _________________________________________________________________
   
   
   
   TWDT 1 (text)
   TWDT 2 (HTML)
   are files containing the entire issue: one in text format, one in
   HTML. They are provided strictly as a way to save the contents as one
   file for later printing in the format of your choice; there is no
   guarantee of working links in the HTML version.
   
   
     _________________________________________________________________
   
   
   
   Got any great ideas for improvements! Send your comments, criticisms,
   suggestions and ideas.
   
   
     _________________________________________________________________
   
   
   
   This page written and maintained by the Editor of Linux Gazette,
   gazette@ssc.com
   
    [IMAGE] "Linux Gazette...making Linux just a little less scary!" [IMAGE]
    
   
     _________________________________________________________________
   
The Mailbag!

   Write the Gazette at gazette@ssc.com
   
   
     _________________________________________________________________
   
   
   
   Date: Sun, 29 Sep 1996 01:46:02 -0700
   Subject: MPEG 
   From: Tristan RAMBO Savatier tristan@mpeg.org
   
   
   FYI: Linux now has a fast MPEG software player !
   
   Check MpegTV at http://www.mpegtv.com/
   
   --Tristan
   
   
   
     _________________________________________________________________
   
   
   
   Date: Mon, 30 Sep 1996
   Subject: Help?? Firewalling under 2.0.X
   From: jwells@nwlink.com (James E. Wells)
   
   
   Greetings,
   
   I know this message should normally be sent to one of the linux
   newsgroups, however I felt this to be a bit more efficient. Basically
   the problem is that I can't seem to get IP Masquerading going under
   2.X. I have enabled firewalling / masquerading and disabled forwarding
   / bridging. When I look at /proc/net I have two alias files which have
   to do with the IP Aliasing, and I have IP Accounting, Forwarding,
   Input, and Output, however I have no Masquerading. I have rebuilt the
   kernel a number of times to no avail. I have toyed with ipfwadm a
   number of times and found that it works fine for all forms of
   firewalling except for Masquerading. Any help from you or the readers
   of this, the best electronic mag on the net, would be greatly
   appreciated.

  ================================     ===============================
//                                \\ //                               \\
|| James E. Wells                  | |                                ||
|| mailto:nikatjef@nwlink.com      | |   Junior System Administrator  ||
|| mailto:james@LaserDyn.com       | |         Northwest Link         ||
\\                                // \\                               //
  ================================     ===============================

     (Okay, all you firewall experts out there, who's got a good answer
     for this one? --Editor) 
     
   
   
   
     _________________________________________________________________
   
   
   
   Date: Wed, 02 Oct 1996 14:45:06 -0400
   Subject: Wow! Support for Win 1.3 :)
   From: Eric Wright majestik@netcom.ca
   
   
   In issue #10, Product Announcements
   
     V Multi-Platform GUI Version 1.13 of V for X, Windows 1.3, and WIN32
     (NT, Windows95) was released on September 9, 1996. It is....
     
   Windows 1.3, eh? heheh
   
   Ps: great job with LG, keep it up ...
   
     (Oops, didn't read that one close enough, I guess. I'd say that was
     a definite typo, and it would have been nice to have mentioned
     Linux more directly. This product does work for Linux--there is an
     article by Dr. Wampler about it in the upcoming December issue of
     Linux Journal. Anyway I've changed it to take out all Windows
     references. Sorry about that. --Editor) 
     
   
   
   
     _________________________________________________________________
   
   
   
   Date: Thu, 03 Oct 1996 10:35:38 +0000
   Subject: #10 
   From: "Adam D. Moss" adam@uunet.pipex.com
   
   
   Thanks for another Linux Gazette issue!
   
   --Adam

          Adam D. Moss / Consulting / adam@uunet.pipex.com
====-==-=-=--=--=---=---=-------- ---- --- -- -- -- - - - -  -  -  -
  UUNET PIPEX / 332 Science Park / Milton Road / Cambridge CB4 4BZ
   / England / Voice +44 (0)1223 250100 / Fax +44 (0)1223 250101
-  -  -  - - - - -- -- -- --- ---- --------=---=---=--=--=-=-==-====

     (Short and sweet. Thank you for reading LG. --Editor) 
     
   
   
   
     _________________________________________________________________
   
   
   
   Date: Thu, 03 Oct 1996 15:12:16 +0800
   Subject: Postscript Format Request 
   From: Phil Lewis lewispj@eeye.com.sg
   
   
   Could you please provide the lg in postscript format please so that it
   will be possible to easily read it in hard copy format - It will get a
   wider readership and reduce unnecessary multiple www downloads each
   time within our organization.
   
   Thanks, Phil Lewis
   Electric Eye
   Singapore
   
     (Due to popular request, I have added one big text file to the list
     of options in the Table of Contents called "TWDT
     1". Also. thanks to one of our readers (see next letter) there is
     also an HTML file called "TWDT 2". For now that's
     the best I can do for you--postscript and other formats will have
     to wait. --Editor) 
     
   
   
   
     _________________________________________________________________
   
   
   
   Date: Thu, 03 Oct 1996 12:56:52 -0500
   Subject: New Set Up of LG 
   From: Tushar Teredesai Tushar@Agents.ECE.IIT.Edu
   
   
   Hi,
   
   I miss the old set up of LG whereby I could download the whole of the
   LG which was contained in a single page. Even issue 9 had and
   alternative comprising the whole LG in a single page. Hope U provide
   such a complete page again. Though there is text version of the entire
   thing, I would prefer a html version.
   
   Maybe I could do that combining to a single .html and .txt if U tell
   me how (i.e. the rules for formatting.)
   
   BTW, great job. Very useful for guys like me who are new entrants to
   administration of their own systems after being dependent on others to
   do the dirty job.
   
   Thanx.
   --Tushar

-->> http://Tushar.Home.ML.Org
-->> mailto:Tushar@Agents.ECE.IIT.Edu
Running ....... Cos anything else would be a waste...
        `:::'                  .......  ......
         :::  *                  `::.    ::'
         ::: .::  .:.::.  .:: .::  `::. :'
         :::  ::   ::  ::  ::  ::    :::.
         ::: .::. .::  ::.  `::::. .:'  ::.
        .:::.....................::'   .::::..

     (What a wonderful idea! Neither Michael, the webmaster, nor I have
     time to combine LG each month, and we were thinking of putting out
     requests for someone to do it for us. And here's a volunteer! So we
     now have "TWDT 2" in HTML format for issue 9 thanks
     to Michael, and for issue 10 thanks to Tushar. What great guys!
     --Editor) 
     
   
   
   
     _________________________________________________________________
   
   
   
   Date: Wed, 02 Oct 1996 23:00:22 -0400
   Subject: Linux version of aprs 
   From: bill pemberton wapembe@gallows.smart.net
   
   
   in the current (issue 10) of the Linux Gazette you mentioned that a
   Linux version of aprs was available. can you provide further ref? i
   searched the ham links on the net but could find no reference to the
   Linux version. thanks for the assist.
   --
   wapembe@smart.net "actual meaningless quote to be inserted soon!"
   
     (Sorry, I personally cannot. You might try writing Steve Stroh
     (strohs@halcyon.com), who sent us the TAPR Position Statement that
     appears elsewhere in this issue. --Editor) 
     
   
   
   
     _________________________________________________________________
   
   
   
   Date: 05 Oct 1996 23:42:02 +0200
   Subject: mailing list 
   From: Markus Gutschke gutschk@uni-muenster.de
   
   
   Have you considered to set up a mailing list that distributes copies
   of Linux Gazette? For me, it is very cumbersome to actively look for
   new versions of files and to download them from the net;
   sending/receiving e-mail/news is fine though, because this can be
   automated and I do it in batch-mode every night.
   
   Markus
   
     (Yes, this has been requested before, and is on the list of things
     to possibly do in the future. However, setting up and maintaining a
     mailing list is not something I have time for in the foreseeable
     future. Since I plan to have a new issue up on the first of each
     month, you only have to look for changes once a month. That
     shouldn't be too cumbersome.--Editor) 
     
   
   
   
     _________________________________________________________________
   
   
   
   Date: Sat, 12 Oct 1996 14:17:49 -0400
   Subject: William R. Della Croce, Jr.
   From: "rikk@dragonstar.net" rikk@dragonstar.net
   
   
   Greetings,
   
   In reference to your article on whether or not Linux is a registered
   trademark or not...
   
   First off allow me to say "This guy is the lowest in the scum chain."
   There is commercialization, and there is gluttony. Seems to me this
   person is trying to take over the Linux name to better his pockets. I
   wish you had printed his e-mail address, and let him get a feel for
   the anger and disgust...
   
   At any rate, keep up the good work!
   
   TTFN....Rikk
   rikk@dragonstar.net

+------------------------------------------------------------------------+
|
| Life on the edge, dragonstar.net
|
|           Friends don't let friends do DOS!
|
| Running Linux 2.x  Intel x86
|
+------------------------------------------------------------------------+

     (Yes, well, while we agree with your sentiments, printing his e-mail
     address would probably not have been productive. Lawyers are
     working on this situation, and we keep hearing that we will be
     getting an announcement any day now. Maybe this week, something
     will break. It will be on the "Linux Hot News" button as soon as it
     does. Thanks for writing. --Editor) 
     
   
   
   
     _________________________________________________________________
   
   
   
   Date: Thu, 17 Oct 1996 14:55:31 -0400
   Subject: pointer trouble 
   From: Bill Semler wsemler@epix.net
   
   
   Hi -
   
   Just wanted to let you know that the URL ftp://ftp.ssc.com/pub/lg
   pointed to in, roughly, the middle of the front page actually points
   to ftp.ssc.com/lg which will display the directory structure but
   things cannot be accessed. Not a real big deal, but... Thanks for
   everything.
   
   --
   Bill Semler, N3RLR
   wsemler@epix.net
   
     (Thanks for letting me know. I've got it fixed now. Don't know why,
     but leaving out the /pub happens to me often when I type that
     address. Think it must be time to set up an abbreviation for it, so
     vi can take care of it for me. --Editor) 
     
   
   
   
     _________________________________________________________________
   
   
   
   Date: Fri, 18 Oct 1996 16:05:00 -0700
   Subject: Linux Gazette versions 
   From: paulc@sunsite.unc.edu
   
   
   I noticed a few people recently wanting to take versions of the Linux
   Gazette home with them or trying to convert them to run on MS-Win
   systems, well there is a program on the Amiga which fetches pages from
   the web and changes links over in the process to either an absolute or
   relative path - great for the gazette. Well, I'm in the process of
   converting this program to Linux, and would be happy to supply you
   with the compilable source code so that you can then place the file
   generated by this program on one of the pages for download (after
   gzipping it maybe)
   
   Squiz.
   
     (Thanks for thinking of me. This does sound like easy method, and an
     easier method is always a better method. Send it on when it's
     ready. --Editor) 
     
   
   
   
     _________________________________________________________________
   
   
   
   Date: Tue, 22 Oct 1996 14:17:57 -0700
   Subject: Xwindows depth 
   From: James Amendolagine uq274@freenet.victoria.bc.ca
   
   
   Hello,
   
   I have recently been messing with my x-server, and have managed to get
   a depth of 16, ie 2^16 colors. This works really nice with netscape,
   but some programs (doom, abuse, and other games) wont work with this
   many colors. Do you know of a fix? I have tried to get X to support
   multiple depths--to no avail. The man-page suggests that some video
   cards support multiple depths and some don't. How do I know if mine
   does.
   
   I would really like to see an article on this subject,
   
   Thanks,
   Jamie
   
     (Okay, guys here's another request for help with a good idea for an
     article. All you authors out there looking for a subject, start
     writing. --Editor) 
     
   
   
   
     _________________________________________________________________
   
   
   
   Date: Wed, 23 Oct 1996 12:54:11 -0500 (CDT)
   Subject: have you seen latest replacement for X? 
   From: jim fetters gfetters@uxa.ecn.bgu.edu
   
   
   well, sort of. please check this out.
   
   http://veda.synet.net/numan/berlin
   
   -jim
   
   
     _________________________________________________________________
   
   
   
   Date: Thu, 24 Oct 1996 08:10:41 +0200
   Subject: could not login to ftp server 
   From: Hermann Boeken hboeken@de.lucent.com
   
   
   Hi.
   
   In the mailbag of LG 10 you write:
   
     > (No problem. tar files are available, I've just been having
     technical
     > difficulties -- they were unreadable. At any rate John Fisk sent
     us new
     > files that are now up at ftp://ftp.ssc.com/pub/lg/. Also, our
     issue 10 file,
     > lg_issue10.tar.gzp and all issues (1-10) file,
     LinuxGazette_oct96.tar.gzp
     > are located at that site. --Editor)
     
   
   
   But it is (still?) not possible to login to the ftp server.
   
   Hermann

--
                                              ...
                                           ':'...''.
                                         '::.''''':;:
.-Hermann Boeken--Fon:+49-911-5266186---'::;-------;;:--.
|                 Fax:+49-911-5266299   :::,,       :;; |
|                                       ;:;'        ;:; |
|                   Lucent Technologies  ;;:       .;:  |
|                 Bell labs Innovations   :;:,   ,:;:   |
| OEPT                                     ':;;;:;:'    |
| System Integration & Test                             |
|                                                       |
`-hboeken@lucent.com----------na426@fim.uni-erlangen.de-'

     (Hmmm, it's been working for some time. The mirror sites have all
     downloaded files from the ftp server with no problem. I guess I
     need to know more about the type of problem you are having -- what
     kind of messages you get, etc.? If you are using a web
     browser--which one and what version? I have tried to write you
     directly several times, but all mail comes back marked "Host
     unknown". --Editor) 
     
   
   
   
     _________________________________________________________________
   
   
   
   Date: Tue, 15 Oct 1996 17:10:52 +0100
   Subject: Mirroring of Linux Gazette 
   From: Massimo Orlando massimo@asterix.unime.it
   
   
   Hi,
   I am a student of Computer Science at University of Messina and I am
   the system administrator of the Server of the Department. I have
   written the form to become a mirror of the Linux Gazette but I have a
   question for you:
   
   Must I download the compress file (LinuxGazette_xxx.tar.gz) or is it
   automatic?
   
   P.S.: sorry for my english
   
   Thank you for your future answer.
   bye
   Massimo Orlando
   
     (Massimo, I seem to be having trouble getting mail to you--it keeps
     coming back with unrecoverable errors. There is a README.mirrors
     file on the ftp site, ftp://ftp.ssc.com/pub/lg/ with instructions.
     It is definitely not automatic. The University's site is very cool,
     and I will be happy for you to mirror LG. I will need an exact
     address though (for both the mirror and you); it was not obvious to
     me how to find LG just by looking at the University's main web page.
     Please write again. --Editor) 
     
   
   
   
     _________________________________________________________________
   
   
   
   Date: Wed, 23 Oct 1996 14:53:13 -0500
   Subject: http://cenotaph.generec.nl/lg/issue10/lg_toc10.html 
   From: teun@cyclone.generec.nl
   
     (Nice and short and full of information. Only two problems: I can't
     find this page (Netscape returns "No DNS entry"), and mail to this
     address is returned "host unknown". Please write again. --Editor) 
     
   
   
   
     _________________________________________________________________
   
   
   
   [ TABLE OF CONTENTS ] [ FRONT PAGE ] Next 
   
      This page written and maintained by the Editor of Linux Gazette,
      gazette@ssc.com
      Copyright &copy; 1996 Specialized Systems Consultants, Inc.
      
   
   
   
     _________________________________________________________________
   
   
   
    [IMAGE] "Linux Gazette...making Linux just a little less scary! " [IMAGE]
    
   
     _________________________________________________________________
   
                               MORE 2 TIPS! 
                                       
   
   Send Linux Tips and Tricks to gazette@ssc.com.
   
   
     _________________________________________________________________
   
   
   
  CONTENTS:
     * Another XTerm Title Trick
     * File Decompression
     * Quick Tricks from John Fisk
     * Two Tips for the Price of One
     * The Ultimate Emacs Control M Trick
     * VI Trick
     * XDM Replacement
       
   
   
   
     _________________________________________________________________
   
   
   
  ANOTHER XTERM TITLEBAR TRICK
  
   
   
   Date: Wed, 2 Oct 1996 16:11:35 -0700 (PDT)
   From: Jonathan Gross 
   
   
   I have a quick stupid shell script to change the titlebar on the fly:

#!/bin/bash
echo "]0;$1"

   where the ^[ is done in Emacs by typing C-q Esc and the ^G is done by
   typing C-q C-g, or in vi by typing C-v instead of C-q before each
   control sequence.
   
   Then you type:

linux$ titlebar "string for window title"

   Where "titlebar" is the name of your shell script. Dumb, simple, but
   easy to use...

Jonathan Gross
Specialized Systems Consultants, 206-782-7733
"A jewel mine of courtesies and a living casket of diplomacy"

   
   
   
     _________________________________________________________________
   
   
   
  FILE DECOMPRESSING
  
   
   
    Date: Fri, 27 Sep 1996 08:32:37 +0200 (MET DST)
   From: Xabier Vazquez Gallardo, sixconse@sc.ehu.es 
   
   
   Hi there:
   
   Here is a script I wrote two years ago, but I think it can be useful
   for everybody. It can also help in learning shell script programming.
   
   The function of this script is to help ppl decompressing compressed
   files with tar, gzip, compress, arj, zip, etc, and any combination of
   these compression tools. Just type "gus filename" and the script will
   call the necessary decompression program.
   
   Thanx in advance,
   Xabier Vazquez Gallardo

------------ 8
# You'll need this external programs:
# gzip, tar, sed, awk, unarj, lha, zoo, unzip, test, pgp, uncompress, echo and
# uudecode. If you don't have all those programs maybe gus won't work.
#
# Program Description:
# Decompress all this kind of files and combinations of them:
# .arc .zip .ZIP .arj .zoo .lzh .lha .lzh .Z .z .tar .tgz .shar .pgp
# .[1-8ln] .man .uu and .uue
# * Man type files will be displayed
#
# Please send suggestions or gub reports to XaBi
# Sorry about my English, but it's better than Spanish, isn't it?
###############################################################################
#
gus_version="V2.8"
gus_date="11/22/1994"

# Show a long help :)
do_help ()
{
 echo
 echo This script helps you decompressing Unix archives compressed with compres
s,
 echo gzip, tar, shar, lha, arj, zip, zoo, pgp, arc and uuencode. It also forma
ts
 echo manual pages. Now you don\'t need to type all those long lines to decompr
ess
 echo a tar + gz archive, only type \'gus file\' and it will do all the work.
 echo "GUS knows this extensions and combinations of them (tar + gzip, etc):"
 echo ".Z .z .zip .arj .zoo .arc .lha .lz .pgp .tar .tgz .shar .[1-8ln] .man .u
u .uue"
 echo
 echo "USAGE: '`basename $0` [-h | [[-r | -rf] f1 [f2] ...]' will decompress f1
, f2, ..."
 echo "       '-h'  show you this help"
 echo "       '-r'  remove with prompt compressed file after decompress it"
 echo "       '-rf' remove without prompt compressed file after decompress it"
 echo "ie:    '`basename $0` file1 -rf file2 file3' will do this:"
 echo "        decompress file[123] and remove file[23] without any ask"
 echo "       *WARNING* Be careful with option '-rf'"
 exit 0
}

# Find a file in your path
# input : "filename"
# output: $filresult=full_path/filename || $filename="" + error message
# ie    : findfile zip
findfile ()
{
 sifs=$IFS
 IFS=:
 fileresult=""
 for dir in $PATH; do
   test -z "$dir" && dir=.
   if [ -x $dir/$1 ] ; then
      fileresult="$dir/$1"
      break
   fi
 done
 IFS=$sifs
 test -z "$fileresult" && echo ERROR: Can\'t find $1
}

# Change status variables
# input: " | decompress_command_line" \
#        " decompress_program_name +" \
#        1 (if gus must create a decompressed file) || 0 (if not) \
#        1 (if decompress program can pipe it result) || 0 (if not) \
#        1 (if decompress program accepts stdin pipes) || 0 (if not)
# output: none
# ie    : changevars " | tar xvfo -" " tar +" 0 1 1
changevars ()
{
 command=$command$1
 message=$message$2
 create=$3
 exit_f=$4
 do_cat=$5
}

# Ask Y/N before remove a file
# input  : "filename"
# output : $removeit = 0 (if answer is no) || 1 (if is yes)
# ie     : makeask /usr/local/foo.bar.tar
makeask ()
{
 exit_ask=0
 while [ $exit_ask = 0 ] ; do
   echo "Do you want to remove '$1' [Y/N]? \c"
   read yesno
   case $yesno in
     y* | Y*)
       removeit=1
       exit_ask=1
     ;;
     n* | N*)
       removeit=0
       exit_ask=1
     ;;
   esac
 done
}

# Check program parameters and count files
# input  : "command_line_params"
# output : $total_files=num_of_files_to_process || or help_screen
# ie     : check_params -rf foo.tar
check_params ()
{
 for i in $*
 do
   case $i in
     -rf | -r)
       total_files=`expr $total_files - 1`
     ;;
     -h)
       do_help
     ;;
   esac
 done
}

echo GUS $gus_version [$gus_date] General Unpack Shell for Un*x \(c\) XaBi

total_files=$#

check_params $*

if [ $total_files = 0 ] ; then
   echo ERROR: not enough params
   echo "TRY  : `basename $0` -h"
   exit 1
fi

if [ $total_files = 1 ] ; then
   echo [ $total_files ] file to process ...
else
   echo [ $total_files ] files to process ...
fi

removefile=0
promptbefore=0

for file_tmp in $*
do
  case $file_tmp in
       -rf)
          removefile=1
          promptbefore=0
          continue
        ;;
       -r)
          removefile=1
          promptbefore=1
          continue
        ;;
  esac
  if test -f $file_tmp ; then
     exit_f=0
     command=""
     message=""
     do_cat=1
     create=1
     file=`basename $file_tmp`
     while [ $exit_f -eq 0 ] ; do
       old_file=$file
       extension=`echo $file | sed -e 's/.*\.//'`
       if [ "$extension" = "$file" ] ; then
          extension=""
       else
          file=`echo $file | sed -e s/\.$extension$//`
       fi
       case $extension in
         tar)
           changevars " | tar xvfo -" " tar +" 0 1 1
         ;;
         Z)
           changevars " | uncompress" " compress +" 1 0 1
         ;;
         z | gz)
           changevars " | gzip -d" " gzip +" 1 0 1
         ;;
         tgz)
           changevars " | gzip -d | tar xvfo -" " tar + gzip +" 0 1 1
         ;;
         uu | uue)
           changevars " | uudecode" " uuencode +" 0 1 1
         ;;
         shar)
           changevars " | sh" " shar +" 0 1 1
         ;;
         zip | ZIP)
           if [ -z "$command" ] ; then
              findfile unzip
              test ! -z "$fileresult" && changevars $fileresult " zip +" 0 1 0
           else
              echo ERROR: Can\'t pipe to unzip. File partialy decompressed.
           fi
           exit_f=1
         ;;
         arj | ARJ)
           if [ -z "$command" ] ; then
              findfile unarj
              test ! -z "$fileresult" && changevars $fileresult" x" " arj +" 0
1 0
           else
              echo ERROR: Can\'t pipe to unarj. File partialy decompressed.
           fi
           exit_f=1
         ;;
         arc | ARC)
           if [ -z "$command" ] ; then
              findfile arc
              test ! -z "$fileresult" && changevars $fileresult" x" " arc +" 0
1
 0
           else
              echo ERROR: Can\'t pipe to arc. File partialy decompressed.
           fi
           exit_f=1
         ;;
         zoo | ZOO)
           if [ -z "$command" ] ; then
              findfile zoo
              test ! -z "$fileresult" && changevars $fileresult" x" " zoo +" 0
1 0
           else
              echo ERROR: Can\'t pipe to zoo. File partialy decompressed.
           fi
           exit_f=1
         ;;
         lzh | lha | lz | LZH | LHZ | LZ)
           findfile lha
           test ! -z "$fileresult" && changevars " | "$fileresult" x -" " lha +
" 0 1 1
           exit_f=1
         ;;
         pgp)
           findfile pgp
           if [ ! -z "$fileresult" ] ; then
              changevars " | "$fileresult " pgp +" 0 0 1
           else
              exit_f=1
           fi
         ;;
         [1-8nl] | man)
           test -z "$command" && changevars " | nroff -man | more" " man +" 0 1
 1
           exit_f=1
         ;;
         *)
           exit_f=1
         ;;
       esac
     done
     test $create -eq 1 && command=$command" > "$old_file
     if [ -z "$message" ] ; then
         echo ERROR: Don\'t know how to handle [ $file_tmp ]
     else
         message=`echo $message | sed -e 's/ +$//'`
         echo "File [ `basename $file_tmp` ]"
         echo "Type [ $message ]"
         if [ $do_cat = 1 ] ; then
            command="cat "$file_tmp" "$command
         else
            command=$command" "$file_tmp
         fi
         eval $command && {
           if [ $removefile = 1 ] ; then
              if [ $promptbefore = 1 ] ; then
                 makeask $file_tmp
                 test $removeit -eq 1 && rm -f $file_tmp
              else
                 rm -f $file_tmp
              fi
           fi
         } || echo ERROR: [ $file_tmp ] can\'t decompress ...
     fi
  else
     echo ERROR: [ $file_tmp ] Can\'t process it! Exists????
  fi
done

   
   
   
     _________________________________________________________________
   
   
   
  QUICK TIPS FROM JOHN
  
   Date: Tue, 08 Oct 1996 08:18:39 -0500 (CDT)
   From: John M. Fisk fiskjm@ctrvax.Vanderbilt.Edu 
   
   
   I recently ran across a "Quick Tip" that might be useful to anyone
   using the BASH shell. There's a rarely mentioned but very useful
   feature that's included with it: an online help function that
   describes all of its built-in functions. To use it you simply invoke
   it as:

        % help <builtin>

   and it displays a brief usage message. To get a listing of all of the
   topics that are available, simply type in:

        % help

   This displays a listing of all of BASH's builtin functions. So, for
   example, if you were interesting in using the "getopts" builtin in
   order to parse command line options for a shell script, you'd invoke
   the help function as:

        % help getopts

   which prints a helpful summary of the function and its invocation.
   
   The other thing I recently ran across was the use of the "$()"
   construct in BASH shell programming. When I first started learning
   shell programming the construct which I'd seen used for command
   substitution was something like:

        DATE=`date + "%A %B %C"`

   which assigned the output of the date command to the variable DATE. I
   recently read that this has been deprecated and the accepted construct
   now for command substitution is the use of the dollar sign and
   parentheses. The above statement should now be written as:

        DATE=$(date + "%A %B %C")

   which has the same effect. This works under both BASH and the Korn
   shell (I'm not sure if this also works with C-shell derivatives).
   ____________________________________________________________John M.
   Fisk
   
   
     _________________________________________________________________
   
   
   
  TWO TIPS FOR THE PRICE OF ONE
  
   
   
    Date: Fri, 4 Oct 1996 18:28:05 -0500 (CDT)
   From: David Ishee ishee@erc.msstate.edu
   
   
   Just looking at your $0.02 tips and I had some $0.01 tips to add. I
   liked the perl trick for removing Control-M characters so I made it an
   alias in my .cshrc file (for the tcsh shell):

alias tu "perl -pi.bak -e 's/\r//g;' \!^"

   Now type "tu filelist" to run the above command. (tu stands for to
   Unix)
   
   Another $0.01 tip:
   
   When I used the xterm title bar thingy and I was at a VT, the escape
   characters would just cause the Linux terminal to beep at me. I now
   have this in my .cshrc (for the tcsh shell):

if ($TERM == "xterm") then
  alias precmd 'echo -n "\033]2;"`whoami`":"`pwd`"\007"'
endif

   This puts my login_name:directory in my title bar, but not when I go
   to a Linux VT.

+--------------------------------------------------------------------+
| David Ishee                             ishee@erc.msstate.edu      |
| Mechanical Engineering Senior                                      |
| Mississippi State University             OS/2 and Linux user       |
+------------- http://www2.msstate.edu/~dmi1/index.html -------------+

   
   
   
     _________________________________________________________________
   
   
   
  THE ULTIMATE EMACS CONTROL M TRICK 
  
   Date: Thu, 3 Oct 1996 10:19:24 -0700
   From: Rick Bronson rick@efn.org 
   
   
   Hi,
   
   Here is the ultimate Emacs Control M Trick:
   
   Put the following line in your .emacs file:

(require 'dos-mode)

   and have dos-mode.el, which for me is in ~/lisp/dos-mode.el, some
   where in your path by putting the following line in your .emacs file:

(setq load-path (append load-path (list "/home/rick/lisp")))

   That's it! Now you can edit native DOS files without having to do any
   conversion at all. You won't see any ^M stuff in the DOS files, they
   are removed for you. You can cut and paste between DOS and UNIX
   buffers and the ^M stuff is handled automatically.
   
   dos-mode.el is available in
   /ftp@archive.cis.ohio-state.edu:/pub/gnu/emacs/elisp-archive/modes as
   dos-mode.el.Z

                                                                       _
                                                                      | |
                                                                      / /__
.------------------------------------------------------------._______/ (___)
| Rick Bronson   rick@efn.org   Tel 541-465-9008      _o_    |         (___)
| Invivo Research       http://www.efn.org/~rick      \|/    |_______  (___)
| 745 Foothill Drive       "Onde esta dinheiro?"     `---'   |       \_(___)
| Eugene, OR  97405-4651    -- Gal Costa          Disk | Golf|
`------------------------------------------------------------'

   
   
   
     _________________________________________________________________
   
   
   
  VI TRICK
  
   Date: Sat, 26 Oct 1996 05:11:34 -0500
   From: John R. Potter jrpotter@neosoft.com
   
   
   I thought you might be interested in my favorite vi trick, which is
   not a vi trick at all. I spend a lot of time in vi edit sessions,
   usually with two files open moving data between them using the named
   buffers. Often someone will come in with a 'brush fire' that needs
   immediate attention and I really don't want to quit my edit session
   and lose my buffers. So I put it to sleep with Control Z. You can
   start up another vi edit session, complete with named buffers and
   everything. They are two complete separate sessions with no ties
   between them. When the fire is under control you can bring back the
   original session with 'fg'. I know this is a very simple thing, but
   for a long time I didn't know you could do it so I would quit the
   original session.
   
   - John Potter
   
   
     _________________________________________________________________
   
   
   
  XDM REPLACEMENT
  
   Date: Thu, 03 Oct 1996 23:26:00 -0400
   From: Jim Nicholson pcks@cnj.digex.net
   
   
   I'm not sure how well known it is in the Linux community, but Pierre
   Ficheux (pierre@ai.alienor.fr) has written a replacement for the XDM
   logon dialog that lets you set up icons for users - sort of like what
   you can do on an SGI machine. The file can be had via
   ftp://ftp.ibp.fr/pub/linux/tsx-11/sources/usr.bin.X11/xdm-photo-1.1.ta
   r.gz; more info is available on Pierre's web site
   http:alienor.fr/~pierre/index_us.html
   
   
   - Jim Nicholson
   
   
     _________________________________________________________________
   
   
   
   [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
   
   
     _________________________________________________________________
   
   
   
      This page maintained by the Editor of Linux Gazette, gazette@ssc.com
      Copyright &copy; 1996 Specialized Systems Consultants, Inc.
      
   
   
   
     _________________________________________________________________
   
   
   
    [IMAGE] "Linux Gazette...making Linux just a little less scary!" [IMAGE]
    
   
     _________________________________________________________________
   
                                  NEWS BYTES
                                       
   
   
   
     _________________________________________________________________
   
   
   
  CONTENTS:
     * News in General
     * Software Announcements
       
   
   
   
     _________________________________________________________________
   
   
   
  NEWS IN GENERAL 
  
   
   
   
     _________________________________________________________________
   
   
   
  COMDEX CONFERENCE
  
   
   
    17 Oct 1996
   Please join Linux International at The Linux Technology Showcase,
   COMDEX FALL/96. This will be the largest presentation of Linux to date
   outside the Internet. The show will run November 18-22, 1996 in Las
   Vegas, Nevada. The Linux Showcase will be promoted in the show
   preview, show guide, show daily and other materials on a par with the
   Multimedia, Windows, Internet, Networking and other showcases. The
   location is downstairs at the Sands Expo & Convention Center, just off
   the famous Las Vegas Strip.
   
   For additional information:
   Linux International, http://www.li.org/
   li@li.org
   
   
   
     _________________________________________________________________
   
   
   
  FREE SOFTWARE UNION
  
   
   
    "Free Software Lovers Unite!"
   
   The FSU is a volunteer, democratic organization dedicated to the Free
   Software community. It provides all users, developers, and enthusiasts
   with full-voice, free membership in a voting decision making body. It
   channels resources, manpower, and community feedback for voter
   endorsed project implementation.
   
   The FSU gives developers guarantee of wide acceptance and support by
   providing guidelines and tools for development to produce consistent
   and inter-operable software, and volunteer man-power recruiting
   assistance for large endorsed projects.
   
   Some of the projects that the FSU is currently considering is the
   adoption of CORBA or SOM, licensed porting/re-implementation of
   OpenDoc, a "Free Software Map" database of all known free software
   projects (a superset of LSM), and much more!
   
   FSU Founder/Contact: Jan Vicherek, honza@ied.com
   FSU Mailing List Posts: fslu@calum.csclub.uwaterloo.ca 
   Find out more and join at: http://www.jagunet.com/~braddock/fslu/org 
   
   
   
     _________________________________________________________________
   
   
   
  LASERMOON, LINUX-FT
  
   
   
   Date: Tue, 08 Oct 1996
   Clarification - Linux-FT, The Road Ahead
   
   
   Linux-FT is a Lasermoon Ltd product which was developed with the
   intention of achieving POSIX.1 and XPG4 certification as part of a
   project Lasermoon started in January 1995. Lasermoon obtained the
   required licenses (POSIX.1, XPG4 etc) and X/Open membership to
   facilitate this fully GPL'ed effort. Unifix were involved in the
   development of the distribution, and components from Linux-FT were fed
   back into other Unifix products (hence the similarities).
   
   The technology behind Linux-FT was acquired by Caldera during 1996 and
   will be incorporated into the Caldera's Linux products.
   
   Caldera's involvement with Linux-FT has been the subject of many
   postings and press announcements over many months and details can be
   found on the Linux-FT WWW site at www.lasermoon.co.uk and Caldera
   (www.caldera.com).
   
     Unifix have no connection with, or control over Linux-FT. Whilst we
     are flattered that Linux-FT is receiving such attention, BOTH Unifix
     GmbH and the Unifix 2.0 RELEASE HAVE NOTHING WHATSOEVER TO DO WITH
     CONTINUING Linux-FT DEVELOPMENTS.
     
   Caldera and Lasermoon are continuing the work of developing a truly
   Standards Certified/Branded Linux (released under the GPL). Working
   with the original developers, we welcome all contributors to the
   POSIX.1 and XPG4 standardization effort which is essential for the
   long term success of Linux.
   
   By working together, we can accomplish this effort in a much more
   effective manner and comply with the licensing requirements of The
   Open Group and other such organizations.
   
   For additional information:
   Lasermoon Ltd, The Forge, Wickham, Hants, England
   info@lasermoon.co.uk 
   http://www.lasermoon.co.uk 
   
   
   
     _________________________________________________________________
   
   
   
  LINUX CONSULTANTS HOWTO REACHES HUNDRED ENTRY MARK
  
   
   
    October 17, 1996 -- Only one month after its debut on September 18,
   1996, the Linux Consultants HOWTO, a listing of companies and
   individuals providing commercial support for the freely
   redistributable operating system Linux, now contains over a hundred
   entries.
   
   The Linux Consultants HOWTO is free and can be downloaded from
   http://www.sypher.com/tbm/Consultants-HOWTO 
   
   
   For additional information:
   Martin Michlmayr, tbm@sypher.com
   http://www.sypher.com/tbm
   
   
   
     _________________________________________________________________
   
   
   
  LINUX IN THE NEWS
  
   
   
   News Articles about Linux:
     * "Linux Operating System Cheap, Powerful Red Hat Linux 4.0 Has No
       Web- Connection Limits"
       Infoworld, October 14, 1996
       "I'm in awe of how quickly the Linux operating system is moving
       foward. Last summer I predicted that Linux...would infiltrate
       mainstream corporate America. If Red Hat Software Inc. (and all
       the unsung Linux contributors) continue advancing Linux at the
       present rate, such widespread adoption is guaranteed."
     * "Taking a Second Look at Linux" PC Week, 10/21/96,
     * "Spreading the Linux Gospel", PC Magazine, 10/8/96, a review of
       books relating to Linux.
     * "Building a Linux Web Server", Sys Admin: The Journal for Unix
       Systems Administrators, October 1996.
     * "Linux: Microsoft's Real Competition?" PC Week, 10/7/96.
     * "Unix Survey: Users Like Reliability, Scalability, and
       Performance" Byte October, 1996. Compares: IBM AIX, Digital Unix,
       HP-UX, SCO, SunOS/Solaris, System V, and Linux.
       
   
   
   
     _________________________________________________________________
   
   
   
  LINUX ON PCTV
  
   
   
    The PCTV production company, http://www.pctv.com/, which produces
   Computer Chronicles, USER GROUP and @HOME, is producing four half-hour
   shows on UNIX and Linux. These shows are:
     * History of UNIX (aired in October)
     * Contemporary UNIX (airs first on November 4th)
     * Linux (airs first in January)
     * UNIX Futures (air times not yet set)
       
   
   
   These shows will be aired as part of the USER GROUP show, which is
   carried on ME/U, Jones Computer Network (a 24-hour cable network
   dedicated entirely to the subject of computers) and the NBC Super
   Channel and CNBC Europe, as well as by Satellite. USIA WorldNet will
   begin carrying the Users Group show.
   
   Please check your local cable or satellite company for viewing times
   of USER GROUP.
   
   For additional information:
   Jon "maddog" Hall, Executive Director Linux International
   jon.hall@li.org 
   
   
   
     _________________________________________________________________
   
   
   
  NEW LINUX Q&A SITE
  
   
   
    A new threaded Linux Q&A and discussion area has been created at The
   Forge Foundation web site:
   
   http://www.theforge.com/InterBoard
   
   
   Create your own account or use the link that lets log you in
   anonymously, then choose the group "Foundry - Linux Q&A". This is an
   unmoderated group open to everyone.
   
   For additional information:
   Hal Reed, hal@theforge.com
   The Forge Foundation, http://www.theforge.com/
   
   
   
     _________________________________________________________________
   
   
   
  NORTHCON NOV 4-6
  
   
   
    Northcon is Nov 4-6 at the WA Convention & Trade Center (near the
   Kingdome) in Seattle, Washington. There will be 350 exhibits by
   "Leading Electronics Manufacturers".
   
   Mon. Nov 4, 10-5
   Tue. Nov 5, 9-5
   Wed. Nov 6, 9-4
   
   
   You can register on-line (free) at http://www.northcon.org.
   
   For additional information:
   northcon@ieee.org or call 1-800-877-2668
   
   
   
     _________________________________________________________________
   
   
   
  OPEN SYSTEMS WORLD/FEDUNIX CONFERENCE
  
   
   
    There will be a Open Systems World/FedUnix conference/trade show in
   Washington DC on November 4-8. It is a traditional event devoted to
   open computing (read: Unix), attended mostly by government and
   commercial Information Systems types.
   
   Since Linux has gained the attention of such circles, there is a 2-day
   Linux track at this conference. I am chairing a Linux-related session,
   scheduled for Thursday, November 7, 1996. Speakers will be people who
   apply Linux in real world situations, both in the government and the
   private sector, and will tell us about their good and bad experiences,
   and plans for the future. Among the speakers, there are some who use
   Linux as a primary OS, as well as those for whom Linux is just another
   environment.
   
   For additional information:
   http://www.mcsp.com/OSW-FedUNIX.html 
   Przemek Klosowski, przemek@nist.gov
   
   
   
     _________________________________________________________________
   
   
   
  QT GUI CONTEST ANNOUNCEMENT
  
   
   
    On October 1 Troll Tech announced the Qt GUI programming contest
   (free entry).
   
   A contest for programmers, writing free GUI software using Qt (a C++
   GUI toolkit, see http://www.troll.no/). Anyone can enter, there is no
   fee for entry, and any program can be entered as long as it is written
   in C++ and uses Qt.
   
   The winner will be paid US$2000 and two runners-up $500 after the
   contest has closed on May 1, 1997 and the jury has done its job.
   
   We wish to encourage more free GUI software for X11, and we wish more
   people to experience for themselves how good Qt is.
   
   For additional information:
   http://www.troll.no/contest.html
   contest@troll.no
   
   
   
     _________________________________________________________________
   
   
   
  VULNERABILITIES IN LINUX
  
   
   
    An October 10 CIAC (Computer Incident Advisory Capability, U.S.
   Department of Energy) bulletin describes a security hole in Linux when
   using a Bash shell as the default shell, and explains how to avoid it.
   Additional information can be found at the CIAC web site.
   
   On August 15, CIAC announced a security hole in the mount and umount
   Linux programs, and gave fixes. Additional information can be found at
   the CIAC web site, CIAC web site
   
   If you find code that could be potentially dangerous, you should
   contact the Computer Emergency Response Team (CERT),
   http://www.cert.org/, at Carnegie Mellon University. Reporting forms
   can be found at ftp://info.cert.org/pub/incident_reporting_form.
   
   
     _________________________________________________________________
   
   
   
  SOFTWARE ANNOUNCEMENTS 
  
   
   
   
     _________________________________________________________________
   
   
   
  CRAFTWORKS LINUX 2.2 INTEL VERSION
  
   
   
    Mon, 07 Oct 1996
   Craftwork Solutions has released it's second generation Linux OS for
   the Intel platform. Craftworks 2.2 is a complete, customizable
   operating system for Intel based machines that empowers the desktop.
   It is a solid operating environment for desktop workstations and Web
   server solutions. The Linux environment provides improved processing
   performance, high reliability and built-in security, at an affordable
   price.
   
   For additional information:
   Craftwork Solutions, Inc., http://www.craftwork.com
   info@craftwork.com
   
   
   
     _________________________________________________________________
   
   
   
  JAVA DEVELOPMENT KIT--JDK 1.0.2 FOR LINUX
  
   
   
    On Friday September 27th 1996, Sun Microsystems provided the Java
   community with the long awaited update of the binary license,
   subsequently making redistribution of the Linux JDK 1.0.2 (Java
   Development Kit) possible.
   
   For additional information:
   http://www.blackdown.org/java-linux/Information.html 
   Robert Herrmann bherrman@netcom.com
   NETCOM On-line Communication Services
   
   
   
     _________________________________________________________________
   
   
   
  LINUX ON A DISK
  
   
   
    06 Oct 1996
   A 1 or 2 GigaByte IDE Hard Disk Pre-Loaded with Linux. Positively the
   easiest way to get the Linux Operating System up and running on your
   PC.
   
   http://www.cosmoseng.com/
   
   
   For additional information:
   Clay Claiborne, cjc@earthlink.net
   Cosmos Engineering Co., Los Angeles, CA
   
   
   
     _________________________________________________________________
   
   
   
  MKLINUX RELEASE 2.0
  
   
   
    23 Sept 1996
   Apple Computer, Inc. (Nasdaq: AAPL) announced today that it is making
   available Developer Release 2 of MkLinux. Based on the Open Software
   Foundation (OSF) Mach Kernel, MkLinux allows users to run UNIX
   applications and solutions on high performance Power PC-based
   products. The DR2 release delivers substantially improved performance
   and stability, and many features Linux developers and customers have
   been asking for.
   
   Apple is making the source code for Developer Release 2 available free
   of charge on the Apple MkLinux web site at
   http://www.mklinux.apple.com/ long with snapshots of MkLinux,
   updates, patches, and late-breaking news. Apple's MkLinux Developer
   Release 2 CD is available from Prime Time Freeware for U.S. $20.
   
   For additional information:
   Prime Time Freeware, info@ptf.com, http://www.ptf.com/
   Apple Computer Inc., http://www.apple.com/
   
   
   
     _________________________________________________________________
   
   
   
  RED HAT LINUX 4.0 USERS'S GUIDE
  
   
   
    Fri, 04 Oct 1996
   Red Hat Linux 4.0 Users's Guide free via FTP! That's right, the 236
   page Red Hat Linux 4.0 User's Guide is now available via FTP, in
   PostScript and HTML form. It is also available for browsing on our web
   site. The Users's Guide covers installation, configuration, RPM,
   control-panel, and basic system administration issues, and is a must
   have for anyone running Red Hat Linux.
   
   http://www.redhat.com/support/rhl/manual
   ftp://ftp.redhat.com/pub/redhat/redhat-4.0/Users-Guide
   
   
   The Red Hat 4.0 User's Guide is distributed under the same terms as
   the Linux Documentation Project (LDP) documents.
   
   For additional information:
   Red Hat Software, http://www.redhat.com/
   info@redhat.com
   
   
   
     _________________________________________________________________
   
   
   
  VIDEO MOSAIC NETSCAPE PLUGIN FOR LINUX
  
   
   
    18 Oct 1996
   Vosaic (Video Mosaic) is available as a Netscape Navigator plug-in for
   Linux from the Systems Research Group of the University of Illinois at
   Urbana-Champaign and Vosaic Corp.
   
   Vosaic supports real time video over the Internet that is embedded in
   standard Web pages. The technology allows one to view MPEG video at 6
   to 10 frames per second over telephone dial up connections at 28.8
   Kbits/s. Higher bandwidths improve video quality. There is no download
   latency - videos are displayed as the data arrives over the network.
   Get the 1 BETA 12 plug-in at:
   
   http://www.vosaic.com/
   
   
   Vosaic requires kernel 2.0 and above, as well as XFree86 3.1.2.
   
   For additional information:
   info@mosaic.com
   http://choices.cs.uiuc.edu/srg/stan/video.ps
   
   
   
     _________________________________________________________________
   
   
   
  VIRTUAL PAPER--ONLINE-DOCUMENT VIEWING SYSTEM
  
   
   
    04 Oct 1996
   Virtual Paper is a high-quality online-document viewing system.
   Lectern, the Virtual Paper viewer, offers good legibility (using
   anti-aliasing), fast page-turning speed, a smooth user interface, and
   the ability to handle both PostScript and scanned "legacy" documents.
   
   It's written in Modula-3, is distributed in both source and executable
   format, and is free (but copyright by Digital Equipment Corporation).
   
   DEC has announced the availability of the Virtual Paper system in
   x86/Linux ELF executable format.
   
   For details on the overall system, including links to the executables
   and sources, see:
   
   http://www.research.digital.com/SRC/virtualpaper/
   
   
   For additional information:
   Paul McJones, mcjones@pa.dec.com 
   Andrew Birrell, birrell@pa.de.com 
   DEC Systems Research Center (SRC), Palo Alto, California, USA
   
   
   
     _________________________________________________________________
   
   
   
  WEBTHREADS 1.0.1 FOR LINUX
  
   
   
    08 Oct 1996
   WebThreads, LLC of Vienna, VA, announced the release of WebThreads
   1.0.1 web site interactivity and visitor tracking solution. WebThreads
   allows you to create truly interactive web sites that respond and
   change in real time to individual visitors based on their actions
   while providing the webmaster with a tremendous amount of information
   about what the visitors are doing on your site. WebThreads is a
   lightweight and easy to install set of CGI scripts written entirely in
   C that greatly enhance the flexibility, interactivity and visitor
   traffic reporting accuracy of standard WWW servers.
   
   For additional information:
   WebThreads, http://www.webthreads.com/
   info@webthreads.com
   
   
   
     _________________________________________________________________
   
   
   
  XFORMS V0.81--X11 GUI TOOLKIT & BUILDER
  
   
   
    29 Sep 1996
   XForms is a graphical user interface toolkit and builder based on Xlib
   for X Window Systems. XForms is a portable and efficient C library
   that can be used in both C and C++ programs. The library works in all
   visuals and all depths (1-24) and comes with a rich set of objects
   such as buttons (of many flavors, including color XPMs as labels) ,
   browsers, sliders, and menus integrated into an elegant event/object
   call back execution model that allows fast and easy construction of
   X-applications. It also has OpenGL (on SGI) and Mesa support.
   
   XForms V0.81 for Linux/m68k and MkLinux is available from
   
   http://bragg.phys.uwm.edu/xforms
   ftp://laue.phys.uwm.edu/pub/xforms
   
   
   In addition, XForms is already available for Linux/i386, Linux/Alpha
   and other Unix platforms.
   
   For additional information:
   T.C. Zhao, zhao@laue.phys.uwm.edu
   Surface Labs, Dept. of Physics, UW-Milwaukee
   
   
   
     _________________________________________________________________
   
   
   
   [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
   
   
     _________________________________________________________________
   
   
   
      This page written and maintained by the Editor of Linux Gazette,
      gazette@ssc.com
      Copyright &copy; 1996 Specialized Systems Consultants, Inc.
      
   
   
   
     _________________________________________________________________
   
   
   
    [IMAGE] "Linux Gazette...making Linux just a little less scary! " [IMAGE]
    
   
   
   
     _________________________________________________________________
   
   
   
   Larry Ewing's Penguin Gazette
   
                               THE GRAPHICS MUSE
                                       
   by Michael J. Hammel 
     _________________________________________________________________
   
   muse:
    1. v; to become absorbed in thought
    2. n; [ fr. Any of the nine sister goddesses of learning and the arts
       in Greek Mythology ]: a source of inspiration
       
   
     _________________________________________________________________
   
     * Graphics Mews
     * Musings
     * Future directions
       
   
     _________________________________________________________________
   
   Welcome to the Graphics Muse! This is the first in what I hope will be
   a long running monthly column relating to computer graphics on Linux
   systems. Why a "muse"? Well, except for the sisters aspect, the above
   definitions are pretty much the way I'd describe my own interest in
   computer graphics: it keeps me deep in thought and it is a daily
   source of inspiration.
   
   This column will be divided into two sections: Graphics Mews, a
   section devoted to the latest news in graphics such as new releases of
   products (free or commercial), people in the news, conventions and
   conferences and whatever else might be of general interest to the
   graphics community, and Musings, a section where I can spew whatever I
   think needs to be covered more in depth. The later section I hope will
   cover things like reviews of products, tips and tricks, interviews
   with graphics people, or maybe just my philosophies on life. You'll
   just have to come back each month and see where things go.
   
   I'm open to suggestions on topics for the Musings section. I'll also
   take any and all notices regarding graphics tools that are being
   released or updated. Please don't send notices as advertisements - I
   only want to know about new releases or new products. I'm only doing
   that to keep my workload down a little.
   
   One thing this column won't cover is X programming or windowing API's
   (unless they are specifically designed for the development of graphics
   tools). There are lots of places to get information about X. This
   column is about computer graphics in general.
   
   
   
Graphics Mews

   Before I get too far into this I should note that any of the news
   items I post in this section are just that - news. Either I happened
   to run across them via some mailing list I was on, via some Usenet
   newsgroup, or via email from someone. I'm not necessarily endorsing
   these products (some of which may be commercial), I'm just letting you
   know I'd heard about them in the past month.
     * Megahedron
       According to the announcement sent to me from Syndesis Corporation
       (the maker of this product), Megahedron is a programmable 3D
       graphics engine. It runs on a number of platforms, including
       Linux. You can check out the web site at http://www.threedee.com/.
     * QT
       Troll Tech AS has released a free version of QT for the X Window
       System. QT is a complete and well-developed object-oriented
       program for developing graphical user interface applications using
       C++. For additional information check out Troll Tech's web site at
       http://www.troll.no/.
       
   Thats all I've seen for this month. Software releases have been kinda
   sparse the past month for some reason.
   
   
   
Musings

   First, let me start with some shameless self-promotion: The Linux
   Graphics mini-Howto and the Unix Graphics Utilities pages. The latter
   of these I started late last year while beginning to learn about
   computer graphics through the use of POV-Ray, a 3D rendering tool. I
   had found that most of the tools available for use with POV-Ray were
   not Unix based (not specifically, anyway) so I tried to find info on
   Unix based tools since I was running Linux. After I learned a bit more
   about computer graphics I started the Linux Graphics mini-Howto in
   retaliation for a coworkers claims that doing graphics was best left
   to MS based systems. NOT! The tools need a little organizing, a few
   need better documentation, but in general you can do some very
   impressive graphics on Linux systems.
   
   These two pages are available at:
   http://www.csn.net/~mjhammel/linux-graphics-howto.html and
   http://www.csn.net/~mjhammel/povray/povray.html.
   I was offered some free web space by a couple of people so I'll be
   moving my pages sometime in the future, but probably not till after
   January.
   
   Note: if you are the official maintainer of any of the packages listed
   in these pages feel free to keep me informed of new releases. The
   information there is only as good as the info I've gathered from
   newsgroups and word of mouth so far.
   
   Ok, enough about me.
   
   My first bit of musings revolves around the use of images in web
   pages. I get a number of e-mails from people who've seen my web pages
   (or possibly my ramblings on various newsgroups or mailing lists)
   asking how to do blah or where can I get blah to do blah for their web
   pages. The "where" parts are covered by the links mentioned above. The
   "how" part is a broad question. I'll summarize.
   
   When creating graphics for your pages, keep the following things in
   mind:
    1. Consider your target audience:
        Home Users
          + Most home users have slow links. Even 28.8 modems don't load
            big graphics all that fast. Keep your images small.
          + Animations that are done with like cell-animations are done
            for cartoons (sequences of individual images with slight
            variations to simulate movement) require each cell to be
            loaded across the net. This is tantamount to one big image
            taking forever to load.
          + Most home users are still limited to 256 colors on their
            displays. Lots of users have upgraded to better graphics
            cards, but how many people do you want to alienate with an
            image with 10000 colors?
    2. If you want the average person to visit your page, you have to
       give them two things: content and flash. The flash has to be done
       using as little download time as possible, with as much color as
       you can squeeze in without overloading the browser (causing it to
       dither images). The content must be the reason for your pages, not
       the flash.
    3. Background images should be just that - in the background. Don't
       make the background so gaudy it distracts from your real content.
    4. Use common colormaps - this reduces the number of colors the
       browser has to allocate, leaving some space for other
       applications. X-based systems can allocate colors into private
       colormaps, but this causes that annoying "flashing" you see (try
       running Netscape with the -install option - you'll see what I
       mean).
    5. Flash can be added easily with a simple background over which you
       add some in-line transparent GIFs.
    6. Never use an "Under Construction" image. Its the Web. Of course
       its under construction!
    7. Don't put those silly graphic dots in place of HTML list bullets.
       First, they waste the users time downloading (each requires
       another connection to the server) and second they break the
       formatting rules provided with HTML. Its just not good practice
       and they don't have any real value add to your pages. Now that you
       know some basic guidelines for you images, how do you go about
       creating the images? It depends on what kind of images you want to
       make. If you want a simple, cartoon-like image you can get a
       drawing program like xpaint. This tool is good for drawing circles
       and boxes and filling them in, using a window like a canvas to
       paint on the screen. However, this tool is limited in what you can
       do to the image once you've drawn it. One highly popular tool for
       a number of platforms that does this post-processing is Adobe
       Photoshop. Using a tool like this takes a bit of practice, but
       once you've mastered it you can do some rather amazing things. A
       Linux alternative to Photoshop is the Gimp. The logos on this page
       were created with the Gimp. So was the background.
       
       3D images are a whole other matter. There are actually more
       well-known tools for doing 3D work than there are for doing image
       manipulation (ie tools like the Gimp). Probably the best known of
       these is POV-Ray. This tool reads in a text file that uses a
       "scene description language" to describe how objects in the scene
       should be positioned and textured. The drawback to these tools is
       that they lack a point-and-click interface. There are separate
       tools available, known as modellers, that allow the creation of
       the scene files without actually rendering the image. In order to
       create 3D image you need to either learn the scene description
       language or learn who to use a modeller that will create it for
       you.
       
       I know this is fairly basic and undetailed, but this is just my
       first column. Over time I'll try to cover both beginner and more
       advanced issues.
       
       
       
Future Directions

   Next month: How do you create the textures that get applied to 3D
       images? Beyond that, I'm considering talking about how to use Type
       1 fonts in your images: how to install them, how you can
       manipulate them with the Gimp to make interesting logos, etc. I'd
       also like to provide some tips for using POV-Ray and BMRT
       (although I have a lot to learn about the latter). And I might try
       to cover a little on how to do animations. Things are pretty open
       right now. Let me know what you'd like to hear about!
       
       
         _____________________________________________________________
       
       "Linux Gazette" Penguin courtesy of Larry Ewing.
         _____________________________________________________________
       
      Copyright &copy; 1996, M. J. Hammel
      
      Published in Issue 11 of the Linux Gazette
   
       
       
         _____________________________________________________________
       
       
       
       [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
       
       
         _____________________________________________________________
       
       
       
    [IMAGE] "Linux Gazette...making Linux just a little less scary! " [IMAGE]
   
       
       
         _____________________________________________________________
       
       
       
A "Kill-Ring" Menu For Xemacs

    by Larry Ayers
   Copyright &copy; 1996
       
      Published in Issue 11 of the Linux Gazette
   
       
       
         _____________________________________________________________
       
       
       
       Lately I've been enjoying exploring the myriad capabilities of GNU
       Emacs' offspring and competitor, Xemacs. Aside from the burden of
       downloading the voluminous source, Xemacs offers quite a few
       features which Gnu Emacs lacks. Luckily for those considering a
       transition, the basic keystrokes and commands are nearly
       identical.
       
       One feature of Gnu Emacs which I began to miss after a while was
       the handy pull-down menu which displays the first few words of
       each cut or copied selection made in the current session, i.e. the
       "kill-ring". The prospect of figuring out how the lisp files work
       which determine the menu-bar's structure wasn't too appealing. I
       know a little lisp, but not enough to add a new menu entry.
       
       Some weeks later, while idly browsing through some emacs newsgroup
       headers, I came across this posting, which I'll quote here in
       full:


In article  imac@portia.rd.abs.alcatel.co.uk
(Ian MacKinnon) writes:

>When I used emacs (before I saw the light), I made use of a function
>mouse-menu-choose-yank which offered you the choice to yank from the recent
>history of selections via a popup menu, but I can't get it to work in
>XEmacs because x-popup-menu doesn't exist, and the parameters to
>popup-menu are different. Has anyone got an alternative. I enclose the
>...

I have hacked the Emacs codes of mouse-menu-choose-yank to put in
Xemacs as follows:


(defvar yank-menu-length 40
  "*Maximum length of an item in the menu for select-and-yank.")
(defun select-and-yank-filter (menu)
  (let* ((count 0))
    (append menu
            (mapcar
             #'(lambda (str)
                 (if (> (length str) yank-menu-length)
                     (setq str (substring str 0 yank-menu-length)))
                 (prog1
                     (vector
                      str
                      (list
                       'progn
                       '(push-mark (point))
                       (list 'insert (list 'current-kill count t)))
                      t)
                   (setq count (1+ count))))
             kill-ring))))

For this to work, you have to put on your menu bar the following submenu
(use add-submenu for that for example):

      ("Select and Yank"
       :included kill-ring
       :filter select-and-yank-filter)

Hope this help

-----------------------------------------------------------------------
PHAM Dinh Tuan                         | e-mail: Dinh-Tuan.Pham@imag.fr
Laboratoire de Modelisation et Calcul  | Tel: +33 76 51 44 23
BP 53, 38041 Grenoble cedex (France)   | Fax: +33 76 63 12 63
-----------------------------------------------------------------------
   
       
       It took a little experimenting to get this to work. The first
       section of lisp code, ending with "kill-ring))))", can be copied
       unaltered into the xemacs section of your ~/.emacs file. If you're
       using Xemacs 19.14 (the current version), it goes into your
       ~/.xemacs-options file.
       
       The second, shorter lisp snippet needs one small addition:


           (add-submenu nil '("Kill-Ring"
                     :included kill-ring
                     :filter select-and-yank-filter))
   
       
       
       As well as adding the proper syntax for add-submenu, I shortened
       the menu-title, but it could be called anything you like.
       
       When I first restarted Xemacs after placing this code into the
       init file the new submenu was nowhere to be seen. I surmised that
       I'd made some error, and put off further experimentation for
       another time. A few minutes later I was busily editing some file.
       I happened to glance up at the menu-bar and found a brand-new
       kill-ring submenu. Surprisingly the new menu only appears after a
       selection has been cut or copied.
       
       I was happy, and thought that by relating my experience I could
       encourage other Xemacs users (especially the ones who know as
       little lisp as I do!) to try this neat hack. Thanks to Dinh Tuan
       Pham, if he or she should happen to see this.
       
       
         _____________________________________________________________
       
       
       
       [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
       
       
         _____________________________________________________________
       
       
       
    [IMAGE] "Linux Gazette...making Linux just a little less scary! " [IMAGE]
   
       
       
         _____________________________________________________________
       
       
       
Linus to Move to U.S. in 1997

    By Phil Hughes, phil@ssc.com
    
      Copyright &copy; 1996
      
      Published in Issue 11 of the Linux Gazette
   
       
       
         _____________________________________________________________
       
       
       
       
       
       Linus Torvalds is currently in the process of finishing up his
       Master's degree at the University of Helsinki. After degree
       completion, he plans to move to Santa Clara, California, where he
       will begin working for Transmeta in March, 1997. Since Transmeta
       does not do Linux, this is a Linux-neutral position; however, his
       contract includes a provision for time to continue work on Linux.
       
       After careful consideration of what he wanted in the future for
       himself and his family, Linus decided to pursue a position in the
       business world. A friend of his, who works for Transmeta and who
       has been a long-time Linux contributor, talked to his management
       and found a position for Linus that would both utilize his talents
       and interest him.
       
       Linus feels that the match between Transmeta and his future goals
       is a good one. Transmeta is a relatively small company. While
       Linus' main job will not be working on Linux, Transmeta recognizes
       the good that Linux is doing, and will allow Linus time and
       freedom to continue with the Linux project.
       
       Here at Linux Journal we see this as a chance to let Linus trade
       in some of that virtual beer we owe him for the real stuff. While
       not exactly around the corner, being on the same coast and within
       about two hours by airplane makes the trade a lot easier.
       
       While some have expressed fear that Linus' choice to apparently
       have a life could adversely affect Linux development, I think this
       is not the case. Those of us who have had the opportunity to sit
       down and talk with Linus know that Linus already has a life. While
       he spends a lot of time working on Linux, he does have other
       interests. The goal in attending the University of Helsinki was to
       get a degree, not to build the operating system we are all now
       involved in.
       
       I think his decision to go to a Linux-neutral company, even though
       he had job offers from companies working with Linux, will be an
       advantage to the Linux industry as a whole. Also, being in the
       U.S. will make it easier for Linus to participate in shows and
       other events here, while still maintaining a personal life.
       Besides, it is going to be nice to be able to say that the person
       who created our operating system of choice has a job.
       
       -- Phil Hughes
       Publisher of Linux Journal
       
       
       
         _____________________________________________________________
       
       
       
       [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
       
       
         _____________________________________________________________
       
       
       
       
       
       
         _____________________________________________________________
       
       
       
    [IMAGE] "Linux Gazette...making Linux just a little less scary! " [IMAGE]
   
       
       
         _____________________________________________________________
       
       
       
                RUNNING SUN'S HOTJAVA BROWSER ON A LINUX SYSTEM
                                       
   
         _____________________________________________________________
       
    by Larry Ayers
   Copyright (c) 1996
       
      Published in Issue 11 of the Linux Gazette
      
  INTRODUCTION
   
       
       
         _____________________________________________________________
       
       
       
       Recently I stopped by the Java-Linux web-page to see what was new
       and found an intriguing new link. This link took me to a page
       which contains a script allowing Sun Microsystem's HotJava
       web-browser to be run on a Linux machine. I was skeptical, as the
       Java-based browser supposedly is only available in versions for
       Win 95/NT and Sparc Solaris systems. The comments in the script
       stated that the Sparc version should be downloaded and installed,
       after which the new script should be edited to reflect the
       location of the Java Developers Kit on the machine. The comments
       were rather terse; what I wanted to know was whether it worked
       well enough to even bother with.
       
  DOWNLOAD AND INSTALLATION
   
       
       You've probably guessed that my curiosity got the better of me;
       feeling faintly foolish I FTP'ed the three-and-one-half megabytes
       of Sparc binaries from the Javasoft site and installed them. After
       substituting the new start-up shell script for the supplied script
       I was ready to try it out. The first try it died, complaining that
       it couldn't find mkdir in /usr/bin. I re-edited the shell script
       and corrected that path. This time it worked, and I have to say I
       was impressed.
       
  SO WHAT'S IT LIKE?
   
       
       HotJava is a graphically well-designed browser. The graphics in
       the various help-pages, the buttons, and the general design are
       all professionally executed, and pleasing to the eye. Here is a
       screen-shot of one of the included monitor applets:
       
         _____________________________________________________________
       
       HotJava
         _____________________________________________________________
       
       
       
       The browser takes about as long to start up as Netscape does. It's
       informative to start it from an xterm window, as verbose messages
       scroll by throughout the session indicating what threads and
       applets are active. You'll also be able to see its dying words, as
       (at least on my machine) it will only run for about one-half an
       hour before crashing. While it runs it seems to do well, though. I
       aimed it at http://www.gamelan.com and tried a variety of java
       applets. They seemed to take longer to load than with Netscape,
       but once loaded worked well. Frames, once a Netscape exclusive,
       are supported. There is also a menu option allowing hotlists from
       other browsers to be imported.
       
       In its current "pre-beta" state HotJava uses an awful lot of
       memory. Top reported usage of fourteen to fifteen megabytes! No
       wonder I could only start it when the machine was lightly loaded.
       The current version of the Linux java compiler is a memory hog as
       well, so perhaps this is a trait of java, being an interpreted
       language as it is.
       
       HotJava includes two interesting monitor applets. One shows the
       current memory usage in bar-graph form, with a button which will
       clear past images and pages from memory, rather like Netscape's
       "clear memory cache" function. The other shows a list of all of
       the active threads, with often as many as twenty to thirty active
       at once.
       
       I did notice that if used locally; i.e. for viewing HTML files on
       the local hard disk rather than on the net, it wouldn't crash. GIF
       and JPEG images referred to from a page (rather than inline on the
       page) are viewed in the same window with an internal viewer. This
       is in contrast to some browsers which call an external program for
       this purpose.
       
       I should state here that I don't have the Java Developer's Kit
       version 1.02 patchlevel 2 installed; my installation is the plain
       1.02. Patchlevel 2 is recommended on the Java-Linux page. Perhaps
       some of the problems I had with HotJava can be attributed to my
       slightly out-of-date JDK.
       
  CONCLUSION
   Even with all of the faults related above my overall impression was
       positive. Remember, this is a pre-beta release. HotJava is a major
       evolutionary step up from the web-page applets which are the most
       common uses of java these days. What other large application
       written in java is available? It is a tribute to the inherent
       cross-platform nature of the java language that a release intended
       for Sparc Solaris machines will run at all on my humble 486 Linux
       box. Thanks go to whomever modified the hotjava script and made it
       available on the Java-Linux site!
         _____________________________________________________________
       
    Larry Ayers<layers@vax2.rain.gen.mo.us>
   Last modified: Sat Oct 26 17:29:28 CDT 1996
       
       
         _____________________________________________________________
       
       
       
       [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
       
       
         _____________________________________________________________
       
       
       
    [IMAGE] "Linux Gazette...making Linux just a little less scary! " [IMAGE]
   
       
       
         _____________________________________________________________
       
       
       
                            THE TKGOODSTUFF PACKAGE
                                       
    by Larry Ayers
   Copyright &copy; 1996
       
      Published in Issue 11 of the Linux Gazette
   
       
       
         _____________________________________________________________
       
       
       
  INTRODUCTION
   
       
       For the past couple of years Mark Crimmins at the University of
       Michigan has been developing and refining an extremely
       configurable desktop button-bar; since it's written in Tcl-Tk and
       superficially resembles the Fvwm Goodstuff module, it is known as
       TkGoodstuff. The utility has passed through several beta versions
       in the last year. Recently Mark made available a release version
       4.1, so I thought this would be an auspicious time to review it.
       
  FEATURES
   
       
       TkGoodstuff is really a package of "clients", which are modular
       utilities, organized and displayed by the master program. Some of
       the client utilities were written by Mark Crimmins, while others
       were contributed by users. They include:
          + Window-list: displays running programs a la Win95
          + Pager: Compact pager, like fvwm's
          + Biff: Mail notifier
          + Net: Net status indicator, can also launch scripts
          + Dialer: Configurable ppp/slip script-generator and launcher
          + Jots: Notepad utility
          + Watchdog: Monitors any logfile for changes
          + Clock: Any sort you like
          + Load: Like a miniature xload
          + Many others! Consult the web-site for descriptions
   TkGoodstuff screenshot
       
       TkGoodstuff includes a tabbed-notebook style configuration
       utility, which allows a multitude of settings to be made for all
       of the clients. Colors, icons, fonts, and nesting of clients can
       all be determined here. Configuring a utility like this one can be
       extremely time-consuming. I like to rough out the configuration in
       one pass, live with it for a while, then make incremental changes
       from time to time as they occur to me. After making any change in
       the configuration notebook a window pops up giving you the
       opportunity to restart Tkgoodstuff (hereafter referred to as Tkg).
       
       
       Tkg is designed to cooperate with and interact with Fvwm; it can
       be loaded as an Fvwm module either at start-up or from the
       mouse-menu. If run as a module the button-bar will "stay on top"
       and inhabit all pager windows. There is also an option which
       allows Tkg to span any of the four screen edges.
       
       
       On my system PPP dial-up sessions are initiated by means of a
       short shell script called ppdi. I recently discovered that the Tkg
       Net client can launch this script when its panel is mouse-clicked,
       and terminate the session the same way by launching the ppp-off
       script. This is just marginally easier than finding an rxvt window
       and typing the commands in, but much easier to explain to my wife
       and kids! The Net button also shows total time online when a
       connection is open.
       
       Modules which are used less often can be invoked from a submenu
       viewed by clicking the Utilities button.
       
       My favorite configuration uses a small subset of the available
       modules, with the window-list and pager combination occupying the
       lower half of the bar.
       
       Tkg comes with ample documentation in the form of linked HTML
       files. A tutorial is even included which provides help for
       creating your own modules.
         _____________________________________________________________
       
  AVAILABILITY AND INSTALLATION
   
       
       TkGoodstuff is available from the major Linux archive FTP sites,
       but its home site will have the most recent version. The
       compilation and installation process is well-documented within the
       package; the current version (4.1) does require Tcl-7.5 and
       Tk-4.1.
       
         _____________________________________________________________
       
    Larry Ayers<layers@vax2.rain.gen.mo.us>
   Last modified: Tue Oct 22 09:25:55 CDT 1996
       
       
         _____________________________________________________________
       
       
       
       [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
       
       
         _____________________________________________________________
       
       
       
    [IMAGE] "Linux Gazette...making Linux just a little less scary! " [IMAGE]
   
       
       
         _____________________________________________________________
       
       
       
                                    X-FILES
                                       
    by Larry Ayers
   Copyright &copy; 1996
       
      Published in Issue 11 of the Linux Gazette
   
       
       
         _____________________________________________________________
       
       
       
       From two Finnish college students, Juha Forsten and Mikko
       Kiviniemi, comes a new variation on the theme of translating basic
       Unix commands into a graphical form with Tcl/Tk. X-Files
       superficially resembles FileRunner (reviewed in LG #9) due to a
       shared ancestry: those legendary Amiga file managers which seem to
       inspire such loyalty and nostalgia. This new one has quite a list
       of features, all of which are configurable to an extreme.
       
  FEATURES, SOME UNIQUE
   
       
       X-Files is one of those apps which you could spend hours
       customizing. The X-Files window at first glance seems cluttered
       and busy, with row after row of multicolored function buttons. I
       believe the authors set up the default configuration this way so a
       new user could see all of the possibilities at a glance. Click
       here to take a look: Initial View
       
       Exploring further I found that a pull-down menu allows the default
       button-arrangement to be exchanged for any of three alternate
       choices. Alternately, any individual row can be disabled. As a
       further refinement there is an entry under the "config" menu item
       which allows the appearance and behavior of any button to be
       edited. A small edit-window pops up after you click a mouse button
       on whichever button you'd like to change. The color, button text,
       and command you'd like the button to run can be entered in and
       saved. Entire groups of buttons, each optimized for a certain
       project or type of work, could be created. They would then be
       available from the menubar.
       
       Another built-in mini-editor is also available from the menubar.
       This one allows specific behavior to be assigned to various file
       extensions. If you'd prefer the Gimp rather than XV to be the
       default image viewer for jpg files this'll let you do it. A
       separate program or action can be assigned to each of the left and
       middle mouse-buttons.
       
       The references to left and middle in the above statement seem to
       refer to a three-button mouse. X-Files was written with this sort
       of mouse in mind and can be a little awkward to use with a
       two-button mouse, like mine. Even if you have emulate three-button
       mouse set in your XF86Config file, double-clicking both mouse
       buttons at once takes a while to get used to.
       
       I was pleased to see complete keyboard-control support in this
       file manager. The arrow keys and page-up and page-down keys work
       in whichever directory pane the mouse cursor is in. The focus
       follows the mouse without clicking, even to list-boxes and
       entry-fields. Lack of this feature is a shortcoming in the other
       two Tk file managers I've written about, Tkdesk and FileRunner.
       
       The mv command in Linux (and other Unix variants) has a
       peculiarity: it refuses to move a file from one partition to
       another. Most file managers I've used deal with this by means of a
       behind-the-scenes subterfuge. While the user thinks the manager is
       moving the file, it's actually copying the file, then quickly
       deleting it from the original location. The overall effect is the
       same. The Move button in X-Files hasn't learned this trick yet,
       but I imagine after a few more version releases it will. This
       behavior has an effect upon file deletions which puzzled me for a
       while. X-Files would occasionally refuse to delete files for no
       apparent reason. What was happening was a result of X-Files' use
       of an undelete/trashcan directory. This directory
       (~/.xfiles/xfiles_dumpster) is created during installation, and
       the default behavior is to move all deleted files to this
       directory. This would be fine if all your files were on the same
       partition; if they're not X-files will balk. Luckily this feature
       is easily disabled; I prefer irrevocable deletion anyway.
       
       A "virtual file system", similar to but not quite as refined as
       the Midnight Commander's, allows the contents of zipped and tarred
       and gzipped files to be browsed. In this beta *.tgz files are
       supported, but not *.tar.gz files.
         _____________________________________________________________
       
  LICENSING AND AVAILABILITY
   
       
       X-Files has many other features; why not check out the X-Files
       Home page and find out more? The source can be downloaded from
       the page as well. As of this writing (early October) it hasn't
       shown up on the archive sites.
       
       This program isn't completely free. The terms are similar to those
       of John Bradley's XV image viewer: it's free to individuals, but
       for business and any other multiple-user use it costs twenty
       dollars to register. The authors also hint that feature requests
       from those who have paid will be more likely to be acted upon. An
       individual wishing to be a "supported user" only has to pay ten
       dollars.
         _____________________________________________________________
       
  CONCLUSION
   
       
       I consider X-Files to be a direct competitor in features and
       utility to both FileRunner and the Midnight Commander. Tkdesk and
       Moxfm are in a different league; they're much more than file
       managers, though many of the functions are comparable. The
       Midnight Commander has the useful trait of running in a console
       session as well as in an rxvt or xterm window. Because of this,
       Midnight Commander is among the first apps I resurrect after
       repartitioning and reinstalling Linux. I'm just happy that we now
       have choices in applications for Linux; it wasn't that long ago
       that Linux users were glad to have just one of each type of app or
       utility.
         _____________________________________________________________
       
    Larry Ayers<layers@vax2.rain.gen.mo.us>
   Last modified: Tue Oct 22 09:24:14 CDT 1996
       
       
         _____________________________________________________________
       
       
       
       [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
       
       
         _____________________________________________________________
       
       
       
    [IMAGE] "Linux Gazette...making Linux just a little less scary! " [IMAGE]
   
       
       
         _____________________________________________________________
       
       
       
       Subject: TAPR SS Position Statement
       Date: Thu, 26 Sep 1996 12:18:44 -0700 (PDT)
       From: Steve Stroh
       To: Phil Hughes WB6SWR
       
       
       I suspect that the "Intranet" described below will be built on
       Linux-based IP routers, possibly a simple implementation that can
       be booted from floppy or Flash Card.
       
       It's going to be very, very interesting.
       
       Steve N8GNJ, strohs@halcyon.com
       Amateur Radio TCP/IP n8gnj@sw.n8gnj.ampr.org
       | Amateur Spread Spectrum is the wave of the present!
       
       
       
         _____________________________________________________________
       
       
       
TAPR's Statement on Spread Spectrum Technology Development

    http://www.tapr.org/
   
       
        TAPR was founded in 1982 as a membership supported non-profit
       amateur radio research and development organization with specific
       interests in the areas of packet and digital communications. In
       the tradition of TAPR, the Board of Directors at their Fall 1995
       meeting voted that the organization would begin to actively pursue
       the research and development of amateur radio spread spectrum
       digital communications. At the Spring 1996 board of directors
       meeting, the following statement of purpose was passed:
       
     "TAPR believes that the technical facts support our conviction that
     conventional and spread spectrum systems can coexist without
     detriment to conventional systems on all frequencies from MF to EHF.
     To this end, TAPR will begin to research spread spectrum systems
     that will develop technology for future deployment."
   As stated above, the TAPR board feels strongly about TAPR's focus on
       spread spectrum technology and especially how it relates to the
       potential coexistence on frequencies that will have increased
       number of users occupying them. The amateur radio bands, like
       other spectrum will become more heavily utilized in the future. It
       is in the interest of amateur radio to develop systems that are
       interference-resistant while not interfering with other primary or
       secondary users on those frequencies.
       
       TAPR understands the concerns many have with the new technology,
       and believes that efforts in both education and research is
       necessary in order to allay the fears about interference and to
       demonstrate the benefits of the technology.
       
       TAPR believes that todays' communications technology is moving
       toward all digital transmitters and receivers. These advances in
       technology, combined with the swift evolution of cell based
       transmission and switching protocols, are opening up a new set of
       possibilities for unique new services utilizing intelligent
       networks. These will contain smart transmitters, receivers, and
       switches. Today's Internet is perhaps the best example of a
       self-regulating structure that embodies these new technological
       approaches to communications in the networking domain. However, to
       date, many of these innovations have not moved into the wireless
       networking arena. TAPR will work on moving these innovations into
       the amateur radio community.
       
       TAPR feels that the VHF/UHF/SHF radio networks of the future will
       involve a mixture of links and switches of different ownership,
       which terminate at the end-user via relatively short-distance
       links. What will then be required is a built-in, distributed,
       self-governing set of protocols to cause the network's behavior to
       make more efficient use of a limited, common shared resource, the
       radio spectrum. Creating such a self-regulating structure for the
       optimal sharing of spectrum will require much effort.
       
       One of the major problems which stands in the way of these new
       approaches today is the current FCC regulatory environment and the
       manner in which spectrum is managed and allocated under its rules.
       
       
       Historically, the current regulatory approach to radio has been
       based upon the technology that was in use at the time that the
       Communications Act of 1934 was framed, basically what we would
       call today, 'dumb' transmitters speaking to 'dumb' receivers. The
       technology of that time required reserved bandwidths to be set
       aside for each licensed service so that spectrum would be
       available when needed. Given this regulatory approach, many new
       applications cannot be accommodated since there is no available
       unallocated spectrum to 'park' new services. However, given the
       new set of tools available to the entrepreneur with the advent of
       digital technology, what once were 'dumb' transmitters and
       receivers can now be smart devices which are capable of exercising
       greater judgment in the effective use and sharing of spectrum. The
       more flexible the tools that we incorporate in these devices, the
       greater the number of uses that can be accommodated in a fixed,
       shared spectrum.
       
       Therefore, TAPR will focus its spread spectrum effort in the
       following areas:
          + TAPR will work to promote rules and technologies to make the
            most efficient use of the spectrum through power control,
            forward error correction, and other means to minimize
            interference among spread spectrum users and existing
            communications systems.
          + TAPR will work on issues and efforts with other national
            organizations to change the regulatory environment and rules
            in order to promote the experimentation, development, and
            later deployment of spread spectrum technology.
          + TAPR will work to develop information on the topic to help
            educate members and the amateur community as a whole about
            spread spectrum technology, and to disseminate this
            information via printed publications, the World Wide Web,
            presentations at conferences and meetings, and other means.
          + TAPR will work to foster experimentation, development, and
            design of spread spectrum systems, and to facilitate the
            exchange of information between the researchers and other
            interested parties.
          + TAPR will work to develop a national intra-network to foster
            the deployment of future high-speed spread spectrum systems
            into regional and local communities, including the
            development of suitable protocols and guidelines for
            deployment of these systems.
          + TAPR will work with commercial companies who manufacture
            spread spectrum devices which operate in spectrum shared by
            the amateur radio service (ARS), in order to make them more
            aware of the nature of ARS operations on those bands with the
            goal to work towards the deployment of devices which will
            minimize interference between all spectrum sharing partners.
          + TAPR will work with commercial companies who manufacture
            spread spectrum devices in order to identify equipments that
            can be either used or modified for use for Part 97 operation.
   
       
       Adopted by the TAPR Board on September 20th, 1996 at Seatac,
       Washington Board Meeting.
       
       Spread Spectrum Statement Committee:
       Greg Jones, WD5IVD
       Dewayne Hendricks, WA8DZP
       Barry McLarnon, VE3JF
       Steve Bible, N7HPR
       
       
       
         _____________________________________________________________
       
       
       
       [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
       
       
         _____________________________________________________________
       
       
       
    [IMAGE] "Linux Gazette...making Linux just a little less scary! " [IMAGE]
   
       
       
         _____________________________________________________________
       
       
       
                        MY EXPERIENCE INSTALLING TCL/TK
                                FROM 7.4 TO 7.5
                                       
on Red Hat Linux 2.1, kernel release 1.2.13

  BY EARL BROWN, GLEEP@LVINET.COM
  
      Copyright &copy; 1996
      
      Published in Issue 11 of the Linux Gazette
   
       
       
         _____________________________________________________________
       
       
       
    In which I chronicle my experiences attempting to upgrade my version of
    TCL/TK to match the web-based help files I had already obtained.
   
       
       For the short version, click here
       
       On with the story!
       
       Naturally, the first thing I looked for was the RPM. Found it,
       couldn't get it because Red Hat FTP was _slow_ during daytime. So
       I went to sun.
       
       There I found tcl7.5 (I'm cautious - don't want to use beta stuff
       when I can avoid it. That is until I'm independently wealthy with
       time on my hands!). Look for:
    ftp://ftp.sunlabs.com/pub/tcl/tcl7.5p1.tar.gz
   That's the file I got. Download it. While you're there, get:
    tk4.1p1.tar.gz
   I created a directory off my home:
    ~/tcl
   and put both files in there. From there I unzipped them to get two
       subdirectories:
       
    ~/tcl/tcl7.5
    ~/tcl/tk4.1
   Both of these contain a README file - I read it (but only closely
       enough to see that there was a README in the 'unix' subdirectory
       that would give me info on how to compile.
       
       So, I changed to the unix subdirectory:
       
    ~/tcl/tcl7.5/unix
   And read the README file. It said run "configure" (which just checked
       out my machine), and then run "make" (which does about what you'd
       expect), then run "make install". All of these appeared to work,
       but when I ran 'wish', I still had the old versions. Hmmmm. 
       
       Put it on the back burner for a while - I've other work to do.
       When I got home, I looked up the files again (and found the RPM
       this time), and downloaded them (at 28.8, instead of T-1 :(
       
       
         _____________________________________________________________
       
       Next morning...
       
       First thing is try the RPM. No luck - it said the .rpm was a
       'version 3' RPM, and that I needed to upgrade my version of RPM.
       Okay - glad I've got two machines at home (Thank you, Mom, for
       giving me your old '486!), I started up the Windows box (I'm
       looking forward to getting WABI so my wife can play FreeCell in a
       _real_ OS :) and started surfing again...
       
       Does anybody know why the rpm says that rpm2.2.rpm is a version 3
       rpm and I need to upgrade?
       
       While I was finding this out, I was exploring other avenues. I got
       the files from sun installed on my machine at home. But they
       wouldn't compile (something about missing include files - this
       didn't surprise me, I've stripped that machine back in the name of
       hard drive space).
       
       So, being the explorer I am, I got out the 'sun archives' CD from
       my Red Hat install set. Did a 'find' for "*.tcl" and was happy to
       see there was a tcl7.5p1.tar.gz file. Good. Ungzipped the thing
       and 'tar tvf'ed it to see what was in it. Hmmm. "./usr/..." Looks
       like I should just untar it from the root directory. I'm not so
       cautious when I'm frustrated.
       
       This option took a _lot_ of drive space. I wish I could undo it.
       It didn't really work (and it complained about not being able to
       form links. I tried to do the links myself, but it still failed).
       
       
         _____________________________________________________________
       
       Nap time...
       
       That was relaxing. I realized I'd been able to compile at the
       office, where it was all the same setup, so I could play with
       "make install" at home and see what I could do.
       
       While I was connected to work, I had the idea to try "wish" from
       the compiled directory at work. IT WORKED! Headway at last! (Did I
       also mention that I'm sometimes a bit slow?) But I've got this
       really ugly hierarchy of files to my compiled copy of 'wish', and
       I don't know what it's going to look for. Copy to my home machine.
       
       Here's the part where things go quickly.
       
       On the home machine, I set up the directory structure I had at
       work and untarred the files. Now I've got a working copy of wish
       and tclsh.
       
       I created a 'bin' directory off my home directory and copied
       'wish' and 'tclsh' into that directory. I also copied the two
       'lib' files "libtcl7.5.a" and "libtk4.1.a" into the bin directory.
       I don't know where they really go, but this place makes good
       sense.
       
       So I run 'wish' from there. Error message - unable to load
       'libtcl' from a list of directories. I'm not sure what they all
       were, but one was '~/library'. Since it worked from
       ~/tcl/tk4.1/unix, I just copied the '~/tcl/tk4.1/library'
       directory to '~/library', and then copied '~/tcl/tcl7.5/library'
       to '~/library'.
       
       Now wish ran with the right version. Delete the ~/tcl structure
       (backup just in case!) and it worked. Good enough. I played with
       my working install of tcl/tk quite happily the rest of the day.
       
       
         _____________________________________________________________
       
       But during the night...
       
       "I've got to set it up to work better!"
       
       So, I get to work and get 'wish' to give me an error message - it
       complained that the 'init.tcl' was not found in
       '/usr/local/lib/tcl7.5'.
       
       Okay. I went to '~/tcl/tcl7.5/library' and copied the files I
       found there to '/usr/local/lib/tcl7.5' (a directory which I had to
       create, by the way).
       
       Run 'wish' again, and this time it complains about 'tk.tcl' not
       being found in '/usr/local/lib/tk4.1'. I'd expected something like
       that. So, create '/usr/local/lib/tk4.1' and 'cp
       ~/tcl/tk4.1/library/* /usr/local/lib/tk4.1'. And it worked!
       
       Then 'cp ~/tcl/tcl7.5/unix/tclsh /usr/bin/tclsh7.5' and 'cp
       ~/tcl/tl4.1/unix/wish /usr/bin/wish4.1'. Go to ~ and run
       'wish4.1'. It worked again! Good, create the link 'ln -sf
       /usr/bin/wish4.1 /usr/bin/wish' and 'ln -sf /usr/bin/tclsh7.5
       /usr/bin/tclsh'
       
       Try it again; 'wish' - and success!
       
       Things I found out:
       
          + In Red Hat 2.1, the tcl/tk libraries are in /usr/lib, but the
            upgrade looks for stuff in /usr/local/lib. Can anybody
            explain this relationship to me?
            
          + The script '~/tcl/tcl7.5/unix/configure' has a pair of
            options: --prefix and --exec-prefix. They have something to
            do with where tcl/tk expect things to be. Anybody know
            exactly what?
            
   
         _____________________________________________________________
       
       
       
Short Summary:

   

Get ftp://ftp.sunlabs.com/pub/tcl/tcl7.5p1.tar.gz and tk4.1p1.tar.gz
'gunzip' them and 'tar xvf' them

'cd ./tcl7.5/unix'
'configure'
'make'
'make install'
'cd  ../..'
'cd ./tk4.1/unix'
'configure'
'make'
'make install'

cd ../..
'cp ./tk4.1/unix/wish /usr/bin/wish4.1'
'cp ./tcl7.5/unix/tclsh /usr/bin/tclsh7.5'
'ln -sf /usr/bin/wish4.1 /usr/bin/wish'
'ln -sf /usr/bin/tclsh7.5 /usr/bin/tclsh'
'mkdir /usr/local/lib/tcl7.5'
'mkdir /usr/local/lib/tk4.1'
'cp ./tcl7.5/library/* /usr/local/lib/tcl7.5'
'cp ./tk4.1/library/* /usr/local/lib/tk4.1'
   
       
       At this point, I'm pretty sure 'wish' will work. But no
       guarantees.
       
       And there will also be a bunch of files left over from any
       previous installation of TCL/TK. Maybe someday I'll clean them up.
       Probably not till I get the new Red Hat 4, tho...(I've got to
       remember to tar & gzip my 'home' tree before that install!)
       
       Earl
       
       
         _____________________________________________________________
       
       
       
       [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
       
       
         _____________________________________________________________
       
       
       
    [IMAGE] "Linux Gazette...making Linux just a little less scary! " [IMAGE]
   
       
       
         _____________________________________________________________
       
       
       
       [IMAGE]
       
                    WELCOME TO THE LINUX WEEKEND MECHANIC!
                                       
Published in the November Edition of the Linux Gazette (#11)

   Copyright (c) 1996 John M. Fisk <fiskjm@ctrvax.vanderbilt.edu>
       The Linux Gazette is Copyright(c) 1996 Specialized Systems
       Consultants Inc. 
       
       
         _____________________________________________________________
       
       
       
       You've made it to the weekend and things have finally slowed down.
       You crawl outa bed, bag the shave 'n shower 'cause it's Saturday,
       grab that much needed cup of caffeine (your favorite alkaloid),
       and shuffle down the hall to the den. It's time to fire up the
       Linux box, break out the trusty 'ol Snap-On's, pop the hood, jack
       'er up, and do a bit of overhauling!
       
       [IMAGE] Time to become the Linux Weekend Mechanic!
       
       
         _____________________________________________________________
       
       
       
Table of Contents

        
          + And Just What Is the Linux Weekend Mechanic?
          + The Talk About Town...
          + The Shop Manual: More tar Tricks!
          + The Shop Manual: Basic File Information
   
       
       
         _____________________________________________________________
       
       
       
[IMAGE] And Just What Is the Linux Weekend Mechanic...?

   
       
       Glad you asked... :-)
       
       After a very busy year creating, writing, editing, proofing, and
       producing the first eight issues of the Linux Gazette I'm happy to
       say that it's been turned over to the kind folks at the Linux
       Journal who will be continuing its production. My special thanks
       to Phil Hughes, the producer of the Linux Journal who first
       broached the subject of taking over the Gazette when the time
       commitment was getting out of hand, AND to Marjorie Richardson,
       the new editor of the Gazette whose wit and wisdom should ensure
       that the LG will continue to flourish.
       
       And now that someone else is doing the day to day management of
       the Gazette I'm back to reading, writing, and tinkering -- and
       this is what the Weekend Mechanic is all about.
       
       I'd like to try to put together a monthly column for the Gazette
       that deals with customizing and running Linux on a personal,
       stand-alone (i.e., not directly networked) PC. The scope of topics
       may include things such as:
          + Shell Programming
          + Shell Customizations
          + Program Reviews
          + Useful Utilities
          + Simple Tcl/Tk Scripting
          + Dial-Up PPP Setup and Tips
          + And so forth...
   
       
       Basically, it covers the topics that I've found interesting using
       Linux on my PC at home -- I've got a shiny new Cyrix P-166+
       machine as of August of this year and have 'Net access via a
       dial-up PPP connection. So, since I'm writing from my own
       experiences, you can anticipate the types of topics I'd likely be
       covering. I should add one important proviso: Keep in mind that
       many of the suggestions and ideas are NOT useful or recommended
       in a networked or multi-user setting in which security is an
       issue!!
       
       Let me say this another way:
       
       Caveat Emptor!
       
       Because I have a stand alone box and a wife who absolutely hates
       using computers I'm the only one that has physical access to my
       machine. For this reason, security is not something that I've had
       to deal with. However, at MTSU, where I'm currently in school, we
       use both HP-UX machines and a number of P-133 machines running Red
       Hat 3.0.3 Linux with the 2.0 kernel upgrade. Security on these
       Linux boxes has been a VERY REAL issue of late -- if you're
       running Linux and someone else has potential access to your
       machine you'd be well advised to think twice before trying
       everything I might suggest. That's not to put a damper on anyone's
       enthusiasm, but having one's system hacked is a serious bummer.
       
       And now that that's been said, I really do hope that the
       information here will be useful or helpful. The more I use Linux
       the more I'm amazed at its depth and breadth and the range of
       tools and programs that are available. It is seriously fun!
       
       For this reason, I've decided to use the "Weekend Mechanic" motif.
       Thing is, if you're running Linux you've undoubtedly discovered
       that it takes more time to set up, configure, and fine-tune than
       most shrink-wrapped OS's. It's a "high needs" OS. Now, you could
       use one of those fancy-shmancy off-the-shelf Brand X OS's, but the
       question you have to ask yourself is...
       
       Do you really want to be see hanging around an OS that looks like
       it comes with training wheels...?!!
       
       I don't think so... ! ;-)
       
       So, if you're one of those "I'd rather have a '68 Pontiac with a
       big block V8, Rochester QuadraJet, Dualies, and a box of
       Snap-On's than anything else" kind of folks...
       
       Relax, you're in the right place. Welcome aboard :-)
       
       
         _____________________________________________________________
       
       
       
[IMAGE] The Talk About Town...

   
       
       For anyone who's been regularly reading the comp.os.linux.*
       hierarchy you'll realize that there's been a LOT happening
       recently within the Linux community. Here's just a smattering of
       some things that you might find interesting as well as other
       odds-n-ends.
       
       Oh, and BTW...
       
       [IMAGE] Happy Halloween! [IMAGE]
       
       And now, back to the news...
       
  [IMAGE] CALDERA TO RELEASE SOURCE CODE FOR DR DOS, CP/M, NOVELL DOS, AND
  PALMDOS
   
       
       Yup, you read that right!
       
       Caldera has announced that it is in the process of a planned
       release of source code for DR DOS, CP/M, Novell DOS, and PalmDOS
       AND the beginning of a project which they are calling OpenDOS. The
       announcement stated a tentative date of the first quarter of 1997
       for this to occur. Drop by and have a look. I think you'll find it
       interesting.
       
       If you've got the hard drive space and want to do a bit of hacking
       away at something new, here's an interesting opportunity.
       
  [IMAGE] DID YOU KNOW THAT THERE'S A "FREEDOS" PROJECT UNDERWAY...?
   
       
       Yup, there's a group working on a freely available version of a
       DOS-like OS. You can find out more on what they're doing, how to
       get a copy of the current version, and how to contribute to this
       effort by checking out the FreeDOS home page at
       sunsite.unc.edu/pub/micro/pc-stuff/freedos/freedos.html.
       
       And speaking of new toys...
       
  [IMAGE] STAROFFICE AND ADOBE BETA SOFTWARE FOR LINUX!
   
       
       StarOffice, a German software developer, has recently announced a
       freely available beta version of its StarOffice suite of
       productivity applications for the Linux OS. This is a seriously
       cool application suite that has a LOT of high end features. One
       caveat: you'll need a copy of the Motif libraries in order to run
       these applications. If you don't have motif, then you might want
       to try some gentle arm-twisting to see whether the folks at
       StarOffice would release a statically-linked version.
       
       For those of you with Motif, you can get the installation "disk
       sets" at any sunsite mirror such as:
       
       GA Tech's FTP Linux Archive
       
       in their /pub/linux/apps/staroffice/ directory. Also, Adobe has
       just announced a beta version of their Adobe Acrobat 3.0 reader
       for the Linux OS. You can find out the particulars of how to
       obtain a copy at:
       
       ADOBE's WWW site 
       
       in their /acrobat/readstep.html page. I just got a copy of this
       and the installation was a breeze. At least on my system, load
       time was about what all motif-based apps tend to be (read:
       "somewhat slow") but performance thereafter was really quite good.
       
       
       If you're interested in having a peek at a screen shot with one of
       the distributed pages, here's a look at it:
       
       ADOBE Acrobat 3.0 screen dump (~40K) 810x630
       
       Keep in mind that the official stance is that it is only supported
       under the Yggdrasil Fall '95 Linux distribution. However, under my
       'ol Slackware '96 it runs just fine... Also, you'll notice the
       subtle subliminal message in the titlebar... :-)
       
       And speaking of distributions...
       
  [IMAGE] SLACKWARE '96 IS OUT AND RED HAT REMBRANDT IS ON ITS WAY!
   
       
       Now that the Linux kernel 2.0 is out and, for most folks, ELF is
       in, you'll find a number of much-awaited distributions with the
       2.0 kernel and necessary development utilities. If you've been
       waiting to upgrade then now's the time!
       
       There is a growing number of very good Linux distributions
       available, many of which now incorporate the recent kernel and
       development set upgrades. I've just installed Slackware '96 (AKA
       Slackware 3.1) which I received from the folks at
       
       Walnut Creek
       
       who are the official distributors of Slackware Linux. Since it was
       also my birthday recently my wife just got me a copy of the
       August, 1996 Linux Developer's Resource 6-CD Set from
       
       InfoMagic
       
       Both of these are VERY nice sets that run in the $25 - $40 range
       and include a boatload of program sources from the usual linux FTP
       archive sites (sunsite.unc.edu, tsx-11.mit.edu, prep.ai.mit.edu,
       and so forth). Those of you who are on the monthly Mo' Linux
       mailing from
       
       Pacific HiTech
       
       will have just gotten a copy of the Slackware '96 CD with the
       September edition of Mo' Linux. Pacific HiTech (PHT) has a VERY
       nice service which offers a monthly CD full of all kinds of
       goodies including the most recent kernel sources, new programs and
       updates from Sunsite's Incoming dir, the latest GNU stuff
       including GCC and its accessories, and so forth. They take special
       requests and have recently included things such as the huge Perl
       archives, Tcl/Tk archives, Python archives, the Java Development
       Kit (JDK), and so forth. Also, there are regular Red Hat RPM and
       SRPM updates each month for those running Red Hat systems.
       
       And keep in mind that Red Hat's Rembrandt just hit beta release!
       This is their kernel 2.0 version and should be ready for regular
       release soon! You can get a copy of Rembrandt beta at the
       
       Red Hat WWW site
       
       as well as find all kinds of nifty info and links in their "Linux
       Info" page.
       
       Since Christmas is just around the corner, I'm thinking about
       writing up a small "Wish List" of tools and toys that you might
       want to put on your Beloved's "Get For Me List". The small hoard
       of books and CD's on the bookshelf is growing -- next month I'd
       like to do a short piece on things that I've found useful. *YMMV.
       
       *YMMV: "Your Mileage May Vary"
       
  [IMAGE] HERE'S THE PATCH FOR THE SYSKLOG BUG IN SLACKWARE '96
   
       
        Those of you who've just installed Slackware 3.1 may have run
       into the same rather frustrating bug in the sysklog package that I
       did. After a recent installation, I found that syslogd would dump
       core after running pppd. About that time, postings to
       comp.os.linux.setup and misc suggested that this was a problem
       with the distribution and not with the hardware I was running.
       
       So, after a request for help to Dr. Greg Wettstein, the maintainer
       of the sysklog package, I received the following patch from him
       that remedied the situation. For those of you needing this, you
       can get a copy of the message which Greg sent. Just load it and
       save it to disk as a text file. You'll also need a copy of the
       sysklog sources to recompile the program. Here's what you'll need:
       
       
       Sysklog patch from G. Wettstein (~70K)
       
       MANY thanks to Greg W. and the rest of the folks who've worked on
       this program.
       
       I mentioned in the above announcement about StarOffice that you'll
       need a copy of the motif libraries to run this product (at least
       while it is distributed as shared-library executables). I really
       want to put in a good word for the folks at Red Hat Software Inc.
       and for their version of Red Hat Motif 2.0.
       
       When I went to the Linux Expo '96 this past April, I had a
       seriously fun time meeting folks, chatting, perusing the various
       book and vendor tables, and sitting in on the various talks. If
       you missed it this past year and you can drive, fly, Amtrak, run,
       jog, walk, or crawl your way to Raleigh, North Carolina next
       Spring, then you won't want to miss it!! I don't know for sure if
       they're planning another Expo, but if so, you really don't want to
       miss it.
       
       Anyway, while I was there I bought a copy of Red Hat Motif 2.0 and
       have been using it ever since. Now, I know that one of the FAQ's
       to the various comp.os.linux.**** groups is "HELP! Which Motif
       should I get?!!", or something to that effect. There usually
       ensues a modestly impassioned discussion about the merits and
       drawbacks of one's recent Motif purchase.
       
       For the record, I'd like to say that I've been extraordinarily
       pleased with this product. It comes with a very complete User's
       Manual which covers installation and configuring the Motif Window
       Manager (mwm). The CD also contains the Motif libraries,
       development tools, and documentation in both *.tar.gz format and
       as RPM's.
       
       Installation was a breeze using rpm version 2.0 and I've been
       compiling motif stuff without a hitch ever since. This includes
       programs such as mosaic, plan, llnlXFtp, llnlXDir, xtar,
       xmcalendar, xmdiary, XEmacs, GVim, and so forth. Compiling with
       the Motif libs has been completely transparent and using shared,
       pre-compiled binaries (such as StarOffice) has been flawless.
       
       At a time when there has been a LOT of negative press towards a
       variety of individuals and institutions, let me offer a very
       heartfelt positive comment:
       
       To the folks at Red Hat, thanks for a VERY nice product!
       
       (FYI, I just got a copy of the most recent flyer from Surplus
       Direct, a distributor of, you guessed it..., surplus hardware and
       software. On page 17 of the flyer they offer the Red Hat's MOTIF
       for LINUX V2.0 CD for $99.99. Not a bad deal... :-) You can call
       them at 1-800-753-7877 U.S. or 541-387-6000 International. They
       even have a nifty web page which you can check out at
       http://www.surplusdirect.com)
       
       
         _____________________________________________________________
       
       
       
[IMAGE] More tar Tricks!

   
       
       OK, ready for a quiz...? Close your books, put away your notes,
       and answer the following question:
       
       Without looking at the man page, (a) What does the following
       command do? and (b) Why on earth would you use it in the first
       place?

        tar -tvzf file.tar.gz |tr -s ' ' |cut -d ' ' -f8 |less
   
       
       Don't peek...!
       
       (If this were a REAL web page, you'd click on a tiny icon of a
       music box and have it do RealAudio of that jingle from Jeopardy
       while an accompanied set of animated icons amuses you. But since
       I'm not that bright, you'll have to hum quietly to yourself and
       decide when you're tired of waiting... :-)
       
       Figured it out?
       
       If you guessed that it uses tar to do an archive listing on a
       tar'd and GNU gzip'd archive, then you'd be warm.
       
       If you guessed that it uses tar to do an archive listing on a
       tar'd and GNU gzip'd archive and then piped the output to the GNU
       tr utility which would translate multiple instances of the space
       character into a single space character, then you'd be even
       warmer.
       
       If you guessed that it uses tar to do an archive listing on a
       tar'd and GNU gzip'd archive and then piped the output to the GNU
       tr utility which would translate multiple instances of the space
       character into a single space character and then pipe that output
       to the GNU cut utility which would use that single space as a
       field delimiter and then print only the data in field 8, then
       you'd be hot.
       
       And if you guessed that it uses tar to do an archive listing on a
       tar'd and GNU gzip'd archive and then piped the output to the GNU
       tr utility which would translate multiple instances of the space
       character into a single space character and then pipe that output
       to the GNU cut utility which would use that single space as a
       field delimiter and then print only the data in field 8 and then
       output all of that to the less pager so that you could view,
       search, edit, and optionally print the output, then you, my friend
       get to...
       
       Go to the head of your class! :-)
       
       Actually, I wouldn't have been able to guess this without peeking
       a bit, so don't feel bad if you didn't guess all of it correctly.
       But this answer only gives the answer to part (a). The real
       question you have to ask yourself is, "Why on earth would you do
       this in the first place?"
       
       Good question.
       
       I'll get to that in a moment, but first, let me ask a simple
       question: "How do you know what's actually inside a tar or
       tar+gzip archive without actually unarchiving it?" Now, you can
       always unarchive a tar.gz file and have a look at things but what
       if you really only wanted to see what was in it or just look at a
       single file in the archive. What do you do then?
       
       The answer lies, at least in part, with our funky little command
       line above.
       
       Let's see what we can do with this.
       
       The first thing you've all probably realized is that tar has a
       bazillion or so command line arguments so you can do almost
       anything with it. As you've guessed, using the "-t" option
       displays a listing of the files in the archive. If the archive has
       been compressed, then using the "-z" option will automatically
       uncompress the archive.
       
       So far, so good.
       
       Thing is, what you want to do is actually look at one of the files
       in that archive. Say you wanted to have a peek at the README file
       that came with some program. Seems silly to have to unarchive an
       entire (potentially HUGE) file just to see one item. Those of you
       who've used tar for a while will realize where I'm going with
       this. You see, another one of tar's nifty little options is the
       "-O" (which can also be invoked as --to-stdout) which causes tar
       to send the output directly to standard output: generally, your
       computer terminal. This is what we need to use to get a look at
       some file in the archive -- we'll have tar send it to stdout so we
       can view it. That way, we won't need to unarchive the file.
       
       The other piece of the puzzle involves how you get tar to
       unarchive a specific file within an archive. Again, you manual
       page readers will know that this is done by simply appending the
       filename(s) to the end of the argument. Now in case I'm starting
       to lose any of you, here's an example which should help clear
       things up.
       
       Say that I have some archive such as the a2ps program (which does
       ASCII -> PostScript conversion, BTW). To get a listing of the
       files in the archive all I have to do is:

        tar -tvzf a2ps-4.5.23.src.tar.gz
   and this gives me the following output:

drwxr-xr-x 11714/117         0 Sep  5 11:38 1996 a2ps-4.5.23/
-rw-r--r-- 11714/117      7721 Sep  5 11:38 1996 a2ps-4.5.23/INSTALL
-rw-r--r-- 11714/117      2281 Sep  5 11:38 1996 a2ps-4.5.23/README
-rw-r--r-- 11714/117      1429 Sep  5 11:38 1996 a2ps-4.5.23/TODO
-rwxr-xr-x 11714/117      4773 Sep  5 11:38 1996 a2ps-4.5.23/install-sh
-rw-r----- 11714/117      3576 Sep  5 11:38 1996 a2ps-4.5.23/Makefile.in
-rw-r--r-- 11714/117       907 Sep  5 11:38 1996 a2ps-4.5.23/config.h.in
-rwxr-xr-x 11714/117     47767 Sep  5 11:38 1996 a2ps-4.5.23/configure
-rw-r----- 11714/117      1415 Sep  5 11:38 1996 a2ps-4.5.23/configure.in
-rw-r--r-- 11714/117     81240 Sep  5 11:38 1996 a2ps-4.5.23/a2ps.c
-rw-r----- 11714/117     70081 Sep  5 11:38 1996 a2ps-4.5.23/a2ps.h
-rw-r--r-- 11714/117     15348 Sep  5 11:38 1996 a2ps-4.5.23/afm.h
-rw-r--r-- 11714/117     10482 Sep  5 11:38 1996 a2ps-4.5.23/a2ps.man
   So now, let's say that I want to have a look at what's in the README
       or the INSTALL file; well, now that you know that you send the
       output of tar to stdout you know you're golden! All you'd need to
       do is something like:

        tar -xvzOf a2ps-4.5.23.src.tar.gz a2ps-4.5.23/README
   And, voila!, there's your file. The astute will immediately comment
       that piping that output to a pager such as more or less makes a
       lot more sense because now you can actually read more than just
       the last screen full of text.
       
       Note, too, that the basic command line was (in pseudocode):

        tar -options archive.tar.gz path/fileToView
   Notice that you have to include the "a2ps-4.5.23/" portion and NOT
       just the name of the file.
       
       So, now we're getting somewhere!
       
       You can use the tar -tvzf FILENAME.tar.gz command line to get a
       directory listing of a tar archive and then use something like:

        tar -xvzOf a2ps-4.5.23.src.tar.gz a2ps-4.5.23/README |less
   to actually view the file -- the tar file is intact, nothing is
       unarchived to disk, and you fingers never leave your hand!
       
       And now, let's pick up on our original question once again. Here's
       where that funky little command line becomes useful to use once
       again.
       
       Those of you who've done a bit of shell programming know that,
       fundamentally, every programmer is lazy at heart. That is to say,
       shell scripts are a VERY convenient way of saving yourself the
       bother of typing the same commands over and over again -- and this
       is one of those places where this is handy.
       
       Now that you know how to view a file from within a tar file
       without ever unarchiving the entire file, wouldn't it be handy to
       set up a shell script to do just that...?
       
       You know I wouldn't have asked this if I didn't already have an
       answer in mind... eh?
       
       Well, this is one of those things that I've started toying around
       with in the past couple days and while I haven't gotten anything
       written yet, that nifty little tar command at the top is part of
       the solution. You see, it would be quite handy to be able to do a
       listing of a tar archive, select one or more of the files, and
       then view them. The thing is, as I mentioned before, you have to
       give tar the full name of the file you wish to view -- including
       any path information. That is, if you'd tried to do:

        tar -xvzOf a2ps-4.5.23.src.tar.gz README |less
   you'd have gotten an error message because there's no README file in
       the archive -- there is the file a2ps-4.5.23/README. See the
       difference? You have to have the a2ps-4.5.23/ prefix for tar to
       work correctly.
       
       So, can you think of a way to take the output of tar -- the file
       listing -- and generate a listing of just the filenames which you
       can pass back to tar. Again, remember that it has to include the
       entire path+name but cannot be the entire line, such as:

-rw-r--r-- 11714/117      2281 Sep  5 11:38 1996 a2ps-4.5.23/README
   Somehow, we've got to strip away all the leading stuff and get only to
       the a2ps-4.5.23/README entry. So let's cut to the chase.
       
       One way to do this is using the method I mentioned above: using
       tar with the "-t" option displays a file listing. Next, you can
       use cut to access a single a column of data because, as you've all
       noticed, there are 8 fields of information in the above listing:

PERMISSIONS GROUP/USER SIZE MONTH DAY HR:MIN YEAR PATH/FILENAME
   Now, you'll also notice that these are separated by a space and so you
       should be able to use this as a field separator. But if you try
       something like:

        tar -tvzf a2ps-4.5.23.src.tar.gz |cut -d ' ' -f8
   what you end up with is:

7721
2281
1429
4773
3576

Sep
1415
Sep
Sep
Sep
Sep
   So what went wrong!?
       
       Well, we used a space character as the field delimiter which was
       the correct thing to do. But have a look at the actual file
       listing. Notice that there is a single space between most, but not
       all, of the fields. Between the group/user field and the size
       field there is a variable number of spaces and there appears to be
       two spaces between SEP and 5. So, cut dutifully used a single
       space character as the field separator, but the result wasn't'
       what we expected.
       
       Hmmm... now what...?
       
       Well, there's another little mentioned but VERY useful utility
       called tr. It's a seriously handy little item that does, among
       other things, character translation. In this case, we can use it
       to truncate a series of one or more spaces into a single space
       (and THEN, cut should work correctly!).
       
       Now, is the light dawning? :-)
       
       We use tar to get the file listing, tr to truncate all the
       extraneous spaces into a single space character, and then pipe the
       whole thing through cut to get just the fields that we want. Doing
       this on the a2ps file, we get:

a2ps-4.5.23/
a2ps-4.5.23/INSTALL
a2ps-4.5.23/README
a2ps-4.5.23/TODO
a2ps-4.5.23/install-sh
a2ps-4.5.23/Makefile.in
a2ps-4.5.23/config.h.in
a2ps-4.5.23/configure
a2ps-4.5.23/configure.in
a2ps-4.5.23/a2ps.c
a2ps-4.5.23/a2ps.h
a2ps-4.5.23/afm.h
a2ps-4.5.23/a2ps.man
   
       
       Pretty slick, eh?
       
       Now, we can pick any of these entries and if we pass them to tar
       using the "-O" option then the file gets printed to stdout. Pipe
       this output to less and we're golden!
       
       A tar file viewer!
       
       So why mention all of this?
       
       Well, first, because I'm toying around with ideas for a shell
       script that will do just this -- write a small program that will
       let me view individual files from a tar.gz archive. I've got a
       couple ideas floating around and may try using the dialog program
       for a console UI, or I might just go ahead and try this using
       tcl/tk.
       
       Second, I do this to point out one of the beauties of using Linux
       (or any UNIX type OS) and that is the use of pipes to connect any
       number of the myriad of utilities together into a powerful
       command. Using four programs and a bunch of pipes, we've seen how
       we can easily ready any file within a tar archive without having
       to uncompress the entire thing.
       
       That is seriously cool!
       
       Anyway, I've just started playing with this. Let me quickly
       mention, for those of you who already know and are waving your
       cyberhands in the air, that there is a very easy way to manipulate
       tar.gz files already -- and it's with a program that MOST Linux
       distributions already install: Midnight Commander.
       
       I cannot say enough good things about this program. I'm honestly
       not much of a file manager type user -- I really do prefer the
       command line for most file and directory operations. But, mc is
       different. I have absolutely fallen in love with this. It's very
       well designed, is quite mature, has a boatload of nifty features,
       AND it'll let you easily view and copy files from a tar.gz archive
       using its VFS (virtual file system).
       
       I've been wanting to do a write up on MC now for, quite literally,
       months and just haven't had the time to write a decent article --
       one that really does it justice. Anyway, for those of you who are
       interested, all you have to do to access a tar.gz file is fire up
       mc, select the tar.gz file and either double click on it (if
       you're running gpm and have mouse support) or hit RETURN and it'll
       automatically unarchive the file into a VFS from which you can
       browse the archive just as though it were installed on your
       harddrive.
       
       The other application that'll let you do this is the xtar program
       -- a motif based app that I recently came across at the ftp.x.org
       archive. I honestly haven't seen this at sunsite or tsx-11 and I
       don't know that I've seen it any of the usual Linux distributions
       either. It's a VERY nice little app that let's you browse and view
       tar.gz archives.
       
       Anyway, try out mc or xtar if you want tar.gz browsing right now.
       But, let's see if we can't figure out a way to do something like
       this using shell scripting or tcl/tk. I'll let the interested work
       on this and, if I have any successes myself, I'll write this up in
       next month's issue.
       
       Til then, Happy Scripting!
       
       
         _____________________________________________________________
       
       
       
[IMAGE] Basic File Information

   
       
       OK, quick question:
       
       Can you name 5 tools or utilities which you can use to get
       information about a file?
       
       I'm sure you can if you give it a bit of thought. You see, most of
       the time, if you've installed a system yourself then you have a
       pretty good idea about what's on it and (hopefully...) where
       things are. But what if you come across a cryptically named file
       (Hmmm... fancy that on a UNIX system... :-) in your /usr/bin
       directory and want to get a bit of information about it. Or, what
       if you know what it is that you're looking for, but just can't
       find it!
       
       Ok, so let's talk about a couple tools you can work with to get
       basic file information.
       
       The one's that I was thinking about included: 
        
          + ls
          + file
          + type & which
          + find & locate
          + ldd 
   
       
       Now, there are others, I'm sure, but these five basic utilities
       (seven if you count similar ones) will go quite a ways towards
       helping you get a handle on what's on your system.
       
  A LOOK AT LS
   
       
       Anyone's who's used Linux for more than..., Hmmm... about a day or
       so, has run across ls which does a directory listing. And, if
       you've ventured a peek at its manual page, your first reaction may
       have been one of incredulity at the bewildering number of command
       line options. Fear not. You really only need a couple of these on
       a routine basis (these are your friends) and the rest of these let
       you do all kinds of groovy and interesting things when you have
       nothing else to do but play with your directory listings (these
       are you great Aunt Fanny's half-sister's double cousin, twice
       removed... you know they're around, you just have no earthly idea
       as to what they do).
       
       So, you know that if you want to get basic information about a
       file, then the best place to start is with a directory listing.
       Using the "-l" option gives you a long listing which includes the
       file type (regular, directory, fifo, block, and so forth), number
       of hard links, user name, group name, size in bytes, timestamp
       (generally, the modification time), and the file name itself.
       
       You also know, I'm sure, that adding the "-a" displays all files,
       including all the so-called dot-files which begin with a period
       (.) and which are normally not displayed in a directory listing.
       
       Many Linux distributions also configure ls to use the "-F" option
       which print a suffix after each file to indicate what its basic
       type is:
          + "*" for regular files which are executable
          + "/" for directories
          + "@" for symbolic links ("symlinks")
          + "|" for FIFO's ("pipes" or "First In First Out")
          + "=" for sockets
          + nothing for regular files
   
       
       So, just using humble 'ol ls can give you quite a bit of
       information about your files. A couple of the more useful things
       that you can do with ls include using the "-t" option which sorts
       the directory contents by time. This is very useful if you happen
       to be in a directory such as /usr/bin that has a LOT of files and
       you're looking for something which you've recently added but can't
       recall the name. Using "ls -lt" causes all the newest files to, as
       it were, rise to the top of the list. If, however, you want to
       list the latest files last, no problem, mon, just add the "-r"
       option to the soup and you'll get a reversed listing by time
       (i.e., "ls -ltr").
       
       Yet another handy little option will let you find out when a
       file's status was last changed. The status includes things such as
       owner or group information or permissions. You can change these
       things without actually modifying the file itself. Generally, the
       time stamp indicates when a file was last modified, but if what
       you want to see is when a file's status was last changed, then use
       the "-c" option. Now, if you're wondering whether permissions or
       user/group information has been changed recently, then use "ls
       -ltrc" command to display the files which have changed status most
       recently at the end of the listing.
       
       Those are just a few of the things that you can do with ls. So, if
       you're stuck at home on some rainy Saturday afternoon and are
       tired of the Laverne And Shirley reruns, go amuse yourself -- read
       the ls manual page, write down all the options, and try them all
       out. At least there won't be commercial interruptions... :-)
       
  USING FILE
   
       
       Besides using ls with the "-F" option, there's another very handy
       utility called file which gives you a indication of what a file
       actually is.
       
       Every now and then, someone posts a message to one of the
       comp.os.linux groups asking about how they can determine whether a
       file is a.out or ELF (or something else, for that matter). If you
       really do have a mysterious file, then file is the utility for
       you.
       
       So, let's say that you've come across a file in your
       /usr/local/bin directory called "d2utxt" and it beats the pants
       off of you what this thing is. Well, you could try something like:

        file /usr/local/bin/d2utxt
   I've actually got that file on my system and when I run this (from
       within VIM of course -- notice that my fingers never leave my
       hand... :-) I get:

/usr/local/bin/d2utxt: Linux/i386 executable or impure executable (OMAGIC)
   OK, that lets me know that it's some kind of executable. So is it ELF
       or not? Well, let's run this on a file which I know is ELF and see
       what happens:

        file /usr/bin/vi
        /usr/bin/vim: ELF 32-bit LSB executable i386 (386 and up) Version 1
   So, there's your answer! It seems that the d2utxt program was, in
       fact, a.out format and vim is in our now familiar ELF format. So,
       if you're wondering what kind of executable format a file is in,
       this is your solution. And keep in mind that file recognizes a LOT
       more than simply executables. As an exercise, try running it on a
       plain text file, a shell script, a *.dvi file, a postscript file,
       a shared library file, and so forth. I won't go into the specifics
       of how file works its magic (no pun intended... honest!) but if
       you're interested, the manual page gives those details.
       
     
     
     [IMAGE] Keep in mind that the file utility is a VERY useful tool to
     have at your disposal when you're writing shell programs that depend
     on knowing what a file's type is.
     
     For example, suppose that you decide to write a shell script to
     automate file printing. One of the things that your script will need
     to know is what type of file you are working with. Tex, DVI,
     PostScript, and plain text files get printed using quite different
     programs. Here's an ideal situation in which the file program will
     give you that information.
     
     Again, convince yourself of this by running file against several
     different file formats -- pretty impressive, eh?
     
  FINDING EXECUTABLES WITH TYPE & WHICH
   
       
       The next bit of information about a file that can often be quite
       useful is a rather simple one: "Where is it??!!"
       
       If you're trying to find an executable then this task is greatly
       eased by use of either which or type (if you're using the BASH
       shell). Either one of these will print the path to a give
       executable -- assuming, that is, that it is in your PATH
       statement. So, let's say that you wanted to find out where xdvi
       was located. Now, you could probably guess, but let's just say
       that you really were clueless and wanted to know. Well, if you
       tried something like the following you could find out:

        which xdvi
        /usr/X11/bin/xdvi

        type xdvi
        xdvi is /usr/X11/bin/xdvi
   Hmmm... that was pretty easy now, wasn't it? Both of these found our
       file in the /usr/X11/bin/ directory and the output was pretty
       similar. But before we call this an even draw, suppose that you
       try to do something like this:

        type tarx
        tarx is aliased to `tar -xvzf'

        type exec
        exec is a shell builtin
   Hmmm... interesting.
       
       I won't give you the output that happens when I run which on
       either of these because what happens is it prints an error message
       that states that it couldn't find it in... and then prints the
       entire search PATH. I'll let you try this one at home. Suffice
       it to say that if you're running the BASH shell, then using type
       gives you the added benefit of recognizing shell aliases and
       builtins in addition to executables.
       
       Very handy.
       
       Another useful little item that type can do for you is find
       duplicate executables. Now before you go scoffing, consider the
       fact that it is VERY easy to do a bit of "Do-It-Yourself" system
       upgrading and install a few programs. If you don't know that the
       program which you are installing has already been installed (but
       in a different directory) then you end up with two copies. So
       which one gets executed?
       
       Good question.
       
       Presuming that you don't use absolute path names for executables
       (e.g./usr/bin/vim) every time you want to start a program, then
       whichever executable is found first in your PATH statement. So, if
       you have two copies of elvis (one from an original installation
       and one from a new compile and install) then the one that is found
       first is executed.
       
       And how, do you suppose, I know this...?
       
       Believe me, I've done it :-)
       
       And the results can be impressively frustrating.
       
       Specifically, I had upgraded a version of Tcl/Tk a while back and
       when I ran all my favorite tcl/tk apps I started getting weird
       messages about version incompatibilities and so forth. So I
       recompiled and reinstalled and still got those annoying error
       messages. It was driving me crazy. Finally, I tried running type
       and noticed that the wish executable wasn't where I thought I'd
       installed it. The breakthrough came when I tried:

        type -a wish
        wish is /usr/local/bin/wish
        wish is /usr/bin/wish
   Ah Ha!!
       
       You see, there had been an old copy of a previous version lying
       around and I had simply forgotten to delete/rename it. The old
       version was being found first but it was incompatible with the tcl
       scripts I was using. Renaming the old version cleared things up.
       
       So the moral of the story is that if want to ensure that you have
       only one copy of a program in the search PATH, then use type -a.
       
  FINDING FILES WITH FIND & LOCATE
   
       
       OK, so now you know how to find executables... what if what you're
       looking for is NOT an executable? What then?
       
       Well, these next two utilities deserve an entire article (and, in
       fact, got just that in one of the recent issues of the Linux
       Journal. Both find and locate will allow you to search anywhere
       in your system for a given file. For the time being, I'm going to
       use a simple example.
       
       Suppose that I'm looking for a certain configuration file for the
       lynx program. I've discovered that lynx has a config file that
       will let me set various options -- but I don't know where this is
       located except that I have a hunch that it is somewhere in
       /usr/local/. Great! To find it, all we have to do is:

        find /usr/local -name lynx* -print
        /usr/local/bin/lynx
        /usr/local/lib/lynx
        /usr/local/lib/lynx/lynx.cfg
        /usr/local/lib/lynx/lynx.hlp
        /usr/local/lib/lynx/lynx.man
        /usr/local/lib/lynx/lynx_help_main.html
        /usr/local/lib/lynx.cfg
        /usr/local/lib/lynx.cfg.color
        /usr/local/man/man1/lynx.1
        /usr/local/src/INSTALLED/lynx2-5FM.color.ELF.tgz
        /usr/local/src/Incoming/lynx2-6.tar.gz
        /usr/local/src/Incoming/lynx2-6.color.ELF.tgz
        /usr/local/doc/lynx
   Yow! Bonanza!
       
       So there we go... find not only located our lynx configuration
       file but also found that there were duplicates! Interesting :-) So
       how do we do this for any file? Well, the basic pattern is:

        find  -name  -print
   That is, the first argument is the directory from which to START
       looking. Find will automatically traverse all the subdirectories
       beneath this. So, if you wanted to scour your entire system, you
       just invoke find as:

        find / -name lynx* -print
   
       
       The second argument is "-name" followed by the pattern of the file
       name you're looking for. And finally, the "-print" option
       specifies that find should print the results to stdout. Keep in
       mind, though, that the GNU version of find doesn't need the
       "-print" option -- it defaults to printing to standard out (your
       terminal :-).
       
       The other handy-dandy little tool is locate. If this has been set
       up correctly (that is, that the database of files is routinely
       updated) then it is a LOT faster to use than find if all you are
       looking for is a particular file name!
       
       To use it just invoke it as:

        locate lynx
        /home/fiskjm/.lynx-bookmarks
        /home/fiskjm/.lynxrc
        /usr/bin/lynx
        /usr/doc/lynx
        /usr/doc/lynx/about_lynx
        /usr/doc/lynx/about_lynx/about_lynx-dev.html.gz
        /usr/doc/lynx/about_lynx/about_lynx.html.gz
        /usr/doc/lynx/about_lynx/COPYHEADER.gz
        /usr/doc/lynx/about_lynx/COPYING.gz
        /usr/doc/lynx/CHANGES.gz
        /usr/doc/lynx/CHANGES2-3.gz
        /usr/doc/lynx/CHANGES2-4.gz
        /usr/doc/lynx/CMU.announce.gz
        /usr/doc/lynx/CRAWL.announce.gz
        /usr/doc/lynx/DESC.gz
        /usr/doc/lynx/docs
        /usr/doc/lynx/docs/README.html.gz
        /usr/doc/lynx/docs/README.txt.gz
        /usr/doc/lynx/docs/RFC-MAILCAP.txt.gz
        /usr/doc/lynx/FM.announce.gz
        /usr/doc/lynx/IBMPC-charsets.announce.gz
        /usr/doc/lynx/INSTALLATION.gz
        /usr/doc/lynx/lynx_help
        /usr/doc/lynx/lynx_help/keystroke_commands
        /usr/doc/lynx/lynx_help/keystroke_commands/bookmark_help.html.gz
        /usr/doc/lynx/lynx_help/keystroke_commands/dired_help.html.gz
        /usr/doc/lynx/lynx_help/keystroke_commands/edit_help.html.gz
        /usr/doc/lynx/lynx_help/keystroke_commands/gopher_types_help.html.gz
        /usr/doc/lynx/lynx_help/keystroke_commands/history_help.html.gz
        /usr/doc/lynx/lynx_help/keystroke_commands/keystroke_help.html.gz
        /usr/doc/lynx/lynx_help/keystroke_commands/movement_help.html.gz
        /usr/doc/lynx/lynx_help/keystroke_commands/option_help.html.gz
        /usr/doc/lynx/lynx_help/keystroke_commands/other_help.html.gz
        /usr/doc/lynx/lynx_help/keystroke_commands/print_help.html.gz
        /usr/doc/lynx/lynx_help/keystroke_commands/scrolling_help.html.gz
        /usr/doc/lynx/lynx_help/keystroke_commands/xterm_help.html.gz
        /usr/doc/lynx/lynx_help/lynx_help_main.html.gz
        /usr/doc/lynx/lynx_help/Lynx_users_guide.html.gz
        /usr/doc/lynx/PROBLEMS.gz
        /usr/doc/lynx/README.gz
        /usr/doc/lynx/RELEASE_STATEMENT.gz
        /usr/doc/lynx/samples
        /usr/doc/lynx/samples/jumpsUnix.html.gz
        /usr/doc/lynx/samples/jumpsVMS.html.gz
        /usr/doc/lynx/samples/lynx.cfg.gz
        /usr/doc/lynx/samples/lynx.com.gz
        /usr/doc/lynx/samples/mailcap.gz
        /usr/doc/lynx/samples/mime.types.gz
        /usr/doc/lynx/SOCKETSHR.announce.gz
        /usr/doc/lynx/TCPWARE.announce.gz
        /usr/doc/lynx/userdefs.h.gz
        /usr/doc/lynx/VMSWAIS.announce.gz
        /usr/lib/lynx
        /usr/lib/lynx/lynx.cfg
        /usr/lib/lynx/lynx.hlp
        /usr/local/bin/lynx
        /usr/local/doc/lynx
        /usr/local/doc/lynx/LynxUser.guide.gz
        /usr/local/lib/lynx
        /usr/local/lib/lynx.cfg
        /usr/local/lib/lynx.cfg.color
        /usr/local/lib/lynx/keystroke_commands
        /usr/local/lib/lynx/keystroke_commands/bookmark_help.html
        /usr/local/lib/lynx/keystroke_commands/dired_help.html
        /usr/local/lib/lynx/keystroke_commands/gopher_types_help.html
        /usr/local/lib/lynx/keystroke_commands/history_help.html
        /usr/local/lib/lynx/keystroke_commands/keystroke_help.html
        /usr/local/lib/lynx/keystroke_commands/movement_help.html
        /usr/local/lib/lynx/keystroke_commands/option_help.html
        /usr/local/lib/lynx/keystroke_commands/other_help.html
        /usr/local/lib/lynx/keystroke_commands/print_help.html
        /usr/local/lib/lynx/keystroke_commands/scrolling_help.html
        /usr/local/lib/lynx/keystroke_commands/xterm_help.html
        /usr/local/lib/lynx/lynx.cfg
        /usr/local/lib/lynx/lynx.hlp
        /usr/local/lib/lynx/lynx.man
        /usr/local/lib/lynx/LynxStartFile.html
        /usr/local/lib/lynx/lynx_help_main.html
        /usr/local/lib/lynx/Lynx_users_guide.html
        /usr/local/lib/lynx/new_installs.html
        /usr/local/lib/lynx/readme.html
        /usr/local/man/man1/lynx.1
        /usr/local/src/Incoming/lynx2-6.color.ELF.tgz
        /usr/local/src/Incoming/lynx2-6.tar.gz
        /usr/local/src/INSTALLED/lynx2-5FM.color.ELF.tgz
        /usr/man/man1/lynx.1.gz
        /var/log/packages/lynx
        /var/X11R6/lib/config/lynx.cf
   YIKES!!
       
       On my system, this took about 1 second to display and it printed
       the location of EVERY instance of "lynx". Now, for some reason
       which I haven't figured out yet why this doesn't work the way the
       manual page indicates that it should. Maybe your system works
       better than mine... :-)
       
       The way that it should work is that you give locate a filename
       pattern which it searches for. Such as:

        locate lynx*
   
       
       However, when I tried this on my system, it simply returned
       nothing. Using locate lynx worked like a charm.
       
       Got me.
       
       Keep in mind, too, that find is a seriously powerful search tool
       that has all kinds of options that let you do sophisticated
       searches. You really do need to check out the article that
       recently appeared in the Linux Journal. I'm sorry that I can't
       recall offhand which issue it was in, but the LJ has put a number
       of articles online on the Web and so you might try looking at
       their web site for information.
       
  FINDING SHARED LIBRARY INFORMATION WITH LDD
   
       
       Finally, here's a nifty little trick that let's you see what
       shared libraries a file is linked against. If you've ever wondered
       whether a file was statically or dynamically linked, then here's
       your answer!
       
       Just invoke ldd with the name of the executable and it will print
       out a listing of all the libraries that it is linked against AND
       where these libraries are located on your system.
       
       So, for example, running ldd against gvim (Graphical VIM), I get
       the following output:

        libXm.so.2 => /usr/X11R6/lib/libXm.so.2
        libXt.so.6 => /usr/X11R6/lib/libXt.so.6
        libSM.so.6 => /usr/X11R6/lib/libSM.so.6
        libICE.so.6 => /usr/X11R6/lib/libICE.so.6
        libXext.so.6 => /usr/X11R6/lib/libXext.so.6
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6
        libncurses.so.3.0 => /lib/libncurses.so.3.0
        libc.so.5 => /lib/libc.so.5.3.12
        libXpm.so.4 => /usr/X11R6/lib/libXpm.so.4
   
       
       pretty nifty, eh?
       
       Anyway, if you've ever picked up a pre-compiled binary and it just
       simply won't execute, try running ldd against it to ensure that
       all the needed libraries are being found.
       
       So, that should do it!
       
       I'm sure that there are many other tricks and means for prying
       information out of an obscure file. As a parting note, if you've
       ever wondered just exactly what a file does then you can try a
       couple things. The first is to see whether there is a manual page
       for the program. That's usually a good source of information. The
       other maneuver you can try is simply something like:

        prog --help
   
       
       Presuming the program's name was "prog", then frequently using a
       command line option such as "--help" will print a help message.
       Also, a number of programs will, if they don't recognize a command
       line option, go ahead and print a short usage statement anyway. If
       you're in the dark, give it a whirl!
       
       
         _____________________________________________________________
       
       
       
       [IMAGE] If you'd like, drop me a note at:
    John M. Fisk <fiskjm@ctrvax.vanderbilt.edu>
   
       
       Version Information:
       $Id: issue11.txt,v 1.1.1.1 1997/09/14 15:01:36 schwarz Exp $ 
       
       
         _____________________________________________________________
       
       
       
       [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
       
       
         _____________________________________________________________
       
       
       
                                 LINUX GAZETTE
                                       
      Copyright &copy; 1996 Specialized Systems Consultants, Inc.
      For information regarding copying and distribution of this material see
      the Copying License.
   
       
       
         _____________________________________________________________
       
       
       
                                 THE BACK PAGE
                                       
   
       
       
         _____________________________________________________________
       
       
       
  CONTENTS:
          + About This Month's Authors
          + Not Linux
   
       
       
         _____________________________________________________________
       
       
       
  ABOUT THIS MONTH'S AUTHORS 
   
       
       
         _____________________________________________________________
       
       
       
       
       
    Larry Ayers
   Larry Ayers lives on a small farm in northern Missouri, where he is
       currently engaged in building a timber-frame house for his family.
       He operates a portable band-saw mill, does general woodworking,
       plays the fiddle and searches for rare prairie plants, as well as
       growing shiitake mushrooms. He is also struggling with configuring
       a Usenet news server for his local ISP.
       
    Earl Brown
   Earl Brown has been involved in the Internet for 4 or 5 years, and got
       into Unix when he realized that Unix helped start the Internet and
       that it is the future of the Internet, as well. He loves LINUX as
       an operating system, because "The fact that it's free doesn't
       hurt, but the important thing is that I think it's the best OS out
       there." He is a computer programmer, an Internet specialist. He
       has fantasies/dreams about becoming a writer and a college
       teacher. For more of his work, see
       http://www.lvinet.com/~gleep/CompKnow/CompIdx.htm. His personal
       web page can be found at http://www.enol.com/~gleep/.
       
    John M. Fisk
   John Fisk is most noteworthy as the former editor of the Linux
       Gazette. After three years as a General Surgery resident and
       Research Fellow at the Vanderbilt University Medical Center, John
       decided to "hang up the stethoscope", and pursue a career in
       Medical Information Management. He's currently a full time student
       at the Middle Tennessee State University and hopes to complete a
       graduate degree in Computer Science before entering a Medical
       Informatics Fellowship. In his dwindling free time he and his wife
       Faith enjoy hiking and camping in Tennessee's beautiful Great
       Smoky Mountains. He has been an avid Linux fan, since his first
       Slackware 2.0.0 installation a year and a half ago.
       
    Michael J. Hammel
   Michael J. Hammel, is a transient software engineer with a background
       in everything from data communications to GUI development to
       Interactive Cable systems--all based in Unix. His interests
       outside of computers include 5K/10K races, skiing, Thai food and
       gardening. He suggests if you have any serious interest in finding
       out more about him, you visit his home pages at
       http://www.csn.net/~mjhammel. You'll find out more there than you
       really wanted to know.
       
    Phil Hughes
   Phil Hughes is the publisher of Linux Journal, and thereby Linux
       Gazette. As an employer, Phil is "Vicious, Evil, Mean, & Nasty,
       but kind of mellow" as a boss should be. He dreams of permanently
       tele-commuting from his home on the Pacific coast of the Olympic
       Peninsula.
       
       
         _____________________________________________________________
       
       
       
  NOT LINUX 
   
       
       
         _____________________________________________________________
       
       
       
       
       
       Thanks to all our authors, not just the ones above, but also those
       who wrote giving us their tips and tricks and making suggestions.
       Thanks also to our new mirror sites.
       
       Since I've chosen to celebrate Halloween in this issue, I'll
       include a few Halloween and weird links in hopes that they will
       not disappear on November 1.
       
       
          + YABOO A YAHOO parody page with only Halloween links. Some
            neat links to Halloween history, ghost stories, etc.
          + Virtual Jack-0-Lantern Have fun creating your own virtual
            jack-o-lantern.
          + Virtual Haunted House Looked interesting, but not open until
            October 31. Check it out.
          + Forest J. Ackerman of monster and "Sci Fi" movies has a very
            weird site indeed.
          + The Island of Dr. Moreau movie site.
          + Halloween Mystery Billed as an interactive MUD-like page,
            this turned out to be a game that you play following text
            instructions and story-line to solve a mystery.
          + Discworld is not exactly Halloween, but is definitely weird
            and fun. Another MUD game based on Terry Pratchett's fantasy
            novels.
   
       
       If you would like some personal information about me, clicking on
       my name below will take you to my home page. It's getting jazzier
       by the moment.
       
       
         _____________________________________________________________
       
       
       
       Marjorie L. Richardson
       Editor, Linux Gazette gazette@ssc.com
       
       
         _____________________________________________________________
       
       
       
       [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back 
       
       
         _____________________________________________________________
       
       
       
       Linux Gazette, http://www.ssc.com/lg/
       This page written and maintained by the Editor of Linux Gazette,
       gazette@ssc.com
