
           Linux Gazette... making Linux just a little more fun!
                                      
         Copyright  1996-98 Specialized Systems Consultants, Inc.
     _________________________________________________________________
   
                       Welcome to Linux Gazette! (tm)
     _________________________________________________________________
   
                                 Published by:
                                       
                               Linux Journal
     _________________________________________________________________
   
                                 Sponsored by:
                                       
                                   InfoMagic
                                       
                                   S.u.S.E.
                                       
                                    Red Hat
                                       
   Our sponsors make financial contributions toward the costs of
   publishing Linux Gazette. If you would like to become a sponsor of LG,
   e-mail us at sponsor@ssc.com.
     _________________________________________________________________
   
                             Table of Contents
                          February 1998 Issue #25
     _________________________________________________________________
   
     * The Front Page
     * The MailBag
          + Help Wanted
          + General Mail
     * More 2 Cent Tips
          + Linux - 2 Cents about vim for pico users
          + My 1/50th of a Dollar
          + sound problems
          + Filtering output of binary files
          + Easter Eggs in Netscape
          + RE: Perl and HTML
          + Update locate
          + Doing spaces in file names
          + Mailing binary files to Microsoft clients
          + Linux and Routing
          + Linux and Routing 2
          + Netscape's Abouts
          + Netscape on the Desktop
          + Re: Printing Problems
          + Re: Using a 386 Computer
     * News Bytes
          + News in General
          + Software Announcements
     * The Answer Guy, by James T. Dennis
          + Removing LILO, Reinstalling MS-DOS
          + Running as root on Standalone Systems -- DON'T
          + More on Netscape Mail Crashes
     * Book Review: A Practical Guide to Linux, by Bernard Doyle
     * Bourne/Bash: Shell Programming Introduction, by Rick Dearman
     * Clueless at the Prompt, by Mike List
     * Confessions of a Former VMS Junkie, by Russell C. Pavlicek
     * EMACSulation, by Eric Marsden
     * Gathering Usage Stats, by Randy Appleton
     * The Graphics Muse, by Michael J. Hammel
     * Hylafax, by Dani Pardo
     * Linux Compared to Other Operating Systems, by Elof Soerensen
     * Linux Ports, by Ross Linder
     * Linux and Windows95, by Leonardo Lopes
     * New Release Reviews, by Larry Ayers
          + GCC News
          + Gmemusage: A Distinctive Memory Monitor
          + Xephem
     * A Simple Internet Dialer for Linux, by Martin Vermeer
     * Secure Public Access Internet Workstations, by Steven Singer
     * The Software World--It's a Changin', by Phil Hughes
     * The Back Page
          + About This Month's Authors
          + Not Linux
       
   The Answer Guy
   The Weekend Mechanic will return.
     _________________________________________________________________
   
   The Whole Damn Thing 1 (text)
   The Whole Damn Thing 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
   
    "Linux Gazette...making Linux just a little more fun!"
     _________________________________________________________________
   
                                The Mailbag!
                                      
                    Write the Gazette at gazette@ssc.com
                                      
                                 Contents:
                                      
     * Help Wanted
     * General Mail
     _________________________________________________________________
   
                                Help Wanted
     _________________________________________________________________
   
   Date: Tue, 06 Jan 1998 17:09:31 +1000
   From: Peter Scott webguru@planet-sex.com
   Subject: Help - Adding third hard drive
   
   I've been using Slackware Linux 2.0.29 for quite some time. I've
   managed with 2 drives with partitions for Win95 and Linux, but now I
   need to add another drive. It is recognised in the BIOS and can be
   found in Windoze, but I get no joy from Linux. I expected to be able
   to mount the drive straight away. Do I need to do some insnod or
   mke2fs or something.

    # mount /dev/hdc1 /mnt
    mount: the kernel does not recognize /dev/hdc1 as a block device
           (may# fdisk /dev/hdc

    # fdisk /dev/hdc
    Unable to open /dev/hdc

   I've got a fealing that I need to reconfigure Lilo or something? I
   know that I've forgotten something obvious, but I've wasted hours
   without any joy.
   
   thanx,
   pete
     _________________________________________________________________
   
   Date: Tue, 06 Jan 1998 19:55:08 +0000
   From: George Russell george.russell@clara.net
   Subject: Installing StarOffice 3.1 on Redhat 4.2
   
   I'm having difficulties installing StarOffice onto my system. I've
   installed the rpms for static binaries, common files, english demos
   and english docs. I've run the setup script and done a user install,
   after updating libc and ld.so, and would like to now run the package.
   It says to install two daemons, svdaemon and svportmap . These both
   need something called rpc and the portmap daemon, which I can find no
   reference to on my system. How can I install these so that StarOffice
   will run. All help gratefully recieved.
   --
   George Richard Russell
     _________________________________________________________________
   
   Date: Sat, 10 Jan 1998 05:55:26 -0600
   From: ReXsOn RuLeZ abernal@theonramp.net
   Subject: Question....
   
   Hello there... sorry to bother with probably one of the stupidist
   questions in the world, but I want to install Linux on my computer;
   the problem is that I share a computer with my family and of course
   they don't have a clue of what I do so they don't care, they just want
   to be able to use office to do their work. I've looked around various
   Linux sites trying to find an answer but I've been unsuccesful. My
   question is this: As I told you I have a windows95 box and all the
   documents that
   
   Are outthere focus on installing linux in a DOS environment which in
   my case and a lot of people it's history. I have a 3 gig hardrive that
   I think is partitioned already in 2 because I have a c: and d: I'm not
   sure if they're separate hardrives or one is partitioned. What I would
   like to know is what should I do here. I'm not sure if my second drive
   which is 1 gig is already formated for windows which I think it is
   because it has a recyble bin. I don't know what to do because I'm
   afraid that if I delete or erase the partition the whole thing will
   become one hardrive and I will have to erase everything to partition
   that one hardrive. I was kind of hoping there was a way or partitionin
   my second hardrive (d:) and leave a part for windows and another for
   Linux.
   
   As I told you earlier I'm sorry to make this kind of questions but if
   I damage something of this computer my dad would prive me of even
   looking at it, and I don't want that to happen. I would really
   aprecciate your help since I'm really eagered to use Linux.
   
   Thanx in advance for your help.
   
   Rexson
     _________________________________________________________________
   
   Date: Sat, 17 Jan 1998 20:39:14 -0400
   From: Frank Nazario webmaster@prplaza.net
   Subject: HI...
   
   I've just finished browsing your Gazzettte and it is very cool...as a
   web administrator at http://www.prplaza.net I was fedup with the
   performance and slowness of an NT enviroment and decided kind of
   reluctant to migrate to Linux (right now i'm a green thumb at it)...
   But and a big BUT after seen a single processor pentium pro 200 server
   running linux redhat 5.0 and Apache Webserver blow the doors of a dual
   pentium pro 200 running on NT and IIS3.0...i was sold in the
   spot....never to touch Microsoft NT again ... and feeling good about
   it.
   
   My problem is this one ... I've gone bananas in trying to find a
   document that explains how to install, in a step by step fashion, the
   Apache SSL "extensions" to one of my Apache WWW Webservers (the
   performance increase is awesome) can you or anyone that reads this
   help...
   
   thanks beforehand for you response....
   
   Frank Nazario San Juan, Puerto Rico
     _________________________________________________________________
   
   Date: Sun, 18 Jan 1998 11:36:50 -0500
   From: Michael Vore mvore@digex.net
   Subject: Problems with CD-ROM
   
   Admittedly I'm not sure where the problem lies, When using
   NT-4/Netscape Communicator-4 to view the cdrom all links look like
   "file:///El/lj/" Which of course will not be found. I have looked at
   the source to try to find why the double '//' and the '/El' come from.
   Any ideas? (and any work arounds??)
   
   At the moment I don't have X running on my Linux machine - it's a new
   install of RedHat and during the upgrade I forgot to same the XConfig
   files.
   
   mike
     _________________________________________________________________
   
   Date: Mon, 19 Jan 1998 09:52:28 -0500 (EST)
   From: Michael Stutz stutz@dsl.org
   Subject: Help Wanted: SVGALIB Screenshots?
   
   Is there any way to make a screenshot of a graphical program that runs
   on the console (_not_ in X)?
     _________________________________________________________________
   
   Date: 21 Jan 98 11:28:04 -0500
   From: Jonathan Smith SMITHJL@detroitedison.com
   Subject: netcfg
   
   I am using X to connect to my ISP via the netcfg command. I have it
   starting up at boot time. This works great, but I was wondering where
   the chat script and pppd command are hiding for the ppp interface that
   you can create via netcfg.
   
   I was also wondering if there was a way to prevent my ISP from
   dropping me after a given time of activity. I am using a cron job to
   ping to my isp, but that does not seem to prevent this from happening.
   Should I try pinging to a server other than my ISP?
   
   Thanks, Jonathan Smith.
     _________________________________________________________________
   
   Date: Thu, 22 Jan 1998 02:38:11 -0800 (PST)
   From: Jaume Vicent jvicent@yahoo.com
   Subject: Sound Card MED3931
   
   I'm a new Linux user (kernel 2.0.29). My sound card is a MED3931, with
   a chip OPTi 82c931.
   
   As it is a PnP card, I use the isapnptools-1.9 package, loading the
   sound support as a module. I've tried configure it as a MAD16 or MSS
   (Microsoft Sound System) but it hasn't worked in any way.
   
   I don't know if the problem is with the IRQ/DMA/IO settings (I use the
   same ones as with Windows 95) that I set in the /etc/isapnp.conf file,
   or it is that the sound driver (OSS/Free) just doesn't support this
   card.
   
   Can you help? Thank you.
     _________________________________________________________________
   
   Date: Thu, 22 Jan 1998 22:51:09 +0200
   From: Asaf Wiener wasaf@writeme.com
   Subject: from were can i download (for free) LINUX?
   
   I have an inter pentium, and I would like to install LINUX in my
   computer. But, I don't know from were can i download the installation
   files (for free), I heard that LINUX is a free softwere, but i don't
   find a site that i can download for free LINUX. Please help me to find
   such a site (and also some install instractions).
   
   Thank you,
   Asaf wiener
   
     Look on the Linux Resources page to find pointers to everything you
     need, http://www.linuxresources.com/ --Editor
     _________________________________________________________________
   
   Date: Fri, 23 Jan 1998 14:59:00 +1100
   From: Peter Lee peterl@localgov.wacher.com.au
   Subject: POP3d Problem
   
   I am having problem connecting to the POP3 Server in Linux. This
   problem only arise when a new email arrives or there are mails in my
   mailbox If I delete all my mails I can connect to the POP3 Server.
   Error message I get is:
   
   ERR - being read already /usr/spool/mail/
   
   I have removed the account and recreated it again. Still problem
   occurs. And I know I am the only one logged on. The only way I can
   read my mails is manually telneting to the Linux and use either pine
   or mail from the unix command
   
   Any Suggestions ?
   
   PETER LEE
     _________________________________________________________________
   
   Date: Fri, 23 Jan 1998 13:02:25 -0003
   From: RAFAGUI@if.ufrgs.br
   Subject: Printing postcript ...
   
   I really want to print some using postscript form but I can't ... So,
   I have read a lot of docs and unfortunately when I try to print some I
   just got the postscript language.
   
   I tried configure the 'printcap' and so on but. My printer is a CANON
   4200 Bj and I am running Slackware 96 Linux Version.
   
   Oh: I just gave a look at the RedHat 5.0 comments and seems it make
   easier. I am thinking about purchase it.
   
   Thanks a lot. I would appreciate a reply.
   
   Regards,
   
   Rafael.
     _________________________________________________________________
   
   Date: Sat, 24 Jan 1998 08:09:51 -0500 (EST)
   From: Casimer P. Zakrzewski zak@acadia.net
   Subject: IBM 8514 monitor
   
   Hi. I'm new to Linux, and my problem is installing my monitor, an IBM
   8514, for use with X-Window. I use an S3 Virge 86C325 accelerator
   card.
   
   After installing Red Hat 4.2, the monitor works fine for command line,
   but when I try using it for X-Window, the screen shrivels up to
   something less than a 3x5 recipe card! I've tried reconfiguring
   different combinations of color depths and screen resolutions, and
   have come up with everything from a blank screen to 'your worst
   nightmare'.
   
   I'm stumped. I've tried the different FAQ sites, but can't find one
   that can give me a hint of how to configure this monitor for use with
   X-Window. I'd appreciate any help anyone can give me. I had to resort
   to installing Win95 and IE (which work for this monitor/card) just to
   send this out. Thanks in advance for any help I can get.
   
   Zak
     _________________________________________________________________
   
   Date: Sun, 25 Jan 1998 11:06:17 -0800
   From: Apple Annie annel@cdsnet.net
   Subject: Re: Remote address on Chat sites
   
   I am not a very literate person on the internet, so many of the
   vernaculars used are over my head. However, am having a problem of
   people "killing" me when they wish to , on Java Chat room. I would
   like to be able to eliminate my Remote number coming up with my user
   name . Is there a simple way of doing this? I do not desire these
   people to locate my server & other information. Thanks for your
   response, if you can give me help. If not, then thank you anyhow.
   
   Sincerely yours,
   
   Anne L
     _________________________________________________________________
   
   Date: 27 Jan 98 13:18:56
   From: dennis.j.smith dennis.j.smith@ArthurAndersen.com
   Subject: Linux and VAX 3400 and 3300
   
   I have just purchased a MicroVAX 3400 and 3300. I would like to put
   Linux on these two systems. Can you provide any help in this aspect.
   
   Dennis
     _________________________________________________________________
   
   Date: Wed, 28 Jan 98 15:54:55 MST
   From: Antony Ware aware@acs.ucalgary.ca
   Subject: Linux and Children
   
   I've been hunting around for linux software for toddlers. My eldest
   (3) has had fun with xpaint, and he likes to "type", but there's a lot
   more going on at his level on my DOS partition. (:-(
   
   So far, my searches in the linux world have turned up...nothing. Does
   anyone know of anything out there?
   
   Cheers,
   
   Tony Ware
     _________________________________________________________________
   
                                General Mail
     _________________________________________________________________
   
   Date: Mon, 5 Jan 1998 12:14:09 PST
   From: Marty Leisner leisner@sdsp.mc.xerox.com
   Subject: I don't like long articles
   
   Glen Fowler's article comparing NT and linux processes is too long for
   the gazette (IMHO) and didn't print out good from netscape...
   
   HTML is not the best media for everything, maybe the gazette should
   have an abstract and a URL for a postscript or tex master.
   
   marty
     _________________________________________________________________
   
   Date: Tue, 06 Jan 1998 11:07:06 +0100
   From: Trond Eivind Glomsrd teg@pvv.ntnu.no
   Subject: Linux and routing
   
   In the January issue, you ask for readers to write an article on how
   to connect a LAN via just 1 IP address...
   
   That is rather unnecesarry - there is a mini-HOWTO on it, called "IP
   Masquerade mini-HOWTO". Available from your favorite LDP mirror.
   
   Trond Eivind Glomsrd
     _________________________________________________________________
   
   Date: Tue, 13 Jan 1998 22:26:57 -0600
   From: chris rennert lavithan@execpc.com
   Subject: Rookie
   
   Hello I am a newbie to Linux and I am very excited that I stumbled
   across the Linux Gazette.. I have been wanting to put up a home LAN
   with 2 pc's for some time ... and the article on SAMBA has put me on
   the right track. I am a computer science student here in Wisconsin and
   I love using linux. I will keep reading .. I just hope that you keep
   printing.. Thanks again and I hope I can contribute in the future to
   this great Mag.
   
   Chris Rennert
     _________________________________________________________________
   
   Date: Sat, 17 Jan 1998 01:32:06 -0700
   From: Sean Horan sean@olam.ed.asu.edu
   Subject: Server uptime
   
   I'm sending this maybe as news, perhaps Linux stability and advocacy.
   
   I heard that the record for keeping up a Linux server up continuously
   without reboot is six months. Here's the output from executing 'w' on
   our Linux 1.2.8 system.

1:48am  up 274 days, 17:05,  1 user,  load average: 1.09, 1.02, 1.00
User     tty      from             login@  idle   JCPU   PCPU  what
sean     ttyp1    sss2-01.inre.as  1:46am                      w

   274 days, 24 hours a day. Never restarted. How common is this?
   
   Let us know
   --Sean
     _________________________________________________________________
   
   Date: Sun, 25 Jan 1998 15:04:35 -0800
   From: Sean Russell ser@javalab.uoregon.edu
   Subject: Linux security
   
   I'm not intending to kick of a debate of the merits of PAM, but I have
   a couple of comments and a question.
   
   The question is, has anybody, commercial or freeware, started coding
   an MVS-like security system for Linux? Specifically, I'm interested in
   the fine granularity of access controls, the ability to deal with more
   than just file accesses, user configurable ACLs, and most importantly,
   security at the kernel level. One thing I find most distasteful about
   PAM is the fact that applications have to be PAM aware to make use of
   PAM's abilities. MVS security, on the other hand, is soft-linked into
   the IO layer of the kernel, and /all/ applications use that security
   model without knowing anything about it.
   
   Anyone who has any comments on this, information, or leads, please
   email me.
   
   Thanks!
   
   --- SER
     _________________________________________________________________
   
             Published in Linux Gazette Issue 25, February 1998
     _________________________________________________________________
   
   [ TABLE OF CONTENTS ] [ FRONT PAGE ] Next 
   
      This page written and maintained by the Editor of Linux Gazette,
      gazette@ssc.com
      Copyright  1998 Specialized Systems Consultants, Inc.
      
    "Linux Gazette...making Linux just a little more fun!"
     _________________________________________________________________
   
                               More 2 Tips!
                                      
               Send Linux Tips and Tricks to gazette@ssc.com 
     _________________________________________________________________
   
  Contents:
  
     * Linux - 2 Cents about vim for pico users
     * My 1/50th of a Dollar
     * sound problems
     * Filtering output of binary files
     * Easter Eggs in Netscape
     * RE: Perl and HTML
     * Update locate
     * Doing spaces in file names
     * Mailing binary files to Microsoft clients
     * Linux and Routing
     * Linux and Routing 2
     * Netscape's Abouts
     * Netscape on the Desktop
     * Re: Printing Problems
     * Re: Using a 386 Computer
     _________________________________________________________________
   
  Linux - 2 Cents about vim for pico users
  
   Date: Mon, 5 Jan 1998 23:07:20 +0100
   From: Sven Guckes guckes@math.fu-berlin.de
   
   I just read the "2 cent tips" again and I thought you might enjoy this
   tip:
   
   Several people enjoy the editor "pico" but do not feel comfortable
   with an editor like "vim" for several reasons - one of these being
   that it is so easy to do reformat the current paragraph with ^J
   (control-j) within pico while it is so "difficult" within Vim. Well,
   all it takes is two mappings for Vim:

        nmap <C-J> vipgq
        nmap <C-J>    gq

   Put these mappings into your setup file (on Unix and esp Linux this is
   ~/.vimrc) and you can use ^J to reformat the current paragraph or the
   currently highlighted text (use 'V' and some movement commands to do
   that, for example).
   
   More tips can be obtained from these Pages:
        http://www.vim.org/             Vim Home Page
        http://www.vim.org/faq/         Vim FAQ
        http://www.vim.org/answ.html    Vim Answers Page
                                        (for everything not yet in the VIM FAQ)
        http://www.vim.org/rc           Sven's Huge Setup File with comments

   And for those people who use "some vi" but never got the hang of it -
   here is a page about "why" you would want to use a vi clone such as
   Vim:

        http://www.vim.org/why.html

   Enjoy!
   
   Sven
     _________________________________________________________________
   
  My 1/50th of a Dollar
  
   Date: Wed, 07 Jan 1998 01:27:09 +0000
   From: Michael Katz-Hyman mkatshym@erols.com
   
   Here is a small shell script I wrote to blink the scroll lock on my
   keyboard when new mail arrived.
   
   --------------------------------------------------------------
#!/bin/bash
#
# Keyboard blinky thingy when you have new mail, sleeps 5 minutes if you
don't
#
# Michael Katz-Hyman (mkatshym@erols.com) running Linux 2.0.33 Red Hat
4.0

Mail_File = "/var/spool/mail/mkatshym"

# The static file is used to make the script a daemon (I just test to
see if  /bin/bash is present :- )

Static_File="/bin/bash"

LED_SET_COMMAND_ON = "/usr/bin/setleds +scroll"

LED_SET_COMMAND_OFF = "/usr/bin/setleds -scroll"

Sleep_Command = "/bin/sleep 2m"


# O.k. lets get started

while [ -e $Static_File ]; do
        while [ -s  $Mail_File ]; do

                $LED_SET_COMMAND_ON
                $LED_SET_COMMAND_OFF
        done

        if [ ! -sMail_FIle ]; then

                  /bin/sleep 5m
        fi
done

   ------------------------------------------------------------------
   
   Michael Katz-Hyman
     _________________________________________________________________
   
  sound problems
  
   Date: Wed, 7 Jan 1998 09:48:10 -0600 (CST)
   From: Mike Hammel mhammel@stassw10

> Have installed RedHat 5.0 and configured the sound card using sndconfig.
> All went well and I heard the demo sound bite of Linus. However, I
> have never heard another sound since. When browsing web sites with sound,
> no audio is played. Anyone have any ideas?

   First, cat an audio file to the audio device: cat file > /dev/audio.
   If you get sound out then the device is fine. The problem is probably
   that you haven't configured your browser to play the audio. With
   Netscape you would use the Preferences->Navigator->Applications
   option. You'll need to configure the various audio types to be played
   using whatever tool you choose (I don't play much audio, so don't have
   anything configured in my browser to do so). The cat command will work
   with .au files, and maybe .wav (I think), but possibly not with
   others. You might want to look at the Linux Application and Utilities
   Page or the Linux Midi and Sound Page for hints on getting
   applications for playing sound files. Both of these have links on the
   Software Resources page at the Linux Journal:
   http://www.linuxresources.com/apps.html.
   
   Hope this helps a little.
   
   Michael J. Hammel
     _________________________________________________________________
   
  Filtering output of binary files
  
   Date: Wed, 7 Jan 1998 14:56:05 -0500
   From: Sylvain Falardeau sfalardeau@clic.net
   
   When you do a cat/grep/etc. of binary files on a tty, the terminal may
   become unusable because of some control character.
   
   Guido Socher (eedgus@aken104.eed.ericsson.se) suggests a
   
   sed -e 's/[^ -~][^ -~]*/ /g'
   
   to filter unprintable characters. You can simply use a
   
   cat -v
   
   and all the control characters are escaped to be printable. It's very
   useful when you are "cating" files and don't know if they contains
   control characters.
     _________________________________________________________________
   
  Easter Eggs in Netscape
  
   Date: Thu, 8 Jan 1998 11:53:51 +0000 (GMT)
   From: Caolan McNamara caolan@skynet.csn.ul.ie

* From: Ivan Griffin ivan.griffin@ul.ie
*
* These special URLs do interesting things in Netscape Navigator and Communicat
or.
*
* about:cache gives details on your cache
* about:global gives details about global history
* about:memory-cache
* about:image-cache
* about:document
* about:hype
* about:plugins
* about:editfilenew
*
* view-source:URL opens source window of the URL
*
* Ctrl-Alt-F take you to an interesting site :-)

   At least some of the netscape developers have an about for themselves,
   e.g about:kahern.
   
   C.
     _________________________________________________________________
   
  RE: Perl and HTML
  
   Date: Thu, 08 Jan 1998 16:58:44 +0000
   From: Carl Mark Windsor mbdtscw@cerberus.mcc.ac.uk
   
   In reply to Gabriele Giansante (gvgsoft@madnet.it), whose return mail
   address does not seem to work.
   
   --------------------------------------------------------------
   Gabriele,
   
   The #!/usr/local/bin/perl line is what is used to indicate that this
   is a perl script, but netscape is not clever enough to know this, it
   has to be told.
   
   Go to Options / General Preferences / Helpers and edit (if it exists)
   or create (if it doesn't) the following configuration

Description:  Perl Script
Type:         application/perl
Suffix:       pl

   Tick the Application box and put the path
Application:  /usr/sbin/perl
Sorry if you have heard this all before!

Carl


  __________________________________________________________________________





  Update locate


Date: Sat, 10 Jan 1998 19:16:31 +0000

From: Joaquim Baptista px@helios.si.fct.unl.pt

Both Redhat and Slackware (not sure about Debian) install the package
updatedb. This package has two programs:
- "updatedb" scans the filesystem and generates a database of existing files.
  This is run every night as root.
- "locate" is run by users to quickly locate files on the filesystem,
  using the database generated by updatedb.

My problem is that "updatedb" runs at 4:40 in the morning, and my machine
is rarely running at 4:40.  Thus the database is never updated and "locate"
never finds any recent file.

The solution is not very simple: updating the database hits the disk hard
and takes some time; it is hardly a task to be performed every hour.

My solution is to run a script every hour that updates the database only if
it is more than 24 hours old.  I (ab)used find to do the task.

Here is the script "run-updatedb":

#!/bin/sh
/usr/bin/find /var/spool/locate/locatedb -mtime +1 -exec \
    /usr/bin/updatedb \
    --prunepaths='/tmp /usr/tmp /var/tmp /mnt /cdrom /floppy /var/spool' \;

I also had to change the crontab for root: I commented the old line that
runs updatedb at 4:40, and added a line that runs my script every hour:

0 * * * *   /usr/local/sbin/run-updatedb 1> /dev/null 2> /dev/null

One final note: I believe that both Redhat and Debian have
"super-crontabs." That means that you must fish around in /etc
(/etc/cron?) for extra crontab files (long live Slackware!).

Best regards,

Joaquim Baptista, alias pxQuim


  __________________________________________________________________________





  Doing spaces in file names


Date: Tue, 13 Jan 1998 18:16:48 -0800 (PST)

From: Mark Lundeberg ae885@pgfn.bc.ca

If you think Win95/NT filenames are better than Linux ones, think again.
In bash, (this may work in csh, but I never use it) use quotes to enclose
the filename in the parameters of a program:

echo "test" > "spaced name"

and do an ls, and you see a space in the middle of the filename!
This can be used for confusing people, by going:

echo "Hi" > "test "

(notice the space at the end of "test ").

Then, someone tries to open the file "test" as it looks from ls, but all it
does is open a new file.

PS: The ext2 filesystem allows names of up to 255 chars long, just like
Loseows 95.

Go Linux!


  __________________________________________________________________________





  Mailing binary files to Microsoft clients


Date: Fri, 16 Jan 1998 12:37:22 +0000 (GMT)

From: Ivan Griffin ivan.griffin@ul.ie

Mailing binary files to Microsoft clients...



Quite often I receive a mail with an attachment in that weird Microsoft
format which is not quite MIME.  It's easy for a Unix client to decode such
attachments -- save the message as a file, and run uudecode or the
excellent freeware uudeview on it.

However, sending a mail message to such a Microsoft mail user is a little
different -- you cannot send them a standard MIME message (unless they are
using Exchange I believe).  I have found the following script useful in
such situations.

Say, for example, I wanted to send a file foo.gif to user mike.  I would
run my script as follows:

msmail_encode foo.gif > mail_message



Then I would read the mail message into the body of the message I wanted
to send.  This script could easily be improved to include automatic
mailing, and editing of the mail message proper.

#!/bin/sh
echo "[[ $1 : 2628 in $1 ]]"
echo ""
echo " Microsoft document attached. "
echo ""
echo " Regards, "
echo " Ivan."
echo ""
echo "The following binary file has been uuencoded to ensure successful"
echo "transmission.  Use UUDECODE to extract."
echo
cat $1 | uuencode $1



By the way, I have no idea what the 2628 above refers to.  It is
a number generated somehow by Microsoft mail clients, but they don't seem
to need it, so the 2628 is a value I received once in a mail message.

Regards,

Ivan.


  __________________________________________________________________________





  Linux and Routing


Date: Sat, 17 Jan 1998 11:02:43 -0800

From: James C. Carr jccarr@nwlink.com

        I am not sure if you have already received a reply regarding your
question on routing a LAN to the 'net, so I thought I'd go ahead and
give it a shot.  The CC to Linux Gazette is just in case no one else
has sent in a more elaborate reply. ;)  Also, this is something that was
mentioned back in Linux Journal number 43 ( November 1997 ), so most of
this stems from that particular article, "IP Masquerading Code
Follow-UP".  To avoid re-hashing someone else's wonderful article, I'll
just skim over what I use here at my own home.

======================================================================

Linux and Routing with ipfwadm

======================================================================

        Getting Linux to route information between a LAN and the 'net will
require you to re-compile the kernel with IP Masquerading support.  Of
course, one could also use firewalls and disable the routing, but I
don't have experience with that just yet.  If your kernel version is <
2.0.30, you'll need to enable the "Code Maturity Level" option at
re-compilation -- this gives you access to the other Network Options in
the kernel, such as IP Masquerading support.

        After installing the new kernel,  obtain and install the ipfwadm
program; this usually comes installed on a base Debian 1.3.1 system, and
is easily obtainable for Red Hat.  Executing ipfwadm from my end
includes the following commands:

        /sbin/ipfwadm -F -p deny

This portion breaks down as follows:

 -F -- Notify ipfwadm that
you're modifying the IP forwarding rules.

 -p -- Tell ipfwadm that
you want to deny the forwarding of incoming packets.

  I've
experienced certain web pages that will not open with this option
set; it's probably some Microsoftian plot, you know. ;)

        /sbin/ipfwadm -F -a m -S 192.168.0.0/24 -D 0.0.0.0/0

 -F is the same as above.

 -a -- Append the following rule to the
list, in this case, we're (m) masquerading the following rule.

 -S
-- We're going to masquerade the computers in the 192.168.0.*
address range. Since this is a "local" set of IP numbers, it'll
work with all computers on the LAN with these IP addresses.

 -D --
The forwarding destination will be 0.0.0.0, the equivalent of the
gateway address on a PPP defaultroute.

        /sbin/ipfwadm -F -l -n

Let's make sure this thing is up and running.

 -l -- List all IP                      #
forwarding rules;

 -n -- convert the information to numeric format.

Of course, you'll need to have assigned your computers with IP
addresses within the 192.168.0.* range to use the exact commands above.
On my own setup, the primary computer gets 192.168.0.1, and the others
fall in succession.  Be sure to have all the computers that are being
masqueraded set their gateway address to the primary, e.g.
secondary.my.com (192.168.0.2) uses primary.my.com (192.168.0.1) as
its gateway to the 'net.

        For a far more in-depth article regarding this type of set-up, I do
suggest reading Chris Kostick's article "IP Masquerading Code Follow-up"
in the November 1997 issue of Linux Journal.  Not only does it cover the
basics, but the author also explains a few more subtle aspects to
ipfwadm.  Besides, without the help of this article, I wouldn't even
know the small amount about ipfwadm that I do. :)

======================================================================

I hope this helped at least a little,

-- James


  __________________________________________________________________________





  Linux and Routing 2


Date: Tue, 6 Jan 1998 13:25:57 -0500 (EST)

From: Paul Lussier, plussier@LanCity.COM

> I plan on getting a cable modem soon, so the bandwidth would be pretty

> high, so that is why I have decided to try to make this connection

> provide for my whole house via a LAN connection in my home. What I

> have read is that you could use the private IPs, meaning the 10.x.x.x

> or so, 192.168.x.x and some others for the IP of the LAN and have

> these connect to some box (the LINUX box?) that would provide its

> connection to the internet to the inside LAN connected to the box. Is

> the problem that you would have to route the assigned address to the

> private IPs for the LAN use. I have also read that this would slow

> down the connection a bit or something, but that is a price I am

> willing to pay. So, the summary of the question is how would I be able

> to connect many computers to the internet via just 1 assigned IP

> address? I would like to be able to do it using my LINUX box connected

> to the internet via cable modem, and to my LAN via an Ethernet

> link. Any help is much appreciated, thanks.


This caught my attention, especially since I'm the Unix admin for
Baynetworks Broadband Technology Division (formerly LANcity) and we
pretty much invented this technology, along with being the leader in
the Cable modem industry :) Now that I've got the plug in for company
I'll get down to your problem :)

I first must admit that 1.) I don't own a cable modem (I can't get
cable, long story :( and 2.) I don't do any routing of this nature.
But I have read a lot about it, and I do work with cable modems, so I
think I can help a little :)

The first thing to understand is that with Linux, you don't want to be
routing, and definitely do not want to run routed to do what you want
to accomplish.  Rather, you want to be doing IP forwarding/IP
masquerading which you would enable in the kernel by
re-configuring/re-compiling a new kernel.  You'll definitely want to
scour the HOWTOs, I believe there is one on this subject.  In
addition, you may want to check out the Linux Network and/or Systems
Administrator's guides, as they too, probably have some good
infomation in them.  Other good references may be:
     * The NET-2/3 HOWTO
     * The Ethernet HOWTO
     * The Multiple Ethernet Mini HOWTO
     * Networking with Linux

The Firewalling and Proxy Server HOWTO is probably the best bet, now
that I look, since what you really want to do is set up firewall to
prevent people from coming in, and a proxy server to allow your
internal lan to get out.

Some words of caution.  DO NOT HAVE YOUR LAN CONNECTED AT THE TIME OF
THE CABLE MODEM INSTALLATION!!!!  MediaOne, Cablevision, Time Warner,
and most of the other cable companies (we deal with them all here)
will refuse to connect a LAN to their broadband network.  Simply
remove your hub or coax cable from view, and let them do what they
need to do, then connect everything else up after they leave. =20

You will need 2 Ethernet NICs in the system which will be connected to
the broadband, one for the cable modem and one for the internal LAN..
Most cable companies will gladly provide and install one for you
(MediaOne charges $120 for a 3C509 + labor).  I recommend telling them
you have a NIC, and going out and buying one and installing it yourself.

The cable modem, in reality, is NOT a modem.  It's an Ethernet Bridge.
When the modem^H^H^H^H^Hbridge boots/powers up it does a bootp request
to a server at the cable companies central office to obtain an IP
address.  The NIC is also assigned an IP address, which (at least with
MediaOne) is registered to the MAC address on the NIC (MediaOne
doesn't want you to move the modem to another computer after they
leave.  They apparently check the modems from time to time to see what
MAC they're connected to).  Therefore, you want your proxy
server/firewall configured so that it prevents all incoming
connections from the cable modem and allows only outgoing connections.
You want the IP forwarding/masquerading set up to allow other systems
on your private lan to use the proxy server as a proxy server (I'm not
sure if using the term gateway here is correct).

Some other interesting tidbits of information about cable modems and
cable companies:
    1. Do not expect support for running a LAN over the cable modem from
       the cable company. They don't want you to do it, they won't help
       you do it.
    2. Do not expect to put up a web server to be accessed by from the
       internet. You are a client, not a server. This technology,though
       fully capable of performing in this manner, is not being deployed
       for use this way. Cable companies WILL shut you down for running a
       server of anykind on your end of the network, and it can be
       *forever* :(
    3. Spammers love cable/broadband networks. There have been several
       cases where a broadband network customer has been used by spammers
       and were subsequently shutdown for life by the cable company. What
       happens is the person decides to connect their private LAN to the
       cable modem but sets the firewall up incorrectly. Spammers search
       cable/broadband networks for proxy servers/firewalls (Usually
       Win95/NT) that allow incoming connections and then use that system
       to spam the entire cable/broadband network making the spam appear
       as if you sent it. Usually you will be given 1 warning by the
       cable company, but there have been cases where none was given and
       the customer was completely shut down.
    4. The current BayNetworks LANcity modems (the LCp product) being
       deployed in homes is limited to 1 MAC address connection (which
       means you can't plug the modem into a repeater/mini-hub in order
       to connectit to multiple systems). It is sotfware upgradable to 16
       MACs, but you'll pay a fortune for it to the cable company.
       However, an ethernet switch works wonders :)
    5. Current modems are capable of transmitting at 10Mbs in both
       directions, but are usually deployed throttled back to a trasmit
       speed of 300Kbs and a recieve speed of 1.5Mbs. You want more
       bandwidth, they'll be happy to charge you more money :)

I hope this helps a little bit.  Feel free to e-mail me if you have
any questions.

Seeya,
Paul


  __________________________________________________________________________





  Netscape's Abouts


Date: Tue, 20 Jan 1998 16:00:46 +0100

From: "Stefan K." kampi@physik3.gwdg.de

I've read the article about the about's of Netscape...
Here's some more (some of them may not work or simply do nothing)

about:montulli

about:nihongo

about:francais

about:plugins

about:document

about:license

about:cache

about:global

about:image-cache

about:memory-cache

about:security

about:hype

about:blank

about:mozilla

about:security?subject-logo=

about:security?

about:security?banner-mixed

about:security?banner-insecure

about:security?banner-secure

about:security?banner-payment

mocha:

javascript:

livescript:

view-source:

about:FeCoNtExT=123

PEACE!

kampi


  __________________________________________________________________________





  Netscape on the Desktop


Date: Sat, 24 Jan 1998 06:46:22 -0500

From: Tim Hawes tim@donet.com

I do a lot of my web development work at home on my Linux box. Netscape
for Linux does not automatically check for an existing Netscape session.
As a result, if you try to run two different Netscape sessions, you will
get an error message box with something like the following:

        Netscape has detected a /home/thawes/.netscape/lock
        file.

        This may indecate that another user is running
        Netscape using your /home/thawes/.netscape files.
        It appears to be running on host localhost under process-ID 316.

        You may continue to use Netscape, but you will
        be unable to use the disk cache, global history,
        or your personal ceritificates.

Blah, blah, blah.

If you are like me, and like to have links to URL's using Netscape on
your menus, FVWM GoodStuff or desktop icons, this can be a real
nuisance, having to completely start a new Netscape session each time.
Or you can have them link with this:

netscape -remote 'openURL(your.url)

But then none of your links will work if Netscape is not currently
running. This shell script will look for the lock file that Netscape
creates when it is started. If it does not find the lock file, it will
start a fresh Netscape session. If it does find it, it will send a
netscape -remote command to your current session with the URL you
provide in the argument. If you do not provide a URL, netscape will
simply give you a popup message indicating that you did not specify a
URL. If you do not want Netscape to start up a new window for the URL,
just get rid of the
"new-window"
in the argument in the shell script.

#!/bin/sh
if [ -L $HOME/.netscape/lock ]
        then exec /usr/local/netscape/netscape -remote
'openURL('$*',new-window)';
        else exec /usr/local/netscape/netscape $*;
fi
exit 0

There are limitations with this script. First of all, if Netscape did
not exit cleanly after the last session, then the lock file will still
be present in your ~/.netscape directory. The script will then try to
execute a netscape -remote command and will error out with the console
message that Netscape is not running on :0.0. If you are not redirecting
your console messages anywhere, then you will not see anything except
Netscape not-starting.

            1. Do a ps to see if there are any zombie processes left
over from your last netscape session.

            2. Kill all zombie processes

            3. $ rm ~/.netscape/lock

            4. retry

I am sure there is a way to automate this through a shell script as
well, but I have not yet any time nor motivation to write it.
Some other shortcomings include trying to start Netscape composer with
the -remote  argument for a currently running netscape session. But then
this is probably why you should never name a shell script after the
actual binary it attempts to start.

All in all, if you envy the functionality of Netscape on Windows 95,
automatically checking for an existing netscape session to send the
browser surfing, and starting a new session if it does not find it,
well, here is a simple solution for Linux users, using the power of the
shell.

Tim Hawes


  __________________________________________________________________________





  Re: Printing Problems


Date: Sat, 31 Jan 1998 20:09:18 +0100 (MET)

From: Roland Smith, rsmith06@ibm.net

>Anyone that can help me. I'd love to hear it. I try running

>lpr, but everytime I get no name for local machine.

>How do I set this and/or what is the problem.

>Manish Oberoi

It sounds like you're using LPRng. This is a new version of lpr that's
more suitable for networks. It is included in the newer Slackware releases
and maybe others.

My solution was to grab the bsdlpr.tgz package from ftp.cdrom.com and use
that (This is meant for Slackware). Otherwise you can search the Net for
"bsdlpr".

-- Roland


  __________________________________________________________________________





  Re: Using a 386 Computer


Date: Sat, 31 Jan 1998 20:13:09 +0100 (MET)

From: Roland Smith, rsmith06@ibm.net

>I used to have a 386 25 MHz computer. Not long time ago I bought a

>Pentium 200 MHz computer. Since then I have not played with 386.

>Is there any easy and economical way to connect the 386 to the

>Pentinum computer where I will install the Release 5.0. If so,

>what I can do with it or at lease what I can learn from it.

If you connect both machines with a parallel cable, and configure PLIP
into the kernel on both machines, you can have your own little network. A
386 should at least work nice as a terminal, even if it might not run X
:-)

-- Roland


  __________________________________________________________________________



             Published in Linux Gazette Issue 25, February 1998


  __________________________________________________________________________



[ TABLE OF CONTENTS ] [ FRONT PAGE ] Back 
Next 


  __________________________________________________________________________


      This page maintained by the Editor of Linux Gazette, gazette@ssc.com
      Copyright  1998 Specialized Systems Consultants, Inc.



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

                                 News Bytes
                                      
                                 Contents:
                                      
     * News in General
     * Software Announcements
       


  __________________________________________________________________________


                              News in General
                                      



  __________________________________________________________________________




  March Linux Journal


The March issue of Linux
Journal will be hitting the newsstands
this week. The focus of this issue is Graphical User Interfaces with
articles on XView, GTK+, X-Designer and CDE. Check out the
Table of Contents.


  __________________________________________________________________________




  Netscape Announces Plans To Make Source Code Free

January 22, 1998

     Netscape Communications Corporation today announced bold plans
     to make the source code for the next generation of its highly popular
     Netscape Communicator client software available for free licensing on
     the Internet. The company plans to post the source code beginning
     with the first Netscape Communicator 5.0 developer release, expected
     by the end of the first quarter of 1998.

     Netscape is releasing its currently available Netscape Navigator and
     Communicator Standard Edition 4.0 software products immediately
     free for all users.

     In addition, the company separately announced the launch of an
     aggressive new software distribution program called "Unlimited
     Distribution" to broadly distribute its market-leading Internet client
     software for free. Unlimited Distribution enables Original Equipment
     Manufacturers (OEMs), Internet Service Providers (ISPs),
     telecommunications companies, Web content providers, publishers
     and software developers to download and redistribute Netscape
     Communicator and Netscape Navigator easily with "no strings
     attached."

     To read and post reactions about this latest announcement, Linux
Journal has added a discussion group to our pages.


  __________________________________________________________________________




  Linux in the News


Eric Raymond's article 
"The Cathedral and the Bazaar"
evidently made the rounds at Netscape and helped convince them that giving
away Navigator source code was a good idea. If you've never read it, now is
a good time.

Check out the article by Barton Crockett on msnbc: A Titanic Challenge to
Microsoft

The February issue of Dr. Dobb's Journal has an interview with Larry Wall,
the creator of Perl.


  __________________________________________________________________________




  The SEUL Project

The SEUL (Simple End-User Linux) Project is an organization dedicated to
developing a free
Linux distribution that presents a viable alternative to commercial
PC operating systems.  Currently based on Red Hat Linux, the SEUL
distribution will cover many different aspects of Linux.

For more information:

Roger Dingledine, seul@seul.org

http://www.seul.org/


  __________________________________________________________________________




  The Linux Clothing Project


Check out http://genocide.adept.co.za/lcp/
to have your questions answered.

We're planning another t-shirt, with ordering opening on the 1st of
February,
1998. All the info is on the page.

For more information:

Albert Strasheim, UUNET Internet Africa, 
fullung@ilink.nis.za 


  __________________________________________________________________________




  Stampede Linux Logo Contest!


Along with the highly anticipated release of Stampede Linux 0.55 (heber),
the developers felt it time to have an official logo.  The developers
also felt that they should look elsewhere for development of said logo.
This contest is a result of the looking elsewhere bit. (Yes, prizes are
part of this contest =]).

For more Information:

Matt Wood, Stampede Linux Head Developer, skibum@beer.stampede.org

http://www.stampede.org/


  __________________________________________________________________________




  12th SYSTEMS ADMINISTRATION CONFERENCE (LISA '98)


December 6-11, 1998

Boston, Massachusetts

The LISA '98 program is put together by a volunteer committee of
experienced systems administrators. The Program Committee welcomes
your submission.  The Call for Participation is now available at

http://www.usenix.org/events/lisa98/

Sponsored by USENIX, The Advanced Computing Systems Association
Co-Sponsored by SAGE, the System Administrators Guild


  __________________________________________________________________________




  Japanese Word Processor


Perhaps you'd like to work on another exciting project?  There is
a Windows application, called JWP -- a Japanese Word Processor.  This
package was written by Stephen Chung, and as a GNU product it is freely
distributable.  I've used it extensively over the past few years, and
it is a *great* package.

Unfortunately, JWP is only available for Windows right now, which is
locking out a lot of people under other platforms who might benefit from
it.  As Stephen is quite busy with full-time work and maintaining the
Windows versions (he's developing version 2.00 now), Steve Frampton has
decided to go ahead with a port to X-Windows.

The JWP-Port Project home page contains more information on the JWP
package as well as the JWP-Port project itself.  If you are interested,
please visit the page at 
http://qlink.queensu.ca/~3srf/jwp-port/.

For more information:

Steve Frampton, 3srf@qlink.queensu.ca


  __________________________________________________________________________




  A 3D CAD Application for Linux Project


FreeDesigner is intended to be a fully extendable
Computer Aided Design and Drafting (CAD) application for Linux and other
Unix type operating systems. Initially K Desktop
Environment and GNOME/GTK frontends will be investigated, although it will
be written as "toolkit inspecific" as is possible, by
utilizing a GUI abstraction layer in FreeDesigner Core.

For more information:

Fleming, Petersen & Associates,
http://www.fpa-engineers.com/OD/


  __________________________________________________________________________




  Artificial Intelligence


Interested in Artificial Intelligence, Eveolutionary Computing,
Connectionism, Artificial Life, and/or Software Agents? Want to find
out what software is available for Linux in these areas? Or are you
just curious?

If so, check out my Linux AI/Alife mini-HOWTO at:
http://www.ai.uga.edu/~jae/ai.html

For more information:

John A. Eikenberry, jae@bob.coe.uga.edu


  __________________________________________________________________________




  Digital Domain and Red Hat Linux


Digital Domain used Red Hat Linux not only for special effects in the movie
Titanic but also in commercials that debuted during this Superbowl.
Here's Red Hat's press release.




  __________________________________________________________________________



                           Software Announcements
                                      



  __________________________________________________________________________




  eVote 2.2


Date: Wed, 28 Jan 1998

 eVote image

eVote is a freely available add-on to email list-servers that gives
the members of the list the ability to poll each other. After
installation of the software, the administrator is not involved. All
participants have the power to open polls, vote, change their votes and
view each other's votes if the particular poll was so configured.
The underlying specialized data-server, The Clerk, is also freely
available for Linux systems only. eVote 2.2 is available in both English
and French.

For more information:

Marilyn Davis, mdavis@deliberate.com,
http://www.Deliberate.com/


  __________________________________________________________________________




  FunktrackerGOLD 1.1


FunktrackerGOLD 1.1 has been released. FunktrackerGOLD is a module editor for
Linux that allows you to compose digital music (similar to Fasttracker,
Impulsetracker etc for those who are familar with them).

For more information:

Jason Nunn, jsno@dayworld.net.au


http://www.downunder.net.au/~jsno/proj/unix_projects/


  __________________________________________________________________________




  Quikscript


Quikscript is a PostScript text formatting and typesetting program.
It enables documents to be prepared on any type of hardware, using
visible layout marks to control the appearance of the output, and
produce output on a PostScript printer by despatching Qs and the
document file to the device.  No processing is performed by the
host hardware;  all processing is done within the printer.

The advantage that Quikscript provides, other than portability,
is precision of control over output.  Because it is written in
PostScript, it is interpreted at run-time within the printer.
It is possible to create documents that modify the Quikscript
program during execution.  It is very easy to include other
PostScript programs or fragments with Quikscript.  It is possible
to use special PostScript fonts, such as hand-generated ones.
Graphics generated from a variety of sources can be easily included,
as can text output from computer programs.  It is possible to embed
Quikscript within a document, such as an advertisement or a telephone
bill.

The Quikscript distribution is available by anonymous ftp from
"ftp.adfa.oz.au" in the directory "pub/postscript".  It may also be
accessed through the World Wide Web at URL
  http://www.cs.adfa.oz.au/~gfreeman/


For more information:

Graham Freeman, g-freeman@adfa.oz.au


  __________________________________________________________________________




  YP-Tools & YP-Server


Version 1.4 of the YP (NIS version 2) tools for Linux has been released.
This package contains ypcat, ypmatch, ypset, ypwhich and yppasswd.
You need this package for GNU C Library 2.x and Linux libc 5.4.21,
but you should use libc 5.4.36 or later due some NIS bugs in libc.
It replaces the old yp-clients 2.2 on this systems.

You could get the latest version from:

http://www-vt.uni-paderborn.de/~kukuk/linux/nis.html

                          ------------------------


Version 1.2.7 of an YP (NIS version 2) Server for Linux has been released.
It also runs under SunOS 4.1.x, Solaris 2.4 - 2.6, AIX, HP-UX, IRIX,
Ultrix and OSF1 (alpha).

The programs are needed to turn your workstation in a NIS server.
It contains ypserv, ypxfr, rpc.ypxfrd, rpc.yppasswdd, yppush, ypinit,
revnetgroup, makedbm and /var/yp/Makefile.
This is NOT an NIS+ (NIS version 3) Server !
ypserv 1.2.7 is available under the GNU General Public License.

You could get the latest version from:

http://www-vt.uni-paderborn.de/~kukuk/linux/nis.html

For more information:

Thorsten Kukuk, kukuk@vt.uni-paderborn.de


  __________________________________________________________________________




  Motif 2.1 for Linux


The latest and best release of Motif (version 2.1) is now available for
the best operating system!
Linked against both glibc (yes, it DOES work with RedHat 5) and libc (ie
it works with Debian, Caldera, RedHat 4.0).


For more information:

LSL, http://www.lsl.com/,
motif@lsl.com 

NC Laboratories, http://www.nc-labs.com,
sales@nc-labs.com


  __________________________________________________________________________




  NetTracker


NetTracker is one of the most powerful, yet easy to use Internet and
Intranet usage tracking programs on the market today. NetTracker allows
marketing professionals, webmasters and ISPs to get the essential
information they need to make informed decisions regarding their web
sites.

A demonstration of NetTracker can be seen at [http://www.sane.com/demo/],
and a free 30 day evaluation copy can be downloaded from
[http://www.sane.com/eval/].

For more information:

Sane Solutions, info@sane.com


  __________________________________________________________________________




  SCEPTRE-90


SCEPTRE-90
        a program for the analysis and simulation of
        electrical nonlinear networks and dynamic systems
is now available for Linux users (free of charge).
The ftp site, where the program can be found is:

novilux.fh-friedberg.de/pub/sceptre_linux.

Detailed documentation in english and german as well as many samples
are included in the archive file.

For more information:

Prof. Dr. Wolf-Rainer Novender, novender@novilux.fh-friedberg.de



  __________________________________________________________________________




  BANAL 0.04 (free bookkeeping software)


    BANAL is a bookkeeping system that allows you to track invoices,
    clients, projects, TODOs, bank accounts and expenses.  BANAL is a
    client/server application so you can keep one set of books on your
    system while allowing everyone access.

 For this release, BANAL can store your information, list (and allow
    searching of) information and generate invoices, income and expense
    statements.  You can also make and use recurring and memorized
    transactions to ease the burden of creating them manually.  Check
    the TODO file, that is included with the distribution, for an idea
    of what is coming in the next release.

    If you want to obtain BANAL and try it out, ftp to:

ftp://sunsite.unc.edu/pub/Linux/apps/financial/accounting.

For more information:

Matthew Rice, Matthew.Rice@ftlsol.com


  __________________________________________________________________________




  Aegis 3.1 - Software Configuration Management System


Aegis is a transaction-based software configuration management system.
It provides a framework within which a team of developers may work
on many changes to a program independently, and Aegis coordinates
integrating these changes back into the master source of the program,
with as little disruption as possible.


http://www.canb.auug.org.au/~millerp/aegis.html

For more information:

Peter Miller, millerp@canb.auug.org.au


  __________________________________________________________________________




  Free CORBA 2 ORB - omniORB 2.4.0


The Olivetti and Oracle Research Laboratory has made available the second
public release of omniORB (version 2.4.0). We also refer to this version
as omniORB2.
omniORB2 is copyright Olivetti & Oracle Research Laboratory. It is free
software. The programs in omniORB2 are distributed under the GNU General
Public Licence as published by the Free Software Foundation. The libraries
in omniORB2 are distributed under the GNU Library General Public
Licence.

Source code and binary distributions are available from our Web pages:

http://www.orl.co.uk/omniORB/omniORB.html

For more information:

Dr. Sai-Lai Lo, S.Lo@orl.co.uk


http://www.orl.co.uk/omniORB/omniORB_240/


  __________________________________________________________________________




  New Linux STREAMS Release


Linux STREAMS (LiS) version 1.12 is now available.  This version
supports kernels 2.0.24 through 2.0.33.  By mutual consent of the
authors, the licensing terms have been changed to the GNU Public Library
License. This allows linking of proprietary STREAMS drivers with the LiS
code.
This version contains an install script which automates the
installation.

It can be downloaded from ftp.gcom.com from the directory
/pub/linux/src/streams-1-15-98.

For more information:

Mikel L. Matthews, mikel@gcom.com


  __________________________________________________________________________




  Speech Enhancement by Kalman Filtering Package


If you are interested in speech enhancement, signal processing
in general, or applications of Kalman filtering, read on.  Mr. Kybic has just
finished his diploma work, entitled "Kalman Filtering and Speech
Enhancement" which includes, among other things, an implementation of
a Kalman smoothing based speech enhancement algorithm, working on
speech signal corrupted by slowly changing coloured additive noise.
Tested on Linux and HP-UX. Parallel version using PVM.
It is not perfect but might be inspiring anyway. Free for
non-commercial use.


http://cmp.felk.cvut.cz/~kybic/dipl

For more information:

Jan Kybic, xkybic@sun.felk.cvut.cz


  __________________________________________________________________________



             Published in Linux Gazette Issue 25, February 1998


  __________________________________________________________________________



[ TABLE OF CONTENTS ]
[ FRONT PAGE ]
Back 
Next 
  __________________________________________________________________________

      This page written and maintained by the Editor of Linux Gazette,
      gazette@ssc.com
      Copyright  1998 Specialized Systems Consultants, Inc.


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


  __________________________________________________________________________




                               The Answer Guy
                                      
                   By James T. Dennis, answerguy@ssc.com
          Starshine Technical Services, http://www.starshine.org/
                                      

  __________________________________________________________________________

  Contents:

     * Removing LILO, Reinstalling MS-DOS
     * Running as root on Standalone Systems -- DON'T
     * More on Netscape Mail Crashes

  __________________________________________________________________________




  Removing LILO, Reinstalling MS-DOS

 
From: Stephen Britton, sbritton@westnet.com


 My parents just told me that I have to
 give our extra machine (a 486 running Red Hat 4.1)
 to my younger brother, who only knows Windows.
 I have formated the drive with MS-DOS, but I
 can't seem to figure out how to remove LILO. I
 recall reading somewhere that it can be done by
 c:\fdisk /mbr But that doesn't seem to be working.
 Please help, he is returning to College next week!!



        That should do it. However -- which version
        of MS-DOS are we talking about.  This option
        was introduced in MS-DOS 5.0.  Although it
        wasn't documented at the time it is widely
        used to recover from a variety of boot
        viruses.

        If that that doesn't work -- boot from a Linux
        floppy -- zero out the whole partition table
        and MBR (dd if=/dev/zero of=/dev/hda -- for
        a primary IDE, or of=/dev/sda for the primary
        SCSI and count=1 (or 2 or so)).

        Then you can boot from a DOS installation floppy
        and it will insist that you run fdisk and will
        treat the drive as though it was brand new and
        previously unformatted/partitioned.

        (Technically you only have to zero out or
        put anyting other that 0x55AA as the last two
        bytes of the MBR -- that's the signature that
        tells FDISK that this drive has been previously
        partitioned.  However, it's just easier to zero
 out the whole mess.)

        Naturally this will make all of the data on the
        drive inaccessible -- but I suspect you already
        knew that was going to happen anyway.

        Alternatively -- if fdisk /mbr doesn't work --
        you should find out *why*.  If this is an early
        version of DOS -- you should probably try to
        get a copy of 5.0 or later (or consider Caldera's
        OpenDOS).  I suppose you could also consider
        installing Win '95, considering the likelihood
        that your brother will need access to TCP/IP
        utilities like web browsers and some e-mail
        package.

        On the one hand I hate to push some further down
        the throat of the snake -- on the other hand  we
        should always do our best to act in the best
        interests of our customers -- even when they're
        our pesky brothers.



P.S. I tried talking him into taking Linux, but he's
locked into the Windows mindset.



        Trying to convince someone of something is
        usually a losing proposition. Try to understand
        his real requirements -- and offer the best
        advice you can.

        It may be that Windows is the best environment
        for him.  It may also be that there are over-riding
        constraints that force him to choose a Windows
        compatible platform.

        I think that many organizations are now "chained" to the
        Microsoft aggenda by their current investment in their
        existing data files (all their spreadsheets, documents,
        and many of their small, departmental mailing lists, and
        databases are locked into various versions of the proprietary
        .DOC, .XLS, and other data formats).

        Microsoft clearly intends to maintain this state.  I
        guess that is has been the core of their strategy for the
        last five years (since about the release of Win 3.0 or 3.1).

        (It is also not unique to them -- most major commercial
        hardware and software vendors have tried to "lock" their
        customer into upgrade paths.  Companies like DEC, IBM,
        and HP have each had their VMS, MVS, MPE OS' with this
        aggenda.  Consequently their efforts at Unix have often
        been "skunkworks" -- and have been highly politicized for
        over a quarter of a century).

        I ask people to consider this tidbit in their long range
        planning.  Truly optimizing for the present requires
        looking to the future as well.

-- Jim
  __________________________________________________________________________




  Running as root on Standalone Systems -- DON'T

 
From: griffin@ameritech.net


 What advantages are there, if any, to running your single-user
 system as a normal user and not root?



        If you're absolutely perfect, you never make a typing mistake or
        issue a wrong command, or a right command from a wrong directory
        with the wrong arguments, *and* you only run perfect software,
        with no bugs in it at all, *and* you are totally disconnected
        from the world (you don't get any e-mail, never use netnews, or
        IRC etc) -- then you *might* be sort of safe running as root on
        your system.

        If you simply don't care about your data and you like the idea
        of rebuilding your system configuration from scratch then throw
        all caution to the wind and go for it.

        However, for the vast majority of us, it's the most minimal bow
        to prudence to log in as an unprivileged user for the vast
        majority of work you do at your system.

        The advantages are:
     * Your normal user account can't accidentally damage vital system
       files with any normal command. The most common cause of data loss
       and downtime is operator failure. When I worked on the tech
       support lines at Norton Computing (the largest publisher of DOS
       and Mac data recovery tools) the accidental deletion calls were
       more common than all other causes combined. Even on Unix and other
       multi-user system the system administrators (or "operators") are
       the primary cause of downtime and data loss. It simply makes sense
       to minimize these risks.
     * Programs you are running (buggy, or even trojan horses and
       viruses) can't readily damage system files. Software bugs are the
       second most common cause of data loss. Trojan horses and viruses
       are a rarity in the Unix world -- precisely because the prevailing
       custom is to run software with minimal privileges. When it comes
       to software that legitimately needs privileged access (like the
       Red Hat rpm system when it's used to update or install new
       packages), many sysadmins run new software on a "sacrificial"
       system or in a "chroot jail."
     * Even programs that are reasonably O.K. may vulnerable to
       deliberate attacks. If someone uses 'write' to ANSI-bomb you
       (re-writing the keybindings in your terminal/console driver for
       malicious purposes) or exploits some 'feature' of IRC or your mail
       reader to execute code on your behalf, you'd like to limit the
       damage they can do.

        The disadvantages mostly relate to convenience.  A typical
        microcomputer user from a DOS, Windows, OS/2, MacOS, AmigaDOS,
        CP/M or similar background is used to being able to edit any
        file and change any setting directly and quickly.

        By maintaining the discipline of only doing administrative tasks
        from a 'root' login -- and all of your other work from one or
        more 'user' accounts you are forced to pause and consider the
        implications of what you're doing.

        It's also nice that you can partition your work into distinct
        domains -- you can always play games from your 'player' account
        -- and none of those games can damage you're thesis project, or
        financial records, or whatever.

        Personally I think this could use some improvement.  I'd like to
        see a system whereby by each user is implicitly the manager of a
        group of "roles."  For single-user home systems this would be
        basically the same as using your root account to create new
        psuedo users for yourself.  On multi-user systems it would
        delegate the task of creating new roles and rolegroups to the
        user --- so that each user's "base account" in effect becomes an
        administrator of this own roles.

        The problem I see with that is that there's no support in Unix
        for it.  I think it would take alot of work to build a set of
        tools to support it (and many of these tools would have to be
        SUID 'root' in traditional Unix systems -- or would require some
        totally different lower level support such as a variant of a
        "capabilities" system.  In any event these tools would be very
        security sensitive -- and early versions would probably be the
        cause of numerous exploits.

        However, none of that matters to the home user with root access
        to his own box.

-- Jim
  __________________________________________________________________________




  More on Netscape Mail Crashes

 
From: Chris, colohan@cs.cmu.edu


 In http://www.linuxgazette.com/issue24/lg_answer24.html, you suggest
 removing the ~/.netscape tree to stop Netscape Mail from crashing.
 I have had the same problem several times, and it does not appear to be
 anything in that directory -- it is the mail files themselves.  It
 appears as though Netscape will occasionally put a wee bit of corruption
 in your ~/nsmail/[Inbox, Trash, etc.] files, which prevents it from
 reading them.  And it crashes when it encounters any corruption in these
 files.  It also seems to crash if your trash gets too large.  (Anything
 over 1MB seems hopeless).


 So one solution is to back up your mail elsewhere, and erase your mail
 directory.  Then Netscape will create new, valid, empty mail folders,
 and stop crashing for a while.  Another solution is to open the files
 yourself (they are just text files), and erase any messages that look
 suspect.



        These sound like excellent troubleshooting suggestions,
        recovery procedures and workarounds.

        I believe I also mentioned that my e-mail is far too important
        to me to entrust to Netscape (or any "new" product).  For
        years I used 'elm' and before that it was 'mush' (mail user's
        shell).  The switch from 'elm' to MH (using emacs' mh-e and Gnus
        interfaces) was nerve-wracking.  (I deal with over a hundred
        messages a day -- and it's at the core of my business that I
        "keep up" on administration and security issues for my customers).

        My biggest customer (another consultant in a different specialty)
        has also made this switch, after over a decade of using emacs'
        RMAIL.  As you can imagine there have to be some pretty extensive
        advantages to a package to warrant changing from one client to
        another.  (Merely having a "prettier" interface and a few bells
        and whistles isn't nearly enough).

        Consequently I will probably stay in a poor position to answer
        questions about NS's mail and news readers.

        As for the fact that NS crashes when encountering corruptions
        in folders and messages -- that's just poor quality control and
        poor coding.  As usual the issues of "time-to-market" and
        "pretty interface" dominate the development of commercial products.

        The nature of the computer software industry practically guarantees
        that the most widely used commercial products will have bugs of
        this sort.  This is the result of a set of corporate priorities
        that don't match typical customer priorities -- and is a byproduct
        of the selection process by most software is purchased.

        I could go on about this for many pages.  Since I worked in the
        software industry for a long time -- I had a lot of time to
        observe the process first hand.  (Since I was doing tech support
        I also had an abundance of free neural cycles to think about the
        issues, as well).  Here's a few observations that will help explain
        my conclusion:
     * Software companies sell features. They only make money on product
       sales and upgrades -- and the margins are much better in upgrades
       than in initial sales (since many, possibly most, upgrades are
       direct revenue -- and no "cut" goes to the channel distributors
       and retailers).
     * Most software marketing is directed to channel distributors,
       retailers, and fortune 1000 corporate purchasing agents. Most of
       it is not directed to end users and home customers. These
       intermediaries largely determine the pricing and availability of
       most commercial software, and the advertising that goes to the
       end-user. The priorities of these intermediaries are: high sales,
       low product return rates (RMA's). The purchasing agents at Merisel
       and Egghead don't do detailed requirements analysis on behalf of
       their customers.
     * Product returns are most tightly correlated with how long the
       customer has had the product before becoming dissatisfied with it.
       This is why "ease of use" and "ease of installation" are so
       important in commercial software. If the vendors can keep the
       majority failures from occuring for 60 to 90 days -- very few
       customers will return the product even if the publisher's policies
       allow it.
     * There is much more focus on corporate sales than on retail for
       most shrinkwrapped software. This is due to high rates of piracy
       among home users and the obvious observation that every "customer"
       contact costs money (sales and tech support time). So one
       successful sale at TransAmerica costs much less than 10,000
       individual sales to home users and SOHO markets.
     * Most corporate software users have little say and relatively
       little interest in what software they use. They are told what do
       so -- and usually don't question that. Corporate purchasing agents
       get plenty of political pressure from managers and executives but
       usually neither the purchasing agent nor the manager spends much
       time "in the trenches" with the software that's being used.
     * Managers are far more worried about being "wrong" than being
       "right." An excellent product from an unknown source is considered
       a much higher risk than a mediocre product that gets good press
       and comes from a large, well-known source.
     * The computer industry press can't sell much copy by talking about
       "old" products. They also can't depend on any significant amount
       of advertising unless they maintain close, positive,
       relatiionships with their major advertisers. Most of their
       advertisers are hardware and software companies.
     * Because the writers in most of these magazines are working with
       new (usually pre-release or "beta") software or versions they have
       no opportunity to discover the bugs that take two or three months
       to show up in typical use. In addition most of these writers
       either don't use the products they review extensively, or tend to
       rely on earlier versions for their production and critical work.
       Almost no one is a full-time professional journalist in the
       computer industry -- and those that are in this position are in a
       rather poor position to do in depth evaluation of anything other
       than word processors.
     * Despite these limitations -- which almost gaurantee that we should
       take software reviews with a large block of salt -- these reviews
       in major magazines become the focal point of most discussion on
       the topic. By the time a given customer has purchased, installed,
       configured, and learned a given product it's usually too costly
       (emotionally and in time) to "start all over."
     * The fact that a large number of commercial packages store some or
       all of "their" data (not "yours" -- but "theirs") in proprietary
       formats also increases the risks and costs associated with
       switching.
     * Finally there is a strong possibility that the next product a
       given customer tries to switch to will be as bad or worse.

        When you go through all of this -- even if you don't agree
        with half of the observations -- it's easy to see why so
        many people live in quiet desperation, hating their most
        important software.

        Sadly it takes *really* bad software to fail as a result of its
      bugs.  dBase IV comes to mind.  It doesn't take much for really
        high quality software to fail as a result of poor marketing
        (or the superior marketing and industry dominance of competitors).
        DESQview comes to mind.

        By contrast almost all free software is chosen by end-users
        based on recommendations from other end-users.  It is produced
        by people whose only rewards are: access to their own tool
        to solve their own problems, the satisfaction of having lots
        of users, and some chance for fame and sincere admiration.
        They gain nothing by claiming more than they deliver (except
        more e-mail with more support questions).

        Luckily we, Linux and free software users, are blessed with
        alternatives.  These systemic problems are what I think we are
        really "free" of.

-- Jim





  __________________________________________________________________________


                     Copyright  1998, James T. Dennis
          Published in Issue 25 of the Linux Gazette February 1998
                                      


  __________________________________________________________________________



[ TABLE OF CONTENTS ] [ FRONT PAGE ]
Back 
Next 

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



  __________________________________________________________________________




           Review of "A Practical Guide to Linux" by Mark Sobell
                                      
                              By Bernard Doyle
                                      


  __________________________________________________________________________



Several months ago, with some trepidation and the assistance of a friend who is
somewhat more knowledgeable than myself about computer hardware, I took the
plunge and installed Linux on my Pentium PC.

Soon after, I downloaded a pile of assorted How-To's, FAQS and Tutorials from
the Internet to  start doing something useful with Linux. The downloaded
documentation was handy but I frequently had trouble finding answers to
important
questions. After a month I purchased 2 books - Running Linux by Welsh &
Kaufman and
A Practical Guide to Linux by Mark Sobell. Welsh & Kaufman's Book is a well
known,
highly regarded, authoritative book on Linux. It is fundamentally about how
to set
up the major Systems and Hardware and how they interact.

Sobell's book, by way of contrast, approaches Linux from a software perspective
.
There is little, if any, overlap between the two books, even when they are
talking
about the same thing. The two books effectively work opposite sides of the Linu
x
street. There is also a contrast in the styles of the two books. Welsh and
Kaufman
are somewhat "chatty" while Sobell basically tells it like it is with little
or no
opinion thrown in.

Although there is a chapter on System Administration, Sobell's book
concentrates on
showing how to use the Linux variants of the standard Unix software
packages. There
are chapters on  X-Windows, vi, emacs, Linux Internet and Networking
Software, bash
(2 chapters on this important subject), the TC Shell, the Z Shell and
Programming
Tools.

Learning the bash Shell by Cameron Newham and Bill Rosenblatt (published by
O'Reilly)
covers the use of bash in more detail than Sobell's book, but I suspect it
is a little
advanced for the beginner. Sobell's chapters on bash were the most
informative and useful
information that I have come across so far. Being something of a
scripting/batch
file afficianado the two chapters on bash provided just the information I
needed
to produce a host of useful custom scripts.

The Command Summary takes up about a third of the book and maintains the high
standards of the rest of the text. Sobell uses internal page references quite
freely. This often results in a lot of page turning. I assume this was done
to avoid
repetition of material, and given the vast amount of material that could be
included
in a book on Linux/Unix software this is a reasonable compromise as it
leaves more
room for additional material.

This is not a book for solving Linux hardware or installation problems. If
you are
looking for that sort of information then get Welsh and Kaufman's book, or
download
the relevant "How-Tos" (or both). This is the book to use if you want to do
learn how
to do useful things with the software. The book manages to cover almost all
the major
software topics, and it covers them well.

I do  have some quibbles with the book. The Table of Contents uses a
typeface that
is much too large, As a result it runs from page xvii to page xlvii. (That's
31 pages
for the Roman numerally challenged) Hopefully, the next edition will address
this
issue.

One notable Linux/Unix Utility not mentioned at all is Perl. A short 5-6 page
reference to it in the Linux Utility Program Section or an Appendix would
have been
nice. Summarising Perl in 5-6 pages is possibly a tall order, but I would have
liked some mention or reference to it.

Although the book gives a good rundown on accessing Linux Documentation and
Software
from the Internet, a Bibliography of Linux/Unix books would have been good.
"Running
Linux" does have a Bibliography, so if you have that book as well then I
guess you
have the information anyway (although it's a little out of date).

The book is an adaptation of Sobell's other Practical Guides to the Unix
System and
this shows, and it's not necessarily a bad thing either. However, given the
nature of
the Linux community, I doubt whether photographs of a mouse and keyboard are
necessary.
On the positive side, the book is professionally organized, indexed and
referenced. It
is substantially larger than the other Practical Guides to Unix by the same
author as
well.

In the light of the high quality of the book overall, all of the above
criticisms are
minor and easily overlooked. The book is far and away the best I have seen
on the
market for quickly and effectively using Linux software. If you have a copy
of A
Practical Guide to Linux and Running Linux along with a few appropriate
"How-Tos",
you should be able to get solutions to most of your Linux  questions as well as

productively use your system.



  __________________________________________________________________________


                      Copyright  1998, Bernard Doyle
           Published in Issue 25 of Linux Gazette, February 1998
                                      




  __________________________________________________________________________


[ TABLE OF CONTENTS ]
[ FRONT PAGE ]
Back 
Next 

  __________________________________________________________________________



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



  __________________________________________________________________________




                                Bourne/Bash:
                       Shell Programming Introduction
                                      
                              By Rick Dearman
                                      


  __________________________________________________________________________



Sooner or later every UNIX user has a use for a shell script. You may
just want to do a repetitive task easier, or you may want to add a bit
more kick to an existing program. An easy way to accomplish this is to
use a shell script. One of the first shell scripts I wanted was something
that would change a directory full of files which were all in capital letters
to lowercase. I did it with this script:

LCem.sh


1       #!/bin/sh



2



3       DIR=$1



4



5       for a in `ls $DIR`



6       do



7
fname=`echo $a | tr A-Z a-z`



8
mv $DIR/$a $DIR/$fname



9       done;



10      exit 0



11       #this script will output and error
if the file is already lowercase, and assumes argument is a directory


Line one tells the computer which shell to use, in this case it is "sh"
the bourne shell ( or this may be a link to the bash shell ). The combination
of the two symbols #! are special to the shell and indicates what shell
will run this script. It IS NOT IGNORED like other comment lines. Line
3 sets a variable called DIR to equal the first argument of the input.
(Arguments start at $0, which is the name of the shell script or in this
case LCem.sh ).

In line 5 we enter a control loop. In this case it is a for loop. Translated
into english this line means for every entry "a" that I get back from the
command `ls $DIR` I want to do something. The shell will replace the variable
name $DIR to whatever was typed on the command line for you. Line 6 starts
the loop.

Now in line seven we make use of the UNIX utilities available , `echo`
and `tr`.  So what we are doing is echoing whatever the current value
of $a is and piping it into tr which is short for translate. In this case
we are translating uppercase to lowercase, and setting a new variable called
fname to the result.

In line eight we move the file $DIR/$a, whatever it may be to $DIR/$fname.
Line nine tells the shell to go back and do all the other $a variables
until it is done. And finally line 10 we exit the script with an error
code of zero. Line eleven is a comment.

This script  wouldn't have been needed to change one or two file
names, but because I needed to change a couple of hundred it saved me lots
of typing.  To get this to run on your machine you would have to chmod
the file to be executable. Like this `chmod +x LCem.sh` .  Or you
could evoke the shell command directly and give it the name of your script
like this `sh LCem.sh`. Using the comment and exclamation mark combination
would tell the kernel what shell to evoke and is the normal way to do things.
But remember if you use the #! then the file itself needs to have execution
permissions.

It is only eleven lines but it shows us a lot about shell scripting.
We have learned how to get the computer to run the script using the #!
combination. This combination of a comment mark and a bang operator, or
as some people call it an exclamation mark, is used to start a shell script
without having to evoke the shell first.  We learned that a # is how
we can write a comment into our script and have them ignored when the script
is processed. We learned how to pass arguments to the script to get input
from the user, and  we know how to set a variable. We have glanced
at one of the many control structures we can use to control the functionality
of a script.

Don't worry if you didn't really get all of that. We shall now move
on to explaining some of the most common decision making / control structures.
The first one we want to look at is the `if` statement. In every programming
language we want to be able to change the flow of the program based on
various conditions. For example if a file is in this directory do one thing.
If it isn't do something else. The syntax for the if command is:

if expression then
    commands
fi

So if the expression is true the statements inside the if block are
executed. Lets look at a simple example of the if statement.

WhoMe.sh

1    #!/bin/sh
2
3    # set the variable ME to the first argument after
the command.
4    ME=$1
5
6    # grep through the passwd file discarding the output
and see if $ME is in the file
7    if  grep $ME /etc/passwd > /dev/null
8    then
9    # if $ME is in the file out put the following line
10        echo "You are a user"
11    fi


 Notice the extensive use of comments on lines 3, 6, and 9. You
should try to comment you scripts as much as possible because someone else
may need to look at it later. In six months you may not remember what you
were doing, so you might need the comments as well.

Using the if statement we can now correct some of the errors which would
occur in the lowercasing script. In LCem.sh the script will hang if the
user doesn't input a directory as an argument. To check for an empty string,
we would use the following syntax:

if [ ! $1 ]

This means if not $1. The two new things here are the use of the bang
operator, or exclamation mark as the symbol for NOT.  So lets add
this new knowledge to our program.
#!/bin/sh

1    if [ ! $1 ]
2    then
3    echo "Usage: `basename $0` directory_name"
4     exit 1
5    fi
6
7    DIR=$1
8
9       for a in `ls $DIR`
10    do
11           fname=`echo
$a | tr A-Z a-z`
12     mv $DIR/$a $DIR/$fname
13    done;

Now if the user types in the command but not the directory then the
script will exit with a message about the proper way to use it, and an
error code of one.

 But what if we really did want to change the name of a single
file? We have already got this command wouldn't it be nice if it could
cope. If we want to do that then we need to be able to test if the argument
is a file or directory. Here is a list of the file test operators.


CAPTION:





    Parameter




    Test





 -b file

 True is file is a block device



 -c file

 True if file is a character special file



 -d file

 True if the file is a directory



 -f file

 True if file is a ordinary file



 -r file

 True if file is readable by process



 -w file

 True if file is writeable by process



 -x file

 True if file is executable


There  are more operators but these are the most commonly used ones.
Now we can test to see if the user of our script has input a directory
or a file. so lets modify the program a bit more.

1    #!/bin/sh
2
3    if [ ! $1 ]
4    then
5     echo "Usage: `basename $0` directory_name"
6     exit 1
7    fi
8
9    if [ -d $1 ]
10    then
11     DIR="/$1"
12    fi
13
14    if [ -f $1 ]
15    then
16     DIR=""
17    fi
18
19    for a in `ls $DIR`
20    do
21        fname=`echo $a | tr A-Z
a-z`
22        mv $DIR$a $DIR$fname
23    done;

We inserted lines nine through seventeen to do our file/directory checks.
If it is a directory we set DIR to equal "/$1" if not we set it blank.
Notice we now put the directory slash in with the DIR variable and we've
modified line 22 so that there is no slash between $DIR and $a. This way
the paths are correct.

We still have a few problems with our script. One of them is that if
the file which is getting moved already exists then the scripts outputs
an error. What we want to do is check the file name before we attempt to
move it. Another thing is what if someone puts in more than two arguments?
We'll modify our script to accept more than one path or filename.

The first problem is easily corrected by using a simple string test
and an if statement like we have use earlier. The second problem is slightly
more difficult in that we need to know how many arguments the user has
input. To discover this we'll use a special shell variable which is already
supplied for us. It is the $# variable, this holds the number of arguments
present on the command line. Now what we want to do is loop through the
arguments until we reach the end. This time we'll use the While loop to
do our work. Finally we shall need to know how to compare integer values,
this is because we want to check the number of time we have gone through
the loop  to the number of arguments. There are special test options
for evaluating integers, they are as follows




 Test

 Action



 int1 -eq int2

 True if integer one is equal to integer two



 int1 -ge int2

 True if integer one is greater than or equal to integer two



 int1 -gt int2

 True if integer one is greater than integer two



 int1 -le int2

 True if integer one is less than or equal to integer two



 int1 -lt int2

 True if interger one is less then interger two.



 int1 -ne int2

 True if integer one is not equal to integer two




Using this new knowledge we'll modify our program.

1    #!/bin/sh
2
3    if [ ! $1 ]
4    then
5         echo "Usage: `basename
$0` directory_name"
6     exit 1
7    fi
8
9    while [ $# -ne 0  ]
10    do
11

if [ -d $1 ]
12

then
13

DIR="/$1"
14

fi
15
16

if [ -f $1 ]
17

then
18

DIR=""
19

fi
20
21

for a in `ls $DIR`
22

do
23

fname=`echo $a | tr A-Z a-z`
24

if [ $fname != $a ]
25

then
26


mv $DIR$a $DIR$fname
27

fi
28

done;
29
30

shift
31    done

What we've done here is to insert a while loop on line 9 which checks
to see if the arguments listing is equal to zero. This may seem like we
just created an infinite loop but the command on line 30 the shift saves
us. You see the shift command basically discards the command nearest the
command name. (LCem.sh) and replaces it with the one to the right. This
loop will succeed in discarding all the arguments eventually and then will
equal zero and exit our loop.

And finally note the if statement on line 24, this checks to see if the
file name is already lowercase and if so ignores it.

I hope you have enjoyed this brief introduction to Bourne / Bash programming.
I would encourage you to try some of these examples for yourself. In fact
if you want you could make this script much better by using a switch like
-l to lowercase and -u to uppercase and modifying the script to handle
it.


I take full responsibility for any errors or mistakes in the above documentatio
n.
Please send any comments or questions to rick@ricken.demon.co.uk

REFERENCES:

The UNIX programming environment
by Brian W. Kernighan & Rob Pike
Published by Prentice Hall

Inside UNIX
Published by New Riders



  __________________________________________________________________________


                       Copyright  1998, Rick Dearman
           Published in Issue 25 of Linux Gazette, February 1998
                                      




  __________________________________________________________________________


[ TABLE OF CONTENTS ]
[ FRONT PAGE ]
Back 
Next 
The Log file

   The log file contains a series of records, each one of which is a
   description of the results of running finger on the set of hosts. The
   size of each entry is minimized, since many entries will be gathered
   yet the log file should remain modest in size. The top of each entry
   contains the date and time the entry was gathered, which is important
   for gathering time and date based statistics. The log file entry below
   shows that it is 11 45 in the evening on 10/11/97, and that I am the
   only one logged in besides root. Root and I are using the computers
   ogaa and ogimaa. Also shown is that the computer nigig is down, since
   it is not listed at all.
   Date 97 10 11 23 45
       Host ogimaa 1
       Host bine 0
       Host gaag 0
       Host makwa 0
       Host mooz 0
       Host zagime 0
       Host ogaa 1
       Host euclid 0
       Host euler 0
       Host fermat 0
       User randy
       User root
       Total 2 users
       
  The Program
  
   The program is named fingersummarize, since its job is to summarize a
   set of results from the finger command. It is written in Perl, since
   Perl offers wonderful support for associative arrays (where the usage
   stats are stored) and working with strings (from the log file and the
   output of finger).
   
   There are two basic tasks of fingersummarize. These functions could
   easily be done with two separate programs, but I find it easier to
   have one program with options rather than two executables.
     * It should gather finger results, and store them in a log file.
       (fingersummarize -probe)
     * It should read the log file and produce the usage statistics.
       (fingersummarize -print)
       
   Fingersummarize can be installed easily. Just follow the instructions
   below.
    1. Copy the executable to someplace on your system, such as
       /usr/local/bin.
             cp /tmp/fingersummarize /usr/local/bin; chmod 755
       /usr/local/bin/fingersummarize
    2. Edit the top of the executable so that fingersummarize will probe
       your machines instead of mine. This should be very easy to do.
                     vi /usr/local/bin/fingersummarize
    3. Make a blank log file and put that log file somewhere. Often
       /var/log/fingersummarize is a reasonable place.
             echo > /var/log/fingersummarize; chmod 600
       /var/log/fingersummarize
    4. Install a line in cron so that fingersummarize will run in probe
       mode at regular intervals. Below is the line I use, which runs
       fingersummarize every fifteen minutes for every hour.
                      0,15,30,45 * * * * /usr/local/bin/fingersummarize
       -probe >> /var/log/fingersummarizelog
       
   That's it. Now, whenever you want to see a current summary of the
   usage data, just run
                fingersummarize -print < /var/log/fingersummarizelog
   
  Example Output
  
   Here is some sample output. A current example for my lab can he had at
   http://euclid.nmu.edu/fingerprobe.txt . The executable itself can be
   had at http://euclid.nmu.edu/~randy/Papers/fingerprobe . Note that the
   total number of hours computers were in use (12.8 hours/week) exceeds
   the total number of hours that people were using computers
   (10.8hours/week). This just means there were times that some person
   was using more than one computer at a time. Also, note that the useage
   spikes at 10am, since a particular class sometimes meets in the lab at
   10am.
   Stats by user
   User    Total   Usage   Hours
   Name    Observ. Percent /Day
   abasosh 47      4       0.42
   agdgdfg 54      4.6     0.49
   arnelso 7       0.6     0.06
   bparton 2       0.1     0.01
   bob     28      2.4     0.25
   brandk  101     8.7     0.92
   btsumda 37      3.2     0.33
   chgijs  1       0       0
   clntudp 1       0       0
   daepke  2       0.1     0.01
   dan     93      8       0.84
   dfliter 17      1.4     0.15
   gclas   43      3.7     0.39
   goofy   15      1.3     0.13
   gypsy   2       0.1     0.01
   jadsjhf 2       0.1     0.01
   jbsdjh  2       0.1     0.01
   jdefgg  2       0.1     0.01
   jeffpat 6       0.5     0.05
   jpaulin 7       0.6     0.06
   jstyle  4       0.3     0.03
   jstamo  17      1.4     0.15
   jwilpin 37      3.2     0.33
   jwilpou 79      6.8     0.72
   kangol  39      3.3     0.35
   matt    58      5       0.52
   mhgihjj 8       0.6     0.07
   randy   187     16.2    1.7
   rbush   2       0.1     0.01
   root    22      1.9     0.2
   rpijj   2       0.1     0.01
   sbeyne  17      1.4     0.15
   sdajani 1       0       0
   sdalma  28      2.4     0.25
   ship    1       0       0
   skinny  48      4.1     0.43
   stacey  2       0.1     0.01
   tbutler 35      3       0.31
   tmarsha 5       0.4     0.04
   tpauls  34      2.9     0.31
   vladami 30      2.6     0.27
   xetroni 26      2.2     0.23
   ---------------------------------
   Overall 1151            10.24
   
   Stats by Host
   Host    Total   Percent Percent Hours
   Name    Observ. Up       Busy   /Day
   bine    131     100%    4.9%    1.194
   euclid  152     100%    5.7%    1.386
   euler   7       89.3%   0.2%    0.068
   fermat  52      100%    2.1%    0.506
   gaag    202     36.5%   7.6%    1.842
   maang   118     100%    4.4%    1.076
   makwa   77      100%    2.9%    0.702
   mooz    92      100%    3.4%    0.839
   nigig   81      100%    3%      0.738
   ogaa    48      100%    1.8%    0.437
   ogimaa  374     100%    14.2%   3.411
   waabooz 28      100%    1%      0.255
   zagime  38      100%    1.4%    0.346
   ------------------------
   Overall 2551     94.2%  4.1%    12.807 Stats by the Week
   Week            User
   Starting        Hours
   97 10 04        74.5705816481128
   97 09 28        55.9130434782609
   97 09 21        64.7
   97 09 14        113.023956442831
   
   Last Two Weeks
   Day      User
            Hours
   97 10 11 7.05882352941176
   97 10 10 16.75
   97 10 09 4.25
   97 10 08 1.5
   97 10 07 5.25
   97 10 06 8.25
   97 10 05 13.8947368421053
   97 10 04 17.6170212765957
   97 10 03 9.91304347826087
   97 10 02 0.75
   97 10 01 1
   97 09 31 12
   97 09 30 9.75
   97 09 29 12.75
   
   Stats by the Hour
   Hour    Avg Users
   00      0.151
   01      0.163
   02      0.151
   03      0.053
   04      0.036
   06      0.027
   07      0.055
   08      0.175
   09      0.75
   10      1.398
   11      1.171
   12      0.972
   13      0.814
   14      0.775
   15      0.778
   16      0.607
   17      0.526
   18      0.459
   19      0.455
   20      0.232
   21      0.321
   22      0.339
   23      0.196
     _________________________________________________________________
   
                      Copyright  1998, Randy Appleton
           Published in Issue 25 of Linux Gazette, February 1998
     _________________________________________________________________
   
   [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
     _________________________________________________________________
   
    "Linux Gazette...making Linux just a little more fun!"
     _________________________________________________________________
   
   
   Welcome to the Graphics Muse
   
    Set your browser as wide as you'd like now.  I've fixed the Muse to
                    expand to fill the aviailable space!
                                      
                                1998 by mjh
                                      
   
   ______________________________________________________________________
   
   Button Bar 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
       
     W elcome to the Graphics Muse! 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.
   
            [Graphics Mews][WebWonderings][Musings] [Resources]
                                      
   
   T his column is dedicated to the use, creation, distribution, and
   discussion of computer graphics tools for Linux systems.
   
   The past two months have been quite busy for me.  First, I moved from
   Denver to Dallas.  Yes - on purpose.  I grew up in Texas and have many
   friends here.  I loved Colorado - its a beautiful state - but I wasn't
   much of a cold weather fan and winters there could get chilly.  More
   importantly, I missed my friends.  Hey, geeks need friends too.
   [INLINE]
      So I'm back in Dallas now.  The move went well up until I started
   to set my computers back up.  First, and before I got the other
   systems unpacked, I blew the monitor on my laptop (aka "kepler").
   I have no idea what happened.  Its just dead.  Sigh.  Thats now an
   $1800 doorstop unless I can get NEC to fix it for a reasonable price.
   Suprisingly, I wasn't put off by this.  I started to get my main
   systems unpacked.  The first thing I did was to bring up my primary
   system - "feynman", the one I do all my real work on.  I plugged it
   in, turned it on.  It sprang to life just as always.  Then, 15 minutes
   later - power spike.  You see, this is a brand new apartment complex.
   No one had ever lived here before.  Apparently no one had ever plugged
   anything in here either.  That burnt plastic smell you've noticed was
   my Cyrix CPU and PCI chipset waving bye bye.  $400 more.  I really
   need a cheaper hobby.  Anyway, things are finally back up and
   running.  More imporantly, its all stable.  Through it all my Linux OS
   has performed fine.  Its the hardware that keeps kicking up dirt.  So
   much for commodity items.
      Once life settled back to normal I got back down to business.
   I had spent about a month away from serious nerd time during the move
   and was feeling pretty refreshed.  Translated that means I should have
   gotten my writing responsibilities done with immediately. Instead
   I started playing around with the PalmPilot my brother gave me for
   Christmas.  It wasn't a new one - I think he had it for about a year -
   but its in perfect condition.  He knew I'd found some info on using it
   with Linux previously and had mentioned that if I were to get a
   PDA (Personal Digital Assistant), it would be the Pilot.  Well, I got
   one.  And its cool (no, not "kewl" - cool, as in "I'm over 30 now").
   And the tools available for Unix systems and the Pilot work great.  So
   great I wrote an article about it.  Keep an eye out in a future LJ for
   it.  Its cool.
      I also took on another programming task.  I decided, for no
   particular reason I can think of, to begin scanning the bowels of Gtk
   and to port my XPostitPlus (aka computer sticky notes for the
   3M impaired) to a new widget set.  I really enjoyed it, mostly because
   the port was very straight forward.  Gtk is quite easy to use.  More
   so than Motif, although Gtk still has a way to go to be as feature
   rich (mostly its missing simple convenience tools - or perhaps they
   are there and I just missed them).  Anyway, I spent way to much time
   on that.  Planning new features, testing some neat ideas.  Way too
   long.
      Which leads me to this months column.  Its nearly midnight on
   January 29th.  I promised I would upload this issue by tonight.  And I
   still wanted to do a section on XeoMenu, a Java-based menuing system
   from JavaSoft.  Guess thats not going to happen.  On the bright side -
   I know what I can do for the Web Wonderings section next month.
       In this months column I'll be covering that nifty logo machine,
   Font3D, along with its side kick XFont3D.  Both are terrific tools.
   XFont3D is a fairly decent front end to Font3D which you'll want to
   look at if you get seriously involved with creating 3D logos.  For
   this month, you'll want to view the Muse in something wider than 640
   pixels.  Sorry, but to get the images in required a little extra
   width.
       Hopefully your holidays (if you had any) were good and you're
   ready to get back into the fun stuff again.  I know I am.  Hey, I even
   got approached about possibly being a series editor for a set of
   Linux-related books.  Gee, I wonder what topic I should emphasize....
   
   Graphics Mews       Disclaimer: 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.
   
   indent
   
Play Video CDs with MpegTV Player

   MpegTV is happy to announce that is it now possible to play Video-CD's
   (VCD's) on Linux-x86 systems with MpegTV Player 1.0 and xreadvcd.
   
   MpegTV Player 1.0 is shareware (US$ 10) for personnal and non profit
   use only. Commercial licenses are required for commercial or
   governmental use.  xreadvcd is a free utility developped by Ales
   Makarov (source code available).
   
   For information and to download MpegTV Player and xreadvcd:
   http://www.mpegtv.com/download.html
   
   To receive announcement of new MpegTV product releases you can
   subscribe to our mailing list:
   http://www.mpegtv.com/mailing.html
   
   Contact information: mailto:info@mpegtv.com
   MpegTV website:      http://www.mpegtv.com indent
   
Xi Graphics announes Virge GX/2 support

   Xi Graphics, Inc. announces support for the Virge GX/2 in their
   Accelerated-X Display Server v4.1 for Linux, FreeBSD, BSD/OS, Sun
   Solaris/86, Interactive, Unixware, and SCO OpenServer V.  XiG has full
   2D acceleration in all color depths and resolutions.  XiG also
   supports hardware gamma correction.
   
   For current users of Accelerated-X Display Server v4.1 there is now an
   update_4100.016 on their FTP site which contains new support for the
   Virge GX/2 (AGP & PCI) video cards, this update includes specific
   support for the Number9 Reality 334 video card. The update also
   contains enhanced support for the previous Virge GX and DX video
   cards.
   
   For a demo of the Accelerated-X Display Server v4.1 download the demo
   and these updates:
   
   ftp://ftp.xig.com/pub/update/
      update_4100.016.tar.gz
   and
   ftp://ftp.xig.com/pub/update/
      update_4100.016.txt
   are the two files required to get this support.  The
   update_4100.016.txt file has installation details.
   
   If you have a graphic card with troubled support contact XiG. They may
   have a server that fixes your problems.
   Xi Graphics, Inc.  800.946.7433  303.298.7478
   [INLINE] [INLINE]
   
TrueType to Postscript font converter

   Andrew Weeks has written a program to convert True Type fonts to
   Postscript, so Linux users can use the TT fonts that come with
   Windows.
   
   See http://www.bath.ac.uk/~ccsaw/fonts/
   Comments/Problems to:
   Andrew Weeks
   Bath Information & Data Services
   University of Bath
   email: A.Weeks@bath.ac.uk
   
   
OpenGL Widget for Gtk

   gtkGL version 0.2 is a function/object/widget set to use OpenGL easily
   with GTK. gtkGL includes gdkGL; GLX wrapper.
   
   List of current archives appears to be at
   http://www.sakuranet.or.jp/~aozasa/shige/
      doc/comp/gtk/gtkGL/files-en.html.
   The current version appears to be
   http://www.sakuranet.or.jp/~aozasa/shige/
      dist/gtkGL-0.3.tar.gz
   ______________________________________________________________________
   
MindsEye mailing list archives

   http://mailarchive.luna.nl/mindseye/
   
   [INLINE]
   
Freedom VR 2, a Quicktime VR viewer

   Paul A. Houle announces the release of Freedom VR 2,  a Java applet
   that works like a Quicktime VR object movie.  Freedom VR 2 is a
   solution for photographic VR that can be viewed on any platform for a
   Java  enabled web-browser,  including Linux as well as other forms of
   Unix, Mac OS,  OS/2,  Windows and more.  Because it's based on open
   standards  such as .gif and .jpg,  you can create Freedom VR content
   on any platform as well.  Freedom VR 2 is released under the GNU
   public license so it's free and source code is available.
   
   Freedom VR 2 adds many features to Freedom VR 1 -- it's now possible
   to embed hyperlinks in your VR scenes as well as to make scenes with
   two dimensional navigation -- where you can drag the object up and
   down as well as left and right.  Users can now navigate via the
   keyboard,  and Freedom VR 2 can now be controlled by Javascript.  In
   addition,  Freedom VR 2 has some improvements in cross-platform
   performance.
   
   Freedom VR 2 is easy to use;  many people have already made great
   content with Freedom VR 1 -- to encourage people to use Freedom VR 2,
   we're sponsoring a contest.  We're giving away a free virtual pet to
   the person who submits the best VR model before December 15, 1997.
   Take a look at http://www.honeylocust.com/vr/
   
   Editor's Note:  Ok, so I didn't get this out in time for the contest.
   My apologies.
   
   
   [INLINE]
   
Brother HL 720 Laser Printer driver for Ghostscript

   P.O. Gaillard wrote a Ghostscript driver for the Brother HL 720 laser
   printer. He submitted it to Aladdin Enterprises and it should be
   included in upcoming versions of Ghostscript (i.e. the ones coming
   AFTER 5.10).
   
   This driver is completely free from copyrights by Brother or Microsoft
   (the printer is not a true WPS printer, which is why he could obtain
   documentation). You should note that such documentation is not
   available for Oki and Canon (LBP 660) printers which prevents writing
   drivers for them.
   
   Some facts about the driver and the printer
     = The printer is a 600dpi, 6 ppm , $300 printer
     = With ghostscript you can print at approximately 5 ppm
     = It took less than 50 hours to develop the driver
   
   People (especially maintainers of Ghostscript packages for commercial
   distributions) who want to use the driver with gs3.33 can contact Mr.
   Gaillard and he will send them a patch. (The patch has already been
   posted in fr.comp.os.linux a few months ago). Maybe normal users can
   wait for Debian and Red Hat packages.
   
   P.O. Gaillard
   
   Ed. Note:  this was an old announcment from comp.os.linux.announce. I
   don't have any other contact information except for the email
   address.
   ______________________________________________________________________
   
VARKON V1.15C

   VARKON is a high level development tool for parametric CAD and
   engineering applications developed by Microform, Sweden. Version 1.15C
   of the free version for Linux is now available for download at:
   http://www.microform.se
   
   For details on what's new in 1.15C check:
   http://www.microform.se/userinfo.htm
   
   Johan Kjellander, Microform AB
   http://www.microform.se (VARKON/English) [INLINE]
   
Awethor - Java Based authoring tool

   CandleWeb AS is proud to announce a new Java based authoring tool
   called Awethor.  Awethor strives to meet the needs of web authors when
   it comes to designing and creating graphics for the Web. As the
   Awethor system uses vector graphics rather than bitmaps, users can
   create and publish large scale drawings and animations in small files,
   thereby avoiding the large download times traditionally associated
   with large web graphics and animations.
   
   The output of Awethor can be run in any browser that supports the Java
   language. Awethor typically outputs two files :
    1. A file containing the presentation in the QDV (Quick and Dirty
       Vector graphics) format. QDV is optimized for the Web, and
       graphics in this format have a fraction of the size compared to
       similar graphics in GIF or JPEG.
       
    1. An HTML-file example with the correct parameters for incorporating
       the QDV graphics into regular HTML-files. In addition, a standard
       Java applet driver for QDV is used. The size of the applet is
       about 13K, so it is loaded quickly (and automatically) and you may
       reuse the same applet on multiple QDV files.
       
   Here is a short summary of the features of Awethor :
     * Creates animations and vector graphics that scales for use on the
       web.
     * Drawing of rectangles, arcs, lines, polygons, splines, images and
       text are suppported.
     * Full featured WYSIWYG vector based drawing tool.
     * Integrated HTML based help system.
       
   Awethor may be downloaded from the CandelWeb web site :
   http://www.candleweb.no/
   
   [INLINE]
   
FREEdraft - 2D drafting system for Linux/Unix/X.

   FREEdraft is under development. It is not yet in any sense ready for
   production work. It may be useful if you are interested in constraint
   syntax modeling, or are just the curious type.  Currently FREEdraft
   consists of a viewer, a dynamically loadable grammer/menu/command
   system, some geometry types and a library of 2D plane and cad
   mathematics.
   
   FREEdraft is licensed under the GPL.  Feedback is appreciated.  The
   source code and a screen shot is available from
   http://www2.netcom.com/~iamcliff/techno.html
   
   
   [INLINE]
   
Announcing The WebMagick Image Web Generator Version 1.39

   New in this release: a 100% JavaScript interface!
   
   WebMagick is a package which makes putting images on the Web as easy
   as magick.  You want WebMagick if you:
    1. Have access to a Unix system
    2. Have a large collection of images you want to put on the Web
    3. Are tired of editing page after page of HTML by hand
    4. Want to generate sophisticated pages to showcase your images
    5. Like its interactive JavaScript based interface
    6. Are not afraid of installing sophisticated software packages
    7. Want to use well-documented software (40 page manual!)
    8. Support free software
       
   After 12 months of development, WebMagick is chock-full of features.
   WebMagick recurses through directory trees, building HTML pages,
   imagemap files, and client-side/server-side maps to allow the user to
   navigate through collections of thumbnail images (somewhat similar to
   xv's Visual Schnauzer) and select the image to view with a mouse
   click. In fact, WebMagick supports xv's thumbnail cache format so it
   can be used in conjunction with xv.
   
   The primary focus of WebMagick is performance. Image thumbnails are
   reduced and composed into a single image to reduce client accesses,
   reducing server load and improving client performance. Everything is
   either pre-computed or computed in the browser.
   
   Users with JavaScript-capable browsers (Netscape 3 or 4 & Internet
   Explorer 4) enjoy an interface that minimizes accesses to the server.
   Since HTML generation is done in the brower, navigation is much faster
   and more interactive.
   
   During operation WebMagick employs innovative caching and
   work-avoidance techniques to make successive executions much faster.
   WebMagick has been successfully executed on directory trees containing
   hundreds of directories and thousands of images ranging from tiny
   icons to large JPEGs or PDF files.
   
   Here is a small sampling of the many image formats that WebMagick
   supports (48 in all):
     * Acrobat (PDF)
     * Encapsulated Postscript (EPS)
     * Fig (Xfig format)
     * GIF (including animations)
     * JPEG
     * MPEG
     * PNG
     * Photo CD
     * Postscript (PS)
     * TIFF
     * Windows Bitmap image (BMP)
       
   WebMagick is written in PERL and requires the ImageMagick (3.8.4 or
   later) and PerlMagick (1.0.3 or later) packages as well as a recent
   version of PERL 5 (5.003 or later). Installation instructions are
   provided in the WebMagick distribution.
   
   Obtain WebMagick from the WebMagick page at
   http://www.cyberramp.net/~bfriesen/webmagick/dist/. WebMagick
   can also be obtained from the ImageMagick distribution site (or one of
   its mirrors) at ftp://ftp.wizards.dupont.com/pub/ImageMagick/perl/.
   
   [INLINE]
   
    Did You Know? [INLINE]
    
   ...the POV-Ray Texture Library 3.0 has its own domain now?  Check
   outhttp://texlib.povray.org/.
   
    Q and A
    
   Q:  Is the Gimp licensed under the GPL or the LGPL?  Does it make a
   difference?
   
   A:  Actually, I'm not completely sure about the legal differences, but
   I'll tell you what I know and how I interpret it.  First, the Gimp
   core program is licensed under GPL.  The Plug-Ins (as of the 0.99.18
   release) are licensed via the Gimp API library they use which is
   called libgimp.  This library is licensed under the LPGL.  GPL - the
   GNU General Public LIcense - provides that the program may be modified
   and distributed by anyone as long as the changes are distributed with
   the source.  This means, I believe, that you can sell the Gimp if you
   want but that you need to distribute it with the source code,
   including any changes you may have made to the program.  It also means
   that the code in the Gimp's core cannot be incorporated into
   proprietary programs - those programs would have to fall under the GPL
   if they used any of the Gimp's source code directly.
   
   The Plug-Ins differ from this in that they can be commercial
   applications, distributable without source code.  They link against
   libgimp (and the Gtk libraries, which are also LGPL'd) but do not use
   any of the core Gimp code directly.  The LGPL  appears to cover the
   libraries distribution rights, but allows proprietary programs to link
   against the library with certain restrictions.
   
   At least thats how I interpreted it.
   [INLINE]
   
Reader Mail

   hixson@frozenwave.com wrote (way back in November):
   I've recently written 3 Perl scripts which help to distribute the task
       of rendering with povray between several cpu's.  One script is for
       SMP (multiple processor) machines.  It will break an image into
       halves and start a separate process for each.  This utilizes both
       CPU's in a dual proc machine, and nearly halves the rendering
       time.  The other two scripts work together to utilize multiple
       machines on a network.  The server script tells each client script
       how much of an image to render (also sending the .pov file and any
       necessary files to each client).
          These scripts were created using Perl 5.004, Linux 2.0.32, and
       POVRay 3.0. I'd be honored if you would like to include a link
       from your excellent graphics site to my page at
       http://www.frozenwave.com/~hixson/projects.html.
       
   'Muse:  Not quite on my LGH pages, but its a start.  I'll get it added
   to my LGH pages next time I do an update (whenever I get a chance to
   do that).
   
   In going through some old email, I found the following discussion
   which took place in early November 1997 regarding the use of RIB
   shaders with BRMT.  Being a little short on real subject matter this
   month, I thought I'd share it with you.
   
   Ed Holzwarth (eholzwar@MIT.EDU) initially wrote:
   I'm trying to render some hypertextures using BMRT... To do this I
       need to be able to sample lights with illuminance() at an
       arbitrary point inside an object's volume.  Seems like the best
       thing to do that with would be an Interior volume shader, but I
       can't get it to work.  Here is some code that I wrote just to test
       out volume shaders. From the debugging printf(...)'s, I can tell
       that the Interior shader is being called, but it seems to have no
       effect on the image.  Any ideas would be greatly appreciated!
       Would love to see topics like this convered in Graphics Muse!
       Partial RIB code
       AttributeBegin
          Attribute "identifier" "name" [ "ball" ]
          Interior "shaders/hsin"
          Surface "shaders/trans"
          Translate 2 0 6
          Sphere 3 -3 3 360
       AttributeEnd
       .sl code
       volume hsin ()
       {
          if (sin (xcomp(P)) > 0)
          {
            Oi = .5;
            Ci = color (0,.8,0);
            printf(".");
          }
          else
          {
             Oi = 0.8;
             Ci = color (.5,0,0);
             printf("!");
          }
       }
       /* transparent shader */
       surface
       trans ()
       {
          Oi = .2;
          trace(P,normalize(I));
          printf("After : Oi = %c, Ci = %c\n",Oi,Ci);
       }
       
       
   'Muse:  (Note - I'd love to get back to BMRT.  I just have to learn to
   stop taking on so many projects at once.)
   
   [INLINE] Hmmm.  I haven't been playing with BMRT for some time now and
   was no expert to begin with, however I think the problem might be
   fairly straight forward.  I played with what you sent me by shoving it
   in a standard RIB that I use to test objects and shaders.  I played
   with lots of settings in the RIB for colors and opacity.  No real help
   there.  Then I tried mucking with the two shaders.  Not much luck
   there.
   
   So I thought about what the volume shader really does.  A volume
   shader does not have a geometric primitive associated with it.  It is
   bound to a  surface.  So thinking about this and looking at how the
   surface was defined via the RIB and the surface shader I thought "Gee,
   maybe the surface isn't of a type that can allow light to pass through
   it very well, even if we've set the opacity low".  So I swapped your
   surface shader with the BMGlass shader I got from a web site (or maybe
   it was from Larry Gritz's pages, I've forgotten now - the shader was
   written by Larry).
   
   Success.  The effects of the volume shader are properly displayed
   using the glass surface shader.  Or lets say the colors you'd expect
   from the volume shaders impact are obvious and distinct.  The old way,
   all I got was various forms of reflection from the surface.  Now I get
   the surface mixed with the volume shader effects.
   
   I don't know if this is the correct solution to your problem, but I
   think its a start.  The volume shaders effects are tightly bound to
   how the light enters that volume, and that is determined by the
   characteristics of the surface through which the light must travel.
   Muck with the surface characteristics (or use a clear glass shader if
   you don't want the surface to play a role in the overall effect)
   first, then fiddle with the volume shader.
   
   Ed wrote back:
   Hmm. That is interesting.  Actually, yesterday I got the code to work
       by changing the order of things in the .rib file.  Also, the
       although the volume shader doesn't know about Os and Cs, Oi and Ci
       are already set to what the Surface shader has calculated for the
       surface hit points.  Also, the surface shader gets called twice,
       and then the Interior shader is called, and the length of I in the
       volume shader is the length of the ray inside the volume.  So
       anyway, here is a revised version of what I sent you previously;
       it now works as expected, but if you change the order of things in
       the .rib  file it seems not to work.  In the shader below, the
       color and opacity are based on the length of I, so the sphere
       looks 3D.  If you replace the interior shader below with, for
       example, the noisysmoke shader which comes with BMRT, you get a
       smoky sphere.  Pretty neat!
       Partial RIB code
       AttributeBegin
          Attribute "identifier" "name" [ "ball" ]
          Surface "shaders/trans"
          Interior "shaders/hsin"
          Opacity [0 0 0]
          Translate 1.9 0 6
          SolidBegin "primitive"
             Sphere 3 -3 3 360
          SolidEnd
       AttributeEnd
       Shader code
       /* transparent shader */
       surface
       trans ()
       {
          Ci = trace(P,I);
       }
       volume hsin ()
       {
          color Cv, Ov;
          if (sin (2*xcomp(P)) > 0)
             Cv = color (0,length(I)/8,0);
          else
             Cv = 0;
          Ov = length(I)/8;
          /* Ci & Oi are the color (premultiplied by opacity) and opacity
       of
            *the background element.
            * Now Cv is the light contributed by the volume itself, and
       Ov is the
            * opacity of the volume, i.e. (1-Ov)*Ci is the light from the
       background
            * which makes it through the volume.
           */
           Ci = Cv + (1-Ov)*Ci;
           Oi = Ov + (1-Ov)*Oi;
       
   'Muse:  Neat indeed!
   
   And another from the really old email category:
   
   Rob Hartley <rhartley@aei.ca or robert.hartley@pwc.ca> wrote:
   Bonjour from Montreal!
       
   'Muse:  ...and howdy from Texas!
   We are expecting a foot or more of snow today, so I decided to snuggle
       up to LG this morning until the roads are cleared.
       
   'Muse:  Snow measured in anything but millimeters is why I left
   Colorado.  Beautiful state, but I lack the requisite tolerance for
   frigid winters.
   I wrote to you a while ago mentioning the availability of OpenInventor
       (OIV) for Linux from Template Graphics Software
       (http://www.tgs.com).  So far, it seems alright, but there are
       still a few things that I cannot get working at home that work
       just fine on my SGI at the office.  I have the book "The Inventor
       Mentor" which took a week for special order, but it was worth the
       wait.
       The problem with OIV is that it costs nearly a thousand dollars
       U.S.!  A bit much when I consider that I can get a whole new Linux
       box for that much, or for the price of a new souped up PC and OIV,
       we can get a second-hand SGI workstation which comes with Inventor
       pre-installed.
       So I scrounged the 'net a bit and found Links to the 'Apprentice
       Project' and 'Pryan'  which runs under the QT GUI library.  Both
       of these packages, available in source form, will read Inventor
       files, which is really nice, because Inventor files are/were the
       basis for the VRML 1.0 file definition.  This I find particularly
       handy for developing applications at work and at home.  At work we
       have a mix of SGI, AIX, HP, and Sun workstations pumped up and
       running Catia for our design group (we build gas turbine engines
       for jets, helicopters and commuter aircraft.)
       Which brings me to why I am writing:  In the Linux Gazette I
       noticed a query about: "...PC software product -- an interactive
       educational system -- what PC graphics package is "state of the
       art" for Linux or Windows?"  If I were tasked with developing an
       interactive 3D system that had to be run on Linux, Win'95/NT and a
       large variety of Unixen (Unixes, Unicses?), I  would be tempted to
       look further into the following:
       Open Inventor
        Solid, easy to use, multiplatform, but costly ( developer ~$1000,
            runtime starts at ~$75 (I think), and decreases with volume)
            http://www.tgs.com
       The Apprentice project (Inventor clone)
        Source is available from this link:
            http://users.deltanet.com/~powerg/Apprentice/
       Pryan (Inventor clone, requires Qt GUI listed below)
        Free software, source code distribution,
            http://www.troll.no/opengl/
       Qt
        Free software (commercial license also, but same code), source
            code distribution - http://www.troll.no
       
   Also note that most of the Addison Wesley OpenGL programming books,
       including:
        The Inventor Mentor
            Open GL Programming for the X Window System  (which covers
            GLUT)
            Open GL Programming Guide
            Open GL Reference Guide
       (and all the 'X' books, including Motif) are good references to
       have around, but they are also available in electronic format, in
       postscript PDF and hypertext format.  I would guess we have heard
       little of them because they are so big.  I know they exist because
       I have and use them online and on-paper.  If  needed, they would
       probably all fit onto a Zip disk.
       
   'Muse:  I'm not certain its legal to redistribute those texts, but it
   is nice to know they are available in electronic format if desired.
   I would love to help out in any way I can.  Keep up the great work,
       
   'Muse:  You already have!  Thanks for all this wonderful information!
   PS:  I can see a diversification of the realms of computer graphics
       between 2D and 3D.  Have you ever considered a 3D Graphics Muse?
       It is an exciting area that is really growing and I would enjoy
       seeing more attention paid to it.
       
   'Muse:  Its not a bad idea and there certainly is enough material to
   keep it going.  The only problem is that I don't have the time to
   split between the two subject areas (and a job, and other writing
   duties, and ...).  Of course, if any readers would like to do a write
   up on either and have it included with the Muse feel free to contact
   me.  You will, of course, get full credit for your work.  The Muse is
   just another place for graphics fans to gather.
   ______________________________________________________________________
   
   [INLINE]
   XeoMenu 1.1 from JavaSoft should have been here.  I just
   procrastinated.  If you want to get a head start on it, take a look at
   http://java.sun.com:81/share/classes/menu/source/source.html.  Happy
   wonderings!
   ______________________________________________________________________
   
   
   Musings
   indent
   
Font3D and XFont3D

      One of the problems with using 3D graphics for logos is the lack of
   good model data for the fonts.  A quick scan of the various model
   banks, such as Viewpoint Datalabs Avalon archives or 3DSite, finds
   very few canned models of fonts.  Besides, do you really want to hang
   on to a complete set of letters in a given font as model data?  After
   all, how often will you be using X, Q or Z?  (Of course, cyberworld
   artists probably use these all the time, but thats another story).
   
      Fortunately, this problem is easily solved using Todd Prater's
   Font3D utiltity.  Font3D is a tool for converting text strings using a
   given font into model data which can be read by a variety of modelling
   programs and rendering utilities.  Output formats include support for
   POV-Ray (both 2.x and 3.x formats), Raidance, Vivid, AutoCad DXF,
   Renderman RIB, and RAW Triangles.  The model data can be generated
   using a healthy set of Font3D command options.  Features such as face
   textures, beveling of both front and back faces, length of face and
   side cuts for beveling, and object positioning are provided.  Font3D
   supports both Macintosh and MSWindows TrueType font files.
   
      Font3D is, I believe, shareware.  The register.txt file states it
   runs for $10US, although it doesn't state explicitly that you need to
   register.  Since the files in the latest version, 1.60, are dated with
   a January 1996 date, I suspect that either no new work has been done
   on Font3D in some time or only registered users are getting updates.
   Then again, once you've seen the breadth of command options avialable,
   you might wonder what new features could be added.
   
      You can fetch the C++ source for Font3D from its primary archives
   at  http://www-personal.ksu.edu/~squid/ font3d.html.  You can also
   fetch a slightly older version from the POV-Ray archives at
   ftp://ftp.povray.org/pub/poray/utilities.  This latter version is th
   1.51 version.  I'm not certain why, after all this time, the 1.60
   version has not been added to the POV-Ray archives.  Also note that
   the 1.51 release includes a large DOS and OS/2 binaries in the zip
   file, along with the C++ source.  The 1.60 release broke out the DOS
   and OS/2 binaries and includes only the source.
   
      The source for 1.60 comes in a zip file.  If, like me, you are
   unfamiliar with C++, don't worry.  The Makefile provided builds the
   source without modification.  There really isn't all that much to the
   source, which makes dealing with the build all that much simpler.  The
   Makefile assumes you have GCC/G++ installed and in your path.  For
   Linux users this is pretty much a given, especially if you've
   installed from one of the well known Linux distributions (Red Hat,
   Debian, SuSE, Slackware, etc.).  Basically, just follow the
   installation instructions for Unix systems that can be found in the
   font3d.txt file, or if you prefer, in the font3d.ps document.
   
   The code appears quite stable, producing usable code for both POV and
   RIB (via BMRT) as well as DXF and RAW files that were parsable by the
   latest version of the AC3D modeller.
   
      Font3D processes a specified string using a specified font by
   parsing a set of commands.  These commands can be specified either on
   the command line or in a configuration file.  Command options fall
   into 8 basic categories:
   
   
                            Categories Commands
                         Fonts font, font-path, map
    Visibility faces, sides, bevels, front-face, back-face, front-bevel,
                                 back-bevel
       Texturing texture, face-texture, side-texture, bevel-texture,
        front-face-texture, back-face-texture, front-bevel-texture,
                             back-bevel-texture
       Beveling bevel-type, cut, face-cut, side-cut, front-face-cut,
                front-side-cut, back-face-cut, back-side-cut
        Object char, code, depth, resolution, string, triangle type
         Output coordinate-system, constants, format, name, output,
                           output-path, precision
                        Positioning xpos, ypos, zpos
                       Miscellaneous config, verbose
                                      
   A config file can be used to specify commands.  The config command can
   be used to specify the name of the config file or you can set the
   FONT3D_DEFAULT_CONFIG environment variable:
   
   For bash/ksh/sh users:
   FONT3D_DEFAULT_CONFIG=<path>/<config_file_name>
       export FONT3D_DEFAULT_CONFIG
       
   For csh users:
   setenv FONT3D_DEFAULT_CONFIG <path>/<config_file_name>
       
   If a path is not specified, the default config file (font3d.def) will
   be searched for in the same directory from which you started Font3D.
   Note that the FONT3D_DEFAULT_CONFIG variable specifies the path and
   file name, not just the path, to the config file.
   
      Commands are formed as "name=value" pairs, whether they are in the
   config file or on the command line.  If the "value" portion of the
   command includes spaces it must be enclosed in double quotes.  This is
   probably only applicable to the string command, which is used to
   specify the text for which the objects will be generated.
   
      By default Font3D uses POV-Ray as its preview renderer, which means
   the default output file will be a POV-Ray include file.  Object naming
   is supported for POV objects, although no other output formats allow
   for naming of objects.  Font3D also uses a right-handed coordinate
   system by default.  This can be changed with the coordiante-system
   command line option.  Note that POV-Ray, for example, uses a left
   handed coordinate system. I would think it would make more sense to
   make the default left handed since the default output is POV-Ray.
   Strings are generated by default, but you can specify a single
   character using the char command.  You can also specify a character
   code of a single glyph using the code command.
   
      Texturing is only supported for POV output formats.  The texture is
   referenced by name only, by applying the named texture to the object.
   Font3D cannot be used to generate a texture directly.
   
      The visibility commands only determine if a component (front face,
   a bevel, etc) will be displayed in the rendered image.  If the
   visibility for a component is turned off, the component is still
   generated as part of the object in the output file.  This means
   turning the visibility off for various components will reduce the
   polygon count for your objects.  It does not turn off the actual
   beveling, however.  If the cut for a face or side is non-zero, then
   the bevel will still be there except with the visibility turned off
   the object has a gap where the bevel would have been.
   
   
   
   
   
                            -Top of next column-
                                      
   indent
   
    More Musings...
   
     None this month!
   [INLINE]
      Bevels, sides and faces are better understood with a simple
   diagram:
   [INLINE]
   As you can see, it is possible to set quite a few characteristics of
   the objects generated. You can't use the rounded beveling features of
   Font3D to create completely rounded lettering, however.  The beveling
   (whether using rounded or flat bevels) work best as subtle effects on
   the lettering.  This is because the rounded beveling is done using
   smooth triangles on a flat bevel, which only fake the rounded
   appearance by altering the normals at the points of triangles.  I
   covered this type of problem when discussing BMRT's support for True
   Displacements in the May 1997 Graphics Muse article titled BMRT Part
   II:  Renderman Shaders. Also, not all formats support the smooth
   triangles.  Despite this, smooth triangles are the default (POV-Ray)
   does support them) and are recommended for final renderings. Previews
   can be run without them, of course, to decrease rendering time.
   
   The output from Font3D is prefixed with comments, as shown in
   font3d-1.txt.  This makes it easy to determine how to reproduce the
   objects should the need arise.  You can view the actual object code by
   viewing the example POV-Ray 3.x and RIB files.  These are abbreviated,
   sample files, since the complete files were over 700k.  Notice that
   the RIB file is in a format where it can be included using the
   ReadArchive command.  The samples generated produced the following
   images:
   [INLINE]
   POV-Ray
   [INLINE]
   RIB As you can see the generated objects come out very similar.  The
   rendering options were not optimized so the quality of the renderings
   shouldn't be compared.
   
   Font3D comes complete with very good documentation in both regular
   text and a postscript version which prints out to 30 pages.  The
   document includes a very thorough description of all command line
   options.
   
   Although Font3D offers many wonderful features, it can be cumbersome
   to remeber how to use them all.  Thankfully, Robert S. Mallozzi has
   added an X-based front end to Font3D which he calls XFont3D.  XFont3D
   is an XForms based front end that includes a POV preview capability.
   That means it understands how to run POV, but not any of the other
   supported formats supported by Font3D.
   Aimed at POV users, it (apparently, I didn't verify this) will still
   run all the command line options allowed by Font3D.
   
   
                                  [INLINE]
                                      
                              XForms Interface
                                      
   Using this interface is pretty straightforward as long as you
   understand the Font3D command structure.  Clicking a button under the
   options header on the right of the window causes the framed area to
   the left of that to be populated with relevant buttons and input
   fields.  Many of these options can be reset to their default values
   using the small, square buttons with the black dot in them (just click
   on it once).  In general, you'll want to choose a font first (using
   the font button to access a file selection window), specify the string
   to generate and an output file name.  AFter this you can specify
   configuration options and an output file format (RIB, POV, etc).
   Changing the map type (MS, which should really be PC to avoid annoying
   Unix traditionalists like myself, or MAC) or the Cooordinate
   handedness probably won't be necessary that often, but that depends on
   your own needs.
   
   
   [INLINE]
   
   Resources The following links are just starting points for finding
   more information about computer graphics and multimedia in general for
   Linux systems. If you have some application specific information for
   me, I'll add them to my other pages or you can contact the maintainer
   of some other web site. I'll consider adding other general references
   here, but application or site specific information needs to go into
   one of the following general references and not listed here.
   
   Linux Graphics mini-Howto
   Unix Graphics Utilities
   Linux Multimedia Page
   
   Some of the Mailing Lists and Newsgroups I keep an eye on and where I
   get much of the information in this column:
   
   The Gimp User and Gimp Developer Mailing Lists.
   The IRTC-L discussion list
   comp.graphics.rendering.raytracing
   comp.graphics.rendering.renderman
   comp.graphics.api.opengl
   comp.os.linux.announce  [INLINE]
   
Future Directions

   Next month:
   XeoMenu, for one.  libgr might be another, or maybe IPAD or VRWave, if
   I can get either them running in time.
   
   Let me know what you'd like to hear about!
   ______________________________________________________________________
   
                                                  1998 Michael J. Hammel
     _________________________________________________________________
   
                    Copyright  1998, Michael J. Hammel
           Published in Issue 25 of Linux Gazette, February 1998
     _________________________________________________________________
   
   [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
     _________________________________________________________________
   
    "Linux Gazette...making Linux just a little more fun!"
     _________________________________________________________________
   
                                  Hylafax
                                      
                               By Dani Pardo
     _________________________________________________________________
   
   Our company network is based on some sparcs and linux servers and
   windows (3.11 and 95) clients, wich telnet to the server to use a
   Cobol-written accounting program. After passing from nfs to samba
   (imagine the user's fun when they first discovered winpopup), we
   decided to try some fax software. We had some alternatives: comercial
   (and really expensive) Un*x software, the NT alternative, and the free
   software solution.
   
   NT was an unfriendly and unflexible solution, based on licenses per
   user, and we didn't want to spend thousands of dollars buying an unix
   fax server. Having had the good samba experience, we decided to give
   hylafax a try.
   
   HylaFax (originally flexfax) is made by Silicon Graphics, and
   distributed with source code, availiable at
   http://www.vix.com/hylafax/. Latest version is 4.0pl1. Get also the
   tiff library. If you get the source, you must first compile and
   install the tiff library (in order to convert tiff files to .g3 fax
   format). You must also have Ghostscript up and running to convert from
   Postscript to g3. As experience: use the latest ghostscript you can
   get (unless you would like to see your customer receiving ghostscript
   error messages by fax).
   
   After having the tiff library installed, hylfax compiles at first
   under an stardard linux distribution, placing binaries under
   /usr/local, and /var/spool/fax for the jobs.
   
   Once installed, configure the system by running
   /usr/local/sbin/faxsetup. It will add the fax user, modify
   /etc/services and /etc/inetd.conf (hylafax listens to ports 4559 and
   444). After some other confguration, faxsetup will run faxaddmodem, in
   order to configure wich modem(s) to use. Faxaddmodem will talk to the
   modems you've specified, getting its parameters, and let you configure
   other stuff.
   
   Hylafax consists in two daemons: hfaxd (the server), and hfaxq (the
   priorityzed Round-Robin scheduler). You should run faxmodem to tell
   the scheduler wich modem(s) it can use. If you've also planed to
   receive calls, you'll have to set up faxgetty, that will place
   incoming faximiles into /var/spool/fax/incoming, respecting also data
   calls (pasing the control to getty/mgetty). You should also add these
   daemons in /etc/rc.d. Now you can check the server works by telneting
   yourself at port 4559.
   
   Some useful programs you will use are sendfax (files), faxstat (to
   check the queue), and faxrm to remove jobs. Sendfax calls faxq,
   sendpage, etc.. It also invoques ghostscript for the image format
   translation, so you'll normally send postscript or ascii text. If you
   want to send other formats, check out /usr/local/lib/fax/typerules.
   Other interesting configuration files reside at /var/spool/fax/etc: If
   you run in trouble with your modem, you'll probably want to check
   them.
   
   And to finish with the server side, it's not a bad idea to modify
   crontab to invoque faxqclean, in order to remove sent faxes.
   
    The Client Side
    
   Once you've hylafax up and running, it's time to configure the
   clients: There's MacFlex for Macintosh users, and WinFlex for Windows
   users. With Winflex (and MacFlex too), you'll install a generic
   postscript printer (I usually use a Apple Laserwriter Pro600 window's
   driver). So, when something is sent to that printer, a window appears,
   asking for the phone number. You can also check the queue, remove
   jobs, etc. Once the fax is sent, the user will receive an e-mail
   confirming the job has been done with some other useful information.
   HylaFax creators claim that "you'll never loose a fax", and I must say
   that this aspect has been taken with a great effort.
   
   WinFlex, although a good solution, is not perfect (the interface with
   the printer driver is a bit poor), and doesn't use all hylafax
   features yet (any volunteer?).
   
   Another feature yet to be perfectioned, this time a server feature, is
   the automatic cover page generation: I've really had pains to create
   the cover page, much postscript knowledge needed. In our company, we
   finally wrote the cover page as a normal document with our word
   processor, and copy it in a samba share.
   
    Let's Have Fun
    
   The real party began when I was told about the accounting department
   special need. They needed to send the facturation automatically by
   fax. That facturation was generated by the cobol program as an ascii
   file, up to 20 pages. But ALL pages had to inlcude the company logo at
   top, and some text at the left side. That seemed to be a harder issue
   than the cover page one, but after some scripting and some C, and
   thanks giving to hylafax flexibility, I could write a printer filter
   that:
     * gets the phone number from the ascii file.
     * divides the ascii file into pages (pages where separated by an
       EOP)
     * converts each page to pbm (portable bitmap) with pbmplus package
     * Mixes the pbm logo with each page
     * convert all mixed pages into postscript (with ghostscript)
     * Join all postscript pages into one, and finally calls sendfax.
       
   Now, I don't even want to think how I'd solve this problem with a
   Windows server.
   
    Conclusions
    
   HylaFax is a versatile, powerful and flexible fax software, although
   missing some features. It's highly configurable, provides a good
   amount of debugging information, its secure, and it's free.
   
   There's also a mailing list, where you can get patches and solve some
   problems. Once again, free software has proven me its strength.
     _________________________________________________________________
   
                        Copyright  1998, Dani Pardo
           Published in Issue 25 of Linux Gazette, February 1998
     _________________________________________________________________
   
   [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
     _________________________________________________________________
   
    "Linux Gazette...making Linux just a little more fun!"
     _________________________________________________________________
   
                 Linux Compared to Other Operating Systems
                                      
                         By Kristian Elof Soerensen
     _________________________________________________________________
   
   You might have the feeling that Linux is a real good OS.
   
   In this article I will pit some of Linux' features against those of
   some competing *nix's, and thus identify some of Linux's relative
   strengths and weaknesses.
   
   Linux and it's competitors
   
   Not so long ago a frequent Linux question was "Is it really useful or
   is it just another geeks only OS". Now most insightful people consider
   Linux as being on par with the best, and the interesting question is
   "when is it best to use Linux and when should some other *nix be
   preferred".
   
   To help people identify Linux' place in the market, I've made a
   comparison of ten different OS's eight of them *nix's, where each OS's
   capabilities in a number of specific areas, are pitted against each
   other.
   
   The comparison is available as an interactive chart at:
   http://www.falconweb.com/~linuxrx/WS_Linux/OS_comparison.html .
   
   It's part of a bigger Linux-page called "The Linux Resource Exchange"
   that holds a lot of other Linux-info such as a searchable
   HOWTO-mirror, guides to both unofficial and official patches to the
   2.0.* and 2.1.* kernels, Linux on workstation hardware pointers, and
   much more. Take a look at it at http://www.falconweb.com/~linuxrx .
   
   It will be noted that the emphasis of the Comparison Chart as well as
   this article is on usability and suitability for "real-world-usage"
   rather than the more technically features of the kernels.
   
   In this article I will present a summary of the information for Linux
   2.0, Solaris 2.6, SGI Irix 6.2/6.4 and Digital Unix 4.0 and discuss
   it. The web-site has more info, and holds information for BSDI 3.0,
   Freebsd 2.2, MacOS 8, OS/2 4, UnixWare 2.1 and OpenServer 5.0 as well.
   While this article is fixed in time, I intent to keep the web-site
   up-to-date in a long time from now.
   
   A small extract of the OS Comparison Chart
   
   
         Linux 2.0 SGI Irix 6.2/6.4 SUN Solaris 2.6 DIGITAL Unix 4.0
                            OS interoperability
    Runnable foreign binaries DOS, Windows 3.1, Macintosh, some SysV Dos
                   and Windows 3.1 Macintosh, Windows 3.1
    Mountable foreign filesystems FAT, VFAT, UFS ro, SysV, HPFS ro, MAC
                                  MAC, FAT
                           Java yes yes yes  yes
                                OS-standards
       Posix.1 Designed to comply, but only a hacked version has been
                           certified. yes yes yes
                        XPG4 base 95 no yes yes yes
                           Unix 95 no no yes yes
                            Unix 98 no no no no
                               Policy-issues
    Pricing Free Pay per release Pay per release or 2 year subscriptions
                              Pay per release
                                      
              See the complete chart at http://www.falconweb.com/~linuxrx
                                                                         
   Linux and the OS standards
   
   The days of the great Unix wars are sort of gone. It has always been
   part of the Unix-philosophy that a program written for Unix should not
   need anything more than a recompile to work on any vendors *nix. In
   reality there have always been many minor and major differences,
   making the task of writing applications runnable on a vide selection
   of *nix'n a challenging one.
   
   During the 90' the vendors have agreed to write down and follow a set
   of common standards for *nix behavior. The first one to gain big
   following was the Posix.1 standard. In the last couple of years this
   standard have been enchanged by standards such as Unix 95 and Unix98,
   the newer standards including up-to-date versions of the older
   standards as well as standardizing additional areas of Unix. It seems
   that after a quarter of a century Unix can finally live up to the
   "Unix-box" metaphor, e.g. a generic square box with some flavor of
   *nix capable of running every random Unix-program you care to use.
   
   It's as if OS's are becoming less important from now on. People want a
   box with 100 % standard Unix behavor so they can run all ther
   applications, and buy equipment and OS from whichever vendor has the
   best offer at the day of purchase.
   
   The versions of *nix made before Linux consisted of many niveaus of
   revorkings of code that stemmed back from the earliest versions. This
   was necessary in order for a *nix version to behave to applications
   like it's counterparts so applications could run everywhere.
   
   When Linus turned his Linux-development into a quest for a complete
   OS, the Posix.1 standard was his guideline. Having the OS <->
   application interface ready, allowed him and the other developers to
   build all the internal parts of the OS without using any old code.
   Ideas fostered and experience gained since the original Unix could be
   freely used in the development of Linux, since none of the code from
   older *nix's had to be used.
   
   This is one of the main factors that allowed Linux to be so much
   better than the competition. All the innards are brand new modern OS
   code, taking full advantage of modern hardware.
   
   As can be seen in the chart above, Linux haven't got the official "I
   am Posix.1 compliant" stamp. A German company named Unifix has hacked
   on Linux and gotten their versions of both 1.2 and 2.0 certified.
   Their work have more or less been included in the main Linux-code.
   This doesn't make Linux Posix.1 certified, but it ensures that it's
   very close, probably as close as it's certified counterparts
   non-certified patchlevels and minor releases.
   
   It's important that work is done to keep Linux in sync with recent
   standards, or it will turn into a non-standard *nix only suited for
   certain niche purposes, like we are currently seing various BSD
   derived *nix's do.
   
   Linux does only have a cost of zero if your time is worthless
   
   The fact that Linux' price tag says zero is not as interesting as it
   might seem.
   
   Most of the cost of owning and using a computersystem, is the cost of
   time spent on learning how to use the system, time spent on
   installation and maintaining it over it's lifetime, and the initial
   cost of purchase of computer, applications and OS.
   
   If Linux is a cheap OS then it's because it can do more with less
   hardware than many of it's competitors, or because it comes
   preinstalled with many hundreds of apps., saving installation time, or
   since it gives it's users the ability to work smarter, rather than by
   the OS itself being obtainable without expense
   
   Linux has better documentation than most OS's, and all of it is
   on-line, so it keeps itself current and is search-able, unlike shelves
   full of expensive vendor supplied paper manuals. The newsgroups and
   mailing-lists provide a rapid help and support forum, that beats every
   phone-support system I have ever used. This ensures more rapid problem
   fixing than most other OS's even when the local gurus are out of luck,
   and can be used as a learning tool, thus helping all Linux users work
   smarter than people using some other *nix.
   
   Linux can make a PC do most of the tricks an ordinary workstation-user
   makes his workstation do. A workgroup with workstations can be renewed
   to a few high-end workstations as shared CPU servers and a Linux PC on
   every table. This costs less, and the really speedy CPU servers
   ensures that the users gets more power than before.
   
   What makes Linux an economically OS isn't so much it's own cost of
   zero, but all the related savings and improvements it gives it's
   users.
   
   Linux speaks many tongues
   
   One of the first business support purposes Linux was widely put to was
   to act as a multipurpose network device and server. It's capable of
   handling most of the purposes needed to keep a modern LAN or WAN
   running. It can be both router, firewall, bridge, gateway, modem and
   ISDN dial-up server, nameserver and many other network task
   imaginable. It's also really good at server jobs like mail, ftp and
   web.
   
   Having the same OS with the same tools doing all these very different
   jobs, instead of having to use a different device for every task, is
   saving people a lot of time, gives more flexibility, and ties up a lot
   less money in equipment purchases or leases.
   
   Other *nix'n have somewhat similar abilities, but most require
   expensive workstations and really expensive network peripherals, and
   those that does run on PC's doesn't support an equally huge amount of
   cheap peripherals and software as does Linux.
     _________________________________________________________________
   
                 Copyright  1998, Kristian Elof Soerensen
           Published in Issue 25 of Linux Gazette, February 1998
     _________________________________________________________________
   
   [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
     _________________________________________________________________
   
    "Linux Gazette...making Linux just a little more fun!"
     _________________________________________________________________
   
                                Linux Ports
                                      
                               By Ross Linder
     _________________________________________________________________
   
   I am writing in response to Dave Blondell's letter, where he says "The
   sad truth of the matter is that Bently, and for that matter most other
   software companies don't get enough requests for Linux ports to
   justify the production costs."
   
   Well perhaps it's true for ports from non-Unix environments, but it
   surely is not true otherwise. A look at page 84 "Linux Makes The Big
   Leagues" and "A place for Linux" is exactly the how I persuaded our
   company to start using Linux. For only $250 we could have Linux with
   Metrolink Motif, what's more we could use a cheap PC clone that put
   our HP715 to shame in the performance stakes.
   
   As we started to use Linux seriously, we bought more tools like
   Insure++, CodeWizard, and INT Edittable Widgets. Soon the HP was
   gathering dust, and only used for porting to HP-UX and testing.
   Ironically the HP715 has just been paid off this year, its still a
   nice machine, but its no match for a high end Linux PC.
   
   Since we associate closely with some of our clients, they often visit
   and get to see some of the new enhancements that are under
   development. Often they noticed how fast Linux was compared to other
   platforms, so natural evolution took place, and a lot of our clients
   have switched to Linux.
   
   And the best part of all is that I never need to change a line of code
   when compiling across platforms, I use simple shell scripts that are
   used as CC and LN. An example would be..

------------------------------------- mcc --------------------------------
#! /bin/sh

name=`uname -m`

if [ $name = "i386" ]
then
    cc -DSCO $*
elif [ $name = "i486" ] || [ $name = "i586" ] || [ $name = "i686" ]
then
    cc -O2 -m486 -fomit-frame-pointer -malign-loops=2 -malign-jumps=2 \
        -malign-functions=2 -DLinux $*
else
    c89 +w2 -z +FPD -DHPUX -D_HPUX_SOURCE -I/usr/include/X11R5 \
        -I/usr/include/Motif1.2 -I/mnt/INT -I/mnt/700_LIBS/xpm-3.4e $*
fi
--------------------------------------------------------------------------

   The combination of Linux[Intel] with its BIG ENDIAN architecture and
   HP-PA Risc with its nice LITTLE ENDIAN (Same as networking) provides a
   really nice combination of test beds to ensure both byte swapping and
   64/32 bit compatibility is tested.
   
   At the end of the day it is no extra effort to provide a Linux
   solution. Probably the biggest deterrent is the _loud_ anti-commercial
   voices. Some folk who don't mind paying for software should be more
   vocal.
   
   Recently a really nice guy called Jay, explained to me why the GNU
   philosophy was so good, he said someone pays you once to do the work
   then the rest of the community should be able to get the benefit of
   your work for free, as you have already been paid.
   
   When I pointed out that most commercial applications take many man
   years to write, so we have two options, to get one poor soul to pay
   millions of $'s or we can try to market our product to ten thousand
   people who would each only pay $100 I got no response.
   
   And while not every one may appreciate or use any of the free software
   that I have contributed to the Linux community, some of the credit
   must go to my employer (Who does not provide free software as a rule)
   for the skills and resources I used to create my free S/W were gained
   from them, in return they use some of my free S/W.
     _________________________________________________________________
   
                       Copyright  1998, Ross Linder
           Published in Issue 25 of Linux Gazette, February 1998
     _________________________________________________________________
   
   [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
     _________________________________________________________________
   
    "Linux Gazette...making Linux just a little more fun!"
     _________________________________________________________________
   
                            Linux and Windows 95
                        The Best Bang for Your Buck
                                      
                             By Leonardo Lopes
     _________________________________________________________________
   
   Many Linux users tend to think of Windows95 as a competitor to Linux.
   In mailing lists and in Usenet it is common to encounter comments that
   portray Windows95 as the materialization of evil and Linux as the
   savior of all cybernetic souls. While it is my belief that only a
   small portion of the Linux community believes the source of all
   darkness is Redmond, it is easy to get caught by passion and forget to
   analyze this situation through a more technical light, which would
   definitely be more productive in promoting the growth of Linux,
   through it's own merits.
   
   Of course Microsoft has thrown more than it's share of low blows over
   the years. But it is hard for me to believe that any other company in
   the position Microsoft was in would act much differently. And in any
   case, the Linux community has nothing to gain by confronting the
   Goliaths of the software business in any field except the technical
   one. The media attention we have received lately is totally funded on
   the quality of Linux, which by the way separates us clearly from the
   pack. This attention will only grow in the future, especially if we
   present ourselves as mature albeit idealistic developers, which most
   of us are.
   
   We know all too well that Windows95 and it's applications are not as
   stable as we would like, that support is very poor and expensive, how
   inflexible and insecure it is, and all the other perils that plague
   it. People in charge of supporting it are familiar with error messages
   like: "Consult an Expert" and "Reinstall Windows95".
   
   But if you can put up with that, what you have is an extraordinary
   operating system: It is very easy to use, install and configure; It is
   inexpensive; It has impressive internationalization support; it has
   excellent development tools; it is supported by nearly every major
   hardware manufacturer; not to mention the tremendous amount of high
   quality software available in almost every category for the platform.
   
   Linux, on the other hand, has a different set of advantages. It is
   rock solid, has excellent support, is extremely flexible and secure,
   is free, is open, and so on. From a technical point of view, it is
   incomparably superior to Windows95.
   
   The problem is that companies have invested billions of dollars in
   software and training for the Windows platform. And Linux does not run
   Powerpoint, or MS Word, or Delphi. Also, most end users will not take
   advantage of the extra flexibility and security offered by Linux. It
   is not that they have no use for it, it is just that they are so used
   to working with what they have, and so wary of changes, that they
   don't really care about the advantages they may get. It is sad, but
   true: They would rather not save sensitive information than learn
   about permissions; They are so used to rebooting their machine all the
   time that it has become as frivolous as clicking a mouse button.
   
   Most end-users spend the whole day performing parametric transactions
   on their machines. In many cases, even management will prefer to wait
   days or weeks for their IS department to prepare a GUI interface to a
   query than to learn SQL and get the information immediately. Of course
   I and many people use Linux for most of my personal computing needs.
   When I use Windows95, I really miss the things we take for granted in
   Linux, like powerful command line tools, permissions, stability,
   etc... But unfortunately most users are not like that nor are they
   likely to be.
   
   Linux is best exactly where Windows is lacking. It is strong in
   support for different software platforms. It is designed to be sturdy
   and take heavy workloads day in day out. It has marvelous internet
   tools, and picks up the security buck where Windows passes it. Nobody
   wants a web server or for that matter any server in which you can't
   have 100% confidence on.
   
   For all these reasons, looking at Linux as an alternative to Windows95
   is in my opinion a mistake. It's greatest potential will be achieved
   as a server and manager for Windows, complementing Windows' weaknesses
   and guaranteeing a high level of service to the enterprises who select
   it. If at all possible, it's generally a good idea that end users
   don't even knowor need to knowthat it's Linux that is offering the
   advanced services they're using.
   
   That having been said, the natural competitors to Linux become Windows
   NT and other unices. So let's see why it is by far the natural choice
   for this role.
   
   In every step of the initial cost equation you will be saving money
   with Linux. To begin with it is free, or almost free if you want to
   take into account the cost of a distribution. Then It requires far
   less computer resources than it's competitors, and you'll also save
   money there. Also it will often eliminate or reduce the need for
   additional equipment, especially when compared to NT. Then it is
   portable to several platforms. So instead of supporting NT, Solaris,
   Ultrix and AIX, each with it's own expenses in training,
   documentation, etc..., now you only have to support Linux. That aspect
   alone can save thousands of dollars every month to an organization.
   
   With regard to software, not only you will find almost every type of
   software you may need for free or very inexpensively, but bugs are
   corrected and new features are added with incredible agility. No more
   of that "it will be fixed in the next release" talk. And since almost
   everything comes with source code, if your organization needs a
   feature with great urgency, it is much easier to add it than with a
   closed box OS. That is not to mention the speed with which Linux
   itself is updated. Security holes and bugs are quickly tracked and
   fixed, frequently in a matter of hours. Nobody can put a price tag on
   that.
   
   Probably the biggest difference between Linux and it's competitors is
   in support and documentation. No, it is not commonplace yet to have
   your Linux vendor put you on hold for half an hour to charge you big
   bucks for online support like the other guys. And yes, there are
   situations in which online support is indispensable. But there are
   already options for online support for Linux, a business which has
   everything to grow considerably as Linux invades the corporate market.
   And in an emergency, putting a Linux server up and running can be done
   much faster than any of it's competitors. In fact, in many cases you
   can have a spare hard disk laying around for an eventuality. If you
   need it, pop open just about any PC, stick the disk in there, turn the
   machine on and go. Also, if you want to really do things right, the
   low setup and maintenance cost makes redundant solutions using Linux
   much more interesting than with any other OS. And that is not to
   mention that a lot of people, including probably the people who will
   be in charge of maintaining Linux at work, use or will use Linux at
   home. How many people you know use Ultrix or even NT at home?
   
   If your business is connected to the internet, you will get an
   infinite knowledge base, always willing to help, generally for free.
   Antagonists will say: "Other OSs have their own mailing lists and
   Usenet groups too." But the fact is that no other internet support
   group is even closely as effective as Linux's. Linux is unique in that
   it offers many more tools to fix your problems. It doesn't matter how
   big a guru you may be, if the software you use is not traceable by a
   debugger and doesn't come with source, you will not be able to get
   answers as fast and as easily. And there is a "positive spiral", as
   Bill Gates would like to define it, with Linux support: A lot of
   people learned a lot of what they know through the Linux internet
   support channels. Now they feel in many ways obliged to help lots of
   other people. Who will learn a lot of what they will now through these
   channels. And so on.
   
   Linux documentation is incomparable to any other OS's. Not only in
   quantity, quality and price, but also in that it is so frequently
   updated. From novice users to accomplished network administrators, it
   is more than likely that you will find most of the answers you need
   from the documentation that comes with your distribution or with the
   CDs that accompany it. If you don't find it there, it is almost always
   somewhere in the internet, reachable by any search engine. More and
   more books are published every month about Linux. There are monthly
   publications like Linux Journal and Linux Gazette available. There are
   tutorials, howtos, faqs and other documents describing every single
   detail of the operating system, and most of the software that comes
   with it. And that is not to mention the inheritance of over 20 years
   of UNIX expertise and information. In total, the amount saved with
   support and documentation expenses every day with Linux can add up
   considerably.
   
   Administrative costs are also much lower in Linux, and administration
   is much easier on Linux than in any other OS. An argument many people
   use in favor of NT is that it is so easy to administrate. A lot of
   UNIX people were at first fearful of losing their jobs when NT came
   out. Now, how many NT sites you know don't have a dedicated
   administrator? The fallacy of Microsoft's argumentation is that
   administrative costs are not affected by creating new users in a GUI
   instead of using a shell script, or even editing a file. They are not
   affected by day to day operations when things go right, and they are
   not affected by performing ordinary maintenance. What really
   skyrockets your administrative costs is when things go wrong. And
   anyone supporting networks knows that they do. With any system. And
   when that happens, you need clear error messages. You need trace and
   debug capabilities. And you need documentation. And Linux offers all
   these items in great generosity, much more than NT and more than most
   other unices.
   
   Another factor that increases your administration costs is when you
   have to do anything that is out of the ordinary. When that happens,
   you want flexibility. And while NT may be acceptable for cooking
   pasta, finer dishes will require tools and flexibility you can only
   get from UNIX. Because Linux is so flexible, you can frequently
   eliminate routers, bridges, and other equipment which not only add to
   additional hardware cost, but also contribute to make your network
   more complex, introduce new environments to be learned, and become yet
   another failure point. With Linux, cost involved in the maintenance of
   these equipments can often be eliminated, and other times, greatly
   reduced. @subhd:Getting To the PointIntegrating Linux and Windows95
   
   Using Linux with Windows95 is not a very complicated task. Most of the
   work is handled by the Samba suite, a host of programs designed to
   work with the SMB protocol, capable of most services you expect from a
   network server: Handling logins, sharing hard drives, printers, etc...
   Samba is especially useful when you have a mixed UNIX/Windows95
   environment, like we did at the Mathematics Department at UFC. When
   people logged on any Windows machine, they would have access to their
   home directories at the H: drive. This brought up an administrative
   problem, as people quickly took up all the hard drive space available
   installing Windows programs in their H: drives. Nothing that a quota
   system won't fix.
   
   Samba fools your Windows95 machine into thinking that it is talking to
   a NT server. You can have network profiles, unified registries for all
   your machines, run login scripts, and generally have most of the bells
   and whistles available with NT. [See earlier issue of Linux Journal].
   It is one of the best supported and documented programs available. The
   only problem I had is that logins take a little longer to complete,
   when compared to NT. It is generally a little slower than NT, but
   perfectly usable. The configuration files have a format similar to the
   Windows .ini files. You can use it to share printers, hard disks,
   cdroms, etc... According to the documentation, there is no real reason
   why other mass storage peripherals shouldn't work, although I haven't
   tried any.
   
   At PCC Inform=E1tica, a computer retailer at which I installed an
   intranet based on a sole Linux server, I also installed HylaFax, an
   excellent fax server. It was not as simple to install, mainly because
   it asks so many questions that it can scare you. If you take your time
   to answer them, especially with the aid of your Modem's manual, it
   should be no big deal. Also it searches for some programs which you
   will not find in most distributions. For instance, it asked me for
   mawk, which I symbolically linked to gawk, and never had any problems.
   The Windows95 Hylafax client, whfc, works reasonably well, although it
   is not quite stable enough for everyday use, and lacks important
   features, like job scheduling. I contacted the author, but he was busy
   with other projects, and told me that he could not release the source
   code because of limitations by his employer. HylaFax is so richly
   documented I decided to implement my own client, with the specific
   needs of my organization. As soon as I get a couple of machines, I
   will start doing that. Any volunteers?
   
   Mail came mostly configured. Not only sendmail was configured
   correctly almost right out of the box, but a pop server also already
   came installed. All I had to do in Windows95 was install a major
   browser.
   
   Information about products is created on regular Windows95 programs,
   then converted to HTML and made available for the intranet at the
   Linux server. Tutorials and documentation for installed programs
   available in HTML are also available from the server.
   
   The Linux machine at PCC Inform=E1tica also has the responsibility of
   doing IP Masquerading for the whole network of 22 machines and
   counting. I had to get the newest stable kernel at the time (2.0.29),
   and a patch for it to work with ftp.. Even in this kernel, the help
   message on the configure script will say that masquerading is
   experimental code. I never had any problems, running the machine under
   the conditions above. Once the kernel was recompiled, all I had to do
   was add two calls to ipfwadm and I was all set. I had invaluable help
   from the people in the internet for this task. The Brazilian linux
   mailing list linux-br, an Issue of Linux Journal, the kernel
   documentation, web documentation, were all useful tools for me to get
   this job done.
   
   Telecommunications in Brazil is very expensive. At the time we were
   planning this network, our first thought was on getting a 64k leased
   line from the company to our service provider. That would cost us
   around US$1050 a month, only on telephone company charges. So we
   decided to build a new machine, install it at our service provider and
   put in it our web content, ftp server and mail server. The company
   would then access the internet via a dial-up account, which would cost
   us only US$210 a month. Since dial-up calls tend to fail a lot, I made
   a simple script which would check if the line was ok, calling the
   service provider again in case the line had dropped. Also this script
   mailed my outside account the current IP number for the machine, in
   case I needed to access it from somewhere else in the internet. Then I
   put the script to run every 5 minutes with crontab. Simple and agile.
   In other words, low administration costs. If the bandwidth required
   increased sufficiently, it would be easy to add a second modem and use
   equal line balancing to get a higher throughput.
   
   Another use for crontab is making automatic backups of the companies
   database, which runs on Access. Everyday at noon and at 6PM a copy of
   the whole database is made to the server using a script based on
   smbtar, part of the Samba suite, and at 8PM a copy of the database is
   made to tape. The home directories, which users use at their Windows95
   clients mainly to store business proposals, are also saved to tape
   every week. Most users don't even know there is a Linux machine in the
   network. @subhd:Bottom LineSavings
   
   Savings with Linux start with the O.S. itself, grow through setup with
   lower power equipment (All the above work smoothly on a Pentium 133),
   and by making networking hardware dispensable (router), goes through
   easy software setup, flexible settings and easy administration and
   training, and adds up every month, with low equipment maintenance
   costs, agile software updates, and inexpensive support. It also
   protects your investment by allowing you to easily upgrade to other
   platforms. Or even other OSs, if you for some strange reason would
   ever want to do that.
   
   How much you will actually save depends on many factors, but there are
   just so many ways to save with Linux, from support fees to
   documentation to feasible redundancy which means less down time to
   flexibility that one thing is for certain: It will be a bundle. At
   PCC, Linux saved more than US$3000 in initial setup costs and another
   US$1000 every month, out of software, communications and maintenance
   costs. It also has increased the safety of the data on the network,
   provided the employees with the convenience of private disk space and
   access to the wealth of information offered by the internet and made
   internal communications more agile and inexpensive. If you though your
   company or office was too small to afford a high quality intranet or a
   company-wide internet connection, think again. With Linux, Now You
   Can!!!
     _________________________________________________________________
   
                      Copyright  1998, Leonardo Lopes
           Published in Issue 25 of Linux Gazette, February 1998
     _________________________________________________________________
   
   [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
     _________________________________________________________________
   
    "Linux Gazette...making Linux just a little more fun!"
     _________________________________________________________________
   
                               Compiler News
                                      
                               By Larry Ayers
     _________________________________________________________________
   
                                Introduction
                                      
   The GNU gcc compiler is one of the most highly-regarded applications
   made available by the Free Software Foundation; it has become an
   integral part of Linux distributions. The existence of gcc and its
   corollary utilities (make, autoconf, etc.) makes it possible to
   distribute source code for everything from the Linux kernel itself to
   a wide variety of free software applications and utilities. This fact
   is crucial to the survival and health of Linux; different people run
   different kernels and distributions, and it would be expecting too
   much to ask volunteer developers to create binary distributions for
   all of the different flavors and variations of Linux and other
   Unix-derived operating systems. Richard Stallman does have a valid
   point when he emphasizes Linux's dependence upon the many GNU
   utilities.
   
   Lately there has been a flurry of activity in the GNU gcc compiler
   world, resulting in new releases and giving Linux users expanded
   choices in their development environments.
   
   The GNU people operate in a relatively closed environment; the average
   user doesn't have access to news or progress reports; a new release is
   usually the first indication that development is actually progressing.
   Since GNU software is released under the GNU licence, there is nothing
   to stop other developers from modifying the code and making available
   variant releases. There exists another approach to free software
   development, in which patches and "snapshot" releases are freely
   available for interested developers and users. The Linux kernel (with
   both stable and unstable development releases available) is an obvious
   and influential example. XEmacs, KDE, and GNOME are others. Since the
   advent of egcs it seems the GNU developers might be moving toward this
   development model, judging by some new material at the GNU web-site.
   Eric Raymonds' online article, The Cathedral and the Bazaar is an
   insightful and interesting interpretation of these two different
   models of free software development. This piece was one of the
   inspirations for the first gcc variant (that I know of) to become
   available: egcs.
   
                                    egcs
                                      
   Gcc 2.7.2 has been the standard GNU compiler for some time now. The
   Cygnus Corporation is a company which offers commercial support for
   the GNU utilities and has ported many of them to the Windows
   environment. A group of programmers there decided to try an
   experiment. Beginning with the stock GNU sources, they adapted the
   patches which would eventually become gcc-2.8.0 (I assume from the GNU
   gcc development source tree) and added experimental features which the
   GNU developers either weren't interested in or were delaying for a
   future release. The idea was to make periodic snapshot releases freely
   available with the hope of attracting more developers. This approach
   seems to be working; I don't know how many new programmers are
   contributing to the project, but the two releases they have made to
   date (1.00 and 1.01) are being used by quite a few people without many
   problems. Any fruitful changes in gcc/egcs will be available to the
   GNU gcc developers for possible inclusion in future releases. This
   benefits end-users as well as the GNU programmers, as users get to try
   these new features and functions (and hopefully bugs will be reported
   and dealt with), while the sources may be of use to the GNU gcc people
   in their efforts.
   
                                    pgcc
                                      
   Both the gcc and egcs compilers are intended to be built and used on
   systems based on a variety of processors. Yet another group of
   developers has hacked the egcs code to support operations peculiar to
   the Intel Pentium processors. Pgcc consists of a set of patches which
   can be applied to the egcs source, which will allow code to be
   compiled with various pentium optimizations. These developers claim
   execution speed (of binaries compiled with pgcc) can be five to thirty
   percent faster than stock gcc. A new Linux distribution called
   Stampede is using pgcs to compile the binaries of the kernel and
   applications which they plan to distribute. Interestingly enough, the
   original patches which the pgcc team used as a starting point came
   from a programming team at Intel.
   
                               My Experiences
                                      
   Though the GNU gcc compiler has always worked well for me, the appeal
   of novelty led me to tentatively experiment with egcs when the first
   real release appeared on the egcs web-site late last year. The first
   thing I noticed was that the compiler tends to generate more warnings
   than the -Wall switch did with gcc 2.7.2. These don't seem to have
   deleterious effects, and I've heard gcc 2.8.0 exhibits the same
   tendency. Everything I tried seemed to compile successfully except for
   the KDE source; I've been told that this will be fixed for KDE beta 3.
   If you've never built a version of gcc from source be prepared for a
   long, disk-space-intensive compilation. It happens in several stages;
   during the last of these the compiler actually compiles itself, a
   process known as boot-strapping.
   
   Some time after installing egcs I happened upon the pgcc web-site. I
   downloaded a large set of patches and patched the egcs source, ending
   up with another compiler. Along with the claimed execution speed
   increase (which in most cases probably isn't large enough to be
   noticeable) optimization can be increased to -O6, and a
   pentium-specific flag (-mpentium) can be used. The binaries generated
   tend to be substantially larger than gcc's due to the default
   inclusion of exception-handling. This can be disabled with the switch
   -fno-exceptions.
   
   So far I've compiled several Linux kernels, XEmacs, mutt, slrn, the
   Gimp, gzip, bzip2, and others without any problems. I wish I was a
   systematic type of person and had timed the execution of these
   programs before and after using egcs/pgcc, but I'm not. As an example,
   I'm running XEmacs 20.5 beta-22 using the Linux kernel 2.1.84, and the
   editor seems snappier and more responsive than before. But is this due
   to the compiler, the kernel, the XEmacs version, or (most probably)
   all three? Too many variables and not enough time!
   
   I wouldn't recommend installing any of these gcc variants unless you
   are willing to monitor newsgroups, web-sites, and possibly the
   mailing-lists. Luckily problems and work-arounds are reported quickly,
   and of course the invaluable safety-net of gcc distribution packages
   is always there if your set-up gets badly hosed. It will be
   interesting to see what comes of this non-adversarial fork in the
   evolution of gcc.
   
   Last modified: Sat 31 Jan 1998
     _________________________________________________________________
   
                       Copyright  1998, Larry Ayers
           Published in Issue 25 of Linux Gazette, February 1998
     _________________________________________________________________
   
   [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
     _________________________________________________________________
   
    "Linux Gazette...making Linux just a little more fun!"
     _________________________________________________________________
   
                  Gmemusage: A Distinctive Memory Monitor
                                      
                               By Larry Ayers
     _________________________________________________________________
   
                                Introduction
                                      
   Linux may not have many office-suites available, but it sure does have
   a wide variety of system, process, and memory monitors! I use
   ProcMeter quite a bit, mainly for the incoming and outgoing TCPIP
   packet display, but recently I happened upon an unusual memory monitor
   which displays the relative proportions of memory in use by running
   processes. Gmemusage is a small X application written by Raju Mathur.
   He has been attempting to emulate a monitor (also called gmemusage)
   which is used on Silicon Graphics workstations.
   
                                  Features
                                      
   Here is a screenshot, which will save me several paragraphs of
   description:
   
                              Gmemusage window
                                      
   As with many other such monitors, the information shown is essentially
   the same as what is shown in the memory fields produced by  ps -aux,
   which derives its information from pseudo-files in the /proc
   directory. These files, such as meminfo and loadavg, are generated
   dynamically by the kernel. You can read them directly, by running a
   command such as  cat /proc/meminfo.
   
   Although a plethora of information is presented by the output of  ps
   -aux or  top, more detail is shown than is needed for a quick overview
   and comparison, and tabular data doesn't easily lend itself to
   comparative analysis. You won't see precise differences between memory
   usage while contemplating a gmemusage display, but the proportions are
   shown in a graphical and easily interpreted format. In most cases the
   relative proportions are more useful than the decimally exact detail
   shown by  ps or  top.
   
   Raju Mathur has plans to enhance gmemusage. One possibility (mentioned
   in his TODO file) is to add a pop-up window which would give
   additional information about a process when its name in the main
   display is selected with the mouse.
   
   I like this small utility, partly because it diverges from the usual
   dynamic bar-chart display found in many memory monitors, and also
   because it is small and specialized. You don't have to spend time
   configuring it either; it works well "out of the box". If you would
   like to try it, the source archive is available at the gmemusage home
   WWW site. Last modified: Sat 31 Jan 1998
     _________________________________________________________________
   
                       Copyright  1998, Larry Ayers
           Published in Issue 25 of Linux Gazette, February 1998
     _________________________________________________________________
   
   [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
     _________________________________________________________________
   
    "Linux Gazette...making Linux just a little more fun!"
     _________________________________________________________________
   
                                   Xephem
                                      
                               By Larry Ayers
     _________________________________________________________________
   
                                Introduction
                                      
     ephemeris n., pl. ephemerides 1. A table giving the coordinates of
     one or a number of celestial bodies at a number of specific times
     during a given period. 2. A publication that presents a collection
     of such tables; an astronomical almanac.
     
   The above definition came to mind when, some time ago, I happened upon
   a Debian package called xephem while browsing the contents of a
   distribution CD. At the time I dismissed any thought of installing it;
   I could visualize (falsely, as I later learned) a simple X application
   displaying scrollable lists of sun, moon, and planet rising and
   setting times for various latitudes. This sort of information is
   easily available from printed ephemerides and hardly justified
   installing a probably old package.
   
   A salient aspect of free software is that it's not advertised, and
   word-of-mouth has its limitations. News of an application with wide
   appeal, such as an editor or file-manager, will eventually be spread
   via the internet, but a program which occupies a specialized niche
   might not receive the attention it deserves.
   
   Some time later I saw a brief description of xephem in a usenet
   posting which was enough to spark my curiosity. After trying it out, I
   was impressed, and thought the word should be spread.
   
                          Description and Features
                                      
   Xephem is a Motif-based X application which goes far beyond the name's
   implication. It's a multi-purpose astronomical program which can
   present detailed, zoom-able star-charts as well as views of the earth,
   moon, planets and the entire solar-system. These views can be from any
   location on Earth, at any time in the past or future.
   
   This application can be effective on several levels. The casual
   star-gazer can consult xephem just to see what planets and
   constellations are visible on a certain night, and perhaps print out a
   star-chart. As a teaching aid xephem's graphical and animated displays
   could spark a student's interest. The serious amateur astronomer can
   set up a link between a telescope and the program, so that the
   sky-view displays whichever spot the telescope is also seeing.
   
   This review will be more comprehensible if a screenshot is presented
   first. The first window which appears when xephem is started is the
   control window:
   
   xephem controls
   
   In this window various parameters, such as location, date, and time,
   can be set. From the menubar the view windows can be summoned, as well
   as which of the various astronomical databases (included in the
   distribution) should be loaded into memory. These databases are quite
   a useful resource to have available. They include the Messier and NGC
   databases of deep-sky objects, along with databases of asteroids,
   comets, and satellites. Updated versions of the latter two are
   available on the xephem web-pages.
   
   Here is a screenshot of a skyview window:
   
   Skyview window
   
   This window is much more than a simple star-chart of a certain date,
   time, and location. Right-mouse-button clicking on a star or other
   astronomical object summons a small window showing various facts about
   the object. Zooming in can also be done with the mouse, and a zoomed
   view can be panned using the scroll-bars. A variety of viewing options
   can be set from the menubar. The constellation names and outlines can
   be shown, and if any of the xephem databases are loaded the objects in
   them will be visible, if desired.
   
   One view window which I find particulary interesting is the earth
   view. A representation of the earth from an orbital viewpoint is
   shown, with the sun's illumination and current zenith-point
   highlighted. This is updated in real-time, and equivalent views
   displaying the zenith location and area illumination of either the
   moon or the other planets are menu options.
   
   Earth View
   
   Another view-window displays the solar-system in schematic form. This
   and the earth-view windows can be animated, a sort of cartoon-movie
   which shows the relative movements of the various celestial objects.
   
                                Availability
                                      
   The xephem web-site is the place to visit if you'd like to investigate
   this application. Source for current development versions is available
   there; I've had good luck compiling and running these. Users lacking
   the Motif libraries can obtain statically-linked binary releases from
   this site, and updated databases are available as well. Elwood Downey
   is the author of xephem. If you install it, I'm sure he would be glad
   to hear any comments you might have. Last modified: Sat 31 Jan 1998 <
   !-- hhmts end -->
     _________________________________________________________________
   
                       Copyright  1998, Larry Ayers
           Published in Issue 25 of Linux Gazette, February 1998
     _________________________________________________________________
   
   [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
     _________________________________________________________________
   
    "Linux Gazette...making Linux just a little more fun!"
     _________________________________________________________________
   
                     A Simple Internet Dialer for Linux
                                      
                             By Martin Vermeer
     _________________________________________________________________
   
   Those of us that have used Netscape (or other Web browsers) under
   Windows, may have felt some envy at the sight of the Dialer, a little
   box in one corner of the screen showing that you are on-line and how
   much time you have already spent on-line, so your phone bill doesn't
   go overboard.
   
   In Linux, on the other hand, setting up a dial-up connection and
   making it work is often a rather painful process, a "challenge", if
   you like: Not only no handy auto-install packages available from your
   internet service provider -- you have to figure out everything for
   yourself, and know what questions to ask -- but also establishing the
   connection every time requires you to go through a sequence of
   operations.
   
   Open an xterm or a virtual console, log in as root, and run the ppp
   startup script (unless of course you use the  diald package for
   dial-on-demand, an alterative also. I personally found that it had too
   much a mind of its own :-).
   
   Closing the connection similarly requires you to do the same to run a
   disconnect script.
   
   One of the first things I did therefore when I decided to learn tcl/tk
   was to write a Dialer look-alike. It (tkdial) is attached to this
   text; it is the first tcl/tk program I ever wrote -- just under 150
   lines -- and that may show.  But tcl/tk is ideal for this kind of job,
   "glueing" existing command line facilities together into a beautiful
   motif-look, mouseable package. Just have a look at the pictures!
   ______________________________________________________________________
   
                          [link down]   [link up]
   ______________________________________________________________________
                                      
   You can put a call to this script somewhere in your X startup, in the
   case of Red Hat 5.0, in the file /etc/X11/Anotherlevel/fvwf2rc.init.
   Then you will always have it on your desktop (Linux lives on
   connectivity!).  It gives precise, interactive, manual control of your
   ppp link.
   
   There are some things with a dial-up connection which appear not
   generally known (I'm  not talking to you, geeks and gurus :-). I'll
   give a quick run-down of my experiences as I understood them (but note
   that I am no professional):
     * In order to be able to run tkdial (which calls pppd) as an
       ordinary user, you should have pppd set suid root. Additionally,
       you should be able to read the scripts in the /etc/ppp directory,
       so they should either be world readable or readable by a group to
       which you belong. (A nice exercise in basic system administration.
       But if you give world reading rights to your pap-secrets file, you
       will deservedly fail your exam!)
     * The standard Red Hat sendmail setup uses sendmail -bd -q1h, in
       other words, activate the sendmail daemon once an hour. That's not
       much. In a dial-up environment you want to send out mail while the
       line is up, so change the -q1h to -q2m, for example, for every two
       minutes. And follow with the mailq command if your mail really has
       left your machine, before closing down the ppp link. (If you
       forget, not to worry: The queue will continue to try for five
       days, every time ppp comes up.)
     * There is an option to pppd called lcp-echo-interval, which can be
       used to keep the line alive. LCP means Link Control Protocol, and
       by putting an option lcp-echo-interval 60 into either your
       /etc/ppp/options file or on the pppd command line when starting it
       up (i.e. inside the tkdial script file), you can keep your line
       alive even when not actively browsing.
       This is important because, with the ubiquity of crashy operating
       systems, internet service providers have taken to the habit to cut
       the line when nothing has arrived over it for a couple minutes.
       Imagine starting a five hour download, going shopping, and
       returning only to find that three minutes after you closed the
       door, the machine crashed and the phone line is still open,
       burning up your money for nothing! (This could even happen in
       principle with Linux, if the power goes down and you don't have an
       UPS, or your dog gnaws off the phone wire. Well, the modem has a
       time-out also). So Windows dialers send an empty package once
       every minute or so to the ISP, telling "don't worry, I'm still
       alive!" And when the system crashes, the line cuts promptly.
       With the option given above, also Linux will send an empty package
       every 60 seconds.
     * If you have a POP3 mail service, the best program (transport
       agent) undoubtedly is fetchmail, which transports the mail to your
       "system maildrop", typically /var/spool/mail/<userid>. Also
       fetchmail can be run as a daemon. You can use xbiff or xmailbox to
       inform you of arrived mail, and read it with pine, exmh
       (recommended, another one of those tcl/tk miracle programs!) or
       whatever. If you use Netscape mail, forget about all this, you
       just have to configure it on its own terms, which involves
       learning pretty much the same concepts anyway.
     * A trick (I don't really know if this is wise or intended, but it
       sure is effective!):
       If you use very much the same search agent all the time, e.g. Alta
       Vista, put it in the file /etc/hosts. Find out Alta Vista's IP
       address with ping. The details are left as an exercise for the
       reader, as well as the explanation for the speedup achieved (hint:
       DNS...)
     * Make sure that your machine name (as given in the network setup
       procedure) is the same as that which your ISP gave to your
       mailbox. So, if you are john.smith@isp-international.com, call
       your machine isp-international.com. Not very romantic, but you
       avoid problems with an anti-spam feature in some sendmail
       installations, which bounces mail coming from a "sender" not
       existing (i.e. not found by the domain name service) on the
       internet. (I expect that this feature can be circumvented by
       reconfiguring and recompiling sendmail.cf. I guess the sendmail
       folks just bet that such a feat is way beyond your average
       spammer, and I bet they're right...)
       Alternatively, make yourself exist; but that requires the
       co-operation of your ISP. E.g. EUnet would give you a mailbox name
       of donald.duck@john-smith.pp.fi, which provides you with a
       slightly more personalized name for your own machine...
       And make sure to keep the localhost  name also valid. Some
       programs depend on it.
   ______________________________________________________________________
   
   Acknowledgement: I am indebted to Jaakko Hyvtti of EUnet Finland, who
   provided me with working ppp scripts and plenty good advice.
   ______________________________________________________________________
   
                                   Enjoy!
   ______________________________________________________________________
                                      
                          (a piece of my desktop:)
                                      
                                     -
                                      
                                [my desktop]
     _________________________________________________________________
   
                      Copyright  1998, Martin Vermeer
           Published in Issue 25 of Linux Gazette, February 1998
     _________________________________________________________________
   
   [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
     _________________________________________________________________
   
    "Linux Gazette...making Linux just a little more fun!"
     _________________________________________________________________
   
                 Secure Public Access Internet Workstations
                                      
                             By Steven Singer 
     _________________________________________________________________
   
Introduction.

   Linux is the perfect operating system to deploy in a hostile
   environment, the built in security features combined with the
   customization most window managers allow make Linux ideally suited to
   this task. Recently a local career planning agency wanted to deploy a
   dozen public access Internet workstations at various locations in the
   community including libraries and hospitals. Linux was chosen as the
   operating system for the task. This article provides details about how
   to setup Linux so that it can safely be deployed as a public access
   workstation.
   
  Why Linux
  
   When it came time to decide on how to setup the workstations various
   solutions were considered. It was decided before hand that the
   hardware would be Intel-based PC's. That essentially left us to
   consider the various Microsoft offerings or Unix. The licensing costs
   for NT would have added significantly to the projects budget. Even
   after buying NT licenses for each workstation, an experienced
   administrator would have had to spend time configuring and securing
   each NT machine. It was determined that NT was an option, but an
   expensive one. Win95 is significantly cheaper than NT, but lacks the
   built in security features of a more advanced operating system. Our
   biggest fear with Win95, was that we would frequently have people
   walking in and messing up the systems setup. Linux offered us a
   solution to all of these problems. The flexibility of X-Windows,
   combined with Linux's basic security features allowed us to setup the
   workstations such that we did not have to fear hostile users. The
   licensing costs were essentially non-existent, and setting up each
   workstation became a manner of following a simple routine.
   
The Installation Procedure.

   When you have to setup a bunch of Linux workstations with essentially
   the same configuration, there are two approaches you can take. The
   first one consists of setting up and testing the first machine, then
   dupilicate the entire hard disk onto each workstation. (If you are
   doing this remember that you will most likely have to re-run Lilo on
   each workstation). The second method is to manually set-up each
   workstation by following a standard check-list. We opted for the
   second method due to logistical reasons. However, the installation
   procedure was automated by re-using config files, and running scripts
   where possible.
   
   We used RedHat 4.3 as our distribution, installing from the RedHat
   PowerCD set. I suspect any decent Linux distribution would have worked
   equally as well. By the time we had finished the installation of the
   first machine, I had established a step by step checklist of things to
   do during the install. As we went along, we occasionally revised the
   check-lists which required us to go back to the original few machines
   and make some changes after the fact.
   
  OS Installation & Networking.
  
   The installation started out as a standard Red-Hat install, the
   machines had plenty of hard disk space so we were quite liberal in
   what packages we installed. This included any networking stuff we felt
   was relevant, and X-windows. We had to manually install
   
   ipfwadm since there wasn't an explicit option for it.
   
    Dial-out-on demand.
    
   The machines were to be connected to the Internet via a modem, we used
   the dial-out-on demand PPP support that is built into the 2.x series
   of kernels. We placed a chat script containing the pertinent
   information in /etc/ppp and insured that only root had any sort of
   access to it.(mode 700) For more details on setting up dial-out on
   demand networking see the kernel 2.0 documentation and the PPP FAQ.
   The Networking HOWTO should also contain some useful information. We
   then tested the network connection to insure it worked.
   
X-Windows.

  XF86Config
  
   The XF86Config file is the configuration file for the XFree86 X
   server. We created this file as we would have for a normal Linux
   workstation running X except added the lines "DontZap" and "DontZoom".
   DontZap prevents a user from killing the X-server with a break key
   sequence. DontZoom prevents dynamic changing of resolutions. Both of
   these options prevent a hostile user from making the machine look
   somehow different for the next person that comes along. Further
   details about this file can be found in the XF86Config man page.
   
  Xdm.
  
   Xdm is a log in manager for X-windows. Instead of the standard
   text-based login prompt you normally get at the Linux console, Xdm is
   a X based program that asks the user for a user-name and password. The
   user is then logged in with X-windows running.
   
   The following files are located in xdm go in /usr/X11R6/lib/X11/xdm.
   
    Xsession
    
   We used a standard Xsession file, however we made sure that it loaded
   fvwm as our window manager(Other window managers will also work,
   however we decided to use fvwm)
   
    XResources
    
   The XResources file controls settings for xdm's log in process. We
   used the standard XResource file but added/changed the following
   lines. They all effect the apperence of the login window, with the
   exception of the last line which allows our guest account to work
   without a password.
   
     xlogin*greeting: Welcome, please log in as 'guest', with no
     password.
     xlogin*namePrompt: login:\xlogin*fail: Login incorrect, please use
     the username 'guest' with no password
     xlogin*allowNullPasswd: true
     
   and removed the following from the translations section to a user from
   getting around XDM.
   
     Ctrl<Key>R: abort-display()\n\
     
    XSetup
    
   The XSetup file is called once the user logs in, any programs you want
   to run upon login can be started from this file. this is where we
   would place an xsetroot command or something similar. The default
   version of XSetup might start Xconsole(a program that displays the
   text-output of the Xserver in a small window) we did not want this
   information to be visible so we commented that line out.
   
  FVWM setup.
  
   We choose fvwm as our window manger as a matter of personnel
   preference and familiarity, most other window managers will require
   similar changes. All configuration information for a users fvwm setup
   is stored in a file named .fvwmrc located in their home directory. A
   system-default version of the config file is often located in
   /usr/X11R6/lib/X11/fvwm/system.fvwmrc. We will use this file as our
   base, and outline the important things you will have to check for.
   Since there is no "standard" base fvwm configuration, I will only
   outline the changes to make, and will assume familiarity with the
   format of an fvwmrc file.
   
    The Popup Menu's.
    
   The config file you use as your base will most likely start off with
   some pop-up menu's predefined. You will want to remove many of the
   predefined menu items.. I would recommend only leaving two items,
   "netscape" and "exit".
   
    Paging.
    
   It is a good idea to disable paging, this will avoid some unnecessary
   user confusion.
   
   This can be done with a line saying.
   
     PagingDefault 0
     
   It is also a good idea to remove the "Pager" line if one exists.
   
    GoodStuff
    
   The GoodStuff program that comes with Fvwm places a "Button-bar" at a
   predetermined location on the screen. This button bar allows for easy
   launching of applications. GoodStuff is a flexible program that can be
   tailored to your taste. I chose a button bar consisting of a single
   row located at the top-left of the desktop. The following are the
   relevant lines.
   
     *GoodStuffRows 1*GoodStuff Netscape netscape.xpm Exec "Netscape"
     /usr/local/netscape/netscape*GoodStuff Logout mini.exit.xpm
     Quit-Verify 
     
   I created a pixmap file named netscape.xpm containing the netscape
   logo to be used as my icon. Pixmaps are usually stored in
   /usr/X11R6/include/pixmaps.
   
    Startup commands.
    
   Fvwm allows you to execute certain programs upon start-up. Since any
   guest users logging onto the machine would be using the Internet, we
   decided ensure that the modem starts to dial as soon as possible. We
   added an Initfunction section to the end of the fvwmrc file. If the
   PPP link already happens to be up, the ping will be successful,
   otherwise the kernel should start the connection process. Replace
   router.myisp.ca with the hostname of a machine located at your ISP.
   
     Function "InitFunction" Exec "I" /bin/ping -c 1 router.myisp.ca &
     EndFunction
     
Security Considerations.

  BIOS Setup.
  
   In a situation where the console is publicly accessible the BIOS is
   your first line of defense against hostile intent. Most modern BIOS's
   support password protection of some sort. It is recommended that a
   boot-up password be set. In our setup, we decided that we only wanted
   to allow "trusted" people to be able to boot the machine. Otherwise
   someone could boot the machine using a floppy disk as the root file
   system,(thus they will be able to gain root privledges), or
   alternatively boot into DOS and format the hard-disk. In addition to
   the boot-up password we also installed a password to protect the BIOS
   setup, and disabled booting from the floppy drive.
   
  Inittab
  
   /etc/inittab is the configuration file for the "init" process. Since
   we wanted our workstations to work only in X-Windows, we changed the
   initial runlevel to 5. It is done with the following line. This means
   that when the machine boots, The X-server and Xdm are started
   automatically.
   
     id:5:initdefault: 
     
   "Init" is also responsible for handling the "getty"'s or terminal
   monitors which handle text-based logins from the console or other
   terminals physically connected to the machine. The default inittab
   file should have a section that looks similar to this.
   
     1:12345:respawn:/sbin/mingetty tty1
     2:2345:respawn:/sbin/mingetty tty2
     3:2345:respawn:/sbin/mingetty tty3
     4:2345:respawn:/sbin/mingetty tty4
     5:2345:respawn:/sbin/mingetty tty5
     6:2345:respawn:/sbin/mingetty tty6
     
   You should remove the "5" from the second section of each line. The
   result should look something like this.
   
     1:1234:respawn:/sbin/mingetty tty1
     2:234:respawn:/sbin/mingetty tty2
     3:234:respawn:/sbin/mingetty tty3
     
   This means that when the system is in runlevel 5(The runlevel where
   X-windows starts up to handle log-ins.) A user is unable to login from
   the text-based console. Before making this change it is a good idea to
   insure that X-windows and XDM are working properly. Disabling
   text-based logins is not essential to security, but we felt that it
   would confuse users who would walk up to a machine that was left
   logged in text mode. If for some reason X-windows stops working after
   you disable text-based logins, you will have to boot the machine into
   single user mode in order to login. This can be done by passing an
   option to the kernel from the lilo command prompt.
   
  S90Console.
  
   RedHat uses the SVR4 style init-scripts to manage the boot-up process.
   The basic idea is that there is a directory for each runlevel under
   /etc/rc.d. When init switches runlevels it goes into the appropriate
   directory and executes each file that starts with a 'S' in ascending
   order. Eg on my RedHat system, when my system enters runlevel
   3(multi-user) first /etc/rc.d/rc3.d/S10network is executed, and lastly
   /etc/rc.d/rc3.d/S99local is executed.
   
   Even though we disabled the getty's for the console, a user could
   still press CTRL-ALT-F1 (or another function key) to switch to another
   virtual console from X-windows. I am unaware of a way of preventing
   this (short of kernel modifications). So in the event that a user
   accidently ended up switching virtual consoles we decided to leave the
   user instructions on how to get back into X-windows. We created the
   file S90Console and placed it in /etc/rc.d/rc5.d and gave root execute
   permissions to it. The file looks as follows.
   
     #!/bin/shD="Press Ctrl+Alt+F2 to use this computer"
     echo $D>/dev/tty1
     echo $D>/dev/tty3
     echo $D>/dev/tty4
     echo $D>/dev/tty5
     echo $D>/dev/tty6
     echo $D>/dev/tty7
     
   Since getty does not run on any virtual-consoles, the X-server uses
   the second virtual console by default.
   
  inetd.conf
  
   The file /etc/inetd.conf is the configuration file for the inetd
   daemon. This daemon is responsible for starting daemons that provide
   network services when needed. Not all daemons are started by inetd.
   Many, such as sendmail and httpd can either run in standalone mode, or
   under inetd. If your machine is only being used as a workstation, and
   is not providing network services to anyone then you should disable
   all unnecessary daemons. To disable a daemon that is currently being
   started by inetd, just added a '#' sign at the beginning of the
   relevant line to comment it out. I would recommend disabling finger,
   pop, ntalk, talk, and any other daemons that are not being used. We
   decided to leave telnet and ftp enabled to allow for remote
   administration. However if you are doing this remember to keep an eye
   out for security advisories that deal with problems associated with
   these packages(and any other program that is running on your system.)
   Usually fixing a bug is just a question of upgrading to the newest
   version of the program in question.
   
  Firewalling Issues.
  
   The Linux kernel can be configured to support IP Firewalling. This
   allows you to specify what packets the kernel should ignore, for
   example you can instruct the kernel to refuse to route any packets
   from the local machine destined to TCP port 25(of any machine). You
   must enable IP Firewalling, when compiling your kernel if you want to
   use this feature. You control the firewall parameters with the
   "ipfwadm" command, usually located in /sbin. We added the following
   lines to /etc/rc.d/rc5.d/S99local.
   
     /sbin/ipfwadm -I -f
     
     /sbin/ipfwadm -O -f
     
     /sbin/ipfwadm -O -a deny -P tcp -D 0.0.0.0/0.0.0.0 25
     
     /sbin/ipfwadm -O -a deny -P tcp -D 0.0.0.0/0.0.0.0 119 
     
   This restricts all outgoing traffic to port 25 (The mail port) so
   users can not send mail. Since anyone could walk up and use our
   workstations, we felt that it would be a bad idea to allow them to
   send mail. Likewise we restricted port 119(the news port) so usenet
   access is not allowed. Ideally we would have liked to allow read-only
   usenet access from Netscape, however I could not figure out how to do
   this so decided to be safe and restrict all usenet access.
   
  Permissions.
  
   In order to insure that your setup stays, you will want to change the
   permissions on various files located inside the guest users home
   directory. By this point you should have already created a guest user.
   You should also run netscape for the first time as the guest user
   before making these changes.
   
     chown root /home/guestchmod 555 /home/guestchown root
     /home/guest/.fvwmrc /home/guest/.bash_profile chown root
     /home/guest/.Xdefaults /home/guest/.bashrc
     /home/guest/.bash_logoutchmod 555 /home/guest/.fvwmrc
     /home/guest/.bash_profile /home/guest/.Xdefaults
     /home/guest/.bashrc /home/guest/.bash_logoutchmod 444
     /home/guest/.netscape/preferences
     /home/guest/.netscape/bookmarks.htmlchown root
     /home/guest/.netscape/preferences
     /home/guest/.netscape/bookmarks.htm
     
   The commands above were executed, first we gave root ownership of the
   users home directory. Changing ownership prevents the user from
   changing the permissions back. Then we removed write access to the
   home directory. Next we changed ownership and removed write access to
   the .fvwmrc file, the .bash_profile, .Xdefaults, .bash_logout, and
   .bashrc. This prevents a user from changing aspects of his
   environment. Finally we secured the netscape preferences file, and the
   bookmarks file. A user can still change the settings in netscape,
   however they will not be saved, so the next person to login will be
   presented with the default settings.
     _________________________________________________________________
   
                      Copyright  1998, Steven Singer
           Published in Issue 25 of Linux Gazette, February 1998
     _________________________________________________________________
   
   [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
     _________________________________________________________________
   
    "Linux Gazette...making Linux just a little more fun!"
     _________________________________________________________________
   
                    The Software World--It's a Changin'
                                      
                               By Phil Hughes
     _________________________________________________________________
   
   First, let me set the scene: today is January 22. The important events
   of this day are:
     * Bill Clinton is once again accused of a sexual impropriety.
     * The Pope is in Cuba.
     * Netscape has announced that that their browser is now free and
       that they will freely distribute the source code for it.
     * Microsoft has somewhat folded in its browser battle with the U.S.
       Justice Department.
       
   The first two items are just for context--it has been an exciting day.
   I am really here to discuss the last two items.
   
   Let's get the Microsoft information out of the way first. My
   understanding is that a compromise has been reached between Microsoft
   and the justice department--the Internet Explorer icon will not appear
   on the desktop, but the browser itself will still be included. As the
   easiest way to get a new browser is to download it off the Internet
   and 90% of all personal computers today come with Microsoft Windows,
   it seems that all we have done is make it a little harder for Internet
   Explorer to be on 90% of the desktops. Hopefully, there will be
   further developments in the Microsoft vs. the U.S. Justice Department
   game.
   
   The Netscape item has two parts. The first, making the browser
   available for free really is a necessity; 90% of new personal
   computers come with Windows and, thus, Internet Explorer. Whether IE
   is better than anything Netscape offers or not isn't the issue if one
   comes with your computer and you have to go buy and install the other
   one. Numbers back up this statement. Netscape used to account for
   about 90% of the browser market while 60% is probably the case today.
   
   The good news for Netscape is that they have managed to shift their
   revenue stream away from stand-alone client software. Their own
   numbers show that in the fourth quarter of 1997 these revenues were
   only 13% of total, down from 45% a year earlier.
   
   By far the most interesting part of Netscape's announcement for the
   Linux community is the fact they will release the source code for
   Communicator starting with 5.0. Sure, this will also make a change for
   them in the Windows arena and may force Microsoft to make some brave
   decision as well, but let's look at what this does for the Linux
   community.
   
   The first thing I see is talk on the Gnome mailing list about a
   version of Navigator using Gnome. Call it Gnomescape, it is
   potentially a full-featured browser with a look and feel that is
   likely to become the Linux standard. [For more on Gnome see the "KDE
   and Gnome" article by Larry Ayers in issue 24 of Linux Gazette January
   1998.]
   
   Netscape claims they are releasing the code to allow the Internet
   community to contribute to the development. (I expect Linux helped
   them realize that is possible.) For us, this can mean that instead of
   complaining about Netscape bugs, we can fix them. I expect, based on
   Linux history, the best, most bug-free version of Netscape will appear
   on Linux systems first.
   
   Free Communicator and free source code means that Linux systems become
   a much cheaper choice for "Web Appliances". It also means inexpensive
   kiosks at shopping malls, car dealers, etc. While I am sure Netscape
   made this decision to help their competitive position with Microsoft,
   I think we will see a huge impact on the Linux scene. Of course, if
   Linux replaces Windows as the operating system installed on 90% of the
   PCs sold today, Netscape will be as happy as the Linux community.
   
   What's still up in the air is what sort of license the source code
   will fall under. GPL is one choice; a license more like that of BSD is
   another. Check out "Linux News" and the discussion groups on our web
   site to get up to the minute information on what is happening.
     _________________________________________________________________
   
                       Copyright  1998, Phil Hughes
           Published in Issue 25 of Linux Gazette, February 1998
     _________________________________________________________________
   
   [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
     _________________________________________________________________
   
                          Linux Gazette Back Page
                                      
           Copyright  1998 Specialized Systems Consultants, Inc.
For information regarding copying and distribution of this material see the
                              Copying License.
     _________________________________________________________________
   
  Contents:
  
     * About This Month's Authors
     * Not Linux
     _________________________________________________________________
   
                         About This Month's Authors
     _________________________________________________________________
   
    Randy Appleton
    
   Randy Appleton is a professor of Computer Science at Northern Michigan
   University. Randy got his Ph.D. at the University of Kentucky. He has
   been involved with Linux since before version 0.9. Current research
   includes high performance pre-fetching file systems, with a coming
   port to the 2.X version of Linux. Other interests include airplanes,
   especially home-built ones.
   
    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.
   
    Jim Dennis
    
   Jim Dennis is the proprietor of Starshine Technical Services. His
   professional experience includes work in the technical support,
   quality assurance, and information services (MIS) departments of
   software companies like Quarterdeck, Symantec/ Peter Norton Group, and
   McAfee Associates -- as well as positions (field service rep) with
   smaller VAR's. He's been using Linux since version 0.99p10 and is an
   active participant on an ever-changing list of mailing lists and
   newsgroups. He's just started collaborating on the 2nd Edition for a
   book on Unix systems administration. Jim is an avid science fiction
   fan -- and was married at the World Science Fiction Convention in
   Anaheim.
   
    Rick Dearman
    
   Rick is an American living and working in the United Kingdom as a
   computer programming consultant. He is currently attempting to wean
   himself off late nights, coffee, and computers, on to early morning
   jogs and fresh orange juice. Unfortunately it isn't working that well.
   
    Bernard Doyle
    
   Bernard is a self-employed programmer/analyst in Sydney, Australia. He
   mainly works on developing software for handheld pen PCs. His web page
   is at http://www.moreinfo.com.au/bjd/. He hopes to set up a Web Server
   running Linux at some time in the future. Comments, etc. can be sent
   to bernardd@wr.com.au
   
    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. He dreams of permanently tele-commuting from his home on the
   Pacific coast of the Olympic Peninsula. As an employer, he is
   "Vicious, Evil, Mean, & Nasty, but kind of mellow" as a boss should
   be.
   
    Mike List
    
   Mike List is a father of four teenagers, musician, and recently
   reformed technophobe, who has been into computers since April,1996,
   and Linux since July.
   
    IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Leonardo Lopes
    
   Leonardo is originally from Brazil. He has a degree in CS and is
   currently a Ph.D. candidate in Industrial Engineering at Northwestern
   University. He also enjoy computers, playing soccer and guitar, and
   fast cars.
   
    IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Leonardo Lopes
    
   Eric is studying computer science in Toulouse, France, and is a member
   of the local Linux Users Group. He enjoys programming, cycling and Led
   Zeppelin. He admits to once having owned a Macintosh, but denies any
   connection with the the Eric Conspiracy Secret Labs.
   
    Russell C. Pavlicek
    
   Russell is employed by Digital Equipment Corporation as a software
   consultant serving US Federal Government customers in the Washington
   D.C. area. He is constantly looking for opportunities to employ Linux
   on the job. He lives with his lovely wife and wonderful children in
   rural Maryland where they serve Yeshua and surround themselves with a
   variety of furry creatures. His opinions are entirely his own (but he
   will allow you to adopt one or two if you ask nicely).
   
    IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Kristian Elof Srensen
    
   Kristian lives in Copenhagen, Denmark where he makes database enabled
   web-sites, builds intranets, programs, trains users and does other
   forms of Inter/intra-net contracting work. He has made some of the
   information on The Linux Rescource Exchange, but apart from that
   hasn't contributed to Linux. When not working, he likes to study
   Nordic and British 19th century philosophy and literature.
   
    Martin Vermeer
    
   Martin is a European citizen born in The Netherlands in 1953 and
   living with his wife in Helsinki, Finland, since 1981, where he is
   employed as a research professor at the Finnish Geodetic Institute.
   His first UNIX experience was in 1984 with OS-9, running on a Dragon
   MC6809E home computer (64k memory, 720k disk!). He is a relative
   newcomer to Linux, installing RH4.0 February 1997 on his home PC and,
   encouraged, only a week later on his job PC. Now he runs 5.0 at home,
   job soon to follow. Special Linux interests: LyX, Pascal (p2c),
   tcl/tk.
     _________________________________________________________________
   
                                 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.
   
   Thanks to my wonderful husband, Riley, for the hard work he has done
   the last three months to help get LG out. He has, however, decided
   that he no longer wishes to take full responsibility for Linux Gazette
   so I am once more in the driver's seat. Whether or not I decide to
   outsource it again remains to be decided.
   
   In the meantime, I'm having fun and enjoying all the mail and good
   articles that you guys have been sending in. Lots of you have
   subscribed to our announcement service and it seems to be working well
   -- no complaints!
   
   Linux Journal has redesigned its Linux Resources Page. Check it out
   and give us your comments and suggestions. We'd like these pages to be
   community effort and will provide space for discussion groups and
   Linux projects. Just get in touch with our webmaster.
   
   Have fun!
   
   Marjorie L. Richardson
   Editor, Linux Gazette, gazette@ssc.com
     _________________________________________________________________
   
   [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back 
     _________________________________________________________________
   
   Linux Gazette Issue 25, February 1998, http://www.linuxgazette.com/
   This page written and maintained by the Editor of Linux Gazette,
   gazette@ssc.com
