8184 lines
327 KiB
HTML
8184 lines
327 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||
<HTML>
|
||
<HEAD>
|
||
<TITLE> Linux Gazette Front Page </TITLE>
|
||
<META NAME="robots" CONTENT="noindex, nofollow">
|
||
</HEAD>
|
||
|
||
<BODY BGCOLOR="#EEE1CC" TEXT="#000000" LINK="#0000FF" VLINK="#0020F0"
|
||
ALINK="#FF0000" >
|
||
<center><H2>
|
||
<IMG SRC="../gx/banner.gif"
|
||
ALT="Linux Gazette... making Linux just a little more fun!">
|
||
</H2>
|
||
|
||
<H5>Copyright © 1996-97 Specialized Systems Consultants, Inc.
|
||
<A HREF="mailto:linux@ssc.com"><I>linux@ssc.com</I></A></H5>
|
||
</center>
|
||
|
||
<P> <HR> <P>
|
||
<!--==================================================================-->
|
||
<center>
|
||
<H1>Welcome to Linux Gazette!<img src="../gx/tm.gif" alt="(tm)"></H1>
|
||
</center>
|
||
<P>
|
||
Sponsored by:
|
||
<center>
|
||
<H1><A HREF="http://www.infomagic.com/"><img src=../gx/infologo.gif alt="InfoMagic"></A></H1>
|
||
</center>
|
||
<P>
|
||
Our sponsors make financial contributions toward the costs of
|
||
publishing <I>Linux Gazette</I>. If you would like to become a sponsor
|
||
of <I>LG</I>, e-mail us at <A
|
||
HREF="mailto:sponsor@ssc.com">sponsor@ssc.com</A>.
|
||
|
||
|
||
<P> <HR> <P>
|
||
<H4>"Linux Gazette...<I>making Linux just a little more fun!</I>"</H4>
|
||
<HR>
|
||
<center>
|
||
<table width="100%" cellpadding=7><tr><td>
|
||
<H2><a NAME="mail"><IMG SRC="../gx/mailbox.gif" ALIGN=MIDDLE ALT=" ">
|
||
The Mailbag!</a> </H2>
|
||
Write the Gazette at <A HREF="mailto:gazette@ssc.com"> gazette@ssc.com</A>
|
||
</td><td>
|
||
<H3>Contents:</H3>
|
||
<ul>
|
||
<li><a HREF="./lg_mail19.html#help">Help Wanted -- Article Ideas</a>
|
||
<li><a HREF="./lg_mail19.html#gen">General Mail</a>
|
||
</ul>
|
||
</td></tr></table>
|
||
</center>
|
||
|
||
<a name="help"></a>
|
||
<p><hr><p>
|
||
<!-- =================================================================== -->
|
||
<center><H3> Help Wanted -- Article Ideas </H3></center>
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Date: Mon, 23 Jun 1997 22:40:39 -0500<br>
|
||
From: Tom Cannon <a href="mailto:tomc@usit.net">tomc@usit.net</a><br>
|
||
Subject: Cobal
|
||
|
||
<p>Are there any Cobal compilers that will run under Linux, I have a
|
||
serious need to move some code to the Linux platform if there is
|
||
something available. Thanks.
|
||
|
||
<blockquote> <I>
|
||
(Check with Acucobol Inc., info@accubol.com, <A
|
||
HREF="http://www.acucobol.com/">http://www.acucobol.com</A> --Editor)
|
||
</I> </blockquote>
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
|
||
Date: Sat, 21 Jun 1997 16:02:04 -0400<br>
|
||
From: Linda Brooks <a href="mailto:lbrooks@stc.net">lbrooks@stc.net</a><br>
|
||
Subject: Packard Bell SOUND16A Soundcard
|
||
|
||
<p>I have a Packard Bell Pack-Mate 4990CD, which has a soundcard apparently
|
||
called a "SOUND16A" (the documentation doesn't make it clear whether PB or
|
||
Aztech made it, or if it was a joint production). It is a 16 bit sound
|
||
card, which I can use under Windows 95 as such. However, in Linux, the
|
||
best I can do is 8 bit sound (via Sound Blaster Pro 2.0 emulation). The
|
||
card claims to support MSS, but nowhere in the documentation or setup
|
||
program does it specify which IRQ this runs at, although it does tell what
|
||
port. I have contacted Packard Bell's tech support, but they say they only
|
||
support Windows software for free, and that if I wanted to talk about Linux
|
||
or some such operating system, I would need to get "special support" which
|
||
would cost a ridiculously high number.
|
||
|
||
<p>As a struggling college student, I don't have much money to spend on the
|
||
computer (it is actually my family's that I scratched up enough space to
|
||
install Linux on), so I can't get a new sound card, and I am not even sure
|
||
if the commercial sound drivers support this particular sound card.
|
||
|
||
<p>I'm probably spoiled by Windows, but it's not asking too much for 16 bit
|
||
sound so I can listen to 44KHz samples in stereo (I'm quite a MOD fan),
|
||
listen to MP2's or MP3's, etc...
|
||
|
||
<p>I'm not much of a coder, so I can't go about writing my own drivers. If
|
||
anyone knows of how to set up this sound card for full 161 bit sound,
|
||
please inform me. Or, if you know of any 8 bit .MP? players, that would
|
||
work too =)
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
|
||
Date: Thu, 19 Jun 1997 12:03:00 -0400<br>
|
||
From: Albert Race <a href="mailto:race@dgms.com">race@dgms.com</a><br>
|
||
Subject: Linux HELP!
|
||
|
||
<p>I would like to install Linux on a Sun 386i machine with 16 meg of ram, 2
|
||
350 meg scsii drives color video adapter and a tape drive, and Network
|
||
support. When I try to install using a boot disk, I get the following message.
|
||
|
||
<pre> Boot: Device fd(0,0,0): Invalid Boot Block</pre>
|
||
|
||
<p>This occurs with any boot disk except for Sun. Is there a way I can get
|
||
Linux to install to this system? Any suggestions would be greatly
|
||
appreciated. If you can not help me, Please redirect this message to
|
||
someone who could. I don't know where to get this type of information. I
|
||
received these machines for free and would like to put them to use using
|
||
Linux.
|
||
|
||
<p>Thank you
|
||
Albert F. Race
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Date: Mon, 16 Jun 1997 11:44:43 +0200<br>
|
||
From: Claudio <a href="mailto:cricci@cpiprogetti.it">cricci@cpiprogetti.it</a><br>
|
||
Subject: Matrox
|
||
|
||
<p>Is there a chance to correctly configure a Matrox Mystique with 4MB RAM
|
||
under X or I must throw away it ?
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
|
||
Date: Mon, 2 Jun 1997 00:11:40 -0300 (EST)<br>
|
||
From: Rildo Pragana <a href="mailto:rpragana@acm.org">rpragana@acm.org</a><br>
|
||
Subject: Interfacing Genius Color Page-CS Scanner
|
||
|
||
<p>Hello,
|
||
|
||
Please help-me to interface my Color Page CS desktop scanner to Linux.
|
||
Now, I can scan only from Windows (Argh!!) and it would be fine to have
|
||
The Gimp accessing my scanned material. I can program in C and Tcl/tk, if
|
||
I at least have the information on its SCSI card, and the scanner itself.
|
||
|
||
Any information you may have is precious to me. When I have this job done,
|
||
of course, I'll be happy to publish my adventures in the Gazette.
|
||
|
||
<p>best regards,<br>
|
||
Rildo Pragana <br>
|
||
Greetings from Recife, the Brazilian's Venice
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
|
||
Date: Thu, 12 Jun 1997 14:36:09 -0400 (EDT)<br>
|
||
From: David Bubar <a href="mailto:bubarda@sch.ge.com">bubarda@sch.ge.com</a><br>
|
||
Subject: Q: How do you un virtual a virtual screen?
|
||
|
||
<p>My screen maybe 800x600 but my virtual screen is set at something like 1600x1200. How do I change this?
|
||
|
||
Note:
|
||
<ol>
|
||
<li>This is not virtual Desktops, I like use of the PAGER
|
||
<li>I wish you would put out a configuration guide for X that does NOT
|
||
have to be a TOME but a small book(let) that helps users customize
|
||
X to work the way they want.
|
||
</ol>
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
|
||
Date: Mon Jun 16 13:46:14<br>
|
||
From: Ade Bellini, <a href="mailto:AdeBellini@aol.com">AdeBellini@aol.com</a><br>
|
||
Subject: *2+ Processing
|
||
|
||
<p>Sir,
|
||
I am a 35 from Sweden using at present *2 90 Pentium /NT4 and Slakeware
|
||
1.2.13 and Red Hat 3.0 (and DOS 6.22 !) all on the same machine. (paranoid !)
|
||
I am interested in knowing how to take advantage of the *2 cpu's on a Linux
|
||
based machine.
|
||
Any thing regarding *2 + processing is of interest to me, as i use the NT4 as
|
||
a server and would like to try using Linux instead.
|
||
many thanks in advance
|
||
<p>Ade.
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
|
||
Date: Tue, 3 Jun 1997 07:33:50 -0700 (PDT)<br>
|
||
From: David Mandel <a href="mailto:dmandel@transport.com">dmandel@transport.com</a><br>
|
||
Subject: CD Burners, Scanners, Digital Cammeras, etc.
|
||
|
||
|
||
<p>I have a mess of family photographs and possibly 35mm slides that I
|
||
want to preserve. One idea I'm considering is scanning these and putting
|
||
them on CDs. So I have a few questions.
|
||
<ol>
|
||
<li>Will a Sony CDU926S burner work with xcdroast?
|
||
The documentation says a Sony CDU920S will work, but I don't know
|
||
the differences between the CDU920S and CDU926S. A bare bones
|
||
(no docs, drivers, software) CDU926S is only $265. The MS ready
|
||
version is $350, but who would want that?
|
||
|
||
<li>What is a good, but cheap flatbed scanner to use?
|
||
(Good means 24 bit color and >= 300dpi optical resolution.)
|
||
What software (in Linux) supports the scanner?
|
||
|
||
<li>I can't afford one, but...
|
||
Are there any 35mm slide scanners on the market with Linux support?
|
||
|
||
<li>And as long as I'm asking dumb questions...
|
||
Does Linux have support for any digital cameras yet?
|
||
Someday many of us will want to change to digital photography,
|
||
and it would be awful to have to learn Windows to do this.
|
||
|
||
</ol>
|
||
<p>Thank you for your time and help,<br>
|
||
Dave Mandel
|
||
<blockquote> <I>
|
||
(We'll have to depend on our readers for 1 and 3. As to 2, we use the HP5P
|
||
flatbed scanner, which fits your qualifications for good. As to cheap it
|
||
depends on your definition--it sells for around $400. The Linux software
|
||
that supports all HP scanners is XVscan, and a very nice program it is.
|
||
As to 4, the answer is yes; Hitach MP-EG1A, <A
|
||
HREF="http://www.mpegcam.net/">http://www.mpegcam.net/</A>. --Editor)
|
||
</I> </blockquote>
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
|
||
Date: Tue, 3 Jun 1997 09:01:06 +0100 (BST)<br>
|
||
From: Andrew Philip Crook <a href="mailto:shu96apc@reading.ac.uk">shu96apc@reading.ac.uk</a><br>
|
||
Subject: Ascii Problems with FTP
|
||
|
||
<p>When I use a dos ftp(in ascii mode) program to download a Linux Script,
|
||
because it is not running yet, the script fails to work when installed.
|
||
This is because a ^M is appended to every line, take them out and it works.
|
||
|
||
<p>What's happening?
|
||
|
||
<p>How can I stop it?
|
||
|
||
<p>Or how can a filter all the ^M's out?
|
||
|
||
<p>Many Thanks<br>
|
||
Andrew Crook.
|
||
|
||
<blockquote> <I>
|
||
(In a couple of last year's issues, there are several Tips & Tricks for
|
||
getting rid of ^M. You can't stop them from happening. I personally get
|
||
rid of them in vi using a global replace (e.g., :%s/^M//g); one command and
|
||
they're gone forever. --Editor)
|
||
</I> </blockquote>
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
|
||
Date: Thu, 05 Jun 1997 23:08:08 -0400<br>
|
||
From: Steve Malenfant, <a href="mailto:smalenfant@cablevision.qc.ca">smalenfant@cablevision.qc.ca</a><br>
|
||
Subject: Problems with XFree86
|
||
|
||
<p>I'm a new user to Linux and the problem still XFree86! So then I tried
|
||
to know want can I do to Linux community. In Issue #16, you said
|
||
that the problem is not video card and is Monitor balancing. So why
|
||
Windows 95 can have all these preset on monitor and Linux don't have?
|
||
Why we can't use the stuff in the Microsoft Lib to transfer it into the
|
||
database of XF86Setup or something like that. Cause that's real that
|
||
the dotclock and all this is very scrambled! Why not just resolution
|
||
and Virtual Refresh, that's all we need to know, the program could do
|
||
the rest! We don't have to know what horizontal frequency and dotclock
|
||
it is!
|
||
|
||
<p>Steve Malenfant
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
|
||
Date: Thu, 19 Jun 1997 15:39:58 -0700<br>
|
||
From: Kevin Hartman <a href="mailto:KevinH@hsaeug.com">KevinH@hsaeug.com</a><br>
|
||
Subject: Afterstep
|
||
|
||
<p>Would anyone be interested in an Afterstep customization how-to/where to
|
||
get?
|
||
|
||
<p>Kevin
|
||
|
||
<blockquote> <I>
|
||
(Have you got one setup or just trying to find out if there's a need?
|
||
--Editor)
|
||
</I> </blockquote>
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
|
||
Date: Sat, 07 Jun 1997 02:34:57 -0400<br>
|
||
From: sinyz, <a href="mailto:sinyz@superlink.net">sinyz@superlink.net</a><br>
|
||
Subject: Need Help
|
||
|
||
<p>Hi,
|
||
If you happen to have time on your end please be so kind as to answer a
|
||
few questions for a newbie!
|
||
|
||
<p>Well , here is the situation and I need to get some serious advice
|
||
from people like you. I have been reading the newsgroups and HOWTO's .
|
||
They have been quite informative and ,increasingly so, as I continue .
|
||
Now , thank GOD I got my Linux (RED HAT 4.1) box set up and running on
|
||
my slave drive with Win95 on the Master. It detected my CDROM and I also
|
||
configured my Xwindows (X11R6) .
|
||
|
||
<p>But there are couple of questions
|
||
<ol>
|
||
<li>I have a video card of type diamond s3 virge 3D 2000 . The driver
|
||
for S3 was a choice in the XF86Setup which I chose and everything seems
|
||
to work fine. Also I chose the 800*600 resolution SVGA monitor . I have
|
||
been hearing rumors from friends that the video card when being used by
|
||
Xwindows may mess up the monitor . This has been troubling me quite a
|
||
bit . What's up with this ??
|
||
|
||
<li>I read using the dmesg command that Linux at boot time does not
|
||
notice that there is a device on tty1 . The specific line reads this
|
||
<pre>Serial driver version 4.13 with no serial options enabled
|
||
tty00 at 0x03f8 (irq=4) is a 16550A
|
||
tty03 at 0x02e8 (irq=3) is a 16550A</pre>
|
||
There seems to be no mention of tty1 (com 2 irq 3) where my modem is
|
||
installed at !How to fix this ?? By the way my modem happens to be a
|
||
plug-n-play modem -SUpra 28.8bps. I have heard that pnp modems have
|
||
problems with Linux and there are fixes for pnp types - please recommend
|
||
any.(In effect how do I get my Modem to work)
|
||
|
||
<li>Also I did not notice during the boot time messages any thing to do
|
||
with PPP Protocol which I definitely need to dialup to an ISP . Does
|
||
that mean recompiling the Kernel -- HOw ( if red hat distribution has
|
||
specific or simpler way of doing things then let me know )
|
||
Thanks a lot in anticipation.
|
||
</ol>
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
|
||
Date: Wed, 11 Jun 1997 11:06:57 +0200 (MET DST)<br>
|
||
From: Martin Lersch <a
|
||
href="mailto:lersch@athene.informatik.uni-bonn.de">lersch@athene.informatik.uni-bonn.de</a><br>
|
||
Subject: User-Level Driver For HP ScanJet 5p?<br>
|
||
|
||
<P>Hello!
|
||
|
||
Please can you point me to some direction were I can find a user-level
|
||
driver for the HP ScanJet 5p? There exist the HPSCANPBM driver which
|
||
works in part, but does not support the -width and -height options
|
||
for the ScanJet 5p. I guess it was written for a ScanJet 4c or something like that.
|
||
BTW: The homepage of HP does not give much support for Linux users. They do not publish the ESCAPE sequences of the scanners.
|
||
|
||
<p>Regards,
|
||
|
||
Martin Lersch
|
||
|
||
<a name="gen"></a>
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<center><H3> General Mail </H3></center>
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
|
||
|
||
Date: Sun, 01 Jun 1997 00:56:52 -0500<br>
|
||
From: Piotr Mitros <a href="mailto:pmitros@mit.edu">pmitors@mit.edu</a><br>
|
||
Subject: WordPerfect for Linux
|
||
|
||
<p>Before more users spend many hours downloading the 50 megabyte (!)
|
||
WordPerfect for Linux, you may want to note that the beta download lets
|
||
you get a demo version that times out after just 15 days. They seem to
|
||
have demo versions of WordPerfect 6 available, so it is not that big a
|
||
deal.
|
||
|
||
<p>However, I would like to see a comparison of WordPerfect for Linux,
|
||
StarOffice's word processor and the what is planned for GNU WP.
|
||
|
||
<p>Piotr
|
||
<blockquote> <I>
|
||
(I'd like to see that comparisom too. --Editor)
|
||
</I> </blockquote>
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
|
||
Date: Thu, 12 Jun 1997 06:42:47 -0400<br>
|
||
From: Stephen L. Cito <a href="mailto:al256@detroit.freenet.org">al256@detroit.freenet.org</a><br>
|
||
Subject: Question about downloading the archive
|
||
|
||
<p>Hello,
|
||
|
||
I'd like to download the past issues of LG (having enjoyed LJ now since
|
||
last fall), but I don't think I could even get an 11 meg file downloaded
|
||
over my 14.4 modem within the 1 hour that I have before my local Internet
|
||
connection (the Greater Detroit Free Net) times out on me. Is there any
|
||
way to download the past issues in smaller "chunks"?
|
||
|
||
<p>Thanks and have a real nice day...
|
||
|
||
<p>SC, Novi, MI
|
||
|
||
<blockquote> <I>
|
||
(Hmmm, that is a problem. No, I don't save the individual tar files of
|
||
previous issues separately. There is, of course, TWDT,
|
||
option for each issue which gives you the issue as one great big
|
||
file. Not as nice as the normal multi-file format but very popular so must
|
||
work for some. --Editor)</I>
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
|
||
Date: Wed, 04 Jun 1997 22:52:36 -0700<br>
|
||
From: James Zubb <a href="mailto:jimz_@ecom.net">jimz_@ecom.net</a><br>
|
||
Subject: ActiveX for Linux
|
||
|
||
<p>Hi,
|
||
|
||
I read the ActiveX for Linux question in the Answer Guy's article, I did a
|
||
little looking and came up with a web site:
|
||
|
||
<a href="http://www.sagus.com/Prod-i~1/Net-comp/dcom/index.htm">http://www.sagus.com/Prod-i~1/Net-comp/dcom/index.htm</a>
|
||
|
||
<p>I don't know if this is actually the ActiveX port for Linux or not, I
|
||
didn't feel like trying to figure it out, but there is a Beta for Linux
|
||
there. Beats me what it does or how it does it...
|
||
<p>
|
||
--
|
||
Jim Zubb
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
|
||
Date: Fri, 6 Jun 1997 19:01:40 +0100 (BST)<br>
|
||
From: Adrian Bridgett <a href="mailto:apb25@cam.ac.uk">apb25@cam.ac.uk</a><br>
|
||
Subject: Re: X Color Depth
|
||
|
||
<I>(In response to the message by Roland Smith)</I>
|
||
|
||
<P>Normally 8-bit displays use 256 colours chosen from 2^24 (16,777,216), and
|
||
15/16/24/32 bits displays just use a fixed number of colours spread
|
||
"evenly" throughout the colour spectrum.
|
||
|
||
<p>16-bit displays use 5 bits for red, 5 bits for blue and 6 bits for green,
|
||
however the 65536 colours cannot be changed and so the overall
|
||
"resolution" of colour is lower than 256 bit displays. For instance you
|
||
can only have 2^5 different shades of green, rather than 2^8.
|
||
|
||
<p>Adrian
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
|
||
Date:Thu June 12 08:39:19 PDT 1997<br>
|
||
Timothy Gray <a href="mailto:timgray@lambdanet.com">timgray@lambdanet.com</a><br>
|
||
Subject: CNE Certification for Linux?
|
||
|
||
<P>Oh, no not a certification suggestion......
|
||
|
||
<P>Linux was developed as a better and free version of UNIX.
|
||
Now someone wants to make a CNE for Linux? As a successful Linux Network
|
||
Administrator (and Business owner that proudly states no Microsoft here!)
|
||
I am appalled at charging ten's of thousands of dollars to get a piece of paper
|
||
that states I can do my job. As an Internet service provider and an avid
|
||
Linux, Freeware, and Free Software Foundation supporter I hire my network
|
||
administrators and Engineers( We call them System Administrators ) based on
|
||
their abilities and trainability. A CNE paper does not nor will ever impress
|
||
me. Even suggesting such an idea toward Linux is appalling. Let's keep our
|
||
last bastion of freedom from the clutches of cooperate greed! If we must
|
||
have a Linux CNE make it 100% free and available to everyone on the planet.
|
||
|
||
<P>Thank you,
|
||
|
||
Timothy Gray
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
<center>Published in Linux Gazette Issue 19, July 1997</center>
|
||
<!--====================================================================-->
|
||
<P> <hr> <P>
|
||
<A HREF="./index.html"><IMG SRC="../gx/indexnew.gif" ALT="[ TABLE OF
|
||
CONTENTS ]"></A>
|
||
<A HREF="../index.html"><IMG SRC="../gx/homenew.gif" ALT="[ FRONT
|
||
PAGE ]"></A>
|
||
<A HREF="./lg_tips19.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
|
||
<P>
|
||
<h5>This page written and maintained by the Editor of <I>Linux Gazette</I>,
|
||
<A HREF="mailto: gazette@ssc.com">gazette@ssc.com</A><BR>
|
||
Copyright © 1997 Specialized Systems Consultants, Inc. </H5>
|
||
<P>
|
||
<H4>"Linux Gazette...<I>making Linux just a little more fun!</I>
|
||
"</H4>
|
||
<P> <hr> <P>
|
||
|
||
<!-- QUICK TIPS SECTION ================================================== -->
|
||
<center>
|
||
<H1><A NAME="tips"><IMG ALIGN=MIDDLE ALT="" SRC="../gx/twocent.gif">
|
||
More 2¢ Tips!</A></H1> <BR>
|
||
Send Linux Tips and Tricks to <A HREF="mailto:gazette@ssc.com">
|
||
gazette@ssc.com
|
||
</A></center>
|
||
|
||
<p><hr><p>
|
||
<H3>Contents:</H3>
|
||
<ul>
|
||
<li><a HREF="./lg_tips19.html#rude">Rude Getty</a>
|
||
<li><a HREF="./lg_tips19.html#track">Keeping Track of File Size</a>
|
||
<li><a HREF="./lg_tips19.html#pack">What Packages Do I Need?</a>
|
||
<li><a HREF="./lg_tips19.html#sound">Sound Card Support</a>
|
||
<li><a HREF="./lg_tips19.html#install">InstallNTeX is Dangerous</a>
|
||
<li><a HREF="./lg_tips19.html#reply">Relpy to Dangerous InstallNTeX
|
||
Letter</a>
|
||
<li><a HREF="./lg_tips19.html#monitor">Monitoring An FTP Download</a>
|
||
<li><a HREF="./lg_tips19.html#ports">Programming Serial Ports</a>
|
||
<li><a HREF="./lg_tips19.html#grep">Grepping Files in a Directory Tree</a>
|
||
<li><a HREF="./lg_tips19.html#more">More Grepping Files</a>
|
||
<li><a HREF="./lg_tips19.html#still">Still More on Grepping Files</a>
|
||
<li><a HREF="./lg_tips19.html#files">More on Grepping Files in a Tree</a>
|
||
<li><a HREF="./lg_tips19.html#tree">Grepping</a>
|
||
<li><a HREF="./lg_tips19.html#zip">Untarring/Zip</a>
|
||
<li><a HREF="./lg_tips19.html#duplic">Hard Disk Duplication</a>
|
||
<li><a HREF="./lg_tips19.html#ncftp">Reply to ncftp</a>
|
||
<li><a HREF="./lg_tips19.html#pipes">Sockets and Pipes</a>
|
||
<li><a HREF="./lg_tips19.html#hex">Hex Dump</a>
|
||
<li><a HREF="./lg_tips19.html#hex2">More on Hex Dump</a>
|
||
<li><a HREF="./lg_tips19.html#zprotocol">Reply to Zprotocol</a>
|
||
</ul>
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
|
||
<a name="rude"></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
Rude Getty
|
||
</H3>
|
||
<P>
|
||
Date: Mon, 23 June 1997 21:12:23<br>
|
||
From: Heather Stern <a href="mailto:star@starshine.org">star@starshine.org</a><br>
|
||
|
||
<p>I have a fairly important UNIX box at work, and I have come across a good
|
||
trick to keep around.
|
||
|
||
<p>Set one of your console getty's to a nice value of very rude, -17 or worse.
|
||
That way if a disaster comes up and you have to use the console, it won't
|
||
take forever to respond to you (because of whatever went wrong).
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
|
||
<a name="track"></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
Keeping Track of File Size
|
||
</H3>
|
||
<P>
|
||
Date:Mon 16 June 1997 13:34:24<br>
|
||
From: Volker Hilsenstein <a href="mailto:vhilsens@aixterm1.urz.uni-heidelberg.de">vhilsens@aixterm1.urz.uni-heidelberg.de</a><br>
|
||
|
||
<p>Hello everyone,
|
||
I just read Bob Grabau's 2C-tip for keeping track of the size of
|
||
file. Since it is a bit inconvenient to type all these lines
|
||
each time you download something I wrote this little script:
|
||
<pre>
|
||
#!/bin/bash
|
||
# This script monitors the size of the files given
|
||
# on the command line.
|
||
while :
|
||
do
|
||
clear
|
||
for i in $@; do
|
||
echo File $i has the size `ls -l $i | tr -s " " | cut -f 5 -d " "` bytes;
|
||
done
|
||
sleep 1
|
||
done
|
||
</pre>
|
||
|
||
<p>Bye ... Volker
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
|
||
<a name="pack"></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
Reply to "What Packages do I Need?"
|
||
</H3>
|
||
<P>
|
||
Date: Tue 24 June 1997 11:15:56<br>
|
||
From: Michael Hammel, <a href="mailto:mjhammel@long.emass.com">mjhammel@long.emass.com</a>
|
||
<P>
|
||
|
||
You asked about what packages you could get rid of and mentioned that you
|
||
had AcceleratedX and that because of this you "can get rid of a lot off the
|
||
X stuff". Well, thats not really true. AcceleratedX provides the X
|
||
server, but you still need to hang onto the X applications
|
||
(/usr/X11R6/bin/*) and the libraries and include files (/usr/X11R6/lib and
|
||
/usr/X11R6/include) if you wish to compile X applications or run X binaries
|
||
that require shared libraries.
|
||
|
||
<p>Keep in mind that X is actually made up of three distinct parts: the
|
||
clients (the X programs you run like XEmacs or Netscape or xterm), the
|
||
server (the display driver that talks to your video adapter), and the
|
||
development tools (the libs, header files, imake, etc). General users
|
||
(non-developers) can forego installation of the development tools but need
|
||
to make sure to install the runtime libraries. Each Linux distribution
|
||
packages these differently, so just be careful about which ones you remove.
|
||
|
||
<p>One caveat: I used to work for Xi Graphics, but that was over a year and a
|
||
half ago. Although I keep in touch with them, I haven't really looked at
|
||
the product line lately. Its possible they ship the full X distributions
|
||
now, but I kind of doubt it. If they are shipping the full X distributions
|
||
(clients, server, development tools) then disregard what I've said.
|
||
|
||
<p>Hope this helps.<br>
|
||
--
|
||
Michael J. Hammel
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
|
||
<a name="sound"></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
Sound Card Support
|
||
</H3>
|
||
<P>
|
||
Date: Mon 24 June 1997: 11:16:34<br>
|
||
From: Michael Hammel, <a href="mailto:mjhammel@long.emass.com">mjhammel@long.emass.com</a>
|
||
|
||
<p>With regards to your question in the LG about support for the MAD16 Pro from
|
||
Shuttle Sound System under Linux, you might consider the OSS/Linux product
|
||
from 4Front-Techologies. The sound drivers they supply support a rather
|
||
wide range of adapters. The web paget http://www.4front-tech.com/osshw.html
|
||
gives a list of what is and isn't supported. The Shuttle Sound System 48 is
|
||
listed as being supported as well as generic support for the OPTi 82C929
|
||
chipset (which you listed as the chipset on this adapter).
|
||
|
||
<p>This is commercial software but its only $20. I've been thinking of
|
||
getting it myself. I have used its free predecessor, known at times as
|
||
OSS/Lite or OSS/Free, and found it rather easy to use. I just haven't
|
||
gotten around to ordering (mostly cuz I never seem to have time for doing
|
||
installation or any other kind of admin work). I will eventually.
|
||
|
||
<p>4Front's web site is at http://www.4front-tech.com.
|
||
|
||
<p>Hope this helps.
|
||
<p>
|
||
--
|
||
Michael J. Hammel
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
|
||
<a name="install"></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
InstallNTeX is Dangerous
|
||
</H3>
|
||
<P>
|
||
Date: Fri 06 June 1997 12:31:14<br>
|
||
From: Frank Langbein <a href="mailto:langbein@mathematik.uni-stuttgart.de">langbein@mathematik.uni-stuttgart.de</a><br>
|
||
|
||
<p>Dear James:<br>
|
||
|
||
<I>On Fri, 6 Jun 1997, James wrote:</I><br>
|
||
|
||
<p>You have still
|
||
|
||
<pre> make_dir " LOG" "$VARDIR/log" $DOU 1777
|
||
|
||
make_dir " TMP-FONTS" "$VARDIR/fonts" $DOU 1777</pre>
|
||
|
||
<p>If I hadn't (now) commented-out your
|
||
|
||
<pre>(cd "$2"; $RM -rf *)</pre>
|
||
|
||
then both my /var/log/* and /var/fonts/* files and directories would have
|
||
been deleted!
|
||
|
||
<p>Actually VARDIR should also be a directory reserved for NTeX only (something
|
||
like /var/lib/texmf). Deleting VARDIR/log is not really necessary unless
|
||
someone has some MakeTeX* logs in there which are not user writable. Any pk
|
||
or tfm files from older or non-NTeX installations could cause trouble later.
|
||
Sometimes the font metrics change and if there are some old metrics used with
|
||
a new bitmap or similar the resulting document might look rather strange.
|
||
Further log and fonts have to be world writable (there are ways to prevent
|
||
this, but I haven't implemented a wrapper for the MakeTeX* scripts yet), so
|
||
placing them directly under /var is not really a good idea. I am aware that
|
||
the documentation of the installation procedure is minimal which makes it
|
||
especially hard to select the directories freely.
|
||
|
||
<p>The real problem is that allowing to choose the directories freely. Selecting
|
||
the TDS or the Linux filesystem standard is rather save and at most any other
|
||
TeX files are deleted. The only real secure option would be to remove the free
|
||
choice and only offer the Linux filesystem standard, the one from web2c 7.0
|
||
which is also TDS conform and a TDS conform sturcutre in a special NTeX
|
||
directory. The free selection would not be accessible for a new user. I could
|
||
add some expert option which still allows to use a totally free selection.
|
||
Additional instead of deleting the directories they could be renamed.
|
||
|
||
<p>There are plans for a new installation procedure, also supporting such things
|
||
as read only volumes/AFS, better support for multiple platform installation,
|
||
etc. This new release will not be available before I managed to implement all
|
||
the things which were planed for 2.0. But that also means that there will
|
||
probably be no new release this year as I have to concentrate on my studies.
|
||
Nevertheless I will add a warning to the free selection in InstallNTeX. That's
|
||
currently the only thing I can do without risking to add further bugs to
|
||
InstallNTeX. Considering that my holiday starts next week I can't do more this
|
||
month.
|
||
|
||
<p>BTW, on another point, I had difficulty finding what directory was searched
|
||
for the packages to be installed. Only in the ntex-guide, seemingly buried,
|
||
is there:
|
||
|
||
<p>This is caused by different ways to look for the package in NTeX-install, the
|
||
text version of InstallNTeX and the Tcl/Tk version of InstallNTeX. Therefore
|
||
you get some warnings even if NTeX-install would be able to install the
|
||
packages. The minimal documentation is one of the real big drawbacks of NTeX.
|
||
I'm currently working on a complete specification for the next release which
|
||
will turn into a real documentation.
|
||
|
||
<p>Thanks for pointing out the problems with the free selection of that paths. So
|
||
far I concentrated on setting the installation paths to non-existing
|
||
directories.
|
||
<p>
|
||
Regards,<br>
|
||
Frank
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
|
||
<a name="reply"></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
Reply to Dangerous InstallNTeX Letter
|
||
</H3>
|
||
<P>
|
||
|
||
To: Frank Langbein, <a href="mailto:langbein@mathematik.uni-stuttgart.de">langbein@mathematik.uni-stuttgart.de</a><br>
|
||
Date: Sat, 07 Jun 1997 10:11:06 -0600<br>
|
||
From: James <a href="mailto:james@albion.glarp.com">james@albion.glarp.com</a>
|
||
|
||
<p>Dear Frank:<br>
|
||
|
||
The hidden application of the operation <pre>rm -rf *</pre> to the unpredictable and
|
||
unqualified input from a broad base of naive users is highly likely to
|
||
produce unexpected and undesired results for some of these users. This is
|
||
the kind or circumstance more usually associated with a "prank". If this is
|
||
_not_ your intent, then further modifications to the script "InstallNTeX"
|
||
are required.
|
||
|
||
<p>The script functions at issue include: mk_dirchain() ($RM -f $P), make_dir()
|
||
($RM -rf * and $RM -f "$2"), make_tds_ln() ($RM -f "$3"), and link_file()
|
||
($RM -rf "$2"). The impact of the operations when using unexpected
|
||
parameters, from misspellings or misinterpretations, for instance, should be
|
||
considered.
|
||
|
||
<p>You might simply replace these operations with an authorization dialog, or
|
||
you could create a dialog with several recovery options. (For the moment, I
|
||
have replaced them with `echo "<some <warning parm&gr;"'.)
|
||
|
||
|
||
<p>James G. Feeney
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
|
||
<a name="monitor"></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
Monitoring An FTP Download
|
||
</H3>
|
||
<P>
|
||
|
||
Date: Tue, 10 Jun 1997 19:54:25 +1000 (EST)<br>
|
||
From: Nathan Hand <a href="mailto:Nathan.Hand@anu.edu.au">Nathan.Hand@anu.edu.au</a><br>
|
||
|
||
<p>I saw the recent script someone posted in the 2c column to monitor
|
||
an ftp download using the clear ; <code>ls -l</code> ; sleep trick. I'd just like
|
||
to point out there's A Better Way.
|
||
|
||
<P>Some systems will have the "watch" command installed. This command
|
||
works pretty much like the script, except it uses curses and buffers
|
||
for lightning fast updates. You use it something like
|
||
|
||
<pre> watch -n 1 ls -l</pre>
|
||
|
||
<p>And it prints out the current time, the file listing, and it does
|
||
the refreshes so fast that you don't see the <code>ls -l</code> redraws. I think
|
||
it looks a lot slicker, but otherwise it's the same as the script.
|
||
|
||
<p>I don't know where the watch command comes from. I'm using a stock
|
||
standard Red Hat system (4.0) so hopefully people with similar setups
|
||
will also have a copy of this nifty little tool.
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
|
||
<a name="ports"></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
Programming Serial Ports
|
||
</H3>
|
||
<P>
|
||
Date: Wed 18 June 1997 14:15:23<br>
|
||
From: Tom Verbeure <a href="mailto:to_verbeure@mietec.be">to_verbeure@mietec.be</a>
|
||
|
||
|
||
<p>Hello,
|
||
|
||
A few days ago, I had to communicate using the serial port of a Sun workstation.
|
||
A lot of information can be found here:
|
||
|
||
<a href="http://www.stokely.com/stokely/unix.serial.port.resources">http://www.stokely.com/stokely/unix.serial.port.resources</a>
|
||
and here:
|
||
<a href="http://www.easysw.com/~mike/serial">http://www.easysw.com/~mike/serial</a>
|
||
|
||
<P>Reading chapters 3 and 4 of that last page, can do wonders. It took me about 30
|
||
minutes to communicate with the machine connected to the serial port. The code
|
||
should work on virtually any unix machine.
|
||
|
||
<P>Hope this helps,
|
||
|
||
Tom Verbeure
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
|
||
<a name="grep"></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
Another Way of Grepping Files in a Directory Tree
|
||
</H3>
|
||
<P>
|
||
|
||
Date: Thu 12 June 15:34:12<br>
|
||
From: Danny Yarbrough <a href="mailto:danny@interactive.visa.com">danny@interactive.visa.com</a>
|
||
|
||
<p>That's a good tip. To work around the command line length limitation,
|
||
you can use xargs(1):
|
||
<pre>
|
||
find . -name "\*.c" -print | xargs grep foo
|
||
</pre>
|
||
this builds a command line containing "grep foo" (in this case), plus as
|
||
many arguments (one argument for each line of its standard input) as it
|
||
can to make the largest (but not too long) command line it can. It then
|
||
executes the command. It continues to build command lines and executing
|
||
them until it reaches the end of file on standard input.
|
||
|
||
<p>(Internally, I suppose xargs doesn't build command lines, but an array
|
||
of arguments to pass to one of the exec*(2) family of system calls. The
|
||
concept, however is the same).
|
||
|
||
<p>xargs has a number of other useful options for inserting arguments into
|
||
the middle of a command string, running a command once for each line of
|
||
input, echoing each execution, etc. Check out the man page for more.
|
||
|
||
<p>Cheers!
|
||
|
||
Danny
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
|
||
<a name="more"></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
More Grepping Files
|
||
</H3>
|
||
<P>
|
||
Date: Mon 16 June 1997 08:45:56<br>
|
||
From: Alec Clews <a href="mailto:Alec@tca.co.uk">Alec@tca.co.uk</a>
|
||
|
||
<pre>grep foo `find . -name \*.c -print`</pre>
|
||
|
||
<p>The only caveat here is that UNIX is configured to limit max chars in a
|
||
command line and the "find" command may generate a list of files too
|
||
huge for shell to digest when it tries to run the grep portion as a
|
||
command line. Typically this limit is 1024 chars per command line.
|
||
|
||
<p>You can get around this with
|
||
|
||
<pre>find . -type f -name \*.c -exec grep foo {} /dev/null \;</pre>
|
||
|
||
<p>Notes:
|
||
The <code>-type f</code> skips directories (and soft links, use <code>-follow</code> if
|
||
needed) that end with a <code>c</code>
|
||
|
||
<p>The /dev/null is required to make grep display the name of the file
|
||
it's searching. grep only displays the file name *and* the search string
|
||
when there are multiple files to search, and /dev/null is a 0 length
|
||
file.
|
||
|
||
<p>Regards,<br>
|
||
Alec
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
|
||
<a name="still"></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
Still More On Grepping Files
|
||
</H3>
|
||
<P>
|
||
Date: Sat 14 June 1997 10:57:34<br>
|
||
From: Rick Bronson <a href="mailto:rick@efn.org">rick@efn.org</a>
|
||
|
||
|
||
<p>Here is similiar way to grep for files in a directory tree. This
|
||
method uses xargs and as such does not suffer from the max chars in
|
||
a command line limit.
|
||
|
||
<pre>sea ()
|
||
{
|
||
find . -name "$2" -print | xargs grep -i "$1"
|
||
}</pre>
|
||
|
||
<p>I've defined it as a function in my .bashrc file, you would use it
|
||
like:
|
||
|
||
<pre>sea "search this string" '*.[ch]'</pre>
|
||
|
||
<p>Rick
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
|
||
<a name="tree"></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
Grepping
|
||
</H3>
|
||
<P>
|
||
|
||
Date: Thu 19 June 1997 09:29:12<br>
|
||
From: David Kastrup <a href="mailto:dak@neuroinformatik.ruhr-uni-bochum.de">dak@neuroinformatic.ruhr-uni-buchum.de</a><BR>
|
||
<I>Reply to "Grepping Files in a Tree Directory"</I>
|
||
|
||
<p>Well right. That's why most solutions to this problem are given
|
||
using the xargs command which will construct command lines of
|
||
appropriate size.
|
||
|
||
<p>You'd write
|
||
<pre>find . -name \*.c -print|xargs grep foo</pre>
|
||
for this. This can be improved somewhat, however. If you suspect
|
||
that you have files containing newlines or otherwise strange
|
||
characters in them, try
|
||
<pre>find . -name \*.c -print0|xargs -0 grep foo --</pre>
|
||
This will use a special format for passing the file list from find to
|
||
xargs which can properly identify all valid filenames. The <tt>--</tt> tells
|
||
grep that even strange file names like "-s" are to be interpreted as
|
||
file names.
|
||
|
||
<p>Of course, we would want to have a corresponding file name listed even
|
||
if xargs calls a single grep in one of its invocation. We can manage
|
||
this with
|
||
<pre>find . -name \*.c -print0|xargs -0 grep foo -- /dev/null</pre>
|
||
This will have at least two file names for grep (/dev/null and one given by
|
||
xargs), so grep will print the file name for found matches.
|
||
|
||
<p>The <tt>--</tt> is a good thing to keep in mind when writing shell scripts.
|
||
Most of the shell scripts searching through directories you find
|
||
flying around get confused by file names like "-i" or
|
||
"xxx\
|
||
yyy"
|
||
|
||
and similar perversities.
|
||
|
||
<p>David Kastrup
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
|
||
<a name="files"></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
More on Grepping Files in a Tree
|
||
</H3>
|
||
<P>
|
||
Date: Mon 02 June 1997 15:34:23<br>
|
||
From: Chris Cox <a href="mailto:ccox@central.beasys.com">ccox@central.geasys.com</a>
|
||
|
||
<p>My favorite trick for look for a string (or strings - egrep) in
|
||
a tree:
|
||
|
||
<pre>$ find . -type f -print | xargs file | grep -i text |
|
||
cut -f1 -d: | xargs grep pattern</pre>
|
||
|
||
<p>This is a useful technique for other things...not just
|
||
grepping.
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
|
||
<a name="zip"></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
Untarring/Zip
|
||
</H3>
|
||
<P>
|
||
Date: Sun 22 June 1997 13:23:14<br>
|
||
From: Mark Moran <a href="mailto:mmoran@mmoran.com">mmoran@mmoran.com</a>
|
||
|
||
<p>I read the following 2-cent tip and was excited to think that I've
|
||
finally reached a point in my 'linux' expertise I COULD contribute a
|
||
2-cent tip! I typically run:<br>
|
||
|
||
<pre>tar xzf foo.tar.gz</pre><br>
|
||
|
||
to unzip and untar a program. But as Paul mentions the directory
|
||
structure isn't included in the archive and it dumps in your current
|
||
directory. Well before I do the above I run:<br>
|
||
|
||
<pre>tar tzf foo.tar.gz</pre><br>
|
||
|
||
<p>This will dump out to your console what going to be unarchived easily
|
||
allowing you to see if there's a directory structure!!!!
|
||
<p>
|
||
Mark
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
|
||
<a name="duplic"></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
An Addition to Hard Disk Duplication (LG #18)
|
||
</H3>
|
||
<P>
|
||
Date: Thu 12 June 1997 15:34:32<br>
|
||
From: Andreas Schiffler <a href="mailto:schiffler@zkm.de">schiffler@zkm.de</a><br>
|
||
|
||
|
||
<p>Not suprisingly, Linux can do that of course for free and - even from a
|
||
floppy bootimage for example (i.e. Slackware bootdisk console).
|
||
|
||
<p>For identical harddrives the following will do the job:
|
||
<pre>cat /dev/hda >/dev/hdb</pre>
|
||
|
||
<p>For non-identical harddrives one has to repartition the target first:
|
||
<table>
|
||
<tr>
|
||
<td>fdisk /dev/hda</td> <td>record the partitions (size, type)</td>
|
||
</tr>
|
||
<tr>
|
||
<td>fdisk /dev/hdb</td> <td>create same partitions</td>
|
||
</tr>
|
||
<tr>
|
||
<td>cat /dev/hda1 >/dev/hdb1</td> <td>copy partitions</td>
|
||
</tr>
|
||
<tr>
|
||
<td>cat /dev/hda2 >/dev/hdb2</td>
|
||
</tr>
|
||
</table>
|
||
...
|
||
|
||
<p>To create image files, simply redirect the target device to a file.
|
||
<pre>cat /dev/hda >image-file</pre>
|
||
|
||
<p>To reinstall the MBR and lilo, just boot with a floppy using parameters
|
||
that point to the root partition (as in LILO> linux root=/dev/hda1) and
|
||
rerun lilo from within Linux.
|
||
|
||
<p>Have fun<br>
|
||
Andreas
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
|
||
<a name="ncftp"></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
Reply to ncftp (LG #18)
|
||
</H3>
|
||
<P>
|
||
Date: Fri 20 June 1997 14:23:12<br>
|
||
From: Andrew M. Dyer, <a href="mailto:adyer@mcs.com">adyer@mcs.com</a>
|
||
|
||
<p>To monitor an ftp session I like to use ncftp which puts up a nice
|
||
status bar. It comes in many linux distributions. When using the
|
||
standard ftp program you can also use the <pre>hash</pre> command which prints
|
||
a <pre>#</pre> every 1K bytes received. Some ftp clients also have the <pre>bell</pre>
|
||
command which will send a bell character to your console for every file
|
||
transferred.
|
||
|
||
|
||
<p>For grepping files in a directory tree I like to use the -exec
|
||
option to find. The syntax is cryptic, but there is no problem with
|
||
overflowing the shell argument list. A version of the command shown in
|
||
#18 whould be like this:
|
||
|
||
<pre>find . -name \*.c -exec grep foo {} /dev/null \;</pre>
|
||
|
||
(note the /dev/null forces grep to print the filename of the matched
|
||
file). Another way to do this is with the mightily cool xargs
|
||
program, which also solves the overflow problem and its a bit easier to
|
||
remember:
|
||
|
||
<pre>find . -name \*.c -print | xargs grep foo /dev/null</pre>
|
||
|
||
(this last one is stolen from "UNIX Power Tools" by Jerry Peek, Tim
|
||
O'Reilly and Mike Loukides - a whole big book of 2 cent tips.
|
||
|
||
<p>For disk duplication we sometimes use a linux box with a secondary
|
||
IDE controller, and use <pre>dd</pre> to copy the data over.
|
||
|
||
<pre>dd if=/dev/hdc of=/dev/hdd bs=1024k</pre>
|
||
|
||
this would copy the contents of /dev/hdc to /dev/hdd. The bs=1024k
|
||
tells linux to use a large block size to speed the transfer.
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
|
||
<a name="pipes"></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
Sockets and Pipes
|
||
</H3>
|
||
<P>
|
||
Date: Thu, 12 Jun 1997 23:22:38 +1000 (EST)
|
||
From: Waye-Ian Cheiw, <a href="mailto:itchy@jaguar.snafu.com">itchy@jaguar.snafu.com</a>
|
||
|
||
<p>Hello!
|
||
|
||
<p>Here's a tip!
|
||
|
||
<p>Ever tried to pipe things, then realised what you want to pipe to is on another
|
||
machine?
|
||
|
||
<pre>spiffy $ sort < file
|
||
sh: sort: command not found
|
||
spiffy $ # no sort installed here! gahck!</pre>
|
||
|
||
<p>Try "socket", a simple utility that's included in the Debian distribution.
|
||
Socket is a tool which can treat a network connection as part of a pipe.
|
||
|
||
<pre>spiffy $ cat file
|
||
c
|
||
b
|
||
a
|
||
spiffy $ cat file | socket -s 7000 & # Make pipe available at port 7000.
|
||
spiffy $ rlogin taffy
|
||
taffy $ socket spiffy 7000 | sort # Continue pipe by connecting to spiffy.
|
||
a
|
||
b
|
||
c</pre>
|
||
|
||
<p>It's also very handy for transferring files and directories in a snap.
|
||
|
||
<pre>spiffy $ ls -F
|
||
mail/ project/
|
||
spiffy $ tar cf - mail project | gzip | socket -qs 6666 &
|
||
spiffy $ rlogin taffy
|
||
taffy $ socket spiffy 6666 | gunzip | tar xf -
|
||
taffy $ ls -F
|
||
mail/ project/</pre>
|
||
|
||
<p>The -q switch will close the connection on an end-of-file and conveniently
|
||
terminate the pipes on both sides after the transfer.
|
||
|
||
<p>It can also connect a shell command's input and output to a socket. There is
|
||
also a switch, -l, which restarts that command every time someone connects to
|
||
the socket.
|
||
|
||
<pre>spiffy $ socket -s 9999 -l -p "fortune" &
|
||
spiffy $ telnet localhost 9999
|
||
"Baseball is ninety percent mental. The other half is physical."
|
||
Connection closed by foreign host. </pre>
|
||
|
||
Will make a cute service on port 9999 that spits out fortunes.
|
||
|
||
|
||
<p>-- Ian!!
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
|
||
<a name="hex"></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
Hex Dump
|
||
</H3>
|
||
<P>
|
||
Date: Tue 24 June 1997 22:54:12<br>
|
||
From: Arne Wichmann <a href="mailto:aw@math.uni-sb.de">aw@math.uni-sb.de</a>
|
||
|
||
<p>Hi.
|
||
|
||
<p>One of my friends once wrote a small vi-compatible hex-editor. It can be
|
||
found (as source) under vieta.math.uni-sb.de:/pub/misc/hexer-0.1.4c.tar.gz
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
|
||
<a name="hex2"></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
More on Hex Dump
|
||
</H3>
|
||
<P>
|
||
|
||
Date: Wed, 18 Jun 1997 10:15:26 -0700<br>
|
||
From: James Gilb <a href="mailto:p27451@am371.geg.mot.com">p27451@am371.geg.mot.com</a>
|
||
|
||
<p>I liked your gawk solution to displaying hex data. Two things (which
|
||
people have probably already pointed out to you).
|
||
<ol>
|
||
<li>If you don't want similar lines to be replaced by * *, use the -v
|
||
option to hexdump. From the man page:
|
||
|
||
<p>-v The -v option causes hexdump to display all input data.
|
||
Without the -v option, any number of groups of output lines,
|
||
which would be identical to the immediately preceding group
|
||
of output lines (except for the input offsets), are replaced
|
||
with a line comprised of a single asterisk.
|
||
|
||
<li>In emacs, you can get a similar display using ESC-x hexl-mode. The
|
||
output looks something like this:
|
||
<pre>
|
||
00000000: 01df 0007 30c3 8680 0000 334e 0000 00ff ....0.....3N....
|
||
00000010: 0048 1002 010b 0001 0000 1a90 0000 07e4 .H..............
|
||
00000020: 0000 2724 0000 0758 0000 0200 0000 0000 ..'$...X........
|
||
00000030: 0000 0760 0004 0002 0004 0004 0007 0005 ...`............
|
||
00000040: 0003 0003 314c 0000 0000 0000 0000 0000 ....1L..........
|
||
00000050: 0000 0000 0000 0000 0000 0000 2e70 6164 .............pad
|
||
00000060: 0000 0000 0000 0000 0000 0000 0000 0014 ................
|
||
00000070: 0000 01ec 0000 0000 0000 0000 0000 0000 ................
|
||
00000080: 0000 0008 2e74 6578 7400 0000 0000 0200 .....text.......
|
||
00000090: 0000 0200 0000 1a90 0000 0200 0000 2a98 ..............*.
|
||
</pre>
|
||
(I don't suppose it is supprising that emacs does this, after all, emacs
|
||
is not just and editor, it is its own operating system.)
|
||
|
||
</ol>
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
|
||
<a name="zprotocol"></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
Reply to Z Protocol
|
||
</H3>
|
||
<P>
|
||
Date: Mon 09 June 1997 19:34:54<br>
|
||
From: Gregor Gerstmann <a href="mailto:gerstman@tfh-berlin.de">gerstman@tfh-berlin.de</a>
|
||
|
||
<p>In reply to my remarks regarding file transfer with the z protocol
|
||
in LinuxGazette issue17, April 1997, I received an e-mail that may
|
||
be interesting to others too:
|
||
|
||
<p>Hello!
|
||
|
||
<p>I noticed your article in the Linux Gazette about the sz command, and really
|
||
don't think you need to split up your downloads into smaller chunks.
|
||
|
||
<p>The sz command uses the ZMODEM protocol, which is built to handle transmission
|
||
errors. If sz reports a CRC error or a bad packet, it does not mean that the
|
||
file produced by the download will be tainted. sz automatically retransmits
|
||
bad packets.
|
||
|
||
<p>If you have an old serial UART chip ( 8250 ), then you might be getting
|
||
intermittent serial errors. If the link is unreliable, then sz may spend most
|
||
of its time tied up in retransmission loops.
|
||
|
||
<p>In this case, you should use a ZMODEM window to force the sending end to expect
|
||
an `OK' acknowledgement every few packets.
|
||
|
||
<pre> sz -w1024</pre>
|
||
|
||
Will specify a window of 1024 bytes.
|
||
|
||
<p>
|
||
-- Ian!!
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
<center>Published in Linux Gazette Issue 19, July 1997</center>
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
<A HREF="./index.html"><IMG SRC="../gx/indexnew.gif" ALT="[ TABLE OF
|
||
CONTENTS ]"></A> <A HREF="../index.html"><IMG SRC="../gx/homenew.gif"
|
||
ALT="[ FRONT PAGE ]"></A> <A HREF="./lg_mail19.html"><IMG SRC="../gx/back2.gif" ALT=" Back "></A>
|
||
<A HREF="./lg_bytes19.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
|
||
|
||
<P> <hr> <P>
|
||
<h5>This page maintained by the Editor of <I>Linux Gazette</I>,
|
||
<A HREF="mailto: gazette@ssc.com">gazette@ssc.com</A><BR>
|
||
Copyright © 1997 Specialized Systems Consultants, Inc. </H5>
|
||
<P>
|
||
<H4>"Linux Gazette...<I>making Linux just a little more fun!</I>"</H4>
|
||
<HR>
|
||
<center>
|
||
<table cellpadding=7><tr><td>
|
||
<IMG SRC="../gx/bytes.gif" border=1 ALT="News Bytes">
|
||
</td><td>
|
||
<H3>Contents:</H3>
|
||
<ul>
|
||
<li><a HREF="./lg_bytes19.html#general">News in General</a>
|
||
<li><a HREF="./lg_bytes19.html#software">Software Announcements</a>
|
||
</ul>
|
||
</td></tr></table>
|
||
</center>
|
||
|
||
<a name="general"></a>
|
||
<p><hr><p>
|
||
<!-- =================================================================== -->
|
||
<center><H3> News in General </H3></center>
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
SPAM Counter Attack!
|
||
</H3>
|
||
<P>
|
||
If you'd like to have your voice heard regarding SPAM mail, why don't you
|
||
consider writing a letter to your representative?
|
||
|
||
<p>If you're not sure of who your representatives are, check the Congressional
|
||
websites:
|
||
<ul>
|
||
<li>House: <a href="http://www.house.gov/writerep/">http://www.house.gov/writerep/</a>
|
||
<li>Senate: <a href="http://www.senate.gov/senator/index.html">http://www.senate.gov/senator/index.html</a>
|
||
</ul>
|
||
|
||
<p>The postal addresses for your members are:
|
||
|
||
<table>
|
||
<tr>
|
||
<td>The Honorable (Senator name)</td> <td>The Honorable (Rep. name)</td>
|
||
|
||
<td>Washington, DC 20510</td> <td>Washington, DC 20515</td>
|
||
</tr>
|
||
</table>
|
||
|
||
<p>The letter doesn't have to be long... two paragraphs is as effective as 10
|
||
pages. And you don't need to write different letters, the same one can be
|
||
sent to each Member. (Just remember to change the mailing address!)
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
Linux-Access Web Pages
|
||
</H3>
|
||
<P>
|
||
|
||
The Center for Disabled Student Services at the University of
|
||
Utah in Salt Lake City Utah, today announced it's newly re-designed
|
||
linux-access web pages. linux-access is a mailing list hosted by
|
||
CDSS which is used by both developers and users of the Linux operating
|
||
system in order to aid development and integration of access related
|
||
technology into the Linux OS and available software.
|
||
|
||
<p>Both users and developers of Linux are encouraged to join the
|
||
mailing list and help Linux become more accessible to everyone. Among
|
||
those encouraged to subscribe to the list are companies making Linux
|
||
distributions so that they can incorporate access technology into their
|
||
products as well as get valuable feedback from users.
|
||
|
||
<p>Location of the new pages is at:
|
||
<a href="http://ssv1.union.utah.edu/linux-access/">http://ssv1.union.utah.edu/linux-access/</a>.<br>
|
||
|
||
Location of the blinux FTP mirror is at
|
||
<a href="ftp://ssv1.union.utah.edu/pub/mirrors/blinux/">ftp://ssv1.union.utah.edu/pub/mirrors/blinux/</a>.<br>
|
||
|
||
<p>An archive of the mailing list can be found on the Linux v2 Information HQ
|
||
site at:
|
||
<a href="http://www.linuxhq.com/lnxlists/linux-access/">http://www.linuxhq.com/lnxlists/linux-access/</a>.
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
Supreme Court Ruling
|
||
</H3>
|
||
<P>
|
||
|
||
The U.S. Supreme Court extended free-speech rights
|
||
to cyberspace in its recent ruling striking down a federal law
|
||
that restricted indecent pictures and words on the Internet computer
|
||
network.
|
||
|
||
<p>The court declared the law that bans the dissemination of
|
||
sexually explicit material to anyone younger than 18 unconstitutional.
|
||
|
||
<p>"Notwithstanding the legitimacy and importance of the congressional goal
|
||
of protecting children from harmful materials, we agree ... that the
|
||
statute abridges 'freedom of speech' protected by the First Amendment,"
|
||
Justice John Paul Stevens said for the court majority in the 40-page
|
||
opinion.
|
||
|
||
<p>The ruling represented a major victory for the American Civil Liberties
|
||
Union (ACLU) and groups representing libraries, publishers and the
|
||
computer on-line industry, which brought the lawsuit challenging the law.
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
The Power OS
|
||
</H3>
|
||
<P>
|
||
|
||
Matthew Borowski has created a new website featuring Linux information. Entitled
|
||
"Linux - THE POWER OS", and featuring Linux links, software, help,
|
||
and a discussion forum, Linux - THE POWER OS is also a member of the
|
||
Linux Webring.
|
||
|
||
<p>The software listing is top-of-the-line, featuring a list of powerful
|
||
applications that will change the way you make use of Linux. The modem
|
||
setup section will help you get your modem working under Linux,
|
||
and the StarOffice-miniHOWTO will help fix Libc problems when
|
||
installing Staroffice under Linux.
|
||
|
||
<p>If you have a chance, visit "Linux - THE POWER OS" at:
|
||
<a href="http://www.jnpcs.com/mkb/linux/">http://www.jnpcs.com/mkb/linux</a>
|
||
or
|
||
<a href="http://www.mkb.home.ml.org/linux/">http://www.mkb.home.ml.org/linux/</a>
|
||
|
||
<p>For more information write to
|
||
<a href="mailto:mkb@poboxes.com">mkb@poboxes.com</a>
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
June 1997 PowerPC Project
|
||
</H3>
|
||
<P>
|
||
|
||
The Linux for PowerPC project announces its June 1997 CD of the Linux
|
||
operating system for the PowerPC. The CD is the second release following
|
||
the first one in January 1997. The June release is significantly faster
|
||
and has improved memory handling. It now contains over 400 different
|
||
software packages and everything needed to install and run Linux on any
|
||
of the PowerPC machines manufactured by Be Inc, Apple Computer, IBM,
|
||
Motorola and most other manufactures of PowerPC computers. Go to
|
||
<a href="http://www.linuxppc.org/">http://www.linuxppc.org/</a> to order your own CD or to find out more
|
||
about
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
Sunsite Link
|
||
</H3>
|
||
<P>
|
||
|
||
|
||
Check out
|
||
<a href="http://sunsite.unc.edu/paulc/liv">http://sunsite.unc.edu/paulc/liv</a>
|
||
|
||
<p>This lets you view the contents of SunSITE's /pub/Linux/Incoming
|
||
directory, but extracts all the descriptions out of the map files (.lsm)
|
||
and displays them in a table. It has links for 24 hours/7 day/14 day and
|
||
28 day lists.
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
GLUE Announcement
|
||
</H3>
|
||
<P>
|
||
|
||
|
||
Caldera has announced that it will give a free copy of OpenLinux
|
||
Lite on CD-ROM for each group member of GLUE. Caldera, Inc.
|
||
(http://www.caldera.com/) is located in Provo, Utah. For full details on
|
||
GLUE and to register your group as a member, visit the GLUE web site at
|
||
<a href="http://www.ssc.com/glue/">http://www.ssc.com/glue</a>.
|
||
|
||
|
||
|
||
|
||
<a name="software"></a>
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<center><H3> Software Announcements </H3></center>
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
Woven Goods for LINUX
|
||
</H3>
|
||
<P>
|
||
|
||
|
||
World-Wide Web (WWW) Applications and Hypertext-based Information about
|
||
LINUX. It is ready configured for the Slackware Distribution and
|
||
currently
|
||
tested with Version 3.2 (ELF). The Power Linux LST Distribution contains
|
||
this collection as an integral part with some changes.
|
||
|
||
<p>The Collection consists of five Parts, so it can be used for multiple
|
||
purposes depending on the installed Parts:
|
||
|
||
<p>The five Parts of Woven Goods for LINUX are:
|
||
<ol>
|
||
<li>World-wide Web Browser
|
||
The World-wide Web Browser from Netscape for X11 and Lynx for
|
||
ASCII terminals.
|
||
|
||
<li>LINUX Documents
|
||
The LINUX Documents contain the HTML Pages of Woven Goods for
|
||
LINUX,
|
||
FAQs, HOWTOs, LDP Documents and more in different formats like
|
||
Hypertext Markup Language (HTML), Text, PDF and Postscript.
|
||
|
||
<li>World-wide Web Server
|
||
The Apache World-wide Web Server with additional CGI Scripts for
|
||
Statistics, viewing MAN Pages and Counters, Glimpse Search Engine
|
||
and
|
||
the Documentation for Apache Server. Furthermore the Apache Module
|
||
PHP/FI as well as the BSCW system and the necessary Python
|
||
interpreter
|
||
are included.
|
||
|
||
<li>Hypertext Markup Language
|
||
The HTML-Editor asWedit allows the creation of HTML-Pages.
|
||
Some Graphic Tools allow the creation and modification of GIFs.
|
||
|
||
<li>External Viewers
|
||
The external Viewers are nessesary to present Information which can
|
||
not
|
||
be viewed by the WWW Browsers. Only the usefull Viewers (xanim,
|
||
acroread, ia, raplayer, str, splay, swplayer, vrweb, etc.) are
|
||
included
|
||
which are not part of the Slackware Distribution (xv, ghostview,
|
||
showaudio).
|
||
</ol>
|
||
<p>Availabilty & Download
|
||
|
||
<p>Woven Goods for LINUX is available via anonymous FTP from:
|
||
|
||
<a href="ftp://ftp.fokus.gmd.de/pub/Linux/woven">ftp://ftp.fokus.gmd.de/pub/Linux/woven</a>
|
||
|
||
<p>Installation
|
||
|
||
<p>For Installation Instructions see the Installation Guide:
|
||
|
||
<a href="ftp://ftp.fokus.gmd.de/pub/Linux/woven/README.install">ftp://ftp.fokus.gmd.de/pub/Linux/woven/README.install</a> or
|
||
<a href="http://www.fokus.gmd.de/linux/install.html">http://www.fokus.gmd.de/linux/install.html</a>
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
Qbib Version 1.1
|
||
</H3>
|
||
<P>
|
||
|
||
Qbib is a bibliography management system based on Qddb. Features include
|
||
the Qddb database, import BibTeX .bib giles, custom export options and a
|
||
friendly user-interface just to name a few.
|
||
|
||
<p>For more information about Qbib (including an on-line manual),
|
||
see
|
||
|
||
<a href="http://www.hsdi.com/qddb/commercial">http://www.hsdi.com/qddb/commercial</a>
|
||
|
||
<p>To order Qbib or other Qddb products/services, visit the Qddb store:
|
||
|
||
<a href="http://www.hsdi.com/qddb/orders">http://www.hsdi.com/qddb/orders</a>
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
WipeOut Version 1.07
|
||
</H3>
|
||
<P>
|
||
|
||
WipeOut is an integrated development environment for C++ and Java. It
|
||
contains project manager, class browser, make tool, central text editor
|
||
with syntax highlighting and a debugger frontend. WipeOut is available
|
||
for Linux and SunOS/Solaris both under XView.
|
||
|
||
<p>For the new release we have especially extended the class browser and
|
||
the text editor.
|
||
Check out the changes list for all new features and fixed bugs.
|
||
|
||
<p>You can obtain the software and documentation at:
|
||
<a href="http://www.softwarebuero.de/index-eng.html">http://www.softwarebuero.de/ndex-eng.html</a>
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
<center>Published in Linux Gazette Issue 19, July 1997</center>
|
||
<P> <HR> <P>
|
||
<!-- =================================================================== -->
|
||
<A HREF="./index.html"><IMG SRC="../gx/indexnew.gif" ALT="[ TABLE OF
|
||
CONTENTS ]"></A>
|
||
<A HREF="../index.html"><IMG SRC="../gx/homenew.gif" ALT="[ FRONT
|
||
PAGE ]"></A>
|
||
<A HREF="./lg_tips19.html"><IMG SRC="../gx/back2.gif" ALT=" Back "></A>
|
||
<A HREF="./lg_answer19.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
|
||
|
||
<P><HR><P>
|
||
<h5>This page written and maintained by the Editor of <I>Linux Gazette</I>,
|
||
<A HREF="mailto: gazette@ssc.com">gazette@ssc.com</A><BR>
|
||
Copyright © 1997 Specialized Systems Consultants, Inc. </H5>
|
||
<P>
|
||
<H4>"Linux Gazette...<I>making Linux just a little more fun!</I>"
|
||
</H4>
|
||
<P> <hr> <P>
|
||
|
||
<!-- =============================================================== -->
|
||
<center>
|
||
<H1><A NAME="answer">
|
||
<img src="../gx/ans.gif" alt="" border=0 align=middle>
|
||
The Answer Guy
|
||
<img src="../gx/ans.gif" alt="" border=0 align=middle>
|
||
</A></H1> <BR>
|
||
<H4>By James T. Dennis,
|
||
<a href="mailto:jimd@starshine.org">jimd@starshine.org</a><BR>
|
||
Starshine Technical Services, <A HREF="http://www.starshine.org/">
|
||
http://www.starshine.org/</A> </H4>
|
||
</center>
|
||
|
||
<p><hr><p>
|
||
<H3>Contents:</H3>
|
||
<ul>
|
||
<li><a HREF="./lg_answer19.html#mount">Mounting Disks Under Red Hat 4.0</a>
|
||
<li><a HREF="./lg_answer19.html#lilo">Weird LILO Problems</a>
|
||
<li><a HREF="./lg_answer19.html#file">Running FileRunner</a>
|
||
<li><a HREF="./lg_answer19.html#xlt">Adding Linux To a DEC XLT-366</a>
|
||
<li><a HREF="./lg_answer19.html#disk">Disk Support</a>
|
||
<li><a HREF="./lg_answer19.html#legib">Legibility</a>
|
||
<li><a HREF="./lg_answer19.html#metro">MetroX Problems</a>
|
||
<li><a HREF="./lg_answer19.html#install">Installing Linux</a>
|
||
<li><a HREF="./lg_answer19.html#menus">Adding Programs to the Pull Down
|
||
Menus</a>
|
||
<li><a HREF="./lg_answer19.html#skip">Linux Skip</a>
|
||
<li><a HREF="./lg_answer19.html#active">ActiveX for Linux</a>
|
||
<li><a HREF="./lg_answer19.html#bash">Bash String Manipulations</a>
|
||
<li><a HREF="./lg_answer19.html#blink">Blinking Underline Cursor</a>
|
||
<li><a HREF="./lg_answer19.html#files">File Permissions</a>
|
||
</ul>
|
||
|
||
<p><hr><p>
|
||
<!--================================================================-->
|
||
|
||
<a name="mount"></a>
|
||
<h3><img align=bottom alt=" " src="../gx/ques.gif">
|
||
Mounting Disks Under Red Hat 4.0
|
||
</h3>
|
||
<P> <B>
|
||
From: Bigby, Bruce W. <a href="mailto:bbigby@frontiernet.net">bbigby@frontiernet.net</a>
|
||
|
||
<p>Hi. The RedHat 4.0 control-panel has an interesting problem. I have
|
||
two entries in my /etc/fstab file for my SCSI Zip Drive--one for
|
||
mounting a Win95 Zip removable disk and another for mounting a removable
|
||
Linux ext2fs disk--
|
||
|
||
<pre>/dev/sda4 /mnt/zip ext2fs rw,noauto 0 0
|
||
/dev/sda4 /mnt/zip95 vfat rw,noauto 0 0</pre>
|
||
|
||
I do this so that I can easily mount a removable zip disk by supplying
|
||
only the appropriate mount point to the mount command--for example, by
|
||
supplying
|
||
|
||
<pre>mount /mnt/zip</pre>
|
||
|
||
when I want to mount a Linux ext2fs disk, and
|
||
|
||
<pre>mount /mnt/zip95</pre>
|
||
|
||
when I want to mount a Windows 95 Zip disk.
|
||
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
Yes,
|
||
|
||
I do this all the time (except that I use the command
|
||
line for all of this -- and vi to edit my fstab). I also
|
||
add the "user" and a bunch of "nosuid,nodev,..." parameters
|
||
to my options field. This allows me or my wife (the only
|
||
two users with console access to the machine) to mount a
|
||
new magneto optical, floppy, or CD without having to
|
||
'su').
|
||
<P><B>
|
||
<img align=bottom alt=" " src="../gx/ques.gif">
|
||
Unfortunately, the control-panel's mount utility treats the two lines as
|
||
duplicates and removes the additional lines that begin with /dev/sda4.
|
||
Consequently, the control panel's mount utility only sees the first
|
||
line,
|
||
|
||
<pre>/dev/sda4 /mnt/zip ext2fs rw,noauto 0 0</pre>
|
||
|
||
In addition, the utility also modifies my original /etc/fstab. I do not
|
||
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
Bummer! Since I don't use the GUI controls I never noticed
|
||
that.
|
||
<P><B>
|
||
<img align=bottom alt=" " src="../gx/ques.gif">
|
||
desire this behavior. I prefer that the utility be fairly dumb and not
|
||
modify my original /etc/fstab. Has RedHat fixed this problem in 4.2?
|
||
|
||
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
I don't know. There are certainly enough other fixes and
|
||
upgrades to be worth installing it (although -- with a .1
|
||
version coming out every other month -- maybe you want to
|
||
just download selective fixes and wait for the big 5.0).
|
||
|
||
<p> (My current guess -- totally unsubstantiated by even
|
||
an inside rumor -- is that they'll shoot for integrating
|
||
glibc -- the GNU C library -- into their next release.
|
||
That would be a big enough job to warrant a jump in
|
||
release numbers).
|
||
<P><B>
|
||
<img align=bottom alt=" " src="../gx/ques.gif">
|
||
|
||
Can I obtain the sources and modify the control-panel's mount utility so
|
||
that it does not remove, "so-called," duplicates?
|
||
|
||
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
Last I heard the control-panel was all written in Python
|
||
(I think they converted all the TCL to Python by 4.0)
|
||
In any event I pretty sure that it's TCL, Python and Tk
|
||
(with maybe some bash for some parts). So you already have
|
||
the sources.
|
||
|
||
|
||
<p> The really important question here is why you aren't asking
|
||
the support team at RedHat (or at least posting to their
|
||
"bugs@" address). This 'control-panel' is certainly
|
||
specific to Red Hat's package.
|
||
|
||
<P><B>
|
||
<img align=bottom alt=" " src="../gx/ques.gif">
|
||
|
||
<p>According to the bash man page, bash is supposed to source the .profile,
|
||
or .profile_bash, in my home directory. However, when I login, bash
|
||
does not source my .profile. How can I ensure that bash sources the
|
||
.profile of my login account--$HOME/.profile?
|
||
|
||
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
|
||
The man page and the particular configuration (compilation)
|
||
options in your binary might not match.
|
||
|
||
<p> You might have an (empty?) ~/.bash_profile or ~/.bash_login
|
||
(the man page looks for these in that order -- with .profile
|
||
being the last -- and only it sources the first of them that
|
||
it finds).
|
||
|
||
<p> You might have something weird in your /etc/profile or
|
||
/etc/bashrc that's preventing your ~/.bash_* or ~/.profile
|
||
from being sourced.
|
||
|
||
<p> Finally you might want to double check that you really are
|
||
running bash as your login shell. There could be all sorts
|
||
of weird bugs in your configuration that effectively start
|
||
bash and fail to signal to it that this is a "login" shell.
|
||
|
||
<p> Normally login exec()'s bash with an "ARG[0]" of "-bash"
|
||
(preceding the name with a dash). I won't get into the
|
||
gory details -- but if you were logging in with something that
|
||
failed to do this: bash wouldn't "know" that it was a login
|
||
shell -- and would behave as though it were a "secondary"
|
||
shell (like you invoked it from your editor)).
|
||
|
||
<p> If all else fails go over to prep.ai.mit.edu and grab the
|
||
latest version of the GNU bash sources. Compile them
|
||
yourself.
|
||
<p>
|
||
--
|
||
Jim
|
||
|
||
|
||
|
||
|
||
<p><hr><p>
|
||
<!--================================================================-->
|
||
|
||
<a name="lilo"></a>
|
||
<h3><img align=bottom alt=" " src="../gx/ques.gif">
|
||
Weird LILO Problem
|
||
</h3>
|
||
<P> <B>
|
||
From: David Runnels <a href="mailto:david_runnels@smb.com">david_runnels@smb.com</a>
|
||
|
||
<p>Hi Jim. I read your column in the Linux Gazette and I have a question. (If I
|
||
should have submitted it some other way I apologize.)
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
I recommend using the tag@starshine.org address for now.
|
||
At some point I hope to have SSC set up a tag@gazette.ssc.com
|
||
address -- or maybe get linux.org to give me an account and
|
||
set up some custom mail scripts.
|
||
|
||
|
||
<p><b>
|
||
<img align=bottom alt=" " src="../gx/ques.gif">
|
||
I've been using Linux casually for the last couple of years and several
|
||
months ago I installed RedHat 4.0 on the second IDE drive of a Win95
|
||
system. Though I've used System Commander in the past I don't like
|
||
using it with Win95 so I had the RedHat install process create a boot
|
||
floppy. This has always worked fine, and I made a second backup floppy
|
||
using dd) which I also made sure booted fine.
|
||
|
||
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
This probably isn't really a "boot" floppy. It sounds
|
||
like a "lilo" floppy to me. The difference is that a
|
||
boot floppy has a kernel on it -- a "lilo" floppy just has
|
||
the loader on it.
|
||
|
||
<p> The confusing thing about Linux is that it can be
|
||
booted in so many ways. In a "normal" configuration
|
||
you have Lilo as the master boot program (on the first
|
||
hard drive -- in the first sector of track 0 -- with
|
||
the partition table). Another common configuration places
|
||
lilo in the "superblock" (logical boot record) of the
|
||
Linux "root" partition (allowing the DOS boot block,
|
||
or the OS/2 or NT boot manager -- or some third party
|
||
package like System Commander) to process the partition
|
||
table and select the "active" partition -- which *might*
|
||
be the Linux root partition.
|
||
|
||
<p> Less common ways of loading Linux: use LOADLIN.EXE
|
||
(or SYSLINUX.EXE) -- which are DOS programs that can
|
||
load a Linux kernel (kicking DOS out from under them
|
||
so to speak), put Lilo on a floppy (which is otherwise
|
||
blank) -- or on a none Linux boot block (which sounds
|
||
like your situation).
|
||
|
||
<p> Two others: You can put Lilo on a floppy *with* a
|
||
Linux kernel -- or you can even write a Linux kernel
|
||
to a floppy with no lilo. That last option is rarely
|
||
used.
|
||
|
||
<p> The point of confusion is this: LILO loads the Linux
|
||
kernel using BIOS calls. It offers one the opportunity
|
||
to pass parameters to the kernel (compiled into it's
|
||
boot image via the "append" directive in /etc/lilo.conf --
|
||
or entered manually at boot time at the lilo prompt).
|
||
|
||
<p> Another source of confusion is the concept that LILO
|
||
is a block of code and data that's written to a point
|
||
that's outside the filesystems on a drive -- /sbin/lilo
|
||
is a program that writes this block of boot code according
|
||
to a set of directives in the /etc/lilo.conf. It's best
|
||
to think of the program /sbin/lilo as a "compiler" that
|
||
"compiles" a set of boot images according to the
|
||
lilo.conf and writes them to some place outside of your
|
||
filesystem.
|
||
|
||
<p> Yet another source of confusion is that the Linux
|
||
kernel has a number of default parameters compiled into
|
||
it. These can be changed using the 'rdev' command
|
||
(which was originally used to set the "root device"
|
||
flags in a kernel image file). 'rdev' basically
|
||
patches values into a file. It can be be used to set
|
||
the "root device," the "initial video mode" and a
|
||
number of other things. Some of these settings can
|
||
be over-ridden via the LILO prompt and append lines.
|
||
LOADLIN.EXE can also pass parameters to the kernel that
|
||
it loads.
|
||
|
||
<p> There's a big difference between using a kernel image written
|
||
directly on a floppy -- and a LILO that's built to load an
|
||
image that's located on a floppy filesystem (probably minix
|
||
or ext2fs). With LILO the kernel must be located on some
|
||
device that is accessible with straight BIOS calls.
|
||
|
||
<p> This usually prevents one from using LILO to boot off of a
|
||
third IDE or SCSI disk drive (since most systems require a
|
||
software driver to allow DOS or other OS' to "see" these
|
||
devices). I say "usually" because there are some BIOS' and
|
||
especially some BIOS extensions on some SCSI and EIDE
|
||
controllers that may allow LILO to access devices other than
|
||
the first two floppies and the first two hard drives. However,
|
||
those are rare. Most PC hardware can only "see" two floppy
|
||
drives and two hard drives -- which must be on the same
|
||
controller -- until an OS loads some sort of drivers.
|
||
|
||
<p> In the case where a kernel is directly located on the
|
||
raw floppy -- and in the case where the kernel is
|
||
located on the floppy with LILO -- the kernel has the
|
||
driver code for your root device (and controllers) built
|
||
in. (There are also complex new options using 'initrd'
|
||
-- an "initial RAM disk" which allows a modular kernel
|
||
to load the drivers for it's root devices.
|
||
|
||
<p> Yet another thing that's confusing to the DOS user -- and
|
||
most transplants from other forms of Unix -- is that the
|
||
kernel doesn't have to be located on the root device. In
|
||
fact LOADLIN.EXE requires that the kernel be located on
|
||
a DOS filesystem.
|
||
|
||
<p> To make matters more complicated you can have multiple
|
||
kernels on any filesystem, any of them might use any
|
||
filesystem as their root device and these relationships
|
||
(between kernel and root device/filesystem can be set
|
||
in several ways -- i.e. by 'rdev' or at compile time,
|
||
vs. via the LOADLIN or LILO command lines).
|
||
|
||
<p> I recommend that serious Linux users reserve a small
|
||
(20 or 30 Mb) partition with just a minimal installation
|
||
of the root/base Linux software on it. This should be
|
||
on a separate device from your main Linux filesystems.
|
||
|
||
<p> Using this you have an alternative (hard drive based)
|
||
boot method which is much faster and more convenient than
|
||
digging out the installation boot/root floppies (or having
|
||
to go to a working machine and build a new set!). I recommend
|
||
the same thing for most Solaris and FreeBSD installations.
|
||
If you have a DOS filesystem on the box -- at least stash a
|
||
copy of LOADLIN.EXE and a few copies of your favorite kernels
|
||
in C:\LINUX\ (or wherever).
|
||
|
||
<p> Now that more PC SCSI cards support booting off of CD-ROM's
|
||
(a feature that's been long overdue!) you can get by
|
||
without heeding my advice -- IF YOU HAVE SUCH A CONTROLLER
|
||
AND A CD TO MATCH.
|
||
|
||
<p> (Incidentally -- I found out quite by
|
||
accident that the Red Hat 4.1 CD is "bootable"
|
||
on Adaptec 2940 controllers -- if you have the
|
||
Adaptec configured to allow it. I've also heard
|
||
that the NCR SymBIOS PCI controller supports this
|
||
-- though I haven't tested that yet).
|
||
|
||
<p> In any event we should all make "rescue disks" --
|
||
unfortunately these are trickier than they should be.
|
||
Look for the Bootdisk HOWTO for real details about this.
|
||
|
||
<p><b>
|
||
<img align=bottom alt=" " src="../gx/ques.gif">
|
||
|
||
About a week ago I put the Linux floppy in the diskette drive, reset
|
||
the machine and waited for the LILO prompt. Everything went fine, but
|
||
all I got were the letters LI and everything stopped. I have tried
|
||
several times, using the original and the backup diskette, with the
|
||
same results.
|
||
|
||
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
Did you add a new drive to the system?
|
||
|
||
<p><b>
|
||
<img align=bottom alt=" " src="../gx/ques.gif">
|
||
|
||
I have done nothing (that I can think of!) to my machine and I'm at a
|
||
loss as to what might be causing this. Just to ensure that the floppy
|
||
drive wasn't acting funny, I've booted DOS from it and that went fine.
|
||
|
||
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
When you booted DOS where you able to see the drive?
|
||
|
||
I'd get out your installation floppy (or floppies --
|
||
I don't remember whether Red Hat 4.0 had a single
|
||
floppy system or not -- 4.1 and 4.2 only require one
|
||
for most hardware). Boot from that and choose "rescue"
|
||
or switch out of the installation script to a shell
|
||
prompt. You should then be able to attempt mounting
|
||
your root filesystem.
|
||
|
||
<p> If that fails you can try to 'fsck' it. After that
|
||
it's probably a matter of reinstallation and restoring
|
||
from backups.
|
||
|
||
<p><b>
|
||
<img align=bottom alt=" " src="../gx/ques.gif">
|
||
|
||
Any ideas you have would be appreciated. Thanks for your time.
|
||
<p>Dave Runnels
|
||
</B>
|
||
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
Glad I could help.
|
||
<p><hr><p>
|
||
<!--================================================================-->
|
||
|
||
<a name="file"></a>
|
||
<h3><img align=bottom alt=" " src="../gx/ques.gif">
|
||
Running FileRunner
|
||
</h3>
|
||
<P> <B>
|
||
|
||
David E. Stern <a href="mailto:kotsya@u.washington.edu">kotsya@u.washington.edu</a>
|
||
|
||
I wanted to let you know that you were right about relying too heavily
|
||
on rpm. In the distant past, I used file text-based file compression
|
||
utilities, so I tried it again and tarballs are actually quite nice. I
|
||
also found that rpm --nodeps will help. Tarballs are also nice because
|
||
not all apps are distributed with rpm. (bonus! :-) I'm also told that
|
||
multiple versions of tcl/tlk can peacably coexist, although rpm won't
|
||
allow it by default. Another ploy with rpm which I didn't see
|
||
documented was that to avoid circular dependencies, update multiple rpms
|
||
at the same time; i.e.: rpm -Uvh app1.rpm app2.rpm app3.rpm . Another
|
||
thing I learned about was that there are some non-standard (contributed)
|
||
libraries that are required for certain apps, like afio and xpm. Thanks
|
||
for the great ideas and encouragement.
|
||
|
||
<p>The end goal: to install FileRunner, I simply MUST have it!
|
||
My intermediate goal is to install Tcl/Tk 7.6/4.2, because FileRunner
|
||
needs these to install, and I only have 7.5/4.1 . However, when I try to
|
||
upgrade tcl/tlk, other apps rely on older tcl/tk libraries, at least that's
|
||
what the messages allude to:
|
||
|
||
<pre>libtcl7.5.so is needed by some-app
|
||
libtk4.1.so is needed by some-app</pre>
|
||
|
||
<p>(where some-app is python, expect, blt, ical, tclx, tix, tk, tkstep,...)
|
||
|
||
<p>I have enough experience to know that apps may break if I upgrade the
|
||
libraries they depend on. I've tried updating some of those other apps,
|
||
but I run into further and circular dependencies--like a cat chasing it's
|
||
tail.
|
||
|
||
<p>In your opinion, what is the preferred method of handling this scenario?
|
||
I must have FileRunner, but not at the expense of other apps.
|
||
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
It sounds like you're relying too heavily on RPM's.
|
||
If you can't afford to risk breaking your current stuff,
|
||
and you "must" have the upgrade you'll have to do some
|
||
stuff beyond what the RPM system seems to do.
|
||
|
||
<p> One method would be to grab the sources (SRPM or tarball)
|
||
and manually compile the new TCL and tk into /usr/local
|
||
(possibly with some changes to their library default
|
||
paths, etc). Now you'll probably need to grab the
|
||
FileRunner sources and compile that to force it to use the
|
||
/usr/local/wish or /usr/local/tclsh (which, in turn, will
|
||
use the /usr/local/lib/tk if you've compiled it all right).
|
||
|
||
<p> Another approach is to set up a separate environment
|
||
(separate disk, a large subtree of an existing disk
|
||
-- into which you chroot, or a separate system entirely)
|
||
and test the upgrade path where it won't inconvenience you
|
||
by failing. A similar approach is to do a backup, test your
|
||
upgrade plan -- (if the upgrade fails, restore the backup).
|
||
<P><B>
|
||
<img align=bottom alt=" " src="../gx/ques.gif">
|
||
Thanks, -david
|
||
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
You're welcome.
|
||
This is a big problem in all computing environments (and
|
||
far worse in DOS, Windows, and NT systems than in most
|
||
multi-user operating systems. At least with Unix you have
|
||
the option of installing a "playpen" (accessing it with the
|
||
chroot call -- or by completely rebooting on another partition
|
||
if you like).
|
||
|
||
<p> Complex interdepencies are unavoidable unless you require that
|
||
every application be statically linked and completely self-sufficient
|
||
(without even allowing their configuration files to be separate.
|
||
So this will remain an aspect of system administration where
|
||
experience and creativity are called for (and a good backup
|
||
may be the only thing between you and major inconvenience).
|
||
<p>
|
||
--
|
||
Jim
|
||
|
||
|
||
<p><hr><p>
|
||
<!--================================================================-->
|
||
|
||
<a name="xlt"></a>
|
||
<h3><img align=bottom alt=" " src="../gx/ques.gif">
|
||
Adding Linux t a DEC XLT-366
|
||
</h3>
|
||
<P> <B>
|
||
From: Alex Pikus <a href="mailto:alex@webexpress.net">alex@webexpress.net</a>
|
||
|
||
<p>I have a DEC XLT-366 with NTS4.0 and I would like to add Linux to it. I
|
||
have been running Linux on an i386 for a while.
|
||
|
||
<p>I have created 3 floppies:
|
||
<ul>
|
||
<li>Linload.exe and MILO (from DEC site)
|
||
<li>Linux kernel 2.0.25
|
||
<li>RAM disk
|
||
</ul>
|
||
<p>I have upgrade AlphaBIOS to v5.24 (latest from DEC) and added a Linux
|
||
boot option that points to a:\
|
||
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
You have me at a severe disadvantage. I've never
|
||
run Linux on an Alpha.
|
||
|
||
So I'll have to try answering this blind.
|
||
<P><B>
|
||
<img align=bottom alt=" " src="../gx/ques.gif">
|
||
When I load MILO I get the "MILO>" prompt without any problem. When I
|
||
do <pre>show</pre> or <pre>boot ...</pre> at the MILO I get the following result ...
|
||
|
||
<p>SCSI controller gets identified as NCR810 on IRQ 28 ... test1 runs and
|
||
gets stuck "due to a lost interrupt" and the system hangs ...
|
||
|
||
<p>In WinNTS4.0 the NCR810 appears on IRQ 29.
|
||
|
||
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
My first instinct is the ask if the autoprobe code in
|
||
Linux (Alpha) is broken. Can you use a set of command-line
|
||
(MILO) parameters to tell pass information about your
|
||
SCSI controller to your kernel? You could also see about
|
||
getting someone else with an Alpha based system to compile
|
||
a kernel for you -- and make sure that it has values in
|
||
it's scsi.h file that are appropriate to your system -- as
|
||
well as insuring that the corrective drivers are built in.
|
||
<P><B>
|
||
<img align=bottom alt=" " src="../gx/ques.gif">
|
||
How can make further progress here?
|
||
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
|
||
It's a tough question. Another thing I'd look at
|
||
is to see if the Alpha system allows booting from a
|
||
CD-ROM. Then I'd check out Red Hat's (or Craftworks')
|
||
Linux for Alpha CD's -- asking each of them if they
|
||
support this sort of boot.
|
||
|
||
<p> (I happened to discover that the Red Hat Linux 4.1 (Intel)
|
||
CD-ROM was bootable when I was working with one system that
|
||
had an Adaptec 2940 controller where that was set as an
|
||
option. This feature is also quite common on other Unix
|
||
platforms such as SPARC and PA-RISC systems -- so it is
|
||
a rather late addition to the PC world).
|
||
|
||
<P><B>
|
||
<img align=bottom alt=" " src="../gx/ques.gif">
|
||
Thanks!<br>
|
||
Alex.
|
||
</B>
|
||
|
||
<p><hr><p>
|
||
<!--================================================================-->
|
||
|
||
<a name="disk"></a>
|
||
<h3><img align=bottom alt=" " src="../gx/ques.gif">
|
||
Disk Support
|
||
</h3>
|
||
<P> <B>
|
||
|
||
From: Andrew Ng <a href="mailto:lulu@asiaonline.net">lulu@@asiaonline.net</a>
|
||
|
||
|
||
<p>Dear Sir,
|
||
|
||
I have a question to ask:
|
||
Does Linux support disks with density
|
||
2048bytes/sector?
|
||
|
||
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
Apparently not.
|
||
|
||
This is a common size for CD-ROM's -- but it not
|
||
at all normal for any other media.
|
||
<P><B>
|
||
<img align=bottom alt=" " src="../gx/ques.gif">
|
||
I have bought a Fujitsu MO drive which support up to 640MB MO disks with
|
||
density 2048bytes/sector. The Slackware Linux system does not support
|
||
access to disks with this density. Windows 95 and NT support this density
|
||
and work very well. Is there any version of Linux which support
|
||
2048bytes/sector? If not, is there any project working on that?
|
||
|
||
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
I believe the drive ships with drivers for DOS, Windows,
|
||
Windows '95 and NT. The OS' don't "support it" the manufacturer
|
||
supports these OS'.
|
||
|
||
<p> Linux, other the other hand, does support most hardware
|
||
(without drivers being supplied by the hardware manufacturers).
|
||
Granted we get some co-operation from many manufacturers.
|
||
Some even contribute code to the main kernel development.
|
||
|
||
<p> We prefer the model where the hardware manufacturer releases
|
||
free code to drive their hardware -- whether that code is
|
||
written for Linux, FreeBSD or any other OS. Release it once
|
||
and all OS' can port and benefit by it.
|
||
|
||
<P><B>
|
||
<img align=bottom alt=" " src="../gx/ques.gif">
|
||
I hear a lot of praise about Linux. Is Linux superior to Windows NT in all
|
||
aspect?
|
||
|
||
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
That's controversial question. Any statement like:
|
||
|
||
Is "foo" superior to "bar" in all aspects?
|
||
|
||
... is bound to cause endless (and probably acrimonious)
|
||
debate.
|
||
|
||
<p> Currently NT has a couple of advantages: Microsoft is a
|
||
large company with lots of money to spend on marketing and
|
||
packaging. They are very aggressive in making "partnerships"
|
||
and building "strategic relationships" with the management of
|
||
large companies.
|
||
|
||
<p> Microsoft has slowly risen to dominance in the core applications
|
||
markets (word processors, spreadsheets, and databases). Many
|
||
industry "insiders" (myself included) view this as being the
|
||
result of "trust"-worthy business practices (a.k.a. "verging
|
||
on monopolistic").
|
||
|
||
<p> In other words may people believe that MS Word isn't the
|
||
dominant word processor because it is technically the superior
|
||
product -- but because MS was able to supply the OS features
|
||
they needed when they wanted (and perhaps able to slip the
|
||
schedules of certain releases during the critical development
|
||
phases of their competitors).
|
||
|
||
<p> The fact that the OS, and the principal programming tools,
|
||
and the major applications are all from the same source has
|
||
generated a amazing amount of market antagonism towards
|
||
Microsoft. (Personally I think it's a bit extreme -- but
|
||
I can understand how many people feel "trapped" and understand
|
||
the frustration of thinking that there's "no choice").
|
||
|
||
<p> Linux doesn't have a single dominant applications suite.
|
||
There are several packages out there -- Applixware, StarOffice,
|
||
Caldera's Internet Office Suite. Hopefully Corel's Java Office
|
||
will also be a useful to Linux, FreeBSD and other users
|
||
(including Windows and NT).
|
||
|
||
<p> In addition to these "suites" there are also several individual
|
||
applications like Wingz (a spreadsheet system), Mathematica,
|
||
(the premier symbolic mathematics package), LyX (the free word
|
||
processor -- LaTeX front-end -- that's under development),
|
||
Empress, /rdb (database systems), Flagship and dbMan IV
|
||
(xBase database development packages), Postgres '95, mSQL,
|
||
InfoFlex, Just Logic's SQL, MySQL (database servers) and a
|
||
many more. (Browse through the Linux Journal _Buyer's_Guide_
|
||
for a large list -- also waltz around the web a bit).
|
||
|
||
<p> Microsoft's SQL Server for NT is getting to be pretty good.
|
||
Also, there are alot of people who program for it -- more
|
||
than you'll find for InfoFlex, Postgres '95 etc. A major
|
||
problem with SQL is that the servers are all different enough
|
||
to call for significant differences in the front end applications
|
||
-- which translates to lots of programmer time (and money!) if
|
||
you switch from one to another. MS has been very successful
|
||
getting companies to adopt NT Servers for their "small" SQL projects
|
||
(which has been hurting the big three -- Oracle, Sybase and
|
||
Informix). Unfortunately for Linux -- database programmers and
|
||
administrators are very conservative -- they are a "hard sell."
|
||
|
||
<p> So Linux -- despite the excellent stability and performance --
|
||
is not likely to make a significant impact as a database server
|
||
for a couple of years at least. Oracle, Sybase and Informix
|
||
have "strategic relationships" with SCO, Sun, and other Unix
|
||
companies.
|
||
|
||
<p> The established Unix companies viewed Linux as a threat until
|
||
recently. They now seem to see it as a mixed blessing. On the
|
||
up side Linux has just about doubled the number of systems
|
||
running Unix-like OS', attracted somewhere between two and
|
||
eight million new converts away from the "Wintel" paradigm,
|
||
and even wedged a little bit of "choice" into the minds of
|
||
the industry media. On the down side SCO can no longer charge
|
||
thousands of dollars for the low end of their systems. This
|
||
doesn't really affect Sun, DEC, and HP so much -- since they are
|
||
primarily hardware vendors who only got into the OS business to
|
||
keep their iron moving out the door. SCO and BSDI have the
|
||
tough fight since the bulk of their business is OS sales.
|
||
|
||
<p> (Note: BSDI is *not* to be confused with the FreeBSD, NetBSD,
|
||
OpenBSD, or 386BSD (Jolix) packages. They are a company that
|
||
produces a commercial Unix, BSDI/OS. The whole Free|Net|Open-BSD
|
||
set of programming projects evolved out of the work of
|
||
Mr. and Mrs. Jolitz -- which was called 386BSD -- and I call
|
||
"Jolix" -- a name with I also spotted in the _Using_C-Kermit_
|
||
book from Digital Press).
|
||
|
||
<p> So there don't seem to be any Oracle, SyBase, or Informix
|
||
servers available for Linux. The small guys like JustLogic
|
||
and InfoFlex have an opportunity here -- but it's a small
|
||
crack in a heavy door and some of them are likely to get their
|
||
toes broken in the process.
|
||
|
||
<p> Meanwhile NT will keep getting market share -- because their
|
||
entry level still a tiny fraction of the price of any of the
|
||
"big guys."
|
||
|
||
<p> I've just barely scratched the tip of the iceberg (to thoroughly
|
||
blend those metaphors). There are so many other aspects of
|
||
comparison it's hard to even list them -- let alone talk about
|
||
who Linux and NT measure up to them.
|
||
|
||
<p> It's also important to realize that it's not just NT vs.
|
||
Linux. There are many forms of Unix -- most of them are
|
||
quite similar to Linux from a user and even from an
|
||
administrators point of view. There are many operating systems
|
||
that are vastly different than either NT (which is supposed to
|
||
be fundamentally based on VMS) and the various Unix variants.
|
||
|
||
<p> There are things like Sprite (a Berkeley research project),
|
||
Amoeba and Chorus (distributed network operating systems),
|
||
EROS, and many others.
|
||
|
||
<p> Here's a link where you can find out more about operating
|
||
systems in general:
|
||
|
||
<a href="http://www.yahoo.com/text/Computers_and_Internet/Operating_Systems/Research/">Yahoo!
|
||
Computers and Internet: Operating Systems: Research</a>
|
||
<p>
|
||
--
|
||
Jim
|
||
|
||
|
||
<p><hr><p>
|
||
<!--================================================================-->
|
||
|
||
<a name="legib"></a>
|
||
<h3><img align=bottom alt=" " src="../gx/ques.gif">
|
||
Legibility
|
||
</h3>
|
||
<P> <B>
|
||
|
||
From: Robert E Glacken <a href="mailto:glacken@bc.seflin.org">glacken@bc.seflin.org</a>
|
||
|
||
<p>I use a 256 shade monochrome monitor. The QUESTIONS are invisible.
|
||
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
What questions?
|
||
What OS?
|
||
What GUI? (I presume that the normal text is visible in
|
||
text mode so you must be using a GUI of some sort)?
|
||
|
||
<p> I wouldn't expect much from a monochrome monitor set to
|
||
show 256 (or even 127) shades of grey. That's almost no
|
||
one in the PC/Linux world that uses those -- so there almost
|
||
no one that tunes their color tables and applications to
|
||
support it.
|
||
|
||
<p> Suggestions -- get a color screen -- or drop the GUI and
|
||
use text mode.
|
||
|
||
<p>
|
||
--
|
||
Jim
|
||
|
||
<p><hr><p>
|
||
<!--================================================================-->
|
||
|
||
<a name="metro"></a>
|
||
<h3><img align=bottom alt=" " src="../gx/ques.gif">
|
||
MetroX Problems
|
||
</h3>
|
||
<P> <B>
|
||
|
||
|
||
From: Allen Atamer <a href="mailto:atamer@ecf.toronto.edu">atamer@ecf.toronto.edu</a>
|
||
|
||
|
||
<p>I am having trouble setting up my XServer. Whether or not I use MetroX
|
||
or Xfree86 to set it up it's still not working.
|
||
|
||
<p>When I originally chose metrox to install, i got to the setup screen,
|
||
chose my card and resolution, saved and exited. Then i started up the
|
||
xwindows, and my screen loaded the Xserver, but the graphics were all
|
||
messed up. I exited, then changed some settings, and now i can't even
|
||
load the xserver. The Xerrors file says it had problems loading the
|
||
'core'.
|
||
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
Hmm. You don't mention what sort of video card you're using
|
||
or what was "messed up." As I've said many times in my
|
||
column -- I'm not must of an "Xpert" (or much of a "TeXpert"
|
||
for that matter).
|
||
|
||
<p> MetroX and XFree86 each have their own support pages
|
||
on the web -- and there are several X specific newsgroups
|
||
where you'd find people who are much better with X than I.
|
||
|
||
<p> Before you go there to post I'd suggest that you type up
|
||
the type of video card and monitor you have in excruciating
|
||
detail -- and make sure you go through the X HOWTO's and
|
||
the Red Hat manual. Also be sure to check the errata
|
||
page at Red Hat (http://www.redhat.com/errata.html) --
|
||
this will let you know about any problems that were discovered
|
||
after the release of 4.1.
|
||
|
||
<p> One other thing you might try is getting the new version
|
||
(4.2 -- Biltmore) -- and check it's errata sheet. You can
|
||
buy a new set of CD's (http://www.cheapbytes.com is one
|
||
inexpensive source) or you can use up a bunch of bandwidth
|
||
by downloading it all. The middle road is to to download
|
||
just the parts you need.
|
||
|
||
<p> I notice (looking at the errata sheets as I type this)
|
||
that XFree86 is up to version 3.3.1 (at least). This upgrade
|
||
is apparently primarily to fix some buffer overflow (security)
|
||
problems in the X libraries.
|
||
<P><B>
|
||
<img align=bottom alt=" " src="../gx/ques.gif">
|
||
|
||
By the way, how do I mount what's on the second cd and read it?
|
||
(vanderbilt 4.1)
|
||
|
||
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
First umount the first CD with a command like:
|
||
|
||
umount /cdrom
|
||
|
||
Remove it.
|
||
Then 'mount' the other one with a command like:
|
||
|
||
mount -t iso9660 -o ro /cdrom /dev/scd0
|
||
|
||
... where /cdrom is some (arbitrary but extent) mount point
|
||
and /dev/scd0 is the device node that points to your CD drive
|
||
(that would be the first SCSI CD-ROM on your system --
|
||
IDE and various other CD's have different device names).
|
||
|
||
<p> To find out the device name for your CD use the mount command
|
||
BEFORE you unmount the other CD. It will show each mounted
|
||
device and the current mount point.
|
||
|
||
<p> Personally I use /mnt/cd as my mount point for most CD's.
|
||
|
||
I recommend adding an entry to your /etc/fstab file
|
||
(the "filesystems table" for Unix/Linux) that looks something
|
||
like this:
|
||
<pre>
|
||
# /etc/fstab
|
||
/dev/scd0 /mnt/cd iso9660 noauto,ro,user,nodev,nosuid 0 0
|
||
</pre>
|
||
<p> This will allow you to use the mount and umount commands
|
||
as a normal user (without the need to su to 'root').
|
||
|
||
<p> I also recommend changing the permissions of the mount
|
||
command to something like:
|
||
|
||
<pre>-rwsr-x--- 1 root console 26116 Jun 3 1996 /bin/mount
|
||
</pre>
|
||
(chgrp console `which mount && chmod 4550 `which mount`)
|
||
|
||
<p> ... so that only members of the group "console" can use the
|
||
mount command. Then add your normal user account to that
|
||
group.
|
||
|
||
<p> The idea of all this is to strike a balance between the
|
||
convenience and reduced "fumblefingers" exposure of running
|
||
the privileged command as a normal user -- and the potential
|
||
for (as yet undiscovered buffer overflows) to compromise the
|
||
system by "guest" users.
|
||
|
||
<p> (I recommend similar procedures for ALL SUID binaries -- but
|
||
this is an advanced issue that goes *WAY* beyond the scope of
|
||
this question).
|
||
|
||
<p> Allen,
|
||
|
||
You really need to get a copy of the "Getting Started"
|
||
guide from the Linux Documentation Project. This can be
|
||
downloaded and printed (there's probably a copy on your
|
||
CD's) or you can buy the professionally bound editions from
|
||
any of several publishers -- my favorite being O'Reilly &
|
||
Associates (http://www.ora.com).
|
||
|
||
<p> Remember that the Linux Gazette "Answer Guy" is no
|
||
substitute for reading the manuals and participating in
|
||
Linux newsgroups and mailing lists.
|
||
|
||
<p>
|
||
--
|
||
Jim
|
||
|
||
<p><hr><p>
|
||
<!--================================================================-->
|
||
|
||
<a name="install"></a>
|
||
<h3><img align=bottom alt=" " src="../gx/ques.gif">
|
||
Installing Linux
|
||
</h3>
|
||
<P> <B>
|
||
|
||
From: Aryeh Goretsky <a href="mailto:aryeh@tribal.com">aryeh@tribal.com</a><br>
|
||
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
[ Aryeh, I'm copying my Linux Gazette editor on this since I've put in
|
||
enough explanation to be worth publishing it ]
|
||
<P><B>
|
||
<img align=bottom alt=" " src="../gx/ques.gif">
|
||
..... why ... don't they just call
|
||
it a disk boot sector . ....
|
||
|
||
Okay, I've just got to figure out what the problem is, then. Are
|
||
there any utilities like NDD for Linux I can run that will point
|
||
out any errors I made when entering the superblock info?
|
||
|
||
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
Nothing with a simple, colorful interface. 'fsck' is
|
||
at least as good with ext2 filesystems as NDD is with
|
||
FAT (MS-DOS) partitions. However 'fsck' (or, more specifically,
|
||
e2fsck) has a major advantage since the ext2fs was designed
|
||
to be robust. The FAT filesystem was designed to be simple
|
||
enough that the driver code and the rest of the OS could fit
|
||
on a 48K (yes, forty-eight kilobytes) PC (not XT, not AT, and
|
||
not even close to a 386). So, I'm not knocking NDD when I
|
||
say that fsck works "at least" as well.
|
||
|
||
<p> However, fsck doesn't touch your MBR -- it will
|
||
check your superblock and recommand a command to restore
|
||
the superblock from one of the backups if yours is damaged.
|
||
Normally the newfs (like MS-DOS' FORMAT) or mke2fs
|
||
(basically the same thing) will scatter extra copies of the
|
||
superblock every 8K sectors across the filesystem (or so).
|
||
So there are usually plenty of backups.
|
||
|
||
<p> So, usually, you'd just run fdisk to check your
|
||
partitions and /sbin/lilo to write a new MBR (or other
|
||
boot sector). /sbin/lilo will also update its own
|
||
"map" file -- and may (optionally) make a backup of
|
||
your original boot sector or MBR.
|
||
|
||
<p> (Note: There was an amusing incident on
|
||
one of the mailing lists or newsgroups -- in which
|
||
a user complained that Red Hat had "infected his
|
||
system with a virus." It turns out that lilo had moved
|
||
the existing (PC/MBR) virus from his MBR to a
|
||
backup file -- where it was finally discovered.
|
||
So, lilo had actually *cured* his system of the
|
||
virus).
|
||
|
||
<p> Actually when you run /sbin/lilo you're "compiling" the
|
||
information in the /etc/lilo.conf file and writing that
|
||
to the "boot" location -- which you specify in the .conf
|
||
file.
|
||
|
||
<p> You can actually call your lilo.conf anything you like --
|
||
and you can put it anywhere you like -- you'd just have to
|
||
call /sbin/lilo with a -C switch and a path/file name.
|
||
/etc/lilo.conf is just the built-in default which the -C
|
||
option over-rides.
|
||
|
||
<p> Here's a copy of my lilo.conf (which I don't actually use
|
||
-- since I use LOADLIN.EXE on this system).
|
||
As with many (most?) Unix configuration files the comments
|
||
start with hash (#) signs.
|
||
<pre>
|
||
boot=/dev/hda
|
||
# write the resulting boot block to my first IDE hard drive's MBR.
|
||
# if this was /dev/hdb4 (for example) /sbin/lilo would write the
|
||
# resulting block to the logical boot record on the fourth partition
|
||
# of my second IDE hard drive. /dev/sdc would mean to write it to
|
||
# the MBR of the third SCSI disk.
|
||
# /sbin/lilo will print a warning if the boot location is likely to
|
||
# be inaccessible to most BIOS' (i.e. would require a software driver
|
||
# for DOS to access it).
|
||
|
||
## NOTE: Throughout this discussion I use /sbin/lilo to refer to the
|
||
## Linux executable binary program and LILO to refer to the resulting
|
||
## boot code that's "compiled" and written by /sbin/lilo to whatever
|
||
## boot sector your lilo.conf calls for. I hope this will minimize the
|
||
## confusion -- though I've liberally re-iterated this with parenthetical
|
||
## comments as well.
|
||
|
||
# The common case is to put boot=/dev/fd0H1440 to specify that the
|
||
# resulting boot code should be written to a floppy in the 1.44Mb
|
||
# "A:" drive when /sbin/lilo is run. Naturally this would require
|
||
# that you use this diskette to boot any of the images and "other"
|
||
# stanzas listed in the rest of this file. Note that the floppy
|
||
# could be completely blank -- no kernel or files are copied to it
|
||
# -- just the boot sector!
|
||
|
||
|
||
map=/boot/map
|
||
# This is where /sbin/lilo will store a copy of the map file --
|
||
# which contains the cylinder/sector/side address of the images
|
||
# and message files (see below)
|
||
# It's important to re-run /sbin/lilo to regenerate the map
|
||
# file any time you've done anything that might move any of
|
||
# these image or message files (like defragging the disk,
|
||
# restoring any of these images from a backup -- that sort
|
||
# of thing!).
|
||
|
||
|
||
install=/boot/boot.b
|
||
# This file contains code for LILO (the boot loader) -- this is
|
||
# an optional directive -- and necessary in this case since it
|
||
# simply specifies the default location.
|
||
|
||
prompt
|
||
# This instructs the LILO boot code to prompt the user for
|
||
# input. Without this directive LILO would just wait
|
||
# upto "delay" time (default 0 tenths of a second -- none)
|
||
# and boot using the default stanza.
|
||
# if you leave this and the "timeout" directives out --
|
||
# but you put in a delay=X directive -- then LILO won't
|
||
# prompt the user -- but will wait for X tenths of a second
|
||
# (600 is 10 seconds). During that delay the user can hit a
|
||
# shift key, or any of the NumLock, Scroll Lock type keys to
|
||
# request a LILO prompt.
|
||
|
||
timeout=50
|
||
# This sets the amount of time LILO (the boot code) will
|
||
# wait at the prompt before proceeding to the default
|
||
# 0 means 'wait forever'
|
||
|
||
message=/etc/lilo.message
|
||
# this directive tells /sbin/lilo (the conf. "compiler") to
|
||
# include the contents of this message in the prompt which LILO
|
||
# (the boot code) displays at boot time. It is a handy place to
|
||
# put some site specific help/reminder messages about what
|
||
# you call your kernels and where you put your alternative bootable
|
||
# partitions and what you're going to do to people who reboot your
|
||
# Linux server without a very good reason.
|
||
|
||
other=/dev/hda1
|
||
label=dos
|
||
table=/dev/hda
|
||
# This is a "stanza"
|
||
# the keyword "other" means that this is referring to a non-Linux
|
||
# OS -- the location tells LILO (boot code) where to find the
|
||
# "other" OS' boot code (in the first partition of the first IDE --
|
||
# that's a DOS limitation rather than a Linux constraint).
|
||
# The label directive is an arbitrary but unique name for this stanza
|
||
# to allow one to select this as a boot option from the LILO
|
||
# (boot code) prompt.
|
||
|
||
# Because it is the first stanza it is the the default OS --
|
||
# LILO will boot this partition if it reaches timeout or is
|
||
# told not to prompt. You could also over-ride that using a
|
||
# default=$labelname$ directive up in the "global" section of the
|
||
# file.
|
||
|
||
image=/vmlinuz
|
||
label=linux
|
||
root=/dev/sda5
|
||
read-only
|
||
# This is my "normal" boot partition and kernel.
|
||
# the "root" directive is a parameter that is passed to the
|
||
# kernel as it loads -- to tell the kernel where its root filesystem
|
||
# is located. The "read-only" is a message to the kernel to initially
|
||
# mount the root filesystem read-only -- so the rc (AUTOEXEC.BAT)
|
||
# scripts can fsck (do filesystem checks -- like CHKDSK) on it.
|
||
# Those rc scripts will then normally remount the fs in "read/write"
|
||
# mode.
|
||
|
||
image=/vmlinuz.old
|
||
label=old
|
||
root=/dev/sda5
|
||
append= single
|
||
read-only
|
||
# This example is the same except that it loads a different kernel
|
||
# (presumably and older one -- duh!). The append= directive allows
|
||
# me to pass arbitrary directives on to the kernel -- I could use this
|
||
# to tell the kernel where to find my Ethernet card in I/O, IRQ, and
|
||
# DMA space -- here I'm using it to tell the kernel that I want to come
|
||
# up in "single-user" (fix a problem, don't start all those networking
|
||
# gizmos) mode.
|
||
|
||
image=/mnt/tmp/vmlinuz
|
||
label=alt
|
||
root=/dev/sdb1
|
||
read-only
|
||
|
||
# This last example is the most confusing. My image is on some other
|
||
# filesystem (at the time that I run /sbin/lilo to "compile" this
|
||
# stanza). The root fs is on the first partition of the 2nd SCSI drive.
|
||
# It is likely that /dev/sdb1 would be the filesystem mounted under
|
||
# /mnt/tmp when I would run /sbin/lilo. However it's not "required"
|
||
# My kernel image file could be on any filesystem that was mounted
|
||
# /sbin/lilo will warn me if the image is likely to be inaccessible
|
||
# by the BIOS -- it's can't say for sure since there are a lot of
|
||
# BIOS' out there -- some of the newer SCSI BIOS' will boot off of a
|
||
# CD-ROM!
|
||
</pre>
|
||
|
||
<p>I hope that helps. The lilo.conf man page (in section 5) gives
|
||
*lots* more options -- like the one I just saw while writing this
|
||
that allows you to have a password for each of your images -- or
|
||
for the whole set. Also there are a number of kernel options
|
||
described in the BootPrompt-HOWTO. One of the intriguing ones is
|
||
panic= -- which allows you to tell the Linux kernel how long to
|
||
sit there displaying a kernel panic. The default is "forever" --
|
||
but you can use the append= line in your lilo.conf to pass a
|
||
panic= parameter to your kernel -- telling it how many seconds to
|
||
wait before attempting to reboot.
|
||
|
||
<p>In the years that I've used Linux I've only seen a couple (like
|
||
two or three) kernel panics (that could be identified as such). Perhaps
|
||
a dozen times I've had a Linux system freeze or go comatose enough that
|
||
I hard reset it. (Most of those involve very bad hardware IRQ conflicts).
|
||
Once I've even tricked my kernel into scribbling garbage all over one of
|
||
my filesystems (don't play with linear and membase in your XConfig file --
|
||
and, in particular don't specify a video memory base address that's
|
||
inside of your system's RAM address space).
|
||
|
||
<p>So I'm not sure if setting a panic= switch would help much. I'd be
|
||
much more inclined to get a hardware watchdog timer card and enable
|
||
the existing support for that in the kernel. Linux is the only PC
|
||
OS that I know of that comes with this support "built-in"
|
||
|
||
<p>For those that aren't familiar with them a watchdog timer card is
|
||
a card (typically taking an ISA slot) that implements a simple count-down
|
||
and reset (strobing the reset line on the system bus) feature. This is
|
||
activated by a driver (which could be a DOS device driver, a Netware
|
||
Loadable Module, or a little chunk of code in the Linux kernel. Once
|
||
started the card must be updated periodically (the period is set as
|
||
part of the activation/update). So -- if the software hangs -- the
|
||
card *will* strobe the reset line.
|
||
|
||
<p>(Note: this isn't completely fool-proof. Some hardware states might
|
||
require a complete power cycle and some sorts of critical server failures
|
||
will render the systems services unavailable without killing the
|
||
timer driver software. However it is a good sight better than just
|
||
hanging).
|
||
|
||
<p>These cards cost about $100 (U.S.) -- which is a pity since there's
|
||
only about $5 worth of hardware there. I think most Sun workstations
|
||
have this feature designed into the motherboard -- which is what
|
||
PC manufacturers should scramble to do.
|
||
<br><hr><p>
|
||
|
||
<P><B>
|
||
<img align=bottom alt=" " src="../gx/ques.gif">
|
||
AG
|
||
|
||
<p>At 11:43 AM 6/10/97 -0700, you wrote:
|
||
|
||
Subject: Once again, I try to install Linux...
|
||
...and fail miserably.
|
||
|
||
This is getting depressing.
|
||
|
||
Someone wanna explain this whole superblock concept to me? Use
|
||
small words....
|
||
|
||
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
Aryeh,
|
||
|
||
Remember master boot records (MBR's)? Remember "logical"
|
||
boot records -- for volume boot records?
|
||
|
||
<p> A superblock is the Unix term for a logical boot record.
|
||
Linux uses normal partitions that are compatible with the
|
||
DOS, OS/2, NT (et al) hard disk partitioning scheme.
|
||
|
||
<p> To boot Linux you can use LILO (the Linux loader) which can
|
||
be written to your MBR (most common), to your "superblock"
|
||
or to the "superblock" of a floppy. This little chunk of code
|
||
contains a reference (or "map") to the device and logical sector
|
||
of one or more Linux kernels or DOS (or OS/2) bootable partitions.
|
||
|
||
<p> There is a program called "lilo" which "compiles" a lilo.conf
|
||
(configuration file) into this LILO "boot block" and puts it
|
||
onto the MBR, superblock or floppy boot block for you. This is
|
||
the source of most of the confusion about LILO. I can create a
|
||
boot floppy with nothing put this boot block on it -- no
|
||
kernel, no filesystems, nothing. LILO doesn't care where I put
|
||
any of my linux kernels -- so long as it can get to it using
|
||
BIOS calls (which usually limits you to putting the kernel on
|
||
the one of the first two drives connected to the first drive
|
||
controller on your system).
|
||
|
||
<p> Another approach is to use LOADLIN.EXE -- this is a DOS
|
||
program that loads a Linux (or FreeBSD) kernel. The advantage
|
||
of this is that you can have as many kernel files as you like,
|
||
and they can be located on any DOS accessible device (even if you
|
||
had to load various weird device drivers to be able to see that
|
||
device.
|
||
|
||
<p> LOADLIN.EXE is used by some CD-ROM based installation packages
|
||
-- avoiding the necessity of using a boot floppy.
|
||
|
||
<p> The disadvantages of LOADLIN include the fact that you may have
|
||
loaded some device drivers and memory managers that have re-mapped
|
||
(hooked into) critical BIOS interrupt vectors. LOADLIN often needs
|
||
a "boot time hardware vector table" (which it usually writes as
|
||
C:\REALBIOS.INT -- a small hidden/system file). Creating this file
|
||
involves booting from a "stub" floppy (which saves the table) and
|
||
rebooting/restarting the LOADLIN configuration to tell it to
|
||
copy the table from the floppy to your HD. This must be done whenever
|
||
you change video cards, add any controller with a BIOS extension
|
||
(a ROM) or otherwise play with the innards of your machine.
|
||
|
||
<p> Call me and we can go over your configuration to narrow down the
|
||
discussion. If you like you can point your web browser at
|
||
www.ssc.com/lg and look for articles by "The Answer Guy" there.
|
||
I've described this a greater length in some of my articles there.
|
||
|
||
<p>
|
||
--
|
||
Jim
|
||
|
||
<p><hr><p>
|
||
<!--================================================================-->
|
||
|
||
<a name="menus"></a>
|
||
<h3><img align=bottom alt=" " src="../gx/ques.gif">
|
||
Adding Programs to the Pull Down Menus
|
||
</h3>
|
||
<P> <B>
|
||
|
||
From: Ronald B. Simon <a href="mailto:rbsimon@anet.bna.boeing.com">rbsimon@anet.bna.boeing.com</a><br>
|
||
|
||
<P>Thank you for responding to my request.
|
||
By the way I am using RedHat release 4 and I think TheNextLevel window
|
||
manager. I did find a .fvwm2rc.programs tucked away in...
|
||
|
||
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
Ronald,
|
||
TheNextLevel is an fvwm derivative.
|
||
|
||
<P><B>
|
||
<img align=bottom alt=" " src="../gx/ques.gif">
|
||
|
||
/etc/X11/TheNextLevel/. I added a define ProgramCM(Title,,,program
|
||
name) and under the start/applications menu I saw Title. When I put
|
||
the cursor over it and pressed the mouse button, everything froze. I
|
||
came to the conclusion that I am in way over my head and that I
|
||
probably need to open a window within the program that I am trying to
|
||
execute. Any way I will search for some 'C' code that shows me how to
|
||
do that.
|
||
Thanks again!
|
||
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
I forgot to mention that any non X program should be run
|
||
through an xterm.
|
||
|
||
This is normally done with a line in your rc file like:
|
||
|
||
Exec "Your Shell App" exec xterm -e /path/to/your/app &
|
||
|
||
... (I'm using fvwm syntax here -- I'll trust you to translate
|
||
to TNL format).
|
||
|
||
Try that -- it should fix you right up.
|
||
|
||
<p> Also -- when you think your X session is locked up --
|
||
try the Ctrl-Alt-Fx key (where Fx is the function key
|
||
that corresponds to one of your virtual consoles).
|
||
This should switch you out of GUI mode and into your
|
||
normal console environment. You might also try Alt-SysReq
|
||
(Print-Screen on most keyboards) followed by a digit from
|
||
the alphanumeric portion of you keyboard (i.e. NOT from the
|
||
numeric keypad). This is an alternative binding for VC
|
||
switching that might be enabled on a few systems.
|
||
|
||
If all of that fails you can try Ctrl-Alt-Backspace. This
|
||
should (normally) signal the X server to shutdown.
|
||
|
||
<p> Mostly I doubt that your server actually hung. I suspect
|
||
that you confused it a bit by running a non-X program
|
||
not "backgrounded" (you DO need those trailing ampersands)
|
||
and failing to supply it with communications channel back to
|
||
X (an xterm).
|
||
|
||
<p> Please remember that my knowlege of X is very weak. I
|
||
hardly ever use and almost never administer/customize it.
|
||
So you'll want to look at the L.U.S.T. mailing list, or
|
||
the comp.windows.x or (maybe) the comp.os.linux.x (although
|
||
there is nothing to these questions which is Linux specific).
|
||
|
||
I looked extensively for information about TheNextLevel
|
||
on the web (in Yahoo! and Alta Vista). Unfortunately
|
||
the one page that almost all of the references pointed
|
||
to was down
|
||
|
||
<p> The FVWM home page is at:
|
||
<a href="http://www3.hmc.edu/~tkelly/docs/proj/fvwm.html">http://www3.hmc.edu/~tkelly/docs/proj/fvwm.html</a>
|
||
|
||
<p>
|
||
--
|
||
Jim
|
||
|
||
<p><hr><p>
|
||
<!--================================================================-->
|
||
|
||
<a name="skip"></a>
|
||
<h3><img align=bottom alt=" " src="../gx/ques.gif">
|
||
Linux Skip
|
||
</h3>
|
||
<P> <B>
|
||
|
||
From: Jesse Montrose <a href="mailto:jesse@spine.com">jesse@spine.com</a>
|
||
|
||
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
<I>Time warp:
|
||
|
||
This message was lost in my drafts folder while I was
|
||
looking up some of the information. As it turns out the
|
||
wait was to our advantage. Read on.</I>
|
||
<P><B>
|
||
<img align=bottom alt=" " src="../gx/ques.gif">
|
||
Date: Sun, 16 Mar 1997 13:54:34 -0800
|
||
|
||
<p>Greetings, this question is intended for the Answer Guy associated with
|
||
the Linux Gazette..
|
||
|
||
<p>I've recently discovered and enjoyed your column in the Linux Gazette,
|
||
I'm hoping you might have news about a linux port of sun's skip ip
|
||
encryption protocol.
|
||
|
||
<p>Here's the blurb from skip.incog.com:
|
||
|
||
SKIP secures the network at the IP packet level. Any networked
|
||
application gains the benefits of encryption, without requiring
|
||
modification. SKIP is unique in that an Internet host can send an
|
||
encrypted packet to another host without requiring a prior message
|
||
exchange to set up a secure channel. SKIP is particularly well-suited
|
||
to IP networks, as both are stateless protocols. Some of the
|
||
advantages of SKIP include:
|
||
<ul>
|
||
<li> No connection setup overhead
|
||
<li> High availability - encryption gateways that fail can reboot and
|
||
resume decrypting packets instantly, without having to
|
||
renegotiate (potentially thousands) of existing connections
|
||
<li> Allows uni-directional IP (for example, IP broadcast via
|
||
satellite or cable)
|
||
<li> Scalable multicast key distribution
|
||
<li> SKIP gateways can be configured in parallel to perform
|
||
instant-failover
|
||
</ul>
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
I heard a bit about SKIP while I was at a recent IETF
|
||
conference. However I must admit that it got lost in
|
||
the crowd of other security protocols and issues.
|
||
|
||
<p> So far I've paid a bit more attention to the Free S/WAN
|
||
project that's being promoted by John Gilmore of the
|
||
EFF.
|
||
|
||
I finally got ahold of a friend of mine (Hugh Daniel --
|
||
one of the architects of Sun's NeWS project -- and
|
||
well-known cypherpunk and computer security professional)
|
||
|
||
<p> He explained that SKIP is the "Secure Key Interchange Protocol"
|
||
-- that is is a key management protocol (incorporated in
|
||
ISAKMP/Oakley).
|
||
|
||
<p> For secure communications you need:
|
||
<ul>
|
||
<li> Key management (which -- between strangers
|
||
requires some sort of RSA (Public Key) or
|
||
Diffie-Hellman key exchange or even some
|
||
variant of elliptic curve -- from what
|
||
I've heard).
|
||
|
||
<li> Encrypted Link (which will be built into
|
||
IPv6 and will be available as IPSec extensions
|
||
to IPv4 -- using tunnelled interfaces from
|
||
what I gather).
|
||
|
||
<li> Secure-DNS (this is related to the key management
|
||
problem -- we need a trustworthy source of
|
||
public key information -- Verisign and Thawte
|
||
offer commercial "Certification Authority"
|
||
services -- but the 'net needs something a
|
||
bit more open and standards based).
|
||
|
||
</ul>
|
||
<P><B>
|
||
<img align=bottom alt=" " src="../gx/ques.gif">
|
||
|
||
My employer is primarily an NT shop (with sun servers), but since I
|
||
develop in Java, I'm able to do my work in linux. I am one of about a
|
||
dozen telecommuters in our organization, and we use on-demand ISDN to
|
||
dial in directly to the office modem bank, in many cases a long distance
|
||
call.
|
||
|
||
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
I'm finally working on configuring my dial-on-demand ISDN
|
||
line here at my place. I've had diald (dial-on-demand over
|
||
a 28.8 modem) running for about a month now. I just want to
|
||
cut down on that dial time.
|
||
|
||
<P><B>
|
||
<img align=bottom alt=" " src="../gx/ques.gif">
|
||
|
||
|
||
We're considering switching to public Internet connections, using skip
|
||
to maintain security. Skip binaries are available for a few platforms
|
||
(windows, freebsd, sunos), but not linux. Fortunately the source is
|
||
available (http://skip.incog.com/source.html) but it's freebsd, and I
|
||
don't know nearly enough deep linux to get it compiled (I tried making
|
||
source modifications).
|
||
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
|
||
If I understand it correctly SKIP is only a small part of
|
||
the solution.
|
||
|
||
<p> Hopefully FreeS/WAN will be available soon. You can
|
||
do quite a bit with ssh (and I've heard of people
|
||
who are experimenting with routing through some
|
||
custom made tunnelled interface). FreeBSD and Linux
|
||
both support IP tunneling now.
|
||
|
||
<p> For information on using ssh and IP tunnels to build a
|
||
custom VPN (virtual private network) look in this
|
||
month's issue of Sys Admin Magazine (July '97).
|
||
|
||
(Shameless plug: I have an article about C-Kermit appearing
|
||
in the same issue).
|
||
|
||
<p> Another method might be to get NetCrypto. Currently the
|
||
package isn't available for Linux -- however McAfee is
|
||
working on a port. Look at http://www.mcafee.com
|
||
|
||
<P><B>
|
||
<img align=bottom alt=" " src="../gx/ques.gif">
|
||
|
||
After much time with several search engines, the best I could come up
|
||
with was another fellow also looking for a linux version of skip :)
|
||
|
||
Thanks!
|
||
jesse montrose
|
||
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
|
||
<I> Jesse,
|
||
|
||
Sorry I took so long to answer this question. However,
|
||
as I say, this stuff has changed considerably -- even in
|
||
the two months between the time I started this draft message
|
||
and now.</I>
|
||
<p>
|
||
--
|
||
Jim
|
||
|
||
<p><hr><p>
|
||
<!--================================================================-->
|
||
|
||
<a name="active"></a>
|
||
<h3><img align=bottom alt=" " src="../gx/ques.gif">
|
||
ActiveX for Linux
|
||
</h3>
|
||
<P> <B>
|
||
|
||
From: Gerald Hewes <a href="mailto:hewes@OpenMarket.com">hewes@OpenMarket.com</a>
|
||
|
||
<p>Jim,
|
||
|
||
I read your response on ActiveX in the Linux Gazette.
|
||
At <a href="../issue18/lg_answer18.html#active">../issue18/lg_answer18.html#active</a>
|
||
|
||
<p>Software AG is porting the non GUI portions of ActiveX called DCOM
|
||
to Linux. Their US site where it should be hosted appears down
|
||
as I write this e-mail message
|
||
but there is a link of their home page on a Linux DCOM beta:
|
||
|
||
<a href="http://www.softwareag.com/">http:/www.sotwareag.com</a>
|
||
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
I beleive the link ought to be
|
||
|
||
<a href="http://www.sagus.com/prod-i~1/net-comp/dcom/index.htm">http://www.sagus.com/prod-i~1/net-comp/dcom/index.htm</a>
|
||
|
||
<P><B>
|
||
<img align=bottom alt=" " src="../gx/ques.gif">
|
||
|
||
As for DCOM, its main value for the Linux community is in making
|
||
Microsoft Distributed Object Technology available to the Linux
|
||
community. Microsoft is trying to push DCOM over CORBA.
|
||
|
||
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
I know that MS is "trying to push DCOM over CORBA"
|
||
(and OpenDOC, and now, JavaBeans). I'm also aware that
|
||
DCOM stands for "distributed component object model" and
|
||
CORBA is the "common object request broker" and SOM is
|
||
IBM's "system object model" (OS/2).
|
||
|
||
<p> The media "newshounds" have dragged these little bones
|
||
around and gnawed on them until we've all seen them.
|
||
Nonetheless I don't see its "main value to the Linux
|
||
community."
|
||
|
||
<p> These "components" or "reusable objects" will not make
|
||
any difference so long as significant portions of their
|
||
functionality are tied to specific OS (GUI) semantics.
|
||
However, this coupling between specific OS' has been a
|
||
key feature of each of these technologies.
|
||
|
||
<p>It's Apple's OpenDoc, IBM's DSOM, and Microsoft's DSOM!
|
||
|
||
<p> While I'm sure that each as their merits from the programmer's
|
||
point of view (and I'm in no position to comment on their
|
||
relative technical pros or cons) -- I have yet to see any *benefit*
|
||
from a user or administrative point of view.
|
||
|
||
<p> So I suppose the question here becomes:
|
||
|
||
|
||
<p> Is there any ActiveX (DCOM) control (component)
|
||
that delivers any real benefit to any Linux user?
|
||
|
||
Do any of the ActiveX controls not have a GUI component
|
||
to them?
|
||
|
||
What does it mean to make the "non-GUI portions" of
|
||
DCOM available?
|
||
|
||
Is there any new network protocol that this gives
|
||
us? If so, what is that protocol good for?
|
||
|
||
<p>For more information, checkout <a href="http://www.microsoft.com/oledev/">http://www.microsoft.com/oledev</a>
|
||
|
||
<p> While I encourage people to browse around -- I think
|
||
I'll wait until someone can point out one DCOM component,
|
||
one JavaBean, one CORBA object, or one whatever-buzzword-
|
||
you-want-to-call-it-today and can explain in simple "Duh!
|
||
I'm a user!" terms what the *benefit* is.
|
||
|
||
<p> Some time ago -- in another venue -- I provided the net
|
||
with an extensive commentary on the difference between
|
||
"benefits" and "features." The short form is this:
|
||
|
||
<p> I benefit is relevant to your customer. To
|
||
offer a benefit requires that you understand
|
||
your customer. "Features" bear no relation to
|
||
a customers needs. However mass marketing
|
||
necessitates the promotion of features -- since
|
||
the *mass* marketer can't address individual and
|
||
niche needs.
|
||
|
||
<p> Example: Microsoft operating systems offer a "easy to use
|
||
graphical interfaces" -- first "easy to use" is highly subjective.
|
||
In this case it means that there are options listed on menus
|
||
and buttons and the user can guess at which ones apply to
|
||
their need and experiment until something works. That is a feature
|
||
-- one I personally loathe. To me "easy to use" means having
|
||
documentation that includes examples that are close to what
|
||
I'm trying to do -- so I can "fill in the blanks" Next there is
|
||
the ubiquitously touted "GUI." That's another *feature*. To
|
||
me it's of no benefit -- I spend 8 to 16 hours a day looking at
|
||
my screen. Text mode screens are far easier on the eyes than
|
||
any monitor in graphical mode.
|
||
|
||
<p> To some people, such as the blind GUI's are a giant step
|
||
backward in accessibility. The GUI literally threatens to cut
|
||
these people off from vital employment resources.
|
||
|
||
<p> I'm not saying that the majority of the world should abandon
|
||
GUI's just because of a small minority of people who can't
|
||
use them and a smaller, crotchety contingent of people like
|
||
me that just don't like them. I'm merely trying to point
|
||
out the difference between a "feature" and a "benefit."
|
||
|
||
<p> The "writing wizards" offered by MS Word are another feature
|
||
that I eschew. My writing isn't perfect and I make my share
|
||
of typos, as well as spelling and grammatical errors. However
|
||
Most of what I write goes straight from my fingers to the
|
||
recipient -- no proofreading and no editing. When I've
|
||
experimented with spell checkers and "fog indexes" I've consistently
|
||
found that my discourse is beyond their capabilities -- much too
|
||
specialized and involving far too much technical terminology.
|
||
So I have to over-ride more than 90% of the "recommendations of
|
||
these tools.
|
||
|
||
<p> Although my examples have highlighted Microsoft products we
|
||
can turn this around and talk about Linux' famed "32-bit
|
||
power" and "robust stability." These, too are *features*.
|
||
Stability is a benefit to someone who manages a server --
|
||
particularly a co-located server at a remote location. However
|
||
the average desktop applications user could care less about
|
||
stability. So long as their application manage to autosave
|
||
the last three versions of his/her documents the occasional
|
||
reboot is just a good excuse to go get a cup of coffee.
|
||
|
||
<p> Multi-user is a feature. Most users don't consider this to
|
||
be a benefit -- and the idea of sharing "their" system with
|
||
others is thoroughly repugnant to most modern computer users.
|
||
On top of that the network services features which implement
|
||
multi-user access to Linux (and other Unix systems) and NT are
|
||
gaping security problems so far as most IS users are concerned.
|
||
So having a multi-user system is not a benefit to must of us.
|
||
This is particularly true of the shell access that most people
|
||
identify as *the* multi-user feature of Unix (as opposed to the
|
||
file sharing and multiple user profiles, accounts and passwords
|
||
that passes for "multi-user" under Windows for Workgroups and
|
||
NT).
|
||
|
||
<p> So, getting back to ActiveX/DCOM -- I've heard of all sorts
|
||
of features. I'd like to hear about some benefits. Keep in
|
||
mind that any feature may be a benefit to someone -- so
|
||
benefits generally have to be expressed in terms of *who*
|
||
is the beneficiary.
|
||
|
||
<p> Allegedly programmers are the beneficiary of all these
|
||
competing component and object schema. "Use our model
|
||
and you'll be able to impress your boss with glitzy results
|
||
in a fraction of the time it would take to do any programming"
|
||
(that seems to be the siren song to seduce people to any of these).
|
||
|
||
<p> So, who else benefits?
|
||
|
||
<p>
|
||
--
|
||
Jim
|
||
|
||
<p><hr><p>
|
||
<!--================================================================-->
|
||
|
||
<a name="bash"></a>
|
||
<h3><img align=bottom alt=" " src="../gx/ques.gif">
|
||
Bash String Manipulations
|
||
</h3>
|
||
<P> <B>
|
||
|
||
From: Niles Mills <a href="mailto:nmills@dnsppp.net">nmills@dnsppp.net</a>
|
||
|
||
<p>Oddly enough -- while it is easy to redirect the standard error
|
||
of processes under bash -- there doesn't seem to be
|
||
an easy portable way to explicitly generate message or redirect
|
||
output to stderr. The best method I've come up with
|
||
is to use the /proc/ filesystem (process table) like so:
|
||
|
||
<pre>function error { echo "$*" > /proc/self/fd/2 }</pre>
|
||
|
||
<p>Hmmmm...how about good old <pre>>&2</pre>?
|
||
<pre>
|
||
$ cat example
|
||
#!/bin/bash
|
||
echo normal
|
||
echo error >&2
|
||
$ ./example
|
||
normal
|
||
error
|
||
$ ./example > file
|
||
error
|
||
$ cat ./file
|
||
normal
|
||
$ bash -version
|
||
$ bash -version
|
||
bash -version
|
||
GNU bash, version 1.14.4(1)
|
||
</pre>
|
||
<p>Best Regards,
|
||
Niles Mills
|
||
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
I guess that works. I don't know why I couldn't come up
|
||
with that on my own. But my comment worked -- a couple of
|
||
people piped right up with the answer.
|
||
<P><B>
|
||
<img align=bottom alt=" " src="../gx/ques.gif">
|
||
Amigo, that little item dates back to day zero of Unix and
|
||
works on all known flavors.
|
||
|
||
Best of luck in your ventures.
|
||
|
||
<p>Niles Mills
|
||
</B>
|
||
<p><hr><p>
|
||
<!--================================================================-->
|
||
|
||
<a name="blink"></a>
|
||
<h3><img align=bottom alt=" " src="../gx/ques.gif">
|
||
Blinking Underline Cursor
|
||
</h3>
|
||
<P> <B>
|
||
|
||
|
||
From: Joseph Hartmann <a href="mailto:joeh@arakis.sugar-river.net">joeh@arakis.sugar-river.net</a>
|
||
|
||
<p>I know an IBM compatible PC is "capable" of having a blinking
|
||
underline cursor, or a blinking block cursor.
|
||
|
||
<p>My linux system "came" with a blinking underline, which is very
|
||
difficult to see. But I have not been able (for the past several
|
||
hours) to make *any* headway about finding out how to change the
|
||
cursor to a blinking block.
|
||
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
|
||
You got me there. I used to know about five lines of
|
||
x86 assembly language to call the BIOS routine that sets
|
||
the size of your cursor. Of course that wouldn't work under
|
||
Linux since the BIOS is mapped out of existence during the
|
||
trip into protected mode.
|
||
|
||
<p> I had a friend who worked with me back at Peter Norton
|
||
Computing -- he wrote a toy program that provided an
|
||
animated cursor -- and had several need animated sequences
|
||
to show with it -- a "steaming coffee cup," a "running man,"
|
||
and a "spinning galaxy" are the ones I remember.
|
||
|
||
<p> If you wanted to do some kernel hacking it looks like
|
||
you'd change the value of the "currcons" structure in
|
||
one of the /usr/src/linux/drivers/char/ files --
|
||
maybe it would be "vga.c"
|
||
|
||
<p> On the assumption that you are not interested in that
|
||
approach (I don't blame you) I've copied the author of
|
||
SVGATextMode (a utility for providing text console mode
|
||
access to the advanced features of most VGA video cards)
|
||
|
||
<p> Hopefully <a href="mailto:koen.gadeyne@barco.com"> Koen</a> doesn't mind the
|
||
imposition. Perhaps he can help.
|
||
|
||
<p> I've also copied Eugene Crosser and Andries Brouwer
|
||
the authors of the 'setfont' and 'mapscrn' programs
|
||
(which don't seem to do cursors -- but do some cool
|
||
console VGA stuff). 'setfont' lets you pick your
|
||
text mode console font.
|
||
|
||
<p> Finally I've copied Thomas Koenig who maintains the
|
||
Kernel "WishList" in the hopes that he'll add this as
|
||
a possible entry to that.
|
||
|
||
<p>
|
||
Any hints?
|
||
Best Regards,
|
||
|
||
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
Joe,
|
||
|
||
As you can see I don't feel stumped very often -- and
|
||
now that I think about it -- I think this would be a neat
|
||
feature for the Linux console. This is especially true since
|
||
the people who are most likely to stay away from X Windows are
|
||
laptop users -- and those are precisely the people who are
|
||
most likely to need this feature.
|
||
|
||
|
||
<p>
|
||
--
|
||
Jim
|
||
|
||
<p><hr><p>
|
||
<!--================================================================-->
|
||
|
||
<a name="files"></a>
|
||
<h3><img align=bottom alt=" " src="../gx/ques.gif">
|
||
File Permissions
|
||
</h3>
|
||
<P> <B>
|
||
|
||
From: John Gotschall <a href="mailto:johng@frugal.com">johng@frugal.com</a>
|
||
|
||
<p>Hi!
|
||
|
||
I was wondering if anyone there knew how I might actually change the
|
||
file permissions on one of my linux box's DOS partition.
|
||
|
||
|
||
<p>I have Netscape running on one box on our local network, but it can't
|
||
write to another linux box's MSDOS filesystem, when that filesystem
|
||
is NFS mounted. It can write to various Linux directories that have
|
||
proper permissions, but the MSDOS directory won't keep a permissions
|
||
setting, it keeps it stuck as owned by, read by and execute by root.
|
||
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
What you're bumping into is two different issues.
|
||
|
||
The default permissions under which a DOS FAT filesystem
|
||
is mounted (which is "root.root 755" that is: owned by
|
||
user root, group root, rwx for owner, r-x for group and
|
||
other).
|
||
|
||
<p> You can change that with options to the mount (8) command.
|
||
Specifically you want to use something like:
|
||
|
||
<pre>mount -t msdos -o uid=??,gid=??,umask=775</pre>
|
||
|
||
<p> ... where you pick suitable values for the UID and GID from
|
||
your /etc/passwd and /etc/group files (respectively).
|
||
|
||
<p> The other culprit in this is the default behavior of NFS.
|
||
For your own protection NFS defaults to using a feature called
|
||
"root squash" (which is not a part of a vegetable). This
|
||
prevents someone who has root access to some other system
|
||
(as allowed by your /etc/exports file) from accessing your
|
||
files with the same permissions as you're own local root account.
|
||
|
||
<p> If you pick a better set of mount options (and put them in your
|
||
/etc/fstab in the fourth field) then you won't have to worry
|
||
about this feature. I DO NOT recommend that you over-ride that
|
||
setting with the NFS no_root_squash option in the /etc/exports
|
||
file (see 'man 5 exports' for details). I personally would
|
||
*never* use that option with any export that was mounted
|
||
read-only -- not even in my own home between two systems that
|
||
have no live connection to the net! (I do use the no_root_squash
|
||
option with the read-only option -- but that's a minor risk
|
||
in my case).
|
||
<P><B>
|
||
<img align=bottom alt=" " src="../gx/ques.gif">
|
||
|
||
Is there a way to change the MS-DOS permissions somehow?
|
||
|
||
|
||
</B> <P>
|
||
<img align=bottom alt=" " src="../gx/ans2.gif">
|
||
|
||
Yes. See the mount(8) options for uid=, gid=, and umask=.
|
||
I think you can also use the umsdos filesytem type
|
||
and effectively change the permissions on your FAT based
|
||
filesystem mount points.
|
||
|
||
<p> This was a source of some confusion for me and I've never
|
||
really gotten it straight to my satisfaction. Luckily I find
|
||
that I hardly ever use my DOS partitions any more.
|
||
|
||
|
||
<!--================================================================-->
|
||
<P> <hr> <P>
|
||
<center><H5>Copyright © 1997, James T. Dennis <BR>
|
||
Published in Issue 19 of the Linux Gazette July 1997</H5></center>
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
<A HREF="./index.html"><IMG SRC="../gx/indexnew.gif" ALT="[ TABLE OF
|
||
CONTENTS ]"></A> <A HREF="../index.html"><IMG SRC="../gx/homenew.gif"
|
||
ALT="[ FRONT PAGE ]"></A>
|
||
<A HREF="lg_bytes19.html"><IMG SRC="../gx/back2.gif" ALT=" Back "></A>
|
||
<A HREF="./redhat.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
|
||
|
||
<H4>
|
||
"Linux Gazette...<I>making Linux just a little more fun!</I>"
|
||
</H4>
|
||
|
||
<P> <HR> <P>
|
||
<!--===================================================================-->
|
||
|
||
<center>
|
||
<H2>Adventures in Linux: A Redhat Newbie Boldly Treks Onto the Internet
|
||
Frontier</H2>
|
||
<H4>By A. Cliff Seruntine,
|
||
<a href="mailto:cliff@micronet.net">cliff@micronet.net</a></H4>
|
||
</center>
|
||
<p><hr>
|
||
<p>Ever tried using chat to dial out with your modem? If you have, then
|
||
after a few hours of mind-numbing inproductivity you may have found
|
||
yourself developing an odd, convulsive twitch and banging your head
|
||
against your monitor? Another dozen hours of typing in reworded chat
|
||
scripts and you will find yourself wishing the program was a living,
|
||
tangible entity so you could delete it once and for all out of the known
|
||
universe, and thus gain a measure of relief knowing that you have spared
|
||
others the terrible ordeal of sitting in front of their monitors for
|
||
perhaps days on end coding pleas for chat to just dial the #!%$
|
||
telephone. Truthfully, I have found few programs under any of the
|
||
operating systems I am familiar with give me the jitters the way chat
|
||
does.
|
||
|
||
|
||
<p>I recall one frosty summer morning (I live in Alaska, so I can honestly
|
||
describe some summer mornings as being frosty) when I boldly set off
|
||
where no Microsoft hacker has gone before-Linux, the final frontier.
|
||
Well, that's a bit extreme. Many Microsoft hackers have seen the light
|
||
and made the transition. Anyway, I had decided I was going to resist
|
||
Bill Gatus of Borg, and not be assimilated, so I put a new hard drive in
|
||
my computer, downloaded Redhat Linux 4.1 from Redhat's ftp server (a two
|
||
day ordeal with a 33.6 modem, I might add) and read enough of the
|
||
install documentation to get started.
|
||
|
||
<p>Now friends already familiar with the Linux OS offered to come by and
|
||
help me set it up. But I'd have none of it. After all, I owned a
|
||
computer and electronics service center. I was the expert. And I was
|
||
firmly convinced that the best way to truly learn something is to plow
|
||
through it yourself. So I sat down in front of my PC with a cup of tea,
|
||
made the two required floppy disks for a hard drive install, and began
|
||
my voyage into Linux gurudom.
|
||
|
||
<p>About 45 minutes later I was surprised to discover that I was done.
|
||
Linux had been installed on my system and little fishies were swimming
|
||
around my monitor in X windows. Well, I was impressed with myself.
|
||
"Hah!" I said to the walls. "They said it couldn't be done. Not without
|
||
background. Not without experience. But I've showed them. I've showed
|
||
them all! Hah! Hah! Hah!" And then, being the compulsive hacker that I
|
||
am, I began to do what comes naturally. I hacked. And being the Net buff
|
||
that I am, the first thing I decided to do was get on the Internet
|
||
through Linux. And all the stuff I'd read about in my printed copy of
|
||
the works of the Linux Documentation Project said that the way to dial
|
||
out with Linux was through chat.
|
||
|
||
<p>Four days later I found myself on my knees in front of my computer,
|
||
wearily typing in yet another reworded script for chat, half plea, half
|
||
incantation, hoping beyond reason that this time chat would perform the
|
||
miracle I had so long sought and just dial the $#%! phone. Yes, I was by
|
||
that time a broken man. Worse, a broken hacker. My spirit was crushed.
|
||
My unique identity was in peril. I could hear Bill Gatus in the
|
||
distance, but getting closer, closer, saying, "Resistance is futile. You
|
||
will be assimilated." Resigned to my fate, I wrung my hands, achy and
|
||
sore from writing enough script variants to fill a novel the size of War
|
||
and Peace, and prepared to type halt and reboot into Windows 95.
|
||
|
||
<p>Then a voice said, "Luke. Luke! Use the X, Luke!" I don't know why the
|
||
voice was calling me "Luke" since my name is Cliff, but somehow I knew
|
||
to trust that voice. I moved the cursor onto the background, clicked,
|
||
and opened up the applications menu. There I found a nifty little
|
||
program called Minicom. I clicked on Minicom, it opened, initialized the
|
||
modem, and a press of [CTRL-a, d] brought up the dial out options. I
|
||
selected the edit option with the arrow keys, and at the top entered the
|
||
name and number of my server. Then I selected the dial option with the
|
||
arrow keys, and pressed [RETURN]. The X was with me, the modem dialed
|
||
out, logged into my server, and with a beep announced that I should
|
||
press any button. Minicom then asked me to enter my login name and
|
||
password. I breathed a sigh of relief, opened up Arena, typed in an
|
||
address, and . . . nothing happened. Worse, after about a minute, the
|
||
modem hung up.
|
||
|
||
<p>"What?" I wondered aloud, squinting into my monitor, certain that behind
|
||
the phosphorescent glow I could see little Bill Gatuses frantically
|
||
chewing away the inner workings of my computer. "Join me, Cliff," they
|
||
were saying. "It is your destiny."
|
||
|
||
<p>"I'll never join you," I cried out and whipped out my Linux
|
||
Encyclopedia. I couldn't find anything in the index on how to avoid
|
||
assimilation, but I did find out that I needed to activate the ppp
|
||
daemon and give control of the connection from Minicom to the daemon.
|
||
The command line that worked best was:
|
||
|
||
<pre>pppd /dev/cua2 115200 -detach crtscts modem defaultroute</pre>
|
||
|
||
<p><pre>-detach</pre> is the most important option to include here. It causes the
|
||
daemon to take over control of the modem from Minicom. pppd activates
|
||
the Point to Point Protocol daemon. /dev/cua* should be given whatever
|
||
number corresponds to the serial port your modem is attached to, as long
|
||
as you have a serial modem. 115200 is the max speed of my modem with
|
||
compression. You should set this to the max speed of your own modem.
|
||
crtscts tells your modem to negotiate high speed transmissions. modem
|
||
simply indicates the daemon should use the modem as its means of
|
||
networking. It is a default setting, but I like to set it anyway to
|
||
remind me whats going on. And defaultroute tells the daemon which route
|
||
the incoming and outgoing data are going through.
|
||
|
||
<p>The trick is to enter all this before the Minicom connection times out.
|
||
You could go through the trouble writing it out every time you log on,
|
||
but a better way is to edit an alias in .bashrc. Go down to the /root
|
||
directory and type emacs .bashrc (or whatever your prefered editor is)
|
||
and enter the line below as follows:
|
||
|
||
<pre>alias daemon = <pppd /dev/cua* <your modem speed> -detach crtscts modem
|
||
defaultroute></pre><br>
|
||
|
||
(Do not forget the quotes or your alias will not function.)
|
||
|
||
<p>Finally, go into the control panel, double click on the networking icon,
|
||
and select the last tab that appears. There you will find near the top
|
||
the option to set your default gateway and your device. Set your default
|
||
gateway to whatever your Internet server specifies. Specify your device
|
||
as /dev/cua (whatever serial port your modem is attached to). Sometimes
|
||
simply /dev/modem will work if it has been symbolically linked in your
|
||
system. (By the way, if you haven't already done it, in X you also need
|
||
to double click the modem icon in the control panel and set your modem
|
||
to the correct /dev/cua(serial port number) there too). And if you have
|
||
a SLIP account (rare these days) add the pertinent info while setting up
|
||
your gateway.
|
||
|
||
<p>Reboot your system. Now your new alias and settings will all be in
|
||
effect. Now just invoke Minicom and dial out. Then at xterminal type
|
||
daemon. Minicom will beep at you for taking away its control of the
|
||
modem. To be on the safe side, I like to kill Minicom to make sure it
|
||
stops fighting with the daemon for control of the modem. Occasionally it
|
||
will succeed and weird things will happen. Then invoke your browser and
|
||
you are on the World Wide Web.
|
||
|
||
<p>As a final note, Arena's HTML is kind of weak, and you may find it
|
||
locking up with newer, more powerful web code. It is a good idea to
|
||
download a more capable browser such as Netscape 3.01, which makes a
|
||
fine Linux browser, and install and use that as soon as possible.
|
||
|
||
<p>And that's all there is to taking your Linux webship onto the
|
||
Information frontier. Well, I'm enjoying my time on the web. I think
|
||
I'll build a new site dedicated to stopping the assimilation.
|
||
|
||
|
||
<!--===================================================================-->
|
||
<P> <hr> <P>
|
||
<center><H5>Copyright © 1997, Cliff Seruntine<BR>
|
||
Published in Issue 19 of the Linux Gazette, July 1997</H5></center>
|
||
|
||
<!--===================================================================-->
|
||
<P> <hr> <P>
|
||
<A HREF="./index.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
|
||
ALT="[ TABLE OF CONTENTS ]"></A>
|
||
<A HREF="../index.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
|
||
ALT="[ FRONT PAGE ]"></A>
|
||
<A HREF="./lg_answer19.html"><IMG SRC="../gx/back2.gif"
|
||
ALT=" Back "></A>
|
||
<A HREF="./ale.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
|
||
<P> <hr> <P>
|
||
|
||
<H4>
|
||
"Linux Gazette...<I>making Linux just a little more fun!</I>"
|
||
</H4>
|
||
|
||
<P> <HR> <P>
|
||
<!--===================================================================-->
|
||
|
||
<center>
|
||
<H2>Atlanta Showcase Report</H2>
|
||
<H4>By Phil Hughes,
|
||
<a href="mailto:phil@ssc.com">phil@ssc.com</a>
|
||
<a href="mailto:todds@ontko.com">todds@ontko.com</a></H4>
|
||
</center>
|
||
<P><HR>
|
||
<a href="http://www.ale.org/showcase">The Atlanta Linux Showcase</a>
|
||
is over, and everyone is beginning to recover.
|
||
Recover, that is, from being awake too long, being on a plane too long and
|
||
stuffing more Linux than will fit into one weekend.
|
||
|
||
<p>ALS was put together by the Atlanta Linux Enthusiasts, the local
|
||
Linux user's group in Atlanta, Georgia.
|
||
The show began on Friday evening, June 6 and ran through Sunday
|
||
afternoon.
|
||
More than 500 people attended.
|
||
The report following this one by Todd Shrider covers much of the show,
|
||
including the talks.
|
||
|
||
<p>I want to thank Amy Ayers and Karen Bushaw for making their photos
|
||
available to us with a special thank you to Amy for getting them scanned and
|
||
uploaded to the SSC ftp site.
|
||
|
||
<p>I spent most of my time in the <I>Linux Journal</I> booth giving away
|
||
magazines and talking to show attendees.
|
||
One aspect that made this show special for me is that I didn't spend
|
||
most of my time explaining that Linux is a Unix-like operating system to
|
||
the attendees.
|
||
Instead, I got to discuss Linux with experienced people with thoughtful
|
||
questions, letting them know in the process how <I>LJ</I> could help them.
|
||
Each attendee was truly interested in Linux and stopped at each booth in
|
||
the show.
|
||
I expect attendees appreciated the low signal-to-noise ratio in the
|
||
booths; that is, conversations were solely about Linux.
|
||
|
||
<h3>The Roast</h3>
|
||
|
||
<p>On Saturday night there was a roast--no, I didn't change from a
|
||
vegetarian into a meat eater overnight--we were roasting Linus.
|
||
That is, a group of people presented interesting stories about Linus,
|
||
intended to only slightly embarrass him.
|
||
At the end of the evening, I felt that the roast had been successful in
|
||
every way.
|
||
|
||
<p>In front of a crowd of about 115 people, Eric Raymond, David Miller, Jon
|
||
"maddog" Hall and I got to pick on this Linus character.
|
||
Topics varied from Linus almost being hit by a car in Boston because he was
|
||
so engrossed in talking about a particular aspect of kernel code, to the evolution of
|
||
the top-half/bottom-half concept in interrupt handlers and to why Linus was
|
||
apparently moving from geekdom to becoming a "hunk"
|
||
sportswear model. (See the cover of the San Jose <I>Metro</I>, May 8-14, 1997.)
|
||
|
||
<p>Maddog finished the roasting by telling a few Helsinki stories and showing
|
||
a video that included Tove's parents talking about Linus.
|
||
A good time was had by the roasters and the audience and, as Linus'
|
||
closing comment was "I love you all," we assume he had a good
|
||
time too and wasn't offended by our gentle ribbing.
|
||
|
||
<h3>The Future</H3>
|
||
|
||
<P>The show came off very well. I consider this sucess an amazing feat for an
|
||
all-volunteer effort.
|
||
The ALE members plan to write an article for <I>Linux Gazette</I> about how
|
||
they made this happen.
|
||
We'll also make this information available on the <a
|
||
href="http://www.ssc.com/glue">GLUE web site</a>.
|
||
I would like to see more shows put on by user groups.
|
||
The local involvement, the enthusiasm of the attendees and the all Linux
|
||
flavor of the show made this weekend a great experience.
|
||
We are already thinking about a Seattle or Portland show and would like to
|
||
help others make regional shows a reality.
|
||
<P><HR>
|
||
<p><a href="./alephotos.html">Take a look at the ALS Photo Album.</a>
|
||
<center><H2>More on ALS</H2>
|
||
by Todd M. Shrider,
|
||
<a href="mailto:todds@ontko.com">todds@ontko.com</a></H4></center>
|
||
<P><HR>
|
||
<P>I first started writing this article in my hotel room late Sunday evening
|
||
(or early Monday morning) planning to get just enough sleep that I would
|
||
wake up in time to catch my plane. The plan didn't work--I
|
||
missed my 6:00 AM flight out of Atlanta.
|
||
I did the second draft while waiting for my new 9:45 AM flight.
|
||
The third draft
|
||
came (yes, you guessed it) while waiting for my 1:30 PM connection from
|
||
Detroit to Dayton, also having missed the previous connection because of
|
||
my first flight's late arrival. Suffice it to say, I'm now back home in
|
||
Indiana and still enjoying the high received from the Atlanta Linux
|
||
Showcase.
|
||
|
||
<P>Thanks to all the sponsors and to our host, the Atlanta Linux Enthusiasts
|
||
user group, the conference started with a bang and went off
|
||
without a hitch. The conference was a three day event, starting with
|
||
registration Friday and ending Sunday with a kernel hacking session led
|
||
by none other than Linus himself. In between there were numerous
|
||
conferences found in both a business and technical track, several birds of
|
||
a feather (BoF) sessions and a floor show. These events were broken up
|
||
with frequent trips to local pubs and very little sleep.
|
||
|
||
<P>This was my first (but not last) Linux conference, and I found that an
|
||
added benefit of ALS was meeting all the people who
|
||
use Linux as a viable business platform/tool. (These same people tend to be doing
|
||
very cool things with Linux on the side).
|
||
From companies such as Red Hat to Caldera to others such as
|
||
MessageNet, Cyclades and DCG Computers, it was obvious that many people
|
||
have very creative ways to make money with
|
||
Linux. This wasn't limited, by any means, to the vendors. Many of the
|
||
conference speakers talked of ways to make money with Linux or of their
|
||
experiences with Linux in a professional environment.
|
||
|
||
<P>
|
||
All of these efforts seemed to compliment the key-note address, World
|
||
Domination 101, where Linus Torvalds, called for applications,
|
||
applications, applications. Did I say he thought Linux needed a few
|
||
more useful applications? Anyway, he pointed out the more or less obvious
|
||
fact that, if Linux is going to be a
|
||
success in a world of commercial operating systems, we need every
|
||
application type you find in other commercial operating systems. In other
|
||
words, if you're thinking about doing--don't think--just
|
||
do it.
|
||
Another thing that Linus pointed out, and that I was glad to hear echoed
|
||
throughout the conference, was that Linux needs to be easy to use. It
|
||
needs to be so easy that a secretary or corporate executive
|
||
could sit and be as productive as they would be
|
||
with Windows 95. We need to make people realize that Linux has gotten rid
|
||
of the high learning curve usually associated with Unix.
|
||
|
||
<P>Something pointed out by Don Rosenberg, while speaking on the "how-to" and
|
||
"what's needed next" of commercial Linux, was that we are now in a stage
|
||
where the innovators (that's us) and the early adopters (that's us as well
|
||
as the people using Linux in the business world today) must continue to
|
||
push forward so that we can get a group of early adopters (the old DOS
|
||
users) to take us seriously. In Maddog's closing remarks he urged us all
|
||
to find two DOS users, convert them to Linux and then tell them to do the
|
||
same. As a step in this direction, today I introduced a local computer corporate sales
|
||
firm to Linux; whether they take my advice and run is left to be seen, but
|
||
believe me, I'm pushing.
|
||
|
||
<P>The rest of the conference was filled with business and technical talks.
|
||
The business talks included things such as Eric Raymond's "The Cathedral
|
||
and the Bazaar", talks on OpenLinux by both Jeff Farnsworth and Steve
|
||
Webb and "Linux Connectivity for Humans" by none other than Phil Hughes.
|
||
Lloyd Brodsky was on hand to talk about Intranet Support of Collaborative
|
||
Planning while Lester Hightower brought us the story of PCC and their
|
||
efforts to bring Linux to the business world. Mark Bolzern spoke of the
|
||
significance of Linux and Bob Young talked of the "process" not
|
||
the "product" of Linux.
|
||
|
||
<P>The technical discussion track started with Richard Henderson's discussion
|
||
of the shared libraries and their function across several architectures.
|
||
Michael Maher gave a HOWTO of Red Hat's RPM package management system and
|
||
Jim Paradis discussed EM86 and what remains to be done,
|
||
so that one can run Intel/Linux binaries under Alpha
|
||
Linux. David Miller then followed giving a boost of enthusiasm with his
|
||
discussion of the tasks involved in porting Linux to SPARC and Miguel de
|
||
Icaza took us on a trip to the world of RAID and Linux. We convened the next
|
||
day to hear David Mandelstam discuss what is involved with wide-area
|
||
networks and Mike Warfields anatomy of a cracker's intrusion.
|
||
|
||
<P>All in all, the conference was a huge success. What I might suggest as an
|
||
improvement for next year is more involvement from the vendors (or maybe
|
||
just more vendors), a possible sale from the vendors of their special
|
||
Linux wares to the conference attendees and a possible tutorial session
|
||
like the ones seen at Uselinux (Anaheim, California, January 1997). Other than
|
||
that, a few virtual beers (I owe
|
||
you Maddog) and lots of great geek conversation made for one wild weekend.
|
||
|
||
|
||
<!--===================================================================-->
|
||
<P> <hr> <P>
|
||
<center><H5>Copyright © 1997, Phil Hughes and Todd M. Shrider<BR>
|
||
Published in Issue 19 of the Linux Gazette, July 1997</H5></center>
|
||
|
||
<!--===================================================================-->
|
||
<P> <hr> <P>
|
||
<A HREF="./index.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
|
||
ALT="[ TABLE OF CONTENTS ]"></A>
|
||
<A HREF="../index.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
|
||
ALT="[ FRONT PAGE ]"></A>
|
||
<A HREF="./redhat.html"><IMG SRC="../gx/back2.gif"
|
||
ALT=" Back "></A>
|
||
<A HREF="./caldera.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
|
||
<P> <hr> <P>
|
||
|
||
<H4>
|
||
"Linux Gazette...<I>making Linux just a little more fun!</I>"
|
||
</H4>
|
||
|
||
<P> <HR> <P>
|
||
<!--===================================================================-->
|
||
|
||
<P>SSC is expanding Matt Welsh's <I>Linux Installation & Getting
|
||
Started</I> by adding chapters about each of the major distributions. Each
|
||
chapter is being written by a different author in the Linux community.
|
||
Here's a sneak preview--the Caldera chapter by Evan Leibovitch.--editor
|
||
<P><HR><P>
|
||
|
||
<center>
|
||
<H2>Caldera OpenLinux </H2>
|
||
<H4>By Evan Leibovitch,
|
||
<a href="mailto:evan@teely.on.ca">evan@teely.on.ca</a></H4>
|
||
</center>
|
||
<P><HR>
|
||
|
||
<p>This section deals with issues specific to the Caldera releases of
|
||
Linux, how to install the current release (Caldera OpenLinux) and
|
||
prepare for the steps outlined in the following chapters. It is
|
||
intended to be a complement to, not a replacement for, the "Getting
|
||
Started Guides" Caldera ships with all of its Linux-based
|
||
products. References to the Getting Started Guide for Caldera Open
|
||
Linux Base will be indicated throughout this chapter simply as "the
|
||
Guide".
|
||
|
||
<h3>What is Caldera?</h3>
|
||
|
||
<p>The beginnings of Caldera the company come from an internal Novell
|
||
project called "Corsair". While Novell had owned Unix System V in
|
||
the early 1990s, Corsair was formed to see if there were things Novell
|
||
could learn from Linux.
|
||
|
||
<p>Corsair was a casualty of the changing of the guard at Novell that
|
||
also caused it to sell off Unix to SCO and WordPerfect to
|
||
Corel. Novell founder Ray Noorda gave startup capital to this group
|
||
with the intention of making Linux available in a manner that would be
|
||
as acceptable to business users and corporate MIS as commercial
|
||
versions of Unix. Caldera is a privately-held company based in Orem,
|
||
Utah.
|
||
|
||
<p>The implementation of this goal has resulted in a series of
|
||
Linux-based products that "broken the mold" in a number of
|
||
ways. Caldera was the first Linux distribution to bundle-in commercial
|
||
software such as premium X servers, GUI desktops, backup software and
|
||
web browsers; at the time of writing, Caldera is the only Linux
|
||
distribution officially supported by Netscape.
|
||
|
||
<h3>The Caldera Network Desktop</h3>
|
||
|
||
<p>Caldera's first product, the Caldera Network Desktop (CND), was
|
||
released to the public in early 1995 in a $29 "preview" form (a
|
||
rather unusual manner to run a beta test), and in final release
|
||
version in early 1996. The CND was based on the 1.2.13 Linux kernel,
|
||
and included Netscape Navigator, Accelerated-X, CrispLite, and the
|
||
Looking Glass GUI desktop. It also was the first Linux release to
|
||
offer NetWare client capabilities, being able to share servers and
|
||
printers on existing Novell networks. Production and sale of CND
|
||
ceased in March 1997.
|
||
|
||
<h3>Caldera OpenLinux</h3>
|
||
|
||
<p>In late 1996, Caldera announced its releases based on the Linux 2.0.25
|
||
kernel would be named Caldera Open Linux (COL) and would be made
|
||
available at three levels;
|
||
|
||
<ul>
|
||
<li>COL Base, which includes Navigator, CrispLite, and the Metro-X server;
|
||
|
||
<li>COL Standard, which would add the Netscape FastTrack secure web
|
||
server, the StarOffice desktop productivity suite, and NetWare
|
||
connectivity;
|
||
|
||
<li>COL Deluxe, which incorporates all the features of Standard and
|
||
also offers NetWare--server--capabilities.
|
||
</ul>
|
||
|
||
<p>As this is written, only the COL Base release is shipping,
|
||
and feature sets of the other packages are still being determined.
|
||
For specific and up-to-date lists of the comparative features of the
|
||
three levels, check the Caldera web site <a href="http://www.caldera.com">http://www.caldera.com</a>.
|
||
|
||
<p>Because all three levels of COL build on the Base release, all three
|
||
are installed the same way. The only difference is in the different
|
||
auxiliary packages available; their installation and configuration
|
||
issues are beyond the scope of this guide. Most of COL's add-on
|
||
packages contain their own documentation; check the /doc directory of
|
||
the Caldera CD-ROM for more details.
|
||
|
||
<h3>Obtaining Caldera</h3>
|
||
|
||
<p>Unlike most other Linux distributions, COL is not available for
|
||
downloading from the Internet, nor can it be distributed freely or
|
||
passed around. This is because of the commercial packages which are
|
||
part of COL; while most of the components of COL are under the GNU
|
||
Public License, the commercial components, such as Looking Glass and
|
||
Metro-X, are not. In the list of packages included on the COL media
|
||
starting on page 196 of the Guide, the commercial packages are noted
|
||
by an asterisk.
|
||
|
||
<p>COL is available directly from Caldera, or through a network of
|
||
Partners around the world who have committed to supporting Caldera
|
||
products. These Partners can usually provide professional assistance,
|
||
configuration and training for Caldera users. For a current list of
|
||
Partners, check the Caldera web site.
|
||
|
||
<h3>Preparing to Install Caldera Open Linux</h3>
|
||
|
||
<p>Caldera support the same hardware as any other release based on Linux
|
||
2.0 kernels. Appendix A of the Guide (p145) lists most of the SCSI
|
||
hosts supported and configuration parameters necessary for many
|
||
hardware combinations.
|
||
|
||
<p>Taking a page out of the Novell manual style, Caldera's Guide provides
|
||
an installation worksheet (page 2) that assists you in having at hand
|
||
all the details of your system that you'll need for installation. It
|
||
is highly recommended you complete this before starting installation;
|
||
while some parameters, such as setting up your network, are not
|
||
required for installation, doing it all at one time is usually far
|
||
easier than having to come back to it. Sometimes this can't be
|
||
avoided, but do as much at installation time as possible.
|
||
|
||
<h3>Creating boot/modules floppies</h3>
|
||
|
||
<p>The COL distribution does not come with the floppy disks required for
|
||
installation. There are two floppies involved; one is used for
|
||
booting, the other is a "modules" disk which contains many hardware
|
||
drivers.
|
||
|
||
<p>While the Guide recommends you create the floppies by copying them
|
||
from the CD-ROM, it is better to get newer versions of the disks from
|
||
the Caldera web site. The floppy images on some CD-ROMs have errors
|
||
that cause problems, especially with installations using SCSI disks
|
||
and large partitions.
|
||
|
||
<p>To get newer versions of the floppy images, download them from
|
||
Caldera's FTP site. In directory {\tt pub/col-1.0/updates/Helsinki}, you'll
|
||
find a bunch of numbered directories. Check out the directories in
|
||
descending order---that will make sure you get the latest versions.
|
||
|
||
<p>If you find one of these directories has a subdirectory called
|
||
<pre>bootdisk</pre>, the contents of that directory
|
||
are what you want.
|
||
|
||
<p>You should find two files:
|
||
|
||
<pre>install-2.0.25-XXX.img
|
||
modules-2.0.25-XXX.img</pre>
|
||
|
||
<p>The <pre>XXX</pre> is replaced by the version number of the disk images.
|
||
At the time of writing, the current images are 034 and located in the
|
||
001 directory.
|
||
|
||
<p>Once you have these images, transfer them onto two floppies using the
|
||
methods described on page 4 of the Guide, using RAWRITE from the
|
||
Caldera CD-ROM if copying from a DOS/Windows system or
|
||
<pre>dd</pre> from a Linux system.
|
||
|
||
<p>While Caldera's CD-ROM is bootable (if your system's BIOS allows it),
|
||
if possible use the downloaded floppies anyway, since they are newer
|
||
and will contain bug-fixes that won't be in the CD versions.
|
||
|
||
<h3>Preparing the hard disks</h3>
|
||
|
||
<p>This procedure is no different from that of other Linux distributions.
|
||
You must use fdisk on your booted hard disk to allocate at least two
|
||
Linux partitions, one for the swap area and one for the root
|
||
file system. If you are planning to make your system dual-boot COL
|
||
with another operating system such as MS Windows or DOS or even OS/2,
|
||
it's usually preferable to install COL last; its "fdisk" recognizes
|
||
"foreign" OS types better than the disk partitioning tools of most
|
||
other operating systems.
|
||
|
||
<p>To run the Linux fdisk, you'll need to start your system using the
|
||
boot (and maybe the modules) floppy mentioned above. That's because
|
||
you need to tell COL what kind of disk and disk controller you have;
|
||
you can't even get as far as entering <pre>fdisk</pre> if Linux doesn't
|
||
recognize your hard disk!
|
||
|
||
<p>To do this, follow the bootup instructions in the Guide, from step 2
|
||
on page 33 to the end of page 36. Don't bother going through the
|
||
installation or detection of CDROMs or network cards at this time; all
|
||
that matters at this point is Linux sees the booting hard disk so you
|
||
can partition it using fdisk. A brief description of the use of the
|
||
Linux fdisk is provided on page 28 of the Guide.
|
||
|
||
<p>Remember that when running fdisk, you need to set up both your root
|
||
file system (type 83) and your swap space (type 82) as new partitions.
|
||
A brief discussion of how much swap space to allocate is offered on
|
||
page 10 of the Guide.
|
||
|
||
<p>As soon as you have completed this and written the partition table
|
||
information to make it permanent, you will need to reboot.
|
||
|
||
<!--===================================================================-->
|
||
<P> <hr> <P>
|
||
<center><H5>Copyright © 1997, Evan Leibovitch<BR>
|
||
Published in Issue 19 of the Linux Gazette, July 1997</H5></center>
|
||
|
||
<!--===================================================================-->
|
||
<P> <hr> <P>
|
||
<A HREF="./index.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
|
||
ALT="[ TABLE OF CONTENTS ]"></A>
|
||
<A HREF="../index.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
|
||
ALT="[ FRONT PAGE ]"></A>
|
||
<A HREF="./ale.html"><IMG SRC="../gx/back2.gif"
|
||
ALT=" Back "></A>
|
||
<A HREF="./clue.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
|
||
<P> <hr> <P>
|
||
|
||
<H4>
|
||
"Linux Gazette...<I>making Linux just a little more fun!</I>"
|
||
</H4>
|
||
|
||
<P> <HR> <P>
|
||
<!--===================================================================-->
|
||
|
||
|
||
<html><ClueLess.html, a new user help document>
|
||
<center><h3>CLUELESS at the Prompt: A new column for new users</h3></p>
|
||
<P>by Mike List,
|
||
<a href="mailto:troll@net-link.net">troll@net-link.net</a></center>
|
||
<P><HR><P>
|
||
<body><center><IMG ALIGN=MIDDLE SRC = "../gx/list/gnub.jpg" ></center><p>
|
||
<h4>Welcome to installment 6 of Clueless at the Prompt:
|
||
a new column for new users.</h4>
|
||
<P><HR><P>
|
||
This time let's take a quick look at
|
||
the XF86Setup utility. at X window managers, concentrating on FVWM, adding
|
||
popup menus, adding and subtracting apps from existing popups and other
|
||
relatively easy ways to get a custom appearance and feel.
|
||
<hr>
|
||
<h4>Using XF86Setup to configure X</h4><p>
|
||
Judging from the posts I've seen on the usenet, a lot of people aren't
|
||
aware that there's an easier way to get X up and running than configuring
|
||
it the old confusing way(at least I found it to be that way), using a
|
||
tcl/tk script called XF86Setup. While it doesn't totally eliminate the
|
||
need to manually edit your XConfig, it does provide a method of getting a
|
||
usable configuration for most common video cards and monitors. XF86Setup
|
||
first appeared in the XFree86 3.2 distribution, and uses the lowest common
|
||
denominator VGA 16 color mode server and a tcl/tk(corrections welcome)
|
||
script to start the config process in X and by using the graphical nature
|
||
of this utility script you can be almost certain to have X running in a
|
||
couple of tries, and if worst comes to worst you can have it running in 16
|
||
color mode until you can get the details to optimize it to your video
|
||
hardware. Current downloads of Xfree86 all seem to have this included, and
|
||
if your CDROM diskribution has X 3.2 or better you already have it
|
||
available to install to your HD. If you download it from xf86.org, be sure
|
||
to read the Relnotes for the component files necessary to insure a
|
||
successful install. You'll need :<ul>
|
||
<li>preinst.sh Pre-installation script
|
||
<li>postinst.sh Post-installation script
|
||
<li>X3?bin.tgz Clients, run-time libs, and app-defaults files
|
||
<li>X3?doc.tgz Documentation
|
||
<li>X3?fnts.tgz 75dpi, misc and PEX fonts
|
||
<li>X3?lib.tgz Data files required at run-time
|
||
<li>X3?man.tgz Manual pages
|
||
<li>X3?set.tgz XF86Setup utility
|
||
<li>X3?VG16.tgz 16 colour VGA server (XF86Setup needs this
|
||
server)</ul>, where ?=the level of the distribution you're using, ie.3.2,
|
||
3.3 etc.,
|
||
for all installations, read the relnotes for any oher files your specific
|
||
hardware might need.
|
||
Since the 3.3 version just came out, if you are just getting around to
|
||
setting up X you will most likely want to get this distribution, since
|
||
every successive version has support for more hardware and often better
|
||
support for hardware already supported.
|
||
<p>OK, you have the files you need, that is the ones listed above, and the
|
||
server for your particular video card, in my case the SVGA server, you may
|
||
need to do a little detective work to determine which server to use.
|
||
If you are using the X version that comes on your CDROM, you can probably
|
||
install all the servers(assuming there's space on your HD)and let the
|
||
XF86Setup prog make the choice. To install,type:
|
||
<pre>
|
||
cd /usr/X11R6
|
||
</pre>
|
||
Next, copy the preinst.sh and postinst.sh scripts to /var/tmp, then go to
|
||
/usr/X11R6 and type:
|
||
<pre>
|
||
|
||
cd /usr/X11R6
|
||
sh /var/tmp/preinst.sh
|
||
</pre>
|
||
the script will remove some symbolic links, and check to see that all the
|
||
files you need are available, and may output a message asking for those
|
||
files that are needed but not present. But assuming that you have followed
|
||
the above, everything should be in place, and you should get a generally
|
||
encouraging message on exit from the script.
|
||
<p>
|
||
Now for the installation itself,type:
|
||
<pre>
|
||
tar -zxvf /wherever/you/have/X3?files.tgz
|
||
</pre>
|
||
you'll have to repeat this step with each of the required files, although
|
||
if you have these files in a directory by themselves, you may be able
|
||
to type:
|
||
<pre>
|
||
tar -zxvf /wherever/youhavethem/*.tgz
|
||
</pre>
|
||
although it's been awhile, and I can't recall if it works, it won't hurt
|
||
anything to try, since the alternative is to unpack each tgz file
|
||
separately.
|
||
<p> Next you run the postinst.sh script in the same manner as the
|
||
preinst.sh above, this will make sure that you have all the X components
|
||
in the correct places.Run ldconfig something like:
|
||
<pre>
|
||
ldconfig -m /usr/X11R6/lib
|
||
</pre>
|
||
or reboot to run ldconfig automatically. This links the libraries
|
||
necessary to run X. At this point you should be able to start the actual
|
||
setup by typing, naturally:
|
||
<pre>
|
||
XF86Setup
|
||
</pre>
|
||
which will present a dialog box asking if you want to start in graphical
|
||
mode or tell you it will start momentarily.
|
||
At this point you'll be in X, using the 16 color VGA server.Read all the
|
||
instructions, and follow the routine, which I found to be pretty
|
||
self-explanatory. You will probably have the most trouble finding the
|
||
right mouse device and protocol, but try each one in turn if you aren't
|
||
sure. You'll probably also want to change the keyboard to 102key US
|
||
International keyboard. Specify the video card, and monitor info, don't
|
||
worry if you don't know the salient monitor inf, you cna start at the top
|
||
of the list and work your way down the list until you reach a good
|
||
setting.Much easier if you have your monitor manual available, so have it
|
||
on hand if you can. Finish the routine when you think it's right and that
|
||
should do it. Congratulations on your hopefully valid Xconfiguration. If
|
||
you muff it just try again using slightly different settings until you do
|
||
get it right.
|
||
<hr>
|
||
<h4>Window Managers</h4>
|
||
Most Linux distributions that i'm familiar with use the FVWM window
|
||
manager as default and the rest of them should have it present, unless you
|
||
downloaded the files directly from xf86.org, in which case the default is
|
||
TWM.
|
||
<p>
|
||
FVWM is highly configurable by editing the
|
||
/var/X11R6/lib/fvwm/system.fvwmrc file.You can use the file as it is,
|
||
since it has the most common installed features already configured, but
|
||
you can comment out those programs that you don't have installed by adding
|
||
a "#" at the beginning of the lines you wish to drop, change colors, add
|
||
popup menus, and more just by following the examples. Just be sure to save
|
||
the system.fvwmrc by typing:
|
||
<pre>
|
||
cp /var/X11R6/lib/fvwm/system.fvwmrc
|
||
/var/X11R6/lib/fvwm/system.fvwmrc.old
|
||
</pre>
|
||
or something similar, so if you do mess up on your customization you can
|
||
always start from scratch by cp'ing .old to the original system.fvwmrc.A
|
||
couple of months ago The Weekend Mechanic column had some very cool ideas
|
||
on wallpapering the root window, so you might want to check them out.
|
||
<p>I made "Internet" and "PPP" popup menus to include lynx, Netscape and a
|
||
couple of telnet sites, as well as an IRC client, and to use the chat
|
||
script from X. you may have other ideas more to your liking, don't be
|
||
afraid to try, you can always start over again if you don't like the
|
||
results.
|
||
<p>
|
||
Take a look at my <a href="cluelist">system.fvwmrc</a>, nothing too
|
||
sophisticated, but if you compare it to the original you should get the
|
||
idea. I commented the changes that I made so you can see some of the
|
||
ways in which you can customize yours.
|
||
<p>
|
||
|
||
<!--===================================================================-->
|
||
<P> <hr> <P>
|
||
<center><H5>Copyright © 1997, Mike List<BR>
|
||
Published in Issue 19 of the Linux Gazette, July 1997</H5></center>
|
||
|
||
<!--===================================================================-->
|
||
<P> <hr> <P>
|
||
<A HREF="./index.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
|
||
ALT="[ TABLE OF CONTENTS ]"></A>
|
||
<A HREF="../index.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
|
||
ALT="[ FRONT PAGE ]"></A>
|
||
<A HREF="./caldera.html"><IMG SRC="../gx/back2.gif"
|
||
ALT=" Back "></A>
|
||
<A HREF="./gm.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
|
||
<P> <hr> <P>
|
||
|
||
<H4>
|
||
"Linux Gazette...<I>making Linux just a little more fun!</I>"
|
||
</H4>
|
||
|
||
<P> <HR> <P>
|
||
<!--===================================================================-->
|
||
<HEAD>
|
||
<TITLE>
|
||
Graphics Muse
|
||
</TITLE>
|
||
</HEAD>
|
||
|
||
|
||
<!-- =============================================================
|
||
This Page Designed by Michael J. Hammel.
|
||
Permission to use all graphics and other content for private,
|
||
non-commerical use is granted provided you give me (or the
|
||
original authors/artists) credit for the work.
|
||
|
||
CD-ROM distributors and commercial ventures interested in
|
||
providing the Graphics Muse for a fee must contact me,
|
||
Michael J. Hammel (mjhammel@csn.net), for permission.
|
||
============================================================= !-->
|
||
|
||
<!-- The Button box as a client side imagemap -->
|
||
<MAP NAME="nav-main">
|
||
<AREA SHAPE="rect" HREF="#mews" coords="3,10 158,56">
|
||
<AREA SHAPE="rect" HREF="#musings" coords="5,85 142,116">
|
||
<AREA SHAPE="rect" HREF="#resources" coords="5,152 177,182">
|
||
</MAP>
|
||
|
||
|
||
<TABLE width=560>
|
||
<tr>
|
||
<td width=441 valign="top" align=left cellpadding=0 cellspacing=0>
|
||
|
||
<!-- The title graphics -->
|
||
<IMG SRC=../gx/hammel/gm3.gif ALT="Welcom to the Graphics Muse"
|
||
ALIGN="left" WIDTH="441" HEIGHT="216" border="0"></td>
|
||
|
||
<td width=119 align=right valign="bottom">
|
||
<table>
|
||
<tr>
|
||
<td align=center>
|
||
<FONT size=2>
|
||
Set your browser to the width of the line below for best viewing.
|
||
</FONT>
|
||
<!-- The Copyright -->
|
||
<BR><FONT size=1>
|
||
© 1997 by
|
||
<A HREF="mailto:mjhammel@csn.net">mjh</A>
|
||
</FONT></td>
|
||
</tr>
|
||
</table></td>
|
||
|
||
<tr>
|
||
<!-- Provide a measure for readers to adjust their browsers to.
|
||
-- These pages should fit on a 640 pixel wide window, so laptop
|
||
-- users should be able to read them too.
|
||
-->
|
||
<td width=100% cellspacing=0 cellpadding=0
|
||
valign=bottom align=center colspan=2>
|
||
<HR>
|
||
</td>
|
||
</table>
|
||
|
||
<TABLE width=560>
|
||
<tr>
|
||
<!-- td width=177 align=left valign=top>
|
||
-->
|
||
<td width=17% align=left valign=top>
|
||
<IMG SRC=../gx/hammel/buttons3.gif ALT="Button Bar"
|
||
ALIGN="left" WIDTH="177" HEIGHT="185"
|
||
USEMAP="#nav-main" border="0"></td>
|
||
|
||
|
||
<!-- td width=463 align=left valign=top>
|
||
-->
|
||
<td width=83% align=left valign=top>
|
||
<!-- What is a Graphics Muse? -->
|
||
<FONT size=4><B>muse:</B></FONT>
|
||
<OL>
|
||
<LI><I>v;</I> to become absorbed in thought
|
||
<LI><I>n;</I> [ fr. Any of the nine sister goddesses of learning and the
|
||
arts in Greek Mythology ]: a source of inspiration
|
||
</OL>
|
||
<IMG SRC=../gx/hammel/w.gif ALT="W" ALIGN="left"
|
||
HSPACE="0" VSPACE="0" WIDTH="36" HEIGHT="28">elcome
|
||
to the Graphics Muse! Why a "muse"?
|
||
Well, except for the sisters aspect, the above definitions are
|
||
pretty much the way I'd describe my own interest in computer graphics:
|
||
it keeps me deep in thought and it is a daily source of inspiration.
|
||
|
||
<!-- Text based navigation -->
|
||
<P>
|
||
<CENTER>
|
||
<FONT size=2>
|
||
[<A HREF="#mews">Graphics Mews</A>]
|
||
[<A HREF="#musings">Musings</A>]
|
||
[<A HREF="#resources">Resources</A>]
|
||
</FONT>
|
||
<CENTER></td>
|
||
|
||
</table>
|
||
|
||
<TABLE width=560>
|
||
<tr>
|
||
<td>
|
||
<IMG SRC=../gx/hammel/cleardot.gif ALT="indent" ALIGN="left"
|
||
HSPACE="8" WIDTH="1" HEIGHT="1">
|
||
<IMG SRC=../gx/hammel/t.gif ALT="T" ALIGN="left"
|
||
HSPACE="0" VSPACE="0" WIDTH="26" HEIGHT="28">his
|
||
column is dedicated to the use, creation, distribution, and discussion of
|
||
computer graphics tools for Linux systems.
|
||
|
||
<BR clear=both>
|
||
|
||
This month has been even more hectic than most. I finished the first
|
||
pass of an article on the 1.0 release of the GIMP and submitted it to the
|
||
LInux Journal editors. That will be out in the November Graphics issue.
|
||
I'll probably have to do some updates after I get back the marked up
|
||
version. I'm also working on the cover art for that issue, using the
|
||
developers release (currently at 0.99.10) of the GIMP. I've also had
|
||
quite of bit of regular work (that kind that pays the rent) since I'm
|
||
getting very close to my code freeze date. This weekend I'll be writing up
|
||
documentation for it so I can give an introductory class to testers, other
|
||
developers, Tech Pubs, Tech Support, and Marketing on Monday. I think I
|
||
picked a bad time to start lifting weights again.
|
||
|
||
<BR clear=both>
|
||
|
||
In this months column I'll be covering ...
|
||
<UL>
|
||
<LI> More experiences with printing using the Epson Stylus Colro 500
|
||
<LI> A brief discussion about DPI, LPI, and Halftoning
|
||
<LI> An even briefer discussion about 3:2 pulldown - transerring film
|
||
to video.
|
||
</UL>
|
||
|
||
Next month may not be much better. I don't know exactly what I'll be
|
||
writing about, although I do have a wide list from which to choose. Mostly
|
||
I'm looking forward to my trip to SIGGRAPH in August. Any one else going?
|
||
I should have plenty to talk about after that. I plan on going to at
|
||
least two of the OpenGL courses being taught at the Conference. I haven't
|
||
completely decided which courses I'm going to take, however.
|
||
|
||
<BR clear=both>
|
||
|
||
I'm also looking forward to a trip to DC in August as well. A real
|
||
vacation. No computers. Just museums and monuments. I may need to take
|
||
some sort of anti-depressant. Nah. I need the break.
|
||
|
||
<P>
|
||
|
||
</td>
|
||
</table>
|
||
|
||
|
||
<!-- Netscape has a bug when applying a Name tag to an image, so we have to
|
||
stick the image in a table so the image will be the top item on the
|
||
page.
|
||
-->
|
||
<A NAME="mews">
|
||
<table width=560>
|
||
<tr>
|
||
<td align=left>
|
||
<IMG SRC=../gx/hammel/mews.gif ALT="Graphics Mews" ALIGN="left"
|
||
HSPACE="0" VSPACE="0" WIDTH="242" HEIGHT="53">
|
||
</td>
|
||
</table>
|
||
</A>
|
||
|
||
<BR clear=both>
|
||
<TABLE width=560 border=0>
|
||
<tr>
|
||
<td colspan=4>
|
||
<BR clear=both>
|
||
|
||
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.
|
||
<P>
|
||
|
||
<tr>
|
||
<td colspan=4 bgcolor="#000000" cellpadding=0 cellspacing=0 valign=top>
|
||
<IMG SRC=../gx/hammel/cleardot.gif ALT="indent" ALIGN="left"
|
||
HSPACE="0" WIDTH="0" HEIGHT="0"></td>
|
||
|
||
<tr>
|
||
<td width="50%">
|
||
<H4> Announcing bttv version 0.4.0 </H4>
|
||
|
||
BTTV is a device driver for Booktree Bt848 based frame grabber cards
|
||
like the
|
||
Hauppauge Win/TV pci, Miro PCTV, STB TV PCI, Diamond DTV2000, and
|
||
AverMedia. Major new features in version 0.4.0 are rudimentary
|
||
support for grabbing into user memory and for decoding VBI data
|
||
like teletext, VPS, etc. in software.
|
||
<P>
|
||
The Motif application xtvscreen now has better support for selecting
|
||
channels and also works in the dual visual modes (255+24 mil. colors)
|
||
of Xi Graphics AcceleratedX 3.1 X server.
|
||
<P>
|
||
Author:
|
||
<BR>
|
||
|
||
Ralph Metzler <A HREF="mailto:rjkm@thp.uni-koeln.de">
|
||
rjkm@thp.uni-koeln.de </A>
|
||
<BR>
|
||
|
||
Marcus Metzler <A HREF="mailto:mocm@thp.uni-koeln.de">
|
||
mocm@thp.uni-koeln.de </A>
|
||
<BR>
|
||
Web Site:
|
||
<BR>
|
||
|
||
<A HREF="http://www.thp.uni-koeln.de/~rjkm/linux/bttv.html">
|
||
http://www.thp.uni-koeln.de/~rjkm/linux/bttv.html</A>
|
||
|
||
</td>
|
||
|
||
|
||
<td bgcolor="#000000" cellpadding=0 cellspacing=0 valign=top>
|
||
<IMG SRC=../gx/hammel/cleardot.gif ALT="indent" ALIGN="left"
|
||
HSPACE="0" WIDTH="0" HEIGHT="0"></td>
|
||
<td bgcolor="#ffffff" cellpadding=0 cellspacing=0 valign=top>
|
||
<IMG SRC=../gx/hammel/cleardot.gif ALT="indent" ALIGN="left"
|
||
WIDTH="0" HEIGHT="0"></td>
|
||
|
||
<td width="49%" valign=top>
|
||
<H4>
|
||
OpenGL4Java 0.3
|
||
</H4>
|
||
|
||
This is an initial developer's release of an (unoffical) port of
|
||
OpenGL(tm) for java. Leo Chan's original package has been
|
||
ported to both WindowsNT/95 and to Linux.
|
||
Several features have been added, the main
|
||
one being OpenGl now draws into a Java Frame.
|
||
What advantage does this provide? Well, you can now add menus
|
||
to the OpenGL widget as well as receiving all normal events such
|
||
as MouseMotion and Window events. You
|
||
could very simply have a user rotate a OpenGL object by moving the mouse
|
||
around in the Frame ( the demo for the next release will have this
|
||
feature ).
|
||
<P>
|
||
You can grab it from the developers web page at
|
||
<A HREF="http://www.magma.ca/~aking/java">
|
||
http://www.magma.ca/~aking/java</A>.
|
||
|
||
</td>
|
||
|
||
<tr>
|
||
<td colspan=4 bgcolor="#000000" cellpadding=0 cellspacing=0 valign=top>
|
||
<IMG SRC=../gx/hammel/cleardot.gif ALT="indent" ALIGN="left"
|
||
HSPACE="0" WIDTH="0" HEIGHT="0"></td>
|
||
|
||
<tr>
|
||
<td colspan=4>
|
||
<H4>
|
||
WebMagick Image Web Generator - Version 1.29
|
||
</H4>
|
||
WebMagick is a package which makes putting images on the Web as
|
||
easy as magick. You want WebMagick if you:
|
||
|
||
<UL>
|
||
<LI>Have access to a Unix system
|
||
<LI>Have a collection of images you want to put on the Web
|
||
<LI>Are tired of editing page after page of HTML by hand
|
||
<LI>Want to generate sophisticated pages to showcase your images
|
||
<LI>Want to be in control
|
||
<LI>Are not afraid of installing sophisticated software packages
|
||
<LI>Want to use well-documented software (33 page manual!)
|
||
<LI>Support free software
|
||
</UL>
|
||
|
||
After nine months of development, WebMagick is chock-full of
|
||
features. WebMagick recurses through directory trees, building
|
||
HTML pages, imagemap files, and client-side/server-side maps to
|
||
allow the user to navigate through collections of thumbnail
|
||
images (somewhat similar to xv's Visual Schnauzer) and select
|
||
the image to view with a mouse click. In fact, WebMagick
|
||
supports xv's thumbnail cache format so it can be used in
|
||
conjunction with xv.
|
||
<P>
|
||
|
||
The primary focus of WebMagick is performance. Image thumbnails
|
||
are reduced and composed into a single image to reduce client
|
||
accesses, reducing server load and improving client performance.
|
||
Everything is pre-computed. During operation WebMagick employs
|
||
innovative caching and work-avoidance techniques to make
|
||
successive executions much faster. WebMagick has been
|
||
successfully executed on directory trees containing many tens of
|
||
directories and thousands of images ranging from tiny icons to
|
||
large JPEGs or PDF files.
|
||
|
||
<P>
|
||
Here is a small sampling of the image formats that WebMagick
|
||
supports:
|
||
|
||
<UL>
|
||
<LI>Windows Bitmap image (BMP)
|
||
<LI>Postscript (PS)
|
||
<LI>Encapsulated Postscript (EPS)
|
||
<LI>Acrobat (PDF)
|
||
<LI>JPEG
|
||
<LI>GIF (including animations)
|
||
<LI>PNG
|
||
<LI>MPEG
|
||
<LI>TIFF
|
||
<LI>Photo CD
|
||
</UL>
|
||
|
||
WebMagick is written in PERL and requires the ImageMagick (3.8.4
|
||
or later) and PerlMagick (1.0.3 or later) packages as well as a
|
||
recent version of PERL 5 (5.002 or later). Installation
|
||
instructions are provided in the WebMagick distribution.
|
||
|
||
<P>
|
||
Obtain WebMagick from the WebMagick page at
|
||
<A HREF="http://www.cyberramp.net/~bfriesen/webmagick/dist/">
|
||
http://www.cyberramp.net/~bfriesen/webmagick/dist/</A>.
|
||
WebMagick
|
||
can also be obtained from the ImageMagick distribution site at
|
||
<A HREF="ftp://ftp.wizards.dupont.com/pub/ImageMagick/perl">
|
||
ftp://ftp.wizards.dupont.com/pub/ImageMagick/perl</A>.
|
||
|
||
</td>
|
||
|
||
<tr>
|
||
<td colspan=4 bgcolor="#000000" cellpadding=0 cellspacing=0 valign=top>
|
||
<IMG SRC=../gx/hammel/cleardot.gif ALT="indent" ALIGN="left"
|
||
HSPACE="0" WIDTH="0" HEIGHT="0"></td>
|
||
|
||
<tr>
|
||
<td width="50%">
|
||
<H4>
|
||
EasternGraphics announces public release of `opengl' widget
|
||
</H4>
|
||
|
||
EasternGraphics announces the public release of `opengl' widget
|
||
which allows windows with three-dimensional graphics output,
|
||
produced by OpenGL to be integrated into Tk applications. The
|
||
widget is available for Unix and MS-Windows platforms.
|
||
<P>
|
||
You can download the package from
|
||
<A HREF="ftp://ftp.EasternGraphics.com/pub/egr/tkopengl/tkopengl1.0.tar.gz">
|
||
ftp://ftp.EasternGraphics.com/
|
||
<BR>
|
||
|
||
pub/egr/tkopengl/tkopengl1.0.tar.gz</A>
|
||
<P>
|
||
Email: <A HREF="mailto:wicht@EasternGraphics.com">
|
||
wicht@EasternGraphics.com</A>
|
||
<BR>
|
||
WWW: <A HREF="http://www.EasternGraphics.com/">
|
||
http://www.EasternGraphics.com/</A>
|
||
</td>
|
||
|
||
<td bgcolor="#000000" cellpadding=0 cellspacing=0 valign=top>
|
||
<IMG SRC=../gx/hammel/cleardot.gif ALT="indent" ALIGN="left"
|
||
HSPACE="0" WIDTH="0" HEIGHT="0"></td>
|
||
<td bgcolor="#ffffff" cellpadding=0 cellspacing=0 valign=top>
|
||
<IMG SRC=../gx/hammel/cleardot.gif ALT="indent" ALIGN="left"
|
||
WIDTH="0" HEIGHT="0"></td>
|
||
|
||
<td width="49%">
|
||
<H4>
|
||
ELECTROGIG's GIG 3DGO 3.2 for Linux for $99.
|
||
</H4>
|
||
|
||
There is a free demo package for Linux. Its roughly 36M tarred
|
||
and compressed. A 9M demo's file is also available for download.
|
||
I had placed a notice about this package in the May's Muse column,
|
||
but I guess ELECTROGIG had missed that, so they sent me another
|
||
announcement (I got the first one from comp.os.linux.announce).
|
||
Anyway, one thing I didn't mention in May was the price for the
|
||
full Linux product: $99. This is the complete product, although
|
||
I'm not sure if this includes any documentation or not (it doesn't
|
||
appear to). The Linux version does not come with any product
|
||
support, however. You need a 2.0 Linux kernel to run GIG 3DGO.
|
||
|
||
<P>
|
||
I also gave a URL that takes you to an FTP site for downloading the
|
||
demo. A slightly more informative page for downloading the demo and
|
||
its associated files is at
|
||
<A HREF="http://www.gig.nl/support/indexftp.html">
|
||
http://www.gig.nl/support/indexftp.html</A>
|
||
|
||
</td>
|
||
|
||
<tr>
|
||
<td colspan=4 bgcolor="#000000" cellpadding=0 cellspacing=0 valign=top>
|
||
<IMG SRC=../gx/hammel/cleardot.gif ALT="indent" ALIGN="left"
|
||
HSPACE="0" WIDTH="0" HEIGHT="0"></td>
|
||
|
||
<tr>
|
||
<td colspan=4>
|
||
<H4>
|
||
Type1Inst updated
|
||
</H4>
|
||
|
||
<A HREF="mailto:J.Macnicol@student.anu.edu.au">James Macnicol</A>
|
||
uploaded version 0.5b of his type1inst font installation utility
|
||
to sunsite.unc.edu. If its not already there, it will end up in
|
||
/pub/Linux/X11/xutils.
|
||
<P>
|
||
Type1inst is a small perl script which generates the
|
||
"fonts.scale" file required by an X11 server to use any
|
||
Type 1 PostScript fonts which exist in a particular
|
||
directory. It gathers this informatiom from the font files
|
||
themselves, a task which previously was done by hand. The
|
||
script is also capable of generating the similar "Fontmap"
|
||
file used by ghostscript. It can also generate sample sheets
|
||
for the fonts.
|
||
<P>
|
||
FTP:
|
||
<A HREF="ftp://sunsite.unc.edu/pub/Linux/X11/xutils/type1inst-0.5b.tar.gz">
|
||
ftp://sunsite.unc.edu/pub/Linux/X11/xutils/type1inst-0.5b.tar.gz</A>
|
||
<P>
|
||
Editors note: I highly recommend this little utility if you
|
||
are intent on doing any graphics arts style work, such as with
|
||
the GIMP.
|
||
|
||
</td>
|
||
|
||
<tr>
|
||
<td colspan=4 bgcolor="#000000" cellpadding=0 cellspacing=0 valign=top>
|
||
<IMG SRC=../gx/hammel/cleardot.gif ALT="indent" ALIGN="left"
|
||
HSPACE="0" WIDTH="0" HEIGHT="0"></td>
|
||
|
||
<tr>
|
||
<td colspan=4>
|
||
<H4>
|
||
libgr-2.0.13 has been updated to png-0.96
|
||
</H4>
|
||
|
||
It seems the interface to
|
||
png-0.96 is not binary compatible with png-0.89, so the major
|
||
version of the shared library was bumped to libpng.so.2.0.96
|
||
(last version was libpng.so.1.0.89).
|
||
<P>
|
||
WHAT IS LIBGR?
|
||
<BR>
|
||
Libgr is a collection of graphics libraries,
|
||
based on libgr-1.3, by Rob Hooft (hooft@EMBL-Heidelberg.DE),
|
||
that includes:
|
||
<UL>
|
||
<LI>fbm
|
||
<LI>jpeg
|
||
<LI>pbm
|
||
<LI>pgm
|
||
<LI>png
|
||
<LI>pnm
|
||
<LI>ppm
|
||
<LI>rle
|
||
<LI>tiff
|
||
<LI>zlib, for compression
|
||
</UL>
|
||
These are configured to build ELF static and shared libraries.
|
||
This collection (libgr2) is being maintained by
|
||
<A HREF="mailto:neal@ctd.comsat.com">
|
||
Neal Becker</A> <neal@ctd.comsat.com>
|
||
|
||
<P>
|
||
FTP:
|
||
<A HREF="ftp://ftp.ctd.comsat.com:/pub/linux/ELF">
|
||
ftp.ctd.comsat.com:/pub/linux/ELF</A>
|
||
|
||
</td>
|
||
|
||
|
||
<tr>
|
||
<td colspan=4 bgcolor="#ffffff" cellpadding=1 cellspacing=0 valign=top>
|
||
<IMG SRC=../gx/hammel/cleardot.gif ALT="indent" ALIGN="left"
|
||
VSPACE="5" HSPACE="10" WIDTH="1" HEIGHT="1"></td>
|
||
<tr>
|
||
<td colspan=4 bgcolor="#000000" cellpadding=1 cellspacing=0 valign=top>
|
||
<IMG SRC=../gx/hammel/cleardot.gif ALT="indent" ALIGN="left"
|
||
HSPACE="0" WIDTH="0" HEIGHT="0"></td>
|
||
<tr>
|
||
<td colspan=4 bgcolor="#ffffff" cellpadding=1 cellspacing=0 valign=top>
|
||
<IMG SRC=../gx/hammel/cleardot.gif ALT="indent" ALIGN="left"
|
||
VSPACE="5" HSPACE="10" WIDTH="1" HEIGHT="1"></td>
|
||
|
||
<tr>
|
||
<td colspan=4>
|
||
<!--
|
||
-- Did You Know Section
|
||
-->
|
||
<H4>Did You Know?</H4>
|
||
...there is a site devoted to settign up Wacom tablets under XFree86?
|
||
<A HREF="http://www.dorsai.org/~stasic/wacomx.htm">
|
||
http://www.dorsai.org/~stasic/wacomx.htm</A>
|
||
The pages maintainer,
|
||
<A HREF="mailto:stasic@dorsai.org">Edward</A>, says:
|
||
<BLOCKQUOTE>
|
||
So far, nobody has told me that he or she couldn't follow the
|
||
instructions.
|
||
<P>
|
||
Fred Lepied is the man who actually created the support for the
|
||
Wacom tablets under XFree86. He gave me instructions on setting
|
||
my ArtPad II up and I repeated this, periodically, on Usenet.
|
||
When the requests for help there turned into a steady stream,
|
||
I decided to put up a web page (mainly to show that I can make
|
||
one but not use it for a lame ego trip).
|
||
</BLOCKQUOTE>
|
||
<A HREF="mailto:adam@uunet.pipex.com">Adam D. Moss</A>
|
||
<adam@uunet.pipex.com> has said he's also gotten this to work
|
||
and offered to help others who might need assistance getting
|
||
things set up.
|
||
|
||
|
||
<P>
|
||
...there is rumored work being done on 3Dfx support for Linux?
|
||
<A HREF="mailto:tige@umr.edu">Tige</A> writes:
|
||
<BLOCKQUOTE>
|
||
I was looking around for info about the 3Dfx based cards and came across
|
||
a guy's page that said he is working on a full OpenGl driver for 3Dfx
|
||
boards for NT. What does this have to do with Linux? Well, he says
|
||
that after the NT driver is done, he is going to start work on 3Dfx
|
||
drivers for Linux and an OpenGl driver for XFree86/3Dfx.
|
||
<P>
|
||
The guy's name is Zanshin and the address of his site is:
|
||
<A HREF="http://www.planetquake.com/gldojo/">
|
||
http://www.planetquake.com/gldojo/</A>
|
||
<P>
|
||
Most of this stuff is in the News Archives section under 4/18/97
|
||
Oh yeah, he also mentions hacking SGIQuake to work with Linux, so we may
|
||
get to see a hardware accelerated version of Quake for Linux.
|
||
</BLOCKQUOTE>
|
||
|
||
<P>
|
||
...the MindsEye Developers mailing list has moved to
|
||
<A HREF="mailto:mindseye@luna.nl">
|
||
mindseye@luna.nl</A>.
|
||
unsubscribing can be done by sending a body of
|
||
<PRE>
|
||
unsubscribe
|
||
</PRE>
|
||
to
|
||
<A HREF="mailto:mindseye-request@luna.nl">
|
||
mindseye-request@luna.nl</A>
|
||
and a body of
|
||
<PRE>
|
||
unsubscribe mindseye@luna.nl
|
||
</PRE>
|
||
to
|
||
<A HREF="mailto:majordomo@luna.nl">
|
||
majordomo@luna.nl</A>
|
||
Other majordomo commands should be send to majordomo@luna.nl
|
||
a body of 'help' gives an overview.
|
||
Users which are subscribed to the old mindseye@ronix.ptf.hro.nl adress
|
||
do not need to unsubscribe. The list will be removed shortly afterwards.
|
||
They will get this message twice: one from mindseye@luna.nl and one from
|
||
mindseye@ronix.ptf.hro.nl.
|
||
A HTML interface by using hypermail is under construction.
|
||
|
||
|
||
<!--
|
||
-- Q and A Section
|
||
-->
|
||
<P><FONT size=3><B>Q and A</B></FONT>
|
||
<P>
|
||
<I>Q:
|
||
Forgive what might be a dumb question, but what exactly is meant by
|
||
"overlays"?
|
||
</I>
|
||
<P>A:
|
||
Imagine a 24bpp image plane, that can be addressed by 24bpp visuals.
|
||
Imagine an 8bpp plane in front of the 24bpp image plane, addressed by
|
||
8bpp visuals.
|
||
<P>
|
||
One or more of the 8bpp visuals, preferably the default visual, should
|
||
offer a 'transparent pixel' index. When the 8bpp image plane is painted
|
||
with the transparent pixel, you can see through to the 24bpp plane.
|
||
You can call an arrangement like this, a 24bpp underlay, or refer to the
|
||
8bpp visuals as an overlay.
|
||
<P>
|
||
Strictly, we call this "multiple concurrent visuals with different color
|
||
depths", but that's rather a mouthful. Hence, shorthand we refer to it
|
||
as "24+8" or "overlays", with "24+8" as the preferred description.
|
||
<P>
|
||
<FONT size=2>
|
||
From Jeremy Chatfield @ <A HREF="http://www.xi.com/">Xi Graphics, Inc.</A>
|
||
|
||
</td>
|
||
|
||
<tr>
|
||
<td colspan=4 bgcolor="#ffffff" cellpadding=1 cellspacing=0 valign=top>
|
||
<IMG SRC=../gx/hammel/cleardot.gif ALT="indent" ALIGN="left"
|
||
VSPACE="5" HSPACE="10" WIDTH="1" HEIGHT="1"></td>
|
||
<tr>
|
||
<td colspan=4 bgcolor="#000000" cellpadding=1 cellspacing=0 valign=top>
|
||
<IMG SRC=../gx/hammel/cleardot.gif ALT="indent" ALIGN="left"
|
||
HSPACE="0" WIDTH="0" HEIGHT="0"></td>
|
||
<tr>
|
||
<td colspan=4 bgcolor="#ffffff" cellpadding=1 cellspacing=0 valign=top>
|
||
<IMG SRC=../gx/hammel/cleardot.gif ALT="indent" ALIGN="left"
|
||
VSPACE="5" HSPACE="10" WIDTH="1" HEIGHT="1"></td>
|
||
</table>
|
||
|
||
|
||
|
||
<P>
|
||
<A NAME="musings">
|
||
<table>
|
||
<tr>
|
||
<td>
|
||
<IMG SRC=../gx/hammel/musings.gif ALT="Musings" ALIGN="left"
|
||
HSPACE="0" VSPACE="0" WIDTH="247" HEIGHT="52">
|
||
</td>
|
||
</table>
|
||
</A>
|
||
<BR clear=both>
|
||
|
||
<TABLE width=560>
|
||
<tr>
|
||
<td valign=top>
|
||
<H4>
|
||
Microstation update
|
||
</H4>
|
||
|
||
After last months 3D Modeller update I received email
|
||
from Mark Hamstra at Bentley Systems, Inc. Mark is the man
|
||
responsible for the ports of Bentley's MicroStation and Masterpiece
|
||
products that are available for Linux. I've included his response
|
||
below. The stuff in italics is what I had orginally written:
|
||
|
||
<BLOCKQUOTE>
|
||
Thanks for the mention in Gazette #18 --it's kinda fun watching where
|
||
MicroStation/Linux info pops up. Being the guy that actually did the
|
||
ports of MicroStation and Masterpiece, I'll lay claim to knowing the most
|
||
about these products. Unfortunately, you've got a few errors in Gazette
|
||
#18; allow me to correct them:
|
||
|
||
<P>
|
||
<I>
|
||
Includes programming support with a BASIC language and linkages
|
||
to various commericial databases such as Oracle and Informix.
|
||
</I>
|
||
|
||
<P>
|
||
Programming support in the current product includes the MicroStation
|
||
Development Language (C syntax code that compiles to platform-independent
|
||
byte-code), BASIC, and support for linking MDL with both MDL shared
|
||
libraries and native code shared libraries (i.e., Linux .so ELF
|
||
libraries). For a look at the future direction of Bentley and
|
||
MicroStation, take a look on our web site at the recent announcement by
|
||
Keith Bentley at the AEC Systems tradeshow of MicroStation/J and our
|
||
licensing agreement with Javasoft.
|
||
|
||
<P>
|
||
Because of the lack of commercial database support for Linux, there are
|
||
no database linkage facilities in the current Linux port of MicroStation.
|
||
|
||
<P>
|
||
<I>
|
||
This looks like the place to go for a commercial modeller, although
|
||
I'm not certain if they'll sell their educational products to the
|
||
general public or not.
|
||
</I>
|
||
|
||
<P>
|
||
Nope, academic-only at this time; although we're collecting requests for
|
||
commercial licensing (at our normal commercial prices) at
|
||
<A HREF="http://www.bentley.com/products/change-request.html">
|
||
http://www.bentley.com/products/change-request.html</A>.
|
||
The <B>only</B> thing preventing MicroStation from being available
|
||
commercially for Linux is a lack of adequate expressed interest.
|
||
|
||
<P>
|
||
<I>
|
||
Note that the Linux ports have not been released (to my knowledge - I'm
|
||
going by whats on the web pages).
|
||
</I>
|
||
|
||
<P>
|
||
The first two of our new Engineering Academic Suites that contain the
|
||
Linux ports, the Building Engineering and GeoEngineering Suites, have been
|
||
available in North America since the middle of February. European and
|
||
worldwide distribution should be underway now too, although it took a
|
||
little longer. Incidentally, the web pages you list are for our Europe,
|
||
Middle East, and Africa (ema) division; you probably actually want
|
||
<A HREF="http://www.bentley.com/academic">
|
||
http://www.bentley.com/academic</A>.
|
||
|
||
<P>
|
||
<I>
|
||
[output formats] Unknown
|
||
</I>
|
||
|
||
<P>
|
||
We output a wide range of formats (and import a wider range than you give
|
||
us credit for). I always forget just which ones are actually in the
|
||
product and which are only in my current builds from the most recent
|
||
source, so I'll just refer you to
|
||
<A HREF="http://www.bentley.com/products/microstation95">
|
||
http://www.bentley.com/products/microstation95</A> and
|
||
<A HREF="http://www.bentley.com/products/masterpiece">
|
||
http://www.bentley.com/products/masterpiece</A>, and note that my copy of
|
||
MicroStation/Linux currently lists DGN, DWG, DXF, IGES, CGM, SVF, GRD,
|
||
RIB, VRML, Postscript, HPGL, PCL, TIFF, TGA, BMP, and a couple other
|
||
raster and animation formats as output options -- and I know I haven't
|
||
currently got some of our soon-to-be-released translators compiled. Like
|
||
I said, probably not all of these are in the current Linux port, but it's
|
||
a simple matter to add whatever's not there to future versions of the
|
||
Linux products, provided there's enough demand to keep the project
|
||
going.
|
||
|
||
</BLOCKQUOTE>
|
||
I wasn't sure what a few of these formats were, so I wrote Mark back
|
||
to ask about them. He informed me on the following (which were the ones I
|
||
had asked specifically about):
|
||
|
||
<UL>
|
||
<LI> DGN is MicroStation-native design file format and
|
||
has its ancestry in the Intergraph IGDS file format.
|
||
<LI> SVF is the Simple Vector Format (see
|
||
<A HREF="http://www.softsource.com">
|
||
http://www.softsource.com</A>),
|
||
which works pretty good for web browser plug-ins.
|
||
<LI> GRD is used by our MicroStation Field product.
|
||
<LI> CGM is the Computer Graphics Metafile format, a
|
||
vendor-independent standard supported in various software
|
||
packages, browser plug-ins, printers/plotters, etc.
|
||
</UL>
|
||
|
||
I want to thank Mark for offering updated information so quickly. My
|
||
information is only as good as what I can find or am fed, and it helps
|
||
when vendors, developers or end users provide me with useful info like
|
||
this. Many thanks Mark.
|
||
|
||
<P>
|
||
If you've used this product on MS platforms feel free to drop me a
|
||
line and let me know what you thought of it. I'm always out to support
|
||
commercial ports of graphics-related products to Linux.
|
||
</td>
|
||
|
||
<tr>
|
||
<td bgcolor="#000000" cellpadding=1 cellspacing=0 valign=top>
|
||
<IMG SRC=../gx/hammel/cleardot.gif ALT="indent" ALIGN="left"
|
||
WIDTH="1" HEIGHT="1"></td>
|
||
|
||
</table>
|
||
|
||
<TABLE width=560>
|
||
<tr>
|
||
<td valign=top width="44%">
|
||
<H4><I>
|
||
Printing with an Epson Stylus Color 500
|
||
</I> </H4>
|
||
|
||
I bought an Epson Stylus Color 500 printer back in December of last year
|
||
so I could print in color. I had done some
|
||
<A HREF="../issue14/gm.html">
|
||
research into what printers would be best</A>,
|
||
based in part on reviews in online PC magazines
|
||
and also on support available in the Ghostscript 4.03 package. The
|
||
Epson Stylus Color 500 was rated very high by the reviews and I found a
|
||
<A HREF="http://www.pe.net/~williams">
|
||
web page</A>
|
||
which provided information on how to configure Ghostscript
|
||
for use with the printer. I bought the printer, got Ghostscript
|
||
working in a very marginal way (that is to say, it printed straight
|
||
text in black and white). But thats as far as it went. I had gotten
|
||
some minor printing in color done, but nothing very impressive and
|
||
most of it was downright bad.
|
||
|
||
<BR>
|
||
|
||
Earlier this month I was given the opportunity to work on the cover
|
||
art for an issue of the Linux Journal. A few trial runs were given
|
||
the preliminary ok but they were too small - the size of the image
|
||
needed to be more than twice as big as the original I had created.
|
||
Also, because the conversion of an image from the monitors display to
|
||
printed paper is not a straightforward one (see the discussion on
|
||
LPI/DPI elsewhere in this months column) it became apparent I needed
|
||
to try printing my artwork to sample how it would really look on paper.
|
||
I had to get my printer configuration working properly.
|
||
|
||
<BR>
|
||
|
||
Well, it turned out to be easier than I thought. The hardest part
|
||
is to get Ghostscript compiled properly. The first thing to do is
|
||
to be sure to read the text files that accompany the source code.
|
||
There are 3 files to read:
|
||
<UL>
|
||
<LI>make.txt - general compiling and installation instructions
|
||
<LI>drivers.txt - configuration information for support of the
|
||
various devices you'll need for your system.
|
||
<LI>unix-lpr.txt - help on setting up a print spooler for Unix
|
||
systems.
|
||
</UL>
|
||
The first two are the ones that made the most difference to me. I
|
||
didn't really use the latter, but my solution isn't very elegant.
|
||
However, what it lacks in grace it makes up for in simplicity.
|
||
|
||
<BR>
|
||
|
||
Building the drivers was fairly simple for me - I took most of the
|
||
defaults, except I added support for the Epson Stylus Color printers.
|
||
There is a section in make.txt devoted specifically to compiling on
|
||
Unix systems (search for <I>How to build Ghostscript from source
|
||
(Unix version)</I> in that file). In most cases you'll just be able
|
||
to type "make" after linking the correct compiler specific makefile
|
||
to <I>makefile</I>. However, I needed to configure in the Epson
|
||
printers first.
|
||
|
||
<BR>
|
||
|
||
What I did was to edit the unix-gcc.mak file
|
||
to change one line. The line that begins
|
||
<BR><B>
|
||
|
||
DEVICE_DEVS=
|
||
</B><BR>
|
||
was modified to add
|
||
<BR><B>
|
||
|
||
stcolor.dev
|
||
</B><BR>
|
||
right after the equal sign. I also didn't need support for
|
||
any of the HP DeskJet (DEVICE_DEVS3 and DEVICE_DEVS4) or
|
||
Bubble Jet (DEVICE_DEVS6) devices so I commented out those lines.
|
||
Now, once this file had been linked to <I>makefile</I> I could just
|
||
run
|
||
<BR><B>
|
||
|
||
make
|
||
<BR>
|
||
|
||
make install
|
||
</B><BR>
|
||
At this point the Ghostsript package was ready for use. Note that
|
||
many of the current distributions already include Ghostscript, but may not
|
||
have the 4.03 release. Run
|
||
<BR><B>
|
||
|
||
gs -v
|
||
</B><BR>
|
||
to find out if you have Ghostscript 4.03. You'll need it to work
|
||
with the Epson Stylus Color 500.
|
||
|
||
<BR>
|
||
|
||
Now I needed to set up my print spooler. This turned out to be
|
||
rather easy. First, you need to know that the stcolor driver
|
||
(which is the name of the driver Ghostscript uses to talk to
|
||
Epson Stylus printers) has a pre-built Postscript file that is
|
||
used to prepare the printer for printing. This file, called
|
||
stcolor.ps, is included with the 4.03 distribution. The file
|
||
contains special commands that are interpreted by the printer,
|
||
however it does not actually cause anything to be printed.
|
||
|
||
<P clear=both>
|
||
<CENTER>
|
||
<A HREF="#next-column">-Top of next column-</A>
|
||
</CENTER>
|
||
</td>
|
||
|
||
<td bgcolor="#ffffff" cellpadding=1 cellspacing=0 valign=top>
|
||
<IMG SRC=../gx/hammel/cleardot.gif ALT="indent" ALIGN="left"
|
||
WIDTH="0" HEIGHT="0"></td>
|
||
<td bgcolor="#000000" cellpadding=1 cellspacing=0 valign=top>
|
||
<IMG SRC=../gx/hammel/cleardot.gif ALT="indent" ALIGN="left"
|
||
HSPACE="0" WIDTH="0" HEIGHT="0"></td>
|
||
<td bgcolor="#ffffff" cellpadding=1 cellspacing=0 valign=top>
|
||
<IMG SRC=../gx/hammel/cleardot.gif ALT="indent" ALIGN="left"
|
||
WIDTH="0" HEIGHT="0"></td>
|
||
|
||
|
||
<td valign=top width="53%" cellpadding=0 cellspacing=0>
|
||
<table>
|
||
<tr>
|
||
<td valign=top cellpadding=0 cellspacing=0>
|
||
<UL>
|
||
<LH>
|
||
<A NAME="next-column">
|
||
<B>More Musings...</B>
|
||
</A>
|
||
</LH>
|
||
<LI>
|
||
<A HREF="more-musings.html#1">
|
||
DPI, LPI, Halftoning and other strange things
|
||
</A> - A short discussion on printing computer
|
||
images.
|
||
<LI>
|
||
<A HREF="more-musings.html#2">
|
||
How many frames makes a movie?
|
||
</A> - a discussion with Larry Gritz about
|
||
how video animations are transferred from film.
|
||
|
||
</UL>
|
||
<table width=100%>
|
||
<tr>
|
||
<td width=100% bgcolor="#000000" cellpadding=1
|
||
cellspacing=0 valign=top>
|
||
<IMG SRC=../gx/hammel/cleardot.gif ALT="indent" ALIGN="left"
|
||
HSPACE="0" WIDTH="0" HEIGHT="0"></td>
|
||
</table>
|
||
|
||
<IMG SRC=../gx/hammel/cleardot.gif ALT="indent" ALIGN="left"
|
||
VSPACE="5" WIDTH="1" HEIGHT="1">
|
||
<BR clear=both>
|
||
When you
|
||
want to print something you need to first print this file followed
|
||
by the file or files you want to print. Don't worry about how to
|
||
do this just yet - I have a set of scripts to make this easier.
|
||
|
||
<BR clear=both>
|
||
|
||
There were a number of options I could use with Ghostscript for
|
||
my printer, but I found I only needed to work with one: display
|
||
resolution or Dots Per Inch (DPI). In order to handle the two
|
||
resolutions I simply created two scripts which could be used as
|
||
input filters for lpr (the print spooler). The
|
||
<A HREF="./stcolor.txt">
|
||
scripts</A>
|
||
are almost
|
||
exactly the same, except one is called <I>stcolor</I> and one
|
||
is called <I>stcolor-high</I>, the latter being for the higher
|
||
resolution. Both of these were installed under
|
||
/var/spool/lpd/lp and given execute permissions.
|
||
|
||
<BR clear=both>
|
||
|
||
Next came the configuration for lpr. I needed to edit the
|
||
<A HREF="./printcap.txt">
|
||
/etc/printcap</A>
|
||
file to create entries for the new printer filters.
|
||
I decided to give the printers different names than the standard,
|
||
non-filtered printer name. In this way I could print ordinary
|
||
text files (which I do more than anything else) using the default
|
||
printer and use the other printer names for various draft or
|
||
final prints of images, like the cover art.
|
||
|
||
<BR clear=both>
|
||
|
||
Now the system was ready to print my images, but I still needed
|
||
to do a couple more things. First, I wanted to write a script
|
||
for handling printing of my images in the most common formats
|
||
I created. I wrote a
|
||
<A HREF="./print-tga.txt">
|
||
script</A>
|
||
to do this which I named <I>print-tga.sh</I>. I made symbollic
|
||
links from this file to variations on the name. The script
|
||
uses the name used to invoke it to determine which type of
|
||
conversions to run before printing the file.
|
||
The script converts the various formats, using the tools in
|
||
the NetPBM kit, to Postscript files and then prints them to the
|
||
high resolution printer setup in the previously mentioned printcap
|
||
file.
|
||
|
||
<BR clear=both>
|
||
|
||
Once I got all this done I was able to print full page images
|
||
on high-gloss paper. They come out beautifully. The images I
|
||
created for the cover art are far bigger than the paper, so Ghostscript
|
||
resizes them to fit. It wasn't until I got this working that I
|
||
realized just how good Ghostscript is. Or just how good the Epson
|
||
Stylus Color 500 is.
|
||
|
||
<BR clear=both>
|
||
|
||
As a side bonus, I also discovered that I could now print pages
|
||
from my Netscape browser to my printer. I configured the
|
||
print command to be <I>lpr -llpps</I> (using the lower resolution
|
||
printer from the /etc/printcap file) in the Print dialog. Since
|
||
Netscape passes the page as a Postscript file to the filter, there
|
||
is no need to do any conversions like I do with my images. I now
|
||
get full color prints of the pages I wish to save (like SIGGRAPH's
|
||
registration forms). I also can print directly from Applixware
|
||
using the same printer configurations. I just had to set up the
|
||
print options to output as Postscript, which was simply enough to do.
|
||
|
||
<BR clear=both>
|
||
|
||
There are a number of other settings that can be set using the
|
||
filters. If you are interested in using these you should consult the
|
||
devices.txt file for information on the stcolor driver. There are
|
||
probably some better settings than what I'm using for other types of
|
||
printing needs.
|
||
|
||
<BR clear=both>
|
||
|
||
Well, thats about it. I hope this was of some use to you. I was
|
||
really thankful when I got it working. My setup is probably not
|
||
exactly like anyone elses, but if you have the Epson Stylus Color
|
||
500 you should be able to get similar results. Don't forget: if
|
||
you plan on printing high resolution images using the 360 DPI (as
|
||
opposed to the 180 DPI also supported by the printer) then you'll
|
||
probably want to print on high-gloss paper. This paper can be rather
|
||
expensive. The high-gloss paper Epson sells specifically for this
|
||
printer is about $36US for 15 sheets. Also, I should note that
|
||
I recently heard Epson now has a a model 600 that is to replace
|
||
the model 500 as their entry level color printer. I haven't
|
||
heard if the 600 will work with the stcolor driver in Ghostscript
|
||
so you may want to contact the drivers author (who is listed
|
||
in the devices.txt file, along with a web site for more info) if
|
||
you plan on getting the model 600.
|
||
</td>
|
||
|
||
<tr>
|
||
<td bgcolor="#000000" cellpadding=1 cellspacing=0 valign=top>
|
||
<IMG SRC=../gx/hammel/cleardot.gif ALT="indent" ALIGN="left"
|
||
WIDTH="1" HEIGHT="1"></td>
|
||
|
||
<tr>
|
||
<td valign=top cellpadding=0 cellspacing=0>
|
||
<IMG SRC=../gx/hammel/cleardot.gif ALT="indent" ALIGN="left"
|
||
HSPACE="8" WIDTH="1" HEIGHT="1">
|
||
<BR clear=both>
|
||
|
||
</td>
|
||
</table>
|
||
</td>
|
||
|
||
|
||
|
||
</table>
|
||
|
||
|
||
<P>
|
||
<A NAME="resources">
|
||
<table>
|
||
<tr>
|
||
<td>
|
||
<IMG SRC=../gx/hammel/resources.gif ALT="Resources" ALIGN="left"
|
||
HSPACE="0" VSPACE="0" WIDTH="246" HEIGHT="57">
|
||
</td>
|
||
</table>
|
||
</A>
|
||
|
||
<BR clear=both>
|
||
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.
|
||
|
||
<BR clear=both>
|
||
<P>
|
||
|
||
<A HREF="http://www.csn.net/~mjhammel/linux/lgh.html">
|
||
Linux Graphics mini-Howto
|
||
</A>
|
||
|
||
<BR>
|
||
<A HREF="http://www.csn.net/~mjhammel/ugu/ugu.html">
|
||
Unix Graphics Utilities
|
||
</A>
|
||
|
||
<BR>
|
||
<A HREF="http://www.digiserve.com/ar/linux-snd/">
|
||
Linux Multimedia Page
|
||
</A>
|
||
|
||
<P>
|
||
Some of the Mailing Lists and Newsgroups I keep an eye on and where I get alot
|
||
of the information in this column:
|
||
|
||
<P> <A HREF="http://www.XCF.Berkeley.EDU/~gimp/">
|
||
The Gimp User and Gimp Developer Mailing Lists</A>.
|
||
<BR> <A HREF="http://www.irtc.org">
|
||
The IRTC-L discussion list</A>
|
||
<BR> <A HREF="news:comp.graphics.rendering.raytracing">
|
||
comp.graphics.rendering.raytracing</A>
|
||
<BR> <A HREF="news:comp.graphics.rendering.renderman">
|
||
comp.graphics.rendering.renderman</A>
|
||
<BR> <A HREF="news:comp.graphics.api.opengl">
|
||
comp.graphics.api.opengl</A>
|
||
<BR> <A HREF="news:comp.os.linux.announce">
|
||
comp.os.linux.announce</A>
|
||
|
||
<br>
|
||
|
||
|
||
<P>
|
||
<A NAME="future">
|
||
<H2>Future Directions</H2>
|
||
</A>
|
||
Next month:
|
||
<BLOCKQUOTE>
|
||
I have no idea. I have a ton of things that need doing, but I just
|
||
haven't had time to figure out what I *should* do. I still have part 3 of
|
||
the BMRT series to do, which I plan on doing as part of the process of
|
||
creating an animation. The animation is another topic I'd like to do.
|
||
I've also had requests for a number of other topics. One good one was to
|
||
cover the various Image Libraries that are available (libgr or its
|
||
individual components, for example). I have a review of Image Alchemy to
|
||
do (long ago promised and still not done *sigh*). Well, at least I'll
|
||
never be short a topic.
|
||
</BLOCKQUOTE>
|
||
|
||
<P>
|
||
<A HREF="mailto:mjhammel@csn.net">
|
||
Let me know what you'd like to hear about!</A>
|
||
|
||
<!--===================================================================-->
|
||
<P> <hr> <P>
|
||
<center><H5>Copyright © 1997, Michael J. Hammel<BR>
|
||
Published in Issue 19 of the Linux Gazette, July 1997</H5></center>
|
||
|
||
<!--===================================================================-->
|
||
<P> <hr> <P>
|
||
<A HREF="./index.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
|
||
ALT="[ TABLE OF CONTENTS ]"></A>
|
||
<A HREF="../index.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
|
||
ALT="[ FRONT PAGE ]"></A>
|
||
<A HREF="./clue.html"><IMG SRC="../gx/back2.gif"
|
||
ALT=" Back "></A>
|
||
<A HREF="./hallways.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
|
||
<P> <hr> <P>
|
||
|
||
|
||
<BODY>
|
||
<HEAD>
|
||
<TITLE>
|
||
Graphics Muse
|
||
</TITLE>
|
||
</HEAD>
|
||
|
||
<BODY text="#000000" bgcolor="#ffffff"
|
||
vlink="#fa3333" alink="#33CC33" link="#0000FA">
|
||
|
||
<!-- =============================================================
|
||
This Page Designed by Michael J. Hammel.
|
||
Permission to use all graphics and other content for private,
|
||
non-commerical use is granted provided you give me (or the
|
||
original authors/artists) credit for the work.
|
||
|
||
CD-ROM distributors and commercial ventures interested in
|
||
providing the Graphics Muse for a fee must contact me,
|
||
Michael J. Hammel (mjhammel@csn.net), for permission.
|
||
============================================================= !-->
|
||
|
||
<A NAME="musings">
|
||
<table>
|
||
<tr>
|
||
<td>
|
||
<H2>More...</H2>
|
||
<BR clear=both>
|
||
<IMG SRC=../gx/hammel/musings.gif ALT="Musings" ALIGN="left"
|
||
HSPACE="0" VSPACE="0" WIDTH="247" HEIGHT="52">
|
||
</td>
|
||
</table>
|
||
</A>
|
||
<BR clear=both>
|
||
|
||
<table>
|
||
<tr><td>
|
||
<UL>
|
||
<LI><A HREF="#1">DPI, LPI, Halftoning and other strange things</A>
|
||
<LI><A HREF="#2">How many frames makes a movie?</A>
|
||
</UL></td>
|
||
</table>
|
||
|
||
<IMG SRC=../gx/hammel/cleardot.gif ALT="indent" ALIGN="left"
|
||
VSPACE="5" WIDTH="1" HEIGHT="1">
|
||
<BR clear=both>
|
||
<table width=100%>
|
||
<tr>
|
||
<td width="100%" align=right>
|
||
<FONT size=1>
|
||
© 1997 <A HREF="mailto:mjhammel@csn.net">Michael J. Hammel</A>
|
||
</FONT></td>
|
||
<tr>
|
||
<td bgcolor="#000000" cellpadding=0 cellspacing=0 valign=top>
|
||
<IMG SRC=../gx/hammel/cleardot.gif ALT="indent" ALIGN="left"
|
||
HSPACE="0" WIDTH="0" HEIGHT="0"></td>
|
||
</table>
|
||
|
||
<P>
|
||
|
||
<A NAME="1">
|
||
<H4>
|
||
</H4>
|
||
</A>
|
||
<BR>
|
||
|
||
Raster images are always discussed in terms of pixels, the
|
||
number of dots on the screen that make up the height and width of the
|
||
image. As long as the image remains on the computer there is no need to
|
||
worry about converting this to some other resolution using some other
|
||
terminology. Pixel dimensions work well for Web pages, for example.
|
||
|
||
<BR>
|
||
|
||
The reality is that many images aren't very useful if they remain on the
|
||
computer. Their real usefulness lies in their transfer to film, video tape or
|
||
printed paper such as magazines or posters. The trouble with this is that
|
||
printing an image is much different than simply viewing it on the screen.
|
||
There are problems related to color conversions (RGB to CMYK), for example.
|
||
We'll have to deal with that some other time (like when I learn something
|
||
about it). Printing also requires a different set of dimensions
|
||
because of the way they work. Printed images are handled by the number of
|
||
Dots Per Inch that the printer can handle. In order to get the image to
|
||
look the way you want it on the printer, you'll need to understand how
|
||
printers work.
|
||
|
||
<BR>
|
||
First, some background information:
|
||
|
||
<UL>
|
||
<LI>Printer resolution is given in dots per inch (DPI). That is the number
|
||
of dots the device can output in an inch.
|
||
<LI>
|
||
Lines per inch (LPI) relates to halftoning. Many devices (such as
|
||
printers) only have bilevel channels, that is, either they paint a
|
||
colored dot or they don't (there are no smooth steps). Halftoning
|
||
means using different patterns of dots to simulate a greater
|
||
number of color shades. Obviously, several dots must be used in
|
||
certain on/off combinations to simulate having more shades.
|
||
</UL>
|
||
LPI comes from the world of photography while DPI comes from the world of
|
||
design. Whether it makes sense to speak of DPI resolution for a raster image
|
||
depends on what you'll be using that image for. Most magazines, such as
|
||
Time, are printed with 153 LPI or less. Newspapers such as the Wall Street
|
||
Journal are printed at 45-120 LPI.
|
||
|
||
<BR>
|
||
|
||
<I>Halftoning masks</I> are the patterns used to create the shades of color
|
||
or levels of gray seen in the lines per inch on the printed media.
|
||
Most masks are square. Let's say you have a printer which can do 300 DPI,
|
||
that is, it can print 300 dots in an inch. If the halftoning mask is
|
||
4 pixels wide, then you'll have 300/4 = 75 lines per inch (LPI) for
|
||
the halftones. That is the effective resolution of the device, since
|
||
you are interested in nice shaded printouts and not in single bilevel
|
||
dots.
|
||
|
||
<BR>
|
||
|
||
An ultra-expensive 1200 DPI typesetter will be able to do 300 LPI if
|
||
you use 4-pixel wide halftone masks. Of course, the larger the
|
||
halftone size, the more shades you'll get, but the lower the effective
|
||
resolution will be.
|
||
|
||
<BR>
|
||
|
||
If you are only going to display an image on your screen, then perhaps
|
||
speaking of DPIs in the image is pointless. You'll be mapping one
|
||
pixel in the image to one pixel on your display, so how physically
|
||
big the image looks will depend only on the size of your monitor.
|
||
This makes sense; when you create images for display on a monitor, you
|
||
usually only think in terms of available screen space (in pixels), not
|
||
about final physical displayed size. I.e. when you create a web page
|
||
you try to make your images so that they'll fit on the browser's
|
||
window, regardless of the size of your monitor.
|
||
|
||
<BR>
|
||
|
||
The story is a bit different when you are creating images for output
|
||
on a hardcopy device. You see, sheets of paper have definite physical
|
||
sizes and people do care about them. That's why everyone tries to
|
||
print Letter-sized documents on A4 paper and vice-versa.
|
||
|
||
<BR>
|
||
|
||
The simplest thing to do is to just create images considering the
|
||
physical output resolution of your printer. Let's say you have a 300
|
||
DPI printer and you create an image which is 900 pixels wide. If you
|
||
map one image pixel to one device pixel (or dot), you'll get a 3-inch wide
|
||
image:
|
||
<P>
|
||
<FONT size=2>
|
||
<CENTER>
|
||
900 pixels in image / 300 dots per inch for printing = 3 inches of image.
|
||
</CENTER>
|
||
</FONT>
|
||
|
||
<BR>
|
||
|
||
That sucks, because most likely your printer uses bilevel dots and
|
||
you'll get very ugly results if you print a photograph with one image
|
||
pixel mapped to one device pixel. You can get only so many color
|
||
combinations for a single dot on your printer --- if it uses three
|
||
inks, Cyan/Magenta/Yellow (CMY) and if it uses bilevel dots (spit ink
|
||
or do not spit ink, and that's it), you'll only be able to get a
|
||
maximum of 2*2*2 = 8 colors on that printer. Obviously 8 colors is
|
||
not enough for a photograph.
|
||
|
||
<BR>
|
||
|
||
So you decide to do the Right Thing and use halftoning. A halftone
|
||
block is usually a small square of pixels which sets different
|
||
dot patterns depending on which shade you want to create.
|
||
Let's say you use 4-pixel square halftones like in the previous
|
||
paragraphs. If you map one image pixel to one halftone block, then
|
||
your printed image will be four times as large as if you had simply
|
||
mapped one image pixel to one printer dot.
|
||
|
||
<BR>
|
||
|
||
A good rule of thumb for deciding at what size to create images is the
|
||
following. Take the number of lines per inch (LPI) that your printer
|
||
or printing software will use, that is, the number of halftone blocks
|
||
per inch that it will use, and multiply that by 2. Use that as the
|
||
number of dots per inch (DPI) for your image.
|
||
|
||
<BR>
|
||
|
||
Say you have a 600 DPI color printer that uses 4-pixel halftone
|
||
blocks. That is, it will use 600/4 = 150 LPI. You should then create
|
||
your images at 150*2 = 300 DPI. So, if you want an image to be 5
|
||
inches wide, then you'll have to make it 300*5 = 1500 pixels wide.
|
||
Your printing software should take all that into account to create the
|
||
proper halftoning mask. For example, when you use PostScript, you can
|
||
tell the interpreter to use a certain halftone size and it will convert
|
||
images appropriately. However, most Linux software doesn't do this yet.
|
||
If you have a need to create an image destined for print you should check
|
||
with the printer to get either the LPI or DPI and the number of pixels used
|
||
in the Halftone that will be used. You can then compute the number of
|
||
pixels you'll need in your image.
|
||
|
||
<BR>
|
||
|
||
The story is very different if you do not use regular halftoning
|
||
masks. If you use a stochastic (based on randomness) dithering
|
||
technique, like Floyd-Steinberg dithering, then it may be a good idea
|
||
to design images with the same resolution as the physical (DPI)
|
||
resolution on your output device. Stochastic screening is based on
|
||
distributing the dithering error over all the image pixels, so you
|
||
(usually) get output without ugly Moire patterns and such. Then
|
||
again, using the same physical resolution as your output device can
|
||
result in really <B>big</B> images (in number of bytes), so you may want to
|
||
use a lower resolution. Since the dithering is more or less random,
|
||
most people won't notice the difference.
|
||
|
||
<P>
|
||
|
||
My thanks to Federico Mena Quintero for the majority of this discussion.
|
||
He summarized the discussion for the GIMP Developers Mailing List quite
|
||
some time back. Fortunately, I happened to hang onto this his posting.
|
||
|
||
<P>
|
||
|
||
<table width=100%>
|
||
<tr>
|
||
<td colspan=4 bgcolor="#000000" cellpadding=0 cellspacing=0 valign=top>
|
||
<IMG SRC=../gx/hammel/cleardot.gif ALT="indent" ALIGN="left"
|
||
HSPACE="0" WIDTH="0" HEIGHT="0"></td>
|
||
</table>
|
||
|
||
|
||
<P>
|
||
|
||
<!-- ------------------------------------------------------------- -->
|
||
<!-- Part 2, if any -->
|
||
<!-- ------------------------------------------------------------- -->
|
||
|
||
<A NAME="2">
|
||
<H4>How many frames makes a movie?</H4>
|
||
</A>
|
||
|
||
<BR>
|
||
|
||
The following comes from Larry Gritz in response to a question I posed to
|
||
him regarding something I noticed while framing through my copy of <I>Toy
|
||
Story</I> one day. I thought his explanation was so good it deserved a
|
||
spot in the Muse. So here it is.
|
||
|
||
<P>
|
||
<I>
|
||
BTW: I noticed, as I framed through various scenes, that I had 4 frames of
|
||
movement and one frame of "fill" (exactly the same as the previous frame).
|
||
Standard video is 30 frames/sec and I've read that 15 or 10 animated frames
|
||
is acceptable for film but that this requires some fill frames. Lets see,
|
||
if you did 15 frames per second you could actually render 12 frames with 3
|
||
fill frames. Is this about right?
|
||
</I>
|
||
|
||
<P>
|
||
|
||
No, we render and record film at a full 24 frames a second. We
|
||
do not "render on two's", as many stop motion animators do.
|
||
|
||
<BR>
|
||
|
||
When 24 fps film is converted to video, something called 3:2 pulldown
|
||
is done. Video is 30 frames, but actually 60 fields per second --
|
||
alternating even and odd scanlines. The 3:2 pulldown process records
|
||
one frame for three fields of video, then the next frame for 2 fields
|
||
of video. So you get something like this:
|
||
|
||
<table>
|
||
<tr>
|
||
<th align=center> video frame
|
||
<th align=center> video field
|
||
<th align=center> film frame
|
||
<tr>
|
||
<td align=center> 1
|
||
<td align=center> 1 (even)
|
||
<td align=center> 1
|
||
<tr>
|
||
<td align=center> 1
|
||
<td align=center> 2 (odd)
|
||
<td align=center> 1
|
||
<tr>
|
||
<td align=center> 2
|
||
<td align=center> 1 (even)
|
||
<td align=center> 1
|
||
<tr>
|
||
<td align=center> 2
|
||
<td align=center> 2 (odd)
|
||
<td align=center> 2
|
||
<tr>
|
||
<td align=center> 3
|
||
<td align=center> 1 (even)
|
||
<td align=center> 2
|
||
<tr>
|
||
<td align=center> 3
|
||
<td align=center> 2 (odd)
|
||
<td align=center> 3
|
||
<tr>
|
||
<td align=center> 4
|
||
<td align=center> 1 (even)
|
||
<td align=center> 3
|
||
<tr>
|
||
<td align=center> 4
|
||
<td align=center> 2 (odd)
|
||
<td align=center> 3
|
||
<tr>
|
||
<td align=center> 5
|
||
<td align=center> 1 (even)
|
||
<td align=center> 4
|
||
<tr>
|
||
<td align=center> 5
|
||
<td align=center> 2 (odd)
|
||
<td align=center> 4
|
||
</table>
|
||
|
||
So every 4 film frames get expanded into 5 video frames, and hey,
|
||
30/24 == 5/4 ! This is how all films are transferred to video
|
||
in a way that doesn't mess up the original timing.
|
||
|
||
<BR>
|
||
|
||
Your video probably only shows the first field when you're paused,
|
||
which makes it look like 1 in 5 frames is doubled, but it's actually
|
||
just a bit more complicated than that.
|
||
|
||
|
||
<P>
|
||
|
||
<table width=100%>
|
||
<tr>
|
||
<td colspan=4 bgcolor="#000000" cellpadding=0 cellspacing=0 valign=top>
|
||
<IMG SRC=../gx/hammel/cleardot.gif ALT="indent" ALIGN="left"
|
||
HSPACE="0" WIDTH="0" HEIGHT="0"></td>
|
||
</table>
|
||
|
||
<table width=100%>
|
||
<tr>
|
||
<td align=right>
|
||
<FONT size=1>
|
||
© 1997 by <A HREF="mailto:mjhammel@csn.net">Michael J. Hammel</A>
|
||
</FONT>
|
||
</table>
|
||
|
||
|
||
<H4>
|
||
"Linux Gazette...<I>making Linux just a little more fun!</I>"
|
||
</H4>
|
||
|
||
<P> <HR> <P>
|
||
<!--===================================================================-->
|
||
|
||
<center>
|
||
<H2>Intranet Hallways Systems Based on Linux</H2>
|
||
<H4>By Justin Seiferth,
|
||
<a href="mailto:seiferth@yahoo.com">seiferth@yahoo.com</a>
|
||
</center></H4><P><HR>
|
||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||
<META NAME="GENERATOR" CONTENT="Mozilla/4.0b5 [en] (Win16; I) [Netscape]">
|
||
<p>
|
||
|
||
<BLOCKQUOTE><EM>
|
||
[Update 27-Dec-1999: Author's e-mail address. -Ed.]
|
||
</EM></BLOCKQUOTE>
|
||
|
||
<CENTER><FONT FACE="Arial,Helvetica"><FONT SIZE=+2>Using Linux: An Intranet
|
||
Hallways System</FONT></FONT></CENTER>
|
||
<FONT FACE="Arial,Helvetica">Like many of you, I like to use Unix, esp.
|
||
Linux when ever and where ever it seems to be the best fit for the job.
|
||
This means I have to work fast and be creative; making opportunities when
|
||
and where ever I can't take them. I had just such an opportunity recently
|
||
when I put together a system which allows <A HREF="http://www.disa.mil">my
|
||
workplace</A> to publish the common file sharing areas of its Microsoft
|
||
Windows NT based desktops. I thought others might be interested in this
|
||
system and created a <A HREF="ftp://www.disa.mil/pub/linux_gazette/">distribution</A>
|
||
have your own Intranet Hallways system or as the popular press would put
|
||
it an "enterprise information warehouse". Don't let on how easy it
|
||
is and you'll be able to make a bundle reselling the system. Here's
|
||
what you need to do to make it happen:</FONT>
|
||
<LI>
|
||
<FONT FACE="Arial,Helvetica"><A HREF="#Show">Kernel Options</A></FONT></LI>
|
||
|
||
<LI>
|
||
<FONT FACE="Arial,Helvetica"><A HREF="#utilities">Support Utilities</A></FONT></LI>
|
||
|
||
<LI>
|
||
<FONT FACE="Arial,Helvetica"><A HREF="#pages">HTML pages</A> and <A HREF="#scripts">scripts</A></FONT></LI>
|
||
|
||
<LI>
|
||
<FONT FACE="Arial,Helvetica"><A HREF="#Stage">Some Configuration Changes</A></FONT></LI>
|
||
|
||
<LI>
|
||
<FONT FACE="Arial,Helvetica"><A HREF="#install">A Quick installation</A></FONT></LI>
|
||
|
||
<LI>
|
||
<FONT FACE="Arial,Helvetica"><A HREF="#Applause">Other things</A> you might
|
||
do with it</FONT></LI>
|
||
|
||
|
||
<P><FONT FACE="Arial,Helvetica">Once you've retrieved the distribution,
|
||
it shouldn't take more than an hour to get things running; let <A HREF="mailto:seiferth@erols.com">me</A>
|
||
know what you think about the system when you do.</FONT>
|
||
|
||
<P><B><FONT FACE="Arial,Helvetica"><FONT SIZE=+1>The Opportunity</FONT></FONT></B>
|
||
<BR><FONT FACE="Arial,Helvetica">Microsoft's Windows NT suffers from a
|
||
file system inherited from its MS-DOS lineage. For those of you who haven't
|
||
had the displeasure this means file systems are cryptically named A-Z,
|
||
can't automount and the process of manually mounting them is much more
|
||
complicated and error prone than the more user friendly tools like <A HREF="http://www.redhat.com">Red
|
||
Hat's</A>
|
||
fstool. These problems have been worked around somewhat at my agency through
|
||
a series of .bat files which mount server drives in standard places so
|
||
users can say "Just look at the T: drive" or something similar. This still
|
||
left users with problems searching tens of thousands of files spread thousands
|
||
of directories located on servers across the world. The Microsoft Windows
|
||
NT operators were trying to figure out a way to present an efficient, agency-wide
|
||
view of these servers so that users could easily find and retrieve things.
|
||
We used Linux to integrate and publish these file sharing areas on our
|
||
intranet.</FONT>
|
||
|
||
<P><B><FONT FACE="Arial,Helvetica"><FONT SIZE=+1>Before the<A NAME="Show"></A>Show</FONT></FONT></B>
|
||
<BR><FONT FACE="Arial,Helvetica">Key to the system is the ability of the
|
||
Linux kernel (later 2.0 and 2.1 versions) to mount <A HREF="http://www.informatik.hu-berlin.de:80/~loewis/ntfs/">local</A>
|
||
NTFS and remote <A HREF="http://samba.anu.edu.au/cifs/docs/smb-history.html">SMB</A>
|
||
volumes. There's nothing esoteric about enabling or using this option,
|
||
just <A HREF="http://www.disa.mil/.drafts/smbselect.gif">check it off </A>when
|
||
you're compiling the kernel. (Don't run away at the thought of compiling
|
||
a kernel! Most <A HREF="http://www.xnet.com/~blatura/linux.shtml#src">distributions</A>
|
||
include these options in their default kernel so you probably don't have
|
||
do anything- just try it out </FONT><TT>smbmount</TT><FONT FACE="Arial,Helvetica">
|
||
and see if it works). If any of your network shares are coming from Windows
|
||
95 machines, make sure to also select the patch for Windows 95 machines
|
||
and long file names. If you are just serving Microsoft Windows NT or Samba
|
||
shares, don't use the Windows 95 option as I've found it has a noticeable
|
||
impact on the speed of the SMB mount and file operations.</FONT>
|
||
|
||
<P><FONT FACE="Arial,Helvetica">Once you've got an SMB capable kernel installed
|
||
you're almost ready to go. The other critical components are the<A NAME="utilities"></A><A HREF="http://134.76.140.96/linux-lan/">smbfs</A>
|
||
utilities, the <A HREF="ftp://ftp.caldera.com/pub/mirrors">wu-ftpd</A>
|
||
suite, a <A HREF="http://www.apache.org">web server</A>, a search engine
|
||
and a javascript - capable <A HREF="http://home.netscape.com">browser</A>.
|
||
Your distribution has probably installed an operational FTP and HTTP server
|
||
and most people nowadays have a Netscape browser installed so all you really
|
||
need to do is compile the smbfs utilities and setup a search engine. If
|
||
most of the documents on your SMB shares are in text or HTML format, there
|
||
are a number of search engines that you can choose from- htdig and glimpse
|
||
come to mind. If you want to be able to search non-HTML documents then
|
||
you might need one of the commercial search engine. We use Netscape's catalog
|
||
server for Solaris.</FONT>
|
||
|
||
<P><FONT FACE="Arial,Helvetica">The system will work without a javascript
|
||
browser; it just won't be a easy to use.</FONT> <FONT FACE="Arial,Helvetica">Hit
|
||
the links to grab the software tools you need from the list above set it
|
||
up. If you run into problems, be sure and check out the linux HOWTOs and
|
||
mailing list documentation on the sites offering the software. If
|
||
you have RedHat's RPM or Debian's package tools somebody else has probably
|
||
already made a binary available; just check your local archive.</FONT>
|
||
|
||
<P><B><FONT FACE="Arial,Helvetica"><FONT SIZE=+1>Set and<A NAME="Stage"></A>Stage</FONT></FONT></B>
|
||
<BR><FONT FACE="Arial,Helvetica">I'm assuming you've tested your kernel
|
||
to make sure you can indeed mount SMB shares and that your ftp server is
|
||
up and alive. Before we can start serving your "enterprise information
|
||
warehouse" there are a few files which need to be added to or modified
|
||
on your system in addition to the <A HREF="http://www.w3.org">HTML</A>
|
||
files we'll discuss later. The first addition is a new init.d file for
|
||
automatically mounting SMB shares when you boot your system. Then we'll
|
||
enable a few features of your FTP server.</FONT>
|
||
|
||
<P><FONT FACE="Arial,Helvetica">First, let's contend with mounting shares
|
||
automatically. I do this with a standard run-level 3/5 initscript; here's
|
||
an excerpt with the most critical lines:</FONT>
|
||
<BR>
|
||
<HR SIZE=1 WIDTH="100%">
|
||
<BR><B><TT># Check that networking is up.</TT></B>
|
||
<BR><B><TT>[ ${NETWORKING} = "no" ] exit 0</TT></B>
|
||
|
||
<P><B><TT># See how we were called.</TT></B>
|
||
<BR><B><TT>case "$1" in</TT></B>
|
||
<BR><B><TT>start)</TT></B>
|
||
<BR><B><TT>echo -n "Mounting SMB shares..."</TT></B>
|
||
<BR><B><TT>echo "Mounting share1"</TT></B>
|
||
<BR><B><TT>/usr/sbin/smbmount //hostname/share /home/ftp/mountpoint -n
|
||
-uftp -gftp -f755 -Ihostnames_IP_address</TT></B>
|
||
<BR><B><TT># mount your other shares</TT></B>
|
||
<BR><B><TT>echo ""</TT></B>
|
||
<BR><B><TT>;;</TT></B>
|
||
<BR><B><TT>stop)</TT></B>
|
||
<BR><B><TT>echo -n "Umounting SMB shares..."</TT></B>
|
||
<BR><B><TT>/usr/sbin/umount /home/ftp/mountpoint</TT></B>
|
||
<BR><B><TT>#insert other mount comments here ....</TT></B>
|
||
<BR><B><TT>echo ""</TT></B>
|
||
<BR><B><TT>;;</TT></B>
|
||
<BR><B><TT>*)</TT></B>
|
||
<BR><B><TT>echo "Usage: hallways {start|stop}"</TT></B>
|
||
<BR><B><TT>exit 1</TT></B>
|
||
<BR><B><TT>esac</TT></B>
|
||
<BR>
|
||
<HR SIZE=1 WIDTH="100%">
|
||
<BR><FONT FACE="Arial,Helvetica">The </FONT><TT>smbmount(8)</TT><FONT FACE="Arial,Helvetica">
|
||
and </FONT><TT>umount(8)</TT><FONT FACE="Arial,Helvetica"> man pages have
|
||
more details on what all those flags are about. Basically, we are mounting
|
||
the shares into a directory accessible via anonymous FTP. The permissions
|
||
and groups are "fake" in the sense that they don't map to anything sensible
|
||
in the NT file system; they are only for the convenience and protection
|
||
of the Unix system. Our common shares are read/write for everyone; if your
|
||
site is more cautious you may want to review the implications of the file
|
||
permissions and ownership or perhaps impose access controls using your
|
||
file system and web server's security mechanisms.</FONT>
|
||
|
||
<P><FONT FACE="Arial,Helvetica">Now, let's take a look at the scripts used
|
||
to startup your FTP server. You have to make sure you're taking advantage
|
||
of wu-ftpd's </FONT><TT>ftpaccess(5)</TT><FONT FACE="Arial,Helvetica">
|
||
configuration capabilities. If you start your FTP daemon using the </FONT><TT>-a</TT><FONT FACE="Arial,Helvetica">
|
||
option the </FONT><TT>/etc/ftpaccess</TT><FONT FACE="Arial,Helvetica">
|
||
file will allow you to customize many aspects of the FTP server's performance
|
||
and capabilities. Normally, you enable the -a option of your FTP server
|
||
in your </FONT><TT>/etc/inetd.conf</TT> <FONT FACE="Arial,Helvetica">file;
|
||
some people run their FTP full time, in this case check out the startup
|
||
files in your </FONT><TT>/etc/rc.d/rc3.d</TT><FONT FACE="Arial,Helvetica">
|
||
or </FONT><TT>rc5.d</TT><FONT FACE="Arial,Helvetica"> directory and add
|
||
the option when the daemon is started up. Among the benefits of using </FONT><TT>ftpaccess</TT><FONT FACE="Arial,Helvetica">
|
||
is the ability to specify header and trailer messages in the directory
|
||
listings generated by your FTP server. These directives, </FONT><TT>message
|
||
</TT><FONT FACE="Arial,Helvetica">and </FONT><TT>readme </TT><FONT FACE="Arial,Helvetica">are
|
||
key to our system's capabilities.</FONT>
|
||
|
||
<P><A NAME="pages"></A><FONT FACE="Arial,Helvetica">We created an HTML
|
||
file within the directory structure accessible to the FTP daemon; in our
|
||
case it is called 'welcome.html', this file is placed in the root directory
|
||
of the FTP daemon's file area and the entry in </FONT><TT>ftpaccess </TT><FONT FACE="Arial,Helvetica">looks
|
||
like:</FONT>
|
||
<BR><B><TT>...</TT></B>
|
||
<BR><B><TT>message /welcome.html login</TT></B>
|
||
<BR><B><TT>...</TT></B>
|
||
<BR><FONT FACE="Arial,Helvetica">Now the contents of </FONT><TT>welcome.html</TT><FONT FACE="Arial,Helvetica">
|
||
will be displayed at the beginning of directory listings. The contents
|
||
of </FONT><TT>welcome.html</TT><FONT FACE="Arial,Helvetica"> are a little
|
||
tricky if you're not familiar with javascript. They are designed to both
|
||
dynamically tailor the HTML based on the position of the page within a
|
||
browser. These dynamic web pages tailor the help message to the context
|
||
of the display.</FONT>
|
||
<BR>
|
||
<HR SIZE=1 WIDTH="100%">
|
||
<BR><B><TT><HTML></TT></B>
|
||
<BR><B><TT><HEAD></TT></B>
|
||
<BR><B><TT><SCRIPT LANGUAGE="JavaScript"></TT></B>
|
||
|
||
<P><A NAME="scripts"></A><B><TT>function OpenNewWindow()</TT></B>
|
||
<BR><B><TT>{</TT></B>
|
||
<BR><B><TT>alert("To Upload a file go to file...Upload File on the browser's
|
||
button bar")</TT></B>
|
||
<BR><B><TT>parent.frames[2].location.protocol = "ftp:"</TT></B>
|
||
<BR><B><TT>window.open(parent.frames[2].location.href)</TT></B>
|
||
<BR><B><TT>}</TT></B>
|
||
|
||
<P><B><TT></SCRIPT></TT></B>
|
||
<BR><B><TT></HEAD</TT></B>
|
||
<BR><B><TT><BODY bgcolor="#FFFFFF"></TT></B>
|
||
<BR><B><TT><FORM></TT></B>
|
||
<BR><B><TT><SCRIPT LANGUAGE="JavaScript"></TT></B>
|
||
<BR><B><TT>if (self!=top) {</TT></B>
|
||
<BR><B><TT>document.write('<i><B>Hi!</b></i>' + "You can preview,
|
||
download files or search for information here.<p>You can also upload
|
||
a file<br>" + '<FORM>' +</TT></B>
|
||
<BR><B><TT>'<CENTER>' + '<INPUT TYPE="button" Value="Upload File"
|
||
onClick="OpenNewWindow()</TT></B>
|
||
<BR><B><TT>">' + '</CENTER>' + '</FORM>');</TT></B>
|
||
<BR><B><TT>}</TT></B>
|
||
<BR><B><TT>else</TT></B>
|
||
<BR><B><TT>{</TT></B>
|
||
<BR><B><TT>document.write('<i><B>Hi!</b></i> This is a special
|
||
screen for adding information to hallways.<p> To Upload a file, go to
|
||
FILE | Upload, like <a href="http://webserver/access_directory/<A HREF="http://www.disa.mil/.drafts/file_upload.gif">file_upload.gif</A>"></TT></B>
|
||
<BR><B><TT>this</a></TT></B>
|
||
<BR><B><TT><p>');</TT></B>
|
||
<BR><B><TT>}</TT></B>
|
||
<BR><B><TT></SCRIPT></TT></B>
|
||
<BR><B><TT></FORM></TT></B>
|
||
<BR><B><TT></BODY></TT></B>
|
||
<BR><B><TT></HTML></TT></B>
|
||
<BR>
|
||
<HR SIZE=1 WIDTH="100%">
|
||
|
||
<P><FONT FACE="Arial,Helvetica">This interface is not the first one we
|
||
tried. I really wanted to make the system intuitive; then we'd have to
|
||
spend less time answering questions and could spend more time working on
|
||
new ideas. The tests we conducted showed most people knew how to download
|
||
files but were not aware you could upload files or view the contents of
|
||
non-HTML files. We tried HTTP uploads and downloads but settled on the
|
||
combination of FTP and HTTP generated screens. We needed a design which
|
||
allowed easy navigation around a complicated system and kept at least minimal
|
||
help hints in front of the users all the time. The final HTTP based frame
|
||
design allowed us to put together an attractive interface. Encapsulating
|
||
the FTP file display simplified uploads and downloads. Unlike a web server,
|
||
our FTP server labels all files as a single MIME type allowing us to use
|
||
a single helper application to easily display all files.; Getting this
|
||
preview function to work will require editing the association of mine types
|
||
with an application on the user's computer. We use a universal viewer,
|
||
you can use one of these if your network already has one installed or you
|
||
might investigate one of the many plug-ins which allow viewing files within
|
||
the browser itself.</FONT>
|
||
|
||
<P><B><TT><FONT FACE="Arial,Helvetica"><FONT SIZE=+1>The <A NAME="Curtain"></A>Curtain
|
||
Rises</FONT></FONT></TT></B>
|
||
<BR><FONT FACE="Arial,Helvetica"> <A NAME="install"></A>Now the majority
|
||
of the work and trickery is done; all that remains is a frame based <A HREF="http://www.disa.mil/.drafts/interface.gif">user
|
||
interface</A>, a few snazzy graphics and some help files. In a nutshell,
|
||
if the FTP listing is contained within a frame then the if part of the
|
||
conditional is presented. This HTML allows the user to press an "upload"
|
||
button which will pop open another browser instance with the FTP directory
|
||
within the root window. When </FONT><TT>welcome.html</TT><FONT FACE="Arial,Helvetica">
|
||
is displayed within this root window, it contains instructions on how to
|
||
upload a file using the FTP capabilities of the browser.</FONT> <FONT FACE="Arial,Helvetica">The
|
||
best way to understand how the code works is of course to just load it
|
||
up and experiment.</FONT>
|
||
|
||
<P><FONT FACE="Arial,Helvetica">This isn't a tutorial on HTML so I'll just
|
||
let you know you can download this whole package (minus a few of the graphics
|
||
we used in our user interface) from ftp://www.disa.mil/pub/linux_gazette_stuff.tgz.
|
||
We can't redistribute some of the graphics we use but you can just draw
|
||
up your own and stick them into HTML code.</FONT>
|
||
|
||
<P><FONT FACE="Arial,Helvetica">During your review of the code you may
|
||
notice that our frame definition document distributes this system across
|
||
several machines; for us this is an important feature. We make use of local
|
||
proxy servers for FTP and HTTP traffic. These proxy servers keep down the
|
||
loading of our backbone. Our system is distributed such that the web server
|
||
documents and graphics will be served from a local departmental web server
|
||
while the FTP server distributes information from another, centralized
|
||
location. Since the proxy and web are local to our subnet documents stored
|
||
on the SMB hallways area are served from the proxy (cache)- speeding up
|
||
the file transfer times dramatically and reducing our wide area network
|
||
traffic. We are also using the Solaris version of the Netscape Catalog
|
||
Server to allow users to expediently find any document or content within
|
||
a wide variety of popular Unix, MacIntosh and Windows application formats.
|
||
This feature provides some much needed help to users who must retrieve
|
||
one of several hundred thousand documents stored on servers spread across
|
||
the globe; it was absolutely infeasible using the Microsoft Windows NT
|
||
file manager search feature previously recommended by the Microsoft Windows
|
||
NT operators</FONT>
|
||
|
||
<P><A NAME="Applause"></A><B><TT><FONT FACE="Arial,Helvetica"><FONT SIZE=+1>Applause
|
||
and Royalties</FONT></FONT></TT></B>
|
||
<BR><FONT FACE="Arial,Helvetica">You can provide many other enhancements
|
||
such as browser access to multiple file system types (NFS, Appleshare,
|
||
SMB, AFS, etc) and internet/intranet FTP areas are easily added. We are
|
||
also working on a management add-on using PHP/FI and Postgress to present
|
||
users with a fully graphical file upload facility which will also store
|
||
meta data on documents such as the originator of the information, the originators
|
||
e-mail address, etc. In fact I think with a little more work this system
|
||
is a pretty good replacement for some the proprietary commercial document
|
||
management applications that cost tens of thousands of dollars.</FONT><FONT FACE="Arial,Helvetica"></FONT>
|
||
|
||
<P><FONT FACE="Arial,Helvetica">I hope these ideas and this system will
|
||
help you and your workplace out. If you have other creative examples of
|
||
simple systems that help bring people working around the world together,
|
||
<A HREF="mailto:seiferth@erols.com">I'd</A> like to here about them. Thanks
|
||
for listening...</FONT>
|
||
|
||
<!--===================================================================-->
|
||
<P> <hr> <P>
|
||
<center><H5>Copyright © 1997, Justin Seiferth<BR>
|
||
Published in Issue 19 of the Linux Gazette, July 1997</H5></center>
|
||
|
||
<!--===================================================================-->
|
||
<P> <hr> <P>
|
||
<A HREF="./index.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
|
||
ALT="[ TABLE OF CONTENTS ]"></A>
|
||
<A HREF="../index.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
|
||
ALT="[ FRONT PAGE ]"></A>
|
||
<A HREF="./gm.html"><IMG SRC="../gx/back2.gif"
|
||
ALT=" Back "></A>
|
||
<A HREF="./ai.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
|
||
<P> <hr> <P>
|
||
|
||
<H4>
|
||
"Linux Gazette...<I>making Linux just a little more fun!</I>"
|
||
</H4>
|
||
|
||
<P> <HR> <P>
|
||
<!--===================================================================-->
|
||
|
||
<center>
|
||
<H2>Linux and Artificial Intelligence</H2>
|
||
<H4>By John Eikenberry,
|
||
<a href="mailto:jae@ai.uga.edu">jae@ai.uga.edu</a></H4>
|
||
</center>
|
||
<P><HR>
|
||
|
||
|
||
Three years ago when I was starting my last year of my masters of
|
||
philosophy degree. I found myself asking that eternal question,
|
||
"Ok, now what in the hell am I going to do?" Not wanting to
|
||
continue on in philosophy, what could a philosopher (and computer
|
||
enthusiast) do that would be both fun and profitable. Artificial
|
||
Intelligence of course (but you saw that coming didn't you?)
|
||
<P></P>
|
||
|
||
I had fallen in love with Linux in late 1993 and after seeing all
|
||
the Suns scattered about the AI Dept, it seemed like the perfect
|
||
OS for AI research. Guess what, I was right. I have found so many
|
||
resources available for doing AI research on Linux that I had to
|
||
write them all down (warning: blatant plug follows), thus my <a
|
||
href="http://www.ai.uga.edu/students/jae/ai.html">Linux AI/Alife
|
||
mini-HOWTO</a> came into being. <P></P>
|
||
|
||
Ok, enough of this drivel, now on to the meat of the article.
|
||
<P></P>
|
||
|
||
Modern AI is a many faceted field of research, dealing with
|
||
everything from 'traditional' logic based systems, to
|
||
connectionism, evolutionary computing, artificial life, and
|
||
autonomous agents. With Unix being the main platform for AI, there
|
||
are many excellent resources available for Linux in each of these
|
||
areas. The rest of this article I'll give a brief description
|
||
of each of these areas along with one of the more interesting
|
||
resources available to the Linux user. <P></P>
|
||
|
||
<hr>
|
||
|
||
<DL>
|
||
|
||
<DT><b>PROGRAMMING LANGUAGES</B>
|
||
|
||
<DD>
|
||
I know I didn't mention this above, but there are many
|
||
programming languages that have been specifically designed
|
||
with AI applications in mind.
|
||
</DD>
|
||
|
||
<P></P>
|
||
|
||
<DT>DFKI OZ<BR>
|
||
Web page: <A HREF="http://www.ps.uni-sb.de/oz/">www.ps.uni-sb.de/oz/</A><BR>
|
||
FTP site: <A HREF="ftp://ps-ftp.dfki.uni-sb.de/pub/oz2/">ps-ftp.dfki.uni-sb.de/pub/oz2/</A>
|
||
|
||
<DD>
|
||
Oz is a high-level programming language designed for
|
||
concurrent symbolic computation. It is based on a new
|
||
computation model providing a uniform and simple foundation
|
||
for several programming paradigms, including higher-order
|
||
functional, constraint logic, and concurrent object-oriented
|
||
programming. Oz is designed as a successor to languages such
|
||
as Lisp, Prolog and Smalltalk, which fail to support
|
||
applications that require concurrency, reactivity, and
|
||
real-time control. <P></P>
|
||
|
||
DFKI Oz is an interactive implementation of Oz featuring a
|
||
programming interface based on GNU Emacs, a concurrent
|
||
browser, an object-oriented interface to Tcl/Tk, powerful
|
||
interoperability features (sockets, C, C++), an incremental
|
||
compiler, a garbage collector, and support for stand-alone
|
||
applications. Performance is competitive with commercial
|
||
Prolog and Lisp systems.
|
||
</DD>
|
||
</DL>
|
||
|
||
<hr>
|
||
|
||
<DL>
|
||
|
||
<DT><B>TRADITIONAL ARTIFICIAL INTELLIGENCE</B>
|
||
|
||
<DD>
|
||
Traditional AI is based around the ideas of logic, rule
|
||
systems, linguistics, and the concept of rationality. At its
|
||
roots are programming languages such as Lisp and Prolog.
|
||
Expert systems are the largest successful example of this
|
||
paradigm. An expert system consists of a detailed knowledge
|
||
base and a complex rule system to utilize it. Such systems
|
||
have been used for such things as medical diagnosis support
|
||
and credit checking systems.
|
||
</DD>
|
||
|
||
<P></P>
|
||
|
||
<DT>SNePS<BR>
|
||
Web site: <A
|
||
HREF="http://www.cs.buffalo.edu/pub/sneps/WWW/">www.cs.buffalo.edu/pub/sneps/WWW/</A><BR>
|
||
FTP site: <A
|
||
HREF="ftp://ftp.cs.buffalo.edu/pub/sneps/">ftp.cs.buffalo.edu/pub/sneps/</A>
|
||
|
||
<DD>
|
||
The long-term goal of The SNePS Research Group is the design
|
||
and construction of a natural-language-using computerized
|
||
cognitive agent, and carrying out the research in artificial
|
||
intelligence, computational linguistics, and cognitive science
|
||
necessary for that endeavor. The three-part focus of the group
|
||
is on knowledge representation, reasoning, and natural-language
|
||
understanding and generation. The group is widely known for its
|
||
development of the SNePS knowledge representation/reasoning
|
||
system, and Cassie, its computerized cognitive agent.
|
||
</DD>
|
||
</DL>
|
||
|
||
<hr>
|
||
|
||
<DL>
|
||
|
||
<DT><B>CONNECTIONISM</B>
|
||
|
||
<DD>
|
||
Connectionism is a technical term for a group of related
|
||
techniques. These techniques include areas such as Artificial
|
||
Neural Networks, Semantic Networks and a few other similar
|
||
ideas. My present focus is on neural networks (though I am
|
||
looking for resources on the other techniques). Neural
|
||
networks are programs designed to simulate the workings of the
|
||
brain. They consist of a network of small mathematical-based
|
||
nodes, which work together to form patterns of information.
|
||
They have tremendous potential and currently seem to be having
|
||
a great deal of success with image processing and robot
|
||
control.
|
||
</DD>
|
||
|
||
<P></P>
|
||
|
||
<DT>PDP++<BR>
|
||
Web site: <a href="http://www.cnbc.cmu.edu/PDP++/">www.cnbc.cmu.edu/PDP++/</a><br>
|
||
FTP site (US): <a href="ftp://cnbc.cmu.edu/pub/pdp++/">cnbc.cmu.edu/pub/pdp++/</a><br>
|
||
FTP site (Europe): <a href="ftp://unix.hensa.ac.uk/mirrors/pdp++/">
|
||
unix.hensa.ac.uk/mirrors/pdp++/ </a>
|
||
|
||
<DD>
|
||
As the field of connectionist modeling has grown, so has the
|
||
need for a comprehensive simulation environment for the
|
||
development and testing of connectionist models. Our goal in
|
||
developing PDP++ has been to integrate several powerful
|
||
software development and user interface tools into a general
|
||
purpose simulation environment that is both user friendly and
|
||
user extensible. The simulator is built in the C++ programming
|
||
language, and incorporates a state of the art script
|
||
interpreter with the full expressive power of C++. The
|
||
graphical user interface is built with the Interviews toolkit,
|
||
and allows full access to the data structures and processing
|
||
modules out of which the simulator is built. We have
|
||
constructed several useful graphical modules for easy
|
||
interaction with the structure and the contents of neural
|
||
networks, and we've made it possible to change and adapt many
|
||
things. At the programming level, we have set things up in
|
||
such a way as to make user extensions as painless as
|
||
possible. The programmer creates new C++ objects, which might
|
||
be new kinds of units or new kinds of processes; once compiled
|
||
and linked into the simulator, these new objects can then be
|
||
accessed and used like any other.
|
||
</DD>
|
||
</DL>
|
||
|
||
<hr>
|
||
|
||
<DL>
|
||
|
||
<DT><B>EVOLUTIONARY COMPUTING [EC]</B>
|
||
|
||
<DD>
|
||
Evolutionary computing is actually a broad term for a vast
|
||
array of programming techniques, including genetic algorithms,
|
||
complex adaptive systems, evolutionary programming, etc.
|
||
The main thrust of all these techniques is the idea of
|
||
evolution. The idea that a program can be written that will
|
||
<i>evolve</i> toward a certain goal. This goal can be
|
||
anything from solving some engineering problem to winning a
|
||
game.
|
||
</DD>
|
||
|
||
<P></P>
|
||
|
||
<DT>GAGS<BR>
|
||
Web site: <A HREF="http://kal-el.ugr.es/gags.html">kal-el.ugr.es/gags.html</A><BR>
|
||
FTP site: <A HREF="ftp://kal-el.ugr.es/GAGS/">kal-el.ugr.es/GAGS/</A>
|
||
|
||
<DD>
|
||
Genetic Algorithm </a> application generator and class library
|
||
written mainly in C++.
|
||
<BR>
|
||
As a class library, and among other thing, GAGS includes:
|
||
<UL>
|
||
<LI>A <em>chromosome hierarchy</em> with variable length
|
||
chromosomes. <em>Genetic operators</em>: 2-point crossover,
|
||
uniform crossover, bit-flip mutation, transposition (gene
|
||
interchange between 2 parts of the chromosome), and
|
||
variable-length operators: duplication, elimination, and
|
||
random addition.
|
||
<LI><em>Population level operators</em> include steady
|
||
state, roulette wheel and tournament selection.
|
||
<LI><em>Gnuplot wrapper</em>: turns gnuplot into a
|
||
<code>iostreams</code>-like class.
|
||
<LI>Easy sample file loading and configuration file parsing.
|
||
</ul>
|
||
As an application generator (written in <code>PERL</code>),
|
||
you only need to supply it with an ANSI-C or C++ fitness
|
||
function, and it creates a C++ program that uses the above
|
||
library to 90% capacity, compiles it, and runs it, saving
|
||
results and presenting fitness thru <code>gnuplot</code>.
|
||
</DD>
|
||
|
||
</DL>
|
||
|
||
<hr>
|
||
|
||
<DL>
|
||
|
||
<DT><b>ALIFE</b>
|
||
|
||
<DD>
|
||
Alife takes yet another approach to exploring the mysteries of
|
||
intelligence. It has many aspects similar to EC and
|
||
connectionism, but takes these ideas and gives them a
|
||
meta-level twist. Alife emphasizes the development of
|
||
intelligence through <i>emergent</i> behavior of <i>complex
|
||
adaptive systems</i>. Alife stresses the social or group
|
||
based aspects of intelligence. It seeks to understand life and
|
||
survival. By studying the behaviors of groups of 'beings' Alife
|
||
seeks to discover the way intelligence or higher order
|
||
activity emerges from seemingly simple individuals. Cellular
|
||
Automata and Conway's Game of Life are probably the most
|
||
commonly known applications of this field.
|
||
</DD>
|
||
|
||
<P></P>
|
||
|
||
<DT>Tierra<BR>
|
||
Web site: <A HREF="http://www.hip.atr.co.jp/~ray/tierra/tierra.html">www.hip.atr.co.jp/~ray/tierra/tierra.html</A> <br>
|
||
FTP site: <A HREF="ftp://alife.santafe.edu/pub/SOFTWARE/Tierra/">alife.santafe.edu/pub/SOFTWARE/Tierra/</A><BR>
|
||
Alternate FTP site: <a href="ftp://ftp.cc.gatech.edu/ac121/linux/science/biology/">ftp.cc.gatech.edu/ac121/linux/science/biology/</a>
|
||
|
||
<DD>
|
||
Tierra's written in the C programming language. This source
|
||
code creates a virtual computer and its operating system,
|
||
whose architecture has been designed in such a way that the
|
||
executable machine codes are evolvable. This means that the
|
||
machine code can be mutated (by flipping bits at random) or
|
||
recombined (by swapping segments of code between algorithms),
|
||
and the resulting code remains functional enough of the time
|
||
for natural (or presumably artificial) selection to be able to
|
||
improve the code over time.
|
||
</DD>
|
||
|
||
</DL>
|
||
|
||
<hr>
|
||
|
||
<DL>
|
||
|
||
<DT><B>AUTONOMOUS AGENTS</B>
|
||
|
||
<DD>
|
||
Also known as intelligent software agents or just agents, this
|
||
area of AI research deals with simple applications of small
|
||
programs that aid the user in his/her work. They can be mobile
|
||
(able to stop their execution on one machine and resume it on
|
||
another) or static (live in one machine). They are usually
|
||
specific to the task (and therefore fairly simple) and meant
|
||
to help the user much as an assistant would. The most popular
|
||
(ie. widely known) use of this type of application to date are
|
||
the web robots that many of the indexing engines
|
||
(eg. webcrawler) use.
|
||
</DD>
|
||
|
||
<P></P>
|
||
|
||
<DT>Ara<BR>
|
||
Web site: <A HREF="http://www.uni-kl.de/AG-Nehmer/Ara/">www.uni-kl.de/AG-Nehmer/Ara/</A>
|
||
|
||
<DD>
|
||
Ara is a platform for the portable and secure execution of
|
||
mobile agents in heterogeneous networks. Mobile agents in this
|
||
sense are programs with the ability to change their host
|
||
machine during execution while preserving their internal
|
||
state. This enables them to handle interactions locally which
|
||
otherwise had to be performed remotely. Ara's specific aim in
|
||
comparison to similar platforms is to provide full mobile
|
||
agent functionality while retaining as much as possible of
|
||
established programming models and languages.
|
||
</DD>
|
||
</DL>
|
||
|
||
<!--===================================================================-->
|
||
<P> <hr> <P>
|
||
<center><H5>Copyright © 1997, John Eikenberry<BR>
|
||
Published in Issue 19 of the Linux Gazette, July 1997</H5></center>
|
||
|
||
<!--===================================================================-->
|
||
<P> <hr> <P>
|
||
<A HREF="./index.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
|
||
ALT="[ TABLE OF CONTENTS ]"></A>
|
||
<A HREF="../index.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
|
||
ALT="[ FRONT PAGE ]"></A>
|
||
<A HREF="./hallways.html"><IMG SRC="../gx/back2.gif"
|
||
ALT=" Back "></A>
|
||
<A HREF="./program.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
|
||
<P> <hr> <P>
|
||
|
||
<H4>
|
||
"Linux Gazette...<I>making Linux just a little more fun!</I>"
|
||
</H4>
|
||
|
||
<P> <HR> <P>
|
||
<!--===================================================================-->
|
||
|
||
<center>
|
||
<H2>Linux: For Programmer Only--NOT!</H2>
|
||
<H4>By Mike List,
|
||
<a href="mailto:troll@net-link.net">troll@net-line.net</a></H4>
|
||
</center>
|
||
<P><HR>
|
||
|
||
|
||
<p>A couple of weeks ago, I was in a computer repair shop, trying to get a
|
||
deal on some hardware. The owner was trying to sell me on how cool Win95 is. I told
|
||
him I run Linux, then gave him the same hard/soft sell I give to every
|
||
one that I think might have use for Linux. I'm just a glutton for
|
||
punishment that way. He looked at me blankly, and said Unix is a
|
||
programmer's OS and it's not good for the average user. My turn to look
|
||
blankly, "Apparently that means that MS is an illiterate's OS, and not
|
||
good for the educated user". I didn't say that but I thought it
|
||
very loudly, and the conversation was over....
|
||
|
||
<p>I should have been more understanding of his attitude. Part of the reason
|
||
that Linux hasn't become more mainstream is the belief that you must be a
|
||
highly trained programmer to make it run. That simply isn't the case.
|
||
|
||
<p>I hope to dispel some of this notion by pointing out my personal
|
||
experience with Linux. I am not a programmer, I can barely write a good
|
||
shell script, but I am happy as a clam with my Slackware 3.2 beta
|
||
installation and only very infrequently boot to the DOS/WFWG 3.11
|
||
partition.
|
||
|
||
<p>Programming consists of writing code and compiling it, and
|
||
very little of this is required to effectively use Linux. Although many
|
||
applications are distributed as source code, the source code in most cases
|
||
require very little modification. Compiling source code, moreover is not
|
||
as complicated as it might seem. One command, "make" can usually
|
||
accomplish this compilation and the advice to inspect MakeFiles can
|
||
largely be ignored(I probably should be horsewhipped for the previous
|
||
statement, but in my experience it's nonetheless true.).
|
||
There is no doubt that the Linux experience is enhanced by programming
|
||
ability. Linux does lend itself to source code modification, which is part
|
||
of the reason that its development and bug fixes have been so rapid, and
|
||
continuous improvement has been the hallmark of Linux, as well as the
|
||
whole of the GNU organization.
|
||
|
||
<p>It might be closer to the truth to consider Linux a hacker's medium,
|
||
simply because "hacker" means different things to different people.I do
|
||
not consider myself a hacker, although several MS Windows users have
|
||
described me that way. "Hacker", "cracker" and "programmer" are, in my
|
||
opinion often erroneously used as synonyms, by people who haven't acquired
|
||
computer skills beyond user level.
|
||
|
||
<p>This myth is probably furthered by manufacturers of the more well known
|
||
OS, although not necessarily deliberately. Salesmanship requires
|
||
manipulation of certain facts, and in the case of OS software, this is
|
||
even more likely to be the case. FACT: There is no perfect OS. FACT:
|
||
Proponents of any OS tend to misplace that fact, even Linux advocates.
|
||
|
||
<p>In my own family there exists a conflict of opinion regarding WFWG 3.11
|
||
vs. Linux, which in time is growing weaker, with Linux becoming more
|
||
acceptable to my wife and kids(I have admittedly used subversive
|
||
techniques to accomplish this goal, such as leaving the computer on all
|
||
the time, in X). In addition, I made sure to download programs that were
|
||
similar to ones used by my kids in WFWG, such as xpaint, and Netscape, as
|
||
well as several games, both SVGALIB, and X. Koules is a big favorite, as
|
||
is SASTEROIDS, and some while ago I had a flight sim, FLY8111, that was a
|
||
litle too challenging so it quietly disappeared. I have put the BSD text
|
||
based games on as an inducement to get my 15 year old foster son to read
|
||
with some enthusiasm, with moderate success. All I have to do now is find
|
||
a word processing application that my wife will accept readily, and I'll
|
||
experience little resistance, hopefully to commandeering the drive that's
|
||
currently loaded with DOS and WFWG.When I recompiled the kernel, I added
|
||
sound support, and even though I've had a little trouble installing a
|
||
sound playing program, the kids and I still make use of a pair of
|
||
extremely basic scripts based on the drivers README that allow us to
|
||
record and playback music. My sound card is an old eight bit SoundBlaster
|
||
so the sound quality isn't great, but I used it to rehearse the song I
|
||
sang at my oldest daughter's wedding, to good effect.
|
||
|
||
<p>Earlier, I stated that I'm not really capable of writing a decent shell
|
||
script, but very simple scripts similar to DOS batch files can be written
|
||
by nearly anyone, and examples of scripts abound on many sites, so
|
||
keystroke saving measures are available to any one who cares to try their
|
||
hand at it. The Linux Gazette, in particular has provided me with plenty
|
||
of template like scripts from which I have learned what little I know
|
||
about more advanced scripting.
|
||
|
||
<p>Linux advocates need, in my opinion to show patience with new users to a
|
||
greater degree than is currently the fashion. Banter among the initiated
|
||
has camaraderie value, but often puts off the prospective Linux convert.
|
||
When I was investigating Linux, I was told by one respondent to my usenet
|
||
posting "Do not meddle in the ways of wizards for their ways are subtle
|
||
and quick to anger." Hardly an encouraging statement, but with my
|
||
temperament it served to strengthen my resolve to show the SOB. I daresay
|
||
most casual computer users would not respond as I did, however.
|
||
|
||
<p>For the advancement of Linux I would recommend that you (Linux gurus)
|
||
choke on RTFM, unless you're sure that the person you are talking to has
|
||
acquired the skills needed to effectively read those FMs. My experience
|
||
has shown me that Linux distributions are almost as plug and play as
|
||
anything MS, IBM, Apple or anyone else has to offer. This provides a
|
||
jumping off point that will motivate users to learn skills that they
|
||
previously thought to be beyond them. By drawing them into Linux operation
|
||
slowly, they may become capable programmers, at which point they will have
|
||
made it their OS. A programmer's OS.
|
||
|
||
<!--===================================================================-->
|
||
<P> <hr> <P>
|
||
<center><H5>Copyright © 1997, Mike List<BR>
|
||
Published in Issue 19 of the Linux Gazette, July 1997</H5></center>
|
||
|
||
<!--===================================================================-->
|
||
<P> <hr> <P>
|
||
<A HREF="./index.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
|
||
ALT="[ TABLE OF CONTENTS ]"></A>
|
||
<A HREF="../index.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
|
||
ALT="[ FRONT PAGE ]"></A>
|
||
<A HREF="./ai.html"><IMG SRC="../gx/back2.gif"
|
||
ALT=" Back "></A>
|
||
<A HREF="./qps.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
|
||
<P> <hr> <P>
|
||
|
||
<H4>
|
||
"Linux Gazette...<I>making Linux just a little more fun!</I>"
|
||
</H4>
|
||
|
||
<P> <HR> <P>
|
||
<!--===================================================================-->
|
||
|
||
|
||
<center><h1>QPS, A New Qt-Based Monitor</h1></center>
|
||
|
||
<center>
|
||
<h4><a href="mailto: layers@vax2.rainis.net">by Larry Ayers</a></h4>
|
||
</center>
|
||
<P>
|
||
<hr>
|
||
|
||
<center><h3>Introduction</h3></center>
|
||
|
||
<p>The Qt C++ software development toolkit, by Norway's Troll Tech, has been
|
||
available long enough now that applications are beginning to appear which use
|
||
Qt rather than Motif, Xlib or Tcl/TK. Programs developed with Qt have an
|
||
identifiable and distinctive appearance, with some resemblance to both Windows
|
||
and Motif. There has been some resistance in the Linux community to
|
||
widespread adoption of the toolkit due to its hybrid licensing arrangement.
|
||
The toolkit is freely available in the Linux version, and its use in the
|
||
development of free, GNU-ish software is free and unrestricted, but for other
|
||
platforms and for commercial Linux software Qt is a commercial product.
|
||
|
||
<p>Remember when Tcl/Tk began to become widely used a couple of years ago?
|
||
Applications and utilities written with the toolkit began to proliferate, one
|
||
reason being that the learning curve is relatively gentle and a quick X
|
||
interface to a command-line utility could be contrived in a short time. C
|
||
programmers found that the guts of a program could be written in C, while the
|
||
tricky X-windows interface could be quickly put together with Tcl/Tk. This
|
||
benefited the Linux community as a whole, making it easier for new users and
|
||
developers to gain a foothold on the sometimes forbiddingly steep unix
|
||
terrain.
|
||
|
||
<p>Qt is an entirely different sort of toolkit than Tk, since it is based on
|
||
C++ and doesn't have the interpreted script layer of Tk. (It more closely
|
||
resembles Bruce Wampler's <a href="http://www.cs.umn.edu/~wampler">V</a>
|
||
package, described in the Dec. 1996 issue of Linux Journal.) In order to run QT
|
||
applications the <em>libqt</em> shared lib must be available as well as a
|
||
small executable, <em>moc</em>. The Qt header (include) files are needed as
|
||
well to compile these applications from scratch. The Qt source package is
|
||
available from <a href="ftp://ftp.troll.no/qt">the Troll Tech FTP site</a>.
|
||
Many small sample applications and demos, as well tutorials and ample
|
||
documentation, are included in the package.
|
||
|
||
<center><h3>QPS</h3></center>
|
||
|
||
<p><a href="mailto: f91-men@nada.kth.se">Mattias Engdeg<65>rd</a> has recently
|
||
written and released a process monitor similar to <em>top</em>, the classic
|
||
interface to <em>ps</em>. <em>Top</em>, though a character-mode application,
|
||
is commonly run in an xterm or rxvt window in an X session. There is one
|
||
problem with <em>top</em> in a window; scrolling down to the bottom of the
|
||
process list doesn't work, so the entries at the bottom are inaccessible
|
||
without resizing the window. There may be a way to do this, but I haven't
|
||
been able to find one. A minor issue, I suppose, since the
|
||
ordering of the entries can be easily toggled so that either the most
|
||
memory-intensive or the most CPU-intensive processes appear at the top.
|
||
|
||
<p>Qps is a more X-friendly application than <em>top</em>, with scrollbars and
|
||
a mouse-oriented interface. Clicking on any of the header categories, such as
|
||
%CPU, SIZE, or %MEM, will sort the processes in descending order.
|
||
<kbd>Alt-k</kbd> will kill a highlighted process. A series of bar-graphs
|
||
along with an xload-like meter form a status bar at the top of the window.
|
||
This can be toggled on and off from the menu-bar. When Qps is iconified the
|
||
icon is the small xload-like pane from the status-bar, which is a nice touch.
|
||
|
||
<p>Here's a screenshot:<br>
|
||
<p>
|
||
|
||
<img alt="Qps screenshot" src="./gx/ayers/qps.gif">
|
||
<hr>
|
||
|
||
<p>Qt applications don't use the X resources typical of most X programs; one
|
||
result of this is that Qps seems to be confined to the default white, gray,
|
||
and black color scheme. It <em>can</em> generate a resource file in your home
|
||
directory which specifies which fields you'd like to see and whether the
|
||
status-bar should be visible or not.
|
||
|
||
<p>Qps could be thought of as a sort of second-generation Linux utility,
|
||
written for users who rarely work from the console and boot directly into an X
|
||
session. It should fit in well with the <a href="http://www.kde.org">KDE</a>
|
||
suite of applications, which are also being developed with Qt. Though it uses
|
||
more memory than <em>top</em> in an rxvt window, I find myself using it often
|
||
while running X. I think this is a solid, dependable application and deserves
|
||
attention from the Linux community.
|
||
|
||
<center><h3>Availability</h3></center>
|
||
|
||
<p>Currently the Qps-1.1 source is in the Sunsite
|
||
<a href="ftp://sunsite.unc.edu/pub/Linux/Incoming">Incoming</a> directory, but
|
||
will most likely end up in the
|
||
<a href="ftp://sunsite.unc.edu/pub/Linux/system/status">status</a> directory.
|
||
An alternate Swedish site is
|
||
<a href="ftp://ptah.lnf.kth.se/pub/qps">here</a>.
|
||
|
||
|
||
<!--===================================================================-->
|
||
<P> <hr> <P>
|
||
<center><H5>Copyright © 1997, Larry Ayers<BR>
|
||
Published in Issue 19 of the Linux Gazette, July 1997</H5></center>
|
||
|
||
<!--===================================================================-->
|
||
<P> <hr> <P>
|
||
<A HREF="./index.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
|
||
ALT="[ TABLE OF CONTENTS ]"></A>
|
||
<A HREF="../index.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
|
||
ALT="[ FRONT PAGE ]"></A>
|
||
<A HREF="./program.html"><IMG SRC="../gx/back2.gif"
|
||
ALT=" Back "></A>
|
||
<A HREF="./unrpm.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
|
||
<P> <hr> <P>
|
||
|
||
<H4>
|
||
"Linux Gazette...<I>making Linux just a little more fun!</I>"
|
||
</H4>
|
||
|
||
<P> <HR> <P>
|
||
<!--===================================================================-->
|
||
|
||
<center><h1>The UnRpm-Install Package</h1></center>
|
||
<center>
|
||
|
||
<h4><a href="mailto: layers@vax2.rainis.net">by Larry Ayers</a></h4>
|
||
</center>
|
||
|
||
<P><hr>
|
||
<center><h3>Introduction</h3></center>
|
||
|
||
<p>No matter what distribution of Linux you have installed, there will come a
|
||
time when you would like to install a package in one of the other
|
||
distribution's formats. No one distribution has available every possible
|
||
package, and the updates to packages often depend on a volunteer's inclination
|
||
and time constraints.
|
||
|
||
<p>On a reasonably current and well-maintained Linux system, most of the
|
||
quality source-code packages will compile without much effort beyond perusal
|
||
of the README and INSTALL files. In other words, <em>*.rpm</em> and
|
||
<em>*.deb</em> packages aren't vitally necessary, though the ease of upgrading
|
||
or removal possible with these packages makes them a time-saving convenience.
|
||
|
||
<p>But few people have both the time and/or inclination to compile every new
|
||
program from source. It <em>does</em> take more time than using a precompiled
|
||
package, and often a package maintainer will have access to patches which
|
||
haven't yet been incorporated into an official release. One of these patches
|
||
might be just what it takes to insure a successful installation on your
|
||
system! Therefore it stands to reason that the more different genera of
|
||
precompiled packages you have available, the wider the pool of available
|
||
software.
|
||
|
||
<p>A year and a half ago I was running a Slackware 3.0 system, but had used
|
||
Redhat just long enough to appreciate the value of an <b>rpm</b> package. As I
|
||
remember, there were a few pieces of software which I was unable, no matter
|
||
what tweaking I did, to successfully compile. The <b>rpm</b>'s available for those
|
||
packages were tempting, but I didn't want to start from scratch and reinstall
|
||
the Redhat Linux distribution just for a few packages. Poking around the
|
||
Redhat FTP site, I saw that the source for the then-current version of <b>rpm</b>
|
||
was available, and after various trials and tribulations I managed to
|
||
successfully compile and install it. The crucial factor which made it all
|
||
work was downloading and installing a newer version of <i>cpio</i>, which was
|
||
right there in the Redhat <b>rpm</b> directory. It wasn't the easiest installation
|
||
I've ever done, but I don't blame the folks at Redhat for not making it a
|
||
no-brainer. After all, they evidently worked long and hard developing the <b>rpm</b>
|
||
package system and they surely wanted to leverage its value in influencing
|
||
users to buy their distribution. Redhat is to be commended for resisting
|
||
purely commercial urges and making <b>rpm</b> freely available.
|
||
|
||
<p>Two distributions later, I never have gotten around to reinstalling <b>rpm</b>,
|
||
partly because the Debian distribution has a utility called <b>alien</b>,
|
||
which will convert an <em>*.rpm</em> file into a <em>*.deb</em> file. This is
|
||
a nice utility, but sometimes I'd just like to poke around inside a package
|
||
and see what's there without actually installing it. Both <b>rpm</b> and Debian's
|
||
<b>dpkg</b> utility have command-line switches for just listing the
|
||
contents, or extracting individual files from a package. These aren't the
|
||
sort of switches I would use often enough to memorize, and it's a pain to read
|
||
the man page each time. So I gradually meander my way to the point of this
|
||
article...
|
||
|
||
<center><h3>UnRpm-Install</h3></center>
|
||
|
||
<p>Recently, in nearly daily updates, <a href="mailto: robotti@pop.erols.com">
|
||
Kent Robotti</a> has been releasing to the Sunsite archive site a
|
||
package of programs and scripts which simplify working with these various
|
||
package formats. UnRpm is most useful when used in conjunction with the
|
||
<b>Midnight Commander</b> file manager, as one component of the package is a
|
||
set of entries meant to be appended to the <em>mc</em> user menu.
|
||
|
||
<p>This is what the package includes:<br>
|
||
|
||
<ul>
|
||
<li>the version of <b>cpio</b> which works well with <b>rpm</b>
|
||
<li>two shell scripts from the Slackware distribution, <b>installpkg</b>
|
||
and <b>removepkg</b>
|
||
<li><b>rpm2cpio</b>, a program from Redhat which converts an <b>rpm</b>
|
||
archive to a <b>cpio</b> archive
|
||
<li><b>dpkgdeb</b>, a program from the Debian distribution which unpacks,
|
||
packs, or provides information about a Debian archive file
|
||
<li><b>unrpm</b> and <b>undeb</b>, two shell scripts which can either be
|
||
used as is or be called by the <b>Midnight Commander</b>.
|
||
<li><b>Update.mc</b>, a shell script which will append entries for the above
|
||
scripts and programs to the <kbd>/usr/lib/mc/mc.menu</kbd> file
|
||
<li><b>Install</b>, a shell script which installs the above binaries and
|
||
shell scripts, and also thoughtfully renames any pre-existing
|
||
equivalents in case you may want to back out any of the installed files
|
||
</ul>
|
||
|
||
<p>The earlier versions of UnRpm-Install included statically-linked binaries, no
|
||
doubt to make them usable by a wider variety of users, but with the
|
||
disadvantage of large binaries. Since most systems have compatible
|
||
<em>libc</em> versions installed, which is the only library linked with the
|
||
binaries, recent versions have included the smaller dynamically-linked
|
||
versions.
|
||
|
||
<p>The <b>Midnight Commander</b> in its recent incarnations has excellent
|
||
support built-in for treating these various archive formats as virtual
|
||
file-systems, allowing the user to browse through their contents without
|
||
actually expanding them. The menu entries provided by UnRpm expand upon these
|
||
capabilities, making it easier than ever to convert one format to another and
|
||
to see just what an archive will install on your system.
|
||
|
||
<p>There's nothing in UnRpm-Install which you couldn't gather up yourself, from
|
||
various FTP sites or distribution cd's. What makes the package valuable is
|
||
that Kent Robotti has done this for you, and presented these disparate
|
||
binaries and scripts as a coherent whole, bound together by the Midnight
|
||
Commander used as archive manager.
|
||
|
||
<center><h3>Availability</h3></center>
|
||
|
||
<p>Various versions of UnRpm-Install are still in the /pub/Linux/Incoming directory of
|
||
the <a href="ftp://sunsite.unc.edu/pub/Linux/Incoming">Sunsite</a> FTP
|
||
archive, but the most recent version will eventually make its way into
|
||
<a href="ftp://sunsite.unc.edu/pub/Linux/utils/compress">the archive
|
||
utility</a> directory.
|
||
|
||
|
||
<!--===================================================================-->
|
||
<P> <hr> <P>
|
||
<center><H5>Copyright © 1997, Larry Ayers<BR>
|
||
Published in Issue 19 of the Linux Gazette, July 1997</H5></center>
|
||
|
||
<!--===================================================================-->
|
||
<P> <hr> <P>
|
||
<A HREF="./index.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
|
||
ALT="[ TABLE OF CONTENTS ]"></A>
|
||
<A HREF="../index.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
|
||
ALT="[ FRONT PAGE ]"></A>
|
||
<A HREF="./qps.html"><IMG SRC="../gx/back2.gif"
|
||
ALT=" Back "></A>
|
||
<A HREF="./booting.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
|
||
<P> <hr> <P>
|
||
|
||
<H4>
|
||
"Linux Gazette...<I>making Linux just a little more fun!</I>"
|
||
</H4>
|
||
|
||
<P> <HR> <P>
|
||
<!--===================================================================-->
|
||
|
||
<center>
|
||
<H2>Single-User Booting Under Linux</H2>
|
||
<H4>By John Gatewood Ham,
|
||
<a href="mailto:zappaman@alphabox.compsci.buu.ac.th">zappaman@alphabox.compsci.buu.ac.th</a></H4>
|
||
</center>
|
||
<P><HR>
|
||
I was trained as a system administrator on HP, IBM, and Sun workstations
|
||
while working as a DRT consultant assigned to Informix as an alpha-tester.
|
||
There I learned the need for a true single-user operating mode in Unix.
|
||
When I tried to use the single user mode with Linux, it did not work in the
|
||
way that I expected. After many, many reboots I worked out the right
|
||
configuration to support a true single-user mode on the distribution I was
|
||
using, Slackware 3.2, by modifying the boot process.
|
||
</P>
|
||
<P>
|
||
This article will now explain how to setup the bootup process for Linux so
|
||
that single-user mode really works if you are using the Slackware 3.2
|
||
distribution (or a derivative). I will begin by assuming that your kernel
|
||
is correctly configured and that the <CODE>init</CODE> program starts successfully.
|
||
See the Installation-HOWTO at
|
||
<A HREF=ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/Installation-HOWTO><code>ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/Installation-HOWTO</code></A>
|
||
for help to get this far. Once you have a system that boots, however, you
|
||
have only begun. Why? Most distributions will give you a generic set of
|
||
initialization scripts that are designed to work for an average installation.
|
||
You will want to customize this in order to run extra things you want and/or
|
||
to prevent running things you do not want. With the dozen or so standard
|
||
startup scripts things can seem confusing, but after you read this article
|
||
you should be able to understand enough to create a custom environment
|
||
when you boot that exactly suits you.
|
||
</P>
|
||
<P>
|
||
As I stated earlier, I will begin by assuming that <CODE>init</CODE> has started
|
||
successfully. It will examine the file <CODE>/etc/inittab</CODE> to determine
|
||
what to do. In that file are located the lines to activate your login
|
||
devices such as terminals, modems, and your virtual consoles. Leave that
|
||
stuff alone. What we are interested in are the lines which call the
|
||
startup/shutdown scripts. These lines will look something like this:
|
||
</P>
|
||
<PRE>
|
||
# Default runlevel.
|
||
id:3:initdefault:
|
||
|
||
# System initialization (runs when system boots).
|
||
si::sysinit:/etc/rc.d/rc.S
|
||
|
||
# Script to run when going single user (runlevel 1).
|
||
l1:1:wait:/etc/rc.d/rc.K
|
||
|
||
# Script to run when going single user (runlevel S or s)
|
||
mm:S:wait:/etc/rc.d/rc.K2
|
||
|
||
# Script to run when going multi user.
|
||
rc:23456:wait:/etc/rc.d/rc.M
|
||
|
||
# Runlevel 0 halts the system.
|
||
l0:0:wait:/etc/rc.d/rc.0
|
||
|
||
# Runlevel 6 reboots the system.
|
||
l6:6:wait:/etc/rc.d/rc.6
|
||
</PRE>
|
||
<P>
|
||
The comments are present and are very helpful. First you need to determine
|
||
your default runlevel. In this case it is 3. The format of the <CODE>/etc/inittab</CODE>
|
||
file section we are looking at is simple. Blank lines are ignored. Lines
|
||
with '#' as the first character are comments and are ignored. Other lines
|
||
have 4 parts separated by the colon character. These parts are 1. symbolic
|
||
label, 2. runlevel, 3. action and 4.command to run. These are documented in
|
||
the section 5 manual page for <CODE>/etc/inittab</CODE> (<CODE>man 5 inittab</CODE>). First
|
||
we must find a line with an action of <CODE>initdefault</CODE>, and then see what runlevel
|
||
it has. That will be the default runlevel. Obviously you should not have 2
|
||
lines that have <CODE>initdefault</CODE> as the action in an <CODE>/etc/inittab</CODE> file. Once you know
|
||
the default runlevel, you will be able to know what <CODE>/etc/inittab</CODE> entries
|
||
will be processed by <CODE>init</CODE>. The 1 runlevel is considered single-user
|
||
maintenance mode, but it supported multiple simultaneous logins in virtual
|
||
terminals with the default <CODE>/etc/inittab</CODE> on my systems. You can prevent this by
|
||
removing the 1 from the getty lines of the tty2, tty3, tty4, etc. The 3
|
||
runlevel is considered the normal multi-user mode with full networking
|
||
support. The S runlevel is supposed to be true single-user, and you can
|
||
theoretically enter that runlevel using the <CODE>lilo</CODE> parameter
|
||
<CODE>single</CODE>. However, for the Slackware 3.2 distribution, that does
|
||
not put you in a single-user mode as you would expect, but instead you wind
|
||
up in runlevel 3. The <CODE>/etc/inittab</CODE> file I show here does not have that problem
|
||
however. Once you have read this article you can change the system to
|
||
behave in the expected manner. So we know we will go to runlevel 3. That
|
||
means <CODE>init</CODE> will perform every command in the <CODE>/etc/inittab</CODE> file that has a <CODE>sysinit</CODE>,
|
||
then <CODE>boot</CODE>, or <CODE>bootwait</CODE>, and finally any entries for our runlevel 3. When you
|
||
want to run a script when entering a runlevel, it doesn't make sense to have
|
||
more than one script line in the <CODE>/etc/inittab</CODE> file for that level. Instead, you
|
||
should put everything in 1 script, or call scripts from within the script
|
||
mentioned in the <CODE>/etc/inittab</CODE> file using the dot method. Once thing to note is
|
||
that field 2, the runlevel field, can have more than 1 runlevel specified.
|
||
The <CODE>init</CODE> program will first run the <CODE>si</CODE> entry
|
||
(and we will wait for it to finish running <CODE>/etc/rc.d/rc.S</CODE>) since it has
|
||
<CODE>sysinit</CODE> (which implies <CODE>wait</CODE>) in the third field. Then it will run everything
|
||
with 3 specified. So in our example file we will run the <CODE>si</CODE> target, then
|
||
the <CODE>rc</CODE> target (and we will wait for it to finish running the
|
||
<CODE>/etc/rc.d/rc.M</CODE> script since the third field is <CODE>wait</CODE>), and finally
|
||
we it will do the <CODE>c1</CODE> through <CODE>c6</CODE> targets which set up the virtual ttys during
|
||
a normal boot.
|
||
</P>
|
||
<P>
|
||
If we boot (via <CODE>lilo</CODE>) and add the <CODE>single</CODE>
|
||
parameter, we will still run the <CODE>si</CODE> target (<CODE>/etc/rc.d/rc.S</CODE>) and wait for it to
|
||
complete, but then we will run the <CODE>mm</CODE> target (<CODE>/etc/rc.d/rc.K2</CODE>). Keep in mind
|
||
that runlevel 1 and runlevel S are essentially the same when you enter them,
|
||
but how you get there is very different. Runlevel 1 can be entered by using
|
||
the command <CODE>/sbin/telinit 1</CODE>, but <CODE>/sbin/telinit s</CODE> will send you to runlevel 5
|
||
often for some reason (some kind of bug). Runlevel 1 will give you a normal
|
||
log in, and allows 1 user (<I>any</I> 1 user) to log in at the console.
|
||
With this setup, runlevel S will give you a special root-only login that
|
||
allows only root to use the console. Since only root can log in, only a
|
||
special password prompt is displayed. If you press enter or ctl-D, the system
|
||
will return to runlevel 3. This root-only login is accomplished by using
|
||
the <CODE>/bin/sulogin</CODE> program. Runlevel S is probably what you want when you think
|
||
single-user, but you have to reboot the machine and use <CODE>lilo</CODE> and have the
|
||
single parameter to make it work. You can use runlevel 1 to accomplish the
|
||
same things, but remember you will have to manually return to runlevel 3
|
||
when you are done with another call to <CODE>/sbin/telinit 3</CODE> or a reboot, and you
|
||
must insure that nobody else can get to the console but the root user.
|
||
WARNING: The true single-user mode entered with the single parameter to
|
||
<CODE>lilo</CODE> with my <CODE>/etc/inittab</CODE> and <CODE>/etc/rc.d/rc.K2</CODE> will support only 1 console and no other
|
||
virtual terminals. Do not run anything that locks up the terminal!
|
||
</P>
|
||
<P>
|
||
Ok, so what do we know now? We know what scripts <CODE>init</CODE> will call and when they
|
||
will be called. But what can be in those scripts? The scripts should be
|
||
written for bash unless you are a real guru and KNOW the other shell you
|
||
wrote scripts for will be available during boot. There is nothing preventing
|
||
you from using <CODE>perl</CODE> or <CODE>tcsh</CODE> or whatever, but traditionally most everyone uses
|
||
<CODE>bash</CODE> scripts (ok, ok, Bourne shell scripts) for unix boot scripts. The <CODE>/etc/rc.d/rc.S</CODE>
|
||
script which is called at system boot time should take care of things like
|
||
<CODE>fsck</CODE>'ing your file systems, mounting them, and starting up swapping and other
|
||
essential daemons. These are things that you need independent of runlevel.
|
||
The <CODE>/etc/rc.d/rc.M</CODE> script which is called when you enter runlevel 3 should start all
|
||
the processes that remain that you usually need during normal system
|
||
operation EXCEPT things like <CODE>getty</CODE>. Processes that must be restarted whenever
|
||
they stop running like <CODE>getty</CODE> should be placed in the <CODE>/etc/inittab</CODE> file instead of
|
||
being started by a boot script. So what is in a typical <CODE>/etc/rc.d/rc.M</CODE> script?
|
||
Usually configuring the network , starting web servers, sendmail, and
|
||
anything else you want to always run like database servers, quota
|
||
programs, etc.
|
||
</P>
|
||
<P>
|
||
The only startup script I mention in my <CODE>/etc/inittab</CODE> that is not included in the
|
||
Slackware 3.2 distribution is <CODE>/etc/rc.d/rc.K2</CODE>, and it is merely a modified version
|
||
of <CODE>/etc/rc.d/rc.K</CODE> set up for single user mode. Remember this is the startup script
|
||
that will be used if you choose to enter the <CODE>single</CODE> parameter to <CODE>lilo</CODE>. At
|
||
the end of this file you will see a line:
|
||
</P>
|
||
<PRE>
|
||
exec /bin/sulogin /dev/console
|
||
</PRE>
|
||
<P>
|
||
This will replace the current process which is running the script with the
|
||
<CODE>/bin/sulogin</CODE> program. This means, of course, that this has to be the last
|
||
line in your script, since nothing after this line will be processed by <CODE>bash</CODE>.
|
||
After that program starts, it displays a message to either enter the root
|
||
password or press ctl-D. If you enter the correct root password, you will
|
||
be logged in as root in a true single-user mode. Be careful, though,
|
||
because when you exit that shell the machine will go into runlevel 3.
|
||
If you want to reboot before entering runlevel 3 you must remember to do
|
||
it (via <CODE>shutdown</CODE>) instead of just exiting the shell. If you press ctl-D
|
||
instead of the root password, the system will enter runlevel 3. I have
|
||
changed the incorrect calls to <CODE>kill</CODE> to use the <CODE>killall5</CODE> program, since
|
||
the lines with <CODE>kill</CODE> caused <CODE>init</CODE> to be killed and a runlevel change was
|
||
happening incorrectly.
|
||
</P>
|
||
<P>
|
||
Well, I hope that this description of how I enabled my Linux machine to
|
||
have a single-user mode similar to that of the big-name workstations
|
||
proves helpful to you. Customizing your boot process is not too hard,
|
||
once you understand something about how the <CODE>/etc/inittab</CODE>
|
||
and <CODE>/etc/rc.d/*</CODE>
|
||
scripts work. Be sure you 1. backup your entire system, 2. have a boot
|
||
floppy, and 3. a rescue floppy that can restore the backup (or any
|
||
individual files) you made in step 1 using the boot floppy from step 2 to
|
||
boot the machine. If you make a 1 character typo you can prevent the
|
||
machine from booting, so the backup steps, while tedious, are really
|
||
necessary to protect yourself before you experiment.
|
||
</P>
|
||
<h1><CENTER>The Files</CENTER></h1>
|
||
<P>
|
||
Here are the files I used. Use at your own risk. They work for me, but
|
||
may need to be modified to work for you.
|
||
</P>
|
||
<hr>
|
||
<h2><Center><code>/etc/inittab</code></center></h2>
|
||
<PRE>
|
||
#
|
||
# inittab This file describes how the INIT process should set up
|
||
# the system in a certain run-level.
|
||
#
|
||
# Version: @(#)inittab 2.04 17/05/93 MvS
|
||
# 2.10 02/10/95 PV
|
||
#
|
||
# Author: Miquel van Smoorenburg, <a href="mailto:miquels@drinkel.nl.mugnet.org">miquel@drinkel.nl.jugnet.org</a>
|
||
# Modified by: Patrick J. Volkerding, <a href="mailto:volkerdi@ftp.cdrom.com">volkerdi@ftp.cdrom.com</a>
|
||
# Modified by: John Gatewood Ham, <a href="mailto:zappaman@alphabox.compsci.buu.ac.th">zappaman@alphabox.compsci.buu.ac.th</a>
|
||
#
|
||
# Default runlevel.
|
||
id:3:initdefault:
|
||
|
||
# System initialization (runs when system boots).
|
||
si::sysinit:/etc/rc.d/rc.S
|
||
|
||
# Script to run when going maintenance mode (runlevel 1).
|
||
l1:1:wait:/etc/rc.d/rc.K
|
||
|
||
# Script to run when going single user (runlevel s)
|
||
mm:S:wait:/etc/rc.d/rc.K2
|
||
|
||
# Script to run when going multi user.
|
||
rc:23456:wait:/etc/rc.d/rc.M
|
||
|
||
# What to do at the "Three Finger Salute".
|
||
# make the machine halt on ctl-alt-del
|
||
ca::ctrlaltdel:/sbin/shutdown -h now "going down on ctl-alt-del"
|
||
|
||
# Runlevel 0 halts the system.
|
||
l0:0:wait:/etc/rc.d/rc.0
|
||
|
||
# Runlevel 6 reboots the system.
|
||
l6:6:wait:/etc/rc.d/rc.6
|
||
|
||
# What to do when power fails (shutdown to single user).
|
||
pf::powerfail:/sbin/shutdown -f +5 "THE POWER IS FAILING"
|
||
|
||
# If power is back before shutdown, cancel the running shutdown.
|
||
pg:0123456:powerokwait:/sbin/shutdown -c "THE POWER IS BACK"
|
||
|
||
# If power comes back in single user mode, return to multi user mode.
|
||
ps:S:powerokwait:/sbin/init 5
|
||
|
||
# The getties in multi user mode on consoles an serial lines.
|
||
#
|
||
# NOTE NOTE NOTE adjust this to your getty or you will not be
|
||
# able to login !!
|
||
#
|
||
# Note: for 'agetty' you use linespeed, line.
|
||
# for 'getty_ps' you use line, linespeed and also use 'gettydefs'
|
||
# we really don't want multiple logins in single user mode...
|
||
c1:12345:respawn:/sbin/agetty 38400 tty1 linux
|
||
c2:235:respawn:/sbin/agetty 38400 tty2 linux
|
||
c3:235:respawn:/sbin/agetty 38400 tty3 linux
|
||
c4:235:respawn:/sbin/agetty 38400 tty4 linux
|
||
c5:235:respawn:/sbin/agetty 38400 tty5 linux
|
||
c6:235:respawn:/sbin/agetty 38400 tty6 linux
|
||
|
||
# Serial lines
|
||
#s1:12345:respawn:/sbin/agetty 19200 ttyS0 vt100
|
||
#s2:12345:respawn:/sbin/agetty 19200 ttyS1 vt100
|
||
|
||
# Dialup lines
|
||
#d1:12345:respawn:/sbin/agetty -mt60 38400,19200,9600,2400,1200 ttyS0 vt100
|
||
#d2:12345:respawn:/sbin/agetty -mt60 38400,19200,9600,2400,1200 ttyS1 vt100
|
||
|
||
# Runlevel 4 used to be for an X-window only system, until we discovered
|
||
# that it throws init into a loop that keeps your load avg at least 1 all
|
||
# the time. Thus, there is now one getty opened on tty1. Hopefully no one
|
||
# will notice. ;^)
|
||
# It might not be bad to have one text console anyway, in case something
|
||
# happens to X.
|
||
x1:4:wait:/etc/rc.d/rc.4
|
||
|
||
# End of /etc/inittab
|
||
</PRE>
|
||
<hr>
|
||
<h2><Center><code>/etc/rc.d/rc.K</code></center></h2>
|
||
<PRE>
|
||
# /bin/sh
|
||
#
|
||
# rc.K This file is executed by init when it goes into runlevel
|
||
# 1, which is the administrative state. It kills all
|
||
# deamons and then puts the system into single user mode.
|
||
# Note that the file systems are kept mounted.
|
||
#
|
||
# Version: @(#)/etc/rc.d/rc.K 1.50 1994-01-18
|
||
# Version: @(#)/etc/rc.d/rc.K 1.60 1995-10-02 (PV)
|
||
#
|
||
# Author: Miquel van Smoorenburg <a href="mailto:miquels@drinkel.nl.mugnet.org">miquels@drinkel.nl.mugnet.org</a>
|
||
# Modified by: Patrick J. Volkerding <a href="mailto:volkerdi@ftp.cdrom.com">volkerdi@ftp.cdrom.com</a>
|
||
# Modified by: John Gatewood Ham <a href="mailto:zappaman@alphabox.compsci.buu.ac.th">zappaman@alphabox.compsci.buu.ac.th</a>
|
||
#
|
||
# Set the path.
|
||
PATH=/sbin:/etc:/bin:/usr/bin
|
||
|
||
# Kill all processes.
|
||
echo
|
||
echo "Sending all processes the TERM signal."
|
||
killall5 -15
|
||
echo -n "Waiting for processes to terminate"
|
||
for loop in 0 1 2 3 4 5 6 7 ; do
|
||
sleep 1
|
||
echo -n "."
|
||
done
|
||
echo
|
||
echo "Sending all processes the KILL signal."
|
||
killall5 -9
|
||
|
||
# Try to turn off quota and accounting.
|
||
if [ -x /usr/sbin/quotaoff ]
|
||
then
|
||
echo "Turning off quota.."
|
||
/usr/sbin/quotaoff -a
|
||
fi
|
||
if [ -x /sbin/accton ]
|
||
then
|
||
echo "Turning off accounting.."
|
||
/sbin/accton
|
||
fi
|
||
|
||
</PRE>
|
||
<hr>
|
||
<h2><Center><code>/etc/rc.d/rc.K2</code></center></h2>
|
||
<PRE>
|
||
# /bin/sh
|
||
#
|
||
# rc.K This file is executed by init when it goes into runlevel
|
||
# 1, which is the administrative state. It kills all
|
||
# deamons and then puts the system into single user mode.
|
||
# Note that the file systems are kept mounted.
|
||
#
|
||
# Version: @(#)/etc/rc.d/rc.K 1.50 1994-01-18
|
||
# Version: @(#)/etc/rc.d/rc.K 1.60 1995-10-02 (PV)
|
||
#
|
||
# Author: Miquel van Smoorenburg <a href="mailto:miquels@drinkel.nl.mugnet.org">miquels@drinkel.nl.mugnet.org</a>
|
||
# Modified by: Patrick J. Volkerding <a href="mailto:volkerdi@ftp.cdrom.com">volkerdi@ftp.cdrom.com</a>
|
||
# Modified by: John Gatewood Ham <a href="mailto:zappaman@alphabox.compsci.buu.ac.th">zappaman@alphabox.compsci.buu.ac.th</a>
|
||
#
|
||
# Set the path.
|
||
PATH=/sbin:/etc:/bin:/usr/bin
|
||
|
||
# Kill all processes.
|
||
echo
|
||
echo "Sending all processes the TERM signal."
|
||
killall5 -15
|
||
echo -n "Waiting for processes to terminate"
|
||
for loop in 0 1 2 3 4 5 6 7 ; do
|
||
sleep 1
|
||
echo -n "."
|
||
done
|
||
echo
|
||
echo "Sending all processes the KILL signal."
|
||
killall5 -9
|
||
|
||
# Try to turn off quota and accounting.
|
||
if [ -x /usr/sbin/quotaoff ]
|
||
then
|
||
echo "Turning off quota.."
|
||
/usr/sbin/quotaoff -a
|
||
fi
|
||
if [ -x /sbin/accton ]
|
||
then
|
||
echo "Turning off accounting.."
|
||
/sbin/accton
|
||
fi
|
||
|
||
# Now go to the single user level
|
||
exec /bin/sulogin /dev/console
|
||
</PRE>
|
||
<HR>
|
||
<address>
|
||
<A HREF="mailto:zappaman@alphabox.compsci.buu.ac.th">zappaman@alphabox.compsci.buu.ac.th</A>
|
||
<BR>
|
||
<A HREF="http://alphabox.compsci.buu.ac.th/~zappaman">Information about me.</A>
|
||
</address>
|
||
|
||
|
||
<!--===================================================================-->
|
||
<P> <hr> <P>
|
||
<center><H5>Copyright © 1997, John Gatewood Ham<BR>
|
||
Published in Issue 19 of the Linux Gazette, July 1997</H5></center>
|
||
|
||
<!--===================================================================-->
|
||
<P> <hr> <P>
|
||
<A HREF="./index.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
|
||
ALT="[ TABLE OF CONTENTS ]"></A>
|
||
<A HREF="../index.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
|
||
ALT="[ FRONT PAGE ]"></A>
|
||
<A HREF="./unrpm.html"><IMG SRC="../gx/back2.gif"
|
||
ALT=" Back "></A>
|
||
<A HREF="./trade.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
|
||
<P> <hr> <P>
|
||
|
||
<H4>
|
||
"Linux Gazette...<I>making Linux just a little more fun!</I>"
|
||
</H4>
|
||
|
||
<P> <HR> <P>
|
||
<!--===================================================================-->
|
||
|
||
|
||
<title>User Groups and Trade Shows: Lessons from the Atlanta Linux Showcase</title>
|
||
</head>
|
||
<h1 align="center">User Groups and Trade Shows</h1>
|
||
<h3 align="center">Lessons from the Atlanta Linux Showcase</h3>
|
||
<a href="http://www.ale.org/showcase/">
|
||
<p align="center"><img src="./gx/als2-sm.jpg" width="214" height="90" align="bottom" ></a><a href="mailto:lfs@eskimo.com">
|
||
|
||
<p align="center">by Andrew Newton</a>
|
||
<P><HR>
|
||
<p>Trade shows and expos are not at all uncommon in the computer industry. But not since the early
|
||
days of microcomputers, when CP/M was King and toggle switches were the user interface, have
|
||
user groups been heavily involved. So in the era of powerful non-commercial software, couldn't
|
||
the trade shows also be non-commercial?
|
||
|
||
<p>We, the members of the <a href="http://www.ale.org/">Atlanta Linux Enthusiasts (ALE)</a>, found out the answer is yes.
|
||
Originating from correspondence with <a href="http://www.li.org/">Linux International</a> for some local help for Linux vendors
|
||
at COMDEX and our own Linux demo fest (called the "Geek-Off") a year earlier, we put
|
||
together a non-commercial, user group organized trade show. On June 7, 1997, we put on the
|
||
largest Linux vendor showcase to date.
|
||
|
||
<p><strong>Get Started With The Essentials</strong>
|
||
|
||
<p>So let's say you, being the Linux activist of your community, want to do your bit to spread the
|
||
word. Where would you start?
|
||
|
||
<p>Although we didn't necessarily do this, we learned there are two essential things to get a Linux
|
||
trade show off the ground: 1) a time and place, and 2) a checking account. And in the words of
|
||
our own Marc Torres, once you have those two items, "the rest grows from there."
|
||
|
||
<p>It was a given that we would hold the Atlanta Linux Showcase as close to COMDEX as possible.
|
||
After all, this whole idea came from helping out the Linux vendors at COMDEX. Plus the idea
|
||
of getting the COMDEX crowd was good. We theorized that many people flying in for
|
||
COMDEX would stay over the following weekend to save on air fare. And they could easily
|
||
justify it if they were attending another computer show.
|
||
|
||
<p>Picking the place was a little more troublesome, but not impossible. We finally decided on The
|
||
Inforum because it was located only blocks away from the venue for COMDEX, was in
|
||
downtown Atlanta, and well known to many.
|
||
|
||
<p>Finally, the checking account is very important. As it turns out we didn't do this immediately
|
||
and paid the price in countless hours of meetings discussing logistics. A checking account is
|
||
important because it gives you a place from which to send money and, more importantly, a place
|
||
to receive money. People like it better when they can write checks to "Big Time Linux Event"
|
||
instead of "Bob Smurd."
|
||
|
||
<p>One of the major inhibitors behind our acquisition of a checking account was our incredible lack
|
||
of knowledge when it comes to the law. After all, we are a bunch of computer jocks, not
|
||
attorneys. We had many seemingly endless discussions on issues such as incorporation,
|
||
non-profit status, tax codes, the right to bear arms, etc. In the end, David Hamm, one of our most
|
||
active members, just ended up going to a bank and getting a new checking account under his
|
||
control. Incidentally, David became the treasurer.
|
||
|
||
<p align="center"><img src="./gx/ssc6b.jpg" width="313" height="521" align="bottom" >
|
||
|
||
<p align="center"><em>David Miller eyes a bottle of ALS Ale. </em>- Photo by Amy Ayers
|
||
|
||
<p><strong>Put Time On Your Side</strong>
|
||
|
||
<p>Unfortunately, we didn't. Of course, we had the COMDEX target date to shoot for giving us
|
||
little time between our mobilization and the event. If you can pick a date over six months out, do
|
||
so. There are multiple reasons for this, most of which have to do with reserving space.
|
||
|
||
<p>First, you must reserve space somewhere to hold your event. We lucked out in our case, but
|
||
many venues will require booking many months ahead of time, especially the ones that don't
|
||
often cost so much money such as college campuses and state buildings.
|
||
|
||
<p>Second, you must reserve space in print media for advertising and publicity. While we were able
|
||
to get ads in our local computer magazines and the event listed in some calendars, we did miss
|
||
deadlines elsewhere. You may have noticed there were no advertisements for the Atlanta Linux
|
||
Showcase in Linux Journal. We missed the deadline. In addition, it takes time to grease the
|
||
wheels for free publicity.
|
||
|
||
<p><em>A brief word about FREE PUBLICITY</em> - There is no such thing; you'll work for every last bit of
|
||
it. Free publicity means getting listed in upcoming events calendars and maybe an article or two
|
||
about Linux in the local paper with a small plug at the end for the event. If you do take the time
|
||
to pay for advertising, use the advertising representative as a way of getting your event some
|
||
extra publicity in that publication. Many publications put on the appearance that their articles are
|
||
completely disjoint from their advertising on the basis of journalistic ethics, but with the
|
||
exception of SSC that isn't true.
|
||
|
||
<p><em>A brief word about paid advertising</em> - It is like buying a used car. What an ad rep puts on a rate
|
||
card isn't necessarily the price you have to pay. Try talking them down. Again, this doesn't apply
|
||
to SSC.
|
||
|
||
<p><strong>Organize Your Volunteers</strong>
|
||
|
||
<p>We divided our group into two major camps, organizers and volunteers. The first were the
|
||
people that planned the event out for months and did a lot of the leg work. The second were the
|
||
people that showed up the day of the show and manned the registration desk, checked badges,
|
||
etc.
|
||
|
||
<p>You don't want to have too many organizers as it becomes difficult to manage a large group of
|
||
people over a large span of time. We divided up our group into teams of 3 or 4, with many
|
||
people being on 2 or more teams. This gave us what philosophical management types like to call
|
||
cross-functional teams. By having more than one person on a team, it helped insure no one
|
||
person was the only source of information or action.
|
||
|
||
<p>We had the following teams:
|
||
|
||
<ul>
|
||
<li>Vendor - contacted vendors</li>
|
||
<li>Talks - organized the speakers and presenters</li>
|
||
<li>Publicity - handled advertising and publicity</li>
|
||
<li>Finance - dealt with our mounds of gold</li>
|
||
<li>Logistics - managed booth layouts and site coordination</li>
|
||
</ul>
|
||
|
||
<p>In hind sight, we should have also created a "Registration" team to handle all the registrations for
|
||
both walk-in and pre-paid registrations. Our answer to this was to make the Talks team and the
|
||
Logistics team work together, which worked but not as smoothly as we would have liked. It is
|
||
better to have a group of people who are solely in charge of registration and aren't distracted with
|
||
other problems.
|
||
|
||
<p>We didn't solicit for volunteers until a month before our show. In retrospect, it probably should
|
||
have been two months. We gave our volunteers a briefing the day before the Showcase and had a
|
||
work schedule already printed when they arrived. We also required them to work 2 three-hour
|
||
shifts for manageability purposes and to keep the number of volunteers to a minimum but in the
|
||
end solicited for some more at the last minute (thanks Ben and Vicki).
|
||
|
||
<p><em>A brief note about Volunteers</em> - Treat them well, because they are working for free. And if you
|
||
do that, most will go the extra mile treating the attendees well and pulling those extra shifts or
|
||
duties you didn't anticipate (thanks James). Also put your "people-person" types at the
|
||
registration desk where they will likely be needed the most. More personable people will be able
|
||
to sell t-shirts and so forth much more easily (thanks Karen). Finally, thank your volunteers.
|
||
Everybody likes to be told they've done a good job (thanks everyone else).
|
||
|
||
<p>Another seemingly weird thing we did was to make our volunteers pay for the honor to work our
|
||
event. It seems odd, but it worked. The idea was to have them show us they weren't going to
|
||
volunteer and then back out on us at the last minute. In exchange for their $30, they got a polo
|
||
shirt and were able to see all the presentations at a lower price than anyone else. And the cash
|
||
flow didn't hurt either. While we didn't mandate this for the organizers, it wouldn't be a bad idea.
|
||
However, all the organizers did have to pay for their own shirts and many loaned hundreds of
|
||
dollars to the effort.
|
||
|
||
<p align="center"><img src="./gx/ssc3b.jpg" width="426" height="292" align="bottom" >
|
||
|
||
<p align="center"><em>Linus, Tove and Patricia meet Zeph Hull, a showcase volunteer. </em>- Photo by Amy Ayers
|
||
|
||
<p><strong>Coordinate Vendors</strong>
|
||
|
||
<p>Organize your vendor team so everybody knows which person is calling what company but only
|
||
one person is calling each. It is nice for everyone to know the status of a potential vendor. It is
|
||
not nice to have 3 separate people make 3 separate cold calls to the same potential vendor.
|
||
|
||
<p>When contacting vendors, use the phone as your primary means of communications and not
|
||
e-mail. While it seems e-mail would work, it is human nature to give it a much lower priority
|
||
than a phone call. We found many companies that ignored our e-mail's responded quite
|
||
positively to our phone calls.
|
||
|
||
<p>One of the things we should have done sooner was bill the vendors. We charged each vendor
|
||
$400 for a booth and sent them an invoice. While we were expecting one week turn turnarounds
|
||
on payment, the business world doesn't work that way. In many cases, paperwork and payments
|
||
can take up to 30 days to get through the accounting offices of some companies.
|
||
|
||
<p><strong>Get People To Talk</strong>
|
||
|
||
<p>We solicited for speakers and presenters over the comp.os.linux.announce news group. This had
|
||
to be done multiple times, but eventually the offers started rolling in. We also drew upon some
|
||
local talent. And in many cases, the vendors also wanted to give presentations.
|
||
|
||
<p>Getting speakers to volunteer was the easy part. Getting them to the Showcase was the difficult
|
||
part. We had to solicit money from sponsoring companies and the vendors in order to pay for the
|
||
travel and lodging expenses for Linus Torvalds, Eric Raymond, David Miller, Richard
|
||
Henderson, Miguel de Icaza, and the rest of the crew (and we still owe a debt of gratitude to
|
||
Digital and Caldera for all they did in this department).
|
||
|
||
<p>Once the money was appropriated, travel plans and hotel accommodations were made - at least
|
||
that's how it works in the ideal world. A lot of the travel costs were floated on the credit cards of
|
||
organizers until they could be reimbursed. Do make plane reservations and travel arrangements
|
||
as far ahead of time as possible; you can save on air fare that way.
|
||
|
||
<p><strong>Work The System</strong>
|
||
|
||
<p>This involves taking advantage of perks and getting the extras out of the people with whom you
|
||
are doing business. For example, we decided to also rent some conference rooms at the Days Inn
|
||
which was just next store to The Inforum. These conference rooms were used for Birds Of A
|
||
Feather sessions and impromptu meetings by our attendees. In order to secure a good price on
|
||
the room rental, we made an agreement with the hotel management that we would guarantee they
|
||
got a certain number of room bookings based on our event. We then set-up that hotel as our
|
||
"Official" hotel and asked most of our out-of-town guests to try the Days Inn first. In addition,
|
||
our attendees were able to get a reasonable rate at a downtown hotel. Our guest speakers were
|
||
also booked there. <a href="http://www.genietravel.com">
|
||
|
||
<p>Genie Travel</a> also became our "Official" travel agent. Genie gave us a certain percentage on
|
||
every flight booked through them, and their air fares were very reasonable. Although we didn't
|
||
take advantage of this until very late in the game, it would be very advantageous for us to do it
|
||
again. Genie Travel<strong> </strong>uses Linux in their day-to-day operations and probably would be very happy
|
||
to repeat this arrangement with another Linux event.
|
||
|
||
<p>Another good idea would be to solicit the help of other Linux users groups. Often other users
|
||
groups that are geographically close by may be able to help. Be sure to get them in on it early in
|
||
the planning stage. For instance, we solicited SALUG (Southern Alabama) and CHUGALUG
|
||
(Athens, GA), albeit at the last minute. Coordinating with other users groups also insures that
|
||
the Linux community isn't throwing a trade show every month in towns only 100 miles apart
|
||
(this stretches the resources of the Linux vendors and the enthusiasm these shows generate)..
|
||
|
||
<p>One last thing that can help is to have a Sugar-Daddy. In our case it was <a href="http://www.li.org/">Linux International</a>.
|
||
Jon "Maddog" Hall of Linux International helped get us credit through which we were able
|
||
secure our lease on the rooms at The Inforum. If you ask him nicely, he may do the same for
|
||
you.
|
||
|
||
<p><strong>Have Fun</strong>
|
||
|
||
<p>Keep in mind that organizing such an event is very hard word and requires a lot of time. We
|
||
estimate over 2000 man hours were spent by ALE members putting together our show. But with
|
||
any luck, your user group will be able to pull off a grand Linux event. And remember, have fun.
|
||
Don't hold your trade show to make money. Do it to spread the word of Linux and to cavort with
|
||
other like-minded Linux hobbyists.
|
||
|
||
<p>Finally, we'd like to thank all our volunteers, vendors, speakers, and organizers for helping out
|
||
with the Atlanta Linux Showcase. If you are interested in any videos of the presentations at the
|
||
1997 Atlanta Linux Showcase or t-shirts and polo shirts, please visit our web site at
|
||
<a href="http://www.ale.org/showcase/">http://www.ale.org/showcase/</a>. And if you have any questions, please feel free to send us e-mail
|
||
at <a href="mailto:ale-expo@cc.gatech.edu">ale-expo@cc.gatech.edu</a>.
|
||
|
||
<p align="center"><img src="./gx/greg2b.jpg" width="600" height="422" align="bottom" >
|
||
|
||
<p align="center"><em>Greg Hankins hangs out with Maddog and David Hamm.</em> - Photo by Amy Ayers
|
||
|
||
<!--===================================================================-->
|
||
<P> <hr> <P>
|
||
<center><H5>Copyright © 1997, Andrew Newton<BR>
|
||
Published in Issue 19 of the Linux Gazette, July 1997</H5></center>
|
||
|
||
<!--===================================================================-->
|
||
<P> <hr> <P>
|
||
<A HREF="./index.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
|
||
ALT="[ TABLE OF CONTENTS ]"></A>
|
||
<A HREF="../index.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
|
||
ALT="[ FRONT PAGE ]"></A>
|
||
<A HREF="./booting.html"><IMG SRC="../gx/back2.gif"
|
||
ALT=" Back "></A>
|
||
<A HREF="./python.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
|
||
<P> <hr> <P>
|
||
|
||
<H4>
|
||
"Linux Gazette...<I>making Linux just a little more fun!</I>"
|
||
</H4>
|
||
|
||
<P> <HR> <P>
|
||
<!--===================================================================-->
|
||
|
||
<center>
|
||
<H2>Using Python to Generate HTML Pages</H2>
|
||
<H4>By Richie Bielak,
|
||
<a href="mailto:richieb@netlabs.net">richieb@netlabs.net</a></H4>
|
||
</center>
|
||
<P><HR>
|
||
|
||
|
||
<h2>Introduction</h2>
|
||
|
||
<p>I have waited for a long time to set up my own Web site, mostly
|
||
because I didn't know what to put there that others may want to
|
||
see. Then I got an idea. Since I'm an avid reader and an aviation
|
||
enthusiast, I decided to create pages with a list of aviation books I
|
||
have read. My initial intention was to write reviews for each book.
|
||
<p>
|
||
|
||
Setting up the pages was easy to start with, but as I added more books
|
||
the maintenance became tedious. I had to update couple of indices with
|
||
the same data and I had to sort them by hand, and alphabetizing was
|
||
never my strong suit. I needed to find a better way.
|
||
<p>
|
||
|
||
Around the same time I became interested in the programming language
|
||
Python and it seemed that Python would be a good tool to automatically
|
||
generate the various HTML pages from a simple text file. This would
|
||
greatly simplify the updates of my book pages, as I would only add one
|
||
entry to one file and then create complete pages by running a Python
|
||
script.
|
||
<p>
|
||
|
||
I was attracted to Python for two main reasons: it's very good at
|
||
processing strings and it's object oriented. Of course the fact that
|
||
Python interpreter is free and that it runs on many different systems
|
||
helped. At first I installed Python on my Win95 machine, but I just
|
||
couldn't force myself to do any programming in the Windows
|
||
environment, even in Python. Instead I installed Linux and moved all
|
||
my Web projects there.
|
||
<p>
|
||
|
||
<h2>The Problem</h2>
|
||
|
||
The main goal of the program is to generate three different book
|
||
indices, by author, by title and by subject, from a single input
|
||
file. I started by defining the format of this file. Here is what a
|
||
typical entry describing one book looks like:
|
||
<pre>
|
||
title: Zero Three Bravo
|
||
author: Gosnell, Mariana
|
||
subject: General Aviation
|
||
url: 3zb.htm
|
||
# this is a comment
|
||
</pre>
|
||
Each line starts with a keyword (eg. "title:" or "author:") and is
|
||
followed by a value that will be shown in the final HTML
|
||
page. Description of each book must start the "title:" line, there
|
||
must be at least one "author:" tag, and the "url:" entry points to a
|
||
review of the book, if there is one.
|
||
<p>
|
||
|
||
Since Python is object-oriented we begin program design by
|
||
looking for "objects". In a nutshell, object oriented (OO) programming
|
||
is a way to structure your code around the things, that is "objects",
|
||
that the program is working with. This rather simple idea of
|
||
organizing software around what it works with (objects), rather than
|
||
what it does (functions), turns out to be surprisingly powerful.
|
||
<p>
|
||
|
||
Within an OO program similar objects are grouped into "classes" and the
|
||
code we write describes each class. Objects that belong to a given
|
||
class are called "instances of the class".
|
||
<p>
|
||
|
||
I hope it is pretty obvious to you that since the program will
|
||
manipulate "book" objects, we need a Python class that will represent
|
||
a single book. Just knowing this is enough to let us suspend design
|
||
and write some code.
|
||
<p>
|
||
|
||
<h2>The Book Class</h2>
|
||
|
||
Before we start looking at the code we need to consider briefly how
|
||
Python programs are organized. Each program consists of a number of
|
||
modules, each module is contained in a file (usually named with the
|
||
extension ".py") and the name of the file (without the ".py") serves
|
||
as the module name. A module can contain any number of routines or
|
||
classes. Typically things that are related are kept in one module. For
|
||
example, there is <tt>string</tt> module that contains functions that
|
||
operate on strings. To access functions or classes from another module
|
||
we use the <tt>import</tt> statement. For example the first line of
|
||
the <tt>Book</tt> module is:
|
||
<pre>
|
||
from string import split, strip
|
||
</pre>
|
||
which says that the routines <tt>split</tt> and <tt>strip</tt> are
|
||
obtained from the <tt>strings</tt> module.<p>
|
||
|
||
Next, I have to point out few syntactic features of Python that are
|
||
not immediately obvious the code. The most important is the fact that
|
||
in Python indentation is part of the syntax. To see which statements
|
||
will be executed following an "if", all you need to look at is
|
||
indentation - there is no need for curly braces, <tt>BEGIN/END</tt>
|
||
pairs or "fi" statements.<p>
|
||
|
||
Here is a typical "if" statement extracted from the <tt>set_author</tt>
|
||
routine in the <tt>Book</tt> class:
|
||
<pre>
|
||
if new_author:
|
||
names = split (new_author, ",")
|
||
self.last_name.append (strip (names[0]))
|
||
self.first_name.append (strip (names[1]))
|
||
else:
|
||
self.last_name = []
|
||
self.first_name = []
|
||
</pre>
|
||
The three statements following the "if" are executed if "new_author"
|
||
variable contains a non-null value. The amount of indentation is not
|
||
important, but it must be consistent. Also note the colon (":") which
|
||
is used to terminate the header of each compound statement.<p>
|
||
|
||
|
||
The <tt>Book</tt> class turns out to be very simple. It consists
|
||
of routines that set the values for author, title, subject and the URL
|
||
for each book. For example, here is the <tt>set_title</tt> routine:
|
||
<pre>
|
||
def set_title (self, new_title):
|
||
self.title = new_title
|
||
</pre>
|
||
The first argument to the "set_title" method (that is a routine which
|
||
belongs to a class) is "self". This argument always refers to the
|
||
instance to which the method is applied. Furthermore, the attributes
|
||
(i.e. the data contained in each object) must be qualified with "self"
|
||
when referenced within the body of a method. In the example above the
|
||
attribute "title" of a "Book" object is set to value of "new_title".
|
||
<p>
|
||
If in another part of a program we have variable "b" that references an
|
||
instance of a "Book" class this call would set the book's title:
|
||
<pre>
|
||
b.set_title ("Fate is the Hunter")
|
||
</pre>
|
||
Note that the "self" argument is <i>not</i> present in the call,
|
||
instead the object to which the method is applied (i.e. the object
|
||
before the ".", "b" above) becomes the "self" argument.
|
||
<p>
|
||
|
||
|
||
At this point a reasonable question to ask is "Where do the objects
|
||
come from?" Each object is created by a special call that uses the
|
||
class name as the name of a function. In addition a class can define a
|
||
method with the name <tt>__init__</tt> which will automatically be
|
||
called to initialize the new object's attributes (in C++ such a
|
||
routine is called a constructor).
|
||
<p>
|
||
Here is the <tt>__init__</tt> routine for the <tt>Book</tt> class:
|
||
<pre>
|
||
def __init__ (self, t="", a="", s="", u=""):
|
||
#
|
||
# Create an instance of Book
|
||
#
|
||
self.title = t
|
||
self.last_name = []
|
||
self.first_name = []
|
||
self.set_author (a)
|
||
self.subject = s
|
||
self.url = u
|
||
</pre>
|
||
The main purpose of the above routine is to create all the attributes
|
||
of the new "Book" object. Note that the arguments to "__init__" are
|
||
specified with default values, so that the caller needs only to pass the
|
||
arguments that differ from the default.
|
||
<p>
|
||
|
||
Here are some examples of calls to create "Book" objects:
|
||
<pre>
|
||
a = Book()
|
||
b = Book ("Fate is the Hunter")
|
||
c = Book ("Some book", "First, Author")
|
||
</pre>
|
||
<p>
|
||
There is one small complication in the "Book" class. It is possible
|
||
for a book to have more than one author. That's why the attributes
|
||
"first_name" and "last_name" are actually lists. We'll look more at
|
||
lists in the next section. <p>
|
||
|
||
The complete <tt>Book</tt> class is show in <a href=book.html>
|
||
Listing #1</a>. To test the class we add a little piece of code at the end
|
||
of the file to test if the code is running as <tt>__main__</tt> routine,
|
||
that is execution started in this file. If so, the code to test the <tt>Book</tt>
|
||
will run.
|
||
|
||
<h2>The Book_List Class</h2>
|
||
|
||
Once the <tt>Book</tt> is tested we can go back to designing. The next
|
||
obvious object is a list which will contain all the "book"
|
||
objects. For the purposes of our program we have to be able to create
|
||
the book list from the input file and we have to sort the books in the
|
||
list by author, title or subject. Sorted list will then be used as
|
||
input into the code that actually generates HTML pages. <p>
|
||
|
||
As it turns out one of Python's built-in data structures is a list. Here is
|
||
a snippet of code showing creation of a list and addition of some items
|
||
(this example was produced by running Python interactively):
|
||
<pre>
|
||
Python 1.4 (Dec 18 1996) [GCC 2.7.2.1]
|
||
Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
|
||
>>> s = []
|
||
>>> s.append ("a")
|
||
>>> s.append ("hello")
|
||
>>> s.append (1)
|
||
>>> print s
|
||
['a', 'hello', 1]
|
||
</pre>
|
||
Above we create a list called "s" and add three items to it. Lists
|
||
allow "slicing" operations, which let you pull out pieces of a list by
|
||
specifying element numbers. These examples illustrate the idea:
|
||
<pre>
|
||
>>> print s[1]
|
||
hello
|
||
>>> print s[1:]
|
||
['hello', 1]
|
||
>>> print s[:2]
|
||
['a', 'hello']
|
||
>>> print s[0]
|
||
a
|
||
</pre>
|
||
<tt>s[1]</tt> denotes the second element of the list (indexing starts
|
||
at zero), <tt>s[1:]</tt> is the slice from the second element to the
|
||
end of the list, <tt>s[:2]</tt> goes from the start to the third
|
||
element, and <tt>s[0]</tt> is the first item.
|
||
<p>
|
||
|
||
Finally, lists have a "sort" operator which sorts the elements according to
|
||
a user supplied comparison function.
|
||
<p>
|
||
Armed with the knowledge of Python lists, writing the <tt>Book_List</tt> class
|
||
is easy. The class will have a single attribute, "contents", which will be a
|
||
list of books.
|
||
<p>
|
||
The constructor for the <tt>Book_List</tt> class simply creates a
|
||
"contents" attribute and initializes it to be an empty list. The
|
||
routine that parses the input file and creates list elements is called
|
||
"make_from_file" and it begins with the code:
|
||
<pre>
|
||
def make_from_file (self, file):
|
||
#
|
||
# Read the file and create a book list
|
||
#
|
||
lines = file.readlines ()
|
||
self.contents = []
|
||
</pre>
|
||
The "file" argument is a handle to an open text file that contains the
|
||
descriptions of the books. The first step this routine performs is to
|
||
read the entire file into a list of strings, each string representing
|
||
one line of text. Next, using Python's "for" loop we step through this
|
||
list and examine each line of text:
|
||
<pre>
|
||
#
|
||
# Parse each line and create a list of Book objects
|
||
#
|
||
for one_line in lines:
|
||
# It's not a comment or empty line
|
||
if (len(one_line) > 0) and (one_line[0] != "#"):
|
||
# Split into tokens
|
||
tokens = string.split (one_line)
|
||
</pre>
|
||
If the line is not empty or is not a comment (that is the first
|
||
character is not a "#") then we split the line into words, a word
|
||
being a sequence of characters without spaces. The call "tokens =
|
||
string.split (one_line)" uses the "split" routine from the "string"
|
||
module. "split" returns the words it found in a list.
|
||
<pre>
|
||
if len (tokens) > 0:
|
||
if (tokens[0] == "title:"):
|
||
current_book = book.Book (string.join (tokens[1:]))
|
||
self.contents.append (current_book)
|
||
elif (tokens[0] == "author:"):
|
||
current_book.set_author (string.join (tokens[1:]))
|
||
elif (tokens[0] == "subject:"):
|
||
current_book.set_subject (string.join (tokens[1:]))
|
||
elif (tokens[0] == "url:"):
|
||
current_book.set_url (string.join (tokens[1:]))
|
||
|
||
</pre>
|
||
The first token (i.e. word) on the line is the keyword that tells us
|
||
what to do. If it is "title:" then we create a new <tt>Book</tt>
|
||
object and append it to the list of books, otherwise we just set the
|
||
proper attributes. Note that the remaining tokens found on each line
|
||
are joined together into a string (using "string.join" routine). There
|
||
is probably a more efficient way to code this, but for my purposes
|
||
this code works fast enough.
|
||
<p>
|
||
The other interesting parts of the <tt>Book_List</tt> class are the sort
|
||
routines. Here is how the list is sorted by title:
|
||
<pre>
|
||
def sort_by_title (self):
|
||
#
|
||
# Sort book list by title
|
||
#
|
||
self.contents.sort (lambda x, y: cmp (x.title, y.title))
|
||
|
||
</pre>
|
||
We simply call "sort" routine on the list. To get proper ordering we
|
||
need to supply a function that compares two <tt>Book</tt> objects. For
|
||
sorting by title we have to supply an anonymous function, which is
|
||
introduced with the keyword "lambda" (those of you familiar with Lisp,
|
||
or other functional languages should recognize this construct). The definition:
|
||
<pre>
|
||
lambda x, y: cmp (x.title, y.title)
|
||
</pre>
|
||
simply says that this is a function of two arguments and function result comes
|
||
from calling the Python built-in function "cmp" (i.e. compare) on the "title"
|
||
attribute of the two objects.<p>
|
||
|
||
The other sort routines are similar, except that in "sort_by_author" I
|
||
used a local function instead of a "lambda", because the comparison
|
||
was little more complicated - I wanted to have all the books with the
|
||
same author appear alphabetically by title.
|
||
<p>
|
||
|
||
<h2>Generating Pages:</h2>
|
||
|
||
Now that we have constructed a list of books, the next step is to create
|
||
the HTML pages. We begin by creating a class, called <tt>Html_Page</tt>, that
|
||
generates basic outline of a page and then we extend that class to create
|
||
the titles, authors and subjects pages.<p>
|
||
|
||
The idea that existing code can be extended yet not changed is the
|
||
second most import idea of OO programming. The mechanism for doing
|
||
this is called "inheritance" and it allows the programmer to create a
|
||
new class by adding new properties to an old class and the old class
|
||
does not have to change. A way to think about inheritance is as
|
||
"programming by differences". In our program we will create three
|
||
classes that inherit from <tt>Html_Page</tt>.<p>
|
||
|
||
<tt>Html_Page</tt> is quite simple. It consists of routines that
|
||
generate the header and the trailer tags for an HTML page. It also
|
||
contains an empty routine for generating the body of the page. This
|
||
routine will be defined in descendant classes. The <tt>__init__</tt>
|
||
routine let's the user of this class specify a title and a top level
|
||
heading for the page.<p>
|
||
|
||
When I first tested the output of the HTML generators I simply printed
|
||
it to the screen and manually saved it into a file, so I could see the
|
||
page in a browser. But once I was happy with the appearance, I had to
|
||
change the code to save the data into a file. That's why in <tt>Html_Page</tt>
|
||
you will see code like this:
|
||
<pre>
|
||
self.f.write ("<html>\n")
|
||
self.f.write ("<head>\n")
|
||
</pre>
|
||
for writing the output to a file referenced by the attribute "f". <p>
|
||
However, since the actual output file will be different for each page
|
||
opening of the file is deferred to a descendant class. <p>
|
||
|
||
You can see complete code for <tt>Html_Page</tt> in
|
||
<a href="html_page.html">Listing #3</a>.
|
||
|
||
The three classes <tt>Authors_Page</tt>, <tt>Titles_Page</tt> and
|
||
<tt>Subjects_Page</tt> are used to create the final HTML pages. Since these
|
||
classes belong together I put them in one module, called <tt>books_pages</tt>.
|
||
Because the code for these is classes is very similar we will only look at
|
||
the first one.<p>
|
||
|
||
Here is how <tt>Authors_Page</tt> begins:
|
||
<pre>
|
||
class Authors_Page (Html_Page):
|
||
|
||
def __init__ (self):
|
||
Html_Page.__init__ (self, "Aviation Books: by Author",
|
||
"<i>Aviation Books: indexed by Author</i>")
|
||
self.f = open ("books_by_author.html", "w")
|
||
print "Authors page in--> " + self.f.name
|
||
</pre>
|
||
To start with that the class heading lists the name of the class from
|
||
which <tt>Authors_Page</tt> inherits, mainly <tt>Html_Page</tt>. Next
|
||
notice that the constructor invokes the constructor from the parent
|
||
class, by calling the <tt>__init__</tt> routine qualified by the class
|
||
name. Finally, the constructor names and opens the output file. I decided
|
||
not to make the file name a parameter for my own convenience to keep
|
||
things simple. <p>
|
||
|
||
Since the book list is needed for to generate the body of each page I added
|
||
a <tt>book_list</tt> attribute to each page class. This attribute is set
|
||
before HTML generation starts. <p>
|
||
|
||
The <tt>generate_body</tt> routine redefines the empty routine from
|
||
the parent class. Although fairly long, the code is pretty easy to
|
||
understand once you know that the book list is represented as an HTML
|
||
table and the "+" is the concatenation operator for strings. <p>
|
||
|
||
In addition to replacing the <tt>generate_body</tt> routine we also redefine
|
||
<tt>generate_trailer</tt> routine in order to put a back link to the book index
|
||
at the bottom of each page:
|
||
<pre>
|
||
def generate_trailer (self):
|
||
self.f.write ("<hr>\n")
|
||
self.f.write ("<center><a href=books.html>Back to Aviation Books Top Page</a></center>\n")
|
||
self.f.write ("<hr>\n")
|
||
Html_Page.generate_trailer (self)
|
||
</pre>
|
||
Notice how right after we generate the back link, we include a call to
|
||
parent's <tt>generate_trailer</tt> routine to finish off the page with
|
||
correct terminating tags.<p>
|
||
|
||
Complete listing for the three page generating classes are found in
|
||
<a href="books_pages.html">Listing #4</a>.<p>
|
||
|
||
|
||
The main line of the entire program is shown in
|
||
<a href="book_page_gen.html">Listing #5</a>. By now the code there
|
||
should be self explanatory.
|
||
|
||
<h2>Summary</h2>
|
||
|
||
As you can see this particular program was not hard to write. Python is
|
||
well suited for these types of tasks, you can quickly put together
|
||
a useful program with minimal fuss. <p>
|
||
|
||
After I have got the program to work I realized that its design
|
||
is not the best. For example, the HTML generating code could be more
|
||
general, perhaps the <tt>Book</tt> class should generate it's own
|
||
HTML table entries. But for now the program fits my purposes, but
|
||
I will modify if I need to create other HTML generating applications.<p>
|
||
|
||
If you like to see the results of this script visit my
|
||
<a href="http://www.netlabs.net/hp/richieb/books.html">book page.</a><p>
|
||
|
||
To learn more about Python you should start with the <a
|
||
href="http://www.python.org">Python Home Page</a> which will point you
|
||
to many Python resources on the net. I also found the O'Reilly book
|
||
<i>Programming in Python</i> by Mark Lutz extremely helpful.
|
||
<p>
|
||
Finally, any mistakes in the description of Python features are
|
||
my own fault, as I'm still a Python novice.
|
||
<p>
|
||
|
||
|
||
<!--===================================================================-->
|
||
<P> <hr> <P>
|
||
<center><H5>Copyright © 1997, Richie Bielak<BR>
|
||
Published in Issue 19 of the Linux Gazette, July 1997</H5></center>
|
||
|
||
<!--===================================================================-->
|
||
<P> <hr> <P>
|
||
<A HREF="./index.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
|
||
ALT="[ TABLE OF CONTENTS ]"></A>
|
||
<A HREF="../index.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
|
||
ALT="[ FRONT PAGE ]"></A>
|
||
<A HREF="./trade.html"><IMG SRC="../gx/back2.gif"
|
||
ALT=" Back "></A>
|
||
<A HREF="./micro.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
|
||
<P> <hr> <P>
|
||
|
||
<H4>
|
||
"Linux Gazette...<I>making Linux just a little more fun!</I>"
|
||
</H4>
|
||
|
||
<P> <HR> <P>
|
||
<!--===================================================================-->
|
||
|
||
<center>
|
||
<H2>Using SAMBA to Mount Windows 95</H2>
|
||
<H4>By Jonathon Stroud,
|
||
<a href="mailto:jgstroud@eos.ncsu.edu">jgstroud@eos.ncsu.edu</a></H4>
|
||
</center>
|
||
<P><HR>
|
||
<p>Many major universities are now offering network connections to
|
||
students in their rooms. This is really a wonderful thing for the
|
||
Linux community. Whereas, the majority of student owned computers
|
||
on these networks are still running Windows 95, many students are
|
||
making the switch to Linux. One thing that newcomers to Linux are
|
||
constantly asking is, "Can I access a directory shared by a
|
||
Windows 95 computer in the 'Network Neighborhood', and can I
|
||
share files to Windows 95 users?" The answer, of course, is YES.
|
||
I keep trying to tell them that there is nothing that Linux can
|
||
not do, yet they continue to come to me and ask if they can do
|
||
this in Linux, or if they can do that. I have never once answered
|
||
no.
|
||
|
||
<h3>Samba</h3>
|
||
|
||
<p>To mount a Windows 95 share, we use a program called Samba. Samba
|
||
is a program that allows Linux to talk to computers running
|
||
Windows for Workgroups, Windows 95, Windows NT, Mac OS, and Novel
|
||
Netware. Samba even allows you to share a printer between
|
||
computers using these different operating systems. Samba comes
|
||
with most distributions of Linux, but if you do not have it
|
||
installed, you can obtain a copy from the Samba home page at
|
||
http://lake.canberra.edu.au/pub/samba/.
|
||
|
||
|
||
<h3>Mounting Windows 95 Shares</h3>
|
||
|
||
<p>The first thing you will probably want to do, is check to see
|
||
what directories are shared on the computer you are trying to
|
||
mount off of. To do this type smbclient -L computername. This
|
||
will list all the directories shared by the machine. To mount the
|
||
directory, we use the command smbmount. Smbmount can be a little
|
||
tricky though. I have created a script, named smb, that allows
|
||
users to mount drives using smbmount, with relative ease.
|
||
|
||
<pre> #usage smb computername sharename
|
||
#!/bin/sh
|
||
if [ $UID = 0 ]; then
|
||
if [ ! d /mnt/$1 ]; then
|
||
mkdir /mnt/$1
|
||
fi
|
||
#You may want to add the -u option here also if you need to
|
||
#specify a login id (ie: mounting drives on Windows NT)
|
||
/usr/sbin/smbmount //$1/$2 /mnt/$1 I $1 c etc
|
||
else
|
||
if [ ! d ~/mnt/ ]; then
|
||
mkdir ~/mnt/
|
||
fi
|
||
if [ ! d ~/mnt/$1 ]; then
|
||
mkdir ~/mnt/$1
|
||
fi
|
||
#You may want to add the -u option here also if you need to
|
||
#specify a login id (ie: mounting drives on Windows NT)
|
||
/usr/sbin/smbmount //$1/$2 ~/mnt/$1 I $1 c etcfi</pre>
|
||
|
||
<p>To execute this script you simply type smb followed by the name
|
||
of the computer you are mounting off of, and then the directory
|
||
you wish to mount (ex. smb workstation files). If you are root,
|
||
the script creates a directory in /mnt by the same name as the
|
||
computer, and mounts the directory there. For any other user, the
|
||
script makes a directory in the users home directory named mnt.
|
||
In that directory it makes another directory by the same name as
|
||
the computer and mounts the share there.
|
||
|
||
<h3>Sharing files with Windows 95</h3>
|
||
|
||
<p>Now to share a file. This also is not too difficult. To share a
|
||
directory you need to edit /etc/smb.conf. By default, Samba
|
||
shares users' home directories, but they are only visible (and
|
||
accessible) to the owner. This means that the person accessing
|
||
the share should be logged into Windows 95 with the same loginid,
|
||
as they use to log into your Linux box.
|
||
|
||
<p>Let's say you want to let 'bob' access the directory
|
||
'/shares/files', and you do not want anyone else to access it. To
|
||
do this, add these lines to your /etc/smb.conf file.
|
||
|
||
<pre> [bobsfiles]
|
||
comment = files for bob
|
||
path = /shares/files
|
||
valid users = bob
|
||
public = no
|
||
writable = yes
|
||
printable = no</pre>
|
||
|
||
<ol>
|
||
<li> indicates the name the directory will be shared under.
|
||
|
||
<li> is a comment that can be displayed in the Windows 95
|
||
Network Neighborhood.
|
||
|
||
<li> lists the directory on your computer that will be shared
|
||
|
||
<li> when set to yes allows users to access the directory with
|
||
guest privileges.
|
||
|
||
<li> indicates whether or not the user has write permissions to
|
||
the indicated directory
|
||
|
||
<li> when set to yes allows users to spool print jobs from that
|
||
directory
|
||
</ol>
|
||
|
||
<p>More examples on sharing files can be found in the default
|
||
smb.conf file. For more help on setting up this file, see the
|
||
Samba web page, or type man smb.conf.
|
||
|
||
<h3>More cool Samba stuff</h3>
|
||
|
||
<p>If a Windows 95 user on your network is running winpopup (an
|
||
instant massaging program), you can send them a winpopup message
|
||
using Samba. To do this just type <pre>smbclient -M computername
|
||
message_text</pre>.
|
||
|
||
|
||
|
||
<!--===================================================================-->
|
||
<P> <hr> <P>
|
||
<center><H5>Copyright © 1997, Jonathon Stroud<BR>
|
||
Published in Issue 19 of the Linux Gazette, July 1997</H5></center>
|
||
|
||
<center>
|
||
<H1><IMG SRC="../gx/backpage.gif" alt="Linux Gazette Back Page"></H1>
|
||
|
||
<H5>Copyright © 1997 Specialized Systems Consultants, Inc.<br>
|
||
For information regarding copying and distribution of this material see the
|
||
<A HREF="../copying.html">Copying License</A>.</H5>
|
||
</center>
|
||
|
||
<P> <hr> <P>
|
||
|
||
<H3>Contents:</H3>
|
||
<ul>
|
||
<li><a HREF="./lg_backpage19.html#authors">About This Month's Authors</a>
|
||
<li><a HREF="./lg_backpage19.html#notlinux">Not Linux</a>
|
||
</ul>
|
||
|
||
<a name="authors"></a>
|
||
<P> <HR> <P>
|
||
<!--======================================================================-->
|
||
|
||
<center><H3> About This Month's Authors </H3></center>
|
||
|
||
<P> <HR> <P>
|
||
<!--======================================================================-->
|
||
|
||
<P>
|
||
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Larry Ayers</H4>
|
||
Larry Ayers lives on a small farm
|
||
in northern Missouri, where he is currently engaged in building a
|
||
timber-frame house for his family. He operates a portable band-saw mill,
|
||
does general woodworking, plays the fiddle and searches for rare
|
||
prairie plants, as well as growing shiitake mushrooms. He is also
|
||
struggling with configuring a Usenet news server for his local ISP.
|
||
|
||
<P>
|
||
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Jim Dennis</H4>
|
||
Jim Dennis
|
||
is the proprietor of <A href="http://www.starshine.org">
|
||
Starshine Technical Services</A>.
|
||
His professional experience includes work in the technical
|
||
support, quality assurance, and information services (MIS)
|
||
departments of software companies like
|
||
<A href="http://www.quarterdeck.com"> Quarterdeck</A>,
|
||
<A href="http://www.symantec.com"> Symantec/
|
||
Peter Norton Group</A>, and
|
||
<A href="http://www.mcafee.com"> McAfee Associates</A> -- 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.
|
||
|
||
<P>
|
||
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">John Eikenberry</H4>
|
||
John currently lives in Athens, GA where he is both a student and an
|
||
employee of the University of Georgia. He is working on his masters thesis
|
||
in artificial intelligence while working full time as a system administration
|
||
and programmer for the College of Education. Prior to his coming to Athens,
|
||
John studied psychology and philosophy ending with a Masters of Philosophy
|
||
from the University of Toledo. He has been using Linux since 1994 and
|
||
maintains the <a href="http://www.ai.uga.edu/~jae/ai.html">Linux Ai/Alife
|
||
mini-Howto</a>.
|
||
|
||
<P>
|
||
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">John Gatewood Ham</H4>
|
||
John Ham was born June 10, 1964, in Florence, Alabama.
|
||
He has a
|
||
B.S., Mathematics, from The University of the South, Sewanee, TN and an
|
||
M.S., Computer Science, from The University of Missouri-Rolla, Rolla, MO.
|
||
He is currently working as an Instructor in the Computer Science Department
|
||
at Burapha University, Bang Saen, Cholburi, Thailand.
|
||
He teachs in English -- he does not speak Thai. He lives in Thailand, because his
|
||
wife is Thai and did not wish to live in the United States.
|
||
<A HREF="http://alphabox.compsci.buu.ac.th/~zappaman/">His Home Page</A>
|
||
|
||
<P>
|
||
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Michael J. Hammel</H4>
|
||
Michael J. Hammel,
|
||
is a transient software engineer with a background in
|
||
everything from data communications to GUI development to Interactive Cable
|
||
systems--all based in Unix. His interests outside of computers
|
||
include 5K/10K races, skiing, Thai food and gardening. He suggests if you
|
||
have any serious interest in finding out more about him, you visit his home
|
||
pages at http://www.csn.net/~mjhammel. You'll find out more
|
||
there than you really wanted to know.
|
||
|
||
<P>
|
||
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Evan Leibovitch</H4>
|
||
Evan is a Senior Analyst for Sound Software of Brampton, Ontario, Canada.
|
||
He's installed almost every kind of Unix available for Intel systems over
|
||
the past dozen years, and this year his company became Canada's first
|
||
Caldera Channel Partner.
|
||
|
||
<P>
|
||
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Mike List </H4>
|
||
Mike List is a father of four teenagers, musician, printer (not
|
||
laserjet), and recently reformed technophobe, who has been into computers
|
||
since April,1996, and Linux since July.
|
||
|
||
<P>
|
||
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Andy Newton</H4>
|
||
Andy Newton is a Java programmer for Automated Logic Corporation and has
|
||
been an active member of the Atlanta Linux Enthusiasts for two years.
|
||
When not playing with computers, he enjoys running, backpacking, political
|
||
banter and spending time with his fiancee, Karen.
|
||
<A HREF="http://www.eskimo.com/~lfs/">His Home Page</A>
|
||
|
||
<P>
|
||
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Justin Seiferth</H4>
|
||
When Justin's
|
||
not busy improving our nation's information boreen, he's at home hacking
|
||
<A HREF="http://butler.disa.mil/ApacheConfig">various projects</A>.
|
||
If you are cut off by a silver <A HREF="http://www.xs4all.nl/~explorer/M635CSi/root.html">coupe</A>
|
||
with New Mexico plates on the roads around our nation's capital, feel free
|
||
to wave hello! Justin and his family will be making their annual
|
||
sojourn to relatives in <A HREF="http://www.mayo-ireland.ie/MotM.htm">Ireland</A>
|
||
during July- he'd like to hear from fellow Linux users over there.</FONT>
|
||
|
||
<P>
|
||
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Cliff Serutine</H4>
|
||
Cliff Seruntine is a writer and an electronics and computer technician,
|
||
web designer and all around hacker. He lives in Alaska with his family
|
||
of four where they fight a never-ending battle against the evil computer
|
||
assimilators and spend their weekends salmon fishing. He'd love to have
|
||
you over to visit. Meet him at <a href="http://www.micronet.net/~cybertronics">http://www.micronet.net</a>
|
||
|
||
<a name="notlinux"></a>
|
||
<P> <hr> <P>
|
||
<!--====================================================================-->
|
||
|
||
<center><H3> Not Linux </H3></center>
|
||
|
||
<P> <HR> <P>
|
||
<!--======================================================================-->
|
||
<P>
|
||
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.
|
||
|
||
<P>
|
||
<IMG ALIGN=CENTER ALT="" SRC="../gx/rose.gif">
|
||
My assistant, Amy Kukuk, did all the work again this month.
|
||
She's so good to me. Thank you, Amy.
|
||
|
||
<P>
|
||
I'm going on vacation from July 3 to July 13, and I am truly looking
|
||
forward to it. I've been working much too hard since taking over as Editor
|
||
of <I>Linux Journal</I>, and a week or so with no work in my thoughts is
|
||
going to be a much needed break. Riley and I are flying to Southern
|
||
California to visit his dad--the esteemed UCLA Professor Emeritus, Dr.
|
||
Ralph Richardson. We also will be visiting my daughter Lara and her
|
||
children. Pictures of all my grandchildren are on my home page--they are, of
|
||
course, the most beautiful and most intelligent grandkids in the world. I
|
||
am very proud of them, as you can see.
|
||
<P>
|
||
Have fun!
|
||
|
||
<P> <hr> <P>
|
||
<A HREF="http://www.ssc.com/ssc/Employees/Margie/margie.html">
|
||
Marjorie L. Richardson</a><br>
|
||
Editor, <i>Linux Gazette</i> <A HREF="mailto:gazette@ssc.com">gazette@ssc.com</a>
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<A HREF="./index.html"><IMG SRC="../gx/indexnew.gif" ALT="[ TABLE OF
|
||
CONTENTS ]"></A>
|
||
<A HREF="../index.html"><IMG SRC="../gx/homenew.gif" ALT="[ FRONT
|
||
PAGE ]"></A>
|
||
<A HREF="./micro.html"><IMG SRC="../gx/back2.gif" ALT=" Back "></A>
|
||
<p><hr><p>
|
||
<I>Linux Gazette</I> Issue 19, July 1997, http://www.ssc.com/lg/<BR>
|
||
This page written and maintained by the Editor of <I>Linux Gazette</I>,
|
||
<A HREF="mailto: gazette@ssc.com"> gazette@ssc.com</A>
|
||
<P>
|
||
</BODY></HTML>
|