Linux Gazette

May 1999, Issue 41 Published by Linux Journal

indent

Visit Our Sponsors:

Linux Journal
LinuxToday
Communigate Pro
cyclades
Linux Resources
LinuxMall
Red Hat
SuSE
InfoMagic
indent

Table of Contents:

 
 
 
 
 
 
 
 
indent

TWDT 1 (gzipped text file)
TWDT 2 (HTML file)
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.
indent
Linux Gazette, http://www.linuxgazette.com/
This page maintained by the Editor of Linux Gazette, gazette@ssc.com

Copyright © 1996-99 Specialized Systems Consultants, Inc.
indent

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


 The Mailbag!

Write the Gazette at gazette@ssc.com

Contents:


Help Wanted -- Article Ideas

Answers to these questions should be sent directly to the e-mail address of the inquirer with or without a copy to gazette@ssc.com. Answers that are copied to LG will be printed in the next issue in the Tips column.


 Date: Tue, 20 Apr 1999 17:59:43 -0400 (EDT)
From: Scott Searcy, searcys@BAYDENOC.CC.MI.US
Subject: Macintosh Disks

Is it possible to read from, write to and format 3.5 floppies that use the Macintosh format?

--
Scott Searcy

(Check out the HFS utility programs: hcd, hcopy, hdel, hmount, et al. There's even a GUI for them called hfs. --Editor)


 Date: Wed, 21 Apr 1999 11:24:45 +0100 (GMT)
From: Jason Douglas Brand, J.D.Brand@swansea.ac.uk
Subject: Can Linux extract frames from an AVI?

I only have one question. Can Linux extract frames from a compressed AVI? If so, what is the software called and where can I get it. I have heard that xanim can play AVI file but can it extract frames from them. Please help me!! You are my only hope.

--
Jason


 Date: Wed, 21 Apr 1999 12:30:01 -0200
From: Clovis Sena, csena@hotlink.com.br
Subject: Network boot disk for i386 without hd

I have a Linux machine in my office network and several i386 that has no hd, but has 1.44 floppy. They also have ne2000 network card, without no proms. Is there a way to make a boot disk that allow my i386 to boot and login into my Linux machine??? I searched the web but found only solutions that reffer to using network cards with eproms/proms. Thanks.

--
Clovis Sena


 Date: Wed, 21 Apr 1999 18:35:49 -0700
From: Mark Waddle markw@skeeg.com
Subject: Linux partitions from Windows

I got a question for ya... is there a driver or application I can use to get at least read access to my Linux partitions from Windows? Thanks,

--
Mark Waddle


 Date: Sun, 25 Apr 1999 19:29:44 -0700 (PDT)
From: Will Stevenson, transgression2@yahoo.com
Subject: FTP access methods...

Ok tough guys, I have written down more one-liners and cool tricks from the Linux Gazette pages than from anywhere else.

And I finally have a good question: In both Window$ and O$/2 I had apps that would treat ftp sites as folders (directories). It worked real well with keeping data in sync off-site. Is there a tool that will allow an FTP site to be mounted under Linux? It seems fairly useful to me, but freshmeat and other resources turned up nada.

I am working on a cool 1 disk Linux distro that has pilot backup features and other remote file access ideas that could really benefit from this.

Thanks for your input guys...

--
Will


 Date: Sat, 24 Apr 1999 09:42:13 -0500
From: "Trace & Sandy Schroeder", tsssjs@inxpress.net
Subject: question for the board

I am confused about what I will need to install Red Hat 5.2 on my new dell system last attempt met me with a command line only --- xfree 3.3.3.1+ was needed for my video card TNT chipset however I was looking for the files - and I am hoping for RPMS outr there for me to do it the easy way

Are there RPMS out there? and if not, why does the RPMS lag behind the releases - thank you very much I am anxious to get rid of the bloatware of ms on this zippy pentium 3

--
Striker


 Date: Thu, 29 Apr 1999 00:23:52 +0100
From: "Darren McAndrew", d_mac2000@dmcandrew.freeserve.co.uk
Subject: a.out binaries not working

I have recently installed Linux RH5.2 and have started learning some C. When I compile programs however I am left with an a.out binary which does not execute. I get the message no such command when I try to run it. I have loaded the aout libs from the cdrom but it still does not work! When I check file permissions on it it is listed as an executable. Could you please help me on what idiotic thing I am doing wrong? All help appreciated.

--
Darren


 Date: Thu, 29 Apr 1999 14:32:48 +0200
From: Pawel Szabelski, szabla@vega.umcs.lublin.pl
Subject: SCSI problem

I've got some problems with my SCSI disk (IBM DDRS Ultra2Wide) and the adapter (AIC 7880): There are some errors during read/write operations (specially in the case of big files). The message on the screen is like that:

Apr 28 14:28:57 vega kernel: scsi : aborting command due to timeout :
pid 38902,
 scsi0, channel 0, id 6, lun 0 Write (10) 00 00 2b 80 93 00 00 04 00
Apr 28 14:28:57 vega kernel: scsi : aborting command due to timeout :
pid 38903,
 scsi0, channel 0, id 6, lun 0 Write (10) 00 00 2b a3 ff 00 00 f4 00
Apr 28 14:28:59 vega kernel: SCSI host 0 abort (pid 38902) timed out -
resetting
Apr 28 14:28:59 vega kernel: SCSI bus is being reset for host 0 channel
0.
Apr 28 14:28:59 vega kernel: (scsi0:0:6:0) Synchronous at 11.4
Mbyte/sec, offset
 8.
I do not use shielded cable. What to do with this? Thank for any help.

--
Pawel


 Date: Thu, 29 Apr 1999 11:55:47 +0200
From: Pepijn Schmitz, p.schmitz@xpuntx.nl
Subject: Windows NT and Linux hate each other?

I've installed Linux Red Hat 5.2 on my friend's computer, and now for some extremely odd reason the Red Hat machine and the NT Server 4.0 that's on his other machine can't see each other over the network. At all. They don't even respond to each other's ARP requests.

The link is alive (judging from the lights on his switching hub), and the machines can see each other fine when he runs Windows 95 on the machine where I've installed Red Hat. TCP/IP is installed and configured correctly on both machines. The Red Hat machine has a 10 Mbps 3COM card, the NT machine a 100 Mbps 3COM, and the lights on the hub say that it's using those speeds on the interfaces that the machines are on, regardless of whether the one machine is running Linux or Windows 95.

What on Earth could be going on here?

--
Pepijn


 Date: Fri, 30 Apr 1999 07:03:42 -0400
From: brownh@hartford-hwp.com
Subject: Question: Editing x client fonts

I experienced a dirty shutdown when some software went bezerk and repeatly copied files from a cdrom until a HD partition filled. Running fsck seems to have cleaned up most things, but one permanent result was that x client fonts (the title bar and menus of windows) are a large Helvetica regular that causes difficulty.

I run Red Hat 5.2. I found no .fvwm2rc on that system. So I copied the file /etc/X11/fvwm2/system.fvwm2rc as .fvwm2rc into my home directory and edited the specification for WindowFont and MenuFont. I restarted Fvwm2, but nothing changed (my system fonts are accessible).

Is a copy of .fvwm2rc mandatory or only optional if one wants the user to define x client fonts, etc.? Should a copy of system.fvwm2rc as .fvwm2rc into my home directory have provided the user with the ability to customize X client fonts?

--
Haines Brown


 Date: Sat, 01 May 1999 13:13:45 +0700
From: Ruangvith Tantibhaedhyangkul, ruangvith@linuxfan.com
Subject: Need help on Internet connection with Linux

I'm having (rather serious) problems with Linux. I'm using Caldera's OpenLinux 1.3 with KDE 1.0 on Pentium 200, RAM 64 MB and SupraExpress 336i on COM3 (which works fine on 'Microsoft' Windows 98), the 2.0.35 kernel was compiled to support pentium and ppp internally. It can't be configured to connect to Internet at all.

First I used kppp (script based), it dialed, logged in, and told me that it was 'logging on to network'. But that was that, it stayed put, until timed-out.

Here's what happened on script debug window:

+++ATH 
OK 
ATZ 
OK 
ATDT2718000 
CONNECT 115200Welcome to Asia-Access Internet 
Host: US1 
Port: S6/2 
Username: ruangvit 
Password: 
PPP session from (203.145.0.204) to 203.145.3.105 beginning. 
And the corresponding /var/log/messages:
Apr 10 17:41:39 janbond syslog: ROOT LOGIN ON tty1 
Apr 10 17:42:00 janbond CRON[810]: (root) CMD ([ -x /usr/sbin/cronloop ] 
&& /usr/sbin/cronloop Hourly) 
Apr 10 17:45:42 janbond xntpd[643]: synchronized to LOCAL(0), stratum=3d7 
Apr 10 17:45:42 janbond xntpd[643]: kernel pll status change 89 
Apr 10 17:47:01 janbond kernel: registered device ppp0 
Apr 10 17:47:01 janbond pppd[842]: pppd 2.2.0 started by root, uid 0 
Apr 10 17:47:01 janbond pppd[842]: Using interface ppp0 
Apr 10 17:47:01 janbond pppd[842]: Connect: ppp0 /dev/modem 
Apr 10 17:47:32 janbond pppd[842]: LCP: timeout sending Config-Requests 
Apr 10 17:47:32 janbond pppd[842]: Connection terminated. 
Someone told me to try minicom. I could log in, quited without resetting and typed at commnd prompt 'pppd /dev/modem 38400 crtscts modem defaultroute'. I also commented out /etc/ppp/options. Here's what happened:
----------start of /var/log/messages---------- 
Apr 13 18:25:03 janbond pppd[947]: pppd 2.2.0 started by root, uid 0 
Apr 13 18:25:03 janbond pppd[947]: Using interface ppp0 
Apr 13 18:25:03 janbond pppd[947]: Connect: ppp0 /dev/modem 
Apr 13 18:28:03 janbond pppd[947]: LCP: timeout sending Config-Requests 
Apr 13 18:28:03 janbond pppd[947]: Connection terminated. 
----------end of /var/log/messages---------- 
Of course, on interface, it was nothing but quiet.

I tried minicom again, this time using /etc/ppp/options which looked like:

----------start of /etc/ppp/options---------- 
-detach 
modem 
lock 
crtscts 
defaultroute 
asyncmap 0 
mtu 552 
mru 552 
lcp-max-configure 60 
----------end of /etc/ppp/options---------- 
Here's what happened on the terminal:
----------start of login terminal---------- 
CONNECT 115200 
Welcome to Asia-Access Internet 
Host: US1 
Port: S6/2 
Username: ruangvit 
Password: 
PPP session from (203.145.0.204) to 203.145.3.105 beginning. 
----------end of login terminal---------- 
I then pppd, which resulted:
----------start of pppd result---------- 
[root@janbond /root]# pppd 
~=ff}#=c0!}!}!} }8}!}$}"(}"}&} } } } }%}& =ac=93=f6}'}"}(}"]}.~~=ff}#=c0!}!=
}!} }} } } 
}%}& =ac=93=f6}'}"}(}"]}.~~=ff} 
----------end of pppd result---------- 
And this is the corresponding /var/log/messages:
----------start of /var/log/options---------- 
Apr 14 11:16:41 janbond pppd[831]: pppd 2.2.0 started by root, uid 0 
Apr 14 11:16:41 janbond pppd[831]: Using interface ppp0 
Apr 14 11:16:41 janbond pppd[831]: Connect: ppp0 /dev/ttyp0 
Apr 14 11:19:41 janbond pppd[831]: LCP: timeout sending Config-Requests 
Apr 14 11:19:41 janbond pppd[831]: Connection terminated. 
Apr 14 11:19:41 janbond pppd[831]: Receive serial link is not 8-bit clean: 
Apr 14 11:19:41 janbond pppd[831]: Problem: nothing was received 
Apr 14 11:19:41 janbond pppd[831]: Exit. 
----------end of /var/log/messages---------- 
I tried looking up the howto's. Nothing seems to help. Neither do those gur= us in any Linux webboard. :-(

Waiting for your kindly reply.

--
Ruangvith Tantibhaedhyangkul


 Date: Mon, 3 May 1999 05:47:53 +1000
From: "Andrew K Smith", Andrew.Smith@webspinning.com.au
Subject: Linux and Subnets over PPP

I've tried searching the Internet for this and got generally quite confused about how to do it (and unable to get it to work!) What I need to know is how to setup a PPP access to my Linux computer where I give a subnet to the computer dialled in rather than just a single IP address (i.e. networking two networks together - ISP side) The target machine dialling in via PPP is actually WindowsNT - get no problems when it is setup as a single IP address (and the WindowsNT machine has it's own IP address not in my subnet) but can't seem to get it right when the NT machine has part of my subnet. Any help greatly appreciated Thanks,

--
Andrew


General Mail


 Date: Tue, 20 Apr 1999 14:01:47 +0200 (MEST)
From: Stephan Petersen, sp@gtt.lth.rwth-aachen.de
Subject: Re: "Web pages design under Linux" (#39)

I just browsed to the latest Linux Gazette, and for the life of me I can't figure out how the article "Web pages design under Linux" got in there. I'm not a fequent reader of the LG (but a subscriber to LJ almost from the beginning :-), and I'm pleasantly surprised about the good quality and high standards of the other contributions in this issue. Given that, how did this article made it in there? :-)

If I were new to Linux, but knew something about web design, after reading this article I would say even DOS must be a better choice of OS for web design! If I knew Linux, but I'm new to web design, this article would easily convince me that Linux has next to nothing to offer to get a gentle start into web design. And if you know both, well, you wonder how many people who count themselves to the previous two groups get scared off...

The title has not much at all to do with the article. Giving an overview is fine, but not mentioning even a fraction of the many great tools that Linux *does* have for web design, and not even giving *one* useful link to follow up on and to find a page that *does* have some info that deserves the name of the title, but instead sports silly things like "A true web page is made by hand" should be enough reason to not publish such an article until its reworked.

An article doesn't have to be long to be right for LG, nor does it have to cover a subject completely. But an article with *this* title should give the reader a little kickstart in the right direction, and I just don't see that happening.

Otherwise, keep up the great work, I enjoy the LG! I consider it a very useful addition to LJ.

All the best,

--
Stephan


 Date: Tue, 20 Apr 1999 17:07:52 -0400
From: "Scott Carle", carle@sccoast.net
Subject: Web page design under Linux

I have a request. Find some programs equivalent to FrontPage by Microsoft that can run under Linux and do a second article in the Linux Gazette. I found your statement that "A true web page is made by hand" to be very narrow minded and limiting.

I learned how to code by hand a long time ago and was never so happy as when WYSIWYG editors came out. Coding by hand is incredibly slow compared to a decent program such as Aolpress, FrontPage, Hotdog, Dreamweaver, NetObjects Fusion, or one of the other drag and drop editors. Today's websites with Java scripts and dhtml and all the other extras that are taken for granted would take forever to develop by hand. I agree that hand coding is leaner and meaner but trade offs have to be made between that and speed, especially when done commercially and charged by the hour. Also the site management features offered in a decent websuite are something that a webmaster/developer desperatly needs on large multi-page sites. Thank You,

--
Scott


 Date: Thu, 22 Apr 1999 23:48:51 -0600
From: Warren Young, tangent@cyberport.com
Subject: LG email on DTP under Linux

In Issue 40, there's an e-mail from Michael J. Hammel answering some complaints someone had about the current state of GUI prepress software for Linux. In it, he said that "there aren't any such tools yet announced for Linux". That hasn't been true for a couple of months now: like many other people, he's forgotten that Corel has a full-scale publishing package: Corel Ventura.

As everyone's heard now, Corel has promised to port all their apps to Linux by the beginning of next year. So far as I recall, this includes Ventura.

One other nit: Michael wrote that Windows has an 8-year lead on Linux. Actually, it has a 14-year lead: Windows 1.0 was released in 1985, and their focus has always been on ease of use. Recall that Windows was started in late 1983 after some Microsoft folk visited Apple and saw preproduction versions of the Mac.

Although X was started around the same time, Michael is right that the X world hasn't focused on newbie-user simplicity until very recently. Sure, X makes a Unix box easier to use just because it's a GUI, but until GNOME and KDE came on the scene, X never really hid anything the way that the Mac and Windows do.

--
Warren


 Date: Thu, 22 Apr 1999 09:26:01 -0500
From: "Clements, John", jcclemen@SHERWIN.RMC.com
Subject: Linux Gazette Format

Maybe a detail,

Many of us have and use Linux, but are still bound by the need to standardize in the corporate world to the Windows environment. As a Linux newbie, I still do not have a high speed modem bought and installed on my Linux box at home so have no way to get the tar, etc formats, and, of course, many of us have a higher speed lines at work. Is there a way to download the file in a format that can be unzipped, etc. on a Windows workstation then print out? Also, a format easily read by Windows machines would make publicizing the Linux system possible to others now using Windows. For example, our local PCC users club(Coastal Areas PC Users Group, www.caug-pc.org http://www.caug-pc.org) has a web site. I guess what I'm saying, is if we only publish Linux documents in formats that Linux users and/or Linux gurus can use, how do we grow the user base?

Thanks for listening to the rant...

--
JCC

(I must admit to being a total Linux/UNIX person. Our office is a Linux shop and UNIX tools are what I have access to. I have never used Windows and have no idea what sort of files might be compatible with that system. I assume HTML is, so when you are at work, just download the TWDT file. Perhaps someone else knows a better answer. --Editor)


 Date: Thu, 22 Apr 1999 08:37:00 -0500
From: Dwain Hargrave, dwain.hargrave@udfc.com
Subject: www.linuxgazette.com

I like the changes you made to it. It look very good. Thought I let you know.

--
Dwain


 Date: Thu, 22 Apr 1999 00:49:46 -0800
From: Richard Mckinney, rmck@alaska.net
Subject: Not Linux

Replace the Explorer in the shell= statement of your system.ini file and watch those mouse addicts cringe in horror.

--
Rich


 Date: Sun, 25 Apr 1999 17:10:50 -0500
From: "Ronald E. Bloss", rebloss@swbell.net
Subject: re: KDE is bloated and slow

Hear, Hear.

I feel the same way. One very obvious example is running StarOffice 5.0. Under KDE, I thought it was really slow and would not have even considered using it. However, under just fvwm2 or another standard window manager, it is quite responsive. I was ready to throw StarOffice away until I tried without KDE.

--
Ronald E. Bloss


 Date: Wed, 28 Apr 1999 22:09:58 -0500
From: "Diane Gartner", dgwhiz@earthling.net
Subject: Linux people excluded

On Tuesday, April 27th, I stopped by the Ralph Nader/James Love "Appraising Microsoft" site, just to see what was up with their upcoming conference on April 30th. I found the pages outlining their agenda plus speakers.

At http://www.appraising-microsoft.org/ams2-panels.html, you'll find their Agenda, where the last panel supposedly covers...

Notice that NewDeal Office, which isn't an operating system, is listed there, while OS/2, DOS, Netware, QNX, etc. are missing. Secondly, the workshops don't actually discuss the other OSs in an detail; so even if those platforms are listed, they still have no representatives at the conference.

The same applies to Linux. If you check their list of speakers [URL below], you'll see that while the list includes CEOs from Caldera and RedHat, it has no corporate official from other software vendors, nor any independent Linux programmers, resellers, or user groups who could offer their own insights to the public.

This conference is much like their first one in Nov 1997. After so many of us had protested the first conference's mistakes and had asked for corrections to the A.M. site-- e.g. their handling of operating systems and user groups-- it's hard to just sit back and attribute this 2nd conference as some sort of "mistake" or "oversight" based merely on ignorance.

James Love isn't merely forgetting about the software and groups we care about. He simply doesn't _respect_ us and doesn't want to include us in his conference.

As he told me in a telephone conversation, "[not verbatim] "What have these user groups and programmers done? What remedies have these people ever proposed that would convince us they deserve to be included? We need people who have ideas, who know what they're talking about, who can speak...."

It's time to send him your answers to his questions.

Steps you can take:

  1. Go to the A.M. website, and check out the Speakers [http://www.appraising-microsoft.org/speakers2.html] and Agenda [http://www.appraising-microsoft.org/ams2-panels.html pages.
  2. E-mail a respectful complaint to James Love and Ralph Nader. Politely let them know that their conference should be open and inclusive to all OSs, user groups, developers, resellers etc..

    NOTE! If you yourself belong to a group that should be included, then give Love all the contact info he needs to reach you, so that you may be invited to his next conference. Insist on it. :)

  3. If you can telephone them, consider calling the A.M. contact person, Donna Colvin, at 202-387-8030, where James Love also can be reached.

--
Diane Gartner, IACT Co-ordinator
International Alliance for Compatible Technology, http://pages.cthome.net/iact/


 Date: Thu, 29 Apr 1999 19:11:31 -0700
From: "John F. Kohler", jkohler2@earthlink.net
Subject: Re: Something for very new beginners

I suggest a portion of your publication be devoted to really simple answere to very basic questions.

I have installed Red Hat Linux in an i486 computer, and have just picked up bits and pieces of how to connect to a modem, how to setup ppp configuration using the command line prompts, and how to start XFree86.

For old-time experienced Linux users, these must sound like very simple tasks, but from my ignorant state, they are like unclimbable mountains.

--
John

(Well, the way it works is you send your questions to me, I post them in the Mail Bag and then you get answers by e-mail. Copies of answers sent to me are posted in the 2 Cent tip section. We get a lot of basic questions so you could just search issues for keywords. (When the search works again--hopefully next week.)
Ron Jenkins series Linux Primer is really good for newcomers. He's done 9 installments now so go back and read the first one.
I hope you'll find answers in our mag. If not today, then send in your questions. I guarantee you'll get plenty of answers. --Editor)


Published in Linux Gazette Issue 41, May 1999


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


News Bytes

Contents:


News in General


 June 1999 Linux Journal

The June issue of Linux Journal will be hitting the newsstands May 14. This issue focuses on Standards with an article by Daniel Quinlan about what's happening with the Linux Standard Base Project and one in which the various distributions tell us how they feel about standards. Linux Journal now has articles that appear "Strictly On-Line". Check out the Table of Contents at http://www.linuxjournal.com/issue62/index.html for articles in this issue as well as links to the on-line articles. To subscribe to Linux Journal, go to http://www.linuxjournal.com/ljsubsorder.html.

For Subcribers Only: Linux Journal archives are now available on-line at http://interactive.linuxjournal.com/


 Open Source Modeller for Povray & AutoCAD forming nicely

Date: Thu, 29 Apr 1999 12:00:41 +1200

An Open Source 3D Modelling program using GTK is shaping up; it's called "Giram" (Giram Is Really A Modeller). Giram can already create scenes and provide a front-end to Povray, the clever part being that it both reads and writes Povray scripts - the only one that does that we know of. AutoCAD import and export filters are shaping nicely and we would like to include other formats too. Animation and post-production features are planned.

If you are interested, or would like to help create the free 3D modeller that Linux so badly needs, please visit the Giram website.

For more information:
http://www.minet.net/giram/


 LinuxGT Release Date Announcement / Drawing info

Date: Fri, 30 Apr 1999 08:40:56 -0500
LinuxGT is happy to bring you the OFFICIAL release dates for the LinuxGT CD and ftp. May 5th we will begin taking orders via telephone, web, and snail mail. May 10th we will begin shipping the LinuxGT CD with (1)Bootable CD, (2) Floppy Disks (One for graphical install without a bootable CD BIOS, one for non-VGA Installation), (1) Quickstart Booklet, and (1)Users Guide. We are STILL Taking pre-registrations, please see the note about the drawing below.

** DRAWING ** : Pre-Register, and you will be entered into the drawing for the FIRST PRINT CD of LinuxGT! Not only do you get LinuxGT FREE, but you get the very first package! (They are numbered sequentially). Hey, we'll even foot the shipping bill! Pre-Registration does NOT mean you are obligated to purchase.

To pre-register, simply visit http://www.greysite.com/ordering.html or http://www.greysite.com/ and click the links!

For more information:
Rick Collette, corick@bgosh.com


 Tripwire Expands into Japan

PORTLAND, Ore. - April 19, 1999 - Tripwire(tm) Security Systems, Inc. (TSS), a leading supplier of information security solutions, selected its first Japanese distributor today. The agreement with Tokyo-based Matsushita Inter-Techno Co. (MITC) will support and expand the growing Japanese demand for TSS' Tripwire(tm), the most widely deployed File Integrity Assessment (FIA) tool for the Unix platform.

For more information:
Matsushita Inter-Techno, Co. Ltd. (MITC) Tripwire Security Systems, http://www.tripwiresecurity.com/


 Sane Solutions Announces Alliance with HP

NORTH KINGSTOWN, RI - March 29, 1999 - Sane Solutions, LLC today announces an alliance with Hewlett-Packard Company to offer Sane Solutions' NetTracker Internet usage tracking software as part of HP's worldwide Covision Internet solutions program. Through the Covision alliance, Sane Solutions, HP and other Covision members will work together to deliver comprehensive Internet solutions to meet specific customer needs, including electronic commerce and other high value-added Internet solutions.

NetTracker is server-based software designed to analyze the traffic from multiple web servers, proxy servers, firewalls & FTP servers and provide companies with detailed information about their web site visitors, as well as their employees' use (or abuse) of the Internet.

For more information:
Sane Solutions,http://www.sane.com/ HP's Covision Program, http://www.hpcovision.com/


 Strategic Alliance Between Corel, KDE and Debian

Ottawa, Canada - April 21, 1999 - Corel Corporation (NASDAQ: COSFF, TSE: COS) today announced an alliance with two major Open Source developer communities to advance the development of its proposed Linux distribution; a user-friendly Linux installation and graphical user interface (GUI) for the desktop PC.

Corel and the K Desktop Environment (KDE) Project will be working together to enhance the KDE GUI for inclusion in the upcoming Corel version of Linux, aimed for the desktop user.

Corel will also build its desktop Linux offering around the Debian GNU/Linux distribution, which already has one of the largest installed bases in the Linux community, and is known for its stability and security.

With a recent alliance with Cygnus, which will provide Cygnus GNUPro software technology to enable Corel to move its market-leading productivity applications to Linux, Corel is firmly on track to deliver its proposed Linux distribution to the market by the fall. This will be in advance of its WordPerfect Office 2000 for Linux productivity suite and CorelDRAW 9 for Linux graphics application in the fourth quarter and beginning of 2000 respectively.

For more information:
Corel Corporation, http://www.corel.com/
The K Desktop Environment, http://www.kde.org
Debian GNU/Linux, http://www.debian.org/


 Linux Links

The High School Underground site: http://www.hsunderground.com/

Database of Linux resources: http://www.LinuxStart.Com/

Italian ``HOWTO book'': http://www.pluto.linux.it/ildp/

Comdex 99 Photos: http://www.bwill.net/comdex/

SoundPro Sound Card: http://home.gelrevision.nl/~h.wolter/CMI8330_Mini_HOWTO.txt


Software Announcements


 O'Reilly Guide to Learning Python Released

Date: Mon, 19 Apr 1999 12:53:03 -0700 (PDT)
Sebastopol, CA--O'Reilly has announced the release of a new beginner's guide to Python, "Learning Python" by Mark Lutz & David Ascher. Python is gaining in popularity as an object-oriented language for writing standalone programs, quick scripts, and prototypes of complex applications. Python is free, open-source, and easy to use. Python scripts are portable across many platforms, including all major Unix systems, Linux, Windows 95/98, Windows NT, and MacOS.

For more information:
http://www.oreilly.com/, order@oreilly.com


 HP Delivers 24x7 Worldwide Support for Linux...

PALO ALTO, Calif.--April 20, 1999--Hewlett-Packard Company today announced the availability of HP Linux support services, which provide customers with around-the-clock, worldwide support of Linux and HP Linux applications. HP's new support services include a maximum two-hour response-time commitment, and immediate response for critical calls, on multivendor Intel- based platforms. HP is mobilizing on all fronts to meet the anticipated strong demand for Linux systems, software and services.

For more information:
Hewlett-Packard Company, http://www.hp.com/


 Linux GNUPrO Tools for Intel's Future IA-64 Processors

SUNNYVALE, Calif., April 26, 1999 - Cygnus Solutions today announced it is working closely with Intel to optimize its industry leading GNUPro software development tools for Intel's future IA-64 Architecture, beginning with the Merced processor. With this announcement, Cygnus' market leading Linux tools now span all key Intel processors, beginning with the latest Celeron;, Pentium II and Pentium III processors, as well as high performance, low power StrongARM processors.

The GNUPro Toolkit for the IA-64 Architecture will be available from Cygnus when Intel's Merced moves into production in mid 2000.

For more information:
Cygnus, info@cygnus.com, http://www.cygnus.com/product/gnupro.html


 Arco Announces New IDE Backup Device DupliDisk

HOLLYWOOD, Florida (April 22, 1999) -- Arco Computer Products, Inc., www.arcoide.com, a leading provider of low cost IDE disk mirroring technology, today announced the DupliDisk-POS, a real-time backup device designed for small chassis PC users who want the security of a duplicate hard drive but not the high cost of a SCSI RAID system.

For more information:
ARCO Computer Products, Inc., arco@arcoide.com, http://www.arcoide.com/


 Programming with Qt Book Release

Date: Fri, 23 Apr 1999 09:48:58 -0700 (PDT)
Sebastopol, CA--Qt is an easy-to-use, multi-platform C++ GUI toolkit. With Qt, a developer can write an application once and run it on UNIX, Windows 95/98, and Windows NT platforms. Linux developers can acquire Qt for free (unless they wish to develop closed-source commercial applications in which case they must purchase a license). Now O'Reilly and Associates has published a book on Qt"Programming with Qt" by Matthias Kalle Dalheimer.

Qt's benefits are impressive, but the learning curve can be steep. Qt comes with excellent reference documentation, but beginners often find the included tutorial is not enough to really get started with Qt. "We felt there was a need for a book that guides you through the steps of writing a Qt application and presents all of the GUI elements in Qt, along with advice about when and how to use them, so that you can make full use of the toolkit." said Elke Hansel, Managing Director of O'Reilly Germany, "There's also lots of information for seasoned Qt programmers, including material on advanced 2D transformations, drag-and-drop, and writing custom image file filters."

For more information:
http://www.oreilly.com/, order@oreilly.com


 Penguin Computing Announcement

San Francisco, CA - April 1 - Penguin Computing, Inc., the nation's largest and fastest-growing company focusing exclusively on turn-key Linux solutions, announced today that it now begun offering Linux-based computer systems that use AMD K6 series processors from Advanced Micro Devices Inc.(NYSE: AMD). These desktops, servers and workstations offer all the reliability of a Penguin system with the speed of an AMD K6 series inside. To mark the expanded offering, Penguin is pricing systems featuring high performance AMD processors extremely aggressively, starting at just $990.

For more information:
Penguin Computing, http://www.penguincomputing.com/


 Linux Announcements from Dell and Red Hat

ROUND ROCK, Texas--April 26, 1999--Dell Computer Corporation, the world's leading direct computer systems company, today announced it plans to factory-install the new Red Hat Linux 6.0 operating system on select, "Red-Hat Ready" certified configurations of its PowerEdge(R) servers, Dell Precision(tm) WorkStations and OptiPlex(R) business desktop computers.

Dell is also the first company to receive multiprocessor certification from Red Hat for its four-processor PowerEdge 6300 enterprise server and its dual- processor Dell Precision WorkStations. Dell will offer the new Red Hat software factory-installed on configurations of its PowerEdge 1300, 2300, 4300, 4350, 6300 and 6350 servers; Dell Precision 410 and 610 WorkStations; and OptiPlex GX1 and GX1p desktop PCs.

Red Hat Linux 6.0, which was announced by Red Hat today, adds symmetric multiprocessing support for up to four processors and other new features to deliver improved performance and reliability in enterprise and Internet applications that run the day-to-day business of companies worldwide.

For more information:
Dell Computer Corp., http://www.dell.com/products/poweredge/linux/ Red Hat Software, http://www.redhat.com/


 Linux Announcements from IBM, Red Hat and Caldera

SOMERS, N.Y.--April 26, 1999--IBM today announced its award-winning ViaVoice speech recognition technology is available for the Linux operating environment. ViaVoice is the first commercial speech recognition technology to be ported to the Linux environment.

IBM's initial Linux offering will include a beta version of IBM ViaVoice Software Developers Kit (SDK) for Linux, IBM ViaVoice Run Time Kit for Linux and open source sample applications. These technologies provide the foundation for application developers to incorporate speech recognition technology into the next generation of applications. The initial beta version of ViaVoice engine and SDK for Linux is available in U.S. English. Red Hat Software will be the first to distribute IBM's speech technology as part of the company's Linux 6.0 Application CD(a), also announced today. In the coming months, IBM plans to extend its ViaVoice for Linux offering to support a variety of languages, additional content and distribution channels, including Caldera Systems.

In addition to offering its ViaVoice SDK and engine for Linux, IBM will host a Web site for new technology downloads and a discussion group for technical information and collaboration with fellow developers. For more information about these services, visit IBM at http://www.software.ibm.com/speech/ and select "Linux."

For more information:
IBM Speech Systems, http://www.software.ibm.com/speech/
Red Hat Linux, http://www.redhat.com/
Caldera Systems, http://www.caldera.com/


 Official Red Hat Linux 6.0

Durham, N.C.--April 26, 1999--Red Hat=AE Software, Inc., a developer and support provider of the Linux operating system, today announced Official Red Hat Linux 6.0. This major new release of the award-winning Red Hat Linux server operating system (OS) adds symmetrical multi-processor support (SMP) for up to four processors and many other new features to deliver tremendous horsepower and reliability for the most demanding enterprise and Internet applications running the day-to-day business of companies worldwide.

Red Hat Linux 6.0 includes the new Linux 2.2 kernel. The new kernel supports more hardware and improves the overall performance of the Linux OS. The Red Hat Package Manager (RPM) is freely available under the GPL license and automatically installs and updates the various pieces of the Linux OS and lets systems administrators easily distribute Linux across the enterprise.

Red Hat Linux 6.0 has pricing options available from $39.95 to $79.95. It can also be downloaded from ftp.redhat.com immediately.

For more information:
Red Hat Software, http://www.redhat.com/


 Linuxcare and Terra Soft Solutions

Linuxcare Inc. --the first company to provide complete technical support, consulting, education and product certification for Linux--recently joined forces with Terra Soft Solutions, developers of Yellow Dog Linux (www.yellowdoglinux.com) for Apple Macintosh PPC and G3s, to provide enterprise-class support for Yellow Dog Linux solutions.

Linuxcare draws from a worldwide network of Linux developers and experts to offer 24 x 7 Linux support services. Known for its vendor-neutral support of Linux software offerings, Linuxcare adds Yellow Dog Linux to the roster of major Linux distributions supported by the firm's per-incident, Bronze, Silver, Gold, and Platinum technical support packages. Yellow Dog Linux offers a compelling solution for Macintosh environments looking to adopt the proven OS platform: Linux.

For more information:
Linuxcare, Inc., http://www.linuxcare.com/
Terra Soft Solutions, Inc., http://www.terrasoftsolutions.com/


 Linux Announcements from Pacific HiTech

Date: Thu, 29 Apr 1999 07:18:46 -0700
Pacific HiTech is the first major Linux company to ship a general purpose Linux server package, TurboLinux Server. TurboLinux Server, to be released for general shipment in North America in June, is now available in Japan. Pacific HiTech has already shipped more than 30,000 copies through systems integration, retail, and magazine bundle distribution channels.

TurboLinux Server makes it easy to install and administer a Linux server to a server on a company's web site, e-mail, file and print serving and FTP. The installer also performs automatic partitioning and offers different Linux kernel types from SMP (more than one processor) to APM (advanced power management). In addition, it features built-in virus and security protection. Bundled with TurboLinux Server is commercial backup software as well as drivers to support the most popular server RAID and UPS solutions.

Pacific HiTech will also announce that it is the first major distributor of Linux in Chinese, having shipped more than 110,000 units of TurboLinux to date to the People's Republic of China.

For more information:
Pacific HiTech, http://www.pht.com/


 PowerQuest's Lost & Found

Johannesburg, 3 May 1999 - The Chernobyl virus, which was responsible for destroying data from thousands of hard drives throughout the world, has proven just how powerful PowerQuest Corporation's data recovery tool Lost & Found can be when facing damaged data. People throughout the world are using Lost & Found to retrieve files from their Chernobyl-infected computers and, in all known cases, have recovered 100 percent of the lost, deleted or corrupted data. Search & Rescue, the enterprise version of Lost & Found, is also being used to help businesses recover from virus infections. Both products are available from Johannesburg-based software distributor OS/2 Express SA.

Lost & Found is a fast and easy way to restore lost data on your PC. Lost & Found automatically recovers and restores data after virus infection, accidental (or intentional) data loss, a disk crash or logical system failure. As long as the disk is still spinning, Lost & Found can locate and recover almost any lost file for FAT and FAT32. In addition, Lost & Found does not need to be installed prior to data loss.

OS/2 Express SA markets utilities, tools and applications for Windows, OS/2 Linux and Netware, including all PowerQuest products, as well as Linux distributions, including RedHat, SuSE, OpenLinux, Slackware, TurboLinux, Mandrake, Debian, FreeBSD and LinuxPro

For more information:
Power Quest, http://www.powerquest.com/
OS/2 Express, os2express@icon.co.za, http://www.os2.co.za/software/


Published in Linux Gazette Issue 41, May 1999



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


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


(?) The Answer Guy (!)


By James T. Dennis, answerguy@ssc.com
LinuxCare, http://www.linuxcare.com/


Contents:

(!)Greetings From Jim Dennis

(?)Here's a shell scripting question for you. --or--
How to Make a Shell Script "Unbreakable"
(?)Best Place to "Download Linux"
(?)How to Build Own Linux Distribution ? --or--
Building a Personal Distribution: Take II
(?)"core" files appearing here and there --or--
Dealing with "core" files
(?)Xterm and "Log to file" --or--
Flexible Logging of Terminal Output to Files: Use 'screen'
(?)file timestamp off Got it !
(?)

(!) Greetings from Jim Dennis


(?) How to Make a Shell Script "Unbreakable"

From Nick Moffitt on Mon, 29 Mar 1999

(?) How do I get a shell script to ignore ^C and ^Z?

"The software is intended to be as unobtrusive, unintrusive and unconstraining as possible. In software as elsewhere, good engineering is whatever gets the job done without calling attention to B itself."
-- Cynbe ru Taren, on Citadel (http://zork.net/cit/citadel.txt)

(!) Well, with limitations you can do it with the following:
trap ""  2  20
As in this simple script example:
#!/bin/bash
trap ""  2 20
B
while : ; do
	echo -n .
	sleep 1
	done
All I'm doing is setting the INTerrupt and terminal stop signal handlers to a null string (to ignore [Ctrl]+[C]) and [Ctrl]+[Z]).
The rest of the script just prints an endless stream of dots at one second intervals to give you a chance to play with the keyboard.
You see, your default terminal settings "cook" the [Ctrl]-[C] into a SIGINT (generate a interrupt signal to the foreground task) and [Ctrl]-[Z] to a SIGTSTP. The default signal handlers for these "cancel/exit" and "suspend" respectively.
This technique will also prevent 'kill -INT' and 'kill -TSTP' from having their normal affect on these processes.
You could also do something like this using
		stty susp 0 intr 0
... which merely changes the terminal settings so that these keystrokes are no longer "cooked" into their usual signals.
I believe that these tricks are inherently subject to race conditions (there is a finite and "exploitable" amount of time between the start of the script's execution and the time that these commands have their effect.
So I think that they should not be used in any attempt to provide security through some notion of an "unbreakable" shell script.

(?) Best Place to "Download Linux"

From Dan Gibson on Mon, 29 Mar 1999

(?) Hi:

I'm looknig for the best place to download Linux from the net. And also any accompanying documentation. Can you point me in the right direction? Thanks

Dan Gibson

(!) The best place to download Linux (the kernel) is http://www.kernel.org or if you are in the U.S. try ftp://ftp.us.kernel.org. The latter of these will connect you to one of over a dozen U.S. mirrors of the kernel archives. There are numerous other regional sets of mirrors so you can connect using ftp://ftp.XX.kernel.org where XX is your country's two letter ISO code.
I realize that this answer might be considered disingenuous. You probably meant to ask where you can download a full Linux distribution. This includes much more than the kernel --- and involves getting dozens of FSF GNU packages, XFree86 and other packages.
A typical Linux distribution fills a full CD, or several. So it's often not practical to "download" Linux. It's generally much cheaper, quicker and easier to buy a set of Linux CDs (http://www.cheapbytes offers them for as low as three or four bucks, U.$.)
It's also possible to download a Red Hat boot diskette and install the entire distribution over the Internet. Basically you boot it up, configure it for your Internet connection, and point the install script at a suitable mirror of the Red Hat FTP site. I won't describe that in great detail (search the LG archives, I think I didn't go into more detail a few months ago). However, I don't recommend this method. It is slow and unreliable (and will keep your modem busy for a couple of days if it works).
Using the Debian GNU/Linux distribution you download a base set of about 6 diskettes, install those (one of them is a boot diskette, naturally). That base distribution is sufficient to install the rest. It's still a pretty geeky process and NOT recommended for newbies.
As for "accompanying documentation" --- all of the "official" documentation for Linux is linked off of the LDP (Linux Documentation Project) web site:
LDP
http://www.metalab.unc.edu/LDP
... that's the best source of info on the subject.
So, in summary, you need to pick a distribution first. Take a look at the Linux Online list of distributions (http://www.linux.org/dist/index.html) for starters. For those that can be "downloaded" look at their FTP Sites (http://www.linux.org/dist/ftp.html).
That should get you going.

(?)

From Dan Gibson on Thu, 01 Apr 1999

Dear Jim:

Thanks for all your advice. I checked out the sites, and then looked around locally. I am in the Middle East, so it is hard to find things, but I did find a pirated copy of Red Hat 5.1 CD that I had to pay $20 for, but I am ready to get up and running. Installing this thing is rather hard! I hear Corel is going to produce a more friendly version! I hope that once it is installed it will be easier to run than the installation process is!

Thanks again for your help.
Dan Gibson
Jordan

(!) I wouldn't worry about its being "pirated" --- it's perfectly legal to duplicate most Red Hat CDs (according to their license). There are companies besides Red Hat that distribute the Red Hat Linux distribution (including Cheapbytes http://www.cheapbytes.com) and there are derivatives of Red Hat, like Mandrake. These start with the Red Hat distribution and add their own packages (like KDE which Red Hat Inc refuses to ship with their distribution for their own reasons).
For now Red Hat is probably the easiest to install on most PCs. I don't know how long it will take Corel to come up with their OS offering.

(?) Building a Personal Distribution: Take II

From Seymour Cakes on Mon, 29 Mar 1999

(?) I know building a personal distribution is no two or three paragraph thing, but I really want to know how to do it. Won't it be nice if anybody can have a personal distribution of their own.

(!) It is nice that anybody can have their own personal distribution. But what does that MEAN!
If you take Red Hat, add a couple of your favorite packages (RPMs from it's contrib directory, for example and may some crypto RPMs from Replay http://www.replay.com) ... is that a new distribution?
Mandrake is derived from Red Hat. I haven't used it personally but it seems that they've added a significant amount of additional work.
At what point is something sufficient divergent that you would call it a new distribution?
It's a moot question.
There's no "how to do it" because you can't clearly define "it."
What I would call a "new distribution" would take an immense amount of work and expertise (beyond my own).

(?) I would be more than happy if anyone could send some links or pointer or something.

(!) Start with the LDP (http://www.metalab.unc.edu/LDP) After you've read EVERYTHING there you'll have a good idea of "how to do it" (for almost any concievable "it" in the Linux world).

(?) Sey.


(?) Dealing with "core" files

From Joe Newby on Thu, 01 Apr 1999

(?) Dear Answer Guy:

Love your column, it has given me a lot of information. I've been using Linux for a while, and I have set up two Linux machines at work for shared Internet access plus I run Linux exclusively at home, so I'm somewhere between "newbie" and "guru". I have a question, maybe it's a stupid one, but it's bugging me anyway.

Periodically, I see files named core appearing here and there throughout my filesystems. One just showed up in /etc/X11 directory. They range in size from 400K to nearly 2MB in size. Looking at them with Midnight Commander reminds me of reading the old DOS .EXE files, as they all seem to start with "ELF".

What are these things, and can they be safely removed? I should point out here that I do experiment with different window managers and sometimes X windows has crashed intermittently. Are these a result of those crashes?

Thanks for your input - I look forward to hearing from you. Joe

(!) A "core" file is a snapshot of a process' memory state just prior to its abnormal termination by the system. It's an image of the program's "core" which is an old term for RAM dating back to a time when computers actually used little ferrite "donuts" suspended in a wire mesh for their memory and storage. These can be used by programmers for post-mortem analysis, clues as to what caused the failure.
core files can be generated any time one of your programs crash for just about any reason. Most of us mortals just delete the things.

(?) Flexible Logging of Terminal Output to Files: Use 'screen'

From Phillip Nguyen on Thu, 01 Apr 1999

(?) Hi,

The Linux xterm does not give me the option to log the screen to file in the pop up windows (Ctrl-leftbutton).

I know I can use script to log the screen, but that means I have to get out of telnet run the script program then run telnet again. My problem is I don't want to log the whole session, I only wants part of the session here and there to do debugging. Is there a way that I can make Linux xterm to give me the "Log to file" option in the pop-up window.

Thanks. Phillip.

(!) Use 'screen' --- you'd start that before you start your 'telnet' session (assuming that you want to log to a file on your local system).
'screen' has a number of nice features for users of consoles, telnet, dial-up terminals, and xterms. When you start it, 'screen' reserves one key ([Ctrl]+[A] by default) as a way to access it's many options. Of course you can set that meta key to some other value. I'll refer to it in the following text as [Meta]
You use [Meta],[H] (upper case) to start logging. This will create a file, in the directory from which you started 'screen' named screenlog.0 (the first time you start one). You can toggle this on and off (and it will close and reopen the file as appropriate). Actually the "Hardcopy" file will be named screenlog.N where N is the number of the window from which you started the logging. 'screen' allows you to start multiple interactive "windows" or "screens" through the same terminal connection (xterm, on the same virtual console, whatever). You can do this using [Meta],[c] to "create" additional screen sessions.
You can switch among screens (using [Meta],[Meta] to switch to the most recently used screen, [Meta],[Space] to cycle to the "next" screen, and [Meta] followed by a digit, to switch directly to one of the screens). You can "grab" a screen shot using [Meta],[h] (lowercase "H").
You can detach 'screen' from your terminal (all jobs started through it will continue running as though they were still connected to your terminal). You can then re-attach to any terminal you like. So you can detach from your xterm, logout, dial or telnet in from some other place, and re-attach to your 'screen' session where you can continue working right where you left off. (I'm running xemacs under 'screen' right now). 'screen' can also be configured to "autodetach" --- which is handy if you are logged in through a flaky modem or network connection. You just log back in and re-attach with the command 'screen -r'
You can also cut and paste using 'screen' keyboard bindings. So you use [Meta] "[" (left bracket) or [Meta],[Esc] (escape), to get into "cut/backscroll" mode. Then you use cursor movements (mostly like 'vi' bindings by default) to move your cursor to a starting location (on the screen or somewhere in 'screen's backscroll buffer). The you hit the space bar to start marking --- move you cursor to some later location and hit the space bar again to "cut/copy" the intervening text. You can then use [Meta]"]" (right bracket) to "paste" that text (which will act exactly as though you'd retyped it). This cut and paste feature can be very handy when you can manage to log into a system where you don't have any file transfer capabilities. You can at least cut and paste bits of configuration text to get things working on the remote system. It's also handy when you have something in one text mode app that you want to put in an editor. (I use it all the time to copy link information from Lynx, my web browser, into xemacs (my mail reader is an emacs mode, mh-e).
So, 'screen' is the power tool you need for this job.

(?) file timestamp off Got it !

From Ted Potter on Thu, 01 Apr 1999

Jim -

Thank you! by setting the TZ variable to UTC the time/date stamp on files is now correct. Thank you for the detailed and accurate response.

I appreciate the time and effort you put forth in your response. I certainty did not expect my question to involve such a extensive solution.

Once again both Linux and the people involved with it come out shining.

Sincerely, Ted "TZ" Potter

Linux: because a PC is a terrible thing to waste

(!) I wouldn't be able to spend as much time on these if I wasn't assured that they'd get published so that these answers get to everyone who wants to search the web for them.
That's why I spend a bit of extra time on them. I take a few questions a month and put lots more into them than I do into the rest. That's to help everyone ELSE that's going to ask the same sort of question.
I learn quite a bit from the research I do to answer these questions and to find interesting and relevant links to embed in the answer.


Copyright © 1999, James T. Dennis
Published in The Linux Gazette Issue 40 May 1999

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


More 2¢ Tips!


Send Linux Tips and Tricks to gazette@ssc.com


New Tips:

Answers to Mail Bag Questions:


motd $0.02 tip

Date: Tue, 27 Apr 1999 01:53:44 PDT
From: primes, primes@hotmail.com

For many Linux home boxes, the message-of-the-day file (/etc/motd) serves no real purpose. I've instead used it to display ascii art, something like a splash screen, which changes every hour. i've found this to be a welcome change from the normally blank motd at each login, at least visually.

Just create a new directory, say /etc/splash and dump all your ascii art files there. next as root, add an hourly cron job with the following script. This script cycles through each ascii file alphabetically and the sed command works using gnu sed. Different versions of sed might require slight changes.

#!/bin/sh
# Different splash screens (motd) every hour.

cd /etc/splash/

[ -f .splash ] &&
SPLASH=`/bin/cat .splash`

[ -z "$SPLASH" ] ||
[ ! -f "$SPLASH" ] &&
SPLASH=`/bin/ls | /bin/sed -n '1p'`

/bin/cp "$SPLASH" ../motd && {
    /bin/ls | /bin/sed -n '1h;/^'$SPLASH'$/{${x;p;q;};n;p;}' >.splash
}
You can also replace the ascii files with more informative motd files to be displayed each day of the week by issuing daily cron jobs instead of hourly. This can be done for example to remind me of the things i'm supposed to do for the day.

--
primes


IP Addresses

Date: Mon, 26 Apr 1999 02:52:34 +0000
From: Allen Grace, a.grace@mailbox.uq.edu.au

In your New Tips section you've published a tip describing a method of finding the IP address for a PPP session with a Perl script.

There is a simpler way, which you may like to append to his tip. Under bash:

IPADDR=`/sbin/ifconfig | \
        grep P-t-P | \
        awk 'BEGIN{FS=" "} {print $2}' | \
        awk 'BEGIN{FS=":"} {print $2}'`
And then you do whatever you like with $IPADDR.

This will work for the same ifconfig output as the gentlemen who submitted the Perl script.

N.B. There are formatting issues here. The command list must be enclosed in backquotes, but the font used for Netscape mail doesn't seem to have a backquote character, as it has substituted the forward quote.

Cheers and many thanks for the enjoyable reading.

--
Allen


Tips in the following section are answers to questions printed in the Mail Bag column of previous issues.


ANSWER: LG39 - Dodgy Hard Drive

Date: Tue, 20 Apr 1999 17:11:59 +0200
From: Nick Brown, Nick.BROWN@coe.fr

hda: SAMSUNG SV0644A, 6105MB w/490kB Cache, CHS=778/255/63, UDMA hdb: FUJITSU MPC3064AT, 6187MB w/0kB Cache, CHS=838/240/63, UDMA hdc: ST34321A, 4103MB w/128kB Cache, CHS=8894/15/63, UDMA

I hit a related but different problem after a BIOS upgrade, which led me to the kernel sources. There is a routine in there which gets old-style (lots of heads, fewer cylinders) info for the first two HDs only. If you have partitioned the disk with, say, FDISK, or possibly even with Linux when it was hda, then you will have old-style head/cyl counts in the partition tables. You'll probably find that fdisk, lilo, etc, are complaining about your disk's geometry as well.

One possibility is to try booting with the kernel option hdc=<c>,<h>,<s> - see the BootPrompt HOWTO. Another might be to completely zap the disk (writing 512 zeroes with dd to /dev/hdc should do it) and repartition it under Linux.

In my opinion, this "extra" treatment of just hda/hdb is a bug - the system should work out the "old-style" geometry of all the IDE drives in a consistent manner. Mark Lord, who maintains much of the IDE code, thinks that the old-style init code should be junked for 2.3.

I patched my kernel to fix my problem (which was causing the CHS numbers for hda to be overwritten by data for a SCSI drive), but it wouldn't work for yours. You might try editing ide.c in your kernel source tree and reducing the routine probe_cmos_for_drives() to an empty pair of {} braces.

--
Nick


Linux, PalmIII, and Email

Date: Tue, 20 Apr 1999 13:35:02 +0100BR From: Stephen Crane, scrane@flexicom.com

Hi Mark,
If you have sendmail set up correctly from your Linux box to your ISP, the process should be transparent. When you sync email from the Palm (using PilotManager http://www.moshpit.org/pilotmgr/) it transmits the email from the Linux user-id (i.e., the user-id under which you ran the sync) via sendmail or whatever MTA you've configured.

Hope this helps. If you need help on setting up email to your ISP, have a look at the Mail HOWTO. If you have to, there are very few lines in the standard /etc/sendmail.cf (from RedHat) which need to be changed. Cheers,

--
Steve


Uninstalling Software

Date: Wed, 21 Apr 1999 12:43:01 -0400 (EDT)
From: olaf.greis@iname.com

Have you had any articles on uninstalling application software in Linux.

There is no such thing as a generalized uninstall method in linux. it really depends on the way you installed the software.

Two widespread package formats (.deb and .rpm) come with their own install utilities which are also able to uninstall packages. Please see your system documentation (or manpages) on the various options these installers offer.

If you just installed from a .tgz (or .tar.gz) archive containing the binaries your mostly lost, since tgz offers no uninstall mechanism at all. All you can do is watch the system at installation time and manually remove the files.

If you compiled the sources by yourself make sure to keep a copy of the makefile, since recent applications often come with a 'make uninstall' directive. If you don't have the makefile or the makefile doesn't offer a uninstall option your just as lost as with a .tgz binary

--
olaf


KDE - so what?

Date: Fri, 23 Apr 1999 08:49:26 +0100
From: Derek, fountai@hursley.ibm.com

Lou,

Am I just being obtuse, or does KDE feel like a heavy, bloated, resource-intensive desktop environment? If that's what I wanted, I would stay with M(I'm sorry, I can't say the word)t. Features and benefits be damned, FVWM2 comes real close to the type of responsiveness I feel should be expected of the desktop ... KDE doesn't even come close.
You're not being obtuse, but you are missing the point. KDE comes in pieces, so if you don't want a particular feature bloating up your system and hogging your resources, comment it out of the startup script. Don't need the sound manager? Switch it off. Don't want the background manager? Switch it off. Don't need the panel? Switch it off. Of course, if you do that, you won't be using KDE anymore, and you won't get the benefits of the environment.

The "GUI tax" is something you have to pay if you want as nice environment. Pretty pictures and sounds cost memory, disk space and CPU time. With Linux and KDE you have a choice. Some would say that Fvwm2 is a complete resource hog, and why can't we all just use a CLI from a console? We can, but you don't have to. You pays yer money and takes yer choice. On this platform at least, that's an option, only you don't have to pay any money.

And WHY hasn't anyone else complained? At least, not in a forum that I've been aware of. Is it that everyone is so enamored of the acceptance that Linux has been getting that they are afraid to rock the boat?
Because everyone else just makes a simple decision. "Does this do what I want at a cost I'm prepared to pay?" If it does, they use it. If it doesn't, they use something else which better matches their needs. Linux isn't about complaining. It's about solving problems. If you can write a desktop environment which does all the nice things KDE does within the resource constraints matched by Fvwm2, I'll use it.
On the other hand, I suppose that we (the Linux user community) feel like we can pass this KDE thing off as a ready replacement for W(I'm sorry, but I can't say that word, either)s, given that it is so slow and bloated that W(you know)s users will feel right at home. Yeah, that's the ticket, we'll make 'em feel right at home.
Nope, we're just offering another solution to user's problems. It might be, in your opinion, another slow, bloated solution, but it's faster than Windows, more stable, open source and free of charge. It suits a lot of people. If it doesn't suit you, fine. Use something else. No need to moan about it...

--
Del


What is a *.ajr file?

Date: Fri, 23 Apr 1999 00:44:35 +0200
From: Steve Crane, tux@datapro.co.za

Hans Jensen replied to an erlier 2c tip:

I think what you see here is the result of Win98 stumbling over a filename with multiple periods in it. I get a similar result on Win95, as well as on Win-NT4.0, only the name in my case is mangled into xxx_tar.tar. So when you have the dialog for the download on screen, you can simply change the name into something like xx.tgz, which is unpacked by e.g. WinZip with the same ease as if it were a real ZIP file. Note for LG: maybe this would be an alternative for the names you use on the website?
This appears to have been a bug in one of the Internet access components used by Windows. The error occurred in files downloaded from both Internet Explorer and Netscape.

However, the bug appears to have been corrected as I have not seen file names being broken on downloads from either browser since I have installed Internet Explorer 5.

--
Steve


CD Autoloader

Date: Wed, 28 Apr 1999 19:16:32 +0000
From: Francois Desarmenien, desar@club-internet.fr
I have Caldera OpenLinux 1.2 with 2.2.5 kernel installed. I need to know if the NEC 4X6 CD changer is supported under Linux, and so how do you set up Linux to access the 3 other platters?
I'll suppose NEC 4x6 CD changer is an SCSI device.

If it is, it is made of two distinct SCSI devices:

  1. A cdrom player
  2. A medium changer robot
which share the same SCSI id with 2 distinct LUNs.

Here is my idea (maybe it will require some hack, but maybe not):

Leonard N. Zubkoff ( lnz@dandelion.com ) wrote a piece of software that d rives a medium changer robot for DDS tape loaders. It is called MTX and can be found at www.dandelion.com/Linux . Works as a breeze.

As the notion of "medium changer devices" is well defined and very generic in SCSI RFCs, I suspect the SCSI inquiries for the cdrom changer should be very close to tape changer ones, so this code could probably do the job.

Unfortunatly, I have no such cdrom changers, so I haven't tried it. But I'm sure it is worth the test.

--
Francois Desarmenien

Re: CD autoloader

Date: Thu, 29 Apr 1999 09:47:54 PDT
From: "Trenton Hergesell", lethalbyte@hotmail.com

I should have added that it is an ATAPI compliant device ( IDE Primary channel, Slave drive). Thank you for your response. I have recently upgraded to Caldera 1.3, but I am having problems upgrading the Kernel.

--
Trenton


RE: Problem with the proxy

Date: Thu, 22 Apr 1999 12:41:19 -0500
From: "Nicholas R LeRoy", nick.leroy@norland.com

The socks5 package can be found at www.socks.nec.com. It works quite well. Linux is well supported, as well.

--
Nick


Re: what is my dialup (ppp) IP number?

Date: Sat, 1 May 1999 19:10:40 +1000
From: Matthew Hawkins, matt@mail.goldweb.com.au

pppd passes this to the ip-up script as the 4th argument.

man pppd.

--
Matt


Published in Linux Gazette Issue 41, April 1999



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

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


Breaking Into Your Own System

By Mark Nielsen


Hello!
If there are any changes to this article, it will be located at http://www.tcu-inc.com/mark/articles/Breaking.html.     This brief article is just my easy way to break into my own system if I screw up the root password. There are much easier ways to do it, but this can also be used if you cannot log into your system if a configuration file is messed up.

Okay, this isn't a Linux independent OS solution. I use a bootable cdrom that I got from www.cheapbytes.com which is a cheapbytes version of the RedHat 5.2 cd.

For this documentation, I am going to assume the computer is partitioned in the following manner:
    /dev/hda1        swap partition
    /dev/hda2        root partition for Linux or "/"
    /dev/hda3        DOS partition (yes, I know, it is scary to put nasty software on the same hard drive as Linux)

/dev/hda2 means we are using the master hard drive on the primary IDE controller and root is on the 2nd primary partition on the hard drive. If your root is on the first primary partition, it would be /dev/hda1.

Here are the steps I use to hack into my own computer.

1. Make your system bootable off of the cdrom in your computers BIOS. If your computer doesn't support booting off of the cdrom, then you will have to figure out how to do it with bootable floppy disks. For me, I just want to use what is the fastest and easiest method, and so, I boot of off cdroms. I haven't booted off of a floppy drive in ages.

2. Put in your cdrom into your cdrom drive and turn on your computer.

3.  Pretend to go through the installation of RedHat 5.2, and after it asks you to put in the cdrom and it gets to next screen, you can now goto the second console window.

4. Press Alt-F2, Alt-F3, Alt-F4, Alt-F5, and then Alt-F1. You should see various screens with different messages. The one we are concerned about is Alt-F2.

5. Okay, press Alt-F2.

6. Type "cd /tmp" and press enter.  This takes us to a directory where we can make files, directories, etc.

7. Now we need to make a temporary directory and a temporary device for the partition on the hard drive that we want to look at or edit. Type in the following commands
            mkdir /tmp/my_dir
            mknod /tmp/my_dev b 3 2
            mount /tmp/my_dev /tmp/my_dir
            df

8. "mkdir" makes a directory for us to mount the a partition to.
    "mknod" makes a device for 2nd partition on the master hard drive. This lets us "see" the partition.
         In particular, "b 3 2" means the following. "b" is for block device. "3" is the master hard drive on the
         primary IDE controller on your computer. "2" means the second partition.
    "mount" takes the device we can "see" and puts it on top of the directory "/tmp/my_dir"
    "df" just lets you see what file systems are mounted and where they are mounted to.

Now, for our example, we could either edit the password file or perhaps do something simple like turning off xwindows from starting up if you have your computer set to use xdm. Let's do the xwindows example.

10. Do the following steps:
      cd /tmp/my_dir/etc
      vi inittab

11. Now you need to know how to use vi which is a fantastic editor, but it is a pain to learn. Here are some simple commands in vi.
    "x" deletes a character.
    "i" makes it so you can insert letters or characters.
    "Esc" turns off inserting characters.
    "wq!"  writes, quits, and ignores any problems with read only files.
    "h" moves one character to the left
     "l" moves one character to the right
     "k" moves up one line
      "j" moves down one line

12. Now, go down to the line which should have something that looks like
      id:5:initdefault:

     Delete the "5" by positioning the cursor at the "5".
     Press "x".
     Press "i" to insert a number. Press "3".
     Press the "Esc" key.
     Type "wq!" and press enter.

13. Now you are done editing a file! What is the problem now? If you reboot you will most likely loose all of your changes. You must unmount the directory and then reboot.

14. Do this
        cd /tmp
        umount /tmp/my_dir
        df

15. Now Press Crtl-Alt-Del to reboot. Also, take your cdrom out of the cdrom drive. When your computer restarts, I would recommend having your BIOS boot off of the hard drive instead of a CDROM.

That is it! You can also use this method to change the password file and do other stuff.

Naturally, having a password in your computers BIOS would be ideal. If you haven't physically secured your computer, then anybody can do this to the computer. Even if you put a password in the BIOS, someone could always take out the hard drive by taking apart the computer.

-------------------------------------------------------
Mark Nielsen            "Where 98 has no meaning."
www.tcu-inc.com                 sales@tcu-inc.com
The Computer Underground, Inc.  614-485-0506
computers, programming, networking, Perl, PHP, SQL, HTMl, Linux, Unix


Copyright © 1999, Mark Nielsen
Published in Issue 41 of Linux Gazette, May 1999



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


Compiler Construction Tools

By Richard A. Sevenich


Part II: Installing JFlex and CUP - Specific Instructions

by Richard A. Sevenich, Department of Computer Science
April 26, 1999

This is the second of a series whose first article appeared in the April, 1999 issue of Linux Gazette. [see:  Compiler Construction Tools, Part I ]. The traditional example, the calculator, is provided in Part III, which is intended as a companion to this part and also appears in this issue.

0.0 Background

The JFlex and CUP software packages come with installation instructions. These are well written and straightforward. Nevertheless this document was written to give a very specific installation scenario. In the author's experience, this specificity can be useful to certain new users who find the generality and flexibility of less specific installation instructions somewhat difficult upon first exposure. The downside is that this specificity takes away flexibility.

These instructions are intended for use with a Linux box, with bash as the default shell and with the tcsh also installed, but not as default. It is assumed that the user has a version of jdk (Java Development Kit), or some equivalent, installed already. If not, you can find such at www.blackdown.org/.    In the system used by the author, the compressed tarball of jdk1.1.5-v5-glibc.tar.gz from blackdown was downloaded into /usr/lib and exploded there.

The author would appreciate corrections and constructive suggestions. He can be contacted at:  rsevenich@ewu.edu

1.0 System Preparation

Note that the specific choices made in this section are arbitrary. For starters, it is assumed that you have logged into your home directory, say, /home/jsmith. All paths will be relative to that position within the file hierarchy. Make new directories as follows:

> mkdir javatools
> mkdir javatools/CUP

Next revise your .bash_profile and .bashrc files to have the needed java CLASSPATH etc. Here are some example lines:

JAVB=/usr/lib/jdk1.1
JAVT=/home/jsmith/javatools
CLASSPATH=./:$JAVB/lib/classes.zip:$JAVT/JFlex/lib/JFlex.jar:$JAVT/CUP
PATH=$PATH:$JAVB/bin:$JAVT/JFlex/bin
export PATH CLASSPATH

Note: The directory /usr/lib/jdk1.1 is meant to denote the site of the java files exploded from the blackdown tarball. In the author's case it was a symbolic link to /usr/lib/jdk1.1.5v5-980311/.

For these changes to take effect you must log out and log back in.

2.0 JFlex

2.1 Obtaining JFlex

JFlex is available from  www.informatik.tu-muenchen.de/~kleing/jflex/index.html#Download
in a tar.gz format. At this writing the file name was 'jflex-1.2.tar.gz'. This tarball includes an extensive manual with its own installation instructions.

2.2 A Specific Installation Scenario

This will create the directory 'JFlex' with associated subdirectory hierarchy. It should contain everyting needed, including documentation in the 'doc' subdirectory. The manual found there is comprehensive and indicates how JFlex can be used to produce stand alone lexical analyzers (as in the example in section 2.3, below) or lexical analyzers to be used with parsers produced by other utilities, such as CUP. In directory JFlex/bin you will find the shell script 'jflex' which should be modified as follows:


2.3 Testing the Installation

          Hello someone !

          This is a sample input file for the
          standalone example scanner.

           Have a nice day!
 

3.0 CUP

3.1 Obtaining CUP

CUP is available from www.cs.princeton.edu/~appel/modern/java/.  There you'll find the needed source code (compressed tarball) and a user manual. The manual can be downloaded in html to provide an on-line manual or in a form (e.g. postscript) suitable for printing. The next section deals with downloading the source file.
Note: The above website also contains an alternative to JFlex, called JLex.

3.2 A Specific Installation Scenario for CUP with test

This should result in activity ending with a success message, e.g. 'Install and test was successful'.
 

4.0 What Next?

The manuals downloaded with JFlex and CUP provide enough information so that users can get up and running.


Previous ``Compiler Construction Tools'' Columns

Compiler Construction Tools Part I, April 1998


Copyright © 1999, Richard A. Sevenich
Published in Issue 41 of Linux Gazette, May 1999



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


Compiler Construction Tools, Part III


Creating A Calculator Using JFlex And CUP

by Christopher Lopes, student at Eastern Washington University
April 26, 1999

This is the third part of a series begun in the April 1999 issue of Linux Gazette.
[see:  Compiler Construction Tools, Part I ]. Part II, giving detailed installation instructions for JFlex and CUP appears in this same issue.

This particular example is a modified version of the calculator example shown in the CUP manual. In particular, the companion JFlex specification file is included. Further, that file and the associated CUP specification file are commented extensively. The calculator example is the traditional first example to display the use of tools in the lex/yacc family. We are currently working on a project that would comprise a deeper example - an initialization language for a fuzzy logic engine to be used for decision making applications. If there is sufficient interest expressed in that longer term project, we will prepare an article for this or another venue.




Using JFlex

 The purpose of JFlex in this project is to build a lexical analyzer for our calculator.  This lexical analyzer, or scanner, will check the input for our calculator and make sure all character groupings are valid.

The lexical specification file for JFlex is broken up into three sections.  Each of these sections are separated by %%.

User Code Section
%%
Options and Declarations Section
%%
Lexical Rules Section

User Code Section

Everything in this section will be copied into the generated lexer class before the class declaration.  In this section one typically finds package and import statements.  Our lexical specification for this section imports two classes, sym and java_cup.runtime.*, and looks like the following.

        import java_cup.runtime.*;
        import sym;

In our example, the sym class is generated (along with the parser) by CUP.

Options and Declarations Section

This section contains options, lexical states, and macro declarations.  Setting options will include extra code that will be included inside the generated scanner class.  Options must begin a line and start with a %.  There are many options that can be included.  To obtain a list of options that can be included consult the manual that comes with JFlex.  The options used in our lexical specification are below.

        %class Lexer
        %line
        %column
        %cup

The first option, class Lexer,  tells JFlex to name the generated class Lexer and to write the code to a file called Lexer.java.  The line option turns on line counting letting you access the current line number of the input with the variable yyline.  The column option does a similar thing except it is for the current column number with the variable  yycolumn.  The last option, cup, puts JFlex into a mode that will make it compatible with a CUP generated parser, which is what we are using.

You next can declare member variables and functions for use inside the scanner.  The code that can be added is Java code and is placed between %{ and %}.  It will be copied into the generated lexer class source.  For our lexical specification two member functions will be declared.  These functions create java_cup.runtime.Symbol objects.  The first one just contains position information of the current token.  The second contains this information as well as the value of the token.  A link to this declaration is below.

         Declarations

The last part of this section contains macro declarations.   Macros are used as abbreviations for regular expressions.  A macro declaration consists of a macro identifier followed by = and then the regular expression that it represents.  A link to the macro declarations used in our lexical specification follows.  A link is also supplied below that contains a list of what can be used to create a regular expression and what each item in that list means.

         Macro Declarations

         List of what can be used in Creating Regular Expressions

Lexical Rules Section

The last section of the lexical specification contains the regular expressions and actions that will be executed when the scanner matches the associated regular expression.  The scanner will activate the regular expression that has the longest match.  So if there existed two regular expressions "to" and "too" the scanner would match "too" since it is the longest.  If two regular expressions are identical and have the same length then the scanner will match the regular expression that is listed first in the specification.  If the scanner read in the string "to" and was looking for a regular expression to match what it read in it could activate either regular expression listed below.  The second regular expression is possible since it contains a character class which allows for the string "to" to be matched. The scanner would pick the first regular expression in the list below since it was listed first.

        "to"
        [a-z]*

Actions can then be attached to each regular expression that the scanner can activate when it matches that regular expression.  The actions for each regular expression are just Java code fragments that you can write.  Actions that you might want to use could be printing something out or returning the token that the scanner just found to the parser.  Example code that prints the token found by the scanner and returns it to the parser could be done as in the following.

        "+"                     { System.out.print(" + ");  return symbol(sym.PLUS); }
        "-"                     { System.out.print(" - ");  return symbol(sym.MINUS); }
        "*"                     { System.out.print(" * ");  return symbol(sym.TIMES); }
        "/"                     { System.out.print(" / ");  return symbol(sym.DIVIDE); }

JFlex allows the programmer to refine the specification by defining special lexical states used as start conditions. YYINITIAL is a predefined lexical state and is the state in which the lexer initiates scanning input. It's the only one we'll use. Consequently, all our regular expressions will be recognized starting from that lexical state. However, one can define other such states which will essentially constitute the start of a new branch of the state machine. In the example below, lexical state <STRING> is reached by a transition from YYINITIAL. Regular expressions defined in that state section <STRING> will only be recognized in that branch.

<YYINITIAL> {
         \"                             { string.setLength(0); yybegin(STRING); }
        "="                            { return symbol(sym.EQ); }
        "=="                           { return symbol(sym.EQEQ); }
        "+"                            { return symbol(sym.PLUS); }
}

<STRING> {
         \"                               { yybegin(YYINITIAL);
                                             return symbol(sym.STRINGLITERAL,
                                             string.toString()); }
        [^\n\r\"\]+                   { string.append( yytext() ); }
}

In the above code the scanner will begin in the state YYINITIAL.  When it matches the regular expression \", which just means it is found a double quote, it will change the scanner to the STRING state.  Now the only regular expressions that can be matched are the regular expressions listed for that state.  So the scanner will stay in this branch until it matches another double quote - whereupon it will return to the YYINITIAL state again.  Again, for our calculator we never employ such starting conditions other than the original YYINITIAL state.  A link to the lexical rules we used are below.

         Link to Lexical Rules
 


Link to the JFlex file lcalc.flex .  This is the lexical specification used for our calculator.  In it there are lots of comments explaining what is happening.  It can be copied and both the CUP and Main files which are also supplied in this article can be copied so you can run this example project.  Instructions on how to prepare each file and run the calculator are included.  Jdk, JFlex, and CUP are needed to do this and can be downloaded for free at the web sites listed in this article.

For more information on JFlex consult the JFlex manual that is available when you download JFlex at the web site that is listed in this article.

 Back to Top


Using CUP

The purpose of CUP in this project is to build a syntactic analyzer for our calculator.  This syntactic analyzer, or parser, will check the input for our calculator and make sure it is syntactically correct.
That is to say that the statements in the input are arranged in a valid order according to our syntax specification.

The specification syntax for a CUP file is broken up into four sections.

  1. Preliminary Declarations
  2. Declarations of Terminals and Non Terminals
  3. Precedence and Associativity of Terminals
  4. Grammar

Preliminary Declarations

This section provides preliminary and miscellaneous declarations to specify how the parser is to be generated and supply parts of the runtime code.  This section is optional and doesn't need to be included in a CUP specification file.  For our calculator we will have three items in this section.  The first item will be an import declaration.  We will import the class java_cup.runtime.*.

        import java_cup.runtime.*;

The next item we will add is parser code.  The parser code will be placed directly into the generated parser class definition.  It begins with parser code {: and ends with :} with all coded inserted in between.  In the parser code we will change two methods.  We will change the report_error and report_fatal_error method.   We will modify these methods so the if a syntactic error or a fatal error occurs in the input then the error message that will be printed out will contain the line and column number in the input of where the error occurred.  This extra information in error messages could prove very helpful when determining errors in the input.

         Link to Parse Code

The last item we will add in this section indicates how the parser should ask for the next token from the scanner and has the form scan with {: ... :}.  We will use this to tell the parser to call the scanner we created with JFlex.

        scan with {: return lexer.yylex(); :};
 

Declarations of Terminals and Non Terminals

This section contains the symbol list and contains declarations that are responsible for naming and supplying a type for each terminal and non terminal.  This section is required in a CUP specification.  Terminals are declare with the syntax terminal classname name1, name2, ...;.  Classname is the type of the object, such as Integer.  If no classname is given then the terminal has no content for the lexer to pass up to the parser..  After the classname the name of the terminals are listed that you want to declare of that type as in the following.

        terminal PLUS, MINUS, TIMES, DIVIDE, SEMI;
        terminal Integer NUMBER;

Note that only NUMBER has an accompanying classname. In our example, it is the only terminal that carries  content. For example, when the lexer recognizes a PLUS, it passes the associated code to the parser; but when it recognizes a NUMBER it not only passes the associated code for NUMBER, but also its value within the type wrapper class, Integer.

Non terminals are declared in the same manner.  The only difference is the beginning of the declaration reflects that it is a non terminal instead of a terminal as in the following.

        non terminal expr_list, expr_part;
        non terminal Integer expr;

Precedence and Associativity of Terminals

This section specifies the precedence and associativity of terminals, it is an optional section that doesn't have to be included.  This section can be used when parsing ambiguous terminals.  Instead of using this section you could structure the grammar so that it is not ambiguous.  For instance TIMES should have a higher precedence then PLUS.  When the parser runs into a statement such as 5+4*3 it doesn't know whether the expression needs to be calculated as 5+(4*3) or (5+4)*3.  To eliminate this ambiguity using this section you would declare the precedence as below.  The highest precedence starts at the bottom of the list and the precedence gets less going up.  The word left means that the associativity of the terminals at that precedence level goes from left to right.

        precedence left PLUS, MINUS;
        precedence left TIMES, DIVIDE;

To structure a grammar to eliminate the ambiguity you would create a structure like the one below.  This structure eliminates the ambiguity because TIMES is further down in the grammar than PLUS.  This will result in TIMES being applied before PLUS as you go back up the grammar.

        Example of Grammar Structure
 

Grammar

The last section in the specification syntax contains the grammar for the parser.  Each production in the grammar has a non terminal left hand side followed by ::=, which is then followed by zero or more actions, terminals, or non terminals, and then followed by a semicolon.  Each symbol on the right hand side can be labeled with a name, which can be used to carry content (e.g. a value) up the parse tree.  A label name is given by a colon after the symbol name, then the name of the label as in the following where e1 and e2 are labels for expr.  The left hand side automatically is assigned the label RESULT.  An example using the label RESULT appears latter in this section.

        expr ::= expr:e1 PLUS expr:e2

The label names must be unique in the production.  If there exists several productions for the same non terminal they can be declared together and separated by |.  The semicolon then needs to be placed at the end of the last production as in the following.

        expr ::= expr PLUS expr
                      | expr MINUS expr
                      ;

Actions can also be inserted into the production.  The action is just Java code and will be executed when the production has been recognized.  Action is placed between the delimiters {: and :}.  An example of part of a grammar with these options is below.  A link to a file with the specification syntax for CUP named ycalc.cup also follows and the grammar in it can be studied.

        expr      ::= factor:f PLUS expr:e
              {: RESULT = new Integer(f.intValue() + e.intValue()); :}
              |
              factor:f MINUS expr:e
              {: RESULT = new Integer(f.intValue() - e.intValue()); :}
              |
              factor:f
              {: RESULT = new Integer(f.intValue()); :}
              ;


Link to the CUP file  ycalc.cup.  This is the specification syntax used for our calculator.  In it there are lots of comments explaining what is happening.  It can be copied and both the JFlex and Main files which are also supplied in this article can be copied so you can run this example project.  Instructions on how to prepare each file and run the calculator are included.  Jdk, JFlex, and CUP are needed to do this and can be downloaded for free at the web sites listed in this article.

 For more information on CUP consult the CUP manual that is available at the web site listed in this article.

 Back to Top


Main for our Calculator

There is more than one way you can write the main for our project.  One way expects the user to enter input as the program runs.  The other way requires that you give it the name of an input file when you start up the program.  The main described here uses the second way mentioned to retrieve  input.  The first thing we do is import three classes that we will use.  The first class is for our parser, the next is the java_cup.runtime.Symbol class, and the last is the java.io.*; class.  We then declare are class Main.  In it we will call the parser to begin the syntactic analysis of the input file.  The parser will then call the scanner, that will lexically analyze the input, when the parser needs the next token in the input file.  The class Main contains two items.  It first sets the variable do_debug_parse to false.   We then define a method called main.  We pass into main an array of strings which contains the parameters passed on the command line when the program was started.  So in our case the first element of the string will contain the name of the text file we passed in when we started the program.  The method then goes into a try block which is what actually calls the parser.  The try block means that whatever is in the try block will attempted.  If something fails, the program will exit that block.  The first line in the try block creates a new parser object.  The parser object invokes a new Lexer object.  The new Lexer object will use the string passed into main for its input when it is created.  The second line will then start the parser.  The code for the above follows.

      try {
        parser p = new parser(new Lexer(new FileReader(argv[0])));
        Object result = p.parse().value;
      }

Following the try block is a catch block.  The purpose of the catch block is to clean up an errors that happened in the try block.  The catch block will take the exception, the reason why we were kicked out of the try block, and do whatever is needed to clean things up before the program exits.  We don't do anything in the contents of our catch block.  After the catch block we have the method finally.  This method closes everything out.  We don't do anything in this method either.  The code for the catch block and method finally are below.

        catch (Exception e) {
              /* do cleanup here -- possibly rethrow e */
              } finally {
                    /* do close out here */
                 }
              }

That completes the contents of the method main and the class Main.  We now have created a simple calculator using JFlex as our lexical analyzer and CUP as our syntactical analyzer.


Link to the Java file  Main.java .  This is the main used for our calculator.  In it there are comments explaining what is happening.  It can be copied and both the JFlex and CUP files which are also supplied in this article can be copied so you can run this example project.  Instructions on how to prepare each file and run the calculator are included.  Jdk, JFlex, and CUP are needed to do this and can be downloaded for free at the web sites listed in this article.

 Back to Top


Compiling the Calculator

To setup the files to run the calculator you first need to use JFlex on the lexical specification file lcalc.flex.  This will produce the file Lexer.java.  The next step is to setup the CUP file ycalc.cup.  Afterwards you compile the Lexer.java file that was created by JFlex.  You finish the process by finally compiling the Main.java file.  To do the above you would enter the following at the command line.

        > jflex lcalc.flex
        > java java_cup.Main < ycalc.cup
        > javac Lexer.java
        > javac Main.java

Then to run the calculator you would enter the following at the command line.  The file test.txt is the input file for the calculator that will be scanned and parsed.

        > java Main test.txt

 Back to Top


Sample Input and Output

A sample input file could look like the following.

        2+4;
        5*(6-3)+1;
        6/3*5+20;
        4*76/31;

and so on.  The output for the following input should then appear as follows.

        2 + 4 = 6
        5 * ( 6 - 3 ) + 1 = 16
        6 / 3 * 5 + 20 = 30
        4 * 76 / 31 = 9

 Back to Top


Previous ``Compiler Construction Tools'' Columns

Compiler Construction Tools Part I, April 1998
Compiler Construction Tools Part II, May 1998


Copyright © 1999, Christopher Lopes
Published in Issue 41 of Linux Gazette, May 1999


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


A Conversation with Craig Burton about Business Prospects for Linux

By Doc Searls


Craig Burton knows what makes platforms succeed. It was his strategy at Novell that established NetWare as the first Network Operating System (a term Craig coined), and completely changed the whole network conversation in the process. Later, at The Burton Group, Craig and his colleagues successfully moved the same network conversation to a new understanding of networks themselves: not as "pipes and protocols," but rather as services such as print, file, management, directory, security, messaging and Web.

Now Principal of Burtonian, Craig modestly describes himself as "a voice of common sense and reason with proven sensibility." I disagree. Craig is an exceptional voice of uncommon sense. That's why we wanted to talk with him. More than anybody I know, Craig is the Voice of Reality. Don't talk to the guy unless you want to face straight shots and tough questions. That's what businesses want from their customers. And that's what Craig gave us.

-- Doc Searls

Doc: What are the real business prospects for Linux?

Craig: I see three:

  1. Linux has a great shot at being an alternative platform to NT in the back office for serious infrastructure.
  2. Linux will never replace Windows on the desktop.
  3. Like alternative music of the 80's, Linux will have to shrug its "grunge" image to go mainstream, and there is a price to pay for that.

Doc: Let's start with number one.

Craig: Linux has already passed the first big milestone. There is no other hardware independent OS -- besides Windows -- on the map. And by all accounts, Linux will have exponential growth over the next twelve to eighteen months, while NetWare and NT sales will only grow incrementally. So the Linux stake is already in the ground and no one can take that claim from the movement.

Doc: Which brings us to your second point.

Craig: The question at hand is, can Linux make the next jump? That jump is to prime-time back-office. Some Linux vendor needs to provide a platform with a set of services that is more robust and innovative than Windows, and do it faster than Microsoft. These services need to really solve customers' backend problems. I think it is up to one primary vendor.

Doc: Who will that be?

Craig: I just don't see a back-office vision coming from any existing Linux supplier. Clearly Red Hat is making a run for it. But does Red Hat have the lineage and leadership to make the jump shift this market needs? We don't know. Time will tell. In the meantime Red Hat is doing its best to drive a sense of growth and excitement around Linux right now. But excitement alone does not a jump shift make. There must be real meat to the commitment and sound vision behind the hype. So far, I don't see that showing up.

Doc: Red Hat's publicity is focussed on the desktop, and modeling itself after the great mass market success stories. That's why they talk about "branding" and "audiences" of "consumers." This attracts a lot of investment from guys who want to place bets with the Linux company that looks like a winner.

Craig: Yet Linux will never be a contender for the mass client market. Do the numbers. It is simply impossible. Windows growth would have to go to zero and Linux would have to grow exponentially for the next eight to ten years before it would even begin to gain on Microsoft. And until Linux is at 20% market share, no serious developer is going to give it any respect.

Doc: What about the work that has already been done on the desktop? Gnome and KDE look pretty good.

Craig: Those are going to attract developers? Why? Where's the standard? More to the point, where is the alignment with reality? Look, Linux is in a hell of a good position. It is past the first major hurdles. But now what? If Linux intends to win on the basis of "mine is better than yours," Linux will loose. But if some Linux vendor can marshal a plan that leverages Linux momentum and lays serious infrastructure foundation that Microsoft simply can't match because of its legacy, then by God we have something. The job of Linux is to make the back office pie bigger, not to steal desktop market share from Microsoft. That can't be done. Why try?

Doc: How can Linux make the pie bigger?

Craig: Let's focus on the real opportunity here. Microsoft is caught in workstation hell. Linux is totally unfettered from Windows legacy. So why try to be Windows? Do what Microsoft and no one else is doing. Deliver infrastructure capable of changing computing. And stop attacking Microsoft because it's "bad." That's not strategic.

Doc: Why not?

Craig: When enterprises choose Linux, the logic will be AND, not OR. And Linux will succeed not to the degree it displaces or replaces Microsoft, but to the degree it adds new computing benefits to enterprises where Microsoft is already established. Enterprises are not going to throw away Microsoft operating systems, services and applications. Those things are serious infrastructure. And many companies develop their own internal solutions using Microsoft tools; and Microsoft is extremely supportive of that development.

Doc: Why is Microsoft in workstation hell?

Craig: Microsoft can't move fast because it has too much legacy to support. Look at the list of operating systems they're dragging along: DOS; Windows 3.1, 95 and 98; Windows NT 4.0 Workstation and Server, plus NT Service Packs 1,2,3,4 and 5 on the way (which are functionally all releases of the OS); Windows 2000; and Windows NT 2000 Workstation and Server. And Microsoft is anything but consistent across all those OSes. Linux has none of that, and it's a big advantage. A much cleaner slate. But there are down sides to Linux as well.

Doc: Such as?

Craig: Open source. It's a great rallying cry, but is it what customers want? Are enterprises praying for open source? On the contrary, they fear open source.

Doc: So you think the coverage of open source is misleading?

Craig: Totally. Take Apple's announcement about "opening" its OS/X server software. It was completely misleading. Every Apple OS is full of proprietary and closed code that they are not even in a position to open up. I would wager that there is code in the original Mac OS that Apple can't put into the open source model. Just as Netscape convieniently just left it out of the mozilla code, so will Apple just convieniently leave it out of Mac OS X.

Doc: That subject almost never comes up.

Craig: It never needed to--until now, when companies like Apple are making a virtue of going "open source' when in fact they can't open more than some percentage of their code base. Open source for Apple was a desperation move. Apple is nowhere in the server space, so "opening" that source was safe. Same with Netscape's browser. It was headed nowhere when suddenly they yelled "everything is open source!" Then they whisped, "Oh, by the way, it doesn't include the object request broker"--which is fundamental technology that Netscape used to make a big deal about. Not included. It's a joke. A marketing ploy. If open source is so great, why don't Apple and Netscape open all their sources? Because it would make no business sense whatsoever. I'll battle any of the open source guys, any time, on that one. Get this straight: Mozilla is broken because it doesn't come with all the necessary pieces. And ironically--next to Linux--it's the Open Source guys' biggest success story.

Doc: Do you think the battling browsers give us a controlled experiment right now, between open and closed source?

Craig: Absolutely. And the closed side--Microsoft--is winning, big time. Going open source was great PR for Netscape, but the timing was bad because Netscape was about to get bought by AOL, which had to screw up the whole open source appeal. Who wants to back on that?

Doc: Meanwhile the press plays Linux as David, Microsoft as Goliath, and open source as Goodness.

Craig: Screw that. This is not a Spielberg production pitting good against evil. This is not a question of right vs. wrong or good vs. bad. It's a question of choice. Can a serious vendor do what is needed to field a sound choice for customers? It has nothing to do with Gates or the size of Microsoft. It's just business.

Doc: And you think it's doable.

Craig: Of course it's doable. Is there a doctor in the house? Can someone holding the reigns drive this puppy home? We don't know. That is the question.

Doc: Speaking of people holding the reins, have you read The Cathedral and the Bazaar, by Eric Raymond?

Craig: Yes. But I don't think it's cathedral vs. a bazaar here. It's a cathedral vs. a cult. They're both religions. This isn't to say that Eric Raymond doesn't make some very good points. But they are essentially partisan points: right vs. wrong. And they ignore the customers being served by the cathedral. He says the cathedral is what I call EWBU: evil, wrong, bad and ugly. Well, maybe it is. But if you want the cathedral's customers, you can't just tell them their church is EWBU and yours is holy, correct, good and beautiful. That's no business case.

Doc: Have you read Eric's various cases for open source? The businessperson's case, the techie/hacker's case, the customer's case ...

Craig: Linux needs proof, not just cases. Corporate customers want accountability by a single company they can call up and demand service from. Not from a community of hackers, no matter how expert and helpful those hackers may be. They want to see software developed by command, not by consensus. And they trust a commanding company like Microsoft to pay attention to what they want. And I see no evidence the open source community cares about what the market wants. What I see is some guys saying Microsoft sucks and what they're doing is great. Well, that's a big hat, but where are the cattle? Show me the beef.

Doc: What about the reliability argument? We hear people telling us if you put Apache and Linux on a box and let it run, it just isn't going down. While NT crashes all over the place. Isn't that a technological argument?

Craig: It's just not so. If somebody says any operating system isn't ever going down, they're not saying it like it really is.

Doc: Well, the faithful are legion.

Craig: It's religion. Linux is the only "true" operating system. God/Buddha/Allah guided Torvalds' hands across the keyboard and caused him to build the only true and chosen operating system. Right. No disrespect intended, but Linux is not a predestined set of algorithms. The question should be simple: is Linux inherently less brittle than NT, and is the difference measurable? Let's see the MTBF numbers, and then let's see what makes a difference, if we can tell. Which we probably can't because it's too hard to make them truly comparable. I think a better question is one of maturity. If Linux had the same number of applications as NT--applications that could potentially raise havoc with an OS--I would wager it would be no more reliable than NT. There is no magic key to building reliable platforms. Even the microkernel vs. monolithic kernel argument becomes religious at this point. I'm not saying technology doesn't matter. I am saying that technology alone is not a reason to make a business decision. And no business decision gets made in a vacuum. Linux technology is simply one piece of an equation; not the answer to life, meaning, and the universe.

Doc: What about customer demand? We hear from Oracle, IBM, HP and other big vendors that there is a groundswell of customer demand for Linux.

Craig: There used to be big demand for OS/2 and DR DOS. So far I've heard very little in the way of specifics about Linux. Here's one question I'd have if I were a customer: are the Linux vendors afraid of each other? Does Red Hat feel threatened by Caldera and vice versa? My guess is: you betcha. And what I expect is that everybody will try to differentiate in ways that don't work for the customer who wants real interoperability. But I honestly don't know. Yet.

Doc: What specifically, as a customer, would you like to see coming from the Linux community?

Craig: I would want to see answers to these questions:

  1. What is the business case for the long term success--technical merits aside--of Linux?
  2. How do the suppliers meet the requirements of that case?
  3. What has shifted in the marketplace that has moved any customer to Linux from NT, and how do you measure that? Give me reasons. Give me numbers.
  4. What will it take to get Linux to the next level--beyond easy pickings in the ISP space? Can Linux really compete as a general purpose platform?
  5. How will the open source model play in business reality? Is it strategic for the customer? Can you erase customer fears and replace it with confidence?
  6. What are the Linux vendor business models? Who profits? What are the cost points? And will any of these take the strain of mainstream demand?
  7. Can the industry scale to meet the long term business need for a supportable platform that has the rest of the cottage industry surrounding it that any platform requires to provide the elements needed--services, support, applications; and the infrastructure for doing business on that platform, including third party development, drivers, technology, channels and the rest?
  8. What is the vision of each Linux vendors' business model? They are not the same, clearly.
  9. What are the big Red Hat investors really up to?

Doc: What about cost?

Craig: Linux is not free. That's a myth. The real costs are people and change maintenance. How many bodies do you have to throw at a project? We need to debunk the myth that Linux is cheap and easy--and that cost is why it's being adopted. Saving $495 on a license doesn't cut enough mustard. There are too many other costs, and if you don't factor them in, your customers will.


Copyright © 1999, Doc Searls
Published in Issue 41 of Linux Gazette, May 1999



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


Direct Cable Connection between Win95 and Linux

By Thomas P. Smyth


Abstract
A serial connection at 115200 baud can be set up between Win95 and Linux. The transfer rate is about 10k/sec which approaches the speed achieved with a PLIP connection.

Copyright 1999 Thomas P. Smyth
You may copy this document as is without any alterations.

Disclaimer
Use this information at your own risk. The author will not be liable for any damages that occur as a result of using this document.
 


1. Introduction

This document details how I set up a direct serial cable PPP connection between a Windows 95 PC and a Linux machine. Essentially, the trick is to make the Linux machine emulate a modem to the Windows 95 PC. This allows the standard Windows 95 Dial-up networking tools to be used to make the connection. I achieved transfer rates of 10k/sec on ftp transfers.

2. Serial Cable

You need a null modem cable which has DSR linked to DCD at each connector. I used a cable connected as follows:-
Txd Rxd
Rxd Txd
RTS CTS
CTS RTS
GND GND
DTR DSR & DCD
DSR & DCD DTR

See the Serial-HOWTO Chapter 8 for more information.

3. Linux Serial Port Configuration

On the Linux machine (I am using Redhat 5.2 on a Pentium 200MMX) set up a terminal connection to your serial port. In /etc/inittab put

S1:2345:respawn:/sbin/getty ttyS1 DT115200 ansi

and in /etc/gettydefs put

# 115200 fixed baud Dumb Terminal entry
DT115200# B115200 CS8 CLOCAL CRTSCTS # B115200 SANE -ISTRIP CLOCAL CRTSCTS #@S login: #DT115200

This is a copy of the 38400 entry with all 38400’s changed to 115200.

Run telinit q to reread /etc/inittab.

Using a terminal program (ie. Hyperterminal) you should be able to login to the Linux machine over the serial cable. Remember to set the communication parameters to 8N1 and 115200 baud with ansi emulation.

See the Serial-HOWTO Chapter 8 for more information.

4. Linux PPP Configuration

Create a user ppp95 on the Linux machine, make the shell pppd by editing the /etc/passwd entry as follows:-

ppp95:  ........ your password, etc ...........  :/home/ppp95:/usr/sbin/pppd

In /home/ppp95 put a file named .ppprc with contents:-

connect '/usr/sbin/chat -v ATH OK AT OK ATE0V1 OK ATX3 OK ATDT CONNECT'
-detach
modem
crtscts
lock
:192.168.100.4

The IP number is the address to use for the Win95 computer. The chat script mimics a modem so that Win95 can start the PPP connection. See the file /usr/doc/ppp-2.3.5/README.linux for information on setting up Linux PPP. It is important to setuid the pppd daemon (chmod u+s /usr/sbin/pppd).

5. Windows 95 Configuration

On the Windows 95 computer (using version 4.00.950 B) create a new Dial-up networking connection. Put the following settings into it:-
 
Telephone Number  1
Connect Using Standard Modem
Modem Configuration COM1 with speed 115200 at 8N1, & no wait for dial tone. Use Hardware flow control only. Bring up terminal window before dialing.
Server Type PPP
Advanced Options  Software Compression only
Network Protocols TCP/IP only. Settings: Server assigned IP address, Server assigned name server. Use IP header compression, use default gateway.

6. Connecting

To connect double click the new Dial-up Networking connection icon, and press Connect. The terminal screen should appear - login as ppp95, and press F7. The dialog box should indicate dialing, and then verifying username, etc. Finally, there should be an indication that you have successfully logged in to the network.

From an MSDOS prompt you should be able to ping your Linux machine (using the IP address, not the URL), and from your Linux machine ping 192.168.100.4. See /usr/doc/ppp-2.3.5/README.linux for other checks of the PPP connection.

In order to allow telnet and ftp to work, I changed /etc/hosts.allow to

ALL: LOCAL, 192.168.100.4

You may wish to be more restrictive in the services you allow here. You should now be able to telnet from Win95 to your linux machine using the IP address.

7. X Windows

To run X Windows on your Win95 computer, get the free MI/X server from http://www.sunsite.auc.dk/tucows/xwinserver95.html. Install The MI/X server. To get it going:- run the MI/X server, and from a DOS box telnet your linux machine. Login as your normal user name, and type the following:-

 DISPLAY=192.168.100.4:0.0
 export DISPLAY
 xterm &

This should make an xterminal appear in the MI/X server. The interface is a bit slow, but it works.

For more information see Running Remote X Sessions on Windows 95/98/NT/Mac/PPC Clients by Ron Jenkins in Issue 32 of Linux Gazette, September 1998.

8. Other services

I also have a ftp server and Apache on my Linux machine - if you run Netscape on the Win95 computer and put in the location http://192.168.100.1, you will reach Apache, or ftp://192.168.100.1 - you will reach your ftp server.

9. Shutdown of the Link

To shut down the PPP link, disconnect the dialup connection - it hangs for a while because Win95 is sending reset commands for a modem, but these are being received by the Linux getty as login/passwords. It disconnects after a short while, and Linux does not seem to mind.



If you have any comments, please email me at  smytht@netscape.net


Copyright © 1999, Thomas Smyth
Published in Issue 41 of Linux Gazette, May 1999


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



muse:
  1. v; to become absorbed in thought 
  2. n; [ fr. Any of the nine sister goddesses of learning and the arts in Greek Mythology ]: a source of inspiration
© 1999 by mjh


Button Bar
Welcome to the Graphics Muse! Why a "muse"? Well, except for the sisters aspect, the above definitions are pretty much the way I'd describe my own interest in computer graphics: it keeps me deep in thought and it is a daily source of inspiration. 

[Graphics Mews][WebWonderings][Musings][Resources]

This column is dedicated to the use, creation, distribution, and discussion of computer graphics tools for Linux systems.


After returning in early April from a month long trek through New Zealand, I found myself with a slew of work to catch up on.  Aside from the mountain of email, I had three articles and some cover art for the Linux Journal, a new issue of TheGimp.com, and some things I've been sworn to secrecy on.  I also bought a new camera, so I could stop rumaging around for affordable stock photography and just go take the pictures myself.  I find photography as much an artistic outlet as my Gimp galleries, and plan to merge the two immediately.  Just as soon as I finish the classes that explain what all the knobs do on that thing.

Of course, I also had lots of laundry to do when I got back.  But thats an article for my HouseCleaning Muse column.*

I did a lot of catching up on the Web once I got back.  There is a new Web site for artists interested in Linux, linuxartist.org.  After taking a look over there and seeing the list of vector graphics tools, I found my topic for this months Musings and Web Wonderings.  So, in this months column you'll find:

  • The Macromedia Flash Plug-in for Linux
  • Vector Drawing on Linux - XFig, TGIF and friends

* If you ever catch me writing one of those, please, shoot me.

The Artists' Guide to the Gimp
Available online from FatBrain, SoftPro Books and Borders Books.

In Denver, try the Tattered Cover Book Store.

Also, check out the associated web site, TheGimp.com, sponsored by SSC, Inc. and edited by The Graphics Muse - Michael J. Hammel.



Other Announcements:
GIMP Dynamic Text
GNU plotting utilities V2.2
gView 0.1.2
Giram 0.0.14
X-Mame 0.35b10.1
tgif 4.1.7
R, a system for statistical computation and graphics.
XawTV 2.41
Ilib 1.1.1
GXanim 0.20a
gfontview 0.2
Scitech Display Doctor 7.0 Beta5 fixed
GIMP Imagemap plug-in 0.7
Panorama 0.11.1
Raychase 2.05
LAGII 0.1.0
kdem 1.0.1
XawTV 2.43
CMatrix 0.98a
Gqcam 0.1
< More Mews >

Most announcements courtesy of freshmeat.

Disclaimer: Before I get too far into this I should note that any of the news items I post in this section are just that - news. Either I happened to run across them via some mailing list I was on, via some Usenet newsgroup, or via email from someone. I'm not necessarily endorsing these products (some of which may be commercial), I'm just letting you know I'd heard about them in the past month.

aKtion! 0.3.5
Frederic L.W.Meunier (fredlwm) - April 08th 1999, 22:40 EST 

aKtion! is a video player based on xanim. It (xanim) supports many different file formats like FLI animations, FLC animations, IFF animations, GIF87a and GIF89a files, GIF89a animation extensions, DL animations, Amiga MovieSetter animations, Utah Raster Toolkit RLE images and animations, AVI animations, Quicktime Animations and SGI Movie Format files. 
http://www.geocities.com/SiliconValley/Haven/3864/aktion.html



Photo Mosaic plug-in for the Gimp

http://registry.gimp.org or http://www.kirchgessner.net

Changes:
Works with Gimp V1.04
Enhanced scale algorithms
Quality=100 saves PPM-files instead of JPEG-files (no loss in quality)
Random select of sequence for tile replacement

Peter Kirchgessner
peter@kirchgessner.net



SideEffects to port Houdini® 3D animation software to Linux

From the press release:

Side Effects Software announced its plans to port its Houdini® 3D animation software to the Linux operating system. Side Effects Software is the first high-end 3D animation company to announce plans to adopt the Linux platform. While many hardware vendors support the popular operating system, there ar presently few graphics software packages available for it. It is expecte that a Linux version of Houdini will be beta tested with Houdini 4.0 beginning in May.
Full press Release:  http://www.sidefx.com/news_events/press_linux.html
SideEffects Software: http://www.sidefx.com/


Gimp @ SIGGRAPH 99

This years SIGGRAPH in Los Angeles runs from August 8-13. The exhibit days are Tuesday throughThursday. August 10-12.  Calvin Williamson is organizing a Gimp SIG for the conference.  Here is his announcment:

I've made some enquiries and we can have a Gimp SIG (special interest group) meeting without paying any money. (The conference costs though). I have a form we have to submit to reserve a spot.

It would be nice if we made this for any and all gimp users/developers and would basically be a reserved room that we can meet in for a couple of hours.  If we get our form in soon, it will probably be listed in various programs/schedules.

Anyway we're free to organize our SIG anyway we want.  I'm sure we can do that fine.  But what I wanted to find out was a guess at how many people we might get, and what times would be best. I need this for the forms to send in to set this up.

Heres some considerations:

  • The exhibits/papers/courses usually run to about 5 or 6 each day.
  • The Exhibit is Tuesday -Thursday.  Papers are Wednesday - Friday.  Courses are Sunday -Tuesday.
  • In my humble opinion, a good time might be something like 5:30-7:30 PM on Tuesday or Wednesday, which reduces the chance that it will actually overlap with anything else you might want to do.
  • As for number, Yosh "guessed" that we wouldnt get more than 40 people.  If all this sounds good, I'll fill out the forms accordingly and send them in a week or so.  If not let me know what you think.

    Yosh has set up an account (gimpsiggraph@gimp.org) we can use for logistics /suggestions/comments about the upcoming meeting. If you have an organizational issue or have a request of some sort, please email that account. It will help us keep things under control as time nears.

    In case your interested in conference costs:  http://www.siggraph.org/s99/registration/catNfees.html.  ($25 for exhibit only, but other stuff is pretty expensive.)  Last year the Linux3D group had a good meeting I think. (I missed it cause I didnt know about it though...)

    Calvin
    Calvin Williamson <calvin@rhythm.com>



    MathMap 0.8

    MathMap is a GIMP plug-in which allows distortion of images specified by mathematical formulae. For each pixel in the generated image, an expression is evaluated which should return a pixel value. The expression can either refer to a pixel in the source image or can generate pixels completely independent of the source. MathMap not only allows the generation of still images but also of animations.

    The MathMap homepage can be found at

    http://www.unix.cslab.tuwien.ac.at/~schani/mathmap/
    It includes a user's manual as well as screenshots and examples.

    Changes since 0.7:


    Mark Probst
    Student, Programmer
    http://www.unix.cslab.tuwien.ac.at/~schani/



    GIMP 1.1.4 and 1.0.4 now available:

    Version 1.1.4 (developers release):
    Download:  ftp://ftp.gimp.org/pub/gimp/unstable/v1.1.4/
    It requires GTK+ 1.2:  ftp://ftp.gimp.org/pub/gtk/v1.2/

    Stuff that's new:

    Version 1.0.4 (stable release):
    Download:  ftp://ftp.gimp.org/pub/gimp/v1.0/v1.0.4/
    It requires GTK+ 1.2:  ftp://ftp.gimp.org/pub/gtk/v1.2/
    This release fixes the broken menu items and 8-bit display issues in 1.0.3.

    -Yosh (current GIMP source maintainer)



    GATOS 0.0.1-isg2oaa1bc1
    Insomnia (Stea Greene) - April 07th 1999, 23:32 EST

    The GATOS (General ATI TV and Overlay Software) Project is an effort to create standard drivers for all currently unsupported features of ATI video cards, specifically TV features.

    Changes: First release and it's still very buggy. Please read the "Original GATOS announcement" on the hompage and submit a report as specified there.
    http://www.core.binghamton.edu/~insomnia/gatos/



    libgeom 0.0.6
    Whitestar47 - April 07th 1999, 23:31 EST

    libgeom has many data types to handle common geometrical sub-primitives, such as point, line, line segment, vector, plane, arc, circle, and many functions to manipulate, convert and make new information. All functions are reasonably computation efficient. It is all coded in C and works well with gcc and egcs.
    http://www.calvin.edu/~jdemaa17/programs/programs.html


    Dr Geo 0.7.5
    Hilaire Fernandes - April 07th 1999, 23:29 EST

    Dr Geo stands for 'Dr Geo Refer to Geometry Exploration Observatory'. It is an interactive geometry software and allows the construction of dynamic figure. It's possible to draw basic geometric object as point, line, segment, locus, intersection beetween object but also to use geometric transformation as rotation, translation, etc. The usal geometric tools as parallel line are also available.
    http://www.drgeo.seul.org/



    Meteor 1.5.4
       Mark Sutton - April 07th 1999, 22:51 EST

    Meteor is a device driver and set of usefull applications for the Matrox Meteor frame grabber.

    Changes: Enhancements to this version over the previous version include several minor bug fixes and the ability to auto-configure itself for kernel version. It correctly configures itself for 2.0.* and 2.2.* kernels. It should also work correctly on most 2.1.* kernels if anyone is actually using them anymore.
    http://www.gnofn.org/~marksu/meteorman.html



    Terraform 0.2.10
       RNG - April 07th 1999, 13:29 EST

    Terraform allows you to create fractal terrain (also called a height field) and transform it using a number of algorithms. It is meant to be a tool for those who want to generate digital terrain models for use in raytracing or other simulations.  Terraform features different views and colormaps and has a preview mode which features interactive real-time rotation of the terrain object. Terraform is written using Gtk-- (the C++ wrapper for Gtk+).
    http://www.peoplesoft.com/peoplepages/g/robert_gasch/terraform/



    mpg_applet 0.1
       laertes - April 07th 1999, 13:24 EST

    mpg_applet is an mpg123 frontend. It supports playlists and uses almost no screen real estate. It uses mpg123 version 0.59q and GNOME version 1.0.4.

    Changes: This is the first public release.
    http://condor.stcloudstate.edu/~hebl9901/mpg_applet/


    Did You Know?

    ...Digital Video magazine's March 1999 print issue has a terrific article on color spaces, written by Ben Waggoner.  If you've ever wondered about what the different color spaces are and why you might use them (and which programs and industries use which color spaces), check out this article.  A PDF version of this article is available online at http://www.dv.com/magazine/1999/0399/. PS:  no, I don't get anything from DV for promoting them, its just a really good article!

    Q and A

    Q:  Perhaps there's a question you can answer.  I scanned most of my pictures at 75dpi using a Windows program.  But I did a few at 150dpi.  For some reason, when I retouched the latter, they looked fine in the GIMP, but when I later used display or another viewer, they were twice as big (both directions) as I expected, and they took up much more disk space than they should.  It's like the GIMP had somehow gotten into a mode where it was showing me things at half the real size they were, without telling me.

    A:  Gimp will rescale the visual display of the image to fit your screen but the actual image size remains the same.  A 150DPI scanned image would look twice as large on a computer as the 75dpi image.  Each "d" is a pixel, essentially.  Gimp scaled it down so you could work on it.  But the other programs don't know about "inches" (the "i" in DPI), just about total number of pixels in the image.  So those other programs displayed all the pixels it read, one image pixel per one screen pixel.


    Reader Mail

    No really interesting reader mail this month.  I had lots when I got back from New Zealand, but most of it was covered over in the TheGimp.com.


    The Macromedia Flash Plugins for Linux

    Animations on the Web, for me at least, have been limited to what you can squeeze out of a really good multi-image GIF file.  For the most part, those haven't been very exciting or creative, and they really were limited to small spots within the browser window.  I haven't seen too many MPEG movies online but even those would be a little limited in a browser.  As for audio, well, I mostly just listen to the various tech news sites. and those only a couple times a day at most.

    So I was rather interested to see two versions of a Macromedia Flash plugin for Netscape recently announced.  One comes directly from Macromedia in binary format only, the other is an Open Source version which includes source code.  Since I'd never seen a Flash site in action (I run Linux - and only Linux - at home and work normally revolves around the various commercial Unix systems), I decided I'd grab these and take a look at what I'd been missing.

    Wow.  I'm stunned.  Apparently there was a whole other world out there.  Sites with full-window animation accompanied by driving electronica-style soundtracks.  My Graphics Muse site seems rather dull all of a sudden (maybe it already did to some of you, but I don't get out much).  Maybe the "Wow factor" (as one site put it) will wear off eventually, but I'm rather excited about this format.  Although I can't author the Flash files on Linux yet (you still need the Macromedia Flash 3 authoring software, which only runs on non-Linux systems), at least now I can visit Flash sites and not stare at those blank boxes with notes about where to download a player for Windows.

    The two plugins I looked at are:

    1. The Macromedia Flash plugin, available from Macromedia's Web site
    2. The Open Flash plugin by Olivier Debon, available from http://www.geocities.com/TimesSquare/Labyrinth/5084/flash.html
    I found links to both on the linuxartist.org site, which is how I got the idea for this article in the first place.  I jumped to their respective Web sites, downloaded binaries for both (plus the source for the Open Flash version) and installed them.  Installation of both plugins is easy enough - just copy the plugins (files with .so suffices) to your $HOME/.netscape/plugins directory.  If you don't have a plugins directory under $HOME/.netscape, just create it:
    % cd $HOME/.netscape
    % mkdir plugins
    Don't put both into the plugins directory at the same time.  Its not clear which one will get run if you do this, although I suspect the first matching plugin wins.  After you copy the plugin into its directory, and if you already have Netscape running, you can type the following in the Location field:

       javascript:navigator.plugins.refresh

    That will get Netscape to update its plugins list.  You can verify this
    worked by typing

       about:plugins

    in the same Location field.  If for some reason this doesn't work, exit and restart Netscape and you should see the plugins listed when you use the "about" command.

    Note:  There is a Linux-based Flash Generator available from http://www.swift-tools.com/.  This doesn't create the Flash file, it only allows you to manage it after its created, such as to modify it to generate on-the-fly weather maps.  You still need the Macromedia Flash 3 authoring tool to create the original Flash 3 file.

    Both of these are Flash 3.0 plugins, although they don't both support the complete 3.0 specification yet.  The test system was a Cyrix 200, 64Mb memory, running Netscape 4.51 with an Xi Graphics AcceleratedX X server on a stock Red Hat 5.2 (Linux 2.0.36) system.  Sound on my system is run through the commercial version of the Open Sound System driver from 4Front Technologies.  I restarted Netscape between invokations of each plugin, to make sure there weren't memory leak problems in one that might cause the other to fail.  In testing these, I picked out a set of Flash 3.0 web sites that were linked from either the Open Flash site or the Macromedia gallery site, or both.
     
     
    Web Site
    MacroMedia Flash Plugin
    Open Flash Plugin
    Macromedia's Flash site worked fine Ran faster than Macromedia's plugin on this page, but after the thumbnail images were positioned at the bottom of the window the images inside the boxes disappeared.  Moving the mouse in the window caused the Flash file to replay, and moving the mouse out of the window caused the flash file to clear (ie nothing was displayed but the blue background).  If you try to click on a box, everything starts over but if you don't move your mouse after you do that you can actually select that box the next time.  Unfortunately, nothing plays after that.  At this point I gave up on this site.
    Fusionary Media's Flash 3 samples page worked fine Crashed Netscape as soon as I placed the cursor over the animated tree.
    ARCANE - An animated online mystery game.  Very little sound as far as I could tell. worked fine worked fine, but might have been a little slower than the Macromedia player.
    The Open Flash test site no problems no problems
    ShockRave - various music, cartoons, and games based on Flash and Shockwave.  Took too long to load, though. no problems for what little I played of it no problems for what little I played of it
    Official Buffy the Vampire Slayer site
    Takes a while to load, but the feed was continuous (no stalls) so it loaded moderately quick.  Doesn't play much while its loading, however.  Kind of a corny site - the sounds really don't add much to the animations and all the individual animations/sounds are very short loops.
     
    played all of it just fine Appeared to play the small "Buffy" animation (center of screen) better than the Macromedia player.  This site is supposed to have PNG-based (or PNG-like?) animations so maybe the Open Flash player handles those better.  However, it plays the animations and audio for all the navigation images much faster, plus it only plays the loops once.
    http://www.snarg.net/ - Artistic, for lack of a better description. played all of it just fine Crashed netscape
    Wing Commander SecretOps site, from Origin
    Another big download, but it does play some as it loads.  You get to see the UI for Wing Commander using a Flash 3.0 implementation.  Kinda neat.  The audio wasn't all that interesting, though.
    played all of it just fine played all of it just fine

    And the three coolest sites I found...
     
    Gabocorp - Fairly cool site for Gabocorp, a graphics arts/Web design company.  A little slow in loading but plays a little background musing (booming sounds) while it loads). played all of it just fine The intro text, which sort of unscrolls top to bottom, plays more jumpy than the Macromedia player did.  The Open Flash player was playing from the cache while Macromedia played from the net.  I wonder if that makes a difference?  Hitting the "next" key didn't clear the previous text so the newly displayed, unscrolling text became garbled.  This site didn't quite work right with the Open Flash player, although it didn't crash Netscape.
    Matinee Sound and Vision - includes sound but take a long time to load over a 28.8 modem (over 300K downloads).  Fairly high "Wow" factor (as they say on their site).
     
    no problems with audio or video Played intro quite well, but then opened a new Navigator window while playing second page audio.  Sound got completely out of sync too.  The second page should have played completely in the original Navigator window - I don't know why the second window opened.
    EYE4U Active Media site - includes sound and video; one of the absolutely coolest sites I've ever been too!  Plays while it loads!  Easily the fastest site I went to.
     
    no problems with audio or video Sound played badly but the animations seem to be ok (a little jumpy but ok).  However, when it reached a point where the user is supposed to place the mouse over some small balls, the original Flash file replayed.  That wasn't supposed to happen.

    The Open Flash package includes a standalone Flash player so you can test Flash files without having to run Netscape Navigator.  However, its README states it doesn't currently support morphing, alpha blending or anti-aliasing and its sound support is limited.  Running this version (0.4.3) of the Open Flash plugin wouldn't allow me to get to the Gallery from the main Flash Web site at www.flash.com.  I had to go directly to the gallery page (see link in table).

    While testing all the sites running with the Macromedia Flash plugin there was not a single crash of Netscape.  I'd say thats a pretty solid plugin.  I had absolutely no problems using this plugin with any site I visited.

    So, although the Open Flash plugin still has a few problems, both of these plugins offer you a chance to see some very interesting sites out there.  I highly recommend, if you're into some flashy (pardon the pun) pages, that you give these plugins a try.  You've got little to lose, right?


    Vector Drawing on Linux - XFig, TGIF and friends

    Over the past year we've heard a lot about the killer app for Linux - Gimp, the Photoshop-like tool for graphic arts work.  By now many of you may even be sick of hearing about it.  Especially if what you really need isn't a raster-based effects package, but a vector-based drawing tool.  For the past several years you really only had two choices:  XFig and TGIF.  Recently, a number of new projects have sprung up that aim to provide more modern interfaces and features for vector-based tools.  Despite the abundance of enthusiasm from the developers of those projects, none is quite ready for the average Joe Newbie, particularly because few of them are as easy to build and install as the two grandfathers in this category of applications.

    The first thing I did was try to find what vector tools are currently available.  A new site, linuxartist.org, has several listed.  A couple aren't tools for creating vector graphics.  The Flash plug-ins are only for viewing images, so I didn't look at them for this article (but see this months Web Wonderings).  The other tools I did look at were

    There are also vector based drawing tools available in the ApplixWare and StarOffice commercial packages.  The ApplixWare version is a little limited in features, but very stable and easy to use.  Installation of ApplixWare was quite simple as well.  I haven't used StarOffice's StarDraw package so can't speak of its ease of installation, stability, or feature set, although the specifications for it on the StarDivision web site seem fairly impressive.  Core's CorelDraw package is also due out sometime this year, I believe.  I don't know anything about it, however.  I'll save a head-to-head review of these commercial packages for a later date.

    By far the easiest vector tool to build and install was tgif, which required only an "xmkmf; make" for Linux systems.  No editing of any configuration files was necessary.  XFig was probably the next easiest, although it had quite a few configurable items to set in the Makefile if you wanted to get things optimized and looking their best.  Of the rest, I was only able to get XEBOT running under a limited environment.  The others required extra packages that were not already available on my Red Hat system or that were not complete enough on my system in order to build or install the drawing tool.

    Sketch is based entirely on the Python intepreted language.  Along with the interpreter and libraries, you also need an additional image library called PIL - the Python Imaging Library.  Unfortunately, this doesn't build with my RPM-based Python that was installed when I installed Red Hat 5.2.  This library expects some other parts which I could only get if I built Python itself and installed it.  I tried to build Python without installing it to see if I could tell PIL where that was, but it became too much work  in the long run.  Sketch, therefore, is more of a developers toy than an artists (or average users) tool.

    KIllustrator turned out to be much like Sketch, at least for me and from an installation point of view.  Its tied to KDE, which means I need to install KDE just to get it to work (not to mention the Qt libraries).  I glanced through the KDE web site and decided there were far too many packages to try to install just to get KIllustrator running.  Red Hat 6.0 is supposed to include KDE so maybe I'll try it then, when I have less work to do in order to get it running.  Personally, I think applications should be KDE and GNOME aware, but they shouldn't be tied to those environments.  Not if you want to reach the largest possible audience.

    GILT simply didn't compile.  It does include a "configure" script-based build process, but apparently its not quite ready for the average Joe's use.  I sent email to the author but really didn't give him much time to respond (Muse deadlines, once again, running up against work that pays).  In fairness, GILT is listed as being in very early development so its not unexpected that this particular tool isn't ready for the average user.

    IPAD/XEBOT required an 8-bit display to function.  I tried XEBOT first, which is supposed to contain all of the features of IPAD, plus a few more.  Even when I switched to 8-bit mode (which was a bit of a pain because my FVWM environment doesn't look correct in that mode) I wasn't able to do anything useful.  The UI is very user unfriendly.  It uses an interface that is obviously platform inspecific and drops it inside of a generic X window.  It just wasn't what I was looking for, especially since I'm not concerned with usability on non-Unix platforms.  IPAD looked and worked about the same as XEBOT.

    When it came right down to it, I was back to the old favorites, XFig and TGIF.  Since I couldn't really get the others to work very well, I thought I'd do a little side by side comparison of these two.  A little head to head competition, if you will.  If you don't like these two, and are up to the challenge of getting one of the others to work, you at least have a choice these days.

    TGIF vs XFig

    The easiest to learn to use was probably TGIF, but both TGIF and XFIG have so many features its easy to get lost in them.  I'd have to say TGIF's interface is more intuitive, using familiar menu configurations (File is on the left of the menu bar, for example).  TGIF is a little easier to use initially.  Its seems more intuitive to be able to draw a shape, then select it to edit its points.  XFig allows this, but the method to get to editing the points seems a little harder to figure out.  For example, with TGIF you select an object to edit by clicking on it while in selection mode.  In XFig you select "Move Points" and all the points for all visible objects are shown.  You then click on one to move it.  The hard part was finding the hotspot for the points in XFig.  You really have to get right on the little boxes (which represent the points) to grab them.  In TGIF, however, the hot spots are larger and you only mess with the objects you specifically selected.
     
    Sure, the problem here may be my unfamiliarity with using XFig.  But I'm also a GUI designer by trade so I understand about usability issues.  XFig's buttons across the top are either discreet features or menus, with the menus on the right side of that set of buttons.  This is counter to standard UI design styles, where menus are on the left, especially the File menu.  Additionally, TGIF uses standard layouts for most of its dialogs.  XFig does not.  For example, look for the Cancel button on the File Selection dialog in XFig versus where its located on any other dialog.  Seldom the same twice.  TGIF's dialogs are more standardized, which makes them easier to learn.

    One feature which both tools have is a visual display of what the mouse buttons do for any selected feature.  In TGIF this is along the bottom of the window.  In XFig it is in the upper right corner.  I like XFig's implementation of this better because its simpler - three buttons side by side, with text to the sides or above the buttons.  TGIF's is cute - the icons for the mouse are more realistic - but visually it takes a moment to get your bearings on which text goes with which button.  Its not difficult, mind you, I just prefer XFigs implementation.

     
    TGIF
    XFIG
    Ease of Setup
    4
    4
    User Interface
    4
    2
    Look and Feel    
         Ease of Use
    4
    2
         Online Help
    2
    4
    Documentation
    3
    4
    Example files
    1
    5
    File Import
    3
    3
    File Export
    3
    3
    Overall Rating
    3
    3.375
    Ratings: 1=Poor, 5=Superb

    One feature which both tools have is a visual display of what the mouse buttons do for any selected feature.  In TGIF this is along the bottom of the window.  In XFig it is in the upper right corner.  I like XFig's implementation of this better because its simpler - three buttons side by side, with text to the sides or above the buttons.  TGIF's is cute - the icons for the mouse are more realistic - but visually it takes a moment to get your bearings on which text goes with which button.  Its not difficult, mind you, I just prefer XFigs implementation.

    Rulers are handled differently in the two programs too.  In TGIF you have the traditional slider bars to move the page around.  The bottom slider is rather small, it doesn't expand the width of the visible page.  In XFig you click and drag within the rulers themselves to move around the page.  This one is a toss up.  TGIF's method is familiar, but XFig makes the rulers serve a dual purpose and thus saves a little screen space.  I like both methods equally well.

    TGIF imports XBM, XPM, GIF, and EPS files and has an interface for adding other import filters.  XFig imports the same, plus JPEG and PCX files.  The difference is that TGIF calls this "Import", while you have to know to click on the camera icon to import a "Picture" in XFig.

    XFig easily wins on the file export side.  If you're into Latex then you're in luck because XFig supports a wide range of Latex export options.  Additionally, it supports all the well supported Web image formats: PNG, JPEG, GIF, XBM, etc.  TGIF supports GIF and a few others, but its export capabilities aren't quite as extensive as XFig's.  TGIF also exports via its print function, which isn't the obvious place to put it.  Both tools support export to Postscript.  Strangely enough, I wasn't able to get XFig to export to any file format.  I also wasn't able to print because XFig said it couldn't open a temporary file.  I think my installation wasn't quite correct and may have been the cause of these problems.  Still, the print features of both appear fairly decent, with both making use of the basic print facilities on your Linux box.

    All this talks about fairly mundane issues.  What about real feature comparison?  Well, both support a wide range of drawing primitives:  circles and ovals, boxes, freehand drawings, polygons, polylines, and arcs.  TGIF has a few other canned shapes that may or may not be useful.  XFig provides a few different methods for doing splines (closed or open curves).  Both provide text input, with XFig providing far more fonts.  However, neither makes use of your complete set of installed fonts - they each have their own font support.  I have to say, although XFig offers far more font options, the dialog which provides it is rather, well, unusual looking.

    Summary:

    When I first started looking at XFig I thought it was pretty nifty.  This was even after having used TGIF in the past.  But when I compared the two side by side I found I much preferred TGIF.  Its just simpler to use.  Looking at the rating chart you might think I'd recommend XFig over TGIF.  Not necessarily.  In my case I'm concerned with ease of use and the time it takes to get to doing productive work.  Here, TGIF is a better choice.  XFig wins points for extensive documentation (and should be applauded loudly for this considering how many Open Source products come with so little, and/or so poor, documentation) and a large collection of examples that come directly with the source distribution.

    There may be a few more features in XFig that TGIF doesn't have that some users will need.  If thats the case then definitely check out XFig.  In fact, I recommend you take a look at both of them anyway.  You may find the problems I see in the XFig UI just don't bother you as much.  Both tools are quite extensive in basic drawing features and I'm sure one of them will provide at least some measure of satisfaction for your vector-based needs.

    [ Summary of Vector Drawing Tools for Linux ]
     

    The following links are just starting points for finding more information about computer graphics and multimedia in general for Linux systems. If you have some application specific information for me, I'll add them to my other pages or you can contact the maintainer of some other web site. I'll consider adding other general references here, but application or site specific information needs to go into one of the following general references and not listed here.
     
    Online Magazines and News sources 
    C|Net Tech News
    Linux Weekly News
    Slashdot.org
    TheGimp.com

    General Web Sites 
    Linux Graphics
    Linux Sound/Midi Page
    Linux Artist.org

    Some of the Mailing Lists and Newsgroups I keep an eye on and where I get much of the information in this column 
    The Gimp User and Gimp Developer Mailing Lists
    The IRTC-L discussion list
    comp.graphics.rendering.raytracing
    comp.graphics.rendering.renderman
    comp.graphics.api.opengl
    comp.os.linux.announce

    Future Directions

    Next month:

    Let me know what you'd like to hear about!


    © 1999 Michael J. Hammel


    Previous ``Graphics Muse'' Columns

    Graphics Muse #1, November 1996
    Graphics Muse #2, December 1996
    Graphics Muse #3, January 1997
    Graphics Muse #4, February 1997
    Graphics Muse #5, March 1997
    Graphics Muse #6, April 1997
    Graphics Muse #7, May 1997
    Graphics Muse #8, June 1997
    Graphics Muse #9, July 1997
    Graphics Muse #10, August 1997
    Graphics Muse #11, October 1997
    Graphics Muse #12, December 1997
    Graphics Muse #13, February 1998
    Graphics Muse #14, March 1998
    Graphics Muse #15, April 1998
    Graphics Muse #16, August 1998
    Graphics Muse #17, September 1998
    Graphics Muse #18, October 1998
    Graphics Muse #19, November 1998
    Graphics Muse #20, February 1999
    Graphics Muse #21, March 1999


    Copyright © 1999, Michael J. Hammel
    Published in Issue 41 of Linux Gazette, May 1999




    © 1999 Michael J. Hammel
    indent
    GIMP Dynamic Text
    GNU plotting utilities V2.2
     gView 0.1.2
     Giram 0.0.15
     X-Mame 0.35b10.1
     tgif 4.1.7
     R, a system for statistical computation and graphics.
     XawTV 2.41
     Ilib 1.1.1
     GXanim 0.20a
     gfontview 0.2
     Scitech Display Doctor 7.0 Beta5 fixed
     GIMP Imagemap plug-in 0.7
     Panorama 0.11.1
     Raychase 2.05
     LAGII 0.1.0 
     kdem 1.0.1 
     XawTV 2.43 
     CMatrix 0.98a 
     Gqcam 0.1 
    Disclaimer: Before I get too far into this I should note that any of the news items I post in this section are just that - news. Either I happened to run across them via some mailing list I was on, via some Usenet newsgroup, or via email from someone. I'm not necessarily endorsing these products (some of which may be commercial), I'm just letting you know I'd heard about them in the past month.

    GIMP Dynamic Text

    GIMP Dynamic Text is a GIMP plug-in that works like the text tool but allows you writing multi-line text and made you able of modifying it later as you want (text/font/font size/color/...).

    Currently at version 1.4.2.

    It's available for download at <http://registry.gimp.org/> and <http://www.geocities.com/Tokyo/1474/gimp/>

    Marco (LM) Lamberto
    lm@geocities.com


    GNU plotting utilities V2.2
    This is to announce the release of version 2.2 of the GNU plotting utilities ("plotutils") package, including version 2.0 of the underlying C/C++ vector graphics library.  This is a major release.

    The source code for the package is available as a gzipped tar file, 2.8 megabytes in size.  It's available on the main GNU ftp site, as ftp://ftp.gnu.org/pub/gnu/plotutils/plotutils-2.2.tar.gz , and at many GNU mirrors (see http://www.gnu.org for details).

    For the benefit of people using Red Hat or similar versions of GNU/Linux on Intel systems, I've created a pair of RPM's for the package.  They're at:

     ftp://platinum.math.arizona.edu/pub/plotutils-2.2-1.i386.rpm
     ftp://platinum.math.arizona.edu/pub/plotutils-2.2-1.src.rpm

    The long-awaited library-level support for graphing didn't make it into this release, unfortunately.  But it may make it into the next release (2.3).  The next file format to be supported will probably be CGM.

    All bug reports and suggestions for improvements are welcome.  It would be a good idea to mail them to bug-gnu-utils@gnu.org as well as to me, to give other people the chance to respond.

    Robert S. Maier   rsm@math.arizona.edu
    Dept. of Math.
    Univ. of Arizona

    Maintainer of the GNU plotting utilities package
    (see http://www.gnu.org/software/plotutils/plotutils.html ).



    gView 0.1.4
      Bruce Smith - April 13th 1999, 22:13 EST

    gView is a GTK/ImLib image viewer with an interface similar to ACDSee.
    Changes: Fixed a compile time bug in the Save Config functions, added image grab-n'-scroll and red/blue/green color adjustments.  Other bugfixes included.
    http://www.geocities.com/ResearchTriangle/Facility/1468/sg/


    Giram 0.0.15
      David Odin - April 13th 1999, 11:35 EST

    Giram Is Really A Modeller (or at least will be). It is written with the GTK+ User interface v1.1 or v1.2. It is still in early stages of development. It can load and save Persistance of Vision Scenes, some basic modelling tools are already there and it's growing very fast.

    Changes: Cool plugins interface, two plugins, Cut, Copy and Paste of objects, double clicking on a Tool will now bring up the 'Tool Options Box', a little bug about Cone selection has been removed, and better documentation.  There are also Light Sources, parsing, creation and drawing of 'Surface of Revolution' objects, online tutorial, new version of Povfront, and bugfixes.
    http://www.minet.net/giram/


    X-Mame 0.35b10.1
      Lawrence Gold - April 13th 1999, 11:29 EST

    X-Mame is the Unix version of the Multiple Arcade Machine Emulator, an arcade (coin-op) video game emulator. The latest development release is capable of playing over 1241 arcade and Neo Geo games.

    Changes: Added everything from MS-DOS b10, the debugger should work again, GGI support has been updated for GGI 2.0b2, and various Solaris fixes have been made (sound, working XIL, and MITSHM).
    http://xmame.retrogames.com/



    tgif 4.1.7
      Bill Cheng - April 13th 1999, 11:28 EST

    tgif is a vector-based draw tool, with the additional benefit of being sort of a web-browser. That is, you can fetch drawings from a web server with it, and you can make objects in your picture into hotlinks to other parts of the drawing, or to other drawings accessible via http.

    Changes: Added NLS support for menus, fixed bugs with overthespot for the xim input method, open/save/import gzipped obj files, and add a bunch of internal commands to make it a little easier for third party code to drive tgif.
    http://bourbon.cs.umd.edu:8001/tgif/



    R, a system for statistical computation and graphics.
      Friedrich Leisch - April 13th 1999, 11:25 EST

    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. R implements a language which is not entirely unlike the S language developed at AT&T Bell Laboratories by Rick Becker, John Chambers and Allan Wilks.  Indeed in the absence of an R manual, you can (mostly) get along by using the S manual.

    Changes: This is a major new release with many new features and bug fixes. New features include filled contour plots, improved X11 color handling, shading in perspective plots, socket interfaces, planar convex hulls, and more.  There is also now an experimental GNOME version of R.
    http://www.ci.tuwien.ac.at/R



    XawTV 2.41
      Gerd Knorr - April 13th 1999, 11:22 EST

    XawTV is a simple Xaw-based TV program which uses the bttv driver or video4linux. It contains various command-line utilities for grabbing images and avi movies, for tuning in TV stations, etc. A grabber driver for vic and a radio application (needs KDE) for the boards with radio support are included as well.

    Changes: avi recording completed, minor alpha fixes, mklinux support, improved Xideo extention support, a few tweaks here and there.
    http://www.in-berlin.de/User/kraxel/xawtv.html



    Ilib 1.1.1
      Craig Knudsen - April 12th 1999, 21:40 EST

    Ilib is an image manipulation library for developers. It's capable of reading and writing images (PPM & GIF) and many drawing functions including drawing lines and text using and any BDF (X11) font. It's great for generating GIFs from a CGI and generating graphs. Ilib includes sample applications for generating graphs for HTTP access.log files and QuakeWorld server frag log files.

    Changes: Bug fixes and a new client application that will draw all a BDF font's characters to an image.
    http://www.radix.net/~cknudsen/Ilib/



    GXanim 0.20a
      R. Warren - April 12th 1999, 21:40 EST

    GXanim is a graphical frontend for the XAnim movie player program based on the GTK+ widget set. The user can quickly locate a Quicktime/AVI/etc. file, play it, and use basic VCR-like features on the playing clip. You can now interactively set the volume as well as playing preferences.

    Changes: This is a service subrelease. A bug in config.h that could have complicated installation as well as a bug which prevented the playing of certain AVI files have both been fixed.
    http://www.iag.net/~aleris



    gfontview 0.2
      Roberto - April 12th 1999, 11:53 EST

    gfontview is a small font viewer for PostScript and TrueType fonts. It allows you to display any character or string in a particular font as well as all glyphs present in it. It supports antialiasing and kerning. It can also print font samples in several sizes.

    Changes: Ported to GTK+ 1.2 and uses the autoconf package now.
    http://www.geocities.com/SiliconValley/Foothills/1458/



    Scitech Display Doctor 7.0 Beta5 fixed
      Stéphane Peter - April 12th 1999, 11:52 EST

    Scitech Display Doctor is the ultimate graphics utility package that will improve your PC's graphics performance, ensure that applications run correctly and fix many common graphics problems.

    Changes: This release is the same as the previous Beta5, but it fixes a few fatal problems that prevented it from installing correctly. It should install fine now.
    http://www.scitechsoft.com/sdd_linux.html



    GIMP Imagemap plug-in 0.7
      Maurits Rijk - April 26th 1999, 12:53 EST

    The GIMP Imagemap plug-in enables The GIMP (GNU Image Manipulation Program) to create clickable imagemaps in CSIM, CERN or NCSA format.

    Changes: Plug-in now works correctly for GIF and grayscale images, finished implementation of NCSA and CERN mapfiles and implemented 'Close' menu item. A serious bug in 'Zoom To' menu has been fixed as well.
    http://home-2.consunet.nl/~cb007736/



    Panorama 0.11.1
      Angel Jimenez - April 26th 1999, 12:53 EST

    Panorama is a framework for 3D graphics production. It will include modelling, rendering, animating, post-processing, etc. There's currently no support for animation, but this feature will be added soon.

    Changes: Added PNG and JPEG plugins, added subdivision surface experimental plugin, fixed some minor compilation problems, and better support of different operating systems.
    http://www.gnu.org/software/panorama/panorama.html



    Raychase 2.05
      flux - April 26th 1999, 12:51 EST

    RayChase is a fast random recursive raytracer which will render cool images all by itself and will display them on your desktop. It has been tested on KDE, Gnome, WindowMaker, Enlightenment, etc. One can also write the output to a image file (interactivly updating web pages). RayChase versions exist for FreeBSD, MSDOG, WinNT, Win9x, OS/2 and PowerPC.

    Changes: This version (2.05) is a specific Linux (and FreeBSD) version with some added features. Visit the webpage for additional info.
    http://members.linuxstart.com/~flux/



    LAGII 0.1.0
       XoXus - April 30th 1999, 09:59 EST

    LAGII lets you run AGI games natively under Linux. AGI games include the Sierra classics such as Kings Quest, Space Quest, etc. Most games don't work fully, but they work quite well most of the time.

    http://www.zip.com.au/~gsymonds/LAGII/



    kdem 1.0.1
       Jamie Moyers - April 30th 1999, 09:58 EST

    kdem is an OpenGL viewer for USGS Digital Elevation Models (DEMs). It can read the new Spatial Data Transfer Standard (SDTS) format as well as the old text format. It supports the SpaceTec "SpaceOrb 360" game controller.
    http://home.i1.net/~jamoyers/kdem/



    XawTV 2.43
       Sean P. Kane - April 30th 1999, 09:54 EST

    XawTV is a simple Xaw-based TV program which uses the bttv driver or video4linux. It contains various command-line utilities for grabbing images and avi movies, for tuning in TV stations, etc. A grabber driver for vic and a radio application (needs KDE) for the boards with radio support are included as well.

    Changes: Video updates, some bttv changes to make it more compatible to the kernel version, removed the "unmute-on-open", updated the open/close for radio too, unbundled the bttv driver, errors are reported with a dialog box now, channel handling is completely rewritten. added some missing channels for japan, the -i and -n switches in streamer work again, fixed core dump with nonaudio devices, updated videodev2.h.

    http://www.in-berlin.de/User/kraxel/xawtv.html



    CMatrix 0.98a
       astyanax - April 30th 1999, 09:52 EST

    CMatrix is an ncurses program that simulates the screensaver from "The Matrix" from the movie's website. It works with your terminal settings (up to 300 columns wide) and can scroll lines all at the same rate or asynchronously.

    Changes: New scrolling motion (more like the movie, less like the Mac/Win screensavers). To get the original scrolling effect, flag -o has been added.
    http://www.plattsburgh.edu/faculty/allegrcr/cmatrix/index.html



    Gqcam 0.1
       Cory Lueninghoener - April 30th 1999, 09:44 EST

    Gqcam is a GTK based clone of QuickPict, the program that comes with QuickCams.
    http://cse.unl.edu/~cluening/gqcam/
    indent
    © 1999 by Michael J. Hammel

    © 1998 Michael J. Hammel
    indent
    Summary of Vector Drawing Tools for Linux

    XFig - screen shots

    Requirements:  just a regular X Window System installation, plus the Xaw3D library if you want the 3D buttons and so forth.

    Probably the grandfather of vector tools on Linux, xfig is a fairly feature rich package that requires no extra packages to get running on a stock Linux distribution - basically it should build and run pretty quick on any Red Hat, SuSE, Debian, Pacific High Tech system.  Any distribution with a standard X Windows System installation (and that should be all of them) should work.  You can build xfig using the Xaw3D libraries, which will give the UI a much nicer 3D effect, but thats not required.

    The main window opens pretty large and resizing doesn't automatically realign the buttons along the left side of the window.  You can specify the use of smaller icons during the build process.  This may help if you use a smaller display resolution like 800x600.

    The HTML based help system tries to launch Netscape but doesn't check for an existing Netscape process first.  It also doesn't open the browser to the pages of interest.  The code looks like it tries to do so, but for some reason it didn't do it.  Maybe it was my Netscape configuration, I don't know for certain.  Besides HTML based help, there are PDF help files too.  These require the Adobe acroread program.  Information is provided in the documentation that accompanies the source on where to find this tool.  Unfortunately, if xfig doesn't find acroread at run time, there are no messages saying it wasn't found.

    One good thing about xfig is that it installs under /usr/local by default, which is better for system administration purposes.  Tons of examples are provided in the source distribution, but these do not get installed so hang on to the source directory if you want to take a look at them.



    TGIF - screen shots

    TGIF gets installed under /usr/X11R6 by default, which is a little more difficult in terms of managing software packages.  Its not clear from the Imakefile, the README or the Imake templates how to change this behaviour, either.  Requirements:  just a regular X Window System installation, plus the Xaw3D library if you want the 3D buttons and so forth.

    The interface has improved dramatically since the last time I used TGIF, probably 2 years ago.  Its amazing how a little 3D look can improve the impact of the UI.

    An annoying aspect of the new UI is that mouse clicks don't get recognized unless I move my mouse after clicking.  Seems a minor thing, but after a while it gets to be a bit annoying.

    TGIF, like xfig, doesn't realign buttons along the left side either but it does a better job of UI design by allowing a much smaller window to be fully viewable.  You don't lose as many buttons, options, etc, when you sqeeze the window way down like you do with xfig.  Thats useful on smaller displays.

    I found it a bit hard to find help using this package, but you can find useful info in the FAQ at http://bourbon.cs.umd.edu:8001/tgif/faq/.  You can also find the very large man pages, in various formats (ASCII, PDF, HTML, etc) at http://bourbon.cs.umd.edu:8001/tgif/download.html.  The man page is also available in nroff format in the source distribution.

    There are some examples at http://bourbon.cs.umd.edu:8001/tgif/goodies.html.  There are a few interesting examples there, but not as many as XFig has.



    Sketch - screen shot

    Sketch is implemented completely in Python, a high level interpreted language.  It has some limitations, such as the visuals it will support.  The Web site says:

    For Sketch to work properly with transformed text, you also need an X-server capable of scaling and transforming fonts. (XFree86 does support this.  Otherwise, you need X11R6 as far as I know).
    Xi Graphics AcceleratedX also supports this, at least from version 4.1.  I don't know if Metro Link does, but assuming its an R6 conformant server, it should.  This is the first time I've seen this requirement on any X program.

    Sketch requires Python v1.5.1 or later, the Python Imaging Library, v1.0b1 and Tcl/TK, version 8.0 or later.  To build the Python Imaging Library (aka PIL) you can't use the RPM version of Python - you have to build the python distribution from source and install it.  This is because you have to build PIL under the "Extensions" directory of the Python 1.5 directories.  Although I have Python 1.5 installed on my stock RH 5.2 box, there is no Extensions directory.  Plus, if I just made the directory where 1.5 is installed (/usr/lib/python1.5), I'd have to build the PIL as the root user.  Not a good thing.  So I downloaded the Python 1.5 source, built it, then tried the PIL buid.  It didn't work - something about missing a config directory.  And all this before I could even try to build sketch.  Can you say "pain in the butt?"  Why do I have to install 10 packages every time I want 1?  I  find myself yearning for the dear old days of Xt and Athena based tools.

    Sketch appears to come with a lot of pages of HTLM documentation, but there isn't really much content in them.  Keep in mind, of course, that sketch (like most of the other tools) is still in early development.



    KIllustrator - screen shots

    KIllustrator requires the QT 1.41 libraries and the K Desktop Environment (KDE) version 1.1 or later.  The web site specifically states the current version does not compile with gcc 2.7.x, which comes standard on RH 5.2.  It will compile with egcs-1.x, however, and that does come with RH 5.2.  Its getting annoying:   first the migration from a.out to ELF, then migrating from libc5 to libc6 (aka glibc), and eventually migrating to egcs from gcc.  I hope this last migration is simpler than the previous two.  sigh  Is Linux ever going to go 2 full years without some major migration?

    The information on the web site is quite useful and the tool looks impressive.  If you run KDE already then you might want to take a look at this one.  Let me know if you had much trouble getting it up and running and I'll pass that along to my readers.  (No fair saying it was a breeze if you're one of the developers!)

    I didn't try this one because the installation of KDE is an adventure in itself (there are a ton of packages listed on the KDE home page and its not completely clear which ones are mandatory and which are not).  Any application that is so tied to some other application is a little more than I'm willing to deal with right now.  Even the Gimp isn't tied to GNOME.  Killustrator should be decoupled, if possible, from KDE so non-KDE users could enjoy its benefits as well.



    GILT - screen shot

    This is a merge, of sorts, of XFIG and Gimp, in very early stages of development.  The project is currently a one-man work. The goal is a freehand-like program with the following features:

    According to the author, Ralf Engles:
    The current state of the project is pre-alpha and not usable but making fast progress.   I am currently looking for experienced programmers. My plan is to be faster than the Correl-Draw Version for Linux, which is hard as a one man team.


    IPAD/XEBOT - screen shots

    These tools are neither shareware nor freeware.  They are currently only available in binary format and are free for evaluation purposes.  XEBOT has not superceded IPAD, but the Web site recommends looking at it instead since it includes all the functionality of IPAD plus some extras. According to the author, Sergio Masci:

    IPAD is a vector graphics tool and XEBOT is a forms / dialog editor come IPAD-Pro core interface.  IPAD, XEBOT and ZMECH are all derived apps built on the IPAD-Pro core.  IPAD uses a large subset of the IPAD-Pro interface in its raw form. In the past users were encouraged to use XEBOT instead of IPAD because XEBOT has all the vector manipulation capabilities of IPAD and at that time I did not have the time to spare to maintain the seperate IPAD release.
    The binary comes in SVGA and X11R6 versions.  The X11R6 version is not completely statically linked and is compiled with libc5.  That means RH5.2 users (and possibly others) may have to do a little fiddling with the LD_LIBRARY_PATH environment variable to get this to work.

    When I ran both XEBOT and IPAD I got a bunch of X protocol errors.  This is because neither program likes running in 24-bit (TrueColor) colour visuals.  I had to restart in 8-bit mode (256 color) to run this.
     
    indent
    © 1998 by Michael J. Hammel

    © 1999 Michael J. Hammel
    indent
    indent
    © 1999 by Michael J. Hammel

    © 1998 Michael J. Hammel
    indent
    GILT Screen Shot

    This screen shot of GILT was taken from the GILT Web site.  It looks a lot like the GIMP because its based on GIMP code.

    indent
    © 1998 by Michael J. Hammel

    © 1998 Michael J. Hammel
    indent
    KIllustrator Screen Shots

    These screen shots of KIllustrator were taken from the KIllustrator Web site.

    indent
    © 1998 by Michael J. Hammel

    © 1998 Michael J. Hammel
    indent
    Sktetch Screen Shots

    This screen shot of sketch was taken directly from the Sketch web site.  The following text is also from that site:

    The drawing shown in the window is, you might have guessed it, the tiger from ghostscript (tiger.ps in the examples diretory). It can be imported into Sketch as an Adobe Illustrator file (this means that you can edit it just as if it had been drawn in Sketch in the first place. The only other file in ghostscript's examples directory that can imported in this way is golfer.ps).

     
    indent
    © 1998 by Michael J. Hammel

    © 1998 Michael J. Hammel
    indent
    TGIF Screen Shots

    These screen shots of tgif were taken on my system.  The first shows an example file provided from the Goodies Web page.  The second shows a unique feature for TGIF - tear off menus.  This can be quite handy, although if you're like me they can get lost easy if you have AutoRaise configured in your window manager.

    Sorry for the poor detail in the images.  I just wanted to give a little idea of what you get with TGIF, so you can at least see some of the UI differences in the various tools.
     

     
    indent
    © 1998 by Michael J. Hammel

    © 1998 Michael J. Hammel
    indent
    XEBOT/IPAD Screen Shots

    These screen shots of IPAD were taken from the XEBOT/IPAD web site.  They don't show the interface, only what you can do with the package.  I don't have any screen shots of the UI.

    indent
    © 1998 by Michael J. Hammel

    © 1998 Michael J. Hammel
    indent
    XFig Screen Shots

    These screen shots of xfig were taken on my system.  The first two show a couple of the example files provided with the source distribution.  There were some even better ones than these, but they had restrictions on public use so I thought I'd better not use them here.  The last image is the file selection box.  It looks a little different than what you might be familiar with when using GTK, KDE or Motif applications but considering the widget set it used its pretty good.  You even get a little preview window of the files!
     
     

    indent
    © 1998 by Michael J. Hammel

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


    Linux Primer Series

    By Ron Jenkins


    Introduction to Disaster Recovery

    Copyright 1998 - 1999 Ron Jenkins. All Rights Reserved.
    P.O. Box 229, Kirbyville, MO, 65679

    Introduction
    The Linux Primer Series, FKA the Linux Installation Primer, is a body of work designed to provide the reader with clear, concise information about the Linux Operating System and it's many powerful features.

    Disclaimer: While the author takes every precaution to insure the accuracy of the information contained herein, the author assumes no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein.

    Disclosure: Here I will declare any affiliations or business relationships I have, as soon as I get some, (hint, hint.)

    New versions of this document
    You can view the latest version of this document via the URL:
    http://www.grapevine.net/~jenkinsr/primer/  (Not up Yet, hopefully by the end of the month.
    I encourage you to mail any questions or comments about this document to Ron Jenkins, rjenkins62@netscape.net.

    Recent Changes and News
    News -
    I had intended to address printing issues this month, but after getting all my goodies in the post - I'm not making any money yet, but I'm getting free stuff - always a good sign.

    Caldera and Debian have just put the latest release of their distribution into the fray, and RedHat announced 6.0 today (although so far I've played h*ll getting into the FTP site, and Slackware draws ever closer to it's next release (with KDE for those that have to have it!)

    So, I will hold off a bit until I can make sure the changes in the new distributions won't alter the printing functions.

    So, I've decided to discuss that nasty thing we all hate called disaster recovery.

    I have received hundreds of email messages from people inquiring about assistance in resolving a problem they might have.

    As always, I am happy to help whenever I can, in any small way that I can, however, I get 50-100 messages per day, so please be patient with me, I will answer messages in the order they are received.

    Finally, there have been several instances where I have replied to a request, only to have my mail bounced back to me by the remote server due to "excessive spamming" from netscape.net.

    This is silly and completely unnecessary. Only unskilled or lazy admins take the approach of denying an entire domain based on the action of a few bad individuals.

    So, if you do not receive a reply from me within a week, it is likely you have a lazy or unskilled admin at your ISP. I suggest you call them and request they deny service properly, on a case by case basis. If they are unwilling or unable to do this, get another ISP.

    Changes - none

    Before You Start
    Sit down for a minute, and run through your disaster recovery plan in your mind. Get out a pencil and paper, and let me share a few of my mistakes with you, hopefully preventing you from making them all over again.

    Hardware and Software, and Wetware Requirements
    While I will discuss various hardware and software solutions, as well as some things you probably may have overlooked - (don't feel bad, I did too and hosed some machines.)

    The most important quality, or requirement, is the diligence to make a plan, stick to it, always, and constantly strive to update and improve it.

    As we move more and more to an information dependent society, a critical failure can cause heinous, cascading effects that could conceivably deny you your basic human rights, like your phone line and power for your computer and modem, and oh yeah civilization as we know it.

    And most important of all, learn Ron's two rules of Disaster Recovery:
    1. FEAR IS GOOD.
    2. PARANOIA IS BETTER.
     

    Disaster Recovery and it's place in the information age

    Overview
    The purpose of this column will be to give you some ideas you may not have thought of before, remind you of a few we all skip all too often.

    By the time you are finished with this column, you should have a broad grasp of the spectrum of tasks and problems grouped under the heading "Disaster Recovery," and know where to find further information and tools to develop your own unique implementation suitable to your installation.

    Basic Tasks
    Environmental Concerns
    Electrical Concerns
    Uninterruptable Power Supply (UPS)
    Logical Diversity
    Physical Diversity
    Geographical Diversity

    Detailed Tasks
    Environmental Concerns
    Computers, like all Electronic devices are sensitive to heat, dust, and gunk.

    While it may not be practical for a you to build a cold room for your home computer, there are still things you can do to minimize the wear and tear on your system:

    Get an air cleaner to remove the dust from the room.

    Either place your computer in a cool room in the house, or possibly get a
    window unit.

    Don't smoke in the same room as the computer. You have no idea the nasty goop I've found inside a customer's case.

    Electrical Concerns
    Make sure you have sufficient power to operate your gigafloppin', numbercrunchin' game mother. And printer. And scanner. And fax. And so on.

    Surge suppressers are a big market item, and deservedly so, as far as they go. However, to protect your data whether at home or at work (sometimes these are the same places,) it is critical to insure your equipment is provided a clean, filtered, consistent, and constant source of power.

    Surge suppressers merely attempt to reduce the amount of excess energy, or spike from damaging your computer.

    They do this by placing a Metal Oxide Varistor (MOV) between the energy source and the computer, sort of like a fuse. (this is not really how it works, but you get the idea.)

    However, they have two great failings - most of them don't inform you when the MOV is no longer functional, and they provide no power themselves to allow the user to perform a clean shutdown of he system.

    "Harshing" a UNIX box, or any box for that matter, can do really nasty things to the file system.

    Uninterruptable Power Supply (UPS)
    Enter the UPS. The UPS provides surge protection for the line cord, and the phone line in some cases, contains a battery to provide the clean shutdown capability, and can usually be configured to shutdown your machine without human intervention.

    There are many good companies out there, producing many good UPS's. I can only say that I use Tripp-Lite and APS products exclusively, for two reasons - one, they are damn good units, and two, I have had occasion to put them to the test on the "Lifetime Warranty" claim, and both companies have come through and went out of their way to get me back up and running.

    Logical Diversity
    Here comes the dirty word - BACKUPS!

    We all know we should do them, and we have all been caught without them. But with the nature of business today, a backup failure can literally mean life or death for a company.

    I'm not going to get into the specifics of the best device, best programs, etc.

    Rather, I will try to inculcate (scare) you into adopting a plan, and STICKING WITH IT!

    Whatever the media you have or plan to get, it is important to develop a written backup plan, coupled with a hard copy backup log.

    These two tools are essential to make sure the backup was performed, verified, and labeled and stored in the proper place. It is also a good idea to have the backup operator sign in and out of the log.

    How often to back up?
    A good question with no set answer.

    What I usually tell my clients is to backup anything critical to operations daily and weekly using a minimum of 16 media if they are a Monday - Friday shop, 18 if they are a Monday - Saturday shop.

    This is implemented as follows:
    5 tapes per week lasting two weeks 10 tapes total for incremental backups.

    2 tapes per week lasting three weeks 6 tapes total for full backups.

    This gives you a three week rollback capability for when someone in a suit comes in freaking out about a report they deleted a week ago. (This could also be a good time for salary negotiation.)

    Physical Diversity
    This is the idea of storing the same data in or on more than one physical device. Some common implementations of this idea are disk mirroring, striping, and other hardware and software solutions grouped under the term Redundant Array of Inexpensive Devices (RAID.)

    Linux comes with md raid utilities, on board, and I understand these are expanded in the new releases using the 2.2 kernel. Stay tuned.

    Geographical Diversity
    Remember the backup tapes you make? make copies and put them somewhere other than your primary installation.

    If they contain sensitive or proprietary data, a safety deposit box is a good idea.

    All done now right? Oh, no grass hopper. Now send one to a different part of the country than where you reside.

    Can you say FLOOD? EARTHQUAKE? TORNADO? Sure, I knew you could.

    Now that I've hopefully scared the heck out of you, or before you start laughing at the skinny, crippled UNIX nut that gets paid obscene fees, think for a minute about two things - What if your company lost all it's data irrevocably. Could you still stay in business? Ah, now you see why the cryp makes the bucks.

    Finishing Up
    All kidding aside, I hope I have impressed on you in some small way, the importance of a thorough, comprehensive plan to deal with data Disasters.

    I have seen companies go out of business because of this. I wrote this to try to keep you from being one of them.

    Other sources of Information

    General Linux references
    http://www.redhat.com/
    http://www.slackware.com/
    http://www.calderasystems.com/
    http://www.suse.com/

    Topic specific references
    Network Administrator's guide
    System Administrator's Guide
    UPS HOWTO

    To learn more
    http://www.ugu.com/
    http://www.webzone.net/jimm/dr_links.htm
     


    Previous ``Linux Primer'' Columns

    Linux Primer #1, September 1998
    Linux Primer #2, October 1998
    Linux Primer #3, November 1998
    Linux Primer #4, December 1998
    Linux Primer #5, January 1999
    Linux Primer #6, February 1999
    Linux Primer #7, March 1999
    Linux Primer #8, March 1999


    Copyright © 1999, Ron Jenkins
    Published in Issue 41 of Linux Gazette, May 1999


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


    Ray-Traced Backgrounds

    By Larry Ayers


    Introduction

    Ever had the feeling that your CPU, able to execute floating-point calculations with lightning speed, isn't working hard enough as it idly coasts along? A new automatic ray-tracer called Raychase will remedy this situation. A Dutch programmer known as flux, who seems to be associated with a company or organization called Squashed Rabbits, has released a multi-platform "random recursive ray-tracer" which will periodically render desktop or web-page backgrounds, either tiled or full-screen. It is intended to be run continuously; on my low-end Pentium machine a new desktop background is generated every three or four minutes. Flux, when asked the question "What is the purpose of Raychase?", answered:

    Create pretty & wacky pictures - arty farty stuff - eye candy - you name it - sorta ...

    Installation and More Details

    Installation of Raychase consists of nothing more than unpacking the tar.gz archives (there are two, one containing datafiles and the other binaries) in a convenient location. Two executables are included, an optimized fast-running one called raychase.fast and a slower debugging version, raychase.debug which will output copious messages to the console while it is running.

    Raychase makes use of a variety of pigment settings, graphic filters, and preset templates which are chosen randomly for each successive image. These generated images aren't completely random, though. They remind me of images from science fiction movies; shaded spheres, lens-flares, and odd textures abound. They could be called geometric abstractions. Here is a typical rendering:

    Raychase Image

    and here is another:

    Raychase Image


    Raychase's behavior is controlled with command-line options. The command

    raychase.fast -e

    will generate fullscreen desktop backgrounds, while the command

    raychase.fast -e -x64 -y64

    will tile the desktop background with 64x64 tiled images. Naturally the smaller images render faster; a background which changes every few seconds would be distracting, but running Raychase this way for a while will provide a demonstration of the different types of images. It's also possible to run Raychase without a display, with the images saved to PPM files. As an example, this command will save 640x480 images to the /tmp directory:

    raychase.fast -x640 -y480 -d -s /tmp/%04d.ppm

    A command such as this could be used to save files to a cgi-bin directory where they could be used as a source of periodically changing web-page backgrounds.

    You don't have to run Raychase randomly. There are command-line options which allow you to specify the filters and pigments. Even the faster binary outputs a certain amount of status information to the console, so the variables randomly chosen to generate a particular image are accessible and could be re-used as command parameters.

    Availability

    The current home site, from which binaries and data-archives can be obtained for a variety of operating systems (including both libc5 and glibc flavors of Linux) is this web-page. Raychase at this time is a binary-only application, but there is a chance that at least a portion of the source-code will be released in the future.


    Last modified: Sat May 1 12:09:14 CDT 1999


    Copyright © 1999, Larry Ayers
    Published in Issue 41 of Linux Gazette, May 1999



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


    A Visual Packet Monitor

    By Larry Ayers


    Introduction

    For the past few years I've used internal modems, but I still miss the flickering lights on the first modem I ever used, an external unit which seemed fast at the time. One of these lights indicated incoming data-packets while another showed the outgoing. The advantages of these inobtrusive lights were that they didn't occupy screen real-estate and they could be monitored with peripheral vision.

    Recently Matthew Bevan released a new version of NetLED, a small utility which monitors any of several interfaces such as PPP, SLIP, or ethernet using the keyboard's light emitting diodes (LEDs). This is a great idea, since these LEDs aren't particularly useful in their native state. I've never had any use for the Caps Lock key, or its LED; I like to have that key generate the Escape key key-code (easing VI mode-switching), which leaves its LED open for alternate uses such as NetLED.

    NetLED is a tiny program (meant to be run as a daemon) which can be left running even when a network interface is inactive. The command syntax is simple:

    netled [console] [interface]

    As an example, I use it to monitor activity on a dial-in PPP connection:

    netled console ppp0

    The console parameter, if just "console" is specified, allows the LEDs to flash on all consoles, while ppp0 tells the program to monitor the first PPP device. Substitute eth0 in order to monitor the first ethernet device.

    A strongly worded warning in the README file encourages the user to follow the recommended syntax:

         NOTE: DO NOT PREPEND /DEV/ TO ANY OF THE DEVICES!!!
         I MOCK ANYONE WHO ASKS ME HOW TO FIX THEIR COMPUTER
         WHEN THEY ARE DOING THIS!
    
         PROPER: netled console lo
         NOT: netled /dev/console /dev/loop0
    

    I'm curious as to the nature of the dire consequences implied by this warning, but not curious enough to try it!

    NetLED can be started manually (I've aliased  'netled console ppp0'  to  'led') or it could be started in either an init script or as an addition to a PPP start-up script.

    If you would like to try it out, the source code can be obtained from this WWW site:

    http://mars.ark.com/~mbevan/netled/.


    Last modified: Sat May 1 12:15:07 CDT 1999


    Copyright © 1999, Larry Ayers
    Published in Issue 41 of Linux Gazette, May 1999


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


    In our July 1998 issue, we printed an article called LinuxCAD Impressions by Robert Wuest. In the interest of fair play, here is the official response to that review from Software Forge, Inc.


    Official Reaction of Software Forge Inc. to "LinuxCAD Review"

    By Robert Weaver, President Software Forge Inc.


    To put this in context let us briefly answer the question "What is LinuxCAD?":

    LinuxCAD, http://www.linuxcad.com/, is an AutoCAD for Linux for all practical purposes it implements all major features of ACAD in such a way that new users (who had ACAD experience before) do not need any additional training to start working with LinuxCAD).

    But more then that LinuxCAD is a general purpose visual modelling system that runs on all Unix platforms (Linux, LinuxPPC, Solaris x86, RS/6000, BSDI, FreeBSD, Solaris SPARC, SCO UNIX) and on Windows NT.

    LinuxCAD can be used in:

    LinuxCAD as general purpose CAD and Visual Modelling System directly competes with CAD system AutoCAD by Autodesk which currently approaching status of complete monopoly in CAD marketplace as Microsoeft is in Operating Systems.

    Do the math yourself:

    To do typical CAD works you need to install so called "AutoCAD for PCs" on Windows NT workstation:

    You can replace all of the above to:

    You have at the least $500 in savings per one drafters workstation, if you are new user you will save $3000 in comparison to AutoCAD!

    LinuxCAD indirectly competes with Microsoft as well, although we support Windows NT. We do not distinguish it as main or dominant platform and we trying to level the platforms as it relates to LinuxCAD with emphasize to Linux for Intel as main platform for LinuxCAD.

    LinuxCAD captures the most important aspects of ACAD as: entity selection mechanism, same dialog in the command line, object snaps (as intersect, mid, center , tangent, perpend and others), LinuxCAD allows to use SHX formats and can exchange data to ACAD and many other systems.


    LinuxCAD imposes tremendous threat to Autodesk, as it provides all the features the AutoCAD provides including programable AutoCAD's architecture. More then that LinuxCAD allows smooth transition from AutoCAD to LinuxCAD without additional training.

    In any case: about 70% of 2D drafting works and 50% at least of 3D works may be done in $99 LinuxCAD on Linux instead of $3000 Acad on Ms-NT. Every sale of LinuxCAD translates to automatic $3000 loss to Autodesk, THAT IS WHY MR ROBERT WUEST is out there trying to discredit us. They are afraid of the LinuxCAD, the product that has achieved that kind of major market impact and user support as LinuxCAD has achieved, just in one year!

    They want not to allow us to grow, now when we are small, and they have used that review to do it. Autodesk wants again to rob the consumer from his right to choose as they did it with Generic CADD and many other small CAD packages! But they are not succeding this time!


    Our official responce to LinuxCAD review is long overdue and here it is:

    We are hard working, good guys! Disregard that "anti-Linux" lie you may have seen in that review!

    Robert Weaver, President
    Software Forge Inc. (makers of the leading CAD product for UNIX and X/Windows), http://www.linuxcad.com


    Copyright © 1999, Robert Weaver
    Published in Issue 41 of Linux Gazette, May 1999


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


    Using diald to Connect to the Internet

    By Mark Nielsen


    Hello! This is a brief article about how to setup Diald on a RedHat 5.2 system. Yes, I know RedHat 6.0 is out, but this will be for a RedHat 5.2 system anyways. I wasn't able to test it on a RedHat 6.0 system in time.

    What is Diald? It is program that runs in the background of your Linux system which will connect you to the internet through a modem anytime you try to get something from the internet. Thus, instead of manually dialing to get connected to the internet, all you have to do is type a url into your web browser, and if you are not already connected, it will attempt to connect for you. It also has the capability of disconnecting you after a period of inactivity with the internet.

    Here are some more resources to help you.

    1. Diald homepage
    2. Mark's setup for QuickNet customers. QuickNet is a local ISP in Columbus, Ohio which supports Linux.
    3. FTP site where diald is located
    4. My copy of the diald rpms. I don't remember where I got them from.

    This article is going to briefly tell you how to setup diald easily with RedHat 5.2.
    1. First, download the RPMS or from sunsite the tar files. I usually use the rpms.
    2. Install the two rpms
      rpm -Uhv diald*.rpm
    3. Next, use my configuration of /etc/diald/diald.conf
    After you have downloaded the rpms, installed them, and replaced the diald.conf file, you need to do three things, edit diald.conf, activate the diald service, and make sure you have added ppp0 to the RedHat control panel.
    1. Replace MY_USERNAME_FOR_MODEM with the username you are connecting to your ISP. I am not sure if you actually need to do this, but it works for me.
    2. Okay, now add a "ppp0" interface (modem interface) to your computer. This can get lengthy. Here is TCU's article about setting up ppp0 for QuickNet users. If you are unable to get to that article, look at my brief notes about how to setup a ppp0 connection using RedHat's Control Panel.
    3. Next, you need to activate diald. The easiest way to do this is
      /etc/rc.d/init.d/diald start

      Or if you want to have it activated when your computer starts,
      chkconfig --add diald

    DONE!


    #
    # diald.conf modified by Mark
    #
    accept any 1200 any
    mode ppp
    device /dev/modem
    speed 57600
    modem
    lock
    dynamic
    local 137.130.2.44
    remote 137.130.1.14
    pppd-options name MY_USERNAME_FOR_MODEM
    up-delay 5
    defaultroute
    crtscts
    connect "/usr/sbin/chat -f /etc/sysconfig/network-scripts/chat-ppp0"
    redial-timeout 10
    fifo /etc/diald/diald.ctl
    


    To setup your modem to com1 or com2
    1. # For com1
    2. rm /dev/modem
    3. ln -s /dev/cua0 /dev/modem
    4. # For com2
    5. rm /dev/modem
    6. ln -s /dev/cua1 /dev/modem


    Here are the steps I did to get ppp setup. I did this as root. First, log in as root and start xwindows. The command to start Xwindows is "startx".

    1. The control panel should be there, choose network configuration. If it is not there, type this command in the xterm prompt to start the control-panel "control-panel".
    2. In this program, choose "Interfaces".
    3. Click on "Add".
    4. Choose "ppp".
    5. Enter in the phone number, username, and password.
    6. Click on "Use pap authentication".
    7. Click on "done".
    8. Click on "save".
    9. Now we need to set your DNS up correctly. Click on "Names" in the top menu of the Network Configurator. You should see "Nameservers" there.
    10. Enter "127.0.0.1" as one of the entries unless you have the number which should have been given to you by your ISP. 127.0.0.1 is a bad choice and should only be used as a last resource. Also, if you enter 127.0.0.1, you must have your DNS server installed locally and running in order for it to work. It is highly recommended to put in a nameserver number which your isp should have.
    11. Click on "Save".
    12. Click on "Interfaces" in the top menu.
    13. Now click on "Activate" for the ppp option you just made.
    To activate and deactivate the modem as root, again, in the control-panel, choose "Network Configurations", then choose "Interfaces", select "ppp0", then click on "Activate" or "Deactivate" or turn the modem off and on.
    Mark Nielsen works for The Computer Underground as a Linux geek. It is his first job that is 99% Linux oriented which leaves him ethically clean and feeling good about the work he does.


    Copyright © 1999, Mark Nielsen
    Published in Issue 41 of Linux Gazette, May 1999


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


    Will Microsoft leave Mindcraft twisting slowy, slowy in the wind?

    By Eric S. Raymond


    Microsoft's latest FUD (Fear, Uncertainty and Doubt) tactic may be backfiring.

    A 21 April ITWeb story [1] reported results by a benchmarking shop called Mindcraft that supposedly showed NT to be faster than Linux at SMB and Web service. The story also claimed that technical support for tuning the Linux system had been impossible to find.

    Previous independent benchmarks (such as [2]) have found Linux and other Unixes to be dramatically faster and more efficient than NT, and independent observers (beginning with a celebrated InfoWorld article in 1998 [3]) have lauded the Linux community's responsiveness to support problems. Linux fans smelled a rat somewhere (uttering responses typfied by [4]), and amidst the ensuing storm of protest some interesting facts came to light.

    1. The benchmark had been paid for by Microsoft. The Mindcraft press release failed to mention this fact.

    2. Mindcraft did in fact get a useful answer [5] to its request for help tuning the Linux system. But they did not answer the request for more information, neither did they follow the tuning suggestions given Also, they forged the reply email address to conceal themselves -- the connection was made after the fact by a Usenetter who noticed that the unusual machine configuration described in the request exactly matched that of the test system in the Mindcraft results.

    3. Red Hat, the Linux distributor Mindcraft says it asked for help, reports that it got one phone call from them on the installation-help line, which isn't supposed to answer post-installation questions about things like advanced server tuning. Evidently Mindcraft's efforts to get help tuning the system were feeble -- at best incompetent, at worst cynical gestures.

    4. An entertainingly-written article [6] by the head of the development team for Samba (one of the key pieces of Linux software involved in the benchmark) described how Mindcraft could have done a better job of tuning. The article revealed that one of Mindcraft's Samba tweaks had the effect of slowing their Linux down quite drastically.

    5. Another Usenet article [7] independently pointed out that Mindcraft had deliberately chosen a logging format that imposed a lot of overhead on Apache (the web sever used for the Linux tests).

    So far, so sordid -- a fairly standard tale of Microsoft paying to get exactly the FUD it wants from a nominally independent third party. But the story took a strange turn today (22 Mar) when Microsoft spokesperson Ian Hatton effectively admitted [8] that the test had been rigged! "A very highly-tuned NT server" Mr. Hatton said "was pitted against a very poorly tuned Linux server".

    He then attempted to spin the whole episode around by complaining that Microsoft and its PR company had received "malicious and obscene" email from Linux fans and slamming this supposed "unprofessionalism". One wonders if Hatton believes it would be "unprofessional" to address strong language to a burglar caught in the act of nipping the family silver.

    In any case, Microsoft's underhanded tactics seem (as with its clumsy "astroturf" campaign against the DOJ lawsuit) likely to come back to haunt it. The trade press had largely greeted the Mindcraft results with yawns and skepticism even before Hatton's admission. And it's hard to see how Microsoft will be able to credibly quote anti-Linux benchmarks in the future after this fiasco.

    [1] "Microsoft Windows NT 4.0 out performs Linux"
    http://www.itweb.co.za/sections/computing/1999/9904211045.asp

    [2] "Microsoft Windows NT Server 4.0 versus UNIX"
    http://www.kirch.net/unix-nt.html

    [3] "1997 Product of the Year"
    http://www.infoworld.com/cgi-bin/displayTC.pl?/97poy.supp.htm

    [4] "Mindcraft Reality Check"
    http://www.linux-hw.com/~eric/mindcraft.html

    [5] "Re: Need help with performance"
    http://x14.dejanews.com/[ST_rn=ps]/getdoc.xp?AN=453900037&CONTEXT=924792680.312 147973&hitnum=7

    [6] "Trust no one: How Mindcraft could have made a better Linux file server"
    http://www.linuxworld.com/linuxworld/lw-1999-04/lw-04-mindcraft.html

    [7] "It's the old DNS logging trick, Re: Is NT really 3.7 times faster than Linux?"
    http://x13.dejanews.com/[ST_rn=qs]/getdoc.xp?AN=469420638&CONTEXT=924804285.163 6696091&hitnum=6

    [8] "Outrage at Microsoft's independent, yet sponsored NT 4.0/Linux research"
    http://www.itweb.co.za/sections/enterprise/1999/9904221410.asp

    Eric S. Raymond


    Copyright © 1999, Eric S. Raymond
    Published in Issue 41 of Linux Gazette, May 1999



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

    Published by Linux Journal


    The Back Page


    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 and is now working for LinuxCare. 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.

    Michael J. Hammel

    A Computer Science graduate of Texas Tech University, Michael J. Hammel, mjhammel@graphics-muse.org, is an software developer specializing in X/Motif living in Dallas, Texas (but calls Boulder, CO home for some reason). His background includes everything from data communications to GUI development to Interactive Cable systems, all based in Unix. He has worked for companies such as Nortel, Dell Computer, and Xi Graphics. Michael writes the monthly Graphics Muse column in the Linux Gazette, maintains the Graphics Muse Web site and theLinux Graphics mini-Howto, helps administer the Internet Ray Tracing Competition (http://irtc.org) and recently completed work on his new book "The Artist's Guide to the Gimp", published by SSC, Inc. His outside interests include running, basketball, Thai food, gardening, and dogs.

    Ron Jenkins

    Ron has more than 20 years experience in the RF/Satellite Communications and Networking Industry. He divides his time between his Ozark homeland and the "nasty stankin' city." I change this thing every time just to see if anyone notices. ;-)

    Christopher Lopes

    Chris is a computer science major in his senior year at Eastern Washington University.

    Mark Nielsen

    Mark founded The Computer Underground, Inc. in June of 1998. Since then, he has been working on Linux solutions for his customers ranging from custom computer hardware sales to programming and networking. Mark specializes in Perl, SQL, and HTML programming along with Beowulf clusters. Mark believes in the concept of contributing back to the Linux community which helped to start his company. Mark and his employees are always looking for exciting projects to do.

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

    Doc Searls

    Doc is the Sr. Editor at Linux Journal. He has been writing on technology and other issues for most of his life, but resists learning vi.

    Richard Sevenich

    Richard is a Professor of computer science at Eastern Washington University in Cheney, WA. He is also a part-time ski patroller at Schweitzer Mountain near Sandpoint, Idaho. His computer science interests include Fuzzy Logic, Application-Specific Languages and Parallel, Distributed, Real-time Industrial Control. He is an enthusiastic user of Debian/GNU Linux.

    Thomas Smyth

    Thomas works for the state electricity utility ESKOM in Cape Town, South Africa as a Support Engineer. He have used Turbo Pascal for many years, and more recently Delphi. He started learning Red Hat Linux 5.1 after hearing about the stability and features of Linux. He is now on a steep UNIX learning curve, reading the various HOWTO's, Guides and Man pages whenever he has a spare moment.

    James Rogers

    James and Shala Rogers live on the Olympic Peninsula in the middle of nowhere. James is a systems programmer for the University of Washington Medical Centers, Harborview Medical Centers and the University of Washington Physicians Network. He is a Health Level 7 Interface programmer who is currently writing a GNU licensed HL7 interface. These interfaces allow approximately 40 medical computer systems to communicate with each other across the entire Seattle Metropolitan area.


    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.

    The time has come for me to again pass on the reins of Linux Gazette. I need my weekends back for sanity. I have enjoyed doing LG and will miss it. You can bet that I will still be keeping an eye on things as overseer.

    SSC hired Mike Orr as webmaster in April and he will be taking over LG with the next issue.

    Have fun!

    Marjorie L. Richardson
    Editor, Linux Gazette, gazette@ssc.com


    [ TABLE OF 
CONTENTS ] [ FRONT 
PAGE ]


    Linux Gazette Issue 41, May 1999, http://www.linuxgazette.com
    This page written and maintained by the Editor of Linux Gazette, gazette@ssc.com
    Copyright © 1999 Specialized Systems Consultants, Inc.