
           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
                                       
                                   LinuxMall
                                       
                                Linux Resources
                                       
                                    Mozilla
                                       
   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.
   
   Linux Gazette is a non-commercial, freely available publication and
   will remain that way. Show your support by using the products of our
   sponsors and publisher.
     _________________________________________________________________
   
                             Table of Contents
                            July 1998 Issue #30
     _________________________________________________________________
   
     * The Front Page
     * The MailBag
          + Help Wanted
          + General Mail
     * More 2 Cent Tips
          + Producing a Resume in PDF with LaTeX
          + UNIX System man Pages
          + ext2 Partitions
          + Re: bpp 16 Question
          + Network Cards
          + Tip for using Windows 95 buttons in KDE
          + PPP, SLIP and Other Remote Service 
          + News Bytes
               o News in General
               o Software Announcements
          + The Answer Guy, by James T. Dennis
          + CHAOS: CHeap Array of Obsolete Systems, by Alex Vrenios
          + Clueless at the Prompt, by Mike List
          + 8 Reasons to Make the Switch, by Bill Bennet
          + Integrated Software Development with WipeOut, by Gerd Mueller
          + Install New Icons in Caldera's Looking Glass Desktop, by
            David Nelson
          + Installing Microsoft & Linux , by Manish P. Pagey
          + Linux Expo
               o Linux Expo a Smashing Success!, by Norman M. Jacobowitz
               o Linux Expo Editor Wars!, by Eric S. Raymond
               o The Fourth Annual Linux Expo, by David Penland
          + LinuxCAD Impressions, by Robert Wuest
          + Book Review: A Methodology for Developing and Deploying
            Internet & Intranet Solutions, by Jan Rooijackers
          + New Release Reviews, by Larry Ayers
               o The Blackbox Window-Manager
               o Lesstif: One User's Impressions
               o Sabre: An Svgalib Flight Sim
               o SFM: A New GTK-Based Application
          + Portable GUI C++ Libraries, by Sean C. Starkey
          + Using Linux Instead of an X Emulator, by Al Koscielny
          + USENIX 1998, by Aaron Mauck
          + The Back Page
               o About This Month's Authors
               o Not Linux
       The Answer Guy
       The Graphics Muse 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 -- Article Ideas
     * General Mail
     _________________________________________________________________
   
                        Help Wanted -- Article Ideas
     _________________________________________________________________
   
   Date: Wed, 03 Jun 1998 11:05:23 +0100
   From: Maurizio Ferrari, Maurizio.Ferrari@tin.it
   Subject: Photogrammetry tools for Linux? 
   
   I am looking for a Linux program to do some close-range
   photogrammetry. Close range photogrammetry is a technique that enables
   to reconstruct 3D images from a series of 2D pictures. There are a few
   powerful (and relatively inexpensive) tools for Windows but none so
   far for Linux, that I know of. There was something once upon a time
   called Photo4D. Despite my massive Internet search, any occurrence of
   Photo4D seems to have been wipe erased from the face of earth. It is
   listed in SAL but all the links fail.
   
   I don't want to resort to buy and use Windows software for this. Help,
   anyone?
   
   Maurizio
     _________________________________________________________________
   
   Date: Sun, 07 Jun 1998 11:36:33 -0500
   From: Mike Godwin, mgodwin@socket.net
   Subject: Searching (somewhat in vain) for sources on shell scripting
   
   I recently came across an excellent mini-howto on overcoming some of
   the pitfalls of having a dynamic IP address
   (ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/unmaintained/mini/Dynamic-
   IP-Hacks).
   
   Reading this document has refueled my desire to learn shell scripting,
   sed rules and the like. My search of the Internet for information on
   these topics has, however, been fruitless.
   
   I would be most grateful if someone could point me to a good shell
   scripting tutorial or book.
   
   Thanks in advance.
   
   Mike
     _________________________________________________________________
   
   Date: Fri, 5 Jun 1998 22:58:11 +0200
   From: "Himbeergarten Hummel", himbeergarten.hummel@nanet.at
   Subject: X Window System on a monochrome notebook
   
   I've a 486dx notebook with a monochrome display what shall I do to
   make X windows run?
   
   Himbeergarten Hummel
     _________________________________________________________________
   
   Date: Tue, 09 Jun 1998 13:06:28 PDT
   From: "Dave Stevens", davestevens@hotmail.com
   Subject: kudos
   
   I think the Coldiron article on replacing NT with Linux is the best
   thing I've seen in the gazette. Congratulations. More such articles
   are needed. I am especially interested in an article explaining why
   Linux doesn't come with a "system requirements" box on the package (no
   package??). Seriously, though, I am a computer dealer and have many
   times advised people to buy their application software first then buy
   a computer that will run that package. If I tell my customers to go
   out and buy a 386 with 16 MB of ram and a half MB video card and a 200
   MB hard drive, they will think I am [characterization deleted!] in the
   head. And maybe they'll be right. How much difference does the
   underlying hardware make to the user of an X application, and how can
   I assess (for them) the varying cost effectiveness of a faster
   processor versus more RAM versus a SCSI disk versus just a bigger IDE
   disk. Maybe you can commission an article like this. (Don't even THINK
   of asking me). Someone of your loyal readers must have relevant
   experience to write up.
   
   Great magazine, keep up the good work. If ever you find yourself in
   northern BC I will happily buy you a beer.
   
   Dave Stevens
     _________________________________________________________________
   
   Date: Fri, 12 Jun 1998 08:49:05 -0700 (PDT)
   From: Renato Weiner, reweiner@yahoo.com
   Subject: Suggestion for Article
   
   Recently I was looking at the Gazette and I think I have a good
   suggestion of an article that will be very useful for the Linux
   community.
   
   I have had some technical difficulties of having two simultaneous
   versions of Kernels in my system. I mean a stable one and a developing
   one. I searched the net looking for information of how to co-exist
   both but it's completely fragmented.
   
   If somebody more experienced could put all this information together,
   it will certainly help a lot of people from kernels developers to
   end-users.
   
   Thanks a lot for your patience.
   Renato.
     _________________________________________________________________
   
   Date: Tue, 16 Jun 1998 10:42:06 +0200
   From: Carlo Vinante, vinante@igi.pd.cnr.it
   Subject: Printing Problems
   
   I've just updated to Red Hat 5.0, and I cannot print anymore documents
   using Ghostview, or LyX or whatever. Tests are OK. Have somebody a
   suggestion ?
   
   Carlo Vinante
     _________________________________________________________________
   
   Date: Mon, 15 Jun 1998 15:46:35 +0200 (MET DST)
   From: Sara Briganti mat.1510, briganti@CsR.UniBo.IT
   Subject: Information
   
   We are 4 Italian students and we're just have a look about ELM's
   sources. We have a lot of problems about these...
   Could you ELM us? Do you know any interesting site about how ELM
   works? And about sendmail?
   
   Thank you a lot. Bye.
   
   Sara, Elsa, Michele, Livio
     _________________________________________________________________
   
   Date: Sat, 13 Jun 1998 22:24:47 +0200
   From: Daniele Verzelloni, dverzel@tin.it
   Subject: Network configuring
   
   Help me in configuring Red Hat Linux about networking. I've a ISDN
   Adapter by Asuscom that I use for Internet in Windows95 and I can't
   configure it! I've even got an Ethernet adapter to go to another
   computer and in the same way I can't configure it! Thank you and sorry
   for my bad English, I'm Italian.
   
   Daniele
     _________________________________________________________________
   
   Date: Thu, 18 Jun 1998 23:12:30 +0200
   From: Eric CANAL, Eric.Canal@supelec.fr
   Subject: a question
   
   I've recently bought a CD-ROM recorder I would like to know if it is
   legal to make a Red Hat CD distribution for my own use. My idea is to
   copy the FTP distribution on a CD and to install it. I've tried but it
   tells me that I don't have a Red Hat CD-ROM. Do I miss a particular
   file?
   
   thanks for your answer and BRAVO for your Gazette :)
   
   a French reader, Eric Canal
   
     (Better check with Red Hat about legalities. --Editor) 
     _________________________________________________________________
   
   Date: Tue, 23 Jun 1998 23:54:20 -0700
   From: Ruth Milne, rmilne@mail.bulkley.net
   Subject: article idea
   
   I have been reading a lot of speculation about whether Linux can ever
   displace Microsoft on the desktop. In the course of wading through a
   lot of hype I haven't seen much actual experience reported about an
   ordinary computer user installing Linux on their PC. I don't mean
   someone who is already a Linux enthusiast and I don't mean someone
   with a computer science degree either. Just an ordinary computer user
   with an IQ bigger than a shoe size, sitting down with a brand new
   Intel box and a Red Hat 5.1 package, say, and going through the hoops
   up to the point where X starts up okay and the modem is a working
   Internet device. This ought to be compared to such a person doing the
   same operation with a new box and a copy of W98. I think that would
   make a useful comparison.
   
   Dave Stevens
     _________________________________________________________________
   
   Date: Thu, 25 Jun 1998 03:32:11 EDT
   From: RangeScale@aol.com
   Subject: Need older Linux
   
   Okay, I am pretty new to Linux and am trying to learn it. The main
   problem is, is that I always have my desktop tied up doing more
   important things, and also don't have the room on it to hold Linux. My
   solution is to pull out my old 286 laptop (old but very good) and use
   that to start learning Linux. My big problem, though, is finding a
   version that will run on that. I have the Debian 1.3, but min reg. are
   386+. Is there a ver. that will run on 286 - and where can I get it?
     _________________________________________________________________
   
   Date: Sun, 28 Jun 1998 00:47:14 +0200
   From: B.L.Michielsen, BMichielsen@csi.com
   Subject: Communication Problem
   
   I have a problem communicating with Compuserve through Seyon since I
   installed a 16650A serial card on my Dell 486DX2 66MHz running RedHat
   4.1 Kernel 2.0.17. and a USRobotics SportsterMessagePlus
   
   modem. Before, I used a 14.4 Hayes compatible modem connected to a
   serial port with a 16450 IC, in that configuration everything was slow
   
   but OK. I am connecting to a Compuserve server with baud rates to
   28.800bps. The characters in the Seyon terminal form unreadable
   garbage, and I cannot find out how to parameterize the connection to
   get it right. To complete the information, when I make a ppp
   connection to a 56kbps server of Compuserve and use Netscape
   communicator, everything runs perfectly well, so I guess the Seyon
   problem is not related to kernel parameters but rather to xterm?
   
   Any help would be greatly appreciated.
   
   Bas L. Michielsen
     _________________________________________________________________
   
                                General Mail
     _________________________________________________________________
   
   Date: Tue, 02 Jun 98 12:19:28 -0500
   From: cokeydepercin@pmsc.com
   Subject: Article on home networking.
   
   I just read a reply to the home networking article by Mr. Gray and I
   agree that home networking is cheap and easy. I disagree somewhat
   about the 100baseT. I've just upgraded from 10baseT to 100baseT. The
   hub was $100USD for an eight port hub with uplink and the cards were
   $30USD (Dec Tulip chip set). I've heard there may be some cheaper NICs
   now $20~25USD. My upgrade cost was $250 for 5 machines - 3 Win95,
   Linux server, multi-boot Linux/win95/NT - the cable was CAT5 to begin
   with. The additional cost of putting in 100 vs 10 is so slight, about
   $115 in this case as the cable is the same, that it isn't worth
   installing 10baseT. The advantage is that 100baseT and a reasonably
   fast Linux machine allows a Win95 machine to access apps almost as
   fast (in some cases faster) from the network than from its own drive.
   Note that I too build from junk as much as possible and the children's
   machines (the Win95 ones) are very low end Pentium and have old slow
   small drives than contain only the OS and swap. Everything else is on
   the server (install once use many!).
   
   There is a caveat to this of course. 100baseT NICs for ISA machines
   are VERY expensive so if you have ISA machines, your only realistic
   choice is 10baseT. The one 100baseT ISA NCI I priced (3Com) cost more
   than all the PCI NICs for my upgrade.
   
   Just my $0.02 or so. Keep up the good work, I really enjoy the
   magazine.
   
   Cokey
     _________________________________________________________________
   
   Date: Tue, 02 Jun 1998 15:48:27 +0100
   From: Raphael Marvie, raphael.marvie@cs.man.ac.uk
   Subject: Comment about LG last review
   
   It took me 3 tries to get the full article about "Replacing NT by
   Linux" but I finally did it. I am very pleased to see people from the
   "real-world" as they call themselves to admit that Linux can avoid lot
   of people using bad softwares. There is only one thing that make me
   sad, the only people who are going to read this article are Linux
   users.
   
   Is there any solution to make "real-world" people reading such
   article? I not talking of a holy war against M$, but I think the worse
   thing for Linux and other brilliant systems or soft is that the end
   user never heard of this solution.
   
   The fact that Netscape has moved to Open Source Software was a big
   advert for the GNU/Linux solutions. I hope we will be able to take
   advantage of it to say to managers "Hey, we can do every thing you
   want, and in a better way than it is done yet by Micro$oft and Co. You
   just have not to think in buying a solution 60,000$ each year for
   updates but paying someone 60,000$ a year for building you the exact
   solution you need using Open Source Software. Which means for you
   having a *personal* *reliable* *IT* solution."
   
   That is the challenge: teach them that a man or a woman is more
   important than a soft, because this man or this woman can adapt
   (him|her)self to the need of a firm, and is more important for the end
   user as a spring of information than a bad-written manual.
   
   Keep on LG, the job you are doing is brilliant.
   
   Linuxly yours, Raphael
     _________________________________________________________________
   
   Date: Tue, 02 Jun 1998 13:36:06 +0000
   From: Andrew Josey, a.josey@opengroup.org
   Subject: Web resource - UNIX 98 Spec online
   
   With the recent announcements concerning Linux and conformance to the
   UNIX 98 specification, I thought it would be useful to send you the
   URL where the online specification can be browsed, searched and
   downloaded.
   
   Its at http://www.UNIX-systems.org/go/unix/
   
   Perhaps you could include this as a tip in the next Linux gazette.
   
   best regards, Andrew
     _________________________________________________________________
   
   Date: Tue, 2 Jun 1998 12:19:44 +1000 (EST)
   From: Con Zymaris, conz@cyber.com.au
   Subject: Article ideas...
   
   It would be of general interest, and help the linux/open source
   community, if people out there were introduced to the concept of
   advocating that their local University had its Computer Science
   students' major final year projects written as open-source. For
   reasons why the students would want to do this, check out:
   http://www.cyber.com.au/misc/frsbiz/students.htm
   
   Cheers, Con
     _________________________________________________________________
   
   Date: Mon, 1 Jun 1998 16:04:12 -0700
   From: "Travis Clark", hilt@telepath.com
   Subject: Simple Suggestion
   
   To further Linux in this world of ours, I think it fitting that Linux
   Programmers look at two different ways this can be accomplished:
    1. Applications - This does not end in Word Processors... Desktop
       Publishing systems, a simple database system, Accounting Software,
       the whole nine yards. If we focused on software that companies use
       at a lower price (or freeware) than Windoze, and comparable or
       better performance, then Linux would be more acceptable world
       wide.
    2. Games - As much as I hate to admit it, Games are a must in this PC
       world. There are versions of popular games for linux, but there
       are no MAJOR companies designing games for Linux. If we can get a
       Doom/Myst/DeerHunter type game specifically designed for Linux,
       then Linux will definitely have more interest in the market.
       
   That's my two cents...
   
   Travis Clark
     _________________________________________________________________
   
   Date: Mon, 22 Jun 1998 14:50:45 -0400
   From: Brian Catlin, Brian_Catlin@BayNetworks.COM 
   Subject: Suggestions to improve readability
   
   First, I would like to express my appreciation to all the authors for
   taking time to write excellent articles.
   
   I do, however, have a suggestion or two that will make the
   accessibility of the zine that much better.
   
   As background, I am one of your readers that prints out the zine, then
   reads it. It is much easier for my tired old eyes that way, and I also
   get a nice resource to use when the screen is cluttered with windows
   of different things for the project I am working on.
   
   With that said, I have a couple problems that can be easily solved.
     * The first thing is links in the articles. The usual standard one
       sees on the net is to put the URL in the body of the article and
       then link it. This way us off-line readers can fire up a browser
       later and go directly to the site mentioned without having to find
       the link in the online version of the article.
     * Secondly, and this came up in the latest issue BTW, when giving
       source code, config or other text-based examples, please keep them
       as text. Putting backgrounds behind the code makes them hard to
       read, and if they are in fact graphics, one has to type in the
       code by hand. A better way is to delineate it with some sort of
       blocking character string and use the appropriate HTML tag to show
       it is an example. I tend to use the following to start and stop
       sections of code:
       #-----------------------------
       (Note: it is a pound sign with a bunch of dashes).
       This will speed loading into browsers online, allow cut and paste
       operations, and ensure readability for the off-line printout
       readers. (I know that more people that just I do this!)
       
   Thanks again for a great zine!
   
   Brian
   
     (Okay, one, I'm guessing you are objecting to the practice of using
     word instead of the address in the link so the text version only
     shows the word and drops the address. I can make sure this happens
     in sections that I do myself, but I really don't have time to do it
     for every article. I will print your letter and maybe that will
     give authors a push in the right direction. Second, I use whatever
     the authors send as listings and most do keep them between
     <pre></pre> tags without backgrounds. Mr. Coldiron article last
     month did use backgrounds. His article has been quite popular.
     Thanks for writing, --Editor) 
     _________________________________________________________________
   
               Published in Linux Gazette Issue 30, July 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:
  
     * Producing a Resume in PDF with LaTeX
     * UNIX System man Pages
     * ext2 Partitions
     * Re: bpp 16 Question
     * Network Cards
     * Tip for using Windows 95 buttons in KDE
     * PPP, SLIP and Other Remote Service Support
     _________________________________________________________________
   
  Producing a resume in PDF with LaTeX
  
   From: David M. Cook davecook@hotmail.com
   Date: Mon, 01 Jun 1998 23:05:24 +0000
   
   LaTeX and the resume.sty package are an easy way to produce a very
   attractive resume under Linux. One just needs to fill in the
   boilerplate provided. resume.sty is available from any CTAN archive,
   such as cdrom.com:
   htp://ftp.cdrom.com/.1/tex/ctan/macros/latex209/contrib/resume
   
   However, I've found that windows users are often not familiar with the
   usual Postscript output of the dvips program or how to view it.
   Luckily, Ghostscript provides the ps2pdf program for converting
   Postscript to Adobe's Portable Document Format, which is fairly
   familiar to windows users.
   
   However, converted ps documents that were produced from LaTeX source
   using the default Computer Modern fonts look very poor when read with
   the Adobe PDF reader. The trick is to use the times package, which
   changes all the fonts produced by your LaTeX source to one the Adobe
   reader can handle. Just include the package like this in your
   document:

\documentclass[12pt]{article}
\usepackage{resume,times}
%other preamble commands
\begin{document}
%document body
\end{document}

   Some other things worth mentioning here: PStill, another PS->PDF
   converter; pdfTeX, which produces PDF instead of DVI files from TeX
   input; and finally the TeX User's Group page which has tons of great
   links:
   ftp://ftp.cstug.cz/pub/tex/local/cstug/thanh/pdftex/
   http://www.this.net/~frank/pstill.html
   http://www.tug.org/interest.html
   
   --
   Dave Cook
     _________________________________________________________________
   
  UNIX system man pages
  
   From: Andrew Josey a.josey@opengroup.org
   Date: Wed, 03 Jun 1998 10:10:41 +0000
   
   Hello, included is a possible tip for the Linux Gazette.
   
   Ever needed to know what the official UNIX man page for a particular
   command or function says? A new web resource from The Open Group is
   the Common Access to the UNIX Man Pages, a hypertext html set of
   browsable pages common to all UNIX 95 and UNIX 98 branded systems.
   
   To try it out see http://www.opengroup.org/common_access/
   
   --
   Andrew Josey
     _________________________________________________________________
   
  ext2 Partitions
  
   From: Albert T. Croft acroft@cyber-wizard
   Date: Mon, 08 Jun 1998 14:57:03 -0500
   
   I recently ran into a small problem, and I think the results of it
   might be helpful to others. I was recently helping out a friend with a
   problem on his Linux machine, and we needed to find a
   file-unfortunately, neither of us knew where it might've been
   installed.
   
   Having both ext2 and vfat partitions, we realized that doing a find
   command might take a while, and would probably give some false
   results. We knew there might be files with similar names on his vfat
   partition-files we were sure were not the ones we were looking for. We
   knew the files we were looking for would only be on the ext2
   partitions.
   
   We started looking for an answer with the -mount option for the find
   command; unfortunately for us, it only looked at files on the same
   device as the path given to the find command. (A look at the results
   of the mount command shows why that would be a problem for us.)

 /dev/hda2 on / type ext2 (rw)
 none on /proc type proc (rw)
 /dev/hda6 on /home type ext2 (rw)
 /dev/hda8 on /tmp type ext2 (rw)
 /dev/hda7 on /usr type ext2 (rw)
 /dev/hda1 on /win95 type vfat (rw,umask=0111)

   We tried writing a batch file, using grep and gawk to get the mount
   points for the ext2 partitions and handing them to find. This proved
   unworkable if we were looking for patterns, such as h2*. We then tried
   to write just a find command, using gawk and grep to get the mount
   points. This was somewhat better, but using a print statement in gawk
   to get the names of the mount points wouldn't work. Some help came
   with remembering that gawk has a printf statement, allow.
   
   Our final product, which we found quite useful and now have in our
   .bashrc files as linuxfind, is the following:

 find `mount|grep ext2|gawk '{printf "%s ", $3}'` -name

   To use as an alias:
alias linuxfind="find `mount|grep ext2|gawk '{printf "%s ", $3}'` -name "

   Written this way, other options to the find command can be specified,
   such as -perm, -exec and -type. To use it, we simply type something
   like:

 linuxfind less
 linuxfind h2*
 linuxfind x* -perm -2000

   The only problems we can see with this command so far are (1) if there
   are drives mounted at login that are unmounted during the session, the
   mount points are still searched, and (2) if a drive is mounted after
   login, it is not included unless the .bashrc files is sourced.
   
   --
   Albert Croft
     _________________________________________________________________
   
  Re: bpp 16 Question
  
   From: Michael Huttinger mhutt.removespam@netnitco.net
   Date: Sun, 14 Jun 1998 19:56:41 +0000
   
   In regards to the question on starting X with 16 bitplanes instead of
   8 (LG#28)...
   
   I have done the following (assuming you are using XFree86)
   
   Open up and edit your XF86Config file.
   
   Look for the "Screen" section you are using. Add an entry right after
   that specifying the default colors of the format:

      DefaultColorDepth   16

   This will default your screen to 16 bit planes.
   
   My example screen section follows:
Section "Screen"
    Driver      "accel"
    Device      "STB Velocity 128"
    Monitor     "My Monitor"
    DefaultColorDepth 16
    Subsection "Display"
        Depth       8
        Modes       "1024x768" "800x600" "640x480"
        ViewPort    0 0
    EndSubsection
    Subsection "Display"
        Depth       16
        Modes       "1024x768" "800x600" "640x480"
        ViewPort    0 0
    EndSubsection
    Subsection "Display"
        Depth       24
        Modes       "1024x768" "800x600" "640x480"
        ViewPort    0 0
    EndSubsection
    Subsection "Display"
        Depth       32
        Modes       "1024x768" "800x600" "640x480"
        ViewPort    0 0
    EndSubsection
EndSection

   --
   Mike Huttinger
     _________________________________________________________________
   
  Network Cards
  
   From: Wari Wahab wari@tecnologist.com
   Date: Sat, 13 Jun 1998 21:36:27 +0800
   
   Hi, there just like to give some tip or two regarding Network cards
   you have in you Linux Box.
   
   I have a 3Com 3c90x in my computer and it's not working up to speed, I
   replaced it with anther one of the same kind and the most I get out of
   ftp transfers from my machine is a measly 220 KB/s.. Samba acted
   weird.. I thought that it's my network that caused the problem,
   indeed, it is the problem..
   
   Our network is all Cisco and there seems to be some disagreement
   between the two brands, Changed my card to an Intel 'eepro100' and I
   can max out at 800 KB/s on a 10 Mbs network.. Cool.
   
   So, if you find out that performance is not as cool (those Win NT guys
   may be laughing at you as they did to me wondering why Linux is Super
   Slow) as it should be, it could be the network card itself..
   
   Regards,
   Wari Wahab
     _________________________________________________________________
   
  Tip for using Windows 95 buttons in KDE
  
   From: Jochen A. Stein jst@writeme.com
   Date: Fri, 19 Jun 1998 21:05:21 +0200
   
   Following up to Andreas Ehliar's 2cent article in the June Linux
   Gazette, I took the same approach and made a patch for KDE to shift
   some functionality from ALT to the W95 key. Full instructions and
   patch against Beta-4 can be found on
   http://home.pages.de/~jst/kde-w95.html.
   
   --
   Jochen Stein
     _________________________________________________________________
   
  PPP, SLIP and Other Remote Service Support
  
   From: Daniel Blezek blezek@worldnet.att.net
   Date: Wed, 17 Jun 1998 22:40:48 -0500
   
   Hi, here's a short tip:
   
   Recently, I started working from home on a UNIX system. The system I
   was working on did not support PPP, SLIP, or any other remote service
   except shell sessions over a 9600 baud modem. So I decided to download
   SLIrP(a program to emulate PPP/SLIP using only a shell session) to the
   remote system to emulate PPP over a shell connection. Here is the
   snag, the remote system did not support zmodem, ymodem, kermit or any
   of the other file transfer protocols. Since I had no TCP/IP
   connection, I could not use rsh, or ftp. Solution? I used uuencode to
   convert the SLIrP binary to text, started vi on the remote system, and
   copied and pasted the entire text(all 360K) into the remote shell
   session. After eating dinner, I returned to write the uuencoded binary
   to the remote hard disk, uudecoded it, uncompressed it, and started up
   SLIrP on the remote system. After pppd came up on my LINUX system, I
   was fully connected.
   
   Ain't LINUX fun?
   
   --
   Dan
     _________________________________________________________________
   
               Published in Linux Gazette Issue 30, July 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
     _________________________________________________________________
   
  August Linux Journal
  
   The August issue of Linux Journal will be hitting the newsstands July
   10. The focus of this issue is Navigating Linux and our feature
   article is an interview with Marc Andressen and Tom Paqin of Netscape
   done by Doc Searls. interview.html is the introduction to this
   interview. Check out the Table of Contents at
   http://www.linuxjournal.com/issue52/index.html. To subscribe to Linux
   Journal, go to http://www.linuxjournal.com/ljsuborder.html.
     _________________________________________________________________
   
  An Invitation: The Future of Linux with Linus Torvalds
  
   On July 14, 1998, at 6:00PM, Taos Mountain ( http://www.taos.com/ ) in
   association with the Silicon Valley Linux User Group
   (http://www.svlug.org/) will present a panel discussion on THE FUTURE
   OF LINUX. Linux is a freely available version of the UNIX operating
   system.
   
   Panelists will include Linus Torvalds, the creator of Linux; Robert
   Hart from retail Linux distributor Red Hat Software; Larry Augustin of
   the Silicon Valley Linux User Group and director of Linux
   International, a non-profit consortium of Linux users and vendors; and
   Jeremy Allison, the developer of SAMBA. Phillip Hughes, publisher of
   Linux Journal, will question the panelists.
   
   Complete Press Release
   
   For more information:
   Michael Masterson, MMasterson@taos.com
     _________________________________________________________________
   
  LINC: Linux conference in Silicon Valley, California
  
   Mon, 15 Jun 1998 23:56:32 +0000
   LINC, the International Linux Conference and Exposition, will be held
   in Silicon Valley, California next January.
   
   We have just issued a Call for Papers, and we encourage Linux
   developers to send abstracts for talks or tutorials.
   
   More info at: http://lincexpo.org/
   
   Complete Press Release If you have any questions, please mail me.
   
   For more information:
   Don Marti, dmarti@electriclichen.com
     _________________________________________________________________
   
  Position Available: network security - development/maintenance
  
   Tue, 23 Jun 1998
   SecurePipe Communications is currently accepting resumes for a network
   security support and development position.
   
   Responsibilities will include support of installed firewalls,
   development and maintenance of open-source network security solutions,
   and support of existing mail and web servers.
   
   For more information:
   http://www.securepipe.com/jobs.html
   
   Joshua Heling, jrh@securepipe.com
   SecurePipe Communications, Inc.
     _________________________________________________________________
   
  GNU Utilities Integrated Development Environment project
  
   Mon, 15 Jun 1998 08:47:02 GMT
   GUIDE: GNU Utilities Integrated Development Environment
   
   The purpose of this project is to merge existing GNU and GPL utilities
   into a graphical GPL Integrated Development Environment, which contain
   editor, class browser, debugger, profiler, man generator, code
   checking, testing, animation, and management.
   
   Go to http://sunsite.auc.dk/GUIDE/ and join the mailing list.
   
   For more information:
   Knud Haugaard Sxrensen, khs@mi.aau.dk
     _________________________________________________________________
   
  WWW: Linux search engine in beta
  
   Mon, 15 Jun 1998 08:50:18 GMT
   Take a look at http://linux.ncg.net/search/
   
   A search engine with a different twist.... We index only Linux related
   web pages, and in addition to searching in the robot index, we'll look
   up the keywords in our resource listings as well.
   
   The engine uses heuristics to exclude most pages that aren't relevant
   to Linux. Currently the engine is in early beta, with a small index of
   about 75.000 documents as of 11th June, and growing at a rate of a few
   thousand documents pr. day. It might seem small, but the index
   contains most of the important Linux sites already, and is getting
   quite useful.
   
   Since we track what subjects that are most popular to search for, you
   also help us improve the resource listing by testing the engine.
   
   As soon as the indexer is well enough tested, we'll increase indexing
   speed dramatically (from 10 documents at a time currently, to about
   300).
   
   For more information:
   Vidar Hokstad, vidarh@ncg.net
     _________________________________________________________________
   
  The Freefire Project (IT security solutions)
  
   Wed, 17 Jun 1998 13:26:28 GMT
   After some time in the dark I am happy to Announce the Freefire
   Project
   
   The Freefire Project tries to support Developers and Integrators in
   building IT Security Solutions (especially Firewalls) based on Free
   Tools (Open Source). It is not Operating System dependent, but a lot
   of the Tools on the Page can be used with Linux.
   
   The Project features a web site where you can find a lot of useful
   links to free Security Tools and Resources. There is a monthly
   Bulletin giving some articles about recently discovered tools.
   
   There is a Mailing list for Developers. You DO NOT need to subscribe
   if you don't develop tools on your own. In this case it will be enough
   to enter you= r E-Mail in the Announce-Form on the Web Pages or
   monitor the Web-Pages.
   
   http://www.inka.de/sites/lina/freefire-l/index.en.html
   
   The Start page is also available in German:
   
   http://www.inka.de/sites/lina/freefire-l/index.de.html
   
   Also searching for contributors to the Bulletin and for Links to Tools
   which are not yet on the Pages.
   
   For more information:
   Bernd Eckenfels. ecki@lina.inka.de
     _________________________________________________________________
   
  Linux Links
  
   The Trove Project Press Release: trove.html
   
   Open Source Devloper Day Press Release: opensource.pr
   
   The Open Source Index: http://home.maine.rr.com/sickthing/osi
   
   List of Linux Mailing Lists: www.linuxrx.com/Lists/Lists.perl
   
   Linux Buyers Guide: http://www.linuxbuyersguide.com/
   
   Linux Applications: http://www.cynetcity.com/cyberzone/497/ Linux Book
   Guide: http://members.bellatlantic.net/~ptgeiger/guidehome.htm
   
   Article about Linux in Computer Currents Magazine:
   http://www.currents.net/magazine/national/1612/inet1612.html
   
   The Linux Console Tools: http://www.mygale.org/~ydirson/en/lct/
   
   Article "How Linux Could Kill Windows NT":
   http://www.zdnet.com/chkpt/adem2fpf/www.anchordesk.com/story/story_224
   1.html
   
   Linux Rally: http://www.penguincomputing.com/svlug-rally.html
   
   Time Magazine Article:
   http://cgi.pathfinder.com/netly/article/0,2334,13820,00.html
     _________________________________________________________________
   
                           Software Announcements
     _________________________________________________________________
   
  PC-Internet
  
   Check out the new PC-Internet at http://www.pc-internet.com/ (the site
   is in Spanish only)
     _________________________________________________________________
   
  WrapBit 0.2.1 - virtual object storage and programming environment
  
   Thu Jun 25 12:47:56 1998
   The WrapBit version 0.2.1 is now available. Read more about it from
   the active server at http://public.comput.com/WrapBit/ WrapBit is a
   virtual, persistant, write once object storage and programing
   environment. A small kernel serves forge proofed data, meta data and
   dynamic views (object invocation). XML is featured (but not imposed)
   for object control messages.
     _________________________________________________________________
   
  w3mir 1.0.3 - HTTP copying and mirroring tool
  
   Thu Jun 25 12:56:55 1998
   w3mir 1.0.3 has been released and is available at
   http://www.math.uio.no/ now.
   
   Fixes include
     * -R/remove option to remove files is no longer more destructive
       than intended.
     * Files with 'unsafe' characters in their filename is now saved as
       "foo bar" instead of "foo%20bar"
     * The -B switch works once again.
       
   w3mir is a all purpose HTTP copying and mirroring tool. The main focus
   of w3mir is to create and maintain a browsable copy of one, or
   several, remote WWW site(s). Used to the max w3mir can retrive the
   contents of several related sites and leave the mirror browseable via
   a local web server, or from a filesystem, such as directly from a
   CDROM.
   
   w3mir supports HTML4, and has partial support for CSS, Java, ActiveX
   and Adobe Acrobat (PDF) files.
     _________________________________________________________________
   
  Alphanumeric Paging Software beta test
  
   Mon, 15 Jun 1998 09:02:46 GMT
   EtherPage(TM) is now available on Linux
   
   Calling beta testers for our EtherPage product running under Linux. If
   interested, you can download software and request an evaluation
   license code from http://www.ppt.com/eval/version30.html
   
   EtherPage is a client/server based product for delivering messages
   from computers to wireless messaging services such as alphanumeric and
   numeric pagers. The product includes a web interface for interactive
   use and administration, a command line interface and a C API.
     _________________________________________________________________
   
  tomsrtbt-1.4.66
  
   Mon, 15 Jun 1998 09:01:35 GMT
   tomsrtbt-1.4.66.tar.gz is available at Sunsite.unc.edu to be placed
   into system/recovery and http://www.toms.net/~toenser/rb/.
   
   It is a boot/root rescue/emergency floppy image with more stuff than
   fits. Bzip2, 1722Mb formatting, and tighter compilation options helped
   jam it on. tomsrtbt is useful for "learn unix on a floppy" as it runs
   from ramdisk, includes the man-pages for everything, and behaves in a
   generally predictable way.
   
   The home page is: http://www.clark.net/~toehser/rb/.
     _________________________________________________________________
   
  MpegTV Player 1.0 released for Linux/Alpha
  
   Mon, 15 Jun 1998 10:30:37 GMT
   MpegT@ Player 1.0 has been released for Linux/Alpha. MpegTV Player 1.0
   is a realtime software MPEG Video player with audio/sync.
   
   MpegTV Player is a Shareware (US$10) for personal and non-profit use.
   Commercial licenses available.
   
   Key features include support for 8 bit, 16 bit and 24 bit display,
   random access, frame capture and a VCR-like graphic front-end.
   
   Download MpegTV Player 1.0 (mtv) for linux-alpha from:
   ftp://ftp.mgegtw.com/pub/mpeg/mpegtv/player/alpha-unkown-linux/
     _________________________________________________________________
   
  Motif Interface Builder VDX 1.2
  
   Mon, 15 Jun 1998 11:16:16 GMT
   Release 1.2 of VDX, the Motif Interface Builder for Linux is ready for
   download. The VDX provides the interactive design of user interfaces
   based on OSF/Motif and generates portable C and C++ source code. Tools
   like Resource Editor, Browser and the interactive WYSIWYG View make
   the design process very easy. Their object oriented interface and the
   adaptable code generation are cool features.
   
   Interested? Visit the VDX Home Page at http://www.bredex.de/EN/vdx/
     _________________________________________________________________
   
  R 0.62.1 released: statistical computation and graphics
  
   Wed, 17 Jun 1998 13:20:17 GMT
   R version 0.62.1 has been released and will propagate through the CRAN
   mirrors within the next few days. The have been lots of changes, any R
   user should definetely upgrade to this version.
   
   R is a system for statistical computation and graphics. It consists of
   a language plus a run-time environment with graphics, a debugger,
   access to certain system functions, and the ability to run programs
   stored in script files.
   
   CRAN is a network of ftp and web servers around the world that store
   identical, up-to-date, versions of code and documentation for the R
   statistical package. Please use the CRAN site nearest to you to
   minimise network load.
   
   The CRAN master site can be found at the URL
   http://www.ci.tuwien.ac.at/
     _________________________________________________________________
   
  Mobitex Radio Modem Driver
  
   Wed, 17 Jun 1998 13:21:40 GMT
   Announcing the release of a new network driver which implements the
   MASC data link layer protocol, enabling Linux to use Mobitex radio
   modems as network devices. Armed with radio modems and a subscription
   to a Mobitex operator, you can create a network interconnecting two or
   more Linux systems wirelessly using TCP/IP or your own custom
   protocol.
   
   The driver has been verified to be stable on 2.0.30 through 2.0.33
   kernels and is hence ready for release. The package includes a basic
   FAQ list, a HOWTO document, driver source and a couple of tools.
   
   Take a look at ftp://ftp.linuxrx.com/pub/linux-contrib/
     _________________________________________________________________
   
  sfm 1.4 - Simple File Manager
  
   Wed, 17 Jun 1998 14:02:46 GMT
   Announcing the release a new version of sfm. There's a lot of great
   improvements between this version and the 1.1 version.
   
   Some important changes:
     * you can associate actions with files (using its extension or its
       type given by file(1))
     * a popup menu gives you the available commands and shortcuts
       
   For more information look at http://www.chez.com/prigaux/sfm.html
   
   You can find there a binary (i386, glibc, gtk+) version. It has been
   tested (not fully) on i386 and solaris.
   
   Any remarks and bug reports are welcome at pixel_@geocities.com.
     _________________________________________________________________
   
  Linux Router Project v2.9.2 - networking centric mini-distribution
  
   Sat, 20 Jun 1998 17:32:40 GMT
   v2.9.2 of linux router is out. LRP is now fully glibc based, and this
   is a very solid release.
   
   You can download it from: ftp://ftp.psychosis.com/linux/linux-router/
   
   And get more info from: http:/www.psychosis.com/linux-router
     _________________________________________________________________
   
  Slidedraw-0.10 - drawing/presentation program
  
   Sat, 20 Jun 1998 17:29:11 GMT
   Slidedraw is a drawing program for presentation slides.
   
   Some new features added:
     * distinct canvas-window/drawing/print size
     * grouping of objects, creating composites
     * new and improved menu hierarchy
       
   Get it at http://sunsite.unc.edu/pub/Linux/Incoming
     _________________________________________________________________
   
  SFS Software's iavaZIP
  
   04 Jun 98 0100 WN
   SFS Software announced a new version of it's certified 100% pure Java
   compression utility iavaZIP. The full-featured, pioneering file
   compression program offers some unique features.
   
   iavaZIP's key advantage is that it lets you create archives containing
   files from multiple folders and subfolders--even from different
   volumes--in the same session.
   
   iavaZIP is compatible with PKZIP, supports 10 compression levels and
   runs cross-platform on every Java 1.1 supported operating system like
   Windows 95/NT, Unix, Linux, SGI, AIX and OS/2. The Java Archive format
   (JAR) is also supported. The product is available now through
   shareware distribution and is priced at $49 for the standard single
   user license. Also available are Academic Single user licenses ($29)
   and attractive high volume discounts.
   
   SFS Software's WebSite at http:www.sfs-software.com
     _________________________________________________________________
   
  Protecting Networks w/SATAN
  
   Mon, 8 Jun 1998 15:48:49 -0700 (PDT)
   Because SATAN (Security Administrator's Tool for Analyzing Networks)
   could detect weaknesses on other systems (as well as your own) through
   its web interface, it earned notoriety when released in April 1995 as
   the tool that would "wreak havoc" on the Internet. The Oakland Tribune
   even wrote: "It's like randomly mailing automatic rifles to 5000
   addresses. I hope some crazy teen doesn't get ahold of one."
   
   But as more and more "mission critical" applications are accessible
   through the web, administrators are turning their attention to the
   danger of attempted intrusion from outside the networked host. SATAN
   is a powerful aid for system administrators. It performs "security
   audits," scanning host computers for security vulnerabilities caused
   by erroneous configurations or by known software errors in frequently
   used programs. O'Reilly's latest release, "Protecting Networks with
   SATAN", is an invaluable tool for network and security administrators
   working with SATAN.
   
   Protecting Networks with SATAN
   By Martin Freiss
   1st Edition June 1998 (US)
   112 pages, 1-56592-425-8, $19.95 (US$)
   http://www.oreilly.com
     _________________________________________________________________
   
  Conix 3D Explorer
  
   Wed, 17 Jun 1998 19:51:05 -0800
   Conix Enterprises, Inc. announce the release of Conix 3D Explorer on
   Linux. With a single command 3D Explorer brings your Mathematica
   graphics to life in an interactive OpenGL window, providing advanced
   rendering capabilities previously reserved for high-end rendering
   systems.
   
   3D Explorer provides a new graphics type, GLGraphics, with extended
   graphics primitives and directives. New features include continuous
   surfaces, display lists, inline transformations, and per-element
   control over all graphics options.
   
   3D Explorer comes with online documentation, including user's guide,
   reference manual, programming examples, and demos. Quality email
   technical support is provided by Conix Enterprises Inc.,
   tech@conix3d.com. For more information, see http://www.conix3d.com
     _________________________________________________________________
   
  LinuxCAD v 1.55
  
   Thu, 18 Jun 1998 06:34:43 +0000
   Software Forge Inc. announcing the availablity of LinuxCAD v 1.55 at
   July 25 , 1998. LinuxCAD v 1.55 includes all hardcopy capabilities
   namely:
     * output to LaserJet family of printers,
     * output to PostScript Black and White as well as Color,
     * output to HP-GL compatible plotters,
     * output to LinuxCAD MS-Windows print server, in the base version.
       
   LinuxCAD v 1.55 will be priced at the same level $75+tax and shipping.
   All users who will prepay LinuxCAD v 1.55 before July 25, will get
   extended free upgrades until July 1999.
   
   To learn more about LinuxCAD visit http://www.linuxcad.com
     _________________________________________________________________
   
  Nighthawk 2.1 and FunktrackerGOLD 1.5 (announcement)
  
   Mon, 22 Jun 1998 23:13:50 +0930 (CST)
   Nighthawk 2.1 (nighthawk-2.1.tgz) and FunktrackerGOLD 1.5
   (funktracker-1.5.tgz) have now been released. You can find them on:
   http://www.downunder.net.au/~jsno/rel/unix_projects
   
   Nighthawk is an X11 arcade game with sound and music. FunktrackerGOLD
   is a digital music tracker. Read my page for more details on them.
   Take a look at http://www.downunder.net.au/~jsno both come under the
   GNU GPL.
     _________________________________________________________________
   
  CYBERSCHEDULER FOR LINUX v2.1
  
   Wed, 24 Jun 1998 18:34:09 -0700
   CrossWind Technologies offers CyberScheduler, web-based calendaring
   and scheduling software for workgroups. It has been designed to
   leverage an organization's existing web resources:
     * running on Apache's web server
     * with end user access from any desktop browser.
       
   More information about CrossWind Technologies and a live on-line demo
   of CyberScheduler is available on the Web site at
   http://www.crosswind.com
     _________________________________________________________________
   
               Published in Linux Gazette Issue 30, July 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:
  
   (!)Greetings from Jim Dennis
   
   (?) Linux and SCO Keymap --or--
          SCO Compatible Console Keymaps?
          
   (?) linux kernel security --or--
          Breakin' Out of the chroot() Jail adding "disabilities" to
          Linux
          
   (?)Dosemu and virtual terminals? --or--
          Clipper/xBase Capacity Problems --- DOSemu as a Solution? "I
          don't think so."
          
   (?) NT Domain and Linux --or--
          Linux as a "Domain Controller" for a WinNT Domain? Not Yet!
          Linux use of an NT PDC/BDC for authentication?
          
   (?) DAO software for linux? --or--
          "DAO" (Disk at Once) CDR? Stump Me!
          
   (?)tn3270 security
          
   (?)readdress COM port to 3 or 4
          
   (?) Lilo won't boot --or--
          Installed on a Secondary SCSI HD: Lilo Stops at LI
          
   (?)help on unix --or--
          Running Unix/Linux Under Win '9x
          
   (?)winprinters & MTAs: Pointers and Corrections
          
   (?) FoxPlus for Linux? --or--
          Dreaming about xBase tools for Linux
          
   (?)auto response for email ?
          
   (?)Connecting Linux to Win '95 via Null Modem
          
   (?) PC lockups --or--
          Hardware Lockups due to Graphics Load
          
   (?) gzip from C program --or--
          Compression Libraries to Link into a C Program
          
   (?)LOVE THE NEW LOOK!!!!
          
   (?)please, advice about Linux and C500 --or--
          Linux PPC on the Umax C500 SuperMac: Not A Good Idea
          
   (?)printing Solaris->Linux --or--
          Remote lpd from Solaris to Linux
          
   (?) Help Wanted --or--
          User Shell on Virtual Console 1
          
   (?) Memory deallocation problems --or--
          Linux Memory Usage vs. Leakage
          
   (?)tv cards and dual monitor
                        ____________________________
   
  Greetings from Jim Dennis
  
   Well another month is upon us. This last month was particularly busy
   since I was able to afford the USENIX technical conference, in New
   Orleans --- the best annual gathering of fellow Unix and Linux nerds
   I've ever found. If you can get your boss to send you to just one
   computing technical conference in the next year --- ask for it to be
   this one (or the USENIX/LISA --- Large Installation Systems
   Administration which will be in December).
   
   Linus was there with his wife, Tove, and their two baby daughters. He
   agreed to host an "intimate little BoF" (Birds of a Feather
   discussion) which turned out to have over half of the conference
   attending it (much to his surprise).
   
   The '97 USENIX in Anaheim had a "parallel track" for Linux. This year
   had one for "Freenix" (collectively referring to FreeBSD, NetBSD,
   OpenBSD, and the GNU HURD, in addition to Linux). It's important for
   us (Linux users) to recognize that Linux wasn't the first "free" Unix
   kernel, and it is by no means the only one.
   
   I've been trying to encourage the free *BSD users (all variants) to
   come out of the woodwork and show up at their local Linux user's group
   meetings. I know they'll be welcome at the Silicon Valley LUG
   (http://www.svlug.org) and I sincerely hope that they'll be welcome at
   other Linux events. Now that we're getting enough market share to get
   noticed in the press, and to have some effect on the decisions of
   hardware and software vendors (particularly in the areas that relate
   to documentation and NDA's) --- it would be a very bad time for us to
   get embroiled in the sorts of infighting that's been stifling the
   commercial Unix vendors for so long.
   
   I noticed an interesting press release (forwarded to me by my wife)
   regarding Microsoft's new "WISE" (Windows Interface Source
   Environment: http://www.microsoft.com/win32dev/base/wise.htm) which
   basically looks like a scheme to bolster the commercial Unix vendors
   up in their battle against the free Unix clones (by providing them
   with some limited support for running Windows '95 software). (From the
   looks of it the WINE and Bochs projects may eventually be more
   capable).
   
   Luckily these, and the other interesting user space projects that are
   going to make Linux more accessible to non-technical users, like
   GNOME, KDE, and GNUStep are portable. Linux has been a primary
   development platform for many of these projects --- but they all run
   under other versions of Unix.
   
   So, while it may look like Linux is "taking over the world" --- it is
   also opening up a world of opportunity for all of the other Unix
   variants. There are now a few million users of Linux that will feel
   right at home in just about any Unix on just about any hardware.
   
   Perhaps that's why Sun and SGI are both supporting Linux projects.
             _________________________________________________
   
  (?) SCO Compatible Console Keymaps?
  
   From Jim Kjorlaug on 25 Jun 1998
   I work for a company that sells vertical solutions using SCO unix as a
   platform. We are currently looking at linux as another possible
   platform and I have found a possible contention. Does there exist a
   keytable that causes the linux keyboard to behave like an SCO console.
   I have already worked out the termcap for SCO ansi to work on linux
   but some of the keymaps have me stumped. Any suggestions or advice
   would be greatly appreciated. I realize that we could modify our
   application but it would be much easier if it were possible with a
   keytable.
   Thanks in advance for any help you can provide.
   Jim Kjorlaug
   Teleflora Technologies 
   
     (!) I don't know how a SCO console keymap is supposed to behave ---
     but Linux does have utilities to remap the console keyboard to your
     heart's content. All of the popular distributions include the
     'loadkeys' and 'dumpkeys' programs (parts of Andries Brouwer's
     'kbd' package). You can look at the man pages for these for
     details.
     I've never used these packages much --- just once to set up "sticky
     shift" keys for a friend who lost most of the use in one arm to a
     stroke a couple of years ago and again to answer some other
     question back before I started this column.
     It does seem quite odd that you'd go for console specific binding
     rather than using the more portable termcap/terminfo
     (curses/ncurses) interfaces which would allow your app to be
     accessed via terminals, over modem/dial-up connections, across
     telnet sessions and from within xterms. However, I'm sure you have
     your reasons.
     Yann Dirson is working on a package called "Linux console tools"
     which enhances the kbd package.
     There is also a console fonts package (the 'setfont' command is
     also included with many Linux distributions; it allows you to
     choose from among about 100 different VGA/EGA compatible console
     fonts, some of which are quite silly). Andries Brouwer is
     apparentlly the co-author of the console fonts package, too.
     Good luck on the port and welcome to the club.
             _________________________________________________
   
  (?) Breakin' Out of the chroot() Jail
  
                     Or: adding "disabilities" to Linux
                                      
   From Ron Arts on 25 Jun 1998
   Hello,
   I saw a post by your hand from 26 Apr 98 in
   comp.os.linux.development.system where you said a lot of noteworthy
   things on linux security. Also I have been talking to Jos Vos from
   Xopen Systems (who wrote the ipfwadm package).
   Both you and he noted the possibility to break out of a chroot jail
   (once you become root there). It seems that devices are the weak
   factor. 
   
     (!) It seems that letting anyone "become root there" is the weak
     factor! If we can reduce the need to "become root" --- by providing
     mechanisms other than "SUID" and "SGID" programs for accessing
     "privileged" operations than we have made some progress.
     One approach would be the POSIX.1e "capabilities" (which are more
     like VMS style "privileges" than true "capabilities"). There is a
     bit of preliminary work being done on this in the 2.1.x kernels ---
     but nothing is likely be usable in 2.2 (so you're looking at Linux
     2.4 before there is "stable" support for any of that).
     Another approach is to limit the damage that 'root' can do using
     something like the BSD securelevel features. Last I heard on the
     Linux kernel mailing list they had dropped plans to put in simple
     'securelevel' support in favor of a "more flexible" approach ---
     which would mesh better with the eventual POSIX.1e ("Orange Book")
     work.
     * (The implementations of 'securelevel' in all of the popular BSD
       variants, free and commercial have been vulnerable to a few
       attacks via the /proc filesystem and more recently via ptrace()
       --- so having Linux adopt one of those designs might not be a
       sound idea. We'll see).
       
     I'm a little shy on the implementation details and design but I
     think they said it would essentially be a bit field of limitations
     that would be set on a per process basis. There would be bits to
     prevent various syscalls like mknod(), chroot(), mount(), etc. In
     the POSIX.1e model this would later become the "maximum privileges
     mask" --- and the individual privileges would be set by meta data
     on the executable files (think of that as a list of about 80 "P"
     bits rather than just the SUID and SGID bits we have now).
     The argument for this is that we could set any set of this bits we
     want on the 'init' process (PID 1) to accomplish the same
     limitations as we get with BSD's 'securelevel'.
     That's a pretty compelling argument so far as I'm concerned. My
     main hesitation beyond that has to do with code complexity. The BSD
     crowd has been trying to get their 'securelevel' implementations
     right for years --- and the ptrace() bug was just found a couple of
     weeks ago.
     It's not a simple problem. NT's "object" model (and I use the term
     "object" very loosely) provides ACL's on files, registry keys, and
     all sorts of other OS elements. There is work underway to add ACL
     support to Linux --- over some filesystems at least. However, I'm
     convinced that ACL's are a fundamentally flawed security model ---
     and that opinion is based on some pretty good academic work.
     Unfortunately the true capabilities security model entails a
     completely different programming paradigm --- it doesn't translate
     to Unix conventions at all. In my research (purely "armchair" or
     "book larnin'") I spent most of my energy trying to unlearn the
     Unix, Netware, and NT approaches.
     You can read more about the capabilities security model at Jonathan
     Shapiro's "EROS" (extremely reliable OS) web site:
     
     http://www.cis.upenn.edu/~eros/
     
     (EROS is an ongoing research project which will hopefully
     eventually be available as a production operating system).
     
   (?) I have been thinking about disabling the mount() or better the
   mknod() systemcall when executed from chroot'ed programs (patching the
   kernel).
   
     (!) I think the "capabilities" (or Linux "securelevel" or
     "privmask") patches will allow you to disable access to these sorts
     of syscalls. I also suspect that these "disabilities" (a more apt
     description really) will be inherited by all forked processes. They
     will certainly need to be immutable (by the process) and will have
     to imply certain disabilities with regards to kmem and /proc access
     by the 'root' processes that are running within these process
     groups.
     You can look at the existing patches (in the recent 2.1.1xx
     kernels) and possibly build on that.
     
   (?) Do you think that would be worth the effort? We currently run
   ftpd, telnetd, sshd and some more things chroot'ed in a very minimal
   linux environment. Based on the false assumption that even when you
   make it to becoming root you cannot break out of that.
   
     (!) The assumption that the chroot() jail is inescapable by rogue
     root processes is very bad. You've discovered that.
     The main advantage for chroot() have to do with limiting the number
     of SUID/SGID programs that are accessible in the effort to exploit
     various vulnerabilities that are used to get root or other
     unauthorized access. The other advantage is that you can limit the
     amount of snooping that a class of users (anonymous and guestgroup
     ftp, for example) can perpetrate on other users on the system.
     In other words you can limit the exposure of your "general" users
     from some classes of other users. For a long time the most
     important element of this was to prevent FTP users from grabbing
     your passwd file and running 'crack' on it. With the advent of
     shadow password systems that has been much less of a concern.
     These days the most common approach to securing systems is to
     create special, sacrificial hosts for each service and class of
     users. Linux and {Free|Net|Open}-BSD have made this an increasingly
     economical and attractive option since we can put any old "junker"
     386 or better to work in this sort of role (some people are giving
     away 386 and 486 systems these days). This is easy enough for
     commercial sites --- but more of a problem for ISP's and
     educational sites, which traditionally still have shell access to
     at least some of their machines.
     
   (?) I think very few programs use mknod(), and that probably are the
   programs you wouldn't allow in a chroot'ed environment anyway. I also
   think it would be a relatively small patch, I've done some digging and
   - not being a kernel expert - it seemed pretty easy. The only thing
   left to find out is how to detect in the kernel that the current env
   is chroot'ed.
   
     (!) The kernel obviously already tracks the 'root' directory
     (device:inode) for every process. I think it's a field in the uarea
     struct (a data structure maintained by the kernel for every
     process).
     
   (?) Can you offer any thoughts on this, I'd like to know if I am on
   the wrong track (again) here.
   Thanks in advance,
   Ron Arts
   Netland Internet Services
   
     (!) Look at the existing (2.1.x) sources for references to
     "securelevel" and "capabilities" --- I'm sure they're in there
     somewhere. You can also consider contributing to the Linux Security
     Audit project. See the following URL's for more details:
     
   The Linux Weekly News article on it (search on the keyword "audit"):
          http://www.lwn.net/980625/
          
   Their currently archives/web site:
          http://www.nas.nasa.gov/Pubs/Mail/archive/linux-security-audit/
          
     If your organization needs these features and is willing to donate
     some web space and some personnel time and expertise to the project
     --- you'll be doing yourself and all of us alot of good.
             _________________________________________________
   
  (?) Clipper/xBase Capacity Problems --- DOSemu as a Solution?
  
                            "I don't think so."
                                      
   From Steven Jackson on 25 Jun 1998
   Hi AnswerGuy,
   I was reading an article on the web about diskless workstations and
   redhat when I recognised your name, (I think you helped me out with
   redhat a long time ago, thanks).
   
     (!) You're welcome.
     
   (?) I look after a small network of 4 pcs at a doctors surgery which
   runs an accounting package and an appointments diary compiled under
   Clipper. System Manager is run on the host pc which does all of the
   local processing of these applications and the clients run as virtual
   terminals.
   
     (!) I don't know what you mean by "system manager" --- from what I
     remember/know of dBase and Clipper these were designed as
     single-user database systems. The multi-user deployment of xBase
     applications normally relies on "record locking" (similar to file
     locking but allowing one to request exclusive access to a portion
     of a file).
     In this model the .DBF files are normally stored on a network
     filesystem (Netware, LANtastic, and later WfW among others). I
     don't know if Samba or the Mars-NWE (Netware emulator) supports
     these forms of record locking.
     It is unclear from your description how your are running this. You
     mention 4-PC's and Clipper (a DOS based compiler/developement
     package for dBase programming), which leads me to think of
     networked DOS systems --- then you mention "virtual terminal" which
     suggests that you're using a multi-user OS (like Linux).
     Are you running DR or CCI's "Concurrent DOS" (or their later
     "M-DOS" or "Multi-user DOS") or something like TSL's "PC-MOS"
     (another multi-user MS-DOS clone)? Is "System Manager" yet another
     multi-user DOS?
     
   (?) Over the past year or so the system has run slower gradually to
   the point where it is getting annoying. I'd like to try running linux
   on the fileserver and somehow run the dos based clipper programs under
   dosemu. I think it would be wise to keep all the *.dbf files on the
   server rather than sending them over the network. I got the idea from
   the recent Linux Journal article about the Latvian Police dept.
   
     (!)
     
   The first question is:
          Why is the performance degenerating?
          
   The obvious suggestions are:
          Have you been regularly "pack"-ing your databases (purging
          deleted records and transactions)?
          Have you been maintaining your indices? (Indexing is usually a
          vital key to db performance).
          Have you been defragmenting your filesystems regularly?
          Has your system utilization increased in some marked way
          (you've added *lots* more customers, etc)?
          Does your current design have any features or support for
          migrating old and inactive records to "archival" or
          "historical" databases (tables) so that the "active" db
          routines are maintained at feasible sizes?
          Are there other activities on your LAN that might be causing
          network congestion?
          
     Regarding the notion of running the existing program under DOSemu .
     . .
     I don't know if that will do any good at all. Since we don't know
     what is causing the problem, it seems premature to recommend
     solutions. My first thought is that moving the processing from four
     systems onto a single one (even a single system under a superior
     OS) is unlikely to improve overall performance.
     
   (?) Do you have any ideas about how I could embark upon this?
   Thanks,
   Steve Jackson
   
     (!) I have many ideas. The first, and most obvious, would be to
     port the application to a client/server database design --- one
     that's designed to be multi-user and scalable at the outset.
     Another, less radical approach would be to take the existing
     Clipper sources and port them to Flagship (an xBase to C
     development package from WorkGroup Solutions).
     ... their web pages suggest that they will soon be shipping betas
     of a "visual" frontend for xBase programming. That should be
     interesting for all those "VB" and "VC++" developers that are still
     clinging desperately to Microsoft's platform.
     Or you might try X2C from:
     
     http://www.on-the-net.com/x2c/
     
     The questions I asked above may give you some ideas for some
     "stopgap" measures (re-index, defrag, migrate inactive records,
     etc). In the long run you'll want to do some analysis to see if the
     current system can continue to meet your needs.
     If you do decide to go with a client server model you have many
     choices that run under Linux. There are the free and shareware
     packages like mSQL, Beagle and MySQL and there are a number of
     commercial packages like InfoFlex Adabas, and the JustLogic SQL.
     Rather than give URL's to all of these I'll just point you at the
     definitive guide to RDBMS packages for Linux --- maintained by
     Christopher B. Browne at:
     
     http://www.hex.net/~cbbrowne/
     http://www.ntlug.org/~cbbrowne/rdbms.html
     
     ... and another excellent list of Linux business applications
     maintained by Linas Vepstas (NOT to be confused with Linus the
     kernel guy) at:
     
     http://www.linas.org
     http://www.linas.org/linux/db.html
     
     I should mention that you aren't limited to just xBase or SQL ---
     there are a number of alternative DBMS system that are available to
     Linux and other Unix users and programmers --- including a number
     of object-oriented and hybrid systems. Allegedly there's even Linux
     support for the venerable Pick system.
             _________________________________________________
   
  (?) Linux as a "Domain Controller" for a WinNT Domain? Not Yet!
  
             or: Linux use of an NT PDC/BDC for authentication?
                                      
   From Cesar Augusto Kant Grossmann on 25 Jun 1998
   Hi James!
   Again a problem to me, and a exercise to you.
   Is it possible to make the Linux Box do login authentication requests
   from a NT Domain Server? 
   
     (!) Not yet. The Samba team is working on this and hopes to have
     something ready within a couple of months. Lest you think this is
     all wasted effort (on the thought that Microsoft will ship NT 5.x
     in a year or so) --- the indications seem to be that the MS NT
     implementation of Kerberos will still rely heavily on the data
     structures that they currently use in their PDC/BDC protocol. So,
     the work being done now is an investment to the future as well as a
     hope for the near-present.
     
   (?) I have a Linux box in a TCP/IP network, part of a large NT Domain,
   and want to allow NT domain-users to log in the Linux Box and access
   Internet in it. The idea is provide access to the Linux Box without
   having to register every user. The users don´t need a regular account,
   with home directory, because Internet access is not frequent (thanks
   to a low connection) and they only use it to surfing (not email, not
   FTP).
   
     (!) Hmm. It looks like I read too much into your first paragraph.
     This sounds like you want Linux to be a client to an NT domain
     controller. I think there is a PAM (pluggable authentication
     module) for doing this.
     Since the whole PAM project is still in beta (and not moving nearly
     fast enough for my tastes --- not that I've contributed to it nor
     that the programmers would want me to) I can't make any promises on
     how well it will work.
     However the state of PAM can speak for itself at:
     
     http://www.kernel.org/pub/linux/libs/pam/
     
     (Andrew Morgan's pages on the Transmeta sponsored Linux site).
     The module you might want to play with is by David Airlie and is
     at:
     
     http://www.csn.ul.ie/~airlied/pam_smb/
     
     Other modules (for things like one-time passwords, authentication
     on a Netware server, a couple of different "SecureCard" and
     "DESGold" cards, RADIUS, and support Kerberos realms, etc) can be
     found by browsing around at:
     
     http://www.kernel.org/pub/linux/libs/pam/modules.html
     
   (?) No, I don't want to make the Linux Box act as a firewall (I don't
   have authorization to do that). And, again, sorry my bad english...
   TIA
   Cesar Augusto Kant Grossmann
   Uruguaiana - RS - Brasil
   
     (!) Given the muddy murky nature of the term "firewall" the
     difference between what you're doing and "acting as a firewall" may
     be purely a matter of semantics. However, if it'll keep your
     management happy I'll go into a Brazilian court of law as an
     "expert witness" to state my opinion that this is not a "firewall."
     If by "surfing" you mean that your users will only be using the
     Linux system as a web proxy --- why are you fussing with
     authenticating them at all? Why not just install Apache and
     configure it purely for caching/proxy use --- or use Squid (there
     are RPM's avaiable --- they were included with my copies of
     S.u.S.E.
     Apache, CERN, and Squid can all be configured as caching web
     proxy/servers and can all be configured with a variety of
     limitations on which systems are allowed through in which
     directions. Do you really care which user is logged into the
     workstation that is using these proxies? That seems like an odd
     requirement unless you're also trying to enforce some other
     policies (like certain classes of employees are only allowed to
     "surf" during their lunch hour, etc).
     I suggest you actually review your requirements a bit further. It
     sounds like you are complicating matters more than the situation
     requires.
             _________________________________________________
   
  (?) "DAO" (Disk at Once) CDR?
  
                                 Stump me!
                                      
   From Mark Heath on 25 Jun 1998
   Hi there,
   I've been searching high and low for DAO (disk at once) CDR recording
   software for linux. Does any exist, Commercial or otherwise?
   I've email Jeff Arnold about a Linux port and he bluntly refused.
   I've email'd HyCD who have a tool that appeared to support DAO and
   claimed UNIX support. But their software didn't support DAO and they
   weren't interested in a Linux port. I've informed them of this hole in
   the Linux software market.
   The closest thing that appears to be available is that Joerg
   Schilling's cdrecord supports DAO MMC-3 (err i think that is the spec)
   Of course my CDR (HP 4020i) isn't MMC compatible.
   I've had a look at writing my own but it appears that every CDR has a
   different command set to write in DAO mode. I think is was a little
   out of my depth, since I couldn't even get the CDR to read raw
   sectors.
   So your help would be much appreciated. Thanks.
   Mark. 
   
     (!) Well, you have me stumped.
     I don't know anything about the difference between DAO and other
     forms of CDR recording. Normally, I'd spend an hour or two hunting
     around on Alta Vista, Yahoo!, Savvy Search, DejaNews, etc and
     pulling out more of my hair to find out. However, I have a book to
     write and a wife to feed, and it is just too close to my deadline
     for me to wait until tomorrow.
     So, what is DAO and why would you need it? What is the difference
     between cdrecord and cdwrite (the one I use with my Ricoh CDR)?
     Have you tried them both? What is MMC? Who is Jeff Arnold? Who are
     HyCD and should we care enough to start another Linux grassroots
     "petition-the-vendor" campaign or should we just write more code to
     "do-it-ourselves"?
     I'll publish this one --- and let you and the rest of my readership
     nail me with the answers. (Naturally I'll bounce you copies of the
     other responses as they trickle in).
             _________________________________________________
   
  (?) tn3270 security
  
   From Art Blair on 25 Jun 1998
   When I try to use tn3270 or X3270 on my redhat 5.0 box to connect to
   our school's system I get
   
     TELNET Server: Session security is required.
     TELNET Server: Good-bye!!!
     Connection closed by foreign host.
     
   Is there a different version of tn3270 that has session security or
   some way to enable it with what I have?
   Thanx, Art Blair. 
   
   (!) Are you sure you want to be using tn3270 (or x3270) to make this
   connection? Are you connecting to an IBM mainframe or minicomputer
   (presumably using the 3270 "block mode" --- full-screen protocol ---
   and EBCDIC)?
   Also does your site use Kerberos or some form of SNA security
   (encryption or host-to-host authentication)?
   The sad fact is that I know nothing about 3270 emulation or about the
   SNA protocols. You'll want to contact your site admin or help desk to
   find out more about their requirements. They should also be able to
   let you know if there are any freely available client/terminal
   emulation packages that are suitable for use with their facilities.
   
   (?) please do not publish my email address or use it for advertising
   
     (!) We usually strip out e-mail addresses from the published
     version of the column.
             _________________________________________________
   
  (?) readdress COM port to 3 or 4
  
   From PJ on 25 Jun 1998
   can you tell me how to readdress COM port2 to port 3 or 4? I need to
   use COM port 2 for other device. 
   
     (!) No. I can't. You'll want to refer to the documentation that
     should have come with your hardware (this is almost certainly a
     hardware issue that is completely unrelated to the OS or software
     that you're running). The details vary among manufacturer, devices
     and models.
     If you have a couple of COM ports built into your motherboard it is
     possible that you can disable or reset the I/O addresses, IRQ's and
     other details for your COM ports via the CMOS setup program (the
     interface through which you set the date and time, the hard drive
     type and geometry and various other firmware settings that are
     stored in extra registers of your PC's clock chip --- a chip which
     uses CMOS technology so that it dissipates very low power
     consumption and is thus suitable for operation off of a battery
     while the system is powered down).
     This "setup" program is usually (almost always) stored in the
     system firmware (the BIOS ROM's on your motherboard) and is
     typically accessible at boot/power-up via some system dependent
     keystroke. Usually there is a message that is briefly displayed to
     note what the magic keystroke would be --- something like:
     
     "Press <Del> not to enter Setup"
     
     If that doesn't work (either because your COM ports are not on your
     motherboard or for other reasons) you can open up the case and look
     at the various DIP and/or "berg" (jumper pins) settings that you'll
     find. Some of them may be labelled. There might also be a
     manufacturer's mark that might lead you to a website or phone
     number where you can get support and documentation for the device.
     If you can't find any documentation for some cheap multi-function
     (IDE, floppy, COM, and parallel port) card --- your best bet is to
     buy a new one (typically $10 to $35 US) and toss the old one into a
     drawer as an emergency spare.
     As a final note: please consider what it's like to answer such a
     question. You give no details about what sort of system you have,
     what you've tried (do you have any docs, have you looked at them),
     what device you're trying to add (odd that it must be on COM2 ---
     how do you know that), what OS distribution and software you're
     running, etc.
     You send a two line question which cannot be reasonably answered in
     less than fifty. In IRC and on most newsgroups and mailing lists
     you'd either be ignored or flamed. We're all volunteers here and
     the one thing we ask is that you do your homework before you post.
     I'm not saying this just to sound crabby (if I was going to be
     irate, I'd've just deleted this). If you don't do your homework ---
     and put considerably more thought and energy into your questions
     than you won't get any satisfaction out of the Linux community.
             _________________________________________________
   
  (?) Installed on a Secondary SCSI HD: Lilo Stops at LI
  
   From Rick V Smith on 9 Jun 1998
   
   (?) I have installed linux on my second scsi drive the swap on a small
   partition on my first scsi. and lilo on a big mbr for my win 95. the
   start of linux went well but when I shut down and went to restart all
   that happens is Li and the system hang's
   Any Idea's.
   Thank's Rick
   
     (!) I don't know what you mean by "and like on a big mbr" --- all
     MBR's (master boot records) are the same size on PC's --- one
     sector!
     It sounds like your BIOS can't "see" the 2nd SCSI drive -- so Lilo
     can't "see" it either. The easiest solution would be to install
     LOADLIN into a DOS/Win '96 directory --- with a copy of your
     kernel(s). The kernel doesn't rely on the BIOS to access your
     drives (since it provide 32 bit native drivers for your SCSI card
     --- etc) so it will find its root filesystem with no problem.
     Another think to try is to add the "linear" switch to your
     /etc/lilo.conf --- and then rebuild the boot block and boot map
     using the /sbin/lilo command. Read the lilo man pages and/or look
     at the lilo "user" and "tech" .dvi files using xdvi (under X
     Windows) for details.
     There may be other settings that you'll have to tweak to get it
     working. This is particularly true if you have a large SCSI drive
     (my guess is that your second drive is bigger than 2 Gb -- and your
     first one isn't). Look in the CMOS/Setup settings (or whatever your
     SCSI card provides) for things that suggest that it is doing
     something "fun" to make the large drive "DOS compatible").
     Jim,
     
   (?) I found the following line you wrote in a responce to someone else
   and this cured my hair loss problem, that probably worked better than
   Rogain. Thank's for the time and insight.
   Rick

# The stanza for booting Linux.
image = /vmlinuz                       # The kernel is in /vmlinuz
label = linux                          # Give it the name "linux"
root = /dev/hda2                       # Use /dev/hda2 as the root
filesystem
vga = ask                              # Prompt for VGA mode
append = "aha152x=0x340,11,7,1"
                                       # Add this to the boot options,
                                       # for detecting the SCSI controller

   http://sunsite.unc.edu/LDP/HOWTO/Installation-HOWTO-8.html#ss8.2
             _________________________________________________
   
  (?) Running Unix/Linux Under Win '9x
  
   From John Riddoch on the comp.unix.questions newsgroup on 05 Jun 1998
   Jeff wrote:
   I need a question answered. I am running Windows 95 and soon 98. ...
   I was wondering if there is any way to run the unix program itself in
   a program window in Win 95,
   unix is not a program; it is an operating system. You _cannot_ run two
   operating systems at the same time on the same hardware. Dual-booting
   is a different matter. 
   
     (!) And running an OS under simulation or under a VM is also a
     "different matter." Also not that the phrase "OS" is not so
     precisely defined that you can defend this position. For example
     the IBM mainframes support VM's (virtual machines) that would allow
     the concurrent use of multiple OS'. Also consider the case of Tenon
     Systems' "MachTen" a microkernel OS that support MacOS running as a
     personality under the microkernel.
     
   (?) just like you can run win 95 the same way on a mac.
   ???? I sincerely doubt it. Perhaps the mac had an emulator that ran
   win 95 programs. Apart from anything else, win 95 is i386 only and
   won't run on a 68000 (or whatever macs use these days).
   
     (!) He's probably referring to VirtualPC --- an emulation of the
     hardware, including CPU, video, disk, I/O, and ethernet chipsets.
     There's also RealPC. These are the most popular PC emulators under
     MacOS.
     Modern Macs run the G3 (PowerPC) processor, and the performance of
     Win '95 under VirtualPC is tolerable (about equivalent to a Pentium
     90 on a 250 Mhz G3 Powerbook (laptop) and about a Pentium 75 on a
     180 Mhz Performa).
     Getting back to the original question:
     There is a shareware package (distributed as source code and
     available for free evaluation) by Kevin Lawton called Bochs.
     This started as a PC emulator (hardware) emulation for Unix
     (including Linux) that is allegedly capable of supporting Win '95
     under emulation. It apparently isn't quite up to supporting NT
     (apparently the CPU emulation is only 386 and NT requires 486 or
     Pentium emulation). For info on that look at the Bochs web site:
     (http://world.std.com/~bochs/). It looks like Kevin will be
     upgrading the processor emulation as time (and possibly funds)
     allow. Apparently you can License this package for $25. (I haven't
     used it yet, but I might send him the money just 'cause I'm so
     impressed by the effort).
     I know this doesn't answer the question Yet but hang with me a
     moment. Someone named David Ross seems to have ported Bochs to the
     Win32 platform, thus allegedly allowing one to run Linux, FreeBSD,
     or (presumably) most other forms of x86 Unix.
     
   (?) if you can gimmie a hand and maybe tell me some sites where i can
   download some software please tell me.
   
     (!) See above.
     
   (?) You might try http://www.linux.org/ for a few pointers. Do some
   web searches for linux and read some stuff. RedHat linux 5.0 is a
   reasonable version which is nicely pre-packaged for you and fairly
   easy to install (http://www.redhat.com/).
   
     (!) Having answered the basic question (where can you find a PC
     emulator for Win '9x) I have to add my own suggestion:
     
                                Don't do it.
                                      
     You can buy a cheap PC (even an old used 486) for next to nothing
     (I've recently had one 40Mhz 386 given to me for free); and you can
     install Linux on that.
     (My main household server is a 10 year old 386/33 with 32 Mb of
     RAM. Eventually I'll install some extra RAM and a new disk into
     that "new" 386 and throw it up as an extra server on my LAN).
     Once you have a machine (give it at least 16Mb and at least a 540Mb
     drive) then you can just slap a null modem between it and you
     desktop machine, or toss in a couple of ether cards and a
     cross-over 10BaseT cord (or even by a little 4 or 5 port hub). Once
     that's done you can use a terminal package (like Hyperterm, Telix,
     or K95 -- Columbia U's Kermit for Win '9x), or even Kermit for DOS)
     to connect to the Linux box. If you go the ethernet route you can
     use Win '95's 'TELNET.EXE' or you can still use K95 (it's also a
     telnet client --- and it's terminal emulation is far less buggy
     than Microsoft's --- so you won't need a custom termcap/terminfo
     file to run "curses" (Unix/Linux "full scree" terminal/console)
     applications).
     There are two reasons for me to suggest this approach:
     First, you are likely to be very unhappy with the performance of
     running any form of Unix under emulation. Although Linux performs
     adequately on a 386 with only 16Mb of RAM --- and some kernels can
     run in as little as 2Mb --- you'll probably just find emulation to
     be too frustrating to be useful --- particularly when using any
     Unix networking utilities.
     The only two viable reasons I can see for the mode of operation
     that you've requested are:
     * You want to play with Unix to learn it.
     * You want to use Perl/awk, or other text processing tools that are
       considered to be "Unix" utilities.
       
     You won't learn as much about Unix by running it under emulation
     --- and you'll probably end up being too frustrated by its
     performance to come away with a realistic appreciation of it.
     In the other case you can get versions of Perl, awk, and most other
     Unix utilities, shells, editors and many other tools that have been
     ported to Win32 (and even to DOS, often using the GNU'ish Go32 "DOS
     extender").
     The other reason for my suggestion is that Linux, even on a lowly
     386, makes a great server. My box has over 6Gb of online storage
     (which I'll probably double in the 40Mhz) a magneto optical drive,
     a CD-ROM and a CDR recorder, a 4mm DAT autochanger, a modem line
     (which handles uucp, incoming and outgoing fax, dial out
     terminal/BBS'ing, dial in terminal, and dial out PPP and will
     handle dial-up PPP when I get around to configuring it), a null
     modem into the living room (for use from an old XT laptop) and some
     other toys.
     The machine has currently been up for about three months.
     I forget why I rebooted three months ago, maybe I built a new
     kernel for it or maybe I just made some changes to the startup
     files and wanted to make sure it would come up automatically. It's
     been used as my mail gateway and newserver for a few years --- and
     it was used as my primary interactive machine (mostly text editing)
     for years. My wife and our various house guests sometime still use
     it or the dumb terminal to read their mail (if they don't want to
     use one of the Pentium's in the living room or in my bedroom).
     Sometimes I dial into to it from a client site (I'm a consultant)
     or even from some local coffee house using the Ricochet wireless to
     telco gateway (offered in selected areas by Metricom:
     (http://www.metricom.com/).
     You can use Linux as a gateway. Its kernel offers an optional
     feature called "IP Masquerading" which is a special form of
     "network address translation" (NAT) that allows you to hide a whole
     network of computers (using "private net IP addresses" like
     10.*.*.*, 192.168.*.* and others defined in the RFC 1918). It is
     trivial to install a package called 'diald' that will dial up your
     ISP on demand (automatically when any of you computers try to
     access the Internet -- or any other non-local nets) and will
     automatically drop the line after a configurable period of
     inactivity. This puts virtually no load on a machine (not
     measurable on my 386!).
     Another handy server role you can assign to your Unix box (Linux or
     otherwise) is as a household schedule/reminder service. The Unix
     'cron' and 'at' facilities are just perfect for this. You can write
     simple scripts and schedule them for periodic execution (cron) or
     for one time execution in the future (at). With slightly more
     complex scripts (using the GNU 'date' command, and simple shell
     conditionals and tests) you can do arbitrarily complex scheduling.
     It is truly easy to set this up to automatically e-mail you
     reminders post them to your "intranet web server" or to even page
     you (using a normal modem) as an alarm service.
     Eventually I expect someone to release a set of CGI scripts to act
     as a front end to a reminder/alarm service --- which you could toss
     up on your "intranet" server.
     Using a little box as an "intranet" web server for a household or
     small business also takes almost no memory or CPU power on a Linux
     or FreeBSD box. I think the overhead is about 70K for a small web
     server, and you can even configure them to be "dynamically" loaded
     if you're really pressed for RAM. The little box can also function
     as a fileserver for you Win '95 box by using Samba, a Unix package
     that provides Windows/NT compatible file sharing. It's easy to run
     all of these functions on the same box, they don't conflict with
     one another at all, and most of them present very little load on
     the server.
     On top of all that you can use the old clunker to run household
     appliance over the old BSR X-10 "Powerhouse" interface (also sold
     as "ActiveHome"). Larry Wall just gave a talk at the Silicon Valley
     Linux user's group showing us a demo of how he's automated his
     house. It was incredibly amusing. He has a detector on his clothes
     dryer, in the garage, that announces through the household PA
     system when the laundry is done; and motion sensors on the walk way
     leading up to the front door to announce visitors, and scripts to
     tell his wife and kids when they get mail (presumably he gets too
     much mail to want such an announcment for himself).
     Naturally you can put a sound card in the PC and run PA/Speakers
     off of it to do various cool things.
     The point is that you can't do all of this when you're running Unix
     in an emulator under Win '95 (since the chances are too great that
     you'll need to reboot it, and also since your emulator won't have
     access to most of the hardware that we're talking about --- it can
     only access the virtual/emulated hardware. The other problem is
     that Win '95 is generally not nearly as stable as any form of Unix.
     Even NT doesn't come close to Linux, FreeBSD, or any of the popular
     forms of Unix for stability.
     For the same reasons you won't benefit nearly as much from a dual
     or multi boot configuration. There's not much point to having a
     "server" that you keep rebooting to play Doom (which is available
     for Linux, BTW) or to read that MS Word document.
     Although I've focused on Linux (and I prefer it for my personal
     use) all of what I've said applies to FreeBSD, NetBSD, and OpenBSD
     among others. (There are some differences, the *BSD's don't have
     their NAT/masquerading and packet filtering in the kernel -- it's
     run as a user process, things like that. If you're learning Unix
     for professional reasons I'd definitely suggest that you clock in
     some time and practice on any one of the BSD systems as well as on
     a Linux box. Potential employers (in Unix savvy companies) will be
     far more intrigued by entry level applicants who've worked with
     BSD.
     Also, if you want to play with the X Window system (the dominant
     tehnology for supporting GUI's under Unix --- though, technically,
     it is a communications protocol and programming API --- and not a
     "GUI") you won't want to run it on less than a Pentium. In that
     situation I'd put one (character only) installation on the
     cheap/used PC and install a dual boot configuration on your main
     (Win '95) workstation. The best way to do that is to install an
     extra hard drive on the workstation (so you don't need to
     repartition your existing drives).
     Even you decide to put one of the BSD's on your cheap/used server
     you should probably still put Linux on your Win '9x workstation.
     There are two reasons for this:
    1. there are more commercially available productivity applications
       available for Linux (WordPerfect, StarOffice, Applixware, Cliq,
       Wingz, etc).
    2. Linux has very good support for DOS, and Windows filesystems (and
       even some, read-only and even NTFS and HPFS). You can even install
       a small Linux distributions directly into a DOS subdirectory.
       
     You could install Linux on the workstation and have it access most
     of its files (almost all of them) over the network (over NFS). All
     you need on a Unix box is a fairly small "root" filesystem. 20 Mb
     is enough for all the "root" files (all you really need is /etc,
     /dev/, and /sbin -- the rest can all be mounted over the LAN though
     I'd suggest adding a local swap file or partition, and a local /tmp
     directory).
     If you do an installation like this: (with one server installation
     on a dedicated PC and another on your workstation -- say FreeBSD on
     the server and Linux on a multi-boot for your Win '9x box) you'll
     get the maximum benefits and you'll learn enough about Unix to
     qualify for professional work in the field.
     So, in conclusion: You won't learn nearly as much about Unix from
     any form of "emulation" or dual-boot arrangement. The principle
     advantage of Unix has always been the client server model it uses.
     Unix "wants" to be a server. It's as important to learn this
     philosophy as it is to learn the syntax for a couple hundred Unix
     commands. So, that's the best approach to installing and learning
     it around your house.
             _________________________________________________
   
  (?) winprinters & MTAs
  
    Pointers and Corrections
    
   From John Levon on 05 Jun 1998
   Hi, two points:
   1) for win printers, someone has written a PPA driver. i don't have
   the URL, but it was mentioned in 2 cent tips a while ago i think. This
   possibly enables win printers to be used with linux 
   
     (!) In fact I had heard of it. However, it had not progressed far
     enough along, last I checked, to be worth mention in LG. It's a
     tough call for me whether to go dig up the latest scoop on a
     digression or whether to gloss over it in the interests of
     conveying the more important message.
     The important message is that "Winprinters" and "Winmodems" are a
     big lose for everyone involved (even for Windows '95 users, who may
     find them "abandoned" in future versions of Windows and NT). These
     are not "progressive" developments in the hardware market. The
     other important message is that we shouldn't have to reverse
     engineer these protocols.
     While I admire the heroic efforts of people like Andrew Tridgell
     (original architect of Samba, who implemented it by analysis of the
     packets off "the wire")
     For those that are interested in some info on the HP PPA printer
     drivers for Ghostscript and Linux look at:
     
   Ghostscript Printer Compatibility
          http://www.cs.wisc.edu/~ghost/printer.html
          
     ... and follow their link to:
     
   (Tim Norman's) PPA for the masses
          http://www.rpi.edu/~normat/technical/ppa/index.html
          
     ... and for other printer stuff for Linux try Goob's:
     
   Linux Links: Software : Utilities : Printer
          http://www.linuxlinks.com/Software/Utilities/Printer/
          
   (?) 2) instead of www.faq.org, try www.faqs.org. this is a top site
   that automatically contains HTML versions of FAQs on rtfm.mit.edu
   thanks,
   john. 
   
     (!) Doh! I looked for that by memory and tried "faq.org" first. I
     didn't think to try "faqs.org" (and it wasn't in the bookmark file
     on the machine I was typing from at that moment). I remember being
     impressed with faqs.org and as disappointed when I look "back"
     (finding the wrong one).
     Thanks for catching that!
             _________________________________________________
   
  (?) Dreaming about xBase tools for Linux
  
   From Michael "Mookie" Kepler on the L.U.S.T List on 04 Jun 1998
   Is there a FoxPlus program for Linux ? When I use the SCO FoxPlus on
   Linux with iBCS module running, it can not read the data files.
   Thanks,
   Jyh-shing Chen
   Michael "Mookie" Kepler
   Ha! Dream on! I'm decloaking and posting just because I'm glad to meet
   another living dinosaur. I, too, have too much experience with and an
   irrational attachment to FoxPlus. 
   
     (!) I presume Fox-Plus is an xBase product related or similar to
     FoxPro. If so you might look at WorkGroup Solutions "Flagship"
     (http://www.wgs.com/fsad.html).
     This is a full dBase compatible system, and xBase compiler.
     (Actually I think it does a "compile to C" --- then you'd use gcc
     to actually produce your binaries. That makes it more portable I
     suppose).
     You could also look at Christopher B. Browne's incredible annotated
     link farm of Linux business and productivity applications:
     
     http://www.hex.net/~cbbrowne/
     
     ... which has a page specifically one xBase dbms packages for Linux
     at: http://www.ntlug.org/~cbbrowne/rdbms05.html
     Oddly enough Christopher doesn't mention Versasoft's dbMan (dbMan
     IV or dbMan 5.x). Perhaps the product has been discontinued. I
     couldn't find any URL for it though there are a number of
     references. I just guessed at "versasoft.com" and glanced at their
     web site, which only mentions one product (VersaTOOLS; a FoxPro
     add-on?). I've blind-copied the one e-mail address listed thereon,
     so that he can respond with any info on the fate of dbMan, if he
     feels so inclined.
     So in answer to your question:
     Yes! Dream on! There are dbms apps for Linux, and you DON'T have to
     use SQL.
     (Also, if you ever want to work with a dbms package that's less
     like "DOS" and xBase, nothing like SQL and more like Unix shell
     script programming, look at Revolutionary Software's package: /rdb
     -- they have a Linux version. Apparently this /rdb is related to
     Rand/Hobbs RDB -- Christopher's pages talk about this a little bit.
     
   (?) I made my living pushing the limits of Sco FoxPlus for five years,
   starting in 1989, making it do things it was never meant to do. It is
   frustrating that so many people think that SQL and Relational are
   synonyms, and that Relational and XBase are mutually exclusive. Every
   database application I created with FoxPlus conformed to the
   Relational data model. There is nothing in FoxPlus to prevent this.
   Please let me know if you find anything FoxPlus-esque that works under
   Linux. I've been looking myself and have found nothing comparable. If
   they would just release the source code, we could get somewhere.
   Whenever I encounter a trivial programming task, especially ones
   involving tabular data, I always think of how much quicker and easier
   it would be to turn it out in FoxPlus than 'C', or _shudder_ PlSql
   (yuck!). 
                        ____________________________
   
   (?) From Thomas Good on the L.U.S.T List on 5 Jun 1998
   Jim - I have the opposite problem. I want to lose foxpro in favour of
   SQL. I run an odd mix of dbs including Postgres, Progress and FoxPro.
   The foxpro is sitting on a dos box and is need of extinction. It is
   (obviously) single user and so the person who sits on the box has to
   do all of the data input and answer the phone - doing queries as
   requested.
   I am moving her data onto a linux box and I want to shift the code
   from foxpro to SQL. Any converters out there? Front end is not too
   important as I will use perl (5 with DBI 0.91 and DBD-Pg 0.69). I just
   need to rework the existing queries...thanks!
   Tom
   ----------- Sisters of Charity Medical Center ----------
   Department of Psychiatry
   Thomas Good, System Administrator
   North Richmond CMHC/Residential Services
   
     (!) Look at Christopher's web pages (I cited it in my longer
     message but it's at: http://www.hex.net/~cbbrowne/)
     Specifically he lists a some conversion utilities and .DBF
     libraries at: http://www.ntlug.org/~cbbrowne/rdbms05.html
     Also don't forget to check the LSM (Linux Software Map). Here's a
     couple of entries from there (not listed on CBB's pages):

 .......

 Title:          Light DBF client/server dbms (LDBF)
 Version:        0.9.9 beta
 Entered-date:   17NOV95
 Description:    This is client/server dbms that operate with
                 DBF files and compatible with Foxpro CDX indexes.
                 Clients connecting with server via TCP/IP
                 and works with databases as on local machine.
                 Supports transactions,multi-user operation,
                 stored procedures,triggers,
                 password security,logging all operations,
                 flexible configuration.Implemented main suite of
                 xBase operators.
                 Includes DLL of LDBF API for Windows.
 Keywords:       LDBF,ldbf
 Author:         vlad@torn.ktts.kharkov.ua (Vlad Seriakov)
 Maintained-by:  vlad@torn.ktts.kharkov.ua
 Primary-site:   sunsite.unc.edu (/pub/Linux/Incoming)
                 707 Kb ldbf-0.9.9.tar.gz
                 930 b ldbf.lsm
 Alternate-site: ftp.kiae.su ( /linux/misc )
 Original-site:
 Platforms:      Linux 1.2.0 or later with IPC support
 Copying-policy: Freeware

 .......

Title:          dbview
Version:        1.0.0
Entered-date:   20APR96
Description:    dbview is a little tool that will display dBase III and
                IV files. You can also use it to convert your old .dbf
                files for further use with Unix.
Keywords:       database dbase view convert
Author:         joey@infodrom.north.de (Martin Schulze)
Maintained-by:  joey@infodrom.north.de (Martin Schulze)
Primary-site:   sunsite.unc.edu /pub/Linux/apps/databases
                10kB dbview-1.0.0.tar.gz
Original-site:  ftp.infodrom.north.de /pub/Linux/Devel/dbview
                10kB dbview-1.0.0.tar.gz
Copying-policy: GPL

 .......
Title:          libdbf
Version:        1.4
Description:    Tools for manipulating dBase files
Keywords:       unix dbase
Author:         beacker@sgi.com
Maintained-by:  Nobody to my knowledge
Primary-site:   Wherever you put it.
Original-site:  news::comp.sources.misc
Platforms:      Unix (This copy linuxified)
Copying-policy: No commercial use, no charging for distribution (see README).
Entered-date:   01JAN96

     Those were all found just using the "dbf" search string on a local
     copy of the LSM (just a text file I keep around since I do so much
     Linux support work).
     There's are several Linux Software Map search engines and
     searchable Linux Software Database sites out on the web. I don't
     even have a "favorite" one any more.
     Try:
     
   Linux Search Database
          http://www.egypt.pca.net/LSDB/lynx.html
          
     ... which found this one:

  Title: AppGEN
   Version: 0.2 alpha
   Entered Date: 11JUL96
   Description: Database application generator and 4GL for Postgres95 and
                HTTPD. DBase DBF file to SQL Convertor.
   Key Words:   Application Generator 4GL SQL Web WWW Forms Postgres95 DBF
   Author:      Andrew Whaley
   Primary Site: sunsite.unc.edu /pub/Linux/apps/databases/postgres
                 appgen-0.2-alpha.tar.gz
   Alternate Site: GPL'ish End

     ... or try:
     
   Linux Links (by Goob!) at:
          http://www.croftj.net/~goob/
          
     (The search engine is not too hot, but the hierarchy of links is
     great). There is a reference there to a semi-free package called
     X2c (the portable xBase compiler). X2c seems to have some features
     for creating binary CGI interfaces to your DBF databases. Which
     might be an alternative to converting it to SQL, if you aren't
     worried about some of the concurrency and integrity and business
     rules enforcement that are associated with SQL --- or even if you
     just need a quick interim solution to use while you're doing the
     xBase to SQL port.
     Another place to check into is:
     
   The #LinuxOS Webpage: Linux Software Search Engines and Indices
          http://www.linuxos.org/Lsoftsearch.html
          
     As the name suggests that site is maintained by principals of the
     #LinuxOS IRC channel on EFNet and it contains a list of Linux link
     farms, search engines and indices (what a surprise!).
     So, I'd say there's plenty of places to look.
                        ____________________________
   
   (?) From Michael Kepler on the L.U.S.T List on 5 Jun 1998
   I'd just like to thank you (Jim Dennis) for your very comprehensive
   and helpful responses to the XBase question. I had no idea there were
   so many database options available for Linux. I joined this
   conversation out of idle personal interest, but now I think I see some
   possibilities for solutions for current needs we have at our company.
   Thanks again,
   Michael Kepler
   VP Systems Development
   Metro One Telecommunications
             _________________________________________________
   
  (?) auto response for email ?
  
   From Ted via the L.U.S.T List on 04 Jun 1998
   Whatever you do, don't do this if you are on a mailing list. Think
   about the consequences...
   Ted the Lurker 
   
     (!) Ted, when replying to L.U.S.T. messages, please remove the
     extraneous quoting.
     
   (?) Hi,
   How does one set up sendmail for automatically responding to an email
   indicating that one is out of the office and will be responding to the
   incoming emails at a later date ?
   Thanks,
   Jyh-shing Chen 
   
     (!) Normally one doesn't set up 'sendmail' to do the automated
     response. Normally one would put in a .forward file with something
     like:
     
     "| /usr/local/bin/vacation...."
     
     (or something like that).
     There is an old program named "vacation" (written by Eric Allman,
     author of sendmail) which can be used for this purpose. You can
     read the man page for it if you like. It does some checks to
     prevent replies to mailing lists (looks for a "Precedence: bulk"
     header line) and system accounts (Mailer-Daemon, Postmaster, etc).
     It also maintains a "cache" of addresses to which the "vacation
     message" (or other auto-response) has been sent to prevent spurious
     (and very annoying) duplicate responses to the same address.
     (In other words, if you really are "on vacation" and someone
     routinely copies you on some sort of mail, usually as part of a
     workgroup list, they only need to hear about it once. I think
     vacation defaults to an eight day limit between responses).
     That would be one way one might do it.
     However, this is Linux and there are even better ways. Most Linux
     distributions default to 'sendmail' as the MTA (mail transport
     agent) and use procmail as the MDA (mail delivery agent). (You
     presumably use elm, pine, MH, or whatever you like as your MUA ---
     mail user agent).
     'procmail' is a "mail processing package" consisting of a few small
     programs that you call upon via your own .procmailrc scripts. I
     wrote an article about them for Linux Gazette about a year ago. You
     can still find it, and some hot links, at the
     http://www.linuxgazette.com/ web site.
     The procmail documentation is a bit confusing so let me offer a
     couple of quick notes: procmail is a very simple scripting
     language. A procmail program consists of a list of "recipes" When
     an item arrives (is delivered via procmail) the procmail binary
     traverses the script from the top, scanning for the beginnings of
     recipes (usually starting with a line like):
     
     :0
     
     ... or
     
     :0 B
     
     (where B is a "flag" --- and there are several of those which mean
     different things).
     The rest of each recipe consists of some number of "conditions"
     (patterns) and one "action" (disposition). Each of the condition
     lines is of the form:
     
     * ^From:.*foo...
     
     ... where ^From:.*foo... is a regular expression that is checked
     against portions of the mail message that is currently "in hand"
     (as it were). Usually your patterns will only be applied to the
     messages headers. If you use the B flag on the recipe line or you
     can put flags on your condition lines using a syntax like: * B ??
     $PATTERN (where you replace $PATTERN with the regex for your
     pattern).
     All of the conditions which are logically AND'ed for each recipe
     --- so something like:
     
     :0
     * ^From: joe.*
     * ^Precedence: bulk
     
     ... would match mail that was from joe (in this case any joe at any
     address) AND had a header indicating that is was of "bulk"
     precedence.
     After any/all of your condition lines, in a given recipe you have
     an action line. The actions you can take are:
     
   
          "file it"
          "forward it"
          "pipe it into a program" (such as an autoreply 'bot).
          
     To "forget it" you just "file it" to /dev/null. In general any
     filename on the action line will be consider to be a mail folder.
     Any filename with no path elements will be considered standard mbox
     (elm/pine compatible) folder under your ~/Mail directory (??).
     (Normally you'll have a MAILDIR variable set. You can assign and
     reference variables in procmail in pretty much the same ways as in
     sh (Bourne shell)).
     A name that refers to a directory will cause procmail to write each
     message into a separate file in that directory (this is called a
     "directory folder"). If you use a folder of the form: foo/. then
     procmail will write the messages into the $MAILDIR/foo/ directory
     using an MH compatible name and format.
     To forward your mail you start the action line with a "!" (bang)
     and simply give it an address. Be very careful about forwarding to
     any address that might have its own procmail or other forwarding
     agent attached. Otherwise you'll create a mail loop. For this
     reason most procmail wizards never use the "!" forwarding operator
     --- they pass the message to a pipe, adding their own headers and
     formatting the message to the new address (still forwarding it --
     but with some checks and changes in the headers).
     So, here's how you pipe the message (to forward or autoreply) You
     start your action line with a | (pipe) symbol and the rest is just
     the command line. The procmail suite comes with a program called
     'formail' (FORmat some MAIL headers).
     So if you pipe mail to formail with the "-r" switch it will format
     a "reply" and if you add the -A switch it will "Add" a custom
     header line (replacing any previously matching header).
     Here's an example:
     
     :0
     * !^FROM_MAILER
     * !^FROM_DAEMON
     * < 10000
     * ^Subject: info
     * !^X-Loop: info@starshine.org
     | ((formail -rk -A "Precedence: junk" \
     -A "X-Loop: info@starshine.org" ; \
     echo "Info Request received on:" `date`) \
     | $HOME/insert.doc -v file=$DOC/general.info) | $SENDMAIL -t -oi
     -oe
     
     ... note this one is unusually complex since I am "keeping" the
     senders message, checking if the whole thing is over 10K, appending
     the date on which I received the message, and inserting (via a two
     line awk script named "insert.doc") a response. Also those
     "FROM_MAILER" and "FROM_DAEMON" patterns are a couple of "magic"
     patterns that procmail recognizes --- they are actually expanded to
     some hefty regexes internally.
     ... in other words, this action line is doing alot more than most
     auto-reply. The point is that I can use formail to create the reply
     headers (which it gets by filtering the header as procmail passes
     the header and body of the mail into the pipe). I can then ship the
     results of that to some other process (to do other processing on
     the body or whatever) and finally passing that all to a copy of
     sendmail (the full, local path to which is conveniently stored in
     the $SENDMAIL variable). The -t switch on 'sendmail' means: "Take
     the 'to' addresses from the headers on your standard input" ---
     this is the safest and cleanest way to pipe messages into sendmail.
     That's a short course on procmail. The tutorial I wrote for Linux
     Gazette is even more basic than that --- so if I rattled through
     some of that too fast: go read it.
     One last note: There are 5 man pages on procmail, one for the
     binary, one on the rc file syntax (the programming language) one
     that's full of examples, and another on the "weighted scoring"
     extensions (which allow you to add and subtract values to a
     "weight" using various conditional patterns, which can be sensitive
     to how many times a pattern appears in a message --- so you could
     automatically descriminate against messages that were more than
     have "quoted" lines).
     The weighted scoring stuff is high wizardry --- I don't use it. The
     examples are mostly suitable for cut and paste.
     Keep in mind that you can call all sorts of programs, not just
     'formail' --- so you could write a simple procmail script call on a
     "sendpage" program when someone really important sends you mail
     about something "really important"
     Also 'formail' has the -D switch, which means one thing if used in
     conjunction with -r (the combo means, "Don't duplicate" our reply
     -- like vacation; where it checks for the ). It means something
     else when used without the -r (don't deliver to this folder if this
     is a duplicate according to the Message-ID: header line). Both
     meanings have quite a bit to do with "duplication" --- but are much
     different in usage.
     If you subscribe to lists, like L.U.S.T, I suggest procmail for
     auto sorting your mail. When you want to add auto replies --- even
     if you're just going to call on Eric's 'vacation' program, you
     should add that as a recipe after any procmail sorting (and spam
     filtering) and with the * !^FROM_ and X-Loop: patterns. That will
     prevent auto-replies to mailing lists that don't put in their
     "Precedence: Bulk" line, and that might be from daemons and mailers
     (other auto responders) that 'vacation' doesn't "see" ('procmail'
     and 'formail' are more recent and benefit from a few more years of
     experience with Internet "standards drift").
     One of these days I may write a whole book on procmail. It would be
     pretty short (like the O'Reilly 'vi' book, or their one on
     "termcaps"). It's a very powerful utility that currently is passed
     on as an "oral tradition" among sysadmins and Unix hacks. I think I
     heard that TDG (the dotfile generator) provides a menu-driven
     (GUI?) front end to creating .procmailrc files --- among many
     others. That would probably be a good place to look for more info.
     [He may have read about it in issue 17's article -- Heather]
             _________________________________________________
   
  (?) Connecting Linux to Win '95 via Null Modem
  
   From Chris Gushue on 04 Jun 1998
   I have two systems, a 486 and a K6, and I was wondering how (if) I
   could connect them using a serial (null modem) cable. One system will
   be running Windows 98, the other running Linux. I can't seem to find
   any info on the LDP or other webpages. Thanks. 
   
     (!) Certainly you can connect them for some purposes.
     I don't know anything about Win '98 but I presume it comes with
     some sort of terminal emulation package (like the Hyperterm that MS
     licensed from Hilgreave for Win '95, or that cheesy old "Terminal"
     that they used to ship with Windows 3.x).
     You could also get any of several shareware, free, or commercial
     communications packages such as Telix (Windows or DOS), Kermit
     (DOS) or K95 (Windows), etc.
     All of these should have a "direct" or "null modem" option listed
     among their "connection/modem" types.
     This will give you a basic, character modem terminal login to your
     Linux box. This not a networking connection --- it is just like
     connecting a dumb terminal to the machine (which still gives you
     access to most of the applications and almost all of the utilities
     and programming tools on your Linux system).
     If you want networking between these two systems, over the serial
     line; that's a different story. You should be able to establish a
     SLIP or PPP connection between the two. Once you've done that you
     could run any of the TCP/IP protocols over the line. However, it's
     much trickier to do that --- and I have no idea how Win '98 will
     handle it.
     (Under early revisions of Win '95 I remember complaints that the
     supplied PPP drivers and their user interface was configured to
     work with MSN (Microsoft Network --- their ISP) and that it
     required some utility from the "Plus Pack" to allow one to create
     and maintain a "chat" script --- a way to log in and
     configure/establish a PPP session with any other ISP.
     It seems that MS also added features in their NT 4.x (RAS?, RRAS?)
     that allow these systems to act as recipients of the stock Win '95
     MS-CHAP authentication method. I guess this was a bid to convince
     ISP's to adopt Windows NT for their work.
     Meanwhile Gert Doering (and others?) released the AutoPPP
     extensions or patches to 'mgetty.'
     'mgetty' is Gert's very popular "modem getty" line that allows a
     modem line to be shared between terminal, fax, network and even
     voice (with some modems) for both incoming and outgoing use. One of
     the features of 'mgetty' is that it can be configured to recognize
     certain login strings ("user name patterns") as a directive to use
     an alternative 'login' program.
     Thus you can configure you modem line to use ppplogin when given a
     "user" name of the form: Pmaryjoe, and to use a traditional 'login'
     when presented with others.
     I personally haven't set up AutoPPP. However, a quick Yahoo! search
     on the string: "+mgetty +autoppp" gives about 450 Alta Vista hits.
     Most of these are from the Linux ISP mailing list. I didn't spot
     any that covered AutoPPP over a null modem.
     Trying a search string like: + "null modem" +mgetty +win + "95"
     ... didn't help either. Though it did return a bunch of links to
     Linux Gazett mirror sites carrying issues 18, 25, and 28 (false
     hits in this case)
     Somewhere on the Linux ISP mailing list archives I found a thread
     about "null serial" that was on target but not very informative.
     Someone mentioned that the Win '95 PPP couldn't handle direct
     connection --- and suggested Trumpet Winsock (a third party TCP/IP
     suite for Windows --- and DOS --- for years before MS had ever
     heard of TCP/IP).
     So, it may not be easy to get networking configured over a null
     modem line so long as Win '9x is on one end of it. However, I bet
     it would be possible. You should probabl create a "modem emulation"
     driver for Linux that would allow the Win '9x box to work as though
     it were sending AT commands to a modem. The "modem emulation"
     driver could implement a small AT command subset (responding to
     every valid <pause>+++<pause>AT sequence with "OK" or the
     appropriate response).
     In the long run it's probably far easier to buy a couple of
     ethernet cards (less than $30 each) and a 10baseT "cross over"
     cable (necessary if you're not going through a hub, and sometimes
     necessary to cascade one hub off of another). Not only is ethernet
     much faster than serial --- it is currently much easier to
     configure and support (for networking). Another advantage is that
     you can later expand; buy a 4, 5 or 8 port ethernet hub and you can
     wire up the whole house (actually I've almost filled two 8 port
     hubs here --- but I'm a little different).
     Conclusion: You can easily use the serial/null modem for simple
     terminal access. You might be able to get it working as a
     networking interface, but you might have quite a bit of trouble
     convincing Win '9x to do PPP over a "direct" or "null modem"
     connection. So you might have to look for a third party PPP
     replacement (which may need to be upgraded between the Win '95 and
     Win '98 versions) --- or you might be able to write some weird
     "modem emulation" on the Linux side. For networking it will be much
     easier to buy a couple of ethernet cards.
                        ____________________________
   
  (?) Linux help
  
   From Chris Gushue on 04 Jun 1998
   Thanks a lot for your thorough and quick response! It was just what I
   was looking for, just a basic login to my Linux box to play around
   with it until I get around to buying a hub and network cards. It kind
   of funny though, using my K6/233 Win98 machine as a dumb terminal to
   my 486/100 Linux box :-) 
   
     (!) I was using that VAResearch machine that I reviewed for the
     Linux Journal ("betelgeuse": a 266Mhz PII with 64Mb of RAM and a
     4Mb Matrox Millenium video) as a dumb terminal to my old 33Mhz 386
     ("antares") for months. The old 386 was where all my mail and news
     was. It's still the network hub, mail and news server for the house
     (though now I use 'fetchmail' everything over to "canopus" a home
     built P166; the wife mostly took over the PII).
     The 386 is the most stable machine in the house -- it's the only
     one on a UPS.
             _________________________________________________
   
  (?) Hardware Lockups due to Graphics Load
  
   From Brad Alexander on 30 May 1998
   Hi Jim,
   This isn't Linux-specific, but I'm having a problem and I'm hoping you
   can help me come up with a workaround that isn't going to cost a lot
   of money.
   I have an Intel P-100 on an Amptron AM-7900 board with 64MB of EDO RAM
   (2 32MB sticks), a gob of hard drives (a 2.2MB Quantum Fireball IDE
   and a FutureDomain SCSI controller with a 420MB Conner, a 1GB Seagate,
   1GB Micropolis and 1GB Quantum Empire), a Diamond Stealth 64 with 2MB
   DRAM, and a SoundBlaster 16 Plug'n'Pray.
   I'm running a heavily modified RedHat 5.0 machine with an 800MB DOS
   partition on /dev/hda1 and a 200MB win95 partition on /dev/hda3
   (Linux's /+/usr is on /dev/hda2).
   I have been seeing system lockups for quite a while now. I noticed
   them when running xlock in random mode initially, then noticed that I
   was also starting to have problems with some of my dos apps, like
   Jane's Longbow and Duke Nukem locking up. Under Linux, I settled on
   using xlock in galaxy mode, and the lockups dropped to every couple of
   weeks. (Note that during this time, I upgraded memory from 4 8MB
   sticks to 2 32s.)
   Everything went all right until I upgraded to RedHat 5.0, with XFree86
   3.3.1. The lockups increased to about every 2 days. Once I upgraded to
   XFree86 3.3.2, they dropped back down to about once a week.
   I'm basically using you as a sounding board to see if I might have
   missed something. I'm thinking its hardware, but where? The stealth?
   The lockups seem to occur during graphics app use, xlock, or the gimp.
   The motherboard? The chip? What can I start replacing without sinking
   a whole bunch of money into it?
   Thanks in advance,
   --Brad Alexander 
   
     (!) Well, the first thought would be to try a different video card.
     I don't have too much confidence that the problem is truly related
     to the video card's activity --- so it's just a diagnostics start.
     To see if this really is related to graphics, boot up the system in
     text mode (don't run X, change your runlevel or initdefault to one
     of the non-xdm modes if necessary). Now you can run a couple of
     kernel builds on it (that's usually a pretty good stress test. Try
     'make -j' to work it harder.
     It would also be helpful to know what sort of lockup you're
     getting. It may be that you could still login via a serial port
     (using a null modem and a laptop or any other nearby computer or
     terminal). Do do this simply add a line like
     
     t1:23:respawn:/sbin/agetty -L 38400,19200,9600,2400,1200 ttyS1
     vt100
     
     ... to your /etc/inittab. This should allow you to use one of your
     serial lines to login. It is possible for the Linux X Windows
     system and console to be dead while the kernel and other processes
     are still up and running. Another test is to ping it from another
     system (if you have an ethernet LAN connected to this machine).
     Even if telnet doesn't work you want to ping it to see if the
     kernel is still responding.
     It's also probably worth trying the software watchdog timer code in
     the newer kernels. These allow you to configure a kernel module to
     emulate a hardware watchdog timer card. These WDT devices are
     basically a "dead man's switch" for your system. If the timer isn't
     periodically updated by the kernel (or by some other thread in the
     kernel, in the case of the emulated WDT) then the WDT triggers a
     system reset.
     Obviously a software emulation of this isn't quite as reliable as a
     hardware WDT --- since a completely hung kernel will never get
     around to calling on that module's thread of execution. However, it
     isn't too unlikely that the hang is in some specific kernel thread
     and that some other thread continues to execute after other parts
     have died.
     Frankly I'm not sure what the difference between the kernel
     watchdog emulation code and the boot "panic=" parameter. But that's
     definitely another thing to try (just add something like panic=60
     to your lilo "append=" directive, or manually when you boot up your
     system). I guess that the difference would be that there may be
     some conditions under which the kernel could get into a comatose or
     unresponsive state without panic'ing (if it got tricked into some
     really long timeout wait or something). The panic= option forces
     the Linux kernel to reboot after a "panic" (a critical error
     condition detected by the kernel, usually a corrupted table that
     fails its consistency and integrity checks).
     Normally the kernel would just display a "panic" message and sit
     there waiting for human intervention. These are very rare (other
     than the old "VFS kernel panic, unable to mount root" that occurs
     when you have your kernel misconfigured for your arrangement of
     hard drives --- or when you change the hardware setting of your
     disk drives without updating your kernel (with the 'rdev' command
     to set the root device flags) and/or without updating your LILO or
     LOADLIN commands (which are usually used to pass these flags to
     your kernel to over-ride the compiled in defaults).
     Other than that common case I think I've only seen one or two Linux
     kernel panics in the last 6 years. I've only had about a half dozen
     unexplained system lockups over that period --- and that's on about
     fifty Linux machines that I've managed during various portions of
     that time. These lockups might have been panics in situations that
     were so bad the kernel couldn't even display an error message,
     there's no way to know).
     I've only had to reboot unresponsive Linux boxes about a dozen or
     so times in all the years I've used it. This was only a problem in
     the late .99 and early 1.0x kernels when I was running a very busy
     FTP/Web server that was simply overloaded -- the TCP/IP stack would
     get so congested that the system would timeout between my login
     name and password --- at the console (I'd've loved a working SAK
     --- secure attention key back then). I was glad to see the major
     TCP/IP re-write in between 1.2 and 2.x.
     I'm not trying to tout Linux' horn here --- (well, maybe a little).
     The point is that I don't get panics and lockups often enough to
     see how the panic= parameter and the softdog/watchdog code would
     work in those situations.
     However, if you enabled the panic= and/or the softdog kernel
     option, you may see that the machine reboots without a minute or
     two after your lockup (wait for ten or fifteen). This tells you
     that some part of the kernel was still running (and that the
     hardware isn't completely wigged out).
     Beyond that the things to do are to take out all non-essential
     hardware (the sound card would be a great choice --- and the SCSI
     card, since you mention that your Linux partitions are on the IDE
     drives. As with most technical computing issues the it eventually
     boils down to a matter of cost. You mentioned a couple of times how
     you don't want to spend money on solving this problem. Ultimately
     the time you spend fighting with it translates to money --- and
     you'll have to eventually ask what your time is worth.
     (The deeper part of this question is that you may find that your
     home machine isn't worth the time or the money and you may content
     yourself to just use any machines that you encounter at work, or
     whatever. Strange as that sounds I've had friends who refuse to
     keep a computer around the house specifically because they "spend
     enough time with them at work" and feels that "home is for family
     time").
     At the same time I don't recommend throwing replacement components
     at the problem without understanding the nature of the problem.
     However, it may be that the best solution is to replace the
     motherboard and/or the video card and/or the RAM.
     Troubleshooting computers is difficult work. Whole books have been
     devoted to the subject (I like the Win L. Rosch Hardware Bible
     personally --- read it years ago and should probably get an updated
     copy). There are also parts of the process that can't be gained
     from any book --- that you must learn by experience and figure out
     through some combination of analysis and intuition. As our
     computers become more sophisticated the balance seems to lean more
     for the intuition.
             _________________________________________________
   
  (?) Compression Libraries to Link into a C Program
  
   From Corne van Biljon on the linuxprog mailing list on 30 May 1998
   
   (?) Hello
   I would like to zip a file, specified by the user, from within a C
   program. Currently I use the system() command to invoke gzip. Is there
   a compression library or routines out there somewhere, or is there a
   better way of doing this ?
   Thanks 
   
     (!) I can understand your concerns.
     The system(), and popen() calls are notoriously insecure and can be
     used to subvert your program to the users' will.
     I would have started with some Yahoo! and Alta Vista searches
     (actually I used Google --- a new and interesting search engine at
     Stanford University: http://google.stanford.edu/).
     The obvious phrase would be "+free +compression +library" (and
     reasonable variations).
     I get a bunch of links to the PKware Inc. pages (which are
     presumably shareware and/or commercial) and then I find a link to
     the zlib pages (which declare that they should not be confused with
     the Linux zlibc compression libraries).
     The zlib home pages are at:
     
     http://www.cdrom.com/pub/infozip/zlib/
     
     ... and appear to be gzip compatible, and co-written by the primary
     author/maintainer of gzip. However the impression I got from this
     page is that zlib is not under a GPL or is under an LGPL --- that
     your zlib linked code will not be encumbered.
     Naturally you'll want to read the licenses yourself.
     This zlib home page also has numerous links to other compresssion
     software and programming resources.
             _________________________________________________
   
  (?) LOVE THE NEW LOOK!!!!
  
   From David Rudder on 28 May 1998
   Heather,
   I love The Answer Guy's new look! Um, 'nuff said :)
   -Dave
   No Trespassing
   4/17 of a haiku
   
     (!) Glad you like it. I've been working pretty hard on it this
     month, and I hope a lot of other people like it too.
     So folks, what do you think of the footer? Does the double-footer
     on these questions (a nav area for hopping amidst Answer Guy
     entries, and the regular LinuxGazette section footer) make sense?
     Should they be combined? Should the sectional footer only be shown
     at the Answer Guy index?
     For this month, I'll make it the same as last, because I kind of
     like it... but you, the readers, should definitely let me know if
     it's giving you trouble. Thanks and cheers are also welcome :)
     Heather Stern
             _________________________________________________
   
  (?) Linux PPC on the Umax C500 SuperMac: Not A Good Idea
  
   From Fahimy on 28 May 1998
   Hello, I'm a french girl beginning some computer studies. I like
   Macintosh so I'm looking after a second hand macintosh or clone in
   order to work and learn C, Java and Linux on it. I'm perhaps about to
   buy an Umax C500, but I'm wondering whether it would be able to run
   linux. From a request to altavista, I found you were in a similar
   situation some month ago. Quoting a message you sent to the linux-pmac
   mailing list : 
   
     (!) Someone did send me a kernel that should be able to boot that
     system. However I have had other things to keep me busy.
     More importantly I can't recommend the Umax Mac clones at this
     point. They have announced that they are discontinuing their whole
     line of MacOS clones. So you'd be buying an orphan.
     I'd suggest an Apple G3 based system --- though I'm still
     disappointed about the lack of Mac clone manufacturers. I don't
     believe Apple will survive if it is the only supplier of its
     platform. On the other hand the G3 is the fastest processor out
     there in a commodity microcomputer. In addition I've heard that IBM
     has demonstrated a 1.1Ghz (1100Mhz!) version of the G3 architecture
     in their labs --- so there is plenty of foreseeable future for this
     platform.
     As usual we'll see. One nice thing about Linux (and Unix in
     general) is that it doesn't constrain us much in our choice of
     hardware. We can migrate to a new hardware platform with little or
     no effect on the majority of our utilities and applications --- and
     a correspondingly modest learning curve.
             _________________________________________________
   
  (?) Remote lpd from Solaris to Linux
  
   From kuksi on 27 May 1998
   I like to print from Solaris to Linux. The /etc/hosts.lpd file
   contents the sun IP address. I have installed the Linux printer on the
   Sun by remote printer. It works fine, but when i print to the remote
   linux printer, it is fail. 
   
     (!) I presume you mean that it works fine "locally" but fails from
     the remote clients.
     
   (?) the contents of the /var/log/message file:
   linux_machine_name kernel: lp1 at 0x0378, (polling)
   and the next time:
   linux_machine_name lpd[number]: sun_machine_name recvjob
   linux_machine_name lpd[number]: sun_machine_name request printjob
   linux_machine_name lpd[number]: sun_machine_name request displaylong 
   
     (!) I guess this is a hacked up excerpt from one of your /var/log/
     files.
     
   (?) But the printer in local mode on linux works fine. (think i am :-)
   )
   kuksi 
   
     (!) Well, 'lpd' is black magic to me. I've got my remote printing
     working on one pair of systems but not on another. Also 'lpd' seems
     to be a security nightmare that's almost as bad as the older
     'sendmail' releases.
     One possibility would be to try installing LPRng (the next
     generation of the lpr suite). I've printed out the manual for it
     (over a hundred pages long) and worked through a bit of it. It does
     seem to be an industrial strength printing/queueing system. Aye,
     but there's the rub, it may be overkill for your situation.
     So, all I can suggest is that you make sure that you've followed
     all of the steps and suggestions in the Printing HOWTO and that you
     try to get more specific debugging data.
                        ____________________________
   
     (!) On Wed, 27 May 1998, Jim Dennis wrote:
     So, all I can suggest is that you make sure that you've followed
     all of the steps and suggestions in the Printing HOWTO and that you
     try to get more specific debugging data.
     
   (?) Thanks for your e-mail. I have read many HOWTO about this, but I
   am going to try everything.
   (gondolom en :-) )
   kuksi 
             _________________________________________________
   
  (?) User Shell on Virtual Console 1
  
   From Todd Blake on 27 May 1998
   I like most people am the only person to use my linux system at home.
   What I'd like to do is when my system is done booting to have me
   automatically login as my main user account(not as root though) on one
   virtual console(the first) and leave all other consoles and virtual
   consoles alone, so that someone telnetting in will get a login prompt
   like normal, just that I won't. I'd still like the other vc's have
   login's for others to login and other reasons. I've tried just putting
   /bin/sh in /etc/inittab and that didn't work, and I'm stumped. Does
   anyone have any ideas on this?
   Todd Blake 
   
     (!) Almost right.
     If you want this to "always" be running (i.e. when you type "exit"
     from that shell the system "respawns" a new shell under your UID --
     you can use the 'open' command something like so:
     
     # Run gettys in standard runlevels
     ## 1:12345:respawn:/sbin/mingetty tty1
     1:12345:respawn:/usr/bin/open -c 1 -w -- su -c - todd /bin/sh
             _________________________________________________
   
  (?) Linux Memory Usage vs. Leakage
  
   From Kevin Monceaux on 27 May 1998
   Dear Answer Guy,
   HELP!!!!!!!!!!!
   I really enjoy "The Answer Guy" column, and I hope you can help me
   with this one. I'm running Linux 2.0.29. I've been using this version
   for quite a while now. Up until now everything's been fine. A couple
   of days ago the problem developed. What appears to be happening is
   that when programs are run they are not deallocating the memory they
   used. Upon first booting the system there is already almost 9 megs of
   RAM in use. I've run free to check the memory usage, ran another
   command, such as ls, then ran free again and the free memory
   decreases. I've noticed that if I run the same command, such as ls,
   again the memory usage stays the same. It's only when commands that
   haven't been executed before are run that the amount of free memory
   decreases. It doesn't take long before I'm out of memory and have to
   reboot. Any suggestions you could give me with this problem would be
   greately appreciated.
   Thanks in advance,
   Kevin Monceaux 
   
     (!) If you suspect a memory leak I highly recommend getting a log
     of your 'free' or 'vmstat' output before and after a few commands
     -- several snapshots.
     You can make a cron job to mail you a snapshot of this every hour
     or so. You might want to append the output of a ps command to each
     of these e-mail snapshots.
     Unfortunately it isn't as easy to interpret the output of these
     commands as it should be. It's entirely too easy to misinterpret
     the output fields from them -- since Linux normally uses most of
     the available memory for file cache buffers -- and large portions
     of the shared libraries and memory allocated to forked process is
     shared (the memory manager uses "copy-on-write" and other
     techniques to minimize the utilization of physical memory). This
     makes correlating actual memory usage difficult.
     You can also use 'top' (which is a curses process viewer). It can
     show you the current state of the system and sort by memory (M) or
     CPU utilization (P). You want to isolate the specific process(es)
     that is(are) causing the problem. Don't leave 'top' running
     unattended, however, since it is a bit of a resource hog in its own
     right.
     If you do isolate this to a particular program you'll want to see
     if there are updates available for it, or for any of the libraries
     it uses. You may also want to consider getting a newer kernel ---
     such as 2.0.33 or (if it's ready by the time you read this:
     2.0.34).
     Sorry I can't be more specific --- but you'll have to narrow down
     the problem a bit before we can do more. Incidentally you can start
     up in single user mode and manually start all of the daemons and
     processes that you normally run your multi-user (initdefault) mode.
     Do this slowly, one command/daemon at a time, to see when the
     problem first appears. If it happens right away then boot with the
     -b option to prevent the execution of any of your boot up scripts
     and manually load any kernel modules you're using one at a time.
             _________________________________________________
   
  (?) tv cards and dual monitor
  
   From Desperado on 27 May 1998
   Hi!
   Did you hear about TV cards in LInux? am I dreaming? 
   
     (!) I've heard about them. However, I don't have one to play with
     and I haven't even found a decent HOWTO or website to explain
     what's required and what's broken (if anything). [At press time,
     the Hardware Compatability HOWTO section 22.5 mentions some
     programs that support several TV tuner cards. It's mostly pointers
     to tgz files, though, not real help with setup. -- Heather]
     
   (?) What about dual monitors? In WIndows 98 it needs at least a PCI
   bus, but what about 486 users? I found something relative for Linux
   (multimon or something like that) but It works with a black and white
   video card (don't remember exactly), anything to work with two monitor
   in Linux, using two ISA video cards? 
   
     (!) As I've explained before, the classic situation with PC and
     multiple monitors used to be that the you couldn't put two VGA
     (actually any combination of two VGA/EGA) cards into the same
     system. Thus you could put a monochrome video card (text only or
     "Hercules" MGA) into a system to co-exist with a VGA or EGA.
     Frankly I don't remember where CGA was in this mess, though I could
     look it up if I really cared. I personally never used CGA --- it
     was just the worst of all worlds.
     The 'multimon' patches for the Linux kernel are very old -- and
     probably haven't been updated to the 2.0.x (much less the 2.1.x)
     kernels. I've never used them. I seem to recall that it only
     applied to using a system with one VGA (or EGA?) card and one
     "Hercules" MGA (monochrome graphics adapter) or possibly an old MDA
     (text only monochrome display adapter --- the original IBM video
     card).
     Another approach that used to be possible was to use very
     specialized adapters like the old TIGA (Texas Instruments Graphics
     Array?) or DGA (?) cards. These were high resolution graphics
     adapters that cost thousands of dollars and weren't compatible with
     VGA or any other "standard" cards or software.
     However I've never heard of Linux (XFree86) drivers for TIGA or DGA
     cards --- and I'm not sure if they are still in production. In fact
     I don't actually know anything about these old beasts --- I just
     vaguely remember some discussions I had with other nerds back in
     the late 80's where the subject came up.
     When I last discussed this in LG (many moons ago) I didn't know
     that some of the modern PCI video cards had the option to be used
     in a "non-VGA" mode. Thus you can take some PCI video cards
     configure them to co-exist in a system with another VGA video card.
     I have heard that some of the commercial X servers support multiple
     physical displays on some cards. I don't seem to recall any of them
     for XFree86 --- but a search of their web pages:
     
     http://www.xfree86.org/
     
     ...would provide a far more definitive answer.
     The last I read none of the XFree86 servers support multi-headed
     operation. This is from the following entry in their FAQ:
     
     http://www.xfree86.org/FAQ/index.html#TwoCards
     
     I have yet to see anyone using this feature. One of these days I
     might try it. However, not this month.
     The Commercial vendors to check with would be:
     
   Xi Graphics (formerly X Inside):
          http://www.xig.com/
          
     ... and:
     
   Metrolink:
          http://www.metrolink.com/
          
     (there may be others but these are the two that I think of when I
     think of the commercial X servers for Linux).
     BTW: Metrolink didn't appear to have any online FAQ or web site
     search engine. However Xi's FAQ lists a sample configuration for
     use with two Matrox Millenium cards at
     http://www.xig.com/support/faqs.servers.html#Anchor-a5
     
   (?) What is inetd? when I am trying to install the ftp rpm, I get the
   message "you need inetd", but in my Red Hat 5.0 CD, in the RPMS
   directory there is nothing similar to that name. 
   
     (!) That sounds wrong to me. I would expect that message from the
     ftpd (the FTP Server package). The default ftp client should be a
     part of the NetKit package (probably in the base RPM).
     'inetd' is a IP service dispatcher. It listens to a list of TCP/UDP
     ports and dynamically launches programs as connections are
     requested for the corresponding "well known services" The mapping
     of ports to services is done via the /etc/services file, and the
     mapping of programs (daemons) to services that will be managed by
     inetd is in /etc/inetd.conf.
     In all of the major Linux distributions most of the the inetd
     services are configured to run tcpd (TCP Wrappers). This utility
     will check the the IP address of the client that is making the
     connection request against one or two lists of rules
     (/etc/hosts.allow and /etc/hosts.deny). 'tcpd' also makes some
     sanity checks, for example to see if the client's reverse mapping
     (a DNS request --- gethostbyaddr() actually --- matches one of the
     addresses that's returned by a forward mapping (gethostbyname).
     That's called a "double reverse lookup" and is somewhat more
     difficult for an attacker to "spoof" than just a reverse
     (in-addr.arpa) entry.
     Are you trying to use an ftp client or a server (daemon)? You might
     also try ncftp (Mike Gleason?) which is a nice curses mode (full
     screen) client. You can also try lftp which has some nice scripting
     features. In fact ncftp also has some rather handy features for use
     in scripts.
     Another option is to use mc's (midnight commander) ftp features. To
     do that just load the program and type cd ftp://..... (the URL form
     of the ftp site's name).
     Shortly thereafter you should see the files and directories from
     your FTP site appear in one of mc's navigation panels --- you can
     than navigate the other site, tagging, copying, and managing the
     remote files as though there were in a local directory tree.
     
   (?) One thing more, what about download managers? I use Get Right, but
   there is no version for Linux, well there is no Java Runtime
   Environment for Linux. Any other good application for that? 
   
     (!) I presume you mean that you'd like to select a number of files
     in an ftp client and have the system continue to try downloading
     ('get'-ting) them until they are all successfully retrieved.
     Perhaps you'd even like to just tag the files and defer the actual
     download until later (say, late at night when there's just less
     bandwidth in use all over the 'net).
     I think there are many programs that can do this. I've used
     'mirror' (Lee McLoughlin's Perl script) many times --- but that is
     more of a programming utility and it has no interactive front end.
     The best bet would be to search the Linux Software Map
     (http://www.ssc.com/linux/apps.html) with the words "ftp" and
     "client"
     I suppose it would be nice to have an FTP client that had an option
     write all your file selections to a file and execute the fetch
     later as an 'at' job. Perhaps one of our readers will know of one.
     Also there is quite a bit of Java support for Linux. I don't know
     about the JRE specifically but it appears to be supported according
     to the canonical Linux/Java site (http://www.blackdown.org):
     
   Java-Linux: Javasoft(TM) Products
          http://www.blackdown.org/java-linux/products.html
          
   (?) Thank you for your help.
   Desperado 
   
     (!) I hope that helps. Look at the Blackdown.org site for more info
     about Java under Linux.
     _________________________________________________________________
   
                     Copyright © 1998, James T. Dennis
               Published in Linux Gazette Issue 30 July 1998
     _________________________________________________________________
   
   [ Table Of Contents ] [ Front Page ] [ Back ] [ Next ]
   
    "Linux Gazette...making Linux just a little more fun!"
     _________________________________________________________________
   
                   CHAOS: CHeap Array of Obsolete Systems
                                      
                              By Alex Vrenios
     _________________________________________________________________
   
    Introduction
    
   If you are anything like me, you're probably not exactly sure how fast
   the latest processor is. You probably didn't wait in line to buy the
   latest Windows upgrade, and the machine you use to get your work done
   probably doesn't look too good next to even the $1000 specials. Maybe,
   like me, you need a little spice in your computing time slice.
   
   This article describes a year-long project to create a network of old
   PCs - a loosely coupled multi-processor, if you will - all for the
   cost of a reasonably priced PC, a lot of my personal time, and a
   little bit of luck.
   
   Last year our vintage 1988 Deskpro 386s reached the limits of their
   upgradeability, and they still couldn't run all the applications I use
   at work. It was time to buy new. My wife gets the first new one this
   time, and I'll decide to wait a little while longer. The two old
   machines were top of the line, in their day. I still have all the
   manuals, the original maintenance diskettes, and a few spare parts.
   I'll be sorry to see them go.
     _________________________________________________________________
   
    It Begins
    
   With the new PC up and running I found myself reorganizing things. I
   went to my favorite computer store for a cable. Being one to avoid
   paying for a new cable whenever I can, I went into the back room - the
   salvage area - very much like a high tech junk yard. There, near the
   corner, on a bottom shelf, were three Deskpro 386s, just like my old
   ones at home!
   
   I moved closer. (Didn't want to cause a scene, you know.) Each was
   priced from $100 to $150 and the stickers were yellow. The big sign on
   the wall said yellow means I can take another 20% off. I did some
   quick mental math and decided to offer him $300 for all three of them.
   
   "Excuse me," I said. "The old Deskpro 386s in the corner?" "Twenty
   bucks apiece," he said. I put my credit card on the counter and the
   PCs in my trunk. He even threw in three AC cords. After the deed was
   done, I heard myself asking about others like them because I had to
   build a home network. He even agreed to give them to me at the same
   rate!
   
   I took them home, took them all apart, and blew out some nasty dust.
   The cases cleaned up like new with a little spray cleaner. (Okay, a
   lot of spray cleaner.) They all had at least 40 MB hard, and standard
   floppy drives, and some even had extra memory. Every one of them
   booted, and all the hard drives reformatted properly. This was surely
   an omen.
   
   The cheapest network cards I could find were NE2000 compatible 10Base2
   at $29 each. I got commercially made coax cables because I know what I
   can do to a BNC connector with a soldering iron. Where was I going to
   put all this stuff?
     _________________________________________________________________
   
    The Plan
    
   I have a desk, credenza, and a side table in my little office area at
   home. The side table happens to be wide enough for three PCs to sit
   side-by-side under it, on floor pads. I cut a shelf to fit under it
   and got two sliding keyboard drawers for the top. Two on top, with
   keyboards and monitors, three on the shelf, and three on the floor
   makes eight - that's a nice sized network. I got a pair of 1x4 data
   switches to connect the pair of VGA monitors and keyboards to each set
   of four machines. Mice do not switch well, so only the top two
   machines have them. For what I wanted to build, a lot of mice were not
   necessary anyway.
   
   I found three more matching 386s and a very clean Deskpro 486 that I
   just couldn't pass up. (It even had a CD-ROM drive!) My final
   configuration uses the 486 as the "build" machine, seven 386s as the
   multi-processor test bed, and the eighth 386 as a spare. The two
   monitors, keyboards, and mice look good up top. The matching PCs
   underneath look very natural. The rats nest of wires are tucked out of
   site.
   
   The Red Hat Linux version 4.2 box said it would work in character mode
   on a 40 MB hard drive, but required 8 MB of RAM to run. I did some
   quick combinatorics and bought the minimum number of memory chips that
   would bring every machine up to that standard. Time to saddle up.
   
   I used a DOS boot diskette to bring up each machine, establish the
   type codes for the hard drives, and initialize the network cards. Each
   card came with a tee connector, and the coaxial cables went together
   quickly.
   
   I got a small label maker and named the 386s after the seven deadly
   sins. The 486 was named omission. A local sysadmin friend said
   192.64.9.1 through 192.64.9.8 would do fine for my IP addresses. This
   was starting to look pretty good.
     _________________________________________________________________
   
    The Installation
    
   I've done my share of software installations, including a few
   operating systems. Red Hat tries to make things as easy as possible
   for the reasonably experienced person, so I expected an easy time of
   it. Not true.
   
   In hind sight I guess it all makes perfect sense, but there were a few
   dark moments. Asking for a "Default Gateway" and a "Primary,
   Secondary, and Tertiary Nameserver" was a bit over my head. (I got
   eight machines on a private network. I don't need no stinkin'
   nameserver... Do I?) And a friend had to set me straight on how many
   partitions I really needed, explaining how a single partition
   containing a swap "file" works fine under Linux. Oddly, the
   installation program doesn't ask for NFS mounts if only one partition
   exists. (It seems to me like that's when you need them most.) I had to
   add this information manually to the /etc/fstab file after the
   installation was complete. I updated the /etc/hosts file and switched
   both accounts to use the C shell, while I was at it.
   
   I still haven't a clue how to create a Linux boot disk. Nor do I
   understand the "rescue" mode on the installation boot floppies. When
   the network card "autoprobe" actually recognized my NE2000 compatible,
   however, I knew this was all going to work out fine. And when the
   second machine started reading the CD-ROM drive in the first one, I
   got a little smug.
   
   When I got to one of the machines with a 40 MB hard drive, I
   discovered that a 40 MB set of installation files doesn't fit. After
   frantic posts on the news groups and the mailing lists, I discovered
   that I could de-select some of the software components that I didn't
   need and chip the installation set size down to 35 MB, which fit
   nicely. With /home and /usr mounted through NFS from the big 486, I
   had no fears of running out of work space. In addition to the root
   account for maintenance, I created one user account for myself so I
   could do the ordinary stuff.
     _________________________________________________________________
   
    The Network
    
   With the evidence mounting, I still didn't really believe it all
   worked until I actually switched to different systems and did pings
   back and forth. When I compiled a simple client/server pair of test
   programs, started the server on one, and the client on another, I was
   convinced. This is good.
   
   So what, you might ask, am I going to do with an 8-PC network?
   
   I've taken a few graduate courses in distributed and fault tolerant
   systems, and I read a lot. There is something I find fascinating about
   a distributed algorithm: locally each of the individual processes
   obeys the same set of rules, but globally the "system" exhibits an
   emergent behavior. All these individual processes look like a single
   machine to the casual user.
   
   With sophisticated software running on each of the seven machines,
   they can band together to form a single computer that runs application
   software, taking advantage of the overlap inherent in most algorithms,
   by running a piece of the whole on each machine, collecting and
   combining results as each of them completes. The "sophisticated
   software" is called a distributed operating system, and the
   application it runs has to be modified by hand in order to realize any
   performance improvements. The January 1998 issue of Linux Journal is
   dedicated to such systems. Beowulf clusters, discussed in that issue,
   are within my reach, now that Red Hat released their Extreme Linux CD,
   with the associated NASA code and documentation.
   
   Beyond number crunching clusters, there are database server clusters.
   The many machines are used to distribute the client transaction loads
   so no one machine crashes from overwork. If a process fails, an
   associated monitor process might restart it on the same, or some other
   machine. And when one machine gets bogged down for whatever reason,
   some of its processes might be intentionally stopped and restarted
   elsewhere just to redistribute the overall load. This is leading edge
   fault tolerant research material.
   
   Finally, there are dozens of simple distributed algorithms along with
   dozens of variations on each. Without any add-on sophisticated
   software, one may use a C compiler and some UDP socket programming to
   first imitate what has been done, then perhaps improve on it. I expect
   this will be what I work on first. The seven 386s can each run a copy
   of the algorithm under test, instrumented to write behavior trace
   records, and the 486 can monitor these traces, displaying the global
   behavior in some way that makes sense to me.
     _________________________________________________________________
   
    Conclusion
    
   Whatever your computing interests, a hardware architecture must come
   first. The current glut of high performance PCs provides us an
   opportunity to build a system that fits our needs, without spending
   too much money. The Linux operating system provides a substrate upon
   which an interesting software project may grow. I recognized that a
   small network of PCs would provide me with a platform that fit well
   with what I think is fun. I hope my experience will encourage you to
   pursue your own.
   
   My next step is to define and construct a framework for my 486 to
   become the monitor, sampling and reporting the behavior of some
   distributed algorithm running on the other machines. Maybe that will
   be the subject of my next article here.
     _________________________________________________________________
   
                       Copyright © 1998, Alex Vrenios
             Published in Issue 30 of Linux Gazette, July 1998
     _________________________________________________________________
   
   [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
     _________________________________________________________________
   
    "Linux Gazette...making Linux just a little more fun!"
     _________________________________________________________________
   
                           Clueless at the Prompt
                                      
                      By Mike List, troll@net-link.net
     _________________________________________________________________
   
                                  [INLINE]
                                      
    Welcome to installment 5 of Clueless at the Prompt:
    
   How's it goin'? This month I'm going to go into some basic admin ideas
   that you can use to make your home linux box a little easier to deal
   with, especially in an emergency.
   
   I'm also going to hit xdm on a couple of points, although I've got the
   merest understanding of all the differences between it and running
   from "startx"
     _________________________________________________________________
   
    *Boot/Rescue Disks:
    
   If you make a mockery of your filesystem by typing for instance a
   space between "/" and the file you were trying to rm as root, or your
   extraordinarily gifted child discovers how to cold boot your computer
   while you're in X and have a dozen windows open, or you accidentally
   kick the power strip while you're stretching, or geez, need I go on?
   You may discover one of the handiest things (two, actually) is a
   Boot/rescue/root disk combo.
   
   To use these , you simply reboot or cycle offthe computer as
   "gracefully" as possible. Insert the boot disk, which can be your
   install boot disk and start the bootup. instead of using your install
   root disk, you drop a rescue disk in when prompted. These disks can be
   gotten from your distribution's ftp site or more conveniently, if you
   have linux on CDROM, guess where you might get it, most likely
   wherever you got your boot image. You can also roll your own, or use
   Yard to make a custom rescue disk. As a side note, you can use this
   method to make a usable, if not very flexible, minilinux system,
   something like xdenu.
   
   To use your rescue disk, boot up with your installation bootdisk, and
   when you are prompted to insert root disk, just pop it in and hold
   tight a second. when you get a prompt, you are almost ready to fix
   your problems.You can run fsck on a disk partition without mounting
   it, in fact that's the safest way to use it. If you bollixed any init
   files, you can mount the /dev/?partition to "/mnt" cd /mnt and using
   vi, edit the mistaken lines or even recreate them if need be. One
   important note; your hard drive will be mounted below /mnt, so don't
   do anything to "/" or you risk hosing your rescue disk, not a nice
   thng to do when it's all that stands between you and your linux
   system.There is even a defrag utility that you can use after you fsck
   your filesystems, but you must make sure that you only run it on
   UNMOUNTED filesystems or you'll be subject to a REAL LEARNING
   EXPERIENCE!, as in learning to reinstall your box from scratch, or
   practice on your backup routine.
     _________________________________________________________________
   
    *Xdm:
    
   If you ever thought it would be cool to be able to start your linux
   box in X mode and logging in from an X screen, it isn't too hard to
   do, using xdm, the X Display Manager. You can easily start it by
   simply typing:

                xdm
                
   if you have X configured. It should start with a login screen, and
   look like the twm window manager, tweed background and all, and when
   you login for the first time, it probably will be twm, particularly if
   you got your XFree86 distribution from xfree86.org, although I'm
   really only accustomed to Slackware so another window manager might
   come as default in say, RedHat or SuSe, or Debian distributions. that
   can be changed, as can the tweed root window, and the login message,
   and a great many other small details. You should be aware that because
   of the way xdm invokes X, the path will not be the same as if you run
   startx. That means that you must either specify the full pathnames for
   executables or change your path in the" " file.Your access to remote
   xhosts will be different as well, a problem I haven't licked yet but
   by the time you finish reading this I might(or you might, or we both
   might or ...).
   
   Better yet break out your favorite editor, save your /etc/inittab file
   in case of disaster and find the line that starts with id?:default
   runlevel? and read the file down a few lines to where it describes the
   runlevels and change to the one that describes X11R6 in Slackware it
   would be runlevel 4, so change the id and the runlevel description if
   you are a slacker, it may be different on other distributions, since
   they mostly use BSD style init and have their rc.files directly in
   /etc. That's enough to start Linux in a login screen.You could run

                locate xdm

   to find the xdm files, and give them a good lookover. The files you'll
   want to look at are the Xresources, Xsession, and Xsetup_0. There are
   other files to work over but let's start with our local desktop.
   
   If you look at your Xsession file you'll see you need these files in
   your home directory:.xinitrc and .Xresources. The .xinitrc you may
   have in your home directory is a reasonable default, and you can copy
   the system Xresources to your home .Xresources. If you would like to
   use other files as your startup and resources file, you'll need to
   specify them in the Xsession file, at the lines that read:
        startup=$HOME/.xinitrc
             resources=$HOME/.Xresources
        

   you might use .openwin, instead of .xinitrc and .Xdefaults instead of
   .Xresources, you'll have to lok at what X related dotfiles are present
   in your home directory.
   
   Your Xsetup_0 fle can be used to start a background image in the login
   screen using a command like:
        
             xv -root -quit /your/image/here

   assuming that you have xv installed on your system. You can use other
   viewers to start the image, but you will have to read up on the
   appropriate command line options for them. You can also enable or
   disable the xconsole log, which can be used to notify you of errors in
   execution, etc, by piping the xdm-errors file to it in this file,
   although I haven't done it and am not real familiar with the the
   specifics.
     _________________________________________________________________
   
    If you have any starting out type questions, or any tips you you think
    would be handy for the newbie reader, please email me at:
    
                             troll@net-link.net
                                      
                            See you next month!
     _________________________________________________________________
   
                        Copyright © 1997, Mike List
           Published in Issue 30 of the Linux Gazette, July 1997
     _________________________________________________________________
   
   [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
     _________________________________________________________________
   
    "Linux Gazette...making Linux just a little more fun!"
     _________________________________________________________________
   
                        8 Reasons to Make the Switch
                                      
                               By Bill Bennet
     _________________________________________________________________
   
   Here are 8 reasons to switch to Linux, the free OS:
    1. It is free. Download from the Internet and install it now.
    2. Free upgrades. Find the Kernel on the Internet and download the
       latest guts for the system.
    3. It runs Win3x,95,98,etc. Your programs will run and look the same
       as in Windows. Find the Wine project. It is trying to be 100% free
       of Microsoft code, in order to further promote freedom of action
       on the PC. They use the API of Windows, and write the code for
       free! Use Word, MSOffice, Netscape, Corel and the rest, and the
       new stuff.
    4. It runs DOS. Your programs will run using the Dosemu. It makes the
       programs see a DOS system on your machine, and they go. Yes, even
       Warlords II will run just fine. You just need a paid-for DOS
       version to install and a hard disk partition is recommended.
    5. It runs Unix. Your Linux is a PC version of the powerful Unix OS.
       The universities, NASA, the research institutes, computer
       scientists and software developers are using it since the old days
       of computing. You now have access on the Internet to thousands of
       programs. They range from obscure utilities to fully developed
       productivity systems. Oh, by the way, they are free to download
       and are written by the best minds in the computer world.
       "Microserfs"(recruited by the monopoly), are best left in their
       circular, singular limited world so that the real free thinkers
       can write you great innovative, unlimited programs that can solve
       real world problems.
    6. It runs Macintosh. Yes, you just get the emulator and your Mac
       programs will see a Mac system on your PC. Playmaker Football,
       anyone?
    7. It is fast when used as a network server or for multi-tasking. The
       ISP (Internet Service Provider) community is becoming a large
       growth area for Linux, with over 20% of them using it. That
       percentage is growing as the mainstream shrinks. The choice of
       Linux as your office productivity system is really a no-brainer:
       Speed, Versatility, Price (free), Upkeep (free), Support (free on
       the Internet) and Adaptation. Your upgrades are free and you keep
       up with all the innovations in the realm of computing by virtue of
       your ability to run all the different operating systems and their
       software on one machine. Any questions?
    8. You contribute to the expression of freedom of thought and action
       when you choose Linux, the free OS. By way of contrast, just ask
       yourself 'How many times have I paid for an upgrade of my
       system?'. If the answer is one or more, then you paid too much.
       Again, ask yourself 'Did I need to upgrade when the owners of the
       OS told me to upgrade?'. If your software was running just fine
       when you were told to upgrade, then who is running your life?
       
   Finally, ask yourself 'Does following the dictates of the
   Windows-Intel monopoly make me an independent PC owner?'. If you can't
   run a piece of software that sounds like it does what you want done,
   because it is not available for your "operating system", then why do
   you continue to let yourself be limited by the owners of the monopoly
   "operating system"?
   
   Switching to Linux lets you run the software that you hear about and
   lets you choose which programs you want; which programs you need; and
   most important, when to buy them.
   
   Staying on Microsoft's schedule, for example, will have seen you
   purchase four upgrades to your "operating system" in the last ten
   years. DOS 6.22, Windows3x, Windows95 (DOS 7.0) and Windows98 have an
   inevitable progression built into their "release" so that you give
   your money to the richest man on the planet on a regular basis. That
   regular flow of cash is keeping Microsoft solvent, paying the
   investors and limiting choices for the 90% of PC users who are trapped
   in the Microsoft endless loop of upgrades.
   
   Why am I so adamant in my condemnation of the monopoly? The reason is
   that in May of 1998, Microsoft "released" Windows98. That caused a
   huge buying surge for Microsoft, because their captive users were
   truly afraid of being left out of the "innovation" loop. At the same
   time, a press release on the TV claimed that Windows98 had fixed three
   thousand (3,000) bugs in the Windows95 "operating system". Only a true
   monopoly would even let you know that you had been inflicted with
   three thousand (3,000) bugs in your last software purchase. To top off
   the irony, the United States government and 20 of their states were
   taking Microsoft to court on anti-trust suits over their exclusion of
   choices for consumers on which browser to use on the Internet.
   
   That left me with the logical question of whether you PC users had a
   choice of how to run your PC and get only the programs that you want
   or need. The answer is that the lawsuits are illogical, since you the
   consumer can run Linux, use just the Microsoft programs you want and
   run any browser you want and run any system you want, all on one PC.
   Therefore, Microsoft can wedge their captives into any type of mess
   that they wish, simply because you can choose to run Linux and still
   be connected to the masses by virtue of your versatility.
   
   Your business can run the same software as your contacts and share the
   same type of files and be totally connected, even with the extra 10%
   of the market that is not on Windows-Intel. You win and you win with
   Linux.
     _________________________________________________________________
   
                       Copyright © 1998, Bill Bennet
             Published in Issue 30 of Linux Gazette, July 1998
     _________________________________________________________________
   
   [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
     _________________________________________________________________
   
    "Linux Gazette...making Linux just a little more fun!"
     _________________________________________________________________
   
                Integrated Software Development with WipeOut
                                      
                              By Gerd Mueller
     _________________________________________________________________
   
   Programming under Linux means you have the choice between various
   powerful development tools, such as gcc, gdb, make and a lot more. But
   most of them are command-line tools and especially for beginners not
   easy to handle. But this is only one side. The other important point
   is the source code editor. Many people swear by vi (or one of its
   clones) - I don't mind. But it's not enough to have a good editor, a
   compiler and a debugger. Especially when you develop larger software
   projects you need a tool to organize it efficiently, version control
   would be recommended and for object-oriented languages a class browser
   is indispensable. Now you have to get all these tools under one
   umbrella. I see mainly two ways to resolve this problem: one is called
   (X)Emacs and the other is an Integrated Development Environment.
   
   You can resolve nearly every problem with Emacs (may be in the near
   future it will cook coffee for you ;)). It is not only an editor: you
   can use it as mail tool, news reader, file system browser, debugger,
   compiler and make tool. If you don't have a special feature it is
   possible to extend Emacs to fit your needs. But in my opinion it does
   all these things not very easily and intuitively. So I prefer the
   second way for software development as mentioned above.
   
   In my understanding an Integrated Development Environment gives you a
   graphical interface to the different tools and joins them in one
   environment. The tools should help me to organize my projects and
   support the code-compile-debug cycle. Advanced features are things
   like a GUI-builder, documentation tool and maybe a CASE-tool like
   behaviour.
   
   Under Linux you have the choice between various IDEs. They are more or
   less powerful and more or less expensive. In this article I'd like to
   introduce one of them which is called WipeOut.
   
   [INLINE] History
   
   At the beginning there was just the idea to have some nice and easy to
   use frontends for the main development tools of each C++-programmer
   under Linux: gcc, gdb and make. We decided to use wxWindows [1] by
   Julian Smart to program the GUI. The first versions of WipeOut were
   developed with the OpenLook-variant of wxWindows. Later we changed to
   wxXt by Marcus Holzem because most of the people didn't like OpenLook.
   For basic data structures (container classes, strings, etc.) we
   developed dmpack [2]. This library contains also features such as
   streamable objects and remote method invocation, which are very
   important to the communication between the various WipeOut components.
   The communication part of dmpack is based on the socket++-library by
   Gnanasekaran Swaminathan which provides an object-oriented interface
   to sockets and pipes.
   
   [INLINE] Components and Features of WipeOut
   
   Now WipeOut is a complete teamwork development environment for C++,
   Java, Eiffel, Fortran and C projects. (Other languages may follow.) At
   the present it consists of the following components:
   
     * Project Browser - the main window of WipeOut
     * Revision Browser - version control based on CVS, it supports
       remote repositories and teamwork
     * e3-Editor - the central text editor with flexible syntax
       highlighting
     * Class Browser - supports Java and C++, used as source code
       navigator and cross-referencer
     * Debugger - a frontend for gdb/jdb, supports threads
     * Make-Shell - a frontend for make, automatic makefile generation
     * Symbol-Retriever - a comfortable grep replacement for symbol
       searching in a quantity of files
     * SurfBoard - our HTML-viewer to show help and man pages
       
   WipeOut is not a RAD-tool. This is because it's not a pure Java or C++
   development tool. The editor, the project management, and the make
   shell work also fine for other projects than C++ or Java. Besides it
   is hard to decide for a special GUI-toolkit, which would be necessary
   for the C++ part. So we try to support the programmers with intuitive
   frontends for various command-line tools and some important additional
   components, which help for more effective programming.
   
   WipeOut is available for various platforms: Linux/i486, Linux/m68k,
   Linux/Alpha, Solaris, HP-UX. All these versions are fully compatible,
   so that you can use WipeOut for multi-platform development.
   Furthermore there are porting activities for LinuxPPC and Irix.
   
   Currently we provide WipeOut in two versions:
   
     * the free standard version: This version is free for non-commercial
       use, but it has some restriction: there is no version control and
       a project can contain only one module. All other components have
       the full functionality.
     * the WipeOutPro version: this version is unlimited and costs $149
       for commercial users and $79 for private users.
       
   [INLINE] Installation
   
   The Installation is not very difficult. To run WipeOut you need the
   following packages:
   
     * wipeout-<VERSION>.tar.gz : this file contains WipeOut itself
     * wxxt-share.tar.gz : this is the GUI-library
     * wipeout-doc-<VERSION>.tar.gz : the WipeOut documentation
     * wipeout-tut-<VERSION>.tar.gz : the WipeOut tutorial
       
   You can obtain the packages from [4]. Then do the following steps:
     * Create a new directory, where you want to install WipeOut
     * Copy the packages to this directory and unpack them with 'tar xvzf
       <package>'
     * Start the setup-program of WipeOut by typing './setup'. Follow the
       instructions which the program will display. After finishing it
       will create two small shell-scripts: You have to include
       'wipeout.sh' with the 'source'- command into your '.bashrc' or
       '.bash_profile' if you use bash or 'wipeout.csh' into your
       '.cshrc'-file if you use csh.
     * After opening a new shell, which uses the modified rc-file, you
       can start WipeOut simply by typing 'wipeout'.
       
   [INLINE] First Steps
   
   After starting WipeOut you'll see the Project Browser to the left and
   the (empty) editor to the right. The Project Browser is the central
   part of WipeOut. Here you open the projects and start the other
   components.
   
   The first thing we do is to create a new project. Therefore we choose
   the menu 'Project->New Root Module'. A dialogbox opens and we have to
   input the directory of the CVS-repository (see below) and the
   directory of our new project. After confirming WipeOut asks us for
   adding the 'Makefile' and the '<arch>.def' file. We choose OK. What
   this files mean we will see later. Now WipeOut creates a new module in
   the repository and will initialize the project directory.
   
   After creating the new project we now have access to all the other
   components. At first we will have a look at the Revision Browser.
   
   [INLINE] The Revision Browser - Part I
   
   [INLINE]
   
   The Revision Browser manages the modules and files of your project. A
   module represents a directory and it groups the files logical. But a
   module can contain submodules so that you can build a module
   hierarchy, which represents your project.
   
   The Revision Browser shows this hierarchy in a GUI-element called
   browser box. This box was inspired by a similar GUI-element of the
   NextStep-System and it's a clever and easy way to display a hierarchy.
   Each listbox shows one level of the hierarchy. The top of the
   hierarchy is shown in the most left listbox. If you select an item the
   listbox to the right contains the children of it. With the arrow
   buttons to the left and right of the box you can scroll through the
   hierarchy.
   
   The files belonging to a module are shown in the right listbox. If you
   double-click on an item the corresponding file will be shown in the
   editor. To be exact: the file will be opened with the default
   application of its category (see below).
   
   Every module has several properties. If you select a module and choose
   Edit->Info for File or Module you get a dialog, where you can modify
   the module properties. There are the following tabs:
   
     * Categories: The files of a module are divided into categories.
       There is an automatic assignment based on the file extension but
       you can do it also explicitly. A file can be a member of more than
       one category. Categories have mainly two meanings:
       The first is, that each category represents a makefile symbol. All
       files of a category are included in this symbol. In this way make
       knows how to handle a file. An example is the default category
       'CPP_source'. It includes all files of the module with the
       extensions '*.C', '*.cc' and '*.cpp'. That means normally they are
       C++-source code files. If you start to make a module, all files of
       that category will be compiled with c++ (as the default
       C++-compiler).
       As a second point you can assign one or more applications to a
       category. One of them is the default application (this is normally
       the WipeOut editor e3). If you double-click on a file in the
       filelist, this file will be opened with the default application.
       If you select a file and click right you'll get a small popup menu
       with all applications which are assigned via the category to this
       file. By selecting one of them the file will be opened with it.
     * Directories: Beside of its home directory you can assign other
       directories to a module. These directories can have one or more of
       the following meanings:
          + Source : this is a directory where the debugger searches for
            source code
          + Header : this is a directory where additional header files
            are located, the compiler will need this
          + Library : the compiler searches in this directory for
            libraries
          + Make : WipeOut starts a recursive make in this directory,
            when you start to make the module
          + Browse : marks the directory for the Class Browser so that it
            will parse the directory for classes
       The default properties of the module's home directory are 'Source'
       and 'Browse'.
     * Options: Here you can set some additional makefile options. If you
       click on one of the buttons the editor shows the corresponding
       line of the '<arch>.def'-file. You can set your compiler, compiler
       flags, include and library paths, and libraries, which you want to
       link to your program.
     * Tools: Here you can set various tool properties. At present there
       is only the make-command property: You can input here the
       make-command which you like to use for making your project. The
       default is of course a simple make but you may change it gmake or
       pmake.
     _________________________________________________________________
   
   WhatYouSeeIsWhatYouGet in WipeOut
   There is one point where WipeOut differs from many other programs:
   Mostly settings will be persistent immediately, i.e. you don't need to
   save them explicitly - real WYSIWYG. Just in some modal dialogs there
   are OK- and Cancel-buttons, so that you have the choice to confirm or
   to cancel. Furthermore you don't need to save property-changes you
   made for a module, e.g. if you add a directory or category these items
   will be immediately visible to all other components without saving and
   closing the dialogbox. We think this kind of work is faster and
   intuitive.
     _________________________________________________________________
   
   [INLINE] The aim of the game
   
   Now we know some things about modules and categories. It's time to
   turn back to practice and produce a little chunk of code. In our
   example we will build up a small String - class including the
   obligatory 'Hello World' - program.
   
   To create the source code for a module we have three possibilities:
     * do it the old-fashioned and good way - open a new file in the
       editor and hack the code into it
     * import existing files into the module
     * create class and method headers with the Class Browser
       
   We choose the last point, so that we can take a closer look at the
   Class Browser. To open it just click on the third button of the
   Project Browser.
   
   [INLINE] The Class Browser
   
   [INLINE]
   
   The Class Browser is bases on an incremental source code parser. That
   means your code can be incomplete or wrong, but the Class Browser will
   scan it for classes, methods, and members as good as possible. The
   Class Browser parses this project directories which you marked as
   'Browse' (see above). After building-up the internal database the
   first time, only such files will be parsed again, which changed or
   depend from changed files and new files. You have to tell the Class
   Browser explicitly to update the class hierarchy with
   Hierarchy->Update (or faster the corresponding toolbar button). But
   you must only update if you changed a class or method declaration.
   
   Apart from the well-known browserbox, which is used here to show the
   class hierarchy, the Class Browser has another WipeOut-standard
   GUI-element - the panelbox.
   
   The development of the panelbox was necessary, because time after time
   there were to many non-modal dialogs which showed important
   information. This wasn't easy to survey. The panelbox is clearly
   structured and gives fast access to various information without
   loosing survey. The panelbox consists of one or more subpanels. You
   can assign the number and kind of the panels with the small buttons in
   the top of it.
   
   The Class Browser has five different subpanels:
     * Methods : shows the methods of the current class
     * Members : shows the members of the current class
     * Hotlist : shows the hotlist (see below)
     * All Classes : shows all classes of the hierarchy
     * All Methods : shows all methods of the hierarchy
       
   The hotlist is a collection of often used classes, methods and
   members, so that you have fast access to them. With the menu item
   Hotspots->Add Hotspot you can add the current class, method or member
   to the hotlist. A double-click on a hotspot opens the corresponding
   file in the editor. This is similar to all other listboxes. Beside of
   this you are able to control the listboxes via keyboard: with the
   cursor keys, 'Home', 'End', 'PageUp' and 'PageDown', but also with
   alpha-numerical keys. If you press a letter the listbox cursor jumps
   to the first item beginning with that letter.
   
   But now we want to build our String-class: We do that with Edit->New
   Class .... We input the name of the class and press Insert In New
   File. WipeOut will ask us several questions, but we confirm all of
   them with OK. The editor shows us now a new header file for our
   String-class.
   
   The next step is to add some methods. We do that with the Edit->New
   Method ...-dialog. Simply input the method declaration as you know it
   from C++/Java and set the editor cursor to the right places when
   WipeOut asks you to do so. After writing some implementation code your
   source files should look as follows:
   
   Listing 1
   
// $Id$
// some comments ...
#ifndef _String_h
#define _String_h
class String {
    protected:
        char* _data;
    public:
                        String(char *);
        virtual         String();
        virtual String& operator= (char *);
        virtual char*   data() const;
    };
#endif

   Listing 2
   
// $Id$
// some comments ...
#include
#include
#include "String.h"
String::String (char *data) {
    _data = new char[strlen(data)+1];
    strcpy (_data, data);
    }
String::String() {
    delete _data;
    }
char* String::data() const {
    return _data;
    }
String& String::operator= (char* data) {
    delete _data;
    _data = new char[strlen(data)+1];
    strcpy (_data, data);
    return *this;
    }
main() {
    String str ("Hello ...");
    cout << str.data() << endl;
    }

   Because we generated the class with the Class Browser we don't need to
   update the class hierarchy explicitly. Beside of this the Class
   Browser added the files 'String.h' and 'String.cc' automaticly to the
   module in the Revision Browser.
   
   [INLINE] The Revision Browser - Part II
   
   Before we continue just a few words about version control for those of
   the readers, who are not familiar with it. The repository (we set its
   directory while creating the new project) is the central database of
   the version control. All developers get the actual source code version
   from there. Each developer has a local copy of this version (or a
   version of her/his choice) and she/he can edit it.
   
   If the developer does a commit the local copy of the file goes into
   the repository. Now all other developers have access to this new
   version of the file. They have to update their local copy. If a
   developer made changes at a file but didn't commit them yet and update
   this file now, CVS merges the local copy and the actual version of the
   repository. The developer will not loose his changes. After updating
   the local copy may contain conflicts. That means the changes of the
   developer collide with the changes from the repository version. The
   developer has to resolve these conflicts (with support of the e3)
   before committing the file again.
   
   If you take look at the file list of the Revision Browser, you will
   see there four files: 'Makefile', '<arch>.def, 'String.h' and
   'String.cc'. All these items have a '[n]' at the beginning and empty
   parentheses at the end. The signs within the brackets have the
   following meanings:
   
     * + : the file is up-to-date
     * < : you need to 'Commit' the file
     * > : you need to 'Update' the file
     * x : there could be conflicts with other developers
     * X : there is a conflict within the file
     * n : the file was locally added
     * - : the file was locally deleted
     * ? : no status information available
       
   Beside of the conflict symbols the signs have the same meaning for
   modules.
   
   The parentheses after the file name contain the version of the local
   copy. If we select our module and commit it with Revision->Commit File
   or Module the version numbers of the files change to '1.1' and the
   status changes to '+'.
   
   Especially on team development the status of a file or module can
   change every time. You have three possibilities to keep the Revision
   Browser up-to-date (Project->Module Properties):
     * on item select: status update each time you click on a file or
       module
     * on tool select: status update each time you select the first
       button of the toolbar
     * timer interval: status update every x seconds
       
   Note that each status update causes a CVS command. If you work with
   remote repositories but you have only a poor connection to it, it's
   recommend to choose the second possibility.
   
   WipeOut has a lot other features for version control and team work,
   e.g. you can create version branches for files and modules, you can
   merge these branches again and you can assign symbolic names (tags) to
   versions. You have various possibilities to import existing projects
   (with or without CVS). All these things are described in the WipeOut
   documentation and with a little patience it should be easy to find
   them out.
   
   Before we now compile our small project we'll take a look at the
   editor.
   
   [INLINE] The Text-Editor
   
   [INLINE]
   
   The editor is a central component of WipeOut. You use it for source
   code editing and whenever another component needs to show a file or to
   know a source code position it uses the editor. This is one of the
   basic concepts of WipeOut: only one central text editor.
   
   This causes a very high integration of the editor into the development
   environment. That's why it is not possible to use another editor
   within WipeOut. This seems to be a great disadvantage because the most
   of the developers have their own favourite editor and it's not easy to
   turn to another one. But this way it is possible to integrate such
   features as the symbol completion: If you press 'Ctrl-.' in the editor
   it will try to complete the word you are writing currently. Therefor
   it uses the database of the Class Browser and looks for a matching
   class, method or member name.
   
   Another nifty feature is the integrated man page viewer: If you select
   a symbol in the Text-Editor and press 'Ctrl-m' the SurfBoard will show
   the related man page if there is one. In the near future we will
   extend this to info pages and external HTML-documentations.
   
   Syntax Highlighting
   
   The highlighting of syntactical elements increases the readability of
   source code. The WipeOut-editor uses regular expressions to do that.
   The syntax is similar to the 'grep'-command. The documentation of
   WipeOut contains a general overview of the meta-symbols. This kind of
   highlighting slows down the editor a little bit but it gives you the
   flexibility to create your own highlighting style.
   
   A style is a set of a regular expression, a file pattern, a color and
   a font. Each style highlights a special syntactical element specified
   by the regular expression in the given color and font, but only in
   those files, which match the file pattern. You can create and edit
   styles with Properties->Highlighting.
   
   The editor has default styles for C++, Java, Objective-C, LaTeX and
   HTML. You can use this styles as they are, but you can also change
   them. There is a lot of space for experiments.
   
   Beside the styles there are some other parameters: various colors,
   tabs, undo-depth, font sizes, etc. Finally the editor is very easy to
   use, so that there shouldn't be to big problems.
   
   [INLINE] The Make-Shell
   
   [INLINE]
   
   But now back to our mini-project: after creating files, adding them to
   a module, working with the Class Browser and the Text-Editor it's time
   to compile the program.
   
   WipeOut uses make to compile your projects. Normally all necessary
   files will be created automaticly based on the module information.
   Each module has three different parts for the makefile:
   
     * Makefile.inc: contains various symbol definitions, e.g. each
       category gets a symbol, which contains the files of the category.
       The makefile uses this symbols to determine, which files to
       compile for a special target. This file will be updated
       continuously be WipeOut and you should not edit it.
     * <arch>.def: contains platform depending parameters. '<arch>' will
       be replaced by the OS-name, e.g. Linux. When you develop a project
       with WipeOut across various platforms this file helps you to make
       the platform specific compiler settings.
     * Makefile: This is the makefile itself. It includes 'Makefile.inc'
       and '<arch>.def'. You can edit it for adding other than the
       default targets. The Make-Shell will call make with this file. The
       makefile contains default rules to compile C-, C++-, Java- and
       flex-sources. It has targets to build C/C++- and Java-programs and
       static or shared libraries.
       
   To start make we open the Make-Shell with the 5th button of the
   Project Browser. This dialog has only a few elements: the Start-button
   to start make, an edit field to set a special target (an empty field
   means the default target - 'cplusplus') and two checkboxes. Normally
   Make-Shell shows only compiler errors and warnings in the lower
   listbox after make has finished. If we check 'All Lines', we get all
   the make output in the listbox. If we check Progress Window, a small
   output console opens while compiling and shows the original make
   output.
   
   We compile our program simply by pressing Start. After finishing the
   error listbox shows us a warning about a virtual constructor. We click
   on the warning and the editor cursor jumps to the error line. We
   recognize that the constructor should be a destructor and so we
   complete the implementation and declaration with the tilde-letter. We
   compile again and now everything should be okay.
   
   To test our program we open the shell of the Project Browser and input
   the name of our module because this is the name of the program. The
   output is, oh wonder:
   
   Hello ...
   
   As the next step we extend our project somewhat. Therefor we add two
   methods:
   
   Listing 3
String& String::operator+= (const String& rhs) {
    char* buf = new char[length()];
    for (int i=0; i&ltlength(); i++)
       buf[i] = data()[i];
    for (int i=0; i&ltrhs.length(); i++)
       buf[length()+i] = rhs.data()[i];
    delete _data;
    _data = buf;
    return *this;
    }
int String::length() const {
    return strlen(data());
    }

   We modify the main function as follows:
   
   Listing 4
main() {
    String str ("Hello");
    str += String (" from WipeOut.");
    cout
After recompiling and running the program we now get a 'Segmentation fault'
and we have no idea why. This is the right time to use the debugger.

The debugger

 [INLINE]

   We start the debugger with the fourth button of the Project Browser.
   The interface consists of similar elements as the Class Browser: the
   browserbox and the panelbox. The panelbox has five different
   subpanels:
   
     * Breakpoints : shows all breakpoints
     * Stack : shows the current execution stack
     * Sources : shows all source related to the program
     * Expression : shows a special variable expression
     * Threads : used when debugging threads
       
   We arrange the panelbox for our needs: we add the 'Sources'-panel to
   the two default panels 'Breakpoints' and 'Stack' by clicking on the
   small 'plus'-button.
   
   Now we load the program with Session->Load Executable. After that the
   'Source'-panel should show all source files related to the program.
   
   The browserbox is used to show variable values. The first listbox
   shows per default all local variables. If you click on an item, the
   next level shows the value or the components of it. This way you can
   easy browse classes, structures and arrays. After every action the
   debugger refreshes the variable values automaticly.
   
   If you like to inspect a variable, which is not shown in the
   browserbox at the moment, just mark it in the editor and choose
   Inspect Variable in the toolbar of the debugger. Now the first list of
   the browserbox contains the variable.
   
   Normally the debugger resolves data structures automaticly, so that
   you always get the correct values, e.g. it shows the content of a
   pointer and not the pointer value itself. But sometimes this is not
   possible, e.g. if you declared an array of integer-pointer as 'int**'.
   To get the items of the array you have to cast the type with
   Inspect->Change/Cast Variable.
   
   With Inspect->Move Variable to Top it is possible to move a variable
   from a lower level of the hierarchy to the top, so that you don't need
   to browse through the whole hierarchy to get the value of the
   variable.
   
   Because we've got no idea what's wrong with our program, we simply
   start it with Run->Run. This causes a 'Segmentation fault' again, but
   after we have confirmed the messagebox the editor colors the error
   line with red. We've got an error in the method String::operator+=.
   
   Before we correct the error we should kill the program with Run->Kill.
   To know what's going on in the method we want to find out what the
   method data does. We use the Class Browser as cross-referencer to find
   the implementation of this method. Therefore we mark data and choose
   Edit->Search Symbol in the Class Browser. Now the editor shows the
   source code of the method data. We see, that the method doesn't do
   anything exciting, only returning the _data-pointer. We go back to the
   String::operator+= method, take a closer look on it and recognize that
   we've allocated not enough memory for buf. So we modify the first line
   as follows:
   
    char* buf = new char[length() + rsh.length()];

   We compile and run the program again and everything is fine. But we
   can't see the output. We resolve the problem with Inspect->Program
   Console .... This opens a small console and after starting the program
   again, we see the output:
   
   Hello from WipeOut.
   
   The debugger has of course a lot of more features than explained
   above. Besides of Next, Step and setting breakpoints it supports also
   threads. It is recommended again to read the documentation about it.
   
   Beside of the Symbol-Retriever and the help browser SurfBoard now you
   touched all the components so that you've got a first impression the
   way WipeOut works. Of course we develop WipeOut with WipeOut and we
   find that it very increases our productivity and makes it easier to
   program than just using a simple text editor. Finally some words about
   extending WipeOut.
   
   [INLINE] Writing own WipeOut components
   
   At this time WipeOut contains only the most important components of
   our opinion. There may be a lot of other possibilities, e.g. many
   people may wish a GUI-builder. We can't and we don't want to do all
   that alone. So we have created the WDK - the WipeOut Development Kit,
   which allows you to develop your own components. This interface gives
   you access to important functions of WipeOut, e.g. showing a file in
   the editor or adding a file to a module.
   
   If you like to program such components you only need to download the
   WDK-package from [4]. Apart from the documentation the package
   contains DmPack2, socket++, the wxXt header files, a simple example
   component and SpellMaster - a frontend for ispell.
   
   I hope you've got a rare overview about WipeOut and its possibilities.
   If you have questions, comments or wishes, write us.
   
   Resources
   [1] http://web.ukonline.co.uk/julian.smart/wxwin - wxWindows/wxXt by
   Julian Smart and Marcus Holzem
   [2] ftp://ftp.virginia.edu - socket++ by Gnanasekaran Swaminathan
   [3] http://www.softwarebuero.de/dmpack2-eng.html - DmPack2
   [4] http://www.softwarebuero.de/wipeout-eng.html - WipeOut
     _________________________________________________________________
   
                       Copyright © 1998, Gerd Mueller
             Published in Issue 30 of Linux Gazette, July 1998
     _________________________________________________________________
   
   [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
     _________________________________________________________________
   
    "Linux Gazette...making Linux just a little more fun!"
     _________________________________________________________________
   
            Install New Icons in Caldera's Looking Glass Desktop
                                      
                              By David Nelson
     _________________________________________________________________
   
   Looking Glass, or lg, is a pleasant GUI desktop included in Caldera's
   commercial Linux releases (not the lite versions.) However, its setup
   procedures and documentation can be very unpleasant. Deciphering how
   to add or change icons makes cracking the Enigma code machine look
   easy. If you enjoy puzzles and have plenty of time, read
   /usr/doc/html/Caldera_Info, specifically the Desktop User's Guide,
   Chapters 9 and 11. If you prefer some help, read on.
   
   I wanted to place an icon on the lg desktop to launch Applixware, an
   office suite available from RedHat. To do this I had to create an icon
   with a paint program, import it into the lg icon gallery, edit the
   "source file for file type definitions," create a new "LG_rulebase
   file," and update the lg data directory. Makes a certain commercial
   desktop look pretty friendly, what?
   
   Actually, it wasn't as bad as it sounds, and the new icon looks good
   and works well. This article will guide you through the process. Here
   is your very own free Applixware icon ready to install in lg; please
   don't complain about my artistry. You can use the same process to
   install any program's icon.
   
   The first step is to create the icon. I tried to use the lg icon
   editor but found it crude and prone to crash. Xpaint works well and is
   probably already on your system; to be sure, execute the command
locate xpaint

   I used Applix Graphics, in part to learn more about Applixware, with
   final touch-up in the lg icon editor. Whatever program you use, the
   resulting icon should be about 40x40 pixels, stored in either GIF or
   PPM format.
   
   The next step is to import the icon. At the top of the lg desktop,
   click on Run, then Icon Editor. When the editor opens, click on
   Galleries, then System Icon Gallery. When the gallery window opens,
   click on Icon, then New. You will see an emphasized (black) area with
   a blank icon picture, probably labeled icon1. At the top of the
   gallery window, click on Icon, then Import. A file window opens.
   Navigate to where your GIF or PPM file is. Click on the file, then
   click on load in the file window. If the icon is just the right size,
   it will import directly into the emphasized area in the system
   gallery. If not, a window will appear that contains your icon. If part
   is cut off, drag on the lower right corner to enlarge the window and
   show your whole icon. (I'm assuming your icon ended up somewhat bigger
   that 40x40.) Click the radio button "Scale," then "Filter on Scale."
   This latter button smooths the image as you resize it. You should see
   a little box at the upper left of your icon picture. Drag the corners
   to cover your icon. Your final icon now appears in a smaller box at
   the upper right of the window. Click Apply; the gallery window puts
   your icon into the blank icon picture and changes the name to that of
   your icon file.
   
   To give the icon the right name, click on Icon in the gallery window,
   then Rename. In the New Name box, type APPLIX_PRG and click on OK. If
   you want to do some final "fat bits" touch-up, click Icon, Edit, and
   have at it. I suggest that you save your work frequently, because the
   editor crashed on me. Don't bother editing the mask. It gives a 3D
   appearance to a selected icon, and the default mask is good enough.
   When done with the editor, click File, Close, and your final icon
   appears in the gallery. In the gallery window, click File, Close, and
   say yes to save your work. One last warning. Even though the icon
   editor lets you export the completed icon for other purposes, this
   feature seemed broken. All graphics programs I tried complained that
   the exported icon file was unreadable.  (Did I mention that the lg
   editor seems to have problems?)
   
   Now you have to tell lg how to use the icon. Change directory to
   /usr/visix/lg/default/lg_ftc. Open prog.loc.ftc in your favorite
   editor. This source file defines local file types and their associated
   icons. Insert the following text at the beginning, after the two
   "include" lines:
DEFINE TYPE Applix
ICON APPLIX_PRG
FILE_DESCRIPTION "Applix desktop suite program"
BINARY_EXECUTABLE
AND NAME "applix"
INHERIT_COMMANDS BinExNativeClass
END

   No, I don't know what it all means. I adapted it from other program
   entries. But, hey, it works, and most of it is obvious. If your icon
   is for a different program, edit accordingly. Save the file. At the
   command line in the same directory, type make all and make install.
   Quit and restart the lg desktop.
   
   We're almost done. In the lg window click on Windows, then Open
   Directory. Navigate to opt/applix (or wherever applix is stored) and
   you should see your beautiful icon designating your program. Drag the
   icon out of the directory window and onto the desktop window. Park it
   in an aesthetically pleasing place. Launch your program by
   doubleclicking your new icon. Congratulations. Doesn't this make you
   want to read the rest of the lg documentation? Actually, you might
   want to learn about file associations and other wonders of lg. Then
   you can write an article for lg (that's Linux Gazette here) telling
   the rest of us how you did it.
     _________________________________________________________________
   
                       Copyright © 1998, David Nelson
             Published in Issue 30 of Linux Gazette, July 1998
     _________________________________________________________________
   
   [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
     _________________________________________________________________
   
    "Linux Gazette...making Linux just a little more fun!"
     _________________________________________________________________
   
                        Installing Microsoft & Linux
                                      
                             By Manish P. Pagey
     _________________________________________________________________
   
   This is a story about my struggles setting up a new laptop computer to
   boot two different operating systems. And how I discovered the extent
   to which Microsoft and IE4 are lacking. Hopefully, someone will learn
   from this experience and think twice before installing IE4 on there
   machine.
   
   The first operating system that I wanted to install on the machine was
   Linux (a free, UNIX like operating system which can teach Microsoft a
   million or two things about what a stable operating system is supposed
   to be like). I booted the computer using the Linux boot disks,
   inserted the Linux CD-ROM into the CD drive and finished the
   installation in less than thirty minutes. Everything was up and
   running including the network using a PCMCIA network card. Linux comes
   with a program called LILO which allows one to decide which operating
   system to boot when the system is powered up. This was also installed
   without any problems.
   
   The next task was to install Windows 95 on another partition of the
   same disk. That is where my nightmare began. (Of course, you may ask
   why I wanted to do this in the first place. Because I am stupid, thats
   why). The developers at Microsoft have no regard for other operating
   systems and have been living in their shells for so long that they
   could not imagine having two operating systems on the same computer.
   In any case, after booting from the Windows 95 setup disk, the setup
   program kept insisting on destroying all partitions from the disk
   before installing the "operating system". It gave me only two choices:
   Let it partition the disk again or Exit setup.
   
   My first choice was to exit setup and try to trick it into installing
   Win95 on a DOS partition that was already present. So, I went to the
   "A:>" prompt (LOL) and fired up fdisk. I could see the DOS partition
   and hence I could format the "C:" drive. I was hoping that after I
   format the "C:" drive and then try installing Win95 from "Disk 1"
   instead of the "Setup Disk", everything will work fine. So, I
   formatted the C: drive and started the "setup" program from "Disk 1".
   Everything seemed to work fine till the third disk and once again the
   setup program refused to proceed; this time because of a similar
   reason which I do not recall.
   
   I was kinda stuck at this point because if I let the Win95 setup
   program to repartition the disk, it will gobble up the whole disk and
   would not leave any space for the second operating system. The other
   option was to use the DOS fdisk utility to destroy all partitions on
   the disk and create a new partition for installing Win95 and install
   Win95 before installing Linux. That is the path I took.
   
   So, I destroyed my perfectly working Linux partition and installation
   and created a new partition to install Win95. This time, the setup
   program worked without any problems and installed the Win95 operating
   system on the first partition on the disk. In a few minutes after that
   I had Linux running once again on the second partition and reinstalled
   LILO to choose the operating system during startup.
   
   As before, I had no trouble getting the network up and running on the
   Linux OS. So, I decided to setup the networking on the Win95 side.
   Guess what, the driver that Win95 installed to access the PCMCIA cards
   was not working properly. I had to try different drivers (and reboot
   the machine every time I selected a new driver) and get the correct
   one by trial and error. (I did the obvious things such as look up the
   documentation for the computer and install the driver corresponding to
   the documentation, but that did not work. I had to use a driver that
   conflicted with the documentation in order for Win95 to access the
   PCMCIA cards correctly. On the other hand, the driver that Linux was
   using was consistent with the documentation). Finally, after a long
   struggle and several million reboots, I got Win95 to see my PCMCIA
   cards. Linux came with the driver for the Ethernet card that I was
   using but Win95 had to use the floppy disk provided by the
   manufacturer (and they say that Win95 supports more hardware).
   
   I have been exposed to all this hype about IE4.0 and such. So, I
   decided that instead of using the good old Netscape Communicator, I
   will give IE4.0 a test drive. (Once again, you may ask why I would do
   such a stupid thing. Now that I have gone through this torture that I
   am describing, I must say that I will never attempt to give a
   Microsoft product a test drive just because Microsoft says its good.
   What was I thinking ?). I have a fast connection to the Internet and
   hence, the obvious way to install IE4.0 was to download it from the
   Microsoft home page. You would love what happened next.
   
   My local network is behind a firewall. In order to access the
   Internet, we need to use SOCKS proxy service provided by the local
   gateway machine. This is not something that is very uncommon in the
   present corporate networks (in fact, this might even be the most
   common configuration). Coming back to my attempt at installing IE4.0,
   I clicked on "The Internet" icon sitting on the desktop and went
   through the process of setting up the network properties for the
   machine. After all the setup was done, I was hoping for it to bring up
   a browser window for me. But I realized that the first time you click
   on this program, it only performs the setup. You have to run it again
   to start the browser. I am not sure why it was set up this way, but I
   will ignore this for the time being as there are more important things
   for me to complain about. After bringing up this ancient version of
   Internet Explorer, I wanted to setup the address of the proxy server
   so that I could access the Internet and go to Microsoft's home page.
   Aha !! The Internet Explorer that was packaged with my version of
   Win95 does not understand proxies. This meant that sitting there I had
   no way to access the Internet through my proxy server. I knew that
   Netscape could do this. So the only way to get IE4.0 on my machine was
   to install Netscape first !!!!! Even getting Netscape was not easy
   from within Win95. I had to reboot the machine into Linux. Since Linux
   came with client programs to access Socks proxy servers, I could get
   to the Netscape FTP site and download the Communicator for Win95. I
   rebooted the machine into Win95 and installed Netscape without any
   problem. I set the preferences for Netscape so that it knew about my
   proxy server and everything was running fine as far as accessing the
   Internet is concerned.
   
   I used Netscape to download the "ie4setup" file from the Microsoft
   home page and fired it up. I will give you one guess to tell me if it
   worked. You are right !!! It did not even come close to working. The
   ie4setup file does nothing more than connecting to another server and
   downloading a bunch of files that are required to install IE4.0. Since
   I am behind a firewall, it could not find the server. It would be fine
   if it returned back in a few seconds and told me that it could not
   find the server. But that would be the right thing to do and Microsoft
   just cannot do any such thing. Instead, the ie4setup program made me
   glare at a rotating globe for fifteen minutes before giving up the
   search for the server. After not finding the server, the programmer
   had half a brain cell to ask the user for the address of a proxy
   server. However, this feature of the setup program does not support
   SOCKS proxy (I tried putting the address of my proxy server but it did
   not work). Thanks to the people at NEC not all was lost yet.
   
   I remembered reading about the program SocksCap32 which allows Win95
   programs to access the Internet though a SOCKS proxy server. So I
   fired up Netscape again and downloaded/installed SocksCap32. After
   starting ie4setup through SocksCap32, it could access the servers and
   started downloading the rest of the files that are necessary to
   install IE4.0. Just before starting to download these files, it gave
   me an option of either saving these files on disk or directly
   installing IE4.0. I had little patience left at this time, so I chose
   the latter. The ie4setup downloaded all the files correctly and
   started the installation process.
   
   The installation process continued correctly until about 75% of
   installation was complete. At this point, I had to leave the computer
   and go away for several hours. I was hoping that when I come back,
   this installation will be over. (I am sure you are laughing at me
   right now).
   
   I came back after about three hours and the installation process had
   reached 78% !!!!!!! I waited for a few minutes to see if it was doing
   anything. There was no disk activity and hence I concluded that the
   program had crashed or hung up. So I clicked on the "Cancel" button to
   stop the installation. It came up with a window which said that the
   "cancellation" process will take several minutes and that I should not
   reboot the machine because that might leave the machine in an
   inconsistent state (whatever that means). So I waited for it to finish
   the job. There was no disk activity for half an hour which is also
   when my patience ran out. I rebooted the machine. When it came up in
   Win95, it had installed IE4.0 but not many of its components. I was
   not sure what was going on but soon realized that since the ie4setup
   was run under SocksCap32, it must have started the rest of the setup
   under SocksCap32 too. And, knowing Microsoft, it may not have been
   designed to work under the SocksCap32 libraries.
   
   This meant that I should have stored the files downloaded by ie4setup
   on the disk and started the setup without using SocksCap32. So, I
   fired up ie4setup through SocksCap32 once again and downloaded all the
   files to my disk. After that, I started the setup program from these
   downloaded files and IE4.0 was installed on the machine without any
   more problems in just a few minutes. Whew.
   
   Great. Now that I have IE4.0 and Outlook Express 98 installed on my
   machine, I should start using them. I started up IE4.0 and set it up
   to use the proxy server. It worked just fine and I could access the
   Internet. So far so good. Now, I needed to setup my mail account. So,
   I clicked on the "Mail" button which started up Outlook Express. It
   asked me for my email address, mail server name etc. in order to setup
   the mail account. After that, I tried to check for new mail. And
   nothing. It brought up a window in which it displayed a message that
   it was trying to connect to my mail server but stopped in a minute
   with an error saying that the connection to the server had failed !!
   My POP3 mail server is outside the local network. Which means that one
   has to get to it through the SOCKS server. Netscape has no problem
   doing this but at this point, I have not found any way to setup
   Outlook Express to do this. And this is when I decided to give up
   completely on IE4.0/Outlook Express/Win95. I am back to using good old
   reliable Netscape.
   
   I am not sure if anyone in the Linux community will benefit from this
   but I am sure some of the people "on the other side" can learn
   something from it.
   
   --Pagey
     _________________________________________________________________
   
                     Copyright © 1998, Manish P. Pagey
             Published in Issue 30 of Linux Gazette, July 1998
     _________________________________________________________________
   
   [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
     _________________________________________________________________
   
    "Linux Gazette...making Linux just a little more fun!"
     _________________________________________________________________
   
                       Linux Expo a Smashing Success!
                                      
                          By Norman M. Jacobowitz
     _________________________________________________________________
   
   For three days of May (28, 29, 30), the normally tranquil Duke
   University Campus was transformed into a raucous playground for geeks
   and hackers as the Fourth Annual Linux Expo was held at Duke's Bryan
   Center.
   
   By all accounts, this year's Expo was a smashing success. Red Hat's
   Marketing Director, Lisa Sullivan, deserves special thanks for
   organizing and directing the event. Many others, from Key Note Speaker
   Linus Torvalds to the blue-shirted Duke University catering staff,
   were instrumental in making it a memorable three days.
   
   According to Sullivan, approximately 1500 visitors were registered as
   paid attendees, while another 350 to 500 were registered as speakers,
   VIPs or other gratis attendees. Attendees ranged from as far away as
   Korea, Finland, Colombia and Alaska. Some 34 exhibitors showed their
   products and services.
   
   Some of the speakers included:
   
     * Eric S. Raymond gave an inspired, scholarly overview of hacker
       motivation in his ``Homesteading the Noosphere'' speech.
     * Miguel de Icaza, despite troubles with the overhead projector,
       shared much about the technical details and future features of
       ``GNOME, The GNU Network Object Model Environment'' GUI.
     * Mark Mathews described his success as a consultant and Linux
       programmer in his talk, ``Developing Linux Software for Fun--Turns
       into Profit''.
     * Jon ``maddog'' Hall described his encounters with Linux users
       worldwide during ``Linux Around the World''.
       
   Some exhibitors included:
   
     * Corel Computer Corporation displayed their new Linux-based
       NetWinder Network Computer.
     * Digital Equipment Corporation exhibited their latest generation
       Alpha processors.
     * Linux Hardware Solutions showed off some of their line of, well,
       Linux hardware solutions.
     * Caldera, Red Hat and Turbo Linux were there presenting their
       latest Linux distributions.
       
   Of course, the single most popular event was Friday evening's keynote
   address by Linus Torvalds. An estimated 1000 to 1200 folks were on
   hand. In his typically unpretentious, casual and brutally honest
   style, Linus filled us in on his future vision for the Linux kernel.
   Linus first took a moment to thank everyone who has helped him with
   the stable kernel releases, especially Alan Cox. Linus went on to say
   he is happy with the way Linux is going, especially with the way new
   markets are opening up and new applications are being made available.
   
   Here are some highlights of Linus's views on important topics for the
   future of the Linux Kernel:
   
     * The 2.2 release: look for a code freeze in about a month with the
       next stable release, Kernel 2.2, to follow as soon as late July or
       early August.
     * SMP: Symmetrical Multi-Processing is currently one of Linus's
       favorite features of the kernel; expect continued development and
       enhancement of SMP in future releases.
     * Merced: Linus is not particularly impressed with or concerned
       about Intel's upcoming 64-bit processor, code-named Merced--he
       actually prefers DEC's Alpha architecture. He did say porting
       Linux to Merced should be no problem once GCC is optimized for
       Merced.
     * Java: While Linus would like to see an officially supported Java
       Development Kit from Sun, he is still not impressed with Java and
       would prefer to stay out of the Microsoft/Sun clash over Java
       purity.
     * Emulation: Linus would prefer to see native Linux applications and
       does not like the idea of emulating other operating systems for
       the purpose of running applications.
       
   Of course, Linus had much more to say, but the gist of his speech was
   that with more time and some more good luck, Linux will continue to
   move towards complete world domination. Judging from the air of
   excitement and the buzz of optimism pervading this year's Linux Expo,
   Linus is exactly right.
     _________________________________________________________________
   
                   Copyright © 1998, Norman M. Jacobowitz
             Published in Issue 30 of Linux Gazette, July 1998
     _________________________________________________________________
   
   [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
     _________________________________________________________________
   
    "Linux Gazette...making Linux just a little more fun!"
     _________________________________________________________________
   
                          Linux Expo Editor Wars!
                                      
                             By Eric S. Raymond
     _________________________________________________________________
   
   Thursday night's epic paintball tournament was easily one of Linux
   Expo's most eagerly anticipated and talked-about events. The theme was
   ``Emacs versus vi and may the best editor win!'' At the appointed
   time, the would-be warriors trooped off to a patch of woods south of
   Durham and donned team T-shirts donated by O'Reilly & Associates. By
   happy coincidence, the 61 fighters split as exactly as possible down
   the middle, 30 on the Emacs team and 31 on vi's. Ominously, however,
   all three of the experienced paintballers in the crowd elected to
   fight for vi.
   
   As we waited for mysterious rituals to complete in the paintball shed,
   there was much humorous analogizing--vi fans claiming that Emacs's
   guns ought to take forever to load, countered by Emacs partisans
   opining that vi fighters should be unable to move and fire at the same
   time. ``You shall feel the power of the Lisp side of the Force!''
   declaimed one black-masked Emacs fan a la Darth Vader, met by hoots of
   derision and yells of ``vi rules!''
   
   Additional humor was provided by the boss paintball referee, who
   understood neither our theological disputes nor the lemur and gnu
   emblems on our team shirts. He gave up early and started referring to
   the teams as ``monkeys'' and ``cows'', much to the amusement of both
   sides.
   
   Eventually, not too long after the official start time, we listened to
   a safety lecture, picked up our guns, face masks and glycerin-capsule
   ammunition and marched into the woods. Each team got a fortified fire
   base; the game was elimination, with the last man standing winning for
   his team.
   
   Telling friend from foe turned out to be a bit of a problem, as both
   teams were wearing white T-shirts with black emblems and the colored
   arm bands we'd been issued were not really conspicuous--some truly
   valiant hackers were hit by friendly fire. There were heroic charges
   and stealthy ambushes, sniping duels and stand-up fights. The
   paintballs flew thick and fast, and the woods resounded with cries of
   ``Out! Out!'' as pigment-splotched casualties exited the field, guns
   held over their heads.
   
   The teams' combat styles were allegorically perfect. The vi guys were
   fast, aggressive and sloppy; the Emacs team was slow, tried to think
   things out and play tactically. Result? The vi guys waxed the Emacs
   team, winning three out of four games. Evidently (as many on both
   sides later agreed, amid much laughter) paintball rewards different
   virtues than programming.
   
   The event was a success, and general kudos went to Mike Maher of Red
   Hat from whose brilliant and obviously twisted mind the concept
   originally sprang. Next year perhaps we'll tackle Perl vs. Python or
   Red Hat vs. Every Other Distribution or some other chronic flame
   war--and, hopefully, get different-colored shirts so we can tell each
   other apart!
     _________________________________________________________________
   
                     Copyright © 1998, Eric S. Raymond
             Published in Issue 30 of Linux Gazette, July 1998
     _________________________________________________________________
   
   [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
     _________________________________________________________________
   
    "Linux Gazette...making Linux just a little more fun!"
     _________________________________________________________________
   
                        The Fourth Annual Linux Expo
                                      
                              By David Penland
     _________________________________________________________________
   
   Photo Album
     _________________________________________________________________
   
   This year, Red Hat Software decided to hold the fourth annual Linux
   Expo at Duke University's Bryan Center in Durham, North Carolina. The
   event was scheduled over three days from April twenty-eighth to the
   thirtieth. In addition to the normal vendor displays and conference,
   the Linux Expo web site promised such diverse attractions as a quake
   fest and a paintball tournament. I arrived at the Center at
   seven-thirty on Thursday to find over one hundred people already ahead
   of me in line. Registration wasn't until eight o'clock. Apparently I
   was not the only Linux fanatic champing at the bit.
   
   The doors did not actually open until a little past eight, and I did
   not get in to register until about eight forty. As a pre-registered
   attendee, I received a Linux Expo tote bag bearing the Expo logo, as
   well as logos of Expo sponsors. Inside I found a bound copy of the
   proceedings, a VAResearch tee shirt, a Red Hat cap, an issue of
   SysAdmin, and a Caldera flashlight, as well as flyers advertising
   specials at Expo vendor booths.
   
   Prominently placed in front of the entrance was the Red Hat booth.
   Their booth featured the new Red Hat Linux 5.1, due to be released the
   following Monday. Also on the upper floor was the Caldera, Linux
   Hardware solutions, Linux International, Solid, and RHAD Labs booths,
   as well as the Expo store, and the Softpro Bookstore.
   
   Because of registration delays, the tutorials and technical conference
   fell thirty minutes behind schedule, and remained out of sync with the
   business track for the rest of the day. The Extreme Linux tutorial was
   kicked off by Mad Dog Hall, who explained the name Extreme Linux, and
   the snow boarding penguin logo. Basically, Extreme Linux is Linux with
   an attitude Although Mad Dog said that the project's founders do not
   want to tie. the commodity cluster idea to a single operating system,
   he urged people to use the name Extreme Linux when referring to
   clusters of Linux machines.
   
   After Mad Dog finished, Peter Beckman explained how Extreme Linux
   cluste rs were used at Los Alamos' Advanced Computing Labs. Several
   members of his team talked about their experiences with the system,
   and the problems they had solved. The talk featured the Linux Expo
   cluster, a four node cluster set up especially for the show. The
   cluster consisted of 4 dual 333 MHz Pentium two's, each with 256
   megabytes of ram and a four gigabyte disk drive. The cluster was tied
   together with a Myrinet network. After putting the cluster through its
   paces with modeling programs, Beckman decide to bring out a "practical
   application", the Extreme Linux monster truck.
   
   Although it had been a radio shack remote control toy in a previous
   life, the monster truck had undergone an "Extreme" transformation. The
   body had been removed, and the truck's circuit board hacked. For
   vision, the monster truck had a Connectix quickcam with a custom mount
   to allow panning. Mounted on top was a Toshiba Libretto with a
   wireless Ethernet connection to the cluster. An operator sat at the
   console of the cluster, controlling the truck as it cruised across the
   floor observing the crowd with its quickcam. The operator's console
   was projected on a screen, and the crowd could see themselves from the
   truck's point of view thanks to the quickcam. Beckman assured us that
   the truck had a practical use, pulling network cables under the raised
   floor at Los Alamos. Without a doubt, the truck stole the show. For
   more information see http://www.Extremelinux.org/.
   
   After the tutorial, I decided to make my way to the vendor area on the
   lower level. Strategically placed at the entrance to the vendor area
   was Cobalt Microserver Inc. They were showing the inexpensive Cobalt
   Qube microserver, a blue 7.25"x7.25"x7.75" cube with powerful intranet
   server capabilities. This little box will be near the top of every
   Linux geek's Christmas list.
   
   Inside the door I found Stay online, a retailer of inexpensively
   priced computer components. The vendor area was so jammed with Linux
   enthusiasts that I had a hard time getting to every booth. Linux Mall
   was once again on hand offering great deals on everything. I picked up
   Red Hat Linux 5. 1 for twenty-five dollars and Star Office Commercial
   for fifty dollars. Sun Microsystems was a very noticeable new addition
   to the Expo this year, showing off complete Ultrasparc computers as
   well as Ultrasparc based motherboards for building your own homebrew
   ultrapenguin machine. Alta Technology and Paralogic, two vendors of
   pre-built Extreme Linux clusters were also present. At another
   entrance, Jim Paradis of Digital Equipment Corporation entertained a
   mass of power hungry linuxers with a new smp alpha machine.
   
   Cobalt wasn't the only company with miniature gee-whiz computers.
   CorelComputer was showing off their soon-to-be released Netwinder
   computers. These little boxes (9.5"x6"x2") have everything you could
   want in an intranet/internet client, and can be used as web servers as
   well. The Netwinder could be serious competition for the Qube, but I
   think many customers might choose a mixed environment of both.
   
   Another major attraction was the RHAD Labs booth, which featured a
   couple of computers running gnome. The booth was staffed by members of
   the RHAD Labs development team, and Miguel de Icaza made occasional
   appearances. At just about any point in time, people were lined up
   three deep to get a look and gnome and ask the developers questions.
   One of the gnome computers had a camera attached to it, and some
   interesting pictures from the Expo have been posted on
   http://www.gnome.org/.
   
   Toward the end of the second day of the Expo, I got an unexpected
   surprise which made the show immensely better than I had expected.
   While looking through the popular tee shirts offered by Xunilung, I
   overheard someone proclaiming that Linux was a misnomer, and that the
   correct name of the system was Gnu-Linux. This was a position I had
   heard before. I stepped back from the tee shirts to peek around people
   who had gathered around a table placed perpendicularly to Xunilung's.
   Sure enough, the gnu-linux admonishment was coming from Richard
   Stallman. For those who are not familiar with rms, as Stallman is
   often called, he is the person who started the gnu project in 1983 to
   provide a free version of Unix for anyone who wanted it, unencumbered
   by proprietary licensing restrictions. Stallman is responsible for the
   Free Software foundation, and the general public license.
   
   Although I do not really agree with him about the naming of Linux, I
   firmly believe Linux could not have been developed without the tools
   provide d by the FSF. Stallman has been a hero of mine since before
   Linus discovered Minix, so I was somewhat speechless when I saw him
   there unannounced. I stood back and watched for a while as young
   hackers got autographs and bought gnu tee shirts, CD-ROMs, and books.
   Occasionally Stallman would place the platter from an old disk pack on
   his head. With this "halo" in place, he became Saint Richard, patron
   saint of the Church of Emacs, and he would bless the young hacker's
   computers provided they did not have any proprietary software on them.
   When it was my turn to talk to Saint Richard, I thanked him for the
   work he had done, and bought two Emacs books. He signed the books
   happy hacking, and happier hacking, Richard Stallman.
   
   After my encounter with rms on the second day of the Expo, I found my
   way to the auditorium where Linus would be giving the keynote speech.
   I was lucky, I found a seat about fifteen rows back from the stage.
   Less fortunate fans continued to file in for another fifteen minutes,
   and by the time Linus got on stage, people were standing and sitting
   in the aisles. An overhead projector indicated the theme of Linus'
   talk, titled Ramblin' Linus. Linus took the microphone and said "I'm
   Linus, and I am your god", at which point the crowd responded with
   deafening applause. Linus thanked various people for their work, in
   particular Alan Cox who has taken over the normally thankless job of
   maintaining the stable kernel for the last year or so. Some of the
   topics covered were the current state of the development kernel, the
   upcoming release of the 2.2 kernel, and future directions of kernel
   development. Linus spent about twenty minutes answering questions from
   the audience, and then everyone filed out for a southern style
   barbecue dinner in the university yard.
   
   Conference talks were the main focus of the Expo for me. Unfortunately
   there were so many talks offered, I had a hard time making up my mind
   about which ones to attend. Extreme Linux is the only tutorial I made
   it to, but there were eleven more, on subjects as diverse as
   programming with gtk+, Python, hacking the Linux kernel, LinuxConf,
   and a demonstration of the Coda filesystem.
   
   The conference was broken up into a business track and a technical
   track. The technical track auditorium was where I spent most of my
   time, but I did make it to several interesting business talks. Robert
   Hart of Red Hat Software gave a talk on linux certification dealing
   with what certification meant, and who should try to get it. He also
   encouraged the audience to drop off resumes at the Red Hat booth,
   which I did. I am still wait ing on your call Robert. Mad Dog gave an
   anecdotal talk on how Linux is used around the world, and Tim Bird of
   Caldera filled us in on the COAS project. COAS is a project to develop
   an integrated administration tool for Linux and possibly other unices,
   they are looking for volunteers, so drop them a line. The last talk in
   the business track was actually a panel which discussed free software
   licensing. The panel consisted of Eric Raymond, Richard Stallman, and
   Bruce Perens, who moderated. Raymond's and Stallman's views were not
   exactly in sync, so some very interesting discussion concerning the
   state of free or open source software licensing took place.
   
   The technical track started earlier, and ran longer than the business
   track all three days. Unfortunately, registration problems, and
   technical difficulties threw the schedule off the first two days, and
   technical talk s were out of sync with business talks which made it
   hard to move freely between tracks. David Miller gave a very technical
   talk on optimizing the Cobalt Microserver. Peter Braam of Carnegie
   Mellon University gave two informative talks on the new VFS interface,
   and the Coda distributed files system. The Coda team has made a lot of
   progress, and the filesystem is so mething worth looking into. Peter
   also mentioned that the team is looking for a good system programmer
   who likes interesting work, but doesn't mind being poor.
   
   Bruce Perens and Daryll Strauss both gave talks on the use of
   computers to make movies. Strauss showed us how a pile of alphas
   running Linux help ed with the making of Titanic. During a short video
   presentation, he pointed out some amazing effects that were computer
   generated. Bruce went over some basics of computer animation in Toy
   Story, and showed an experimental piece by Pixar called Gerry's Game.
   The auditorium was packed for both talks.
   
   Miguel de Icaza discussed the gnome project to a very large crowd. Due
   to technical problems with his laptop, the talk ran over by about
   thirty minutes. Fortunately, Miguel is a very entertaining speaker,
   and he kept the audience's attention while half of the RHAD Labs team
   and a concerned member of the audience fretted over his computer. Lars
   Wirzenius presented his Linux Anecdotes, a history of the linux system
   from someone who was right there when it was created. Lars shared an
   office with Linus at the University of Helsinki, and was the first
   person to actually run Linux on his computer. Alan Cox, a fixture at
   Linux Expo, gave a talk about the trials and tribulations of porting
   Linux to the Apple Macintosh 68K. His talk was titled "I don't care if
   space aliens ate my mouse". The title comes from an old Apple
   document, apparently the only official document ever written on the
   apple mouse.
   
   These were only a few of the talks given at the Expo, a complete list
   can be found on the Linux Expo web site: http://www.linuxexpo.org . In
   addition to vendors and talks, there were other things to keep Expo
   attendees busy. A quake fest ran all day every day on the lower level,
   with deathmatches every fifteen minutes. Prizes were awarded for the
   highest body count from each match up. Birds of a Feather sessions
   were offered throughout the three days on a variety of topics, and an
   "email garden" was set up to allow attendees to get access to the net
   for checking their email. On Thursday, the age old question of which
   editor, Emacs or vi, is superior was finally answered. Obviously, the
   only way to resolve the issue was through brute force, so the Expo
   hosted Editor Wars, a paintball tourname nt. When the CO2 propelled
   paint mist settled, the vi team emerged from the field victorious.
   
   Wrapping up the show Saturday evening was the second annual Linux
   Bowl. Mad Dog was the host, and the teams consisted of conference
   speakers and audience participants. Rasterman, of RHAD Labs, and
   audience members were the judges. Bruce Perens and Eric Raymond were
   two of the contestants. Some of the questions asked were: what lilo
   option is used to list currently mapped files(answer: -q), what was
   the first kernel tar.gz to exceed ten megabytes ( to which Bruce
   Perens promptly replied Microsoft NT. The correct answer was 2.1.88),
   which movie featured the Red Hat Office building (one contestant
   replied Debbie does Durham, and Mad Dog felt compelled to award one
   point. The correct answer was Kiss the Girls), why was the Beowulf
   project named Beowulf( answer: it sounded cool), and a trick question,
   what was the first system to run UNIX ( answer: a pdp7).
   
   The Fourth Annual Linux Expo was a tremendous success, and I think
   every one went home happy. The show organizers deserve a big round of
   applause for their efforts, and if this year's turn out is any
   indication of things to come, they had better get a bigger building
   next year.
     _________________________________________________________________
   
                      Copyright © 1998, David Penland
             Published in Issue 30 of Linux Gazette, July 1998
     _________________________________________________________________
   
   [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
     _________________________________________________________________
   
    "Linux Gazette...making Linux just a little more fun!"
     _________________________________________________________________
   
                            LinuxCAD Impressions
                                      
                              By Robert Wuest
     _________________________________________________________________
   
  Friday, June 12
  
   I started calling Software Forge first thing this morning. NT had
   crashed yesterday and hosed it's own installation. I had no rescue
   disk. The day was starting real bad because I had an instrument design
   project getting behind. I needed to work on the mechanical layout. I'm
   sick of problems with microsoft operating system products.
   
   I've been using AutoCAD for over 14 years and have seen it turn into a
   fairly decent CAD package. I use R13 and have used everything back to
   around 2.0.
   
  Getting It
  
   Boot into Linux. It always works. There's a reasonably priced cad
   package I'd seen news posting after news posting advertising itself.
   Supposed to be like AutoCAD. I'm just going to breakdown and buy it
   and do the design in that. Start Netscape and head to the cola
   archives. It's moved it's home, so I change the bookmark, search for
   LinuxCAD (the archive) and find Software Forge's home,
   http://www.linuxcad.com. All it has is an E-mail address and a phone
   number, (847) 891-5971, in Chicago, Illinois.
   
   Screen-shots are there, check them out. I guess, from the numerous
   copies of the ad I had seen, I was expecting something that acted like
   AutoCAD. Notice the first window shows the columbia drawing,
   columbia.dwg, and the second window, that it's title is
   "AvtoCAD-SoftwareForge".
   
   http://www.softwareforge.com/linuxcad/pricing.html says this:
   
     "LinuxCAD is a true open software product and as such it has been
     ported to all major UNIX platforms. The pricing of LinuxCAD for
     platforms other than Intel depends from the number of copies you
     have chosen to purchase , the more copies the lesser price. All
     ports retain full original functionality and are fully compatible
     with original LinuxCAD for Linux for Itnel and with AutoCAD".
     
   "True open software product"? Where's the source? The license is in no
   way open and the source is no where to be found. Meaningless
   buzzwords.
   
   I call and call all day: someone finally answers the phone about mid
   afternoon and sells me a copy. I'm a little confused as to who was
   serving who after that conversation, but I did manage to buy a copy
   and download it off of their ftp site with no problem. And she told me
   that there have been over 100 copies sold. So now I've forked out the
   $$$ for this thing and what follows is what I experienced.
   
   The readme file (on the ftp server) said to put the archive in the
   directory where you want to install it and untar it. Enough for those
   who know their way around Linux pretty well. I go to the file with
   TkDesk and my pop-up menu isn't right for the file :-0. This file is
   unconventionally named slk96_tar.gz, not slk96.tar.gz like it should
   be, so I promptly renamed it.
   
   Examining the contents, I see a straight collection of 25 files, no
   directories, no man pages, info pages or html docs. There are several
   .dxs, .mnu, .scr and .txt files. I make a directory linuxcad, moved
   the archive in there and run extract off the tkdesk pop up.
   
   <aside>
   A lot of users will be lost from those very brief instructions. This
   is what I finally did to install properly, IMO:
   
   As root, I made a directory, /usr/local/lib/linuxcad and moved all of
   the files there. In my /usr/local/bin directory, I created symlinks:

        $ ln -s ../lib/linuxcad/lcad lcad
        $ ln -s ../lib/linuxcad/linuxcad linuxcad

   There should at least be a makefile included to do this as "make
   install".
   </aside>
   
   The readme file also has this bombshell:
"  Optional LinuxCAD extensions
 ================================


   1)  Print option:
          Hardcopy to DeskJet , LaserJet
          and to MSWindows based LinuxCAD printserver
                                   ---------------------
                                       $100

   2)  Plot option:
          To HP-GL compatible plotters
                                   ---------------------
                                       $100

   3)  DXF Import option
                                   ---------------------
                                       $100

   4)  Customization option:
       Includes
         4.1 Hot keys menu and user programmable pull down
             menu.
         4.2 GNU C/C++ programming interface.
                                   ---------------------
                                      $200

   5)  3D design option
                                   ---------------------
                                      $200"

   This is not a $75 package, it's a $775 package.
   
  First Impressions
  
   Double clicking (back in TkDesk) the executable I saw that it ran,
   produced no window and exited with status 0. It had spit out out an
   error message, which came out on my login vc:

 LinuxCAD v 1.53
  Portable Computer Aided Design program for Linux and Unix.
   Usage:
        linuxcad <name of new or existing .dxs file>

   But I didn't see that until I started an xterm and ran it from there.
   So I gave it a filename this time and it ran. Here's the command I
   used:

        $ ./linuxcad test.dxs

   It puts itself in the background. I exited immediately and it gave me
   a dialog asking if I wanted to save my changes. What changes? I had
   just started and exited. I'm not even going to read the docs. Just see
   what I can learn by fiddling with it a bit. I can immediately see that
   this needs polish.

        $ ./linuxcad test.dxs # again.

   The "line" command worked, but "l" didn't. "Move" worked and "w"
   selected entities by window, but the "m" command didn't work. OK, it
   doesn't have command aliases. Oh, they're $200.
   
   I draw a few lines. "line", click, click, <CR>. Oops, still drawing
   the line. OK, right click. The line is placed, but in the text area,
   all that's there is:


Command aborted !
Command:

   There are no scroll bars and no handle to resize the command area.
   There are 3 lines of command area stretching across the bottom of the
   window. I can scroll back by using X-selection, but that doesn't give
   very good control.
   
   Line editing is very poor. My arrow keys do nothing, The backspace key
   works, but <HOME>, <END>, any extended key does nothing. I start a
   command and can't find a key that cancels it. The right mouse button
   will, but why doesn't <CR>, <ESC> or ^-c work. Let's try all the keys
   :-). ^-z, ^-x, ^-c, etc. ^-j causes a "point expected !" message.
   After a lot of keys, it crashes. Looks like a buffer overrun to me.
   Restart. It crashes every time and work is lost. No core dump or error
   to the parent shell.
   
   ^-m opens a command history window with both scroll bars, but I can't
   type a command in it. It just beeps at any key except the cursor
   control keys now work! The cursor is not visible, but <PGUP> and
   <PGDN> do what they're supposed to and <UP> and <DN> seem to.
   
   That command history window insists on staying over the drawing area.
   I use my M-<PGDN> (which I have defined in ~/.fvwmrc to lower a
   window) and the window goes away. If I do any window manager operation
   that brings the window to the top, the history window ends up over the
   drawing area. It has an "Exit" button, so I press it.
   
   There is no coordinate display in the main window. "Pline" doesn't
   work. "c" doesn't work to close multiple line segments.

Command:line

From point:0,0

To point:1000,1000

To point:

   No way to end it with keys. Have to right click again. Too man
   unnecessary linefeeds wasting vertical screen space. No "Zoom"
   command.
   
   After about an hour of playing: 
   
                 ********** This is not AutoCAD **********
                                      
   This program does not have an AutoCAD interface, which, based on all
   of the comparisons made by SoftwareForge to AutoCAD, it should have.
   There are commands to zoom: "zoomw", "zoomall". "Zoom" should use the
   acad interface. Other commands do. And there is no equivelant to the
   "x" option. I do this often in acad:

        z e z .9x

   If you don't know acad, that will give a 90% zoom factor scaled to the
   display window (everything is visible with a little border anound the
   outside).
   
   The top of the screen has six menu items and 6 buttons. Draw/line
   starts line drawing. The edit menu has no undo. "Undo" doesn't seem to
   work. Undo is under "Edit/Edit../Undo/Set mark" and
   "Edit/Edit../Undo/Undo to last mark" It looks like one has to set
   marks and can't just walk backwards undoing actions one at time.
   
   3D'll run another $200 (item 5). Draw/Draw 3D.../Sphere gets me this
   message:

"This is an optional feature of LinuxCAD
Please check the readme files to see the current pricing
for the optional features.
Command:"

   Drawing area and window display area aren't the same. You must
   "Options/Settings/Screen Extents/..." on the menu. This is something I
   really don't like right away.
   
   No short commands. Looks like they cost $200 (item 4.1).
   
   Bad command line area with virtually no editing in it.
   
   Changed zoom interface.
   
   No .xyz filters.
   
   Keyboard focus moves to buttons in menu area. You have to click in the
   command area after using a button before you can type another command.
   
   "U" doesn't undo the last line segment while drawing lines.
   
   "Undo" requires setting a mark.
   
   No tooltips.
   
   No coords display.
   
   No coords display.
   
   I know AutoCAD very well, but still, I have to read the documentation
   :-0.
   
   Print only to a bitmap. And who wants to print to a microsoft print
   server? Another $100 (item 1) for printing. There is no postscript
   printing at all.
   
   No cut, copy and paste between multiple instances of the program.
   
   You can't edit with only the keyboard.
   
  Some Techy Details
  
   I'm not sure what toolkit was used. Ldd linuxcad reveals the following
   on my system:

        libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x4000b000)
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x4004d000)
        libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x400e3000)
        libg++.so.27 => /usr/lib/libg++.so.27 (0x400ed000)
        libm.so.5 => /lib/libm.so.5 (0x40121000)
        libc.so.5 => /lib/libc.so.5 (0x4012a000)
        libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x401e6000)
        libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x401ef000)
        libstdc++.so.27 => /usr/lib/libstdc++.so.27 (0x40203000)

   Searching the executable doesn't help, either. Searching with
        $ strings linuxcad | grep -i copy

   only finds a couple Software Forge copyright strings (and the word
   "copy" a bunch).
   
   Multiple instances run fine.
        $ ps -m 3638 3636 # shows the memory usage:
        
  PID TTY MAJFLT MINFLT   TRS   DRS  SIZE  SWAP   RSS  SHRD   LIB  DT COMMAND
 3638  p6    383    195  1080  1920  3000     0  3000  2176     0 206 linuxcad
cab1.dxs
 3636  p6    425    200  1140  1976  3116     0  3116  2288     0 207 linuxcad
test.dxs

   Startup time is about 2 seconds each on P100/48 Meg. system.
   
   Here's a link to a listing of a blank drawing file, cab1.dxs
   
  Licensing
  
   The license is very restrictive. It's the basic single machine/single
   user license. I'm not sure I can even include quotes from the
   documentation, the way license.txt is written. It says I can't
   reproduce or distribute or even revise the documentation. Does that
   mean if I removed some of the double spacing or add notes through out
   the documentation that I am in violation of it? In any case, I won't
   publish the license here. The high points:
     * Install on a single computer for "your own individual use". Can my
       wife and children use it?
     * You can make one copy for archival purposes.
     * The program can be transferred. Standard boiler plate. You can't
       keep a copy.
     * Software Forge is not liable for anything that goes wrong or any
       damage that the program does to you, your computer or your mother.
     * It says there is some welcome screen with a copyright notice, but
       that is wrong; there is no startup message (and it should stay
       that way unless it is a window that pops up and then goes away
       once the program starts).
     * The user's guide specifically calls out that it cannot be released
       under the GPL, which I think is kind-of a strange detail to add.
     * You can't reverse engineer the program.
     * If you violate the license, they'll try and throw you in jail.
       
  Conclusions
  
   First, I should include this quote (double spaced and all) from the
   linuxcad.txt document included in the distribution:

"   ATTENTION:

  This product is still very fresh and is under development , it may

crash from time to time , do save often and please report all crash situations

to Software Forge Inc. by e-mail to: unixguy@aol.com


  We add new features quickly and your input about what features you want is

valuable. "

   So make a demo available and send an announcement to cola everytime it
   is upgraded. Heck, this is the demo version.
   
   So far, only the one crash I wrote about above. But this is not a $775
   package. In its current state, it is not a $75 package, even with
   everything thrown in.
   
   Upgrades are available for only six months. And this is by no means an
   exhaustive list of missing features. Just what I found real quick.
   
   I'd suggest waiting.
   
   I now must get NT working first thing Monday morning. I still don't
   have a cad package to do my work in Linux and then take it to acad to
   make a final drawing. I'm still stuck using microsoft. :-(
     _________________________________________________________________
   
   This document is copyright Robert Wuest, PE.
   It is herby released into the public domain.
   (except those portions copyright Software Forge, Inc.)
     _________________________________________________________________
   
                       Copyright © 1998, Robert Wuest
             Published in Issue 30 of Linux Gazette, July 1998
     _________________________________________________________________
   
   [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
     _________________________________________________________________
   
    "Linux Gazette...making Linux just a little more fun!"
     _________________________________________________________________
   
                                  [INLINE]
                                      
Book Review: A Methodology for Developing and Deploying Internet & Intranet
                                 Solutions
                                      
                             By Jan Rooijackers
     _________________________________________________________________
   
     * Authors: J. Greenberg and J.R. Lakeland
     * Publisher: Hewlett Packard Professional Books by Prentice Hall
     * E-mail: sales@prenhall.com
     * URL: http://www.prenhall.com/
     * Price: $39 US
     * ISBN: 0-13-209677-3
       
   
     _________________________________________________________________
   
   The goal of A Methodology for Developing and Deploying Internet &
   Intranet Solutions is to be a ``guide'' for project managers. Almost
   all situations a project manager can face--from project members to
   backup media to making time lines--are described herein. The book
   consists of 11 chapters, plus appendices. Everything is written as a
   story from the authors, who combined have more than 20 years of
   computer experience. Every chapter contains small tips for the project
   manager.
   
   In Chapter 1, the reader is introduced to employees of a company that
   is used as a study case throughout the book.
   
   In the next chapter a proposal is put forth, and all facets of
   handling it from kick-off meeting to support organization to signing
   the contract are described. In this book, the project manager makes
   use of the WBS (work breakdown structure) model. This model breaks the
   project into phases and sub-phases so that each can reach its own
   milestone.
   
   Chapter 3 puts the reader into the place of a successful project
   manager, who has convinced the ``customer'' to sign the contract. The
   customer could be either internal (a department) or external--imagine
   yourself as the consultant. This chapter begins with the internal
   kick-off meeting. Roles and activities are assigned and given
   deadlines, so everyone knows what to do when.
   
   Discussion of the software development cycle begins in Chapter 4 with
   writing an approach document. This chapter explains to the project
   manager what the document must and must not contain--from requirements
   to education. Also, some development methodologies are discussed.
   
   Next, we get to the fun part (only 20 pages)--development. This is
   familiar stuff which I face each working day with the
   Internet/Intranet. The authors discuss creating HTML pages, internal,
   unit and system testing and, last but not least, a checklist to see if
   everything is working.
   
   The remaining six chapters (6 to 11) are short, averaging eight pages
   each. Implementation is handled in Chapter 6; networking and backup
   are discussed in Chapter 7. Chapter 8 covers the various applications
   and system testing at a high level, so that you get a complete picture
   of how everything fits into the project. The last three chapters are
   about putting the project on the user desk. Also, two appendices are
   included, the first of which is better: it is technical and briefly
   explains the operating system layers and the Internet. While this
   information is not presented in great detail, what is here is quite
   interesting. The other appendix deals with project management.
   
   The book did not live up to my expectations. Too much of it is written
   in the form of a diary or personal anecdotes for my tastes; not enough
   is related to actual technical details of the Internet/Intranet. A
   Methodology for Developing and Deploying Internet & Intranet Solutions
   will bring no added value for persons who have already been working
   for some years in the IT area. However, I do think it is a good book
   for people who are new to the IT business, and who want to know more
   about project management in order to become a project leader.
     _________________________________________________________________
   
                     Copyright © 1998, Jan Rooijackers
             Published in Issue 30 of Linux Gazette, July 1998
     _________________________________________________________________
   
   [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
     _________________________________________________________________
   
    "Linux Gazette...making Linux just a little more fun!"
     _________________________________________________________________
   
                            Blackbox title image
                                      
                        The Blackbox Window Manager
                                      
                               By Larry Ayers
     _________________________________________________________________
   
                                Introduction
                                      
   Someday (I fantasize) an academic specialty devoted to the taxonomy of
   free software will arise, complete with abstruse journals filled with
   hair-splitting analyses of the bloodlines, interbreeding, and
   evolution of this ephemeral medium. I can imagine a future scholar
   publishing a paper in which the various developmental strands of
   late-twentieth-century Linux window-managers are analyzed, complete
   with photographs of the Sunsite digital archaeology project, conducted
   amidst the ruins of ancient Chapel Hill.
   
   Returning to the present, two trends can be distinguished among the
   many window-manager projects extant today. The first is either
   inspired by and/or descended from Robert Nation's influential fvwm
   window-manager. Fvwm2, Afterstep, and (to a lesser extent) WindowMaker
   are examples in this category. These window-managers tend towards
   extreme configurability and typically are able to load special-purpose
   modules such as desk-top pagers, CD-players, and hosts of others.
   Configuration of this sort of manager can be a daunting task,
   especially for Linux beginners, though the existence of
   well-thought-out and esthetically pleasing "themes" (in this context
   meaning a package of configuration files, backgrounds, and pixmap
   icons) and their availability on the net can give a new user a
   head-start.
   
   Perhaps as a reaction to these complex and feature-laden
   window-managers another sort of manager has been appearing lately.
   Marco Macek's icewm is deliberately not as complex as the above "big"
   window-managers but nonetheless has the most commonly needed features
   and a moderately configurable appearance. Icewm has been through quite
   a few beta versions now and has become remarkably stable. Another
   example is blackbox.
   
   Blackbox is a new window-manager written by Brad Hughes. Like icewm,
   it was coded from scratch in C++. It's small (the source archive is
   just 50 kb.), fast, and has a thoughtfully-designed and pleasing
   default appearance. This latter feature has probably contributed to
   blackbox's transition from a personal undertaking to an open source
   project which has received bug-fixes and enhancements from several
   other programmers.
   
                                Impressions
                                      
   Like Windowmaker and icewm, blackbox uses workspaces rather than the
   virtual desktop/pager combination familiar to fvwm users. The main
   difference between the two methods of managing windows is that the
   workspace approach lacks the miniature representations of the various
   desktops seen in the pager window. It's really a psychological matter,
   and both methods work equally well once habits have been formed. I
   surmise that the first virtual desktop system (or even the idea of
   iconized windows and window-lists, which serve much the same purpose)
   was developed by a programmer who just got tired of shuffling through
   layered stacks of windows searching for a certain one.
   
   At the bottom of a blackbox desktop is an immovable multi-purpose bar,
   with a workspace menu on the left and a digital clock on the right. In
   between is a blank area, which had no function in the earlier betas
   but which now contains an iconized window-menu. Here's what it looks
   like, with the default colors:
   
   Blackbox toolbar
   
   The gradient shading of the titlebar and toolbar is a nice touch, a
   feature usually found only in the more elaborate window-managers. All
   graphics routines are handled internally so no extra image libraries
   are needed. Blackbox is unusual in that it doesn't use the Xpm pixmap
   library, so the only applications which will display an icon when
   minimised are those with icons embedded in the executable, such as
   Netscape and xv.
   
   Unlike most window-managers the root-window menu is bound to the right
   mouse button rather than the left, an arrangement which will be
   familiar to icewm and OS/2 users. The menu-items are configured in a
   separate file; both the menu and the overall configuration files are
   placed in the /usr/X11R6/lib/X11/app-defaults directory, a traditional
   location for X resource files. The menu-file's syntax is clear and
   easy to use. Here is a screenshot of a menu I've been using:
   
                               Blackbox menu
                                      
   The menu will remain "stuck" to the desktop if it is moved after it
   appears and can be dismissed via a right-mouse-button click any time
   thereafter.
   
   Keyboard short-cuts are provided for various window operations,
   including the Mac-like title-bar roll-up, as well as switching between
   workplaces. I am pleased by the relative paucity of key-bindings in
   both icewm and blackbox. Some of the larger window-managers have many
   key-bindings, some of which conflict with common application bindings.
   I've used fvwm2 quite a bit, and it always annoyed me that Netscape's
   alt-left-arrow-key key-binding wouldn't work, as it evidently was
   reserved for some fvwm function in my ~/.fvwm2rc file, which I never
   did get around to tracking down and disabling. You know how it is;
   this sort of minor configuration isn't important enough to just drop
   everything and fix right now. It's a minor annoyance, but I was
   grateful that icewm and blackbox included just a few essential
   bindings.
   
   Blackbox is still a relatively young project and the window-manager
   isn't completely stable yet. I've had it crash the X-server a few
   times, but I've long been in the habit of saving work frequently
   (which is always a good idea when running beta software!). Either
   icewm or wmx may be a better choice as a lightweight window-manager if
   the need for stability is paramount, but blackbox development seems to
   be progressing rapidly. More users trying it out and reporting
   problems will doubtless speed the process.
   
   The blackbox web-site is the best source of further information and
   the latest source archives.
     _________________________________________________________________
   
   
    Larry Ayers<layers@marktwain.net>
    
   Last modified: Sun 28 Jun 1998
     _________________________________________________________________
   
                       Copyright © 1998, Larry Ayers
             Published in Issue 30 of Linux Gazette, July 1998
     _________________________________________________________________
   
   [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
     _________________________________________________________________
   
    "Linux Gazette...making Linux just a little more fun!"
     _________________________________________________________________
   
                       Lesstif: One User's Impression
                                      
                               By Larry Ayers
     _________________________________________________________________
   
   One of the main differences between Linux and the commercial Unix
   flavors is that the commercial unices commonly come with one version
   or other of the proprietary Motif libraries. Motif is basically a
   "widget-set", a set of libraries and header-files which give X-windows
   applications a characteristic look, including such features as
   dialog-boxes, menus, file- and font-selectors, drag-and-drop support,
   etc.
   
   There are several free widget-sets which offer roughly the same
   functionality, such as GTK, so Motif isn't a necessity for a Linux
   system except for one factor. Many of the popular free-software
   projects come from institutions such as universities or government
   agencies, with a few originating in a commercial or corporate setting.
   These institutions often use a commercial Unix and programmers tend
   therefore to use the Motif development tools.
   
   A year or so ago I bought a copy of SWIM Motif from the LSL web-site.
   There were several software packages I wanted to compile which
   required the Motif libraries and header files, such as XEphem, NEdit,
   DDD and Vim. The price of a commercial Motif package had been close to
   two hundred dollars, but the new SWIM version was selling at that time
   for about sixty, so it seemed like a good deal. It's a quality product
   and worked well for me until I decided to upgrade my Debian system to
   Debian 2.0, which is based on libc6 (as are Redhat 5.0 and 5.1). I
   used the handy autoup.sh script, which upgrades the core packages of
   the distribution in the proper order. Everything was hunky-dory until
   I realized that my proprietary Motif libs were based on libc5 and
   won't function in a libc6 environment. The LSL company offers a
   thirty-dollar upgrade for customers in my situation, but I felt that
   I'd spent enough on what isn't really a necessary software package,
   and who's to say whether some future changes in Linux might put me in
   the same situation again? Situations like these really make me
   appreciate source-code availability!
   
   I'd been hearing favorable reports on the newer versions of Lesstif, a
   free and open-source Motif 1.2 clone created by a team of developers
   called the Hungry Programmers. The release of the Netscape source
   earlier this year had attracted new Lesstif users, as Netscape needs
   Motif to build. More users means more bug-reports and probably some
   additional programming help; I can't help but think that the new
   Netscape situation was a shot in the arm for Lesstif. The Lesstif
   releases seem to be more frequent now, for whatever reasons.
   
   I really didn't know what to expect from Lesstif. I remembered reading
   usenet postings concerning Lesstif's failures to work with this or
   that application and numerous comments on display flaws and other
   bugs. These comments were made over a year ago, which is approximately
   a decade in "computer time", so I was hoping for at least a marginally
   useful product.
   
   The first release I tried was 0.83. To my surprise, it compiled and
   installed as easily as any other quality GPL package. Feeling rather
   foolish that I'd spent hard-earned cash on a commercial Motif
   implementation, I proceeded to re-compile (over the course of a few
   weeks) every application which I had previously linked with SWIM
   Motif. So far every one I've tried has worked well with Lesstif; some
   packages needed the paths to the Lesstif libraries and header-files
   specified in the Makefile, but this was the only tinkering I've had to
   do. I was particularly pleased that NEdit now works with Lesstif, as
   this editor's dependence on Motif has until now hindered its
   widespread use by Linux users.
   
   The few bugs I've seen in the Lesstif version I'm using now (0.85) are
   minor and have little effect on usability.
   
   One reason Lesstif is important for the Linux community is that its
   existence and usability make it possible for the developers of
   distributions to package Motif-linked applications without the
   necessity of dealing with non-free software. The application
   developers can continue to use Motif, while Linux users can still
   compile and run the programs without the proprietary libraries.
   
   Jon Christopher, a member of the Lesstif team, has written an essay
   about Lesstif's history and prospects which is well worth reading. It
   was originally contributed to the Slashdot web-site, and is available
   here. The Lesstif web-site has the latest releases and other news.
     _________________________________________________________________
   
   Last modified: Sun 28 Jun 1998
     _________________________________________________________________
   
                       Copyright © 1998, Larry Ayers
             Published in Issue 30 of Linux Gazette, July 1998
     _________________________________________________________________
   
   [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
     _________________________________________________________________
   
    "Linux Gazette...making Linux just a little more fun!"
     _________________________________________________________________
   
                        Sabre: An Svgalib Flight Sim
                                      
                               By Larry Ayers
     _________________________________________________________________
   
                        Introduction and Disclaimer
                                      
   I haven't written about Linux games for the Gazette, mainly because I
   don't play them much. Oh, every now and then while waiting for a
   download to complete I'll play Xgalaga or XEmacs-tetris for a while,
   but for me the real Linux amusement is figuring out how to compile,
   install, and use the numerous software packages lurking out on the
   net, unpublicized and just waiting to be explored.
   
   A couple of days ago I was reading the current Need to Know British
   WWW news site, and I saw a mention of a Linux flight-simulator called
   Sabre. I ended up at the Sabre web-site and was impressed by the
   evident humor and good-nature of the site's developer (check out the
   page describing how to get sound working with the simulator!). Though
   I've seldom used flight-simulators, I decided to give this one a try.
   
                           Back To The Korean War
                                      
   The developers of Sabre (Dan Hammer, with assistance from Antti Barck
   and David Mansfield) have chosen to confine their attention to the
   Korean War, so the aircraft involved are mostly early jets with a
   smattering of WWII-era propellor-planes. The graphics are well-done,
   with texture-mapped clouds and landscapes. The general effect is
   reminiscent of a detailed cartoon (not Hannah-Barbra style!).Here are
   a couple of scaled-down screenshots (Sabre can even take its own
   screenshots while running; just press e and the current scene will be
   saved to a ppm file):
   
   Sabre screen 1 Sabre screen 2
   
   The first public release of Sabre was in August of 1997, so it's a
   relatively new project. Don't expect a state-of-the-art flight-sim
   like the numerous commercial products available. Sabre is more similar
   to better-quality DOS flight-sims of a couple of years ago. The
   up-side to this is that expensive hardware (such as an ultra-fast
   processors or a 3DFX video-card) isn't needed in order for Sabre to
   run acceptably fast. This is an Svgalib console-graphics program so
   not even X is needed.
   
   Sabre can be run in a variety of resolutions and window-sizes.
   Naturally a fast CPU will enable a larger and more detailed screen
   with minimal choppiness.
   
   Frankly, I probably never would have written this review if Antti
   Barck's tremendously useful dialog-based script RunSabre hadn't been
   included in the distribution. Flight-simulator veterans probably will
   be able to learn to use Sabre without this script, but novices (like
   me) will find this interface to Sabre invaluable. It provides a
   convenient way to set the screen resolution, run various demo missions
   and flight scenarios, and access the documentation (especially the
   key-binding doc) from one menu-based screen. All of these tasks can be
   accomplished with command-line switches, but who wants to learn these
   while still deciding whether it's worth devoting time to learning a
   new application? Without this script, running Sabre can be a
   frustrating sequence of short flights followed by re-reading the docs
   after watching your jet crash yet another time.
   
   Sabre offers quite an extensive array of view-points from which to
   observe your fighter-plane and the surrounding action. Naturally you
   can be in the cockpit and see forward, to the side, and behind, but
   you can also become a disembodied viewer off to one side. Even more
   interesting, a click of a key will put you in the cockpit of one of
   the enemy planes.
   
   Your plane can be controlled with either a mouse, the keyboard, or a
   joystick (assuming joystick support is compiled into your kernel). I
   found controlling with a mouse difficult, whereas after some practice
   the keyboard seemed to provide more accurate control. I don't have a
   joystick so I was unable to try that method; I understand that
   flight-sim enthusiasts prefer them.
   
   The first scenario in the RunSabre menu is called Just Fly. I was
   grateful for this choice; the last thing I needed while trying to
   figure out the controls was harassment by MIG fighters intent on my
   destruction! Several other flight scenarios are supplied, some
   involving aerial combat and others ground attack missions. These
   scenarios are interactive; the demo missions are more like short
   movies which display the variety of scenes Sabre is capable of
   displaying.
   
   All in all Sabre is a quality piece of software. It compiled easily
   and I found no obvious bugs. The source or pre-compiled binaries can
   be obtained from the Sabre web-site linked at the beginning of this
   article.
     _________________________________________________________________
   
   Last modified: Sun 28 Jun 1998
     _________________________________________________________________
   
                       Copyright © 1998, Larry Ayers
             Published in Issue 30 of Linux Gazette, July 1998
     _________________________________________________________________
   
   [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
     _________________________________________________________________
   
    "Linux Gazette...making Linux just a little more fun!"
     _________________________________________________________________
   
                      SFM: A New GTK-Based Application
                                      
                               By Larry Ayers
     _________________________________________________________________
   
                                Introduction
                                      
   As the GTK GUI programming toolkit matures more developers have been
   inspired to use it for the visual presentation of their programs.
   Pascal Rigaux, a French programmer, has come up with a small
   file-manager he calls sfm. Sfm isn't quite as simple as the name and
   initial appearance imply; it has a remarkably full feature-set for
   such a small program.
   
   There has been a long succession of X Windows file-managers which use
   various icons to represent different types of files. This approach can
   be useful for people accustomed to a Macintosh or Windows environment,
   where this type of file-manager is common. These icons do have
   drawbacks, though, as fewer files will fit into a single display
   window which results in much more scrolling to find a particular file.
   The impact on system resources is considerable as well, as the X
   server is called upon to constantly update the display, and memory
   usage is much greater than what is needed by a text-based manager. In
   the end it's just a matter of preference.
   
   Sfm is unusual in that it is an X-only file-manager which is also
   text-based (FileRunner is another). It also goes against the general
   trend towards mouse-based applications in that the keyboard interface
   is well-developed.
   
                          Appearance and Features
                                      
   The default window size is rather small; my first impression was that
   this was a trivial application, probably a first GTK programming
   exercise without much utility. As I explored further (and actually
   read the README file!) I found that sfm's uncluttered appearance
   conceals an interesting and useful approach to the perpetual effort to
   contrive a useful interface to the ls utility. In the screenshot below
   I've enlarged the default window by about one-third:
   
   sfm window
   
   The above window is rather plain. The interesting part is the
   right-mouse-button menu which offers a plethora of actions which can
   be performed upon the highlighted file, along with a submenu offering
   less-used possibilities. I wanted a screenshot showing the basic sfm
   window with both menus fanned out from it. I don't know whether it is
   an idiosyncrasy of sfm, GTK, or xv (which I used for the screenshots),
   but while I was able to get shots of either menu by itself, I couldn't
   get them all in one screenshot. So here are the main menu and its
   submenu; try to imagine them connected to the first screenshot above:
   
   first sfm menu
   
   This is the submenu stemming from the "more" item:
   
   sfm sub-menu
   
   As you can see, the keyboard shortcuts for all of the various
   menu-items are shown to the right of the action menu-entries. This is
   a great help in learning the key-bindings, which are designed to be
   intuitive and similar to those of many other programs. I especially
   like the Lynx-style left-and-right arrow-key directory navigation (the
   mc file-manager offers this as an option).
   
   Multiple sfm windows can be opened at once and files can be easily
   copied or moved between them.
   
   Sfm uses a configuration dot-file (~/.sfm) in order to determine the
   action to take upon a highlighted file when either the enter key, the
   right-arrow-key, or a single left-mouse-button click is received.
   Surprisingly, this is one dot-file you won't have to edit, as it is
   auto-generated. The first time you select, as an example, a text file,
   a dialog box pops up asking what action you'd like to take, such as
   editing it with your favorite editor. That preference is then recorded
   in the ~/.sfm file; the next time a text file is selected it will be
   loaded into your editor. Sfm uses the standard Linux file utility to
   determine file-types. This is quite a nice feature, especially for new
   Linux users who have enough to do just becoming comfortable with the
   system without constantly needing to chase down and edit config files.
   
   Sfm is still in its early days, but judging by the intelligent design
   of the current version, it's likely that further improvements are in
   the offing. The current version (1.4 as I write this) is available
   from the Sunsite archive; an alternate site is here.
     _________________________________________________________________
   
   Last modified: Sun 28 Jun 1998
     _________________________________________________________________
   
                       Copyright © 1998, Larry Ayers
             Published in Issue 30 of Linux Gazette, July 1998
     _________________________________________________________________
   
   [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
     _________________________________________________________________
   
    "Linux Gazette...making Linux just a little more fun!"
     _________________________________________________________________
   
                         Portable GUI C++ Libraries
                                      
                             By Sean C. Starkey
     _________________________________________________________________
   
   Most well-written, non-graphics C++ code is portable, but major
   problems occur when one tries to write portable applications for
   graphical user interfaces. On Linux, the X Window System is used as
   the major graphical user interface. GUI code written on Linux will not
   work on MS Windows. Even though we all know that Linux is the better
   of the two, some Linux developers would like to also support MS
   Windows with its large number of users.
   
   With a portable GUI C++ library, source code developed under Linux and
   X can be compiled for other platforms, including MS Windows. Quite a
   few GUI C++ libraries are available at this time, including MFC and
   OWL for MS Windows. Unfortunately, none of these libraries are
   portable to both X and MS Windows.
   
   Desirable features in a portable GUI library include the following:
   
     * Support for a large number of platforms
     * Easy to use, with good documentation
     * A good set of widgets (or controls, in Microsoft-speak) to use in
       your interface
       
   Other desirable features which are not GUI related are portable
   network functionality, file I/O capabilities and some good container
   classes.
   
   What are some of the problems faced by a portable GUI library? One is
   that GUI code on different platforms varies widely. To create a new
   window, MS Windows uses a completely different command than X, even
   though the code uses the same programming language in both. Another
   problem is subtle changes in event handling. All GUI applications are
   event driven, but the events are different on different platforms. The
   portable GUI library must take all of these differences into
   consideration and supply a common interface for all platforms.
   
   I have reviewed three different GUI C++ libraries which support both X
   and MS Windows. All are free of charge with no royalties. The source
   code for these libraries is available on the web sites cited in
   Resources.
   
   Since these libraries are written in C++, you have all the advantages
   of object-oriented design. To create a new window, you derive your own
   window class from the main window class. After adding the appropriate
   code to handle events in your window, it is finished.
   
  wxWindows
  
   wxWindows is by far the most active of the libraries available.
   wxWindows was originally developed by Julian Smart, but has received
   contributions from many others. The version of wxWindows reviewed in
   this article is 1.68B. Version 2.0, a major rewrite of the library, is
   rumored to be available in ``the near future''.
   
   wxWindows is a very modular project. The main version is available on
   the web site. In addition to the main version, there are also many
   subprojects. Some of these subprojects include additional widgets, an
   Xlib library port, a Macintosh port and many others. These subprojects
   are described on the wxWindows web site (see Resources).
   
   Note that the main version of wxWindows requires the Motif toolkit.
   Motif is not free; therefore, most Linux installations do not include
   it. Lesstif, a popular Motif clone, compiles and works with wxWindows.
   There is also a side project which uses only standard Xlib libraries
   so that wxWindows does not need Motif.
   
   wxWindows has many features. Figure 1 is a screen capture of the
   sample program distributed with wxWindows running on a Linux system.
   Notice all of the widgets available to the programmer. More screen
   shots are available on the wxWindows web site.
   
                                  [INLINE]
                                      
                                  Figure 1
                                      
   One of best features of wxWindows is the on-line documentation. The
   documentation comes in HTML, LaTeX and MS Windows help format. There
   is also a very active mailing list for wxWindows, where many questions
   can be answered. Trying to learn all of these new classes can be
   confusing, and wxWindows does a good job of describing them.
   
   If you don't want to download all of the wxWindows source code, a
   distribution on CD is available. See the web site for more details.
   
  V
  
   V is another freely available library, and was developed by Dr. Bruce
   E. Wampler. [See ``V--A Free C++ GUI Framework for X'', Linux Journal,
   December 1996.] It is able to compile on X and MS Windows. It is a
   complete library, but does not have all of the fancy controls that
   wxWindows has. Although not as fancy, in my opinion, V's source code
   is better written and easier to understand than wxWindows.
   
   V does not require the Motif libraries to build and run. All V source
   code uses pure Xlib library calls, so it should be able to compile on
   any Linux system with no difficulty.
   
   V has quite a few widgets available as well. Figure 2 is a screen shot
   of an example program distributed with the library. This look is
   consistent on all platforms.
   
                                  [INLINE]
                                      
                                  Figure 2
                                      
  YACL
  
   Another library worth looking at is YACL (Yet Another Class Library).
   The author, M. A. Sridhar, reports that YACL can compile on X, MS
   Windows and OS/2. Unfortunately, it looks as if progress on YACL has
   been nonexistent since late 1996. The current version of YACL, 1.60,
   is close to complete with a good set of classes and widgets.
   
                                  [INLINE]
                                      
                                  Figure 3
                                      
   Figure 3 shows a screen shot of an example program distributed with
   the library. This example shows some of the graphics primitives
   available with YACL. YACL also has all of your basic widgets, such as
   buttons, menus, choices and radio buttons.
   
   One of YACL's biggest drawbacks is a lack of documentation. There is a
   book about YACL: Building Portable C++ Applications with YACL,
   Addison-Wesley, 1996. I would suspect this book has more information
   than the documentation distributed with the library.
   
   If you would like more information on any of these libraries, please
   see their web page listed in the Resources table.
   
  Resources
  
   wxWindows: http://web.online.co.uk/julian.smart/wxwin/
   
   V: http://www.objectcentral.com/vgui/vgui.htm
   
   YACL: http://www.cs.sc.edu/~sridhar/yacl/
   
   User Interface Software Tools:
   http://www.cs.cmu.edu/afs/cs/user/bam/www/toolnames.html
   A good page for some other GUI libraries that are not necessarily
   free, in C++ or supportive of the X Window System.
     _________________________________________________________________
   
                     Copyright © 1998, Sean C. Starkey
             Published in Issue 30 of Linux Gazette, July 1998
     _________________________________________________________________
   
   [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
     _________________________________________________________________
   
    "Linux Gazette...making Linux just a little more fun!"
     _________________________________________________________________
   
                    Using Linux instead of an X Emulator
                                      
                              By Al Koscielny
     _________________________________________________________________
   
   Sometimes you must have X on the desktop--at work, that is. At home,
   you would have several choices from your well-appointed stable of
   Linux ponies. Work is another story--you have the corporately
   sanctioned productivity tool running on your desktop, and adding an X
   emulator application is going to cost somebody some money. You blew
   your software budget for the year on compilers. So what are you going
   to do now?
   
   Today's typical work environment includes a desktop PC running a
   version of the Windows operating system. If the job is writing memos
   and sending around Word documents, that's a reasonably adequate
   solution. If the job is developing and testing cross-platform GUI
   applications, then running an X application from your desktop is an
   effective way to get the work done.
   
  The Trafvu Project
  
   Trafvu is an application for displaying results from traffic
   simulation models. Such models can be used for planning and design
   purposes. For example, suppose the city fathers attract the Olympics
   for the year 2004. What changes need to be made to the traffic system
   so that the city does not suffer from massive gridlock during the
   Olympics?
   
   Trafvu was developed in C++ to run on Windows and the X Window System,
   with XVT being used as a cross-platform tool. For a software
   development lab, we had several Pentiums running Windows 95 and NT and
   some Sun workstations running Solaris 2.5. Generally, everyone on the
   project had a desktop system, and the lab was used for collaborative
   efforts, such as fixing bugs, and for design meetings. Several of the
   lab machines were set up as file servers. The application source code
   was maintained on a Windows NT server using the Mainsoft Sourcesafe
   software revision control product. Typically, the project source code
   were extracted to a local machine (lab or desktop), some source files
   checked out, and C++ code developed or modified and tested; then the
   modified files were checked back in.
   
   Initially, when porting code from Windows to X, files were transferred
   to a UNIX workstation using FTP, followed by a repeat of the compile,
   link, test and debug cycle. As the project progressed, SAMBA was
   installed on the Sun workstation, so that developers could access
   their home directories on the Sun workstation from the Windows
   browser. Then files could be extracted directly to the file system on
   the workstation. Opening a TELNET session from the Windows PC to the
   Sun workstation permitted concurrent compilation and linking on both
   Windows and X.
   
   At this point in the cycle, the source code had been modified,
   compiled, linked and tested under Windows. Now we needed to test it on
   the X Window System. We needed a way to run an X application from our
   desktop PC.
   
  X Emulator Options
  
   There are several ways to provide X on the desktop. A few years ago,
   X-terminals were very popular. An X-terminal typically has nice real
   estate (i.e., a large screen), some memory, no local disk space and
   costs about $1000 to $2000 (most of the expense is that nice monitor).
   At boot time, it loads an OS from a boot server, so setting up the
   boot server becomes the headache. As PC processors became cheaper and
   more capable, the price of hard drives fell through the floor, so the
   PC desktop became very popular. Typically, PCs run a version of the
   Windows operating system. Using them as X terminals requires
   additional software for X emulation. For example, with Hummingbird's
   Exceed, a typical X emulator, you can run your favorite X application
   on a convenient UNIX workstation and have X display on your desktop
   computer. X emulation products for Windows generally cost a few
   hundred dollars per machine. Currently, network computers (NCs) are
   being pushed as a solution to the software application configuration
   nightmare brought on by the proliferation of desktop PCs, and typical
   prices seem to be about $700US per unit.
   
   Several options are available and if a few hundred dollars is not a
   concern, the X emulator application is probably the ticket. If, on the
   other hand, no one will sign the purchase request or many machines
   need the capability, then a cheaper option is needed.
   
  Linux to the Rescue
  
   With hardware prices falling and Windows applications becoming more
   bloated, there's usually some older hardware sitting around unused.
   Who wants to attempt to run Visual C++ 5.001a under Windows 95 on that
   486/66 with a 1 GB hard drive? I won't volunteer. Next question--what
   OS runs X quite comfortably on a 486 with 16MB of memory? The answer
   is Linux.
   
   Thus, an alternative to the X emulation application is running Linux
   on the PC. Set up the PC as a dual boot machine and simply boot Linux
   to run X applications on the desktop. The advantage of using Linux is
   that no purchase requests have to be signed. Just bring the CD-ROM
   from home, find some free time and disk space and install it. The
   disadvantages are finding the time to do the installation and the need
   to boot between running Windows or X. The hurdles in the process are
   finding about 300MB of spare disk space and a three-button mouse.
   
  Setting up Linux
  
   Initially, my company installed Linux 1.2.13 on a Gateway 486/66 and a
   no-name clone 486/66. There are numerous resources on installing
   Linux, if you need that information. However, having copies of books
   such as Running Linux and Linux Network Administrator's Guide was
   essential for us. Internet access for HOWTO documents can also be
   helpful. Installing on the Gateway and no-name were mostly
   straightforward. The Gateway did not have a CD-ROM drive, so the
   CD-ROM was exported from one of the Sun workstations. The Slackware
   distribution has the option of installing over a network and this
   worked well. Both the Gateway and the no-name had SCSI cards, and
   additional SCSI disks were salvaged from other machines for installing
   Linux. Setting up XFree86 on the no-name was a chore because of the
   video card. Generally, the cheaper a PC, the less documentation is
   provided with it. So putting up X on the no-name took quite a bit of
   experimentation. The Linux multiple console capability is very handy
   when installing XFree86. ctrl-alt-F1 brings up the screen used to
   start X (use startx command) to look for error messages. alt-F7 gets
   you back to your X session, and ctrl-alt-F?, where ?=2, 3, 4, 5 or 6,
   gets another login session for checking log files, etc.
   
   Later in the project we installed Linux 2.0.0 on a SAG Electronics
   dual-processor Pentium Pro 200 MHz with an Imagine Number Nine 128
   Series II video card with 4MB. The Pentium Pro came with a 4MB hard
   drive, and a 400MB partition was allocated for Linux. Installation on
   the Pentium Pro machine was more difficult because the hardware was so
   new. Video drivers for the Number Nine card were in beta, and the
   generic SVGA drivers wouldn't work. Upgrades to XFree86 took about
   10-20MB of downloading from http://www.xfree86.org/ and perhaps a
   couple of hours to install and test. The three-button mouse on the
   Pentium Pro insisted on being difficult, but this was remedied by the
   advice in the three-button mouse mini-HOWTO.
   
   I tried the two-button mouse emulation and found it to be just good
   enough to get me in trouble. I would think I had the timings down,
   roll into an xterm with the root prompt and paste the equivalent of
   War and Peace in at the command line. (Gee, I hope I didn't do
   something like rm-rf/ in that session.) I did find coworkers who were
   willing to trade a Logitech three-button mouse for my two-button
   mouse. Once one is used to the X version of ``cut and paste'', it is
   very difficult to do without it.
   
   The three PCs were set up with dual boot capability. Initially, we
   just used a floppy boot disk for Linux, since making one is easily
   accomplished, and the MBR (Master Boot Record) for Windows remains
   intact. Later, when Linux had proven itself useful and we were
   interested in convenience, we added LILO to the MBR. The PCs were
   frequently used in Windows to edit documents, prepare spreadsheets,
   etc. It was very handy to access these files without having to boot
   Windows. Accessing Windows files while the PC is running Linux can be
   done using SAMBA. For FAT file systems, set up a mount point in
   /etc/fstab with a file system type of msdos in order to make the
   Windows file system fully accessible while Linux is running. Install
   SAMBA on the Linux machines, export the Windows file system through
   the smb.conf configuration file, and then you can access the files
   through the Windows browser (File Manager or Explorer, depending on
   your Windows flavor).
   
   It's encouraging to see file system drivers for FAT and HPFS, since
   accessing the files from the other operating systems is very
   convenient while running Linux. However, with current hard drive
   sizes, FAT is outdated and offers very little security. Microsoft
   offers some alternative file systems, such as VFAT and NTFS. However,
   it appears that specifications for these files will remain exclusively
   with Microsoft. So, although work is in progress on the NTFS driver
   for Linux, I don't think NTFS support under Linux will be available
   any time soon. Perhaps a better design choice is to minimize the usage
   of proprietary file systems on multi-boot machines.
   
   Typically, the Linux PCs were used for an X-terminal login to the Sun
   workstations. To make this convenient, the ``Goodstuff'' button bar
   was used. The environment variable DISPLAYHOST was set in this way:
   
export DISPLAYHOST=vader:0

   This environment variable is used when using rsh to get to an xterm on
   the Sun workstation. The .fvwmrc file with the FVWM window manager has
   several samples, so just fill in appropriate values for the remote
   host and the $DISPLAYHOST. Getting the GoodStuff button to work can be
   a chore if something is wrong with the setup. Start by testing with a
   simple command:
   
rsh remote-host date

   Once this works, typing rsh xterm should also work. Having a single
   button set the DISPLAY variable and also start the remote session
   prevents a nusiance console display when DISPLAY is set to the default
   value of 0.0.
   
   A side benefit of installing Linux is backing up the file system over
   the network. A PC usually doesn't have a tape drive, whereas a more
   backup-conscious Sun workstation may have a 5GB DAT drive. From the
   Linux PC, the dd command with the appropriate arguments will back up
   your hard drives to a tape drive on a remote workstation. A crontab
   entry is good for this type of backup for nonwork hours, so that
   network bandwidth impact is minimized.
   
  Synopsis
  
   There is a steep learning curve to installing Linux, and my initial
   installation of Linux took several days. Recently, I installed
   Slackware 3.2 (2.0.29 kernel) in about two hours, which included
   bringing up X and restoring home directories. Recent efforts at
   improving Linux's ease of use have been well spent and make Linux a
   more viable alternative for use at work.
   
   A spare X terminal is very handy to have around when debugging an
   application. It is possible to stop events from getting to the
   debugger on the Sun workstation, so that the console is essentially
   locked. However, if there's a free X display, set the DISPLAY variable
   there before running a command-line debugger.
   
   Booting multiple operating systems is an interesting twist on
   cross-platform application development. If I could have built the
   trafvu application using the GNU compiler (some issues with the Rogue
   Wave libraries precluded this), I could have used a single PC for both
   Windows and X development and testing.
   
   We have used Linux and XFree86 on a daily basis for over a year and
   have been impressed with the solid performance.
     _________________________________________________________________
   
                       Copyright © 1998, Al Koscielny
             Published in Issue 30 of Linux Gazette, July 1998
     _________________________________________________________________
   
   [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back Next 
     _________________________________________________________________
   
    "Linux Gazette...making Linux just a little more fun!"
     _________________________________________________________________
   
                                USENIX 1998
                                      
                               By Aaron Mauck
     _________________________________________________________________
   
   Photo Album
     _________________________________________________________________
   
   Each year, the USENIX organization (http://www.usenix.org/) puts on a
   technical conference dealing with UNIX and other UNIX-like systems.
   This year they had an emphasis on free or Open Source operating
   systems, primarily Linux and *BSD. The conference was held in New
   Orleans, Louisiana from June 15th to the 20th.
   
  Tutorials
  
   Many day-long tutorials were offered on Monday and Tuesday including
   ``Inside the Linux Kernel'' by Stephen Tweedie, one of the EXT2
   developers, and several talks on Networking and Security. I attended
   ``Hot Topics in System Administration'', taught by Treni Hein and Evi
   Nemeth. They covered many topics including Samba, Packet Filtering and
   IPv6.
   
  Vendor Expo
  
   I found it refreshing to see a vendor exposition (albeit a small one)
   comprised completely of UNIX-friendly companies. O'Reilly was there,
   displaying all of their titles for sale at 20% off. Needless to say,
   this made it one of the most popular booths. Most of the faces were
   familiar: Red Hat, Linux International, InfoMagic, the three heads of
   BSD and others. Among the unexpected participants was the FBI, just a
   short distance from the Free Software Foundation. The whole atmosphere
   of the exposition was quite relaxed, without the hectic feel of Comdex
   and other large industry trade shows.
   
  BOFs and Speeches
  
   Each evening offered several talks by different people on a wide range
   of subjects. I caught ``The State of Linux'' talk by Linus Torvalds on
   Thursday afternoon. He set Aug/Sep 98 as a hopeful release date for
   the 2.2 kernel. Another event that took place every evening was the
   ``Birds of a Feather'' (BOF) meetings, which were designed as a place
   for people with common interests to come together and discuss their
   ideas and goals. It was also a great place to rub shoulders with some
   of the ``big names'' in the UNIX community, such as Keith Bolstic,
   Eric Allman and Jon ``maddog'' Hall.
   
  Terminal Room
  
   What UNIX conference would be complete without a terminal room?
   Luckily, Earthlink and openBSD donated machines and bandwidth and
   created a room with thirty or so machines running openBSD, connected
   to a T1.
   
  Summary
  
   If I were to do it all over again (and I most definitely want to), I
   would spend more time planning what I want to learn. I was a bit
   overwhelmed by the sheer number of talks/events, and therefore found
   it difficult to focus on exactly what I wanted to get from the
   experience--I was constantly spreading myself too thin. For any UNIX,
   Linux, BSD etc. lover, USENIX is a must at least once in a lifetime.
   It is a very friendly and co-operative environment and has definitely
   earned its reputation as one of the hubs of the computing community.
     _________________________________________________________________
   
                       Copyright © 1998, Aaron Mauck
             Published in Issue 30 of Linux Gazette, July 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
     _________________________________________________________________
   
    Larry Ayers
    
   Larry 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 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.
   
    Norman M. Jacobowitz
    
   Norman is a freelance writer and marketing consultant based in
   Seattle, Washington. Please send your comments, criticisms,
   suggestions and job offers to normj@aa.net.
   
    Al Koscielny
    
   Al is a Systems Engineer with Resource Solutions International. In his
   spare time, he plays with Linux, reads Usenet, rides an ATB
   (all-terrain bike) and enjoys cooking. He wishes to acknowledge the
   contributions of Nacho, a big yellow tabby, to this article. He can be
   reached at koscieln@interpath.com.
   
    Mike List
    
   Mike is a father of four teenagers, musician, and recently reformed
   technophobe, who has been into computers since April,1996, and Linux
   since July, 1997.
   
    Aaron Mauck
    
   Aaron is the System Administrator at SSC. He can be reached via e-mail
   at aaron@ssc.com.
   
    Gerd Mueller
    
   Gerd's first computer was a Amiga 500, but since 1996 he works with
   Linux. Few weeks ago he has finished his studies of computer science.
   Currently he spends most of his time with developing WipeOut at
   softwarebuero m&b. He can be reached at gerd@softwarebuero.de.
   
    David Nelson
    
   David manages scientific research at the U.S. Department of Energy.
   Before that he earned his living as a theoretical plasma physicist. He
   started programming on the IBM 650 using absolute machine language and
   later graduated to CDC, DEC and Cray machines for his research. But
   Linux is the most fun. He and his wife, Kathy, live near Washington
   DC; they enjoy tennis, skiing, sailing, music, theater and good food.
   
    David Penland
    
   David has been using linux since he first encountered the sls
   distribution in the Autumn of 1992. He works as an AIX systems
   administrator for Unifi, INC. in Greensboro, North Carolina. He is
   married to Angel Penland, and they share a house with 2 dogs and 4
   cats. He can be reached at dpenland@mindspring.com.
   
    Eric S. Raymond
    
   Eric is a semi-regular contributor to Linux Journal. You can find more
   of his writings, including his paper ``The Cathedral and the Bazaar'',
   at http://www.ccil.org/~esr/.
   
    Jan Rooijackers
    
   Jan is an employee at Ericsson Data Netherlands BV (DSN). He came in
   contact with UNIX in 1991 and is now working in the Internet/Intranet
   business. Outside work, Jan spends time with his family and computers.
   He can be reached at Jan.Rooijackers@dsn.ericsson.se.
   
    Sean C. Starkey
    
   Sean has been a Linux user for over four years. His first Linux system
   had 0 as the major version number and came on floppy disks. If you
   would like to know more about Sean, feel free to visit his web site at
   http://rmi.net/~starkey/. He can be reached at starkey@rmi.net.
   
    Alex Vrenios
    
   Alex is a Lead Software Engineer at Motorola and has his ows
   consulting business. He is always taking some sort of class. He just
   finished the class work toward a Ph.D. in computer science, but only
   time will tell if it goes any further. His wife, Diane, is certainly
   his best friend and biggest fan. He enjoys his two Schnauzers, Brutus
   and Cleo, and his dozens of African Ciclids, too. He is a licensed
   amateur radio operator, as is Diane, and they spend more than a few
   nights together observing the skies through their 5-inch telescope.
   They like to get out and stay active, to enjoy life together.
   
    Robert Wuest
    
   Robert is an Electrical Engineer with Kemet Electronics in equipment
   engineering. He lives in the US but works in Mexico. He plays with
   computers there, developing software using Linux (for embedded 6809
   systems). This article results from his current project, an instrument
   which will use a PC104 computer running Linux. He is building the
   chassis in AutoCAD using full 3D to place PC boards, relays and a lot
   of connectors. He really wishes he could do that in Linux. He uses
   Tango for DOS for circuit design and PCB layout. He wishes he could do
   that in Linux also.
     _________________________________________________________________
   
                                 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.
   
   This last month I've just been working, working, working -- no time
   for fun. Riley is off on our annual motorcycle trip without me; he's
   exploring Utah and Arizona, all our favorite parks. So at least one of
   us is having fun. :-)
   
   Actually, I'm having fun too. Working on LG always seems more like fun
   than work and the same is true for Linux Journal. I've also been doing
   some exploring of areas surrounding Seattle with my father-in-law, who
   just moved up to this area. We had a two hour ferry wait last Saturday
   that was frustrating yet comfortable because of the company. I think
   having nice in-laws is a definite plus in life. At any rate, we've
   seen some beautiful scenery, including a trip to Snoqualmie Falls and
   one to the Olympic Peninsula.
   
   Have fun!
     _________________________________________________________________
   
   Marjorie L. Richardson
   Editor, Linux Gazette, gazette@ssc.com
     _________________________________________________________________
   
   [ TABLE OF CONTENTS ] [ FRONT PAGE ] Back 
     _________________________________________________________________
   
   Linux Gazette Issue 30, July 1998, http://www.linuxgazette.com
   This page written and maintained by the Editor of Linux Gazette,
   gazette@ssc.com
