old-www/LDP/LG/issue52/issue52.html

6801 lines
250 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE> Linux Gazette Table of Contents LG #52</TITLE>
<META NAME="robots" CONTENT="noindex, nofollow">
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#0000AF"
ALINK="#FF0000" >
<center>
<A HREF="http://www.linuxgazette.com/">
<H1><IMG SRC="../gx/newlogo.jpg" ALT="LINUX GAZETTE" border="0"></H1></A>
<H2>April 2000, Issue 52 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Published by <I>Linux Journal</I></H2>
<A HREF=../index.html>Front Page</A> &nbsp;|&nbsp;
<A HREF=../index.html>Back Issues</A> &nbsp;|&nbsp;
<A HREF=../faq/index.html>FAQ</A> &nbsp;|&nbsp;
<A HREF=../mirrors.html>Mirrors</A> &nbsp;|&nbsp;
<A HREF=http://www.linuxgazette.com/search.html>Search</A>
</center>
<!--=================================================================-->
<table>
<TR>
<TD COLSPAN="3" WIDTH="100%" BGCOLOR="#000000"><IMG
SRC="../gx/hammel/cleardot.gif" ALT="" HSPACE=30 VSPACE=2 HEIGHT=1
WIDTH=1 ALIGN=LEFT></TD>
<TD></TD>
</TR>
<tr><td>
<table>
<tr>
<td VALIGN="top"><H1><font color="#BB0000">Visit Our Sponsors:</font></H1></td></tr>
<!-- *** BEGIN sponsors *** -->
<TR><TD>
<A HREF="http://www.linuxjournal.com"><IMG ALT="Linux Journal" SRC="../gx/ljtop.gif" BORDER="0" VSPACE="10"></A>
</TD></TR>
<TR><TD>
<A HREF="http://www.homestead.com/BLUETUXLLC"><IMG ALT="Blue Tux" SRC="../gx/sponsors/bluetux.jpg" BORDER="0" VSPACE="10"></A>
</TD></TR>
<TR><TD>
<A HREF="http://www.chilisoft.com/linux/?a=2008&b=2015"><IMG ALT="Chili!Soft" SRC="../gx/sponsors/chili.gif" BORDER="0" VSPACE="10"></A>
</TD></TR>
<TR><TD>
<A HREF="http://www.linuxcare.com"><IMG ALT="LinuxCare" SRC="../gx/linuxcare.gif" BORDER="0" VSPACE="10"></A>
</TD></TR>
<TR><TD>
<A HREF="http://www.linuxmall.com/"><IMG ALT="LinuxMall" SRC="../gx/linuxmall.gif" BORDER="0" VSPACE="10"></A>
</TD></TR>
<TR><TD>
<A HREF="http://www.linuxjournal.com/lr-toc.html"><IMG ALT="Linux Resources" SRC="../gx/linux6.gif" BORDER="0" VSPACE="10"></A>
</TD></TR>
<TR><TD>
<A HREF="http://www.cygnus.com"><IMG ALT="Cygnus Solutions" SRC="../gx/sponsors/cygnus.gif" BORDER="0" VSPACE="10"></A>
</TD></TR>
<TR><TD>
<A HREF="http://www.vmware.com"><IMG ALT="VMware" SRC="../gx/sponsors/vmware.jpg" BORDER="0" VSPACE="10"></A>
</TD></TR>
<TR><TD>
<A HREF="http://www.infomagic.com"><IMG ALT="InfoMagic" SRC="../gx/infologo.gif" BORDER="0" VSPACE="10"></A>
</TD></TR>
<!-- *** END sponsors *** -->
</table>
</td>
<!--==================================================================-->
<TD ROWSPAN="3" WIDTH="2" BGCOLOR="#000000" NOSAVE><IMG
SRC="../gx/hammel/cleardot.gif" ALT="" HSPACE=1 HEIGHT=1 WIDTH=1%></TD>
<td VALIGN=top>
<H1><font color="#BB0000">Table of Contents:</font></H1>
<!-- *** BEGIN toc *** -->
<UL>
<LI> <a HREF="lg_mail52.html">The MailBag</A>
<UL>
<LI> <a HREF="lg_mail52.html#help">Help Wanted &amp; Article Ideas</A>
<LI> <a HREF="lg_mail52.html#gen">General Mail</A>
</UL>
<LI> <a HREF="lg_bytes52.html">News Bytes</A>
<UL>
<LI> <a HREF="lg_bytes52.html#distro">Distro News</A>
<LI> <a HREF="lg_bytes52.html#general">News in General</A>
<LI> <a HREF="lg_bytes52.html#software">Software Announcements</A>
</UL>
<LI> <a HREF="lg_answer52.html">The Answer Guy</A> , <EM>by James T. Dennis</EM>
<LI> <a HREF="lg_tips52.html">More 2-Cent Tips</A>
<LI> <a HREF="bolzern.html">Microsoft flip-flop</A> , <EM>by Mark Bolzern</EM>
<LI> <a HREF="collinge.html">HelpDex</A> , <EM>by Shane Collinge</EM>
<LI> <a HREF="correa.html">A Fantastic Interview with Wine's Man Alexandre Julliard</A> , <EM>by Fernando Ribeiro Corr&ecirc;a and Luis Strano</EM>
<LI> <a HREF="lamb.html">Linux Site O' The Month: Glade</A> , <EM>by Sean Lamb</EM>
<LI> <a HREF="okopnik.html">"Cannot execute /bin/bash: Permission denied" - solved!</A> , <EM>by Ben Okopnik</EM>
<LI> <a HREF="okopnik2.html">Introduction to Shell Scripting--The Basics</A> , <EM>by Ben Okopnik</EM>
<LI> <a HREF="art.html">Linux Gazette art</A> , <EM>by Mike Orr</EM>
<LI> <a HREF="pramode.html">Exploring parsing and virtual machines with Python</A> , <EM>by Pramode C E</EM>
<LI> <a HREF="lg_backpage52.html">The Back Page</A>
<UL>
<LI> <a HREF="lg_backpage52.html#authors">About This Month's Authors</A>
<LI> <a HREF="lg_backpage52.html#notlinux">Not Linux</A>
</UL>
</UL>
<!-- *** END toc *** -->
</td>
</tr>
<TR>
<TD COLSPAN="3" WIDTH="100%" BGCOLOR="#000000"><IMG
SRC="../gx/hammel/cleardot.gif"
ALT="-------------------------------------------------------------"
HSPACE=30 VSPACE=2 HEIGHT=1 WIDTH=1 ALIGN=LEFT></TD>
<TD></TD>
</TR>
</table>
<!--=============================================================-->
<P>
<table>
<tr><td>
<A HREF="issue52.txt.gz">TWDT 1 (gzipped text file)</A><BR>
<A HREF="issue52.html">TWDT 2 (HTML file)</A><BR>
are files containing the entire issue: one in text format, one in HTML.
They are provided
strictly as a way to save the contents as one file for later printing in
the format of your choice;
there is no guarantee of working links in the HTML version.
</td></tr>
<!--==================================================================-->
<TR>
<TD COLSPAN="3" WIDTH="100%" BGCOLOR="#000000"><IMG
SRC="../gx/hammel/cleardot.gif" ALT="" HSPACE=30 VSPACE=2 HEIGHT=1
WIDTH=1 ALIGN=LEFT></TD>
<TD></TD>
</TR>
<tr><td>
<center>
<I>Linux Gazette</I><img alt="[tm]" src="../gx/tm.gif">,
<A HREF="http://www.linuxgazette.com/">http://www.linuxgazette.com/</A><BR>
This page maintained by the Editor of <I>Linux Gazette</I>,
<A HREF="mailto: gazette@ssc.com"> gazette@ssc.com</A>
<P>
<H5>Copyright &copy; 1996-2000 Specialized Systems Consultants, Inc.</H5>
</center>
</td></tr>
<TR>
<TD COLSPAN="3" WIDTH="100%" BGCOLOR="#000000"><IMG
SRC="../gx/hammel/cleardot.gif" ALT="" HSPACE=30 VSPACE=2 HEIGHT=1
WIDTH=1 ALIGN=LEFT></TD>
<TD></TD>
</TR>
</table>
<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="#help">Help Wanted -- Article Ideas</a>
<li><a HREF="#gen">General Mail</a>
</ul>
</td></tr></table>
</center>
<a name="help"></a>
<p><hr><p>
<!-- =================================================================== -->
<center><H3><font color="maroon">Help Wanted -- Article Ideas</font></H3></center>
<P>
Answers to these questions should be sent directly to the e-mail address of
the inquirer with or without a copy to gazette@ssc.com. Answers that are
copied to <I>LG</I> will be printed in the next issue in the Tips column.
<P> <STRONG>Before asking a question, please check the
<A HREF=../faq/index.html><I>Linux Gazette</I> FAQ</A> to see if it has been
answered there.</STRONG>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Mon, 13 Mar 2000 17:07:37 -0400
<BR>From: DoctorX &lt;<A HREF="mailto:d0ct0r_x@hven.com.ve">d0ct0r_x@hven.com.ve</A>&gt;
<BR>Subject: Suggestions
<P> I am from Venezuela South America
and I think that the next issue of "Linux Gazette"
will contain something about Latin American Linux
Distributions , and others project developed in Latin America
<P> I am a leader of a project named HVLinux
HVlinux is a project for make a venezuelan linux distribution
based on slackware, it run for now in RAM ( version 0.2.2 )
but the next version will run from HD.
<P> HVLinux HOME : <A HREF="http://www.hven.com.ve/hvlinux">
http://www.hven.com.ve/hvlinux</A>
<BR>this site is in spanish
<P> It is only a suggestion
<P> Wenceslao Hernandez C.
<d0ct0r_x@hven.com.ve>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Wed, 1 Mar 2000 06:47:02 -0800 (PST)
<BR>From: Jim Coleman &lt;<A HREF="mailto:j_e_coleman@yahoo.com">j_e_coleman@yahoo.com</A>&gt;
<BR>Subject: Free ISPs for Linux???
<P> This isn't exactly a burning question but I'd be
interested in knowing if anyone in the Gazette
readership knows of a free ISP that supports Linux.
All of the ones I've checked out so far require
Windows and/or Internet Explorer.
<P> Thanks!
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Thu, 02 Mar 2000 08:24:30 GMT
<BR>From: Brad Ponton &lt;<A HREF="mailto:alpha_bp@hotmail.com">alpha_bp@hotmail.com</A>&gt;
<BR>Subject: redhat 6.1 'hdc: lost interrupt' problems
<P> i own a panasonic 24x CDROM, a quatum 2.5GB bigfoot and recently purchased
a segate 17.2GB.
<P> i am getting 'hdc: lost interrupt' constanly through the install ( which
ploads along for about 2 hours ) then ends in what i think is suppoed to be
text displayed, only the screen then starts displaying out of sync, drawing
lines across the screen which look like very large ( 2 inch, or 4 centimetre
) and unreadable letters. thus the install ends. ( obviously incomplete )
<P> other probs with computer which may have influeenced
<P> a) to install the seagate was extremly hard requiring about an hours worth
on fiddling with ide cables and jumper settings, currently the quatum is
master of the primary ide, with nothing else, the cdrom is secondary master
and the seagate is secondary slave. this is about the ONLY way all devices
are detected properly AND the cd is able to boot.
<P> b) -before the segate was installed- i have ( along with other a queer
'randomly order' file display in windows explorer for only some directories
) not beenable to play audio cds, with them either not being detected by
windows 'cdplayer' or jumping from track to track when play is pressed,
without playing anything. although data and video cd's continue to run
fine.
<P> thank you for your time ( and possibly help )
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Sat, 4 Mar 2000 01:07:37 +0100
<BR>From: Kjell &Oslash;. Skjebnestad &lt;<A HREF="mailto:autowern@c2i.net">autowern@c2i.net</A>&gt;
<BR>Subject: Help Wanted: XF86 3.3.6 vs ATi Rage 128
<P> so. i need some help over here. X is not working properly with my spanking new ATi Rage 128-card ("bar code text"). here's what i have done so far:
<P> downloaded XF86 3.3.6 (binary) (which supports ATi Rage 128) to my Win98 disk.
installed a normal installation of Red Hat 6.1 (in text mode) to my linux disk.
installed XF86 3.3.6 properly to my linux disk, taking great care not to overwrite the original `xinitrc' provided by Red Hat
runned XF86Setup, configured everything there;the XF86Setup-test worked nicely
runned `startx', which started Gnome etc.
the Gnome Help Browser popped up, but the text... it was all like bar codes (that is, only horizontal lines). but occasionally, perfectly legible text popped up when scrolling. the words `Gnome Help Browser' in the title line was perfectly legible all the time.
and yes, i have entered the correct sync rates for my monitor.
i presume this is a font problem, but the means to solve it i cannot begin to comprehend. yea, i have clutched my brain rather avidly trying to get my system working properly. i have even tried deleting the font-folder before installing XF86-3.3.6... and making sure that the font-folder was regenerated when installing XF86-3.3.6.
<P> so. in summary, the main problem seems to be the weird behaviour of text when using X ("bar code text"). any help to solve this
problem would be greatly appreciated.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Sun, 05 Mar 2000 02:15:18 -0800
<BR>From: Dianne Witwer &lt;<A HREF="mailto:dwitwer@innercite.com">dwitwer@innercite.com</A>&gt;
<BR>Subject: PLEASE HELP ME!
<P> All right, I have the boot disk failure on my computer. And I was
readding the article and I dont have a boot disk or a back up disk. But
can I just reinstall windows somehow without using a boot disk.
Thanx
Josh
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Mon, 6 Mar 2000 14:51:05 -0000
<BR>From: Anthony W. Youngman &lt;<A HREF="mailto:Anthony.Youngman@ECA-International.com">Anthony.Youngman@ECA-International.com</A>&gt;
<BR>Subject: RE: Clenning(sic) lost+found
<P> I notice Ed said "it's often the sign of serious disk corruption". May I beg
to disagree? Note that ALL of the files in lost+found are of type b or c. I
don't know why or how this corruption occurs, but I found that (1) I
couldn't delete them, and (2) the machine gaily carried on working with no
sign of any problems.
<P> The problem only went away when the computer was scrapped - it was a 386 and
was replaced with a 686MX.
<BLOCKQUOTE><EM>
[It sounds like we agree. Perhaps I wasn't clear. Really weird
permissions like </EM><CODE>"c-wx--S-w-"</CODE><EM> that no sane person
would ever do even in their stupidest moments can be a sign that some hardware
fault has zapped the system. Data corruption is the result, not the cause.
The goal is then to find the cause or scrap the computer. Perhaps the cause
was a one-time thing, as apparently happened in your case.
<P> The files that wouldn't delete may have had their immutable or
undeletable attribute set. The command </EM><CODE>lsattr</CODE><EM> (see
manpage) shows which attributes a file has, and </EM><CODE>chattr -i
-u</CODE><EM> will remove those attributes. Attributes are like permissions
but refer to additional characteristics of files in the ext2 filesystem.
However, </EM><CODE>lsattr /dev</CODE><EM> spews out a whole lot of error
messages, so it may be that the command won't help with device files ("b" or
"c" as the first character of a </EM><CODE>ls -l</CODE><EM> entry.) -Ed.
</EM></BLOCKQUOTE>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Wed, 08 Mar 2000 11:43:04 -0700
<BR>From: T.J. Rowe &lt;<A HREF="mailto:tjr@ida.net">tjr@ida.net</A>&gt;
<BR>Subject: man-db package compilation problems
<P> First of all, I'd just like to thank all those who replied to my
previous postings here at LG and got me unstuck. =) I only like to
resort to asking when I've exahsted all my own ideas. That being said,
I've come up across another interesting challenge to which I've yet
found no solution. Here's the deal:
<P> In compiling the man-db package (as at least one reader correctly
guessed, yes, I'm following the LFS linux from scratch howto from here
at LG), I get the follow compilation error using both pgcc 2.95.2 as
well as egcs 2.91.66 on both my new linux partition and the "main"
partition:
<PRE>
cp include/Defines include/Defines.old
sed -e 's/^nls = .*/nls = all/' include/Defines.old &gt; include/Defines
make -C lib
make[1]: Entering directory `/root/project/man-db-2.3.10.orig/lib'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/root/project/man-db-2.3.10.orig/lib'
make -C libdb
make[1]: Entering directory `/root/project/man-db-2.3.10.orig/libdb'
gcc -O -DHAVE_CONFIG_H -DNLS -I../include -I.. -I. -I- -c db_store.c
-o db_store.o
In file included from db_store.c:44:
../include/manconfig.h:298: parse error before `__extension__'
../include/manconfig.h:298: parse error before `('
make[1]: *** [db_store.o] Error 1
make[1]: Leaving directory `/root/project/man-db-2.3.10.orig/libdb'
make: *** [libdb] Error 2
</PRE>
<P> Has anyone gotten this problem before? Any ideas? :)
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Thu, 9 Mar 2000 01:13:16 -0500
<BR>From: Kent Franken &lt;<A HREF="mailto:Franken@requestfoods.com">Franken@requestfoods.com</A>&gt;
<BR>Subject:
<P> I would really like to see case studies on switching to Linux form other
platforms.
<P> Here's our platform and some requirements and questions:
<P> We currently use Windows NT Terminal Server Edition. How hard would it be to
go to Linux?
<P> - We have two TSE servers with approximately 30 users each logged in on
average. In total, we have about 130 users but it is a manufacturing plant
and many people share terminals.
<P> - We use Citrix Metaframe, for Load Balancing and failover. Is there a
product for Linux that offers this option?
<P> - We use thin clients (Boundless (www.boundless.com) Windows CE terminals
with RDP and ICA protocols) and no X. I have not been happy with the CE
terminals. I was wondering if an X-term performed better? You can really
see how slow CE is if you just click on the start button and move the mouse
up and down the program list. I had an old PC with not enough RAM and the
ICA client worked much better than the CE ICA client. I just found
www.ltsp.org and the x-terms look fantastic (you could do a whole article
just on that project).
<P> - Dependability. I have to reboot my TSE servers once a week. Last week a
new HP printer driver caused about 40 blue screens of death before we
figured out what was going on. Will Linux be better?
<P> - Office productivity software. If we are used to MS Office, what will it
be like going to something like star-office?
<P> - Anti-virus programs? Is there an antivirus program to scan mail stores
(sendmail POP server)?
<P> - Security. How good is Linux at keeping users honest? With TSE you can
delete or overwrite files in the system directories as a user. Can't delete
a system file? Just open it in Word and save it and watch us IS guys jump
around.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Thu, 09 Mar 2000 19:27:53 +0100
<BR>From: Eva Gloria del Riego Eguiluz &lt;<A HREF="mailto:evagre@jazzcyber.com">evagre@jazzcyber.com</A>&gt;
<BR>Subject: HELP, PLEASE!
<P> I have a problem with one partition of my hard disk. Yesterday I installed Red
Hat 6.0 and everything was O.K. until I saw that I could not enter in one of my
FAT32 partition.
<P> In Windows '98, when I click on E: (the wrong partition) the message is "One of
the devices vinculated to the system doesn't work" (or something like that, I
read the message in spanish).
<P> I tried to see the hard disk with Partition Magic 3.0 and the error message is:
<P> "Partition table error #116 found: Partition table Begin and Start inconsistent:
the hard disk partition table contains two inconsistent descrptions of the
partition's starting sector...."
<P> I want to know if I have lost all the information in this partition or in the
other hand a way to get the data again.
<P> The other partition of the hard drive are O.K. and I can start Windows O.K. and
Linux also, because the wrong partition isn't primary.
<P> Thank you very much,
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Sat, 11 Mar 2000 08:40:07 -0500 (EST)
<BR>From: Ahmadullah Asad &lt;<A HREF="mailto:arasad@undergrad.math.uwaterloo.ca">arasad@undergrad.math.uwaterloo.ca</A>&gt;
<BR>Subject: a question...
<P> Hi,
<P> I would like to download the postscript viewer from
http://www.medasys-digital-systems.fr/mirror/linux/LG/issue16/gv.html
but I cannot connect to this German FTP site. Any help will be
appreciated.
Also I am totally ignorant of how to compile and run the source if I am
successful in downloading this file. I would really appreciate if you can
give me some info on that as well.
<BLOCKQUOTE><EM>
[Which distribution do you use? It's included in Debian, and it should
be included in all the other distributions as well.
You can also get the .deb file and convert it to rpm or tgz using the
alien program if you have it (in the package "alien"). -Ed.]
</EM></BLOCKQUOTE>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Mon, 13 Mar 2000 18:39:52 +0500
<BR>From: Choudhry Muhammad Ali &lt;<A HREF="mailto:orbit@nettlink.net.pk">orbit@nettlink.net.pk</A>&gt;
<BR>Subject: VGA card Problem with Redhat 6.1
<P> hi
<P> I 've been running with Linux 4 a few years now, using RedHat 6.0
distributions. I'm currently upgrading my computer with RedHat 6.1.
Recently, Redhat 6.1 Running fine, but one small problem with my vga
card...6.1 not configure properly....set automatically my VGA Card on
perverse version(sis 5 series)...my card is sis 6 +series
<P> Does anyone have any ideas as 2 why this would b happening and how 2 correct
it?
<P> CMA
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Tue, 14 Mar 2000 19:07:34 +0100
<BR>From: Laurent STEFAN &lt;<A HREF="mailto:lstefan@europeenne-assurances.com">lstefan@europeenne-assurances.com</A>&gt;
<BR>Subject: MIME and mail ?
<P> How to join a file (.html, .gif or whatelse) in a e-mail with the mail
program ?
<P> I'm using something like :
# ./test.pl | mail someone@somewhere -s"something"
<P> but it result only a full text report in the body.
<P> regards.
<H4>The Editor wrote</H4>
Try the mpack program. I haven't used it, but its opposite munpack
works fine for me. -Ed.
<H4>Laurent responded</H4>
Thanks for mpack, it seems to be a good stuff but it doesn't works with
MIME's type text/html. Maybe I need to add some headers (content-type:) to
my file.
<P> Now a good stuff :
<P> I made a bash script that look like this for the mail process:
<HR WIDTH="20%" ALIGN="left"><PRE>
exec $PROG | mail someone@somewhere.somedom -s "My subject
Mime-Version: 1.0
Content-Type: Text/html
"
</PRE><HR WIDTH="20%" ALIGN="left">
<P> And it works !
<P> So, why not to add a 'boundary=...' with a Multipart/related in
Content-Type and while we are at it a 'Content-Transfert-Encoding: BASE64'
?
<P> If you can tell me where there's a BASE64 encoder ... That would be great !
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Thu, 22 Jul 1999 15:28:09 +0200
<BR>From: Sandeep &lt;<A HREF="mailto:fuhrer6mill@yahoo.com">
fuhrer6mill@yahoo.com</A>&gt;
<BR>Subject: Video Card AbigPRoblem
<P> Hello there,
i am sandeep from india and i have recently Bought a azza MainBoard with Built in Sound Card
(Avance Logic 120) and Video Card (SiS-530(but chip is SiS-5595 (AGP with shared Ram ))) there is a very big problem Linux couldnot recognise the VRAM on the shared Sdram MOdule originally allocated by Award Bios.
The sound card also was not recognised by the new Linux 6.0 version but by 5.2v ver of Red Hat it was recognised as Sound Blaster
not as my original card
as u guys have bveen doing great work i thought that u would be able to solve my problem or direct me to those who can
thankiing u guys
u r really doing a great work
bye
My email address is fuhrer6mill@yahoo.com
(i am calling from a cafe so please do not reply to any other e mail address than given above(fuhrer6mill@yahoo.com)
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Tue, 22 Feb 2000 21:53:22 +0100
<BR>From: Wim van Oosterhout &lt;<A HREF="mailto:vanoosterhout@email.com">vanoosterhout@email.com</A>&gt;
<BR>Subject: ISND PCI128 Trust
<P> Ban anyone tell me how to install my ISDN adaptor?
Kind regards Wim van Oosterhout
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Fri, 17 Mar 2000 12:00:59 -0500
<BR>From: thesun &lt;<A HREF="mailto:thesunray@hotmail.com">thesunray@hotmail.com</A>&gt;
<BR>Subject: Mailbag submission: Help Wanted on Japanese text input
<P> Hi,
<P> I'm new to the Linux Gazette but not new to Linux, and I've had a hell
of a time trying to find clear, step-by-step info about how to
WRITE Japanese under RedHat Linux 6.1. Part of the problem is that I
don't READ Japanese well enough to sift through the Japanese sites, but
I've found a program called "dp/NOTE" from OMRONSOFT which almost
works--apparently, the program is supported by the Japanese version of
RedHat 6.1, but I don't know what RPMs to download to get the thing to
run under the English version...or even if it will run at all. Are
there fundamental differences between the Japanese and the English
versions? Should I set up a dual boot system? Ideally, I'd like to
just run English RedHat but have a program I can pull up that will allow
easy romaji text input and then convert to hiragana, katakana, or
Kanji. There's a nice program by NJStar that does that, but it's
(barf!) Windoze95 only.
<P> Any suggestions or help would be greatly appreciated.
<P> Thanks,
<P> thesunray@hotmail.com
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Fri, 17 Mar 2000 19:20:34 -0500
<BR>From: Clark Ashton Smith &lt;<A HREF="mailto:CAS@FutureRealms.com">CAS@FutureRealms.com</A>&gt;
<BR>Subject: Help with group rights and Netscape Composer
<P> I've search deja news, Linux HowTos, and books, and
I have not seen this error mentioned. Makes me think
it something on my end, but I can't figure out what
it is. I'm hoping someone can help.
<P> I am running RedHat Linux 5.2 and Netscape 4.08.
<P> I created a group called web and made a directory
<PRE>
/usr/local/webauth
</PRE>
<P> I set the group and the SGID bit on that directory
<PRE>
chgrp -v web /usr/local/webauth
chmod -v 2775 /usr/local/webauth
</PRE>
<P> Now for the problem:
<P> Anyone in the web group should be able to save into
that directory. With Netscape composer they can only
edit files that already are in that directory!?!
<P> If I use the "Save As" option in Netscape Composer to
save into that directory I get the following error:
<P> "The file is marked read-only."
<P> The same error occurs using the "Save" option to save
a new file to that directory. BUT, if I open a file
from that directory in netscape, edit it, and use the
"Save" option, it will write over the old file in that
directory. I can edit any existing html files created
by anyone in the "web" group.
<P> What on earth is going on? The users belong to the web
group and they can all create files in /usr/local/webauth
via the touch command or emacs. The users all have a
umask of 002. The files they create with touch or emacs
are all are created
<PRE>
-rw-rw-r-- username.web filename
</PRE>
<P> They can use emacs to open end edit each others files in
/usr/local/webauth, but they can't create new files with
netscape composer! They can only edit existing files and
save them to the same filename.
<P> The only way I can get "Save As" and "Save" to create new
files in /usr/local/webauth is to set the permissions to
<PRE>
chmod -v 2776 /usr/local/webauth
</PRE>
or
<PRE>
chmod -v 2777 /usr/local/webauth
</PRE>
which defeats the whole point of creating special work
groups and protecting the files from being written by
anyone not in the group.
<P> If you can, please shed some light on this.
Thank you.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Mon, 20 Mar 2000 20:05:16 -0000
<BR>From: Tony &lt;<A HREF="mailto:tony@exocomp.free-online.co.uk">tony@exocomp.free-online.co.tony@exocomp.free-online.co.uuk</A>&gt;
<BR>Subject: connecting win98 and Linux
<P> I am relatively new to Linux so please be patient. Can anyone tell me how to
connect my win 98 machine with my Linux server. I used to run win 95 and had
no problems but since using win98 overtime I try to browse my network from
network neighbourhood I am unable to browse the network, I cannot ping the
Linux server either. I am sure that I have TCP/IP installed correctly on
both machines. Any help anyone can give would be most helpful.
Regards
A newly.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Fri, 24 Mar 2000 16:23:30 +0300
<BR>From: Alexandr Redko &lt;<A HREF="mailto:redial@tsinet.ru">redial@tsinet.ru</A>&gt;
<BR>Subject: DNS for home mail not working
<P> For some time I was following the guidelines of article by JC Pollman and
Bill Mote "Mail for the Home Network", Linux Gazette #45 with the aim to
build
my verySOHO net.
<OL>
<LI>Without DNS and sendmail I succesfully established dialup link with my
ISP,
browsed the Net, send and received my mail.
<LI>With caching only DNS the dealings were equally succesfull, DNS dump
showed
that caching really took place.
<LI>I installed sendmail and POP3 on my Linux server. No mail transport
between
it (sasha.asup 10.0.0.5) and W95 client (10.0.0.101).
<LI>I created DNS config files with MX records and got it going but only
within
the local network. No ping except with ISP server and no nslookups.
</OL>
<P> Here is my setup:
<PRE>
Linux Red Hat Cat 6.0
-------------------------------------------------------------
"host.conf"
-------------------------------------------------------------
order hosts,bind
multi on
-------------------------------------------------------------
"nsswitch.conf"
-------------------------------------------------------------
hosts: files dns
-------------------------------------------------------------
"resolv.conf"
-------------------------------------------------------------
search asup
nameserver 10.0.0.5
-------------------------------------------------------------
"named.conf"
-------------------------------------------------------------
options {
directory "/var/named";
forward first;
forwarders {
196.34.38.1;
196.34.38.2;
};
/*
* If there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
};
<P> zone "." {
type hint;
file "db.cache";
};
<P> zone "asup" {
notify no;
type master;
file "db.asup";
};
zone "0.0.10.in-addr.arpa" {
notify no;
type master;
file "db.0.0.10";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "db.127.0.0";
};
-------------------------------------------------------------
"db.asup"
-------------------------------------------------------------
@ IN SOA sasha.asup. redial.asup. (
1 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ) ; Minimum
IN NS sasha
IN MX 10 sasha
sasha IN A 10.0.0.5
sasha IN MX 10 sasha
mail IN A 10.0.0.5
www IN A 10.0.0.5
news IN A 10.0.0.5
localhost IN A 127.0.0.1
asup1 IN A 10.0.0.101
asup1 IN MX 10 sasha
-------------------------------------------------
"db.0.0.10"
-------------------------------------------------
@ IN SOA sasha.asup. redial.asup. (
1 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ) ; Minimum
IN NS sasha.asup.
5 IN PTR sasha.asup.
5 IN PTR www.asup.
5 IN PTR mail.asup.
5 IN PTR news.asup.
101 IN PTR asup1.asup.
----------------------------------------------------------
"db.127.0.0"
----------------------------------------------------------
@ IN SOA sasha.asup. redial.asup. (
1 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ) ; Minimum
IN NS localhost.
1 IN PTR localhost.
----------------------------------------------------------
----------------------
"firewall"
----------------------
:input ACCEPT
:forward REJECT
:output ACCEPT
-A forward -s 10.0.0.0/255.255.255.0 -d 10.0.0.0/255.255.255.0 -j ACCEPT
-A forward -s 10.0.0.0/255.255.255.0 -d 0.0.0.0/0.0.0.0 -j MASQ
----------------------
# echo 1 &gt; /proc/sys/net/ipv4/ip_forward
-----------------------------------
/etc/sysconfig/network
-----------------------------------
NETWORKING=yes
FORWARD_IPV4="yes"
HOSTNAME=sasha.asup
DOMAINNAMEGATEWAY=""
GATEWAYDEV=""
-----------------------------------
With ppp0 up route
----------------------------------------------------------------------------
10.0.0.5 * 255.255.255.255 UH 0 0
0 eth0
196.34.38.254 * 255.255.255.255 UH 0 0
0 ppp0
10.0.0.0 * 255.255.255.0 U 0
0 0 eth0
127.0.0.0 * 255.0.0.0 U 0
0 0 lo
default 196.34.38.254 0.0.0.0 UG 0 0
0 ppp0
----------------------------------------------------------------------------
<P> DNS debug when making nslookup for my ISP server:
----------------------------
datagram from [10.0.0.5].1026, fd 22, len 31
req: nlookup(www.tsinet.ru) id 1755 type=1 class=1
req: missed 'www.tsinet.ru' as '' (cname=0)
forw: forw -&gt; [196.34.38.1].53 ds=4 nsid`421 id55 3ms retry 8sec
retry(0x4011e008): expired @ 953043527 (11 secs before now (953043538))
reforw(addr=0 n=0) -&gt; [196.34.38.1].53 ds=4 nsid"50 id=0 3ms
datagram from [10.0.0.5].1026, fd 22, len 31
req: nlookup(www.tsinet.ru) id 1755 type=1 class=1
req: missed 'www.tsinet.ru' as '' (cname=0)
reforw(addr=0 n=0) -&gt; [196.34.38.2].53 ds=4 nsid`421 id55 3ms
reforw(addr=0 n=0) -&gt; [196.34.38.2].53 ds=4 nsid"50 id=0 3ms
datagram from [10.0.0.5].1026, fd 22, len 31
req: nlookup(www.tsinet.ru) id 1755 type=1 class=1
req: missed 'www.tsinet.ru' as '' (cname=0)
----------------------------
</PRE>
<P> I'll be very greatful if someone say me what I done wrong.
<P> Regards to All
<H4>Bill Mote wrote</H4>
<P> I appreciated the depth to which you went in talking about your invironment,
however, I'm confused about what your problem is. Can you tell me exactly
what isn't working and what you're trying to do please? I'd love to help!
<H4>The Editor asked whether the problem had been solved, and Alexandr wrote
</H4>
<P> Thank you for attention to my petty problem. Sorry to say that I'm in no way
closer to it's solution then in the beginning.
I got two letters (thanks very much ) from JC Pollmann:
<H5>Pollman's letter #1</H5>
<P> A number of things could be causing the problem:
<PRE>
"db.asup"
-------------------------------------------------------------
@ IN SOA sasha.asup. redial.asup. (
1 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ) ; Minimum
IN NS sasha
IN MX 10 sasha
sasha IN A 10.0.0.5
sasha IN MX 10 sasha
mail IN A 10.0.0.5
www IN A 10.0.0.5
news IN A 10.0.0.5
</PRE>
<P> I know they say otherwise, but try using CNAME, eg:
<PRE>
mail IN CNAME 10.0.05
localhost IN A 127.0.0.1
asup1 IN A 10.0.0.101
asup1 IN MX 10 sasha
-------------------------------------------------
"db.0.0.10"
-------------------------------------------------
@ IN SOA sasha.asup. redial.asup. (
1 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ) ; Minimum
IN NS sasha.asup.
5 IN PTR sasha.asup.
</PRE>
you can not use CNAMED names for reverse lookup
<PRE>
5 IN PTR www.asup.
5 IN PTR mail.asup.
5 IN PTR news.asup.
101 IN PTR asup1.asup.
</PRE>
make those changes and do a named restart and see what happens.
<H5>Pollman's letter #2</H5>
<P> copy this to your rc.local file and reboot:
<PRE>
echo "setting up ipchains"
echo "1" &gt; /proc/sys/net/ipv4/ip_forward
# allow loopback, always
/sbin/ipchains -A input -i lo -j ACCEPT
# this allows all traffic on your internal nets (you trust it, right?)
/sbin/ipchains -A input -s 10.0.0.0/24 -j ACCEPT
# this sets up masquerading
/sbin/ipchains -A forward -s 10.0.0.0/24 -j MASQ
#you need this for ppp and dynamic ip address
echo 1 &gt; /proc/sys/net/ipv4/ip_dynaddr
</PRE>
<H5>Alexandr continues</H5>
<P> I did my home work:
<PRE>
---------------
named.conf
---------------
options {
directory "/var/named";
forwarders {
forward.first;
195.34.38.1;
195.34.38.2;
195.34.38.1;
};
/*
* If there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
query-source address * port 53;
};
//
//
zone "." {
type hint;
file "db.cache";
};
zone "asup" {
notify no;
type master;
file "db.asup";
};
zone "0.0.10.in-addr.arpa" {
notify no;
type master;
file "db.0.0.10";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "db.127.0.0";
};
-------------
db.asup
-------------
@ IN SOA sasha.asup. redial.asup. (
1 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ) ; Minimum
IN NS sasha
IN MX 10 sasha
sasha IN A 10.0.0.5
sasha IN MX 10 sasha
mail IN CNAME 10.0.0.5
www IN CNAME 10.0.0.5
news IN CNAME 10.0.0.5
localhost IN A 127.0.0.1
asup1 IN A 10.0.0.101
asup1 IN MX 10 sasha
-------------------------
db.0.0.10
-------------------------
@ IN SOA sasha.asup. redial.asup. (
1 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ) ; Minimum
IN NS sasha.asup.
5 IN PTR sasha.asup.
101 IN PTR asup1.asup.
-------------------------
firewall
------------------------
:input ACCEPT
:forward ACCEPT
:output ACCEPT
-A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 -i lo -j ACCEPT
-A input -s 10.0.0.0/255.255.255.0 -d 0.0.0.0/0.0.0.0 -j ACCEPT
-A forward -s 10.0.0.0/255.255.255.0 -d 0.0.0.0/0.0.0.0 -j MASQ
------------------------
network
------------------------
NETWORKING=yes
FORWARD_IPV4="yes"
HOSTNAME=sasha.asup
DOMAINNAME=
GATEWAY=
GATEWAYDEV=
------------------------
</PRE>
<P> I connect to my ISP by issuing " ipup ppp0 " command, and then my luck ends:
<UL>
<LI>ifconfig reports that my remote address is 195.34.38.254 (ISP's primary
and secondary DNS being 195.34.38.1 and 195.34.38.2) (by the way: why it is
always so, I thought that ISP get dynamic IP for me from some pool and they
must differ from connection to connection);
<LI>ip forward is set;
<LI>route says that 195.34.38.254 is my default route;
<LI>ping for addresses 195.34.38.1, 195.34.38.2 and 195.34.38.254 goes throgh;
<LI>ping for loop and local network 10.0.0.0/255.255.255.0 goes through;
<LI>nslookup for loop and local network goes through;
<LI>mail goes both ends between Linux box (10.0.0.5) and PC with Win98
(10.0.0.101);
<LI>no ping except given above to external internet and no lookups there.
</UL>
<P> Here is excerpt from tcpdump output:
<PRE>
12:39:23.442252 ppp0 &gt; sasha.asup &gt; 195.34.38.1: icmp: echo request
12:39:23.644703 ppp0 &lt; 195.34.38.1 &gt; sasha.asup: icmp: echo reply
..........
12:39:27.434735 ppp0 &gt; sasha.asup &gt; 195.34.38.1: icmp: echo request
12:39:27.574701 ppp0 &lt; 195.34.38.1 &gt; sasha.asup: icmp: echo reply
12:39:28.014857 lo &gt; sasha.asup.1052 &gt; sasha.asup.domain: 30612+ PTR?
10.0.41.198.in-addr.arpa. (42)
12:39:28.014857 lo &lt; sasha.asup.1052 &gt; sasha.asup.domain: 30612+ PTR?
10.0.41.198.in-addr.arpa. (42)
12:39:28.015356 ppp0 &gt; sasha.asup.domain &gt; 195.34.38.1.domain: 37592+ PTR?
10.0.41.198.in-addr.arpa. (42)
............
12:39:29.434740 ppp0 &gt; sasha.asup &gt; 195.34.38.1: icmp: echo request
12:39:29.564708 ppp0 &lt; 195.34.38.1 &gt; sasha.asup: icmp: echo reply
13:26:31.045625 lo &gt; sasha.asup.1075 &gt; sasha.asup.domain: 31874+ PTR?
90.10.8.128.in-addr.arpa. (42)
13:26:31.045625 lo &lt; sasha.asup.1075 &gt; sasha.asup.domain: 31874+ PTR?
90.10.8.128.in-addr.arpa. (42)
13:26:31.046140 if21 &gt; sasha.asup.1071 &gt; 198.41.0.4.domain: 16489+ PTR?
90.10.8.128.in-addr.arpa. (42)
13:26:31.464747 if21 &gt; sasha.asup &gt; 195.34.38.1: icmp: echo request
13:26:31.604706 if21 &lt; 195.34.38.1 &gt; sasha.asup: icmp: echo reply
</PRE>
<P> I got it so that there is some problem with masquerading and my packets just
don't go any further than my ISP's server.
<P> Regards to All
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Fri, 24 Mar 2000 19:13:08 +0200
<BR>From: Ivanus Radu &lt;<A HREF="mailto:ivanusra@cs.ro">ivanusra@cs.ro</A>&gt;
<BR>Subject: I need an answer, pls help me
<P> Hello!
<P> I am proud to announce this: "I'm a 4 day Linux admin, and i'm doing "fine" :) "
<P> OK. Now to the important problems:
<P> 1. I've found that in the Net3-4 HOWTO :
"If you are interested in using Linux for ISP purposes the I recommend
you take a look at the Linux ISP homepage for a good list of pointers
to information you might need and use."
in Net3- HOWTO I found this :
"11. Linux for an ISP ?
<P> If you are interested in using Linux for ISP purposes the I recommend
you take a look at the Linux ISP homepage
<http://www.anime.net/linuxisp/> for a good list of pointers to
information you might need and use."
but the link is broken...
Q: What now? (I am interested in making linux for ISP purposes)
2. A Winmodem solution for Linux users.
If U are luky to have an win9x sistem connected to the linuxbox trought an network card, then do this:
- install a Wingate like SyGate 2.0 for Win on the Win9x box
- In Linux make Default Gateway to link to the Win9x box IP
That's all for the moment :)
<P> TNX
bye.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Fri, 24 Mar 2000 17:29:16 -0800 (PST)
<BR>From: Michael Dupree &lt;<A HREF="mailto:dimebag2go@yahoo.com">dimebag2go@yahoo.com</A>&gt;
<BR>Subject: HELP!!!!!!!!!!
<P> i need some help if u can do so please do. when i am
in a chatroom and stuff on aim people use booters
witch create errors i need a patch for aim that will
stop these errors if u can please do
<BLOCKQUOTE><EM>
<P> [What's "aim"? Is it a Linux program? We publish only questions
dealing with Linux-related issues. Also, are these "errors" things
which crash the browser or are you simply trying to prevent the
roommaster from booting you out when maybe s/he has a legitimate
reason for doing so?
<P> If you really have a program with a bug in it, we need to know what the
program is, who makes it, whether it's standalone or runs with a web
browser, under what circumstances the error occurs, what error messages
you get, and what kind of computer and version of Linux you have. -Ed.]
</EM></BLOCKQUOTE>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Fri, 24 Mar 2000 22:37:50 -0500
<BR>From: Walter Gomez &lt;<A HREF="mailto:lulu@erols.com">lulu@erols.com</A>&gt;
<BR>Subject: HP682 C jet ink color printer
<P> My 682C HP printer is not workin properly. When a print signal is sent,
the printer will move a page in and start flashing the yellow light but
not print the file. I have checked everything I could think about with
no result. Could you help me?
Regards,
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Fri, 24 Mar 2000 22:54:58 -0800
<BR>From: Taro Fukunaga &lt;<A HREF="mailto:tarozax@earthlink.net">tarozax@earthlink.net</A>&gt;
<BR>Subject: Sendmail faster start up!
<P> Hi,
<P> I am having trouble with sendmail. I read an article in the Gazette dated
a few? months? ago about setting up sendmail, but I'm still puzzled.
<P> I am running MkLinux R1 (a RedHat 6.0 implementation) and sendmail takes
forever to startup. Taking a cue from the article, I stopped the
sendmail daemon, started up pppd, and then restarted sendmail. It
started up much faster. Also I've noticed that if I don't have the pppd
up,sendmail tries to ping my other computer (the two are connected by an
ethernet and router). Both machines are at home. The other machine does
not have ppp set up yet. Well if I don't want to start pppd immediately
on boot, what can I do to make sendmail start up faster?
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Sat, 25 Mar 2000 12:39:14 +0200
<BR>From: Serafim Karfis &lt;<A HREF="mailto:serakar@vero.gr">serakar@vero.gr</A>&gt;
<BR>Subject: Linux as a mail server
<P> I am trying to find instuctions on how to use my Linux server as a mail
server for my company. I have a registered domain name, a permanent connecion
to the internet and unlimited number of e-mail accounts under my domain name.
Please keep in mind that I am a new Linux user, so any instructions have to be
detailed for me to understand. Thank you in advance.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Sun, 26 Mar 2000 23:16:30 +0530 (IST)
<BR>From: nayantara &lt;<A HREF="mailto:ndeep_b@yahoo.com">ndeep_b@yahoo.com</A>&gt;
<BR>Subject: insmod device or resource busy
<P> Hi,
I'm running 2.2.12....
I wrote a module that goes:
<PRE>
#define MODULE
#include <linux/module.h>
int init_module(void)
{
printk("<1>It worked!\n");
return 0;
}
void cleanup_module(void)
{
printk("<1>All done.\n");
}
</PRE>
<P> now, i compile this and when i insmod it, it printk's It worked! but then
gives me :could not load module device or resource busy.
what am i missing? what resource is busy?
(I looked through the FAQ's but didn't find anything.....so if i missed it
please bear with me)
<P> Thanks,
Deepa
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Tue, 28 Mar 2000 15:43:10 +0100
<BR>From: Luis Neves &lt;<A HREF="mailto:luis.neves@netc.pt">luis.neves@netc.pt</A>&gt;
<BR>Subject: Xircom CE3 10/100 and Red Hat 6.1
<P> Hello,
<P> I have a toshiba laptop with Red Hat's 6.1 Linux installed. I also have a
Xircom 10/100 Ethernet Adapter.
I know that xircom doesn<73>t provide any drivers for Linux and the
compatibility list
regarding ethernet adapters from RH 6.1 doesn<73>t include xircom cards.
Is there any workarround ?
How can I get it to work ?
<P> Thanks in advance,
<P> Luis Neves.
<P> luis.neves@netc.pt
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Tue, 28 Mar 2000 16:16:49 GMT
<BR>From: hasan jamal &lt;<A HREF="mailto:hasanjamal@hotmail.com">hasanjamal@hotmail.com</A>&gt;
<BR>Subject: Re: source code of fsck
<P> I need the source code of "fsck", the file system checker under the
/sbin directory.
I have searched most of the ftp archives related to linux and did not
find anywhere.
I got RedHat &amp; SuSe distribution, in none of them I found.
I would be grateful if anybody can give me the source code or the ftp
site.
<P> Md. Hasan Jamal
Bangladesh
<H4>The Editor wrote</H4>
<P> It should be included in your distribution. I know only Debian, so
when I type "dpkg -S fsck" it shows me fsck and fsck.ext2 are in the
"e2fsprogs" package. (There are other fsck modules for different
filesystem types in other packages, including "util-linux".) Rpm (and
yast?) do a similar thing but with different command-line options.
Find the appropriate command on your system and it will show which
package the program comes from. Probably e2fsprogs*.srpm or
util-linux*.srpm or a similar file will have the source you want.
<H4>Hasan responded</H4>
<P> I got it in SuSE.
Thanks a lot for such a quick reply.
<a name="gen"></a>
<P> <hr> <P>
<!-- =================================================================== -->
<center><H3><font color="maroon">General Mail</font></H3></center>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Wed, 1 Mar 2000 11:45:34 -0600
<BR>From: Scott Morizot &lt;<A HREF="mailto:tmorizot@adc.is.irs.gov">tmorizot@adc.is.irs.gov</A>&gt;
<BR>Subject: Pine and Pico not "open source"?
<P> I just got around to reading the February edition of Linux
Gazette. I was more than a little perplexed by the claim
in the article about nano that pico and pine weren't "open
source".
<P> While it's true that pine and pico aren't under the GPL,
neither are many other open source stalwarts like sendmail
and apache. Even a quick read of the license
<A HREF="http://www.washington.edu/pine/overview/legal.html">
http://www.washington.edu/pine/overview/legal.html</A>
<P> makes it clear that the source can be used for any use,
even commercial, that it can be modified, and that it can
be distributed. I certainly don't see anything that
would prevent it from being considered open source.
<P> Oh, and the source is available, of course. Always has
been.
<P> And, although you can't get the pico source separately from
the entire source tree, you can build just pico or, if
your OS is one of the supported ones, download a pico
binary for your systems from the unix-bin directory.
<A HREF="ftp://ftp.cac.washington.edu/pine/unix-bin/">
ftp://ftp.cac.washington.edu/pine/unix-bin/</A>
<P> Not that nano isn't a perfectly good editor and effort. There
can't be too many. But keep the facts about pine and pico
straight.
<H4> Scott Morizot &lt;<A HREF="mailto:tmorizot@adc.is.irs.gov">tmorizot@adc.is.irs.gov</A>&gt; wrote</H4>
<P> Ummm. GPL'ed software is protected under copyright also. So is
sendmail. So is apache. All of those licenses are licenses to use
copyrighted software. UW's is just another license to use copyrighted
software. But all free software protected by a license is copyrighted
software and includes some sort of restrictions on its use. GPL software
is no less under copyright than software under any other license.
In fact, copyright is what allows the GPL to make the restrictions on
use that it does. Software that is not under copyright is in the public
domain and absolutely no restrictions may be made on its use at all.
<P> I didn't see anything in the legal notice that would constrain the
redistribution of binary versions of pico. And, in fact, binary versions
of pico are redistributed with most distributions of Linux.
<P> While it's not GPL, I still fail to see any terms in the UW pine license
that cause it not to meet the open source definition.
<BLOCKQUOTE><EM>
[The license does not allow you to distribute modified binaries of
pine. (Hint: all the Packages in your Linux distribution are "modified
binaries", because they undergo customization to adhere to the distribution's
overall standards.) This is why it's not "open source". Pine is not
included in Debian. Instead, you install special packages which include
the source and diffs and compile it yourself. -Ed.
</EM></BLOCKQUOTE>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Tue, 29 Feb 2000 11:40:06 +0100
<BR>From: Linux Gazette &lt;<A HREF="mailto:gazette@ssc.com">gazette@ssc.com</A>&gt;
<BR>Subject: FAQs
<P> The following questions received this month are answered in the
<A HREF="http://www.linuxgazette.com/faq/index.html">Linux Gazette FAQ</A>:
<UL>
<LI> Is it possible to receive the Linux Gazette in HTML format by
email?
</UL>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Thu, 2 Mar 2000 17:17:31 -0800
<BR>From: Systems Administrator &lt;<A HREF="mailto:sysadmin@ssc.com">sysadmin@ssc.com</A>&gt;
<BR>Subject: Duplicate announcement on lg-announce
<P> Some time ago you had trouble with your mailinglist (lg-announce). Your
latest announcement was received twice, I therefore attach a text file with the
headers from the two messages. I hope this will help you to fix the problem.
<BLOCKQUOTE> <EM>
[The latest round of duplicates was caused by the same problem as
the ones last fall--a certain subscriber or their ISP had a
misconfigured mail program which sent the message back to
the list. This address was in the middle of the Received: lines
of all the duplicate message samples we saw.
<P> There are some mailers (Windoze?) which do not honor the
envelope-to field of forwarded mail as they should, but instead think
they should send it to everybody in the To: header--even though this
has already been done. And majordomo's code to detect this sort of loop
appears to be broken. While we work on a solution at the software
level, we have unsubscribed that address and complained to the user and
his/her postmaster.
<P> The two cases involved different users on different continents.
So we cannot guarantee it won't happen again, but will continue to
unsubscribe addresses as they are detected. -Ed.
</EM> </BLOCKQUOTE>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Fri, 3 Mar 2000 01:38:37 -0800 (PST)
<BR>From: Matthew Thompson &lt;<A HREF="mailto:mattyt@oz.net">mattyt@oz.net</A>&gt;
<BR>Subject: Microsoft OS's, their pricing and Linux
<P> Greetings,
<P> Perhaps someone has brought this up before, but I have YAMSCT (Yet another
Microsoft conspiracy theory :). Maybe this whole thing about them not
being able to combine the NT kernel with the Win9x series of OS's is a
ruse.
<P> If they did that, based on the current anti-trust scrutiny, they'd
have to lower the price of WinNT/2000/whatever to the price of Win98/ME.
They'd never be allowed to force home users to pay the premium price that
businesses are now paying for Win2KPro on the desktop.
<P> So as long as they have 2 separate product lines, they can charge
basically double for Win2000 that gets sold to businesses. They would
completely lose those higher profit margins if they merged the products.
<P> I know I'm preaching to the proverbial choir, here, but it will take Linux
to end this. But only when you can have it *all* (I'm typing this from a
telnet session to my Debian box from Win98SE, since I want to use all the
features of RealPlayer 7, java, Diablo and Descent 3). I'm hopeful that
Mozilla will cure the java problems under Netscpape (does anyone know if
this will be the case?), more games are coming out for Linux all the
time, but what about multimedia apps? Is there Free project out there to
fill this gap? I haven't heard anything about Real releasing a fully
functional RealPlayer for Linux, especially as a plug-in.
<P> As much as it pains me to say it, right now I'm afraid Linux *is* lacking
on the desktop. Here I am, a Linux evangelist (practically a zealot, ask
my friends) and I spend more time in Win98 than I do Linux because of the
games and internet apps available.
<P> What can we do about this? Is it enough to send emails to companies like
Real to get them to release the same software for Linux that they do for
Windows? We certainly can't expect MS to release Media Player 6.4 (which
*is* an excellent app, btw) for Linux.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Fri, 3 Mar 2000 16:05:32 -0700
<BR>From: Jim Hill &lt;<A HREF="mailto:jimhill@meldrick.swcp.com">jimhill@meldrick.swcp.com</A>&gt;
<BR>Subject: Drop that comic strip pronto
<P> The guy doing your strip can't draw and isn't funny. One can conceivably
get away with a lack of either skill or humor but certainly not both.
<P> Thanks for your 15 seconds.
<BLOCKQUOTE> <EM>
[Since the </EM>Gazette<EM> is a do-it-yourself enterprise, if you
don't like something, it's up to you to send in something better. :)
-Ed.]
</EM> </BLOCKQUOTE>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Mon, 6 Mar 2000 20:33:03 -0800
<BR>From: &lt;<A HREF="mailto:fuzzybear@pocketmail.com">fuzzybear@pocketmail.com</A>&gt;
<BR>Subject: RE: Who is Jim Dennis?
<BLOCKQUOTE>
<P> From SeanieDude on Tue, 21 Sep 1999
Why the f*ck is your name listed so damn much in hotbot?
</BLOCKQUOTE>
<P> Dear SeanieDude:
<P> The reason the Godfath... err, Mr. Jim Dennis appears so often in a HotBot
search is that, as the current head of the Maf... err, a large syndicate, he is
being investigated due to a totally unfounded accusation: namely, that everyone
who has ever been rude to him, *particularly* via e-mail, seems to have
suffered unfortunate accidents.
<P> Should your precarious health NOT fail shortly, for some inexplicable
reason, take this as a guide for your future behavior:
<P> NEVER be rude to people you don't know anything about, in e-mail or
otherwise.
<P> Hoping that you're still around to take good advice,
Consigliori Ben Okopnik
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Thu, 9 Mar 2000 13:49:49 -0700
<BR>From: Vrenios Alex-P29131 &lt;<A HREF="mailto:Alex.Vrenios@motorola.com">Alex.Vrenios@motorola.com</A>&gt;
<BR>Subject: RE: Article Submission
<P> Mike Orr,
<P> I have three articles on your web site so far and you might be happy to know
that LG is an inspiration to me. This won't happen over night, but I am
starting my own web site magazine about early computers and their use, at
<A HREF="http://www.earlycomputing.com/">
http://www.earlycomputing.com/</A> . You probably have a good deal of experience
with the issues surrounding such a venture so any words of wisdom would be
greatly appreciated. (Mine will be more a labor of love than a money making
enterprise.)
<P> I look forward to contributing to LG again in the future in any event, as
the focus of your site and mine are quite different. Thanks in advance.
<BLOCKQUOTE> <EM>
[I'll help out if I can. I only began editing the Gazette eight
months ago, and it's been around for five years. So I can't say much
about starting an ezine; just how to keep it going.
<P> I'm wondering whether you can get enough articles about early
computing to have a regular "zine", or if just a "site" where you can
post articles as you receive or write them would be just as well? I am
surprised at how many people are willing to contribute to the Gazette.
Every month I used to wonder whether I'd get only a few articles that
month, but so far I've always gotten plenty to make a full zine. But
that will be more difficult with a more specialized topic, and
especially at the beginning when you're not as well known.
<P> Feel free to send me any other questions you have. maybe we can
make an article or section in the Mailbag eventually about starting a
zine. Maybe you'll feel like writing an article about your experience
setting up an early computer zine, how you're doing it
similar/differently than the Gazette, etc. Not exactly Linux related,
but I'm the editor so I can put in anything I want. Plus I know that
there is an interest in early computers among Linux folk: we got an
article about emulators recently and another person is also writing
another article about emulators now. -Ed.]
</EM></BLOCKQUOTE>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Sun, 12 Mar 2000 20:52:18 -0500
<BR>From: Doc Simont &lt;<A HREF="mailto:mdsimont@snet.net">mdsimont@snet.net</A>&gt;
<BR>Subject: Gandhi quote
<P> To Whom it may Concern --
<P> I would be interested to know the source of the (great) quote that you
use at the top of your web page:
<P> "One cannot unite a community without a newspaper or jounal of some
kind."
<P> I am one of a number of volunteers who manage to produce a surprisingly
high-quality monthly "newspaper" for our small town in NW Connecticut.
It might be something we could use, but our standards prevent us from
taking attributions without verification. Too often something
attributed to Abraham Lincoln turns out to really have come from Dante
(or vice-versa) ;-).
<P> Any pointers toward the source would be very much appreciated.
<BLOCKQUOTE> <EM>
[It's from the movie </EM>Gandhi<EM>. We don't know whether Gandhi
himself said it. -Ed.]
</EM> </BLOCKQUOTE>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Mon, 13 Mar 2000 09:49:26 -0700 (MST)
<BR>From: Michael J. Hammel &lt;<A HREF="mailto:mjhammel@graphics-muse.org">mjhammel@graphics-muse.org</A>&gt;
<BR>Subject: correction to your Corel Photo-Paint story
<P> Stephen:
<P> In your C|Net article on Corel's release of Photo-Paint for Linux,
(<A HREF="http://news.cnet.com/news/0-1003-200-1569948.html">http://news.cnet.com/news/0-1003-200-1569948.html</A>)
you mentioned Gimp and Adobe as Corel's most likely competitors. This isn't
exactly true. First, Gimp has no marketing or business structure. Not even a
non-profit. So, although its a terrific program, it lacks the exposure
that a commercial application can get. In the long run, this may hurt it.
<P> (I actually toyed with the idea of trying to form a non-profit or even a
for-profit to keep Gimp a strong product, but coming up with a business
model for this type of application is difficult. Its not likely selling the
OS, where service and support can bring in significant income.)
<P> Adobe's move into Linux is limited, so far, to its PDF and word processing
tools. Its not, as far as I know, doing anything about porting is graphics or
layout applications (though Frame is probably considered a layout too by
many). Corel's not really competing with Adobe in graphics on Linux yet.
<P> <A HREF="http://www.mediascape.com">Mediascape</A> is about ready to
launch its vector based ArtStream for Linux next month. This will be the first
entry into the Linux layout tools market. Not long after that, Deneba
(www.denebe.com) is expected to launch their Linux version of Canvas 7, a
popular Mac image editing tool with vector, layout, and Web development
features. These would be Corel's main competitors in the vector graphics
arena. Gimp remains a competitor in the raster-based image editing front, but
the lack of prepress support and and organizational structure could eventually
become a problem.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Fri, 17 Mar 2000 18:36:30 EST
<BR>From: &lt;<A HREF="mailto:PoiPuPy@aol.com">PoiPuPy@aol.com</A>&gt;
<BR>Subject: subscription
<P> Hello,
I'm looking to find a postal address to you...? I do volunteer work with an
inmate pen pal site:
<A HREF="http://members.xoom.com/crosllinked/index.htm">
http://members.xoom.com/crosllinked/index.htm</A>
Today I received a request from an inmate, wanting any type of subscription
to any site who offers news on Linux Operating Sytems.
Thank You for your time.
Sandy
<BLOCKQUOTE><EM>
<P>[Our address is:
<PRE>
Attn: Linux Gazette
Specialized Systems Consultants, Inc.
PO Box 55549
Seattle, WA 98155-0549 USA
</PRE>
<P> ...but I'm not sure what that will gain him. The </EM>Gazette<EM> is not
available by mail, unless a reader (you?) would be willing to print it out and
send it to him. Otherwise, he would have to read it online or via the FTP
files or a CD.
<P> Of course, </EM>Linux Journal<EM> is available by mail if he wants that.
A text order form is at
<A HREF="http://www.linuxjournal.com/subscribe/subtext.txt">
http://www.linuxjournal.com/subscribe/subtext.txt</A>
which you can print and have him mail in. -Ed.]
</EM></BLOCKQUOTE>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Wed, 22 Mar 2000 08:12:40 +0100
<BR>From: Morgan Karlsson &lt;<A HREF="mailto:morgan.karlsson@nordiskcarbonblack.se">morgan.karlsson@nordiskcarbonblack.se</A>&gt;
<BR>Subject: translation of linux gazette articles
<P> Hello,
My name i Morgan Karlsson and I'm a new member of the se.linux.org family.
I wonder if it's ok to translate articles from you to swedish and publish them
on our
website <A HREF="http://www.se.linux.org">www.se.linux.org</A>?
Or even if we get enough people working with it translate every number of you
fantastic magazine
in swedish. What do you think about this?
<BLOCKQUOTE><EM>
<P> [Certainly. We welcome translations.
When your site is ready, please fill out the form at
<A HREF="http://wwwlinuxgazette.com/mirrors.html">
http://wwwlinuxgazette.com/mirrors.html</A>
so that we can add the site to our mirrors list and people will be able
to find you. -Ed.]
</EM></BLOCKQUOTE>
<!-- *** BEGIN copyright *** -->
<P> <hr> <P>
<H5 ALIGN=center>
This page written and maintained by the Editor of the <I>Linux Gazette</I>.
Copyright &copy; 2000, <A HREF="mailto:gazette@ssc.com">gazette@ssc.com</A><BR>
Published in Issue 52 of <i>Linux Gazette</i>, April 2000</H5>
<!-- *** END copyright *** -->
<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="#distro">Distro News</A>
<li><a HREF="#general">News in General</a>
<li><a HREF="#software">Software Announcements</a>
</ul>
</td></tr></table>
</center>
<P> <hr> <P>
<!-- =================================================================== -->
<center><IMG ALT=" " SRC="gx/cover72.jpg" WIDTH=200 HEIGHT=268></center>
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">
April 2000 <I>Linux Journal</I>
</font>
</H3>
<P>
The April issue of <A HREF="http://www.linuxjournal.com/"><I>Linux
Journal</I></A> is on newsstands now.
This issue focuses on the Internet.
<P> <I>Linux Journal</I> has articles that appear "Strictly On-Line".
Check out the Table of Contents at
<A HREF="http://www.linuxjournal.com/issue72/index.html">
http://www.linuxjournal.com/issue72/index.html</A> for articles in
this issue as well as links to the on-line articles.
To subscribe to <I>Linux Journal</I>, go to <A
HREF="http://www.linuxjournal.com/subscribe/index.html">
http://www.linuxjournal.com/subscribe/index.html</A>.
<P>
<font color="green">
For Subcribers Only</font>: <I>Linux Journal</I> archives are available
on-line at
<A HREF="http://interactive.linuxjournal.com">
http://interactive.linuxjournal.com/</A>
<a name="distro"></a>
<p><hr><p>
<!-- =================================================================== -->
<center><H3><font color="green">Distro News</font></H3></center>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">SuSE and Mandrake
</FONT>
</H3>
<P> NUREMBERG, Germany, PASADENA, USA and METZ, France - 2/14/2000 - SuSE
Linux AG, MandrakeSoft and Linbox Inc. are joining forces to develop
Linux Network Computing and bring it to the broadest audience. SuSE Linux
AG, MandrakeSoft and Linbox Inc. are partnering to develop and include in
future versions of Linux distributions the key technologies of the Linbox
Network Architecture. All SuSE Linux and MandrakeSoft users will soon be
able to set up efficient diskless Network Computing solutions based on
Linux.
<P> The Linbox Network Architecture is an open approach to Linux Network
Computing based on diskless standard computers on the desktop side, such
as the Linbox Net Station, and full featured servers, such as the Linbox
Net Server. According to Jean Pierre Laisne', CEO of Linbox Inc., "The
Linbox Network Architecture allows users to bring the power of Linux to
the desktop at minimal costs while still preserving the user's investments
in Windows or MacOS software. Diskless Linbox Net Stations can be set up
in a matter of minutes by users with no previous skills in the Linux
environment and require no maintenance."
<P> Under the joint partnership, SuSE Linux AG, MandrakeSoft and Linbox will
form an open project which will publish the specifications of the Linbox
Network Architecture and the required software under open source
licensing. Development will be held by the Linbox R&amp;D center in the
Lorraine region, France's pioneering region for Linux and Free Software.
All Linux users and businesses are welcome to join the LNA open project.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Best
</FONT>
</H3>
<P> Technology Center Hermia, Tampere, Finland - February 21, 2000
<P> SOT will be releasing their Best Linux operating
system to English-speaking users worldwide for the first time.
The press conference and publication will take place at
CeBIT 2000, Hannover, Germany at 10am, February 24.
<P> "The T-1 beta program was a success. We now have a good reason
to expect the same success with the final English release as
that we've had in Finland. I am sure that the release will
finally dispel the myth of Linux as a server-only operating
system, and will show Linux as a real contender for
the dominating OS. I hope to see you at the press-release
conference at CeBIT 2000" said Santeri Kannisto, CEO, SOT.
<P> The first English version is called Best Linux 2000. SOT
will begin shipping boxes after the release. Boxes will be
available from well-known Linux-resellers and book stores.
Additional information is available at the Best Linux web
site, <A HREF="http://www.bestlinux.net">http://www.bestlinux.net</A>
<P> The Best Linux 2000 boxed set includes some new features
never seen before in Linux. It includes lifetime technical
support and a free update service. Customers are shipped
the latest installation CD to guarantee their Best Linux
is always up-to-date. A boxed set includes also a 400 page
manual, an installation CD, a source code CD, a Linux games CD
and a software library CD providing an easy way even for home
users to start using a complete Linux system.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Caldera
</FONT>
</H3>
<P>
<A HREF="http://www.ecommercetimes.com/news/articles2000/000322-4.shtml">
Caldera IPO Marks First Linux Disappointment</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Mandrake
</FONT>
</H3>
<P> INDIANAPOLIS - March 27, 2000 - Macmillan USA (<A
HREF="http://www.placeforlinux.com">http://www.placeforlinux.com</A>) announced
Secure Server 7.0 for professional server administrators. Macmillan's new
product is a secure Linux web server built within the new Linux-Mandrake(tm)
7.0 operating system.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">MaxOS (Alta Terra)
</FONT>
</H3>
<P> FREDERICTON, NB, March 17 /CNW/ - Mosaic Technologies Corporation and Alta Terra Ventures Corp. have announced an alliance
that will see Mosaic's Linux training programs bundled with Alta Terra's
MaxOS(TM) Linux operating system.
<P> Bringing Linux to the everyday PC desktop user is a
major priority of both Alta Terra and Mosaic.
To help Windows users make the transition to Linux, Mosaic, working with
India's Sona Valliappa Group, will offer a Linux simulator, which runs in a
Microsoft Windows(TM) environment. This allows users to go through the steps
of installing and setting up Linux, without leaving Windows. Mosaic will
follow up with training programs to help users with tasks within Linux itself.
<P>
<A HREF="http://www.mosaictechnologies.com">Mosaic Technologies Corporation</A>
<BR>
<A HREF="http://www.maxos.com">Alta Terra Ventures Corp.</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">SuSE
</FONT>
</H3>
<P> CeBIT, Hannover, Germany (February 22, 2000) - SCO and SuSE
Linux AG, today announced an
agreement to offer SCO Professional Services to SuSE customers, worldwide.
The new offering, along with SCO's global reach, will help extend SuSE's
growth into new markets. The agreement marks the first time SuSE Linux AG
has partnered for professional services on a global level.
<P> The SCO Professional Services offerings are designed to help SuSE's
customers and resellers to get started with planning, installation,
configuration, and deployment of their new SuSE Linux systems.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">TurboLinux
</FONT>
</H3>
<P> Santa Cruz, California, March 13, 2000 - Lutris Technologies Inc., and
TurboLinux Inc., today announced a joint effort to certify and distribute
the Enhydra Java/XML application server for the TurboLinux operating system.
The partnership creates a scalable Open Source foundation for enterprise
e-business application development and deployment.
<P> Lutris and TurboLinux will work together to promote the Open Source
e-business platform. Enhydra will be distributed on the TurboLinux
companion CD and listed in the TurboLinux Application Directory as a premier
development environment. Lutris will provide support, training and
professional services for Enhydra applications running on TurboLinux.
<a name="general"></a>
<p><hr><p>
<!-- =================================================================== -->
<center><H3><font color="green">News in General</font></H3></center>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Upcoming conferences &amp; events
</FONT>
</H3>
<TABLE>
<tr>
<td valign=top>
<b>Colorado Linux Info Quest</b><BR>
<td valign=top>
April 1, 2000<BR>
Denver, CO<BR>
<A HREF="http://thecliq.org">
thecliq.org</A>
<P>
</td></tr>
<tr>
<td valign=top>
<b>Corel Linux Roadshow 2000</b><BR>
<td valign=top>
April 3-7, 2000<BR>
Various Locations<BR>
<A HREF="http://www.corel.com/roadshow/index.htm">
www.corel.com/roadshow/index.htm</A>
<P>
</td></tr>
<tr>
<td valign=top>
<b>Montreal Linux Expo</b><BR>
<td valign=top>
April 10-12, 2000<BR>
Montreal, Canada<BR>
<A HREF="http://www.skyevents.com/EN/">
www.skyevents.com/EN/</A>
<P>
</td></tr>
<tr>
<td valign=top>
<b>Spring COMDEX</b><BR>
<td valign=top>
April 17-20, 2000<BR>
Chicago, IL<BR>
<A HREF="http://www.zdevents.com/comdex">www.zdevents.com/comdex</A>
<P>
</td></tr>
<tr>
<td valign=top>
<b>HPC Linux 2000</b>: Workshop on High-Performance Computing with
Linux Platforms<BR>
<td valign=top>
May 14-17, 2000<BR>
Beijing, China<BR>
<A
HREF="http://www.csis.hku.hk/~clwang/HPCLinux2000.html">
www.csis.hku.hk/~clwang/HPCLinux2000.html</A>
<P>
(In conjunction with <A
HREF="http://www.cs.wm.edu/hpcs/HPCAsia2000.html/">
HPC-ASIA 2000</A>:
The Fourth International Conference/Exhibition on
High Performance Computing in Asia-Pacific Region)
<P>
</td></tr>
<tr>
<td valign=top>
<b>Linux Canada</b><BR>
<td valign=top>
May 15-18, 2000<BR>
Toronto, Canada<BR>
<A HREF="http://www.linuxcanadaexpo.com">www.linuxcanadaexpo.com</A>
<P>
</td></tr>
<tr>
<td valign=top>
<b>Converge 2000</b><BR>
<td valign=top>
May 17-18, 2000<BR>
Alberta, Canada<BR>
<A HREF="http://www.converge2000.com">www.converge2000.com</A>
<P>
</td></tr>
<tr>
<td valign=top>
<b>SANE 2000</b>: 2nd International SANE (System Administration and
Networking)
Conference<BR>
<td valign=top>
May 22-25, 2000<BR>
MECC, Maastricht, The Netherlands<BR>
<A HREF="http://www.nluug.nl/events/sane2000/index.html">
www.nluug.nl/events/sane2000/index.html</A>
<P>
</td></tr>
<tr>
<td valign=top>
<b>ISPCON</b><BR>
<td valign=top>
May 23-25, 2000<BR>
Orlando, FL<BR>
<A HREF="http://www.ispcon.internet.com">www.ispcon.internet.com</A>
<P>
</td></tr>
<tr>
<td valign=top>
<b>Strictly Business Expo</b><BR>
<td valign=top>
June 7-9, 2000<BR>
Minneapolis, MN<BR>
<A HREF="http://www.strictly-business.net">www.strictly-business.com</A>
<P>
</td></tr>
<tr>
<td valign=top>
<b>USENIX</b><BR>
<td valign=top>
June 19-23, 2000<BR>
San Diego, CA<BR>
<A HREF="http://www.usenix.org">www.usenix.org</A>
<P>
</td></tr>
<tr>
<td valign=top>
<b>LinuxFest</b><BR>
<td valign=top>
June 20-24, 2000<BR>
Kansas City, KS<BR>
<A HREF="http://www.linuxfest.com">www.linuxfest.com</A><BR>
<P>
</td></tr>
<tr>
<td valign=top>
<b>PC Expo</b><BR>
<td valign=top>
June 27-29, 2000<BR>
New York, NY<BR>
<A HREF="http://www.pcexpo.com">www.pcexpo.com</A><BR>
<P>
</td></tr>
<tr>
<td valign=top>
<b>LinuxConference</b><BR>
<td valign=top>
June 27-28, 2000<BR>
Z&uuml;rich, Switzerland<BR>
<A HREF="http://www.linux-conference.ch">www.linux-conference.ch</A><BR>
<P>
</td></tr>
</TABLE>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Winners of Design Competition to Speak at Open Source
Convention
</FONT>
</H3>
<P> February 14th -- Software Carpentry is pleased to announce that O'Reilly
&amp;
Associates has invited the winners in each category of its design
competition to present their work at the 2nd Annual Open Source Software
Convention in Monterey, CA, July 17-20, 2000.
<P> So far, 27 individuals and groups have indicated that they will be
submitting a total of 39 designs. The deadline for first-round entries is March
31, 2000; for more information, see the Software Carpentry web site at:
<A HREF="http://www.software-carpentry.com">http://www.software-carpentry.com</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">RE: LinkUall.com Intro
</FONT>
</H3>
My name is Arnold White and I have a free collaboration software called
LinkUall. With LinkUall.com - you can use LinkUall to post events in your
calendar, chat, create projects, download documents etc... all for free. I
think this would be a great enhancement to your site, and invite you to
visit <A HREF="http://www.linkuall.com">www.linkuall.com</A>! Please let me
know what you think, and remember it's all free!
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Linux Support for Trisignal's Phantom Embedded Modem
</FONT>
</H3>
<P> HANNOVER, GERMANY, Feb. 28, 2000 -- TRISIGNAL
Communications, a Division of Eicon Technology Corporation, today
announced the availability of its Phantom (TM) Embedded Modem reference design
for the Linux operating system.
<P> This new, off the shelf, pre-ported design will be immediately available for
license to OEMs, allowing them to quickly bring to market any product running
Linux and requiring V.90 modem connectivity, such as Internet appliances. The
embedded Phantom design comes with all the necessary modem code and engineering
support required for final integration by the OEM. Manufacturers that license
this embedded modem design can benefit from TRISIGNAL?s core software code which
has an installed base approaching 20 million units.
<P> <A HREF="http://www.trisignal.com">http://www.trisignal.com</A>.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Computer I/O announces the Easy I/O Server and partnership with MonteVista Software
</FONT>
</H3>
<P> Chicago, IL - February 29,
2000 -- Computer I/O Corporation, a provider of software and services
that simplify network access to live and real-time data streams, today
announced the release of the Easy I/O Server, a Linux-based network I/O
server. The Easy I/O Server is a flexible network I/O appliance that
leverages the versatility of Linux and Computer I/O's new middleware technology
to bring cost-effective, real-time networked data streaming capabilities
to embedded and enterprise application developers.
<P> The Easy I/O Server delivers an entirely new approach to the creation and
remote access of I/O servers, peripherals, and appliances for telecommunica
tions, multi-media, or any other application utilizing real-time data streams.
It's I/O middleware technology provides unified interfaces for applications,
network access, and real-time data collection and transfer. Computer I/O
designed Easy I/O to allow application developers to quickly deploy and access
a streaming data server without the need to understand low-level real-time and
network programming issues. With its browser-based hardware configuration
interface, and universal application programming interfaces, the Easy I/O
Server helps reduce software development and maintenance costs, and cuts the
time to market for new embedded and enterprise network data applications.
<P> <A HREF="http://www.computerio.com">www.computerio.com</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">A new e-commerce server, and how the company uses Linux
</FONT>
</H3>
<P> Internet Technologies, Inc. (Inttek (TM)) has developed a highly
effective E-Commerce System with the ability to work directly with
Hell's Kitchen Systems CCVS.
<P> For more information, visit our site:
<A HREF="http://www.penguincommerce.com">www.penguincommerce.com</A>. Visit <A
HREF="http://www.megcor.com">www.megcor.com</A> for a working commercial
example. The megcor.com site sold almost $1000.00 in golf equipment the first
weekend it went live. More examples will be coming soon.
<P> The System is hosted on a remote Application Server -- The only required
on-site hardware/software is a PC and Web Browser. No knowledge of HTML is
needed.
<P> Technical Overview:
<P> Penguin Commerce uses proprietary Software Developed by Internet
Technologies, Inc.
<P> Penguin Commerce is based on the following:
<P> Red Hat Linux (currently running on 5.2)
<P> Red Hat Secure Server -- (based on Red Hat Secure Server with
modification)
<P> Our secure web servers run a customized version of the Red Hat Secure
Server release. We continually upgrade and improve these servers for
maximum security.
<P> MySQL Database Engine
<P> PHP Version 4 (including custom Inttek extensions)
<P> Various types of Open Source Image processing software
<P> PGP Encryption Technology
<P> PGP is used throughout our E-Commerce solutions to provide security for
sensitive data. For example, before customer credit card numbers are
stored in the MySQL database, they are encrypted to ensure privacy in
the event that the data transmission to the MySQL server is compromised.
<P> Hell's Kitchen Systems CCVS (including custom network connection
program)
<P> HKS CCVS software runs on a separate server, connected to the secure web
server via a private Ethernet connection utilizing non-routed IP
addresses. This, plus aggressive packet filtering, guarantees that the
CCVS server is available for connections from the secure server only.
All access to the CCVS server is controlled to prevent unauthorized
access to any credit card numbers stored in plain text form.
<P> Connections to the CCVS software are made through the standard Linux
inetd service, which calls an intermediary program to translate commands
and output between the secure web server and the CCVS software. This
intermediate software, written in C with the CCVS C language API, is
designed as an extra layer of abstraction, insulating the web programmer
from the details of credit card processing, and generalizing the credit
card processing interface. This will allow us to present a consistent
interface to web designers and programmers, regardless of the details of
our credit card processing implementation. Our intent was to keep the
credit card intelligence on the CCVS server, not the web server.
<P> An overview of the physical layout is as follows:
<PRE>
(Internet)
|
General Firewall (running RedHat Linux)
|
Apache Web Server running PHP4 and MySql (running RedHat Linux)
|
Secure Server Running the RedHat Secure Server Distribution
|
(Private Ethernet Segment)
|
HKS CCVS Server Running CCVS and custom CCVS connection software
(running RedHat Linux)
|
Modem with phone line to connect to Vendors Merchant Account (For
security purposes, the HKS CCVS Server will not accept incoming phone
calls via the modem)
</PRE>
<P> Milestone achievements of Inttek or Inttek engineers that involved
Linux:
<UL>
<LI>1991 David McGough began tracking progress of Linux as it evolved
from Minix.
<LI>1993 First Linux installations (used Linux for Internet Gateways,
E-mail servers, etc).
<LI>1994 Used Linux for application hosting and file serving (using
SAMBA) for Lower Cape Fear Hospice, and related agencies.
<LI>1995 Installed 2.4GHZ wireless Network for Lower Cape Fear Hospice.
<LI>1995 Demonstrated Wireless Networking Capabilities at Chamber of
Commerce Business Expo
<LI>1995 Development, sales and support of Servers and related ISP
support equipment for Wilmington Internet Services Enterprises
<LI>1996 Incorporated as Internet Technologies, Inc.
<LI>1996 Development, sales and support of Servers and related ISP
support equipment for ISAAC Internet
<LI>1996 Setup Wireless Test Link from top of Solomon Towers to ISAAC
Internet. Developed modified RedHat 3 system to interface reliably with
<LI>data radios. Server included Firewall, web server, cgi support,
etc. Maintained Server remotely for over 16 months WITH NO CRASHES. The server
was locked in a utility room on the 11th floor that we didn't have direct
access to. This is an indication in our confidence in the stability of the
Linux server.
<LI>1996 Started installing point-to-point wireless LAN systems
commercially.
<LI>1996 Installed aggressive Redhat Linux based Internet Gateway /
Router for Wilmington Shipping company. This system provides an
integrated solution for Internet Services, Network printing and file
services, etc., to all 13 Frame-Relay-Linked US offices for Wilmington
Shipping / Southern Overseas. Also, installed RedHat Linux based WAN
systems for several Southern Overseas Offices. These systems used WAN
interface adaptors from Sangoma, and all have maintained better than
99.5% uptime. These systems are still in use today.
<LI>1997 Designed, and started Installation of a very aggressive Wireless
<LI>LAN system for the Wilmington Housing Authority. Wireless links ranging
from 115 KBPS to 3.2 MBPS to connect all WHA remote offices to the WHA
main office, using a centralized repeating point. Developed Outdoor
Enclosure systems to contain Radio / Data Equipment. Use Redhat Linux
based Servers for Routing.
<LI>1997 Inttek became an ISP (November). We are 100% RedHat Linux based
(all dial-in servers, Internet servers, routers, etc).
<LI>1998 Inttek Launched Software development department. Focus was on
developing Web Based Applications.
<LI>1998 Developed the WECT Live Weather System and web based admin
consoles for content and weather updates.
<LI>1998 Leased Rooftop of Solomon Towers and established our first
Commercial Wireless Internet Access WMAN Repeating Station. This
Station currently provides 3.2Mbit Wireless Metropolitan Area
Networking, T-1 speed wireless Internet Access in the down town
Wilmington Area, Up to approx. 8 miles outside of Wilmington down the
Hwy 421 Industrial Corridor.
<LI>1998 Developed remote controlled wireless Video / and weather
monitoring system. System connected wirelessly over a path of 10.5
miles from our downtown repeating station to an enclosure on the roof of
<LI>the Oceanic Restaurant in Wrightsville Beach. System allowed us to
remote control cannon video conferencing camera and receive live weather
<LI>information. This data was posted to a web site.
<LI>1998 Designed, installed, and maintain the Wireless Citywide network
for the town of North Myrtle Beach, SC.
<LI>1998 Became Authorized Wave Access Value Added Reseller
<LI>1999 Became Authorized Lucent WaveLan / Wave Access VAR (Lucent
Acquired Wave Access)
<LI>1999 Became Authorized SCO Unix VAR
<LI>1999 Developed the WECT Web Classifieds System
<LI>1999 Installed 3.2 MBPS wireless link from downtown Wilmington to
Bolivia. This link provided 3.2 MBPS wireless data communication over a
<LI>path length of 18.5 miles. The installation the main Brunswick County
Municipal Complex with T-1 Internet Connectivity. This physical
installation is located 450' up a radio communications tower, and uses
RedHat Linux based routers!
<LI>1999 Installed 3.2 MBPS wireless link from Bolivia to Yaupon Beach,
using a
water tower as a repeating point. This is over a path of 11.5 miles.
This repeater then connects to our Oak Island Office and provides
Internet/WAN Access for our employees, dedicated clients, and dialup
clients. The Yaupon Tower Repeater can provide wireless Internet /
Network connectivity for the majority of the island. The Bolivia Tower
Repeater has the potential to tie in all 19 Brunswick county
municipalities to the main complex.
<LI>1999 Developed Linux based experimental region-wide weather
monitoring system (<A HREF="http://ilmwx.inttek.net">ilmwx.inttek.net</A>).
This system was used extensively by the national hurricane center and the
national weather service during Hurricane Flyod.
<LI>1999/ 2000 Extensive effort in development of web-based software
and E-Commerce Applications. Development of the Penguin Commerce E-Commerce
System.
<LI>2000 Developed Water billing system (in MS Access) and developed
Palm Pilot Application for data entry -- plan to port to Web Based Solution
</UL>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Qarbon.com and SuSE Inc. Debuts Linux Viewlet Project
</FONT>
</H3>
<P> Qarbon.com, the originator of Viewlets, and SuSE Inc, a leading
international Linux distribution, announced the launch of Qarbon.com's "The
Linux Viewlet Project." Viewlets are a Web innovation that changes help
files and FAQ's into vivid and dramatic "How To" demonstrations that "show"
rather than "tell" a user how to perform a specific computing task. The
introduction of Viewlets to the Linux community allows Linux developers and
users from around the world to create, use and exchange Viewlets, which
answer thousands of questions. Keeping with the Linux spirit, Viewlets are
free to everyone on the net. Qarbon.com's business model includes a free
Viewlet
development tool, advertising-based revenue sharing for Viewlet authors and
participating web sites,and a Viewlet syndication process designed to
promote the use
of Viewlets across the web.
<P> To see some of the first Viewlets built around SuSE's Linux 6.3 go to
<A HREF="http://www.teach2earn.com/linux/">www.teach2earn.com/linux/</A>.
Viewlets are expected to be a boon to increasing the use of Linux as users and
developers see how Viewlets solve problems, reduces help desk calls and
facilitates installation and use.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">MyFreeDesk: coming soon to a Jordanian cybercafe near you
</FONT>
</H3>
<P> MINNEAPOLIS-March 15, 2000-
<A HREF="http://www.myfreedesk.com">MyFreeDesk.com</A> announced today that
Quality Internet of Jordan, Inc., a chain of Internet cafes in the Middle East,
will offer ad-free versions of the MyFreeDesk.com web-based office suite on its
computers beginning April 1, 2000. Quality Internet customers who traditionally
visited the cafes to browse the Internet or play online games will now have the
added benefit of a complete office suite of personal computer applications.
MyFreeDesk includes a fully featured word processor, spreadsheet, presentation
program, database, email manager and Web page editor.
<P> Quality Internet charges its customers an hourly rate to use its computers.
MyFreeDesk will receive 50 percent of Quality Internet's proceeds from
customers who pay for the ad-free version of MyFreeDesk. Quality Internet
expects to open 12 Internet cafes throughout the country of Jordan during the
year 2000.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Linux directories from MyHelpDesk
</FONT>
</H3>
<P> <A HREF="http://www.myhelpdesk.com">MyHelpdesk.com</A> unveiled directories
of technical support and productivity information for 20 distributions of the
Linux operating system and some of the most popular Linux applications. The
free directories will include help for Linux Web browsers, graphical desktop
environments and Linux utilities and add-ons.
<P> Each one of the 20 directories contains the Internet's best resources on
everything from searchable knowledge bases and FAQs, to upgrade information
and bug reports, to training and tutorials. The 20 directories cover the
most popular distributions of the Linux operating system, including Caldera
Open Linux, Corel Linux, Debian, Linux Mandrake, MK Linux, Red Hat,
Slackware, SuSE and WinLinux 2000.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Sair Linux and GNU certification news
</FONT>
</H3>
<P> Sair's complete Linux
and GNU Certified Administrator (LCA) level of exams are now
available worldwide and our self-study guide for Linux &amp; GNU
Installation and Configuration has sold close to 40,000 copies.
<A HREF="http://www.linuxcertification.com">www.linuxcertification.com</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">LinuxMall: LPI certification
</FONT>
</H3>
<P> DENVER - <A HREF="http://www.linuxmall.com">LinuxMall.com</A>, is
urging the adoption of
certification standards developed by the Linux Professional Institute. The
Linux Professional Institute (LPI) is an international non-profit organization
dedicated to establishing professional vendor-neutral certification for the
Linux Operating System.
<P> Mark Bolzern, President of LinuxMall.com, is a member of the LPI
Advisory Council and a sponsor of the organization. LinuxMall.com joins the
company of other industry leaders like IBM, Caldera Systems, and
Hewlett-Packard in supporting LPI's mission to certify the talent and hard work
of Linux professionals throughout the world.
<P> The first exam for LPI certification was launched in January 2000, offering
an incentive program of Linux-related utilities to participants. LinuxMall.com
has donated over a hundred of incentive items-including t-shirts and Tux the
penguin mascots-to participants who have completed the initial phase of
testing. In addition, LinuxMall.com provided the fulfillment and distribution
of all prizes donated by other LPI sponsors. "Because of the neutrality of LPI
certification, businesses will gain a higher level of confidence in the
abilities of the professionals they hire," adds Bolzern. "It's far more
credible than certification standards established by a single company, such as
the MSCE standard."
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">LinuxMall: Dice.com job searches
</FONT>
</H3>
<P> DENVER - LinuxMall.com announces an agreement with EarthWeb's Dice.com
that will allow customized Linux job searches directly from the site by simply
placing Linux in the job search string. LinuxMall.com will continue to enhance
and improve job-related information such as training and education within the
LinuxMall.com site.
<P> Under terms of the agreement, LinuxMall.com becomes part of Dice.com's
Custom Search Network, which is a targeted group of sites that use the Dice.com
job search engine to power their job areas. LinuxMall.com becomes the 16th site
to display Dice.com listings on their Web site through Dice.com's Custom Search
Network, which includes Red Hat.com, Girl Geeks.com and UserFriendly.org.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">LinuxMall: Penguin Power Playing Cards
</FONT>
</H3>
<H4>In case you haven't been playing with a full deck...</H4>
<P> Tux demonstrates once again that he's playing with a full deck and holding
all the cards.
<P> For those late nights at the office, relaxing at home with family and
friends, or the perfect gift for the Joker who has everything (hmmm...),
LinuxMall.com proudly presents Penguin Power and LinuxMall.com playing
cards!
<P> Tux appears in formal dress on face cards, befitting a Linux King, Queen or
Jack. The Joker, however, may be in need of a decent haircut. But they're
all waiting to be dealt in to your favorite game and fit neatly up most
regular-sized sleeves.
<P> These playing cards are just the latest addition to LinuxMall.com's vast
array of Linux goodies. Be sure to check out the entire site; LinuxMall.com
has everything from beach towels and buttons to bumper stickers and "Born to
Frag" T-shirts.
<P>
<A HREF="http://www.linuxmall.com/shop/01840">
http://www.linuxmall.com/shop/01840</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Linux Links
</FONT>
</H3>
<P> <A HREF="http://SiteReview.org/OpSys.php3">SiteReview.org</A> is a place
where wensurfers review and rate web sites. Go post some Linux reviews, and
say something nice about <EM>Linux Gazette</EM>. :)
<P> <A HREF="http://joydesk.com">http://joydesk.com</A> is groupware that
provides web-based email, calendar, address book and task
list services for web sites. Prominent customers include FreeI.net and
www.webmail.ca.freei.net.
<P> <A HREF="http://www.ecommercetimes.com/news/articles2000/000323-2.shtml">
IBM Unveils Linux-Based Supercomputer</A>
<P> <A HREF="http://linuxdevices.com/cgi-bin/news_view.cgi?newsid=NS2268179789">
An interview with MontaVista founder Jim Ready</A>
<P> <A HREF="http://linuxdevices.com/cgi-bin/news_view.cgi?newsid=NS6597831888">Why Linux won't fragment like UNIX did</A>
<A HREF="http://www.linuxdevices.com/cgi-bin/news_view.cgi?newsid=NS3873542643">
Coming soon, to a car near you: Linux-based Internet radios</A>
<P> <A HREF="http://www.ecommercetimes.com/news/articles2000/000228-5.shtml">
Linuxcare Establishes Asian Operations</A>
<P> <A HREF="http://www.destinationlinux.com">www.destinationlinux.com</A>
encompasses everything related to Linux, from games, jokes, contests to
Linux information (products, news, training, etc.).
<P> On the FirstLinux site:
<UL>
<LI> <A HREF="http://web.firstlinux.net/">web.firstlinux.net</A>:
metacrawler dedicated to Linux information
(A metacrawler is a search engine that searches several other
search engines for you.)
<LI> A <A HREF="http://www.firstlinux.net/">web e-mail service</A> to
rival Hotmail. Read your mail from anywhere while supporting the Linux cause.
<LI> <A HREF="http://www.firstlinux.com/reviews/">
Linux Reviews</A>: user-submitted reviews of Linux software.
<LI> <A HREF="http://www.firstlinux.com/Checklist.shtml">
Checklist for Linux newbies</A>: things to consider before installing a
Linux system.
</UL>
<P> <A HREF="http://www.neosystem.com">Neosystem</A> (France) provides turnkey
application servers, training and consulting for Linux.
<P> <A HREF="http://www.balista.com/njp/linux.htm">
http://www.balista.com/njp/linux.htm</A> is a personal site by Nicholas
Jordan, containing tips, links and advocacy.
<P> <A HREF="http://www.linpeople.org/">LinPeople</A> is the Linux Internet
Support Cooperative, a system of free technical support on IRC. The
channel is <CODE>#LinPeople</CODE> on <CODE>irc.linpeople.org:8001</CODE>.
<a name="software"></a>
<P> <hr> <P>
<!-- =================================================================== -->
<center><H3><font color="green">Software Announcements</font></H3></center>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">KDevelop 1.1final
</FONT>
</H3>
<P> We are proud to announce the 1.1final version of KDevelop
(http://www.kdevelop.org) . This version contains several new features and many
bugfixes. It is intended to be the last release for KDE 1.1.2. We want to
concentrate our effort now for KDevelop 2.x (which will work on KDE 2.x).
<P> Summary of changes (between 1.0final and 1.1final):
<UL>
<LI> 7 new application templates
<OL>
<LI> KDE1 OpenGL
<LI> KDE2 SDI
<LI> KDE2 mini
<LI> KDE2 MDI
<LI> QT2 SDI
<LI> QT2 MDI/QWorkspace
<LI> QT2 MDI/QextMDI
</OL>
<LI>complete integrated internal debugger
<LI>extended documentation, inclusive a KScribble tutorial and example code
<LI>improved editor: visible bookmarks, comment/uncomment code in editor
window,support for multibyte character
<LI>improved other components: dlgeditor, classviewer
<LI>Htdig search engine support
<LI>translations (online help, manual) into many languages
<LI>better OS support: KDevelop is now available for Linux, NetBSD, FreeBSD, Solaris and Unixware.
</UL>
<P> Please see
<A HREF="http://www.kdevelop.org">http://www.kdevelop.org</A>
for further information (requirements and
download addresses) and
<A HREF="http://fara.cs.uni-potsdam.de/~smeier/www/pressrelease1.1.txt">
http://fara.cs.uni-potsdam.de/~smeier/www/pressrelease1.1.txt</A> for the official
press release.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">PROGRESS SonicMQ ADDS SUPPORT FOR LINUX
</FONT>
</H3>
<P> NEW YORK-iEC 2000-February 29, 2000-Progress Software Corporation today
announced the Developer Edition of its award-winning Progress(r)
SonicMQ(tm) Internet messaging server will support the Linux operating system.
<P> "We really wanted to try running SonicMQ on Linux," said Michael
Quattlebaum, director of R&D at ChanneLinx.com, a provider of complete
e-commerce solutions by linking industries into an interoperable digital
marketplace. "I installed it on my Linux server, had it up and running in no
time and it worked like a dream. Because SonicMQ is 100% Java, it can run with
little or no configuration changes on any platform with a supported JVM.
SonicMQ has been great to work with -- a clean implementation of the JMS
specification with the added tools needed to make it practical."
<P> SonicMQ is the first-and to date the only-standalone messaging server
available from a major software vendor based on Sun's specification for
Java-based messaging, Java Message Service (JMS). By providing a
standards-based reliable and scalable messaging infrastructure for Internet
application interoperation, together with key standards beyond the JMS
specification such as eXtensible Markup Language (XML), SonicMQ ensures
business-to-business transactions are successfully completed.
<P> <A HREF="http://www.progress.com">www.progress.com</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<FONT COLOR="green">Other software
</FONT>
</H3>
<P> <A HREF="http://pref.etfos.hr/garlic">Garlic</A> is a free molecular
visualization program, for viewing proteins and DNA.
<P> <A HREF="http://www.wxwindows.org/Mahogany/">Mahogany 5.0</A> e-mail
and news client for X11 (GNOME or KDE).
<P> Opera Software has released a i
<A HREF="http://www.opera.com/linux/">tech preview</A> (that means
alpha) version of their web browser Opera.
<P> Java products that run on Linux:
<UL>
<LI> <A HREF="http://www.enhydra.com">
ENHYDRA open source Java/xml application server</A>
<LI> <A HREF="http://www.wolfram.com/solutions/mathlink/jlink">
J/Link, The Java-Mathematica Connection</A>
</UL>
<!-- *** BEGIN copyright *** -->
<P> <hr> <P>
<H5 ALIGN=center>
This page written and maintained by the Editor of the <I>Linux Gazette</I>.
Copyright &copy; 2000, <A HREF="mailto:gazette@ssc.com">gazette@ssc.com</A><BR>
Published in Issue 52 of <i>Linux Gazette</i>, April 2000</H5>
<!-- *** END copyright *** -->
<H3>Contents:</H3>
<p><a href="#tag/greeting"
><img src="../gx/dennis/bbub.gif" alt="(!)" border="0"
align="middle"><strong>Greetings From Jim Dennis</strong></A></p>
<DL>
<!-- index_text begins -->
<dt><A HREF="tag/1.html"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>graphic chipset Linux/CA-810 --or--
<dd><A HREF="tag/1.html"
><strong>Linux on an Intel "Camino" CA810 Motherboard</strong></a>
<dt><A HREF="tag/2.html"
><img src="../gx/dennis/bbub.gif" height="28" width="50"
alt="(!)" border="0"
></a>March Linux Gazette blurb --or--
<dd><A HREF="tag/2.html"
><strong>When "Quit Confirm" Dialogs are NOT Enough...</strong></a>
<dt><A HREF="tag/3.html"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>When you burn an ISO image to a CD... --or--
<dd><A HREF="tag/3.html"
><strong>What to do with .ISO files</strong></a>
<dt><A HREF="tag/4.html"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Where did it go --or--
<dd><A HREF="tag/4.html"
><strong>Can't Format "Network" Drive to do Install</strong></a>
<dt><A HREF="tag/5.html"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>hardware error li_ --or--
<dd><A HREF="tag/5.html"
><strong>Linux Gazette Answer Guy Privacy Statement</strong></a>
<dt><A HREF="tag/6.html"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>libguile --or--
<dd><A HREF="tag/6.html"
><strong>A Be-GUILE-ing Question</strong></a>
<dt><A HREF="tag/7.html"
><img src="../gx/dennis/bbub.gif" height="28" width="50"
alt="(!)" border="0"
></a>co-processes --or--
<dd><A HREF="tag/7.html"
><strong>zsh Co-processes</strong></a>
<dt><A HREF="tag/8.html"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>virtual console login --or--
<dd><A HREF="tag/8.html"
><strong>Console Logins Fail; KDM Okay?</strong></a>
<br>Or: System Integrity Checking
<dt><A HREF="tag/9.html"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Redhat display --or--
<dd><A HREF="tag/9.html"
><strong>Simple: Change X Resolutions on the Fly</strong></a>
<dt><A HREF="tag/10.html"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>2c Tip: Show TCP/UDP port usage --or--
<dd><A HREF="tag/10.html"
><strong>Cross Comment: 2cent Tips</strong></a>
<dt><A HREF="tag/11.html"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Communicting between subnets with no router :-? --or--
<dd><A HREF="tag/11.html"
><strong>Routing Mystery</strong></a>
<dt><A HREF="tag/12.html"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Question --or--
<dd><A HREF="tag/12.html"
><strong>Shutting Down the "ping Daemon"</strong></a>
<dt><A HREF="tag/13.html"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>LILO Windows boot --or--
<dd><A HREF="tag/13.html"
><strong>Keeping Both Hard Drives Connected</strong></a>
<br>New LILO Overcomes 1024 Cylinder Limit!
<dt><A HREF="tag/14.html"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Icewm and open xterm with root rights --or--
<dd><A HREF="tag/14.html"
><strong>ICEWM Key Bindings (Macros) and X in "Toaster" Mode</strong></a>
<dt><A HREF="tag/15.html"
><img src="../gx/dennis/bbub.gif" height="28" width="50"
alt="(!)" border="0"
></a>LI Problem (Answered) --or--
<dd><A HREF="tag/15.html"
><strong>LILO Stopping at LI <TT>---</TT> LBA and "linear", or NOT</strong></a>
<dt><A HREF="tag/16.html"
><img src="../gx/dennis/bbub.gif" height="28" width="50"
alt="(!)" border="0"
></a>Lost Password --or--
<dd><A HREF="tag/16.html"
><strong>Simpler Way to Recover From a Lost Password</strong></a>
<dt><A HREF="tag/17.html"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>source code of fsck --or--
<dd><A HREF="tag/17.html"
><strong>Getting to the Source(s) of fsck</strong></a>
<dt><A HREF="tag/18.html"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Linux as a Win NT server --or--
<dd><A HREF="tag/18.html"
><strong>Singing the Song for Samba</strong></a>
<dt><A HREF="tag/19.html"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Telnet goes X? --or--
<dd><A HREF="tag/19.html"
><strong>Exporting a DISPLAY</strong></a>
<dt><A HREF="tag/20.html"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>fvwm2 and blank screens --or--
<dd><A HREF="tag/20.html"
><strong>That Blankety Blanker!</strong></a>
<dt><A HREF="tag/21.html"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>rsh works but not -display... --or--
<dd><A HREF="tag/21.html"
><strong>Permission Denied on <TT>-display</TT></strong></a>
<dt><A HREF="tag/22.html"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Cardboard Boxes --or--
<dd><A HREF="tag/22.html"
><strong>Thinking <EM>AROUND</EM> the Box?</strong></a>
<dt><A HREF="tag/23.html"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Intel's integrated Chipset --or--
<dd><A HREF="tag/23.html"
><strong>Identifying the Integrated Video Chipset</strong></a>
<dt><A HREF="tag/24.html"
><img src="../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Advice on Linux --or--
<dd><A HREF="tag/24.html"
><strong>InfoRocket, Experts Exchange, Answer Guy and Netnews</strong></a>
<!-- index_text ends -->
</DL>
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/greeting"><HR WIDTH="75%" ALIGN="center"></A>
<H3 align="left"><img src="../gx/dennis/bbubble.gif"
height="50" width="60" alt="(!) " border="0"
>Greetings from Jim Dennis</H3>
<!-- begin greeting -->
<strong>I've been thinking about Linux. And about those penguins.
Need a better mascot. Cats. Cats are cute. Cats go everywhere.
Except Antarctica.
We're smarter than that. But penguins - they <em>live</em> there. Hsss!
Besides, penguins are birds. Birds are snacks. Cats have been on the
internet far longer.
Everyone knows <a href="http://lynx.isc.org/current/">lynx</a> was one of
the first hunters here. We already have three Linux disties anyway
(<a href="http://www.bluecat.com/">BlueCat</a>,
<a href="http://www.blackcatlinux.com/">BlackCat</a>, and
<a href="http://www.bluepoint.com.cn/">BluePoint</a>).
Cats are the purrrrrfect mascot for the new Linux.
</strong>
<p>Hmm. I had a pretty darn good blurb written up about cool new stuff in
2.4 (still in the pre phase right now) but when I came back to my chair after
getting coffee, my cat had taken over the chair and was sitting there,
purring <em>innocently</em>.</p>
<p>As I lack the time to do it over (again!) here you go. See you next
month.</p>
<!-- end greeting -->
<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&#162; Tips!</A></H1> <BR>
Send Linux Tips and Tricks to <A HREF="mailto:gazette@ssc.com">
gazette@ssc.com
</A></center>
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<FONT COLOR="navy">2 Cent Trick: handy dictionary
</FONT> </H3>
Fri, 10 Mar 2000 16:52:05 -0800
<BR>From: Bryan Henderson &lt;<A HREF="mailto:bryanh@giraffe-data.com">bryanh@giraffe-data.com&gt;</A>
<P> A writer should never forego looking up a word in the dictionary
because it's too much effort. Here's a way to have a dictionary at
your fingertips if you're connected to the Internet: Make a shell
script 'dict' that does
<PRE>
lynx "http://www.m-w.com/cgi-bin/dictionary?book=Dictionary&amp;va=$*"
</PRE>
<P> Now the shell command
<P> dict quotidian
<P> Brings up a definition of "quotidian".
<P> I use Lynx instead of wget because the dictionary page has links on it
I might want to follow (such as alternate spellings and synonyms). I
use Lynx instead of something graphical because it is fast.
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<FONT COLOR="navy">faq_builder.pl script
</FONT> </H3>
Sat, 11 Mar 2000 07:08:15 +0100 (CET)
<BR>From: Hans Zoebelein &lt;<A HREF="mailto:hzo@goldfish.cube.net">hzo@goldfish.cube.net&gt;</A>
<P> Everybody who is running a software project needs a FAQ to clarify
questions about the project and to enlighten newbies how to run
the software. Writing FAQs can be a time consuming process without much
fun.
<P> Now here comes a little Perl script which transforms simple ASCII input
into HTML output which is perfect for FAQs (Frequently Asked Questions).
I'm using this script on a daily basis and it is really nice and spares
a lot of time. Check out http://leb.net/blinux/blinux-faq.html for
results.
<P> Attachment faq_builder.txt is the ASCII input to produce faq_builder.html
using faq_builder.pl script.
<P> 'faq_builder.pl faq_builder.txt &gt; faq_builder.html'
<P> does the trick. Faq_builder.html is the the description how to use
faq_builder.pl.
<P> <A HREF="misc/tips/faq_builder.pl.txt">faq_builder.pl</A>
<A HREF="misc/tips/faq_builder.html">faq_builder.html</A>
<A HREF="misc/tips/faq_builder.txt">faq_builder.txt</A>
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<FONT COLOR="navy">winmodems
</FONT> </H3>
Tue, 14 Mar 2000 20:09:41 -0500
<BR>From: Les Urban &lt;<A HREF="mailto:lnaa@centurytel.net">lnaa@centurytel.net&gt;</A>
<P> Well I'm a Linux newbie. Been in DP for 25 years and wanted something
better. I'm running SuSE 6.3 and having fun. Really close to wiping WINDOZE
from my hard disk. I've really enjoyed your site and have found many answers to
the many questions that have been starring me in the face. Keep up the good
work.
<P> Read another article about winmodems being dead wood as far as Linux is
concerned. I got a great deal I thought at Best Buys a 56k modem for 9.95. Of
course I should have know it had to be a winmodem. But I stumbled on the site
<A HREF="http://linmodems.org">linmodems.org</A> There are alot of people
working on this issue. In fact LUCENT has provided a binary for their LT
MODEMS. Well I downloaded that guy and I'm running great on my winmodem. There
are other drivers available for other modems. Some are workable and some are
still in development. I believe it's worth taking a look and spreading the
word. You can reach alot more than I can.
<P> Once again great site and thank you for all the helpful hints. I'll
continue to be a steady visitor and a Linux advocate.
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<FONT COLOR="navy">Fantastic book on linux - available for free both on/offline!
</FONT> </H3>
Sat, 18 Mar 2000 16:15:22 GMT
<BR>From: Esben Maal&oslash;e (Acebone) &lt;<A HREF="mailto:acebone@f2s.com
">acebone@f2s.com&gt;</A>
<P> Hi!
<P> When I browse through the 2 cent tips, I see a lot of general
Sysadmin/bash questions that could be answered by a book called "An
Introduction to Linux Systems Administration" - written by David Jones
and Bruce Jamieson.
<P> You can check it out at
<A HREF="http://www.infocom.cqu.edu.au/Units/aut99/85321">
www.infocom.cqu.edu.au/Units/aut99/85321</A>
<P> It's available both on-line and as downloadable PostScript file.
Perhaps it's also available in PDF.
<P> It's a great book, and a great read!
<!-- END tips -->
<P> <hr> <P>
<!--================================================================-->
<H4><font color="maroon">
Tips in the following section are answers to questions printed in the Mail
Bag column of previous issues.
</font></H4>
<!-- BEGIN tips.answers -->
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Re: help in printing numbered pages!
</FONT> </H3>
Wed, 01 Mar 2000 07:48:30 GMT
<BR>From: Anthony E. Greene &lt;<A HREF="mailto:agreene@pobox.com">agreene@pobox.com&gt;</A>
<BLOCKQUOTE>
<P> I usualy print a lot of documentation. One thing that I would like
to make is that my print jobs gets the pages to be numbered. So at the
bottom of the pages we could see "page 1/xx" , etc. I had looked a
while for info in how to set this up, but could not find. The printtool
just dont do it. Maybe i should to create a filter, but what commands
must i use to make this heapppens???
</BLOCKQUOTE>
<P> It depends on the software you used to create the file. If it is a plain
text file, you can use "pr" to print it with page numbers in the header:
<PRE>
pr -f -l 55 somefile.txt | lpr
</PRE>
<P> If the file is HTML, there is a utility html2ps that will do what you
need. It's available at
<A HREF="http://www.tdb.uu.se/~jan/html2ps.html">
http://www.tdb.uu.se/~jan/html2ps.html</A>. It
converts HTML to PostScript with an option for page numbers and other
things.
<P> If you are using a word processor, it may have an option to include page
numbers. Let us know what you are trying to print and we may be able to
give better help.
<H4>Jos&eacute; A. Gaeta Mendes &lt;<A HREF="mailto:gaeta@ecosfera.com.br">gaeta@ecosfera.com.br&gt;</A> suggests</H4>
<P> See emacs *Tools | Print | Postscript Print Buffer* command...
It does exactly what you want!
<P> [ ]s - J. A. Gaeta Mendes
Greetings from Brazil!
<H4>Michal Jaegermann &lt;<A HREF="mailto:michal@ellpspace.math.ualberta.ca">michal@ellpspace.math.ualberta.ca&gt;</A> suggests</H4>
<P> 'man pr'
<P> For fancier output with various bells and whistles
<P> 'man nenscript'
<P> (plus maybe a driver script, or two, to get your customizations).
<P> Michal
<H4>Bob Ternosky &lt;<A HREF="mailto:rternosk@appliedtheory.com">michal@ellpspace.math.ualberta.ca&gt;</A> suggests</H4>
<P> Try the 'mpage' command.
<P> It wont work for everything but it uses a header and page numbers
and can also print multiple pages of stuff per page (saves paper).
<P> Example:
<PRE>
mpage -2 -H document | lpr
</PRE>
<P> (prints 2 pages on one, and puts a header w/ filename, page numbers)
<P> Hope this helps.
<H4>From: Clovis Sena &lt;<A HREF="mailto:csena@itautec-philco.com.br">csena@itautec-philco.com.br</A>&gt;</H4>
<P> Thanks Bob and everybody who helped me!
Now I am using mpage to print. That makes more sense, saving paper and
toner.
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Re: Inexpensive, powerful db's for Linux?
</FONT> </H3>
Wed, 01 Mar 2000 08:01:11 GMT
<BR>From: Anthony E. Greene &lt;<A HREF="mailto:agreene@pobox.com">agreene@pobox.com&gt;</A>
<BLOCKQUOTE>
To develop a distributed database application that runs on Linux,
what inexpensive, powerful databases might work best?
</BLOCKQUOTE>
<P> Check the Application section at
<A HREF="http://www.linux.org/">Linux.org</A> for
databases. It lists big names such as DB2, Oracle, Informix, Ingres, and
others such as <A HREF="http://www.postgresql.org/">PostgreSQL</A> which is
free, powerful, and ships with Red Hat Linux. The latest beta adds several
desirable features. You may hear a lot about MySQL, but if you're building
anythin more complicated than a basic query system, you'll need something more
powerful than MySQL.
<H4>Marius ANDREIANA &lt;<A HREF="mailto:rocky@ss.pub.ro">rocky@ss.pub.ro&gt;</A> wrote</H4>
<P> PoestgreSQL, by far. www.postgresql.org
Inexpensive ( free, GPL ), powerful ( check the website for
a list of features ), great.
There's also MySQL, but less powerful than Postgres ( performance,
when talking about milions of records, and many more )
<P> Distributed ? PostgreSQL is the database engine, server & client.
You start the server and you can connect to it from any other
machine using TCP/IP. Connect from what ? From what you want :
C, Python, PHP, Perl, etc etc ( see Postgres howto ). A recent
great adition is Gnome-DB ( www.gnome.org/gnome-db/ ), which
gives you the power to develop cool desktop applications.
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Re: linuxconf
</FONT> </H3>
Wed, 1 Mar 2000 06:36:17 -0700 (MST)
<BR>From: &lt;<A HREF="mailto:ghaverla@freenet.edmonton.ab.ca">ghaverla@freenet.edmonton.ab.ca&gt;</A>
<P> I'm just guessing, but are the clocks on all these machines
synchronized? That seems to be one reason why one computer
would continually update another.
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Modems
</FONT> </H3>
Wed, 1 Mar 2000 12:20:02 -0300
<BR>From: Juan M. Fera &lt;<A HREF="mailto:jmfera@sion.com">jmfera@sion.com&gt;</A>
<P> Hello:
You can solve your problems by reading the section 20 (Modems) on the Linux Hardware Compatibility HOWTO...
<P> <A HREF="http://www.linuxdoc.org/HOWTO/Hardware-HOWTO-20.html">
http://www.linuxdoc.org/HOWTO/Hardware-HOWTO-20.html</A>
<P> and the section 30 (Appendix E. Linux incompatible Hardware) too...
<P> <A HREF="http://www.linuxdoc.org/HOWTO/Hardware-HOWTO-30.html">
http://www.linuxdoc.org/HOWTO/Hardware-HOWTO-30.html</A>
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">IP Masquerade Connection Problems
</FONT> </H3>
1 Mar 00 08:47:35 PST
<BR>From: Darrell Scott &lt;<A HREF="mailto:scottie99@netscape.net">scottie99@netscape.net&gt;</A>
<P> This is a known bug with the PPP packages distributed with Red Hat 6.1. See
RHEA-1999:051-01 for a full description of the problem, and pointers to
updated packages.
<P> Scottie
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Re: make virtuald
</FONT> </H3>
Thu, 2 Mar 2000 22:32:07 +0100 (CET)
<BR>From: Roland Smith &lt;<A HREF="mailto:rsmith@xs4all.nl">rsmith@xs4all.nl&gt;</A>
<BLOCKQUOTE>
<P> I am trying to compile virtuald using make virtuald here is the
error I get
<PRE>
Makefile:14: *** missing separator. Stop.
</PRE>
I did a cut and paste of the code from
http://www.linuxdoc.org/HOWTO/Virtual-Services-HOWTO-3.html in the
section 3.4 Source then used ftp to put it on the server in order to
compile it.
</BLOCKQUOTE>
<P> This is a small gotcha with make. See the following makefile snippet:
<PRE>
# Remove all generated files.
clean:;
rm -f $(OBJS) $(BASENAME) *~ core $(TARFILE) $(BACKUP) $(LOG)
</PRE>
<P> The commands that follow a rule (`rm' in this case) should be preceded by a
tab character. Probably, some tabs got converted to spaces when
cutting-and-pasting.
<P> Try editing the Makefile with vi or emacs. Both can insert literal tab
characters, and emacs has a specail mode for makefiles that takes care of
that automagically.
<H4>Darrell Scott &lt;<A HREF="mailto:scottie99@netscape.net">scottie99@netscape.net&gt;</A> suggests</H4>
<P> Hi,
<P> I think you're missing a Makefile!
<P> The "make" command interprets a set of commands in a specifically written
makefile, to compile and link source code into an executable. "gcc" is the
actual compiler/linker, and is appears to be what you actually require in this
case. Try "gcc (source filename goes here) -o virtuald" (it's probably wise
to move your source from virtuald to virtuald.c with the command "mv virtuald
virtuald.c" first).
<P> Scottie
<P> btw, if you did write a makefile, a common gotcha is that at least one
tabspace is required between the label and the commands. Spaces just won't
cut it; you'll end up with the "Missing Separator" message again!
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Linux & win98 internet connection sharing
</FONT> </H3>
Wed, 1 Mar 2000 22:41:07 -0500
<BR>From: DJ Busch &lt;<A HREF="mailto:djbusch@mediaone.net">djbusch@mediaone.net&gt;</A>
<P> Check out a program called WinRoute for Windows 98. You can download a
trial copy from winroute.com. If it's setup right, you can tell your Linux
box that your Win98 box is your "default gateway" and winroute will do the
rest for you. I have 2 W98 boxes, 1 linux box and 1 iMac all running on
this kind of setup and I've never had a problem.
<P> DJ Busch
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Re: Gazette crashes Konqueror (from LinuxGazette #51/General Mail)
</FONT> </H3>
Thu, 2 Mar 2000 08:41:07 +0000
<BR>From: Jan-Hendrik Terstegge &lt;<A HREF="mailto:helge@jhterstegge.de">helge@jhterstegge.de&gt;</A>
<P> Hi!
<P> In LinuxGazette #51 Pierre Abbat (phma@oltronics.net) wrote:
<BLOCKQUOTE>
I am trying to read the Gazette with kfm 1.167 and several pages crash
it, including the mailbag and 2c Tips. Can you help me figure out
what's wrong? It's happend before.
</BLOCKQUOTE>
In you Subject you wrote the the gazette crashes the konqueror, but in your
text you wrote it is the kfm. What thing do you use? Is the Konqueror your
kfm replacement. Then I think you use a KDE-beta Version. Please try to use
stable releases (I think the last was KDE 1.1.2).
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">AS/400 Emulation
</FONT> </H3>
Thu, 02 Mar 2000 08:25:59 -0500
<BR>From: Vince Du Beau &lt;<A HREF="mailto:vdubeau@ploverdev.com">vdubeau@ploverdev.com&gt;</A>
<BLOCKQUOTE>
From: Jeffrey T. Ownby (jownby@ecsis.net)<BR>
Subject: 5250 terminal for AS400 connection
<P> I am adding a Linux box to a network consisting of several Win9X
and NT machines that use either IBM Client Access or Rumba to connect
to our AS400. Is there a program similar to either one of these that
can provide terminal emulation on Linux. Any info appreciated!
<P> Later,<BR>
Jeffro
</BLOCKQUOTE>
<P> I currently use tn5250 to connect from my laptop to an AS/400 (thru an NT Server). This is a
modified version of telnet with better key mappings. You can find it at:
<A HREF="http://www.blarg.net/~mmadore/5250.html">
http://www.blarg.net/~mmadore/5250.html</A>
<P> IBM also has a java based version of client access which reportedly runs under Linux. I haven't
tried it since it requires some of it to run from the HTTP server on the AS/400. Their link is:
<A HREF="http://www-4.ibm/software/network/hostondemand">
http://www-4.ibm/software/network/hostondemand</A>
<P> Hope this helps.
<P> Vince Du Beau
<H4>From: Jimmy O'Regan &lt;<A HREF="mailto:jimregan@litsu.ie">jimregan@litsu.ie&gt;</A> suggests</H4>
<P> There's a 5250 terminal emulator available at
<A HREF="http://www.linux-sna.org/software/5250/index.html">
http://www.linux-sna.org/software/5250/index.html</A>
<P> We use an AS/400 in the college I attend, and while I haven't been able to
get permission to put a linux box on the same network as the 400 (and
therefore cannot vouch for the linux version) I have tried the WinNT port
of the program, and it works very well. (Though as far as I remember,
there was no way to paste)
<P> But as far as getting the capabilities of client access, you should try
Linux SNA (<A HREF="http://www.linux-sna.org/">
http://www.linux-sna.org/</A>) which adds the AS/400s native
protocol stack to the kernel. There are also some tools which should
provide some of the other capabilities of client access, such as file
transfer.
<P> (If you get it working, please drop me a note, as I'd love some
testimonial to use to convince my college to let me hook up a box to our
as/400).
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Quick tip for mounting FDs, CDs, etc...
</FONT> </H3>
Fri, 25 Feb 2000 15:49:17 -0800
<BR>From: &lt;<A HREF="mailto:fuzzybear@pocketmail.com">fuzzybear@pocketmail.com&gt;</A>
<P> If you can't or don't want to use auto-mounting, and are tired of typing out all those 'mount' and 'umount' commands, here's a script called 'fd' that will do "the right thing at the right time" - and is easily modified for other devices:
<PRE>
#!/bin/bash
d="/mnt/fd0"
if [ -n "$(mount $d 2&gt;&amp;1)" ]; then umount $d; fi
</PRE>
<P> It's a fine example of "obfuscated Bash scripting"<grin>, but it works well - I use it and its relatives 'cdr', 'dvd', and 'fdl' (Linux-ext2 floppy) every day.
<P> Ben Okopnik
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Re: Pentium-II Xeon and calculation speed
</FONT> </H3>
Sun, 27 Feb 2000 15:19:44 +0100 (CET)
<BR>From: Roland Smith &lt;<A HREF="mailto:rsmith@xs4all.nl">rsmith@xs4all.nl&gt;</A>
<BLOCKQUOTE>
<P> Hi guys, here I'm trying to get a little bit of help with my
computer. I'm doing a very time expensive calculations using FORTRAN
programs, compiled with g77 under Red Hat 6.1. First, on dual
Pentium-II/400MHz and Pentium-III/450MHz computers I noticed, that when
program size (RSS in top) is getting biger that approximately 600K
computation speed dramatically decreasing by factor two. This slowing
down agrees with the bus speed (100MHz) and L2 cache (512K, 200MHz). So,
</BLOCKQUOTE>
<P> What have you done about optimizing your program? Some things you could do:
<UL>
<LI> profile the running application to see where it spends it's time, then
<UL>
<LI> rewrite the critical code, using a faster algorithm.
<LI> use the most recent compiler (2.95.2, I believe) which knows about more
recent Pentium-class processors.
<LI> compile the critical modules for speed, and the others for small size,
to make the image smaller.
<LI> if everything else fails, try rewriting critical sections an assembly code.
</UL>
<LI> kill all unnecessary services to give the program as much CPU time as
possible.
<LI> enhance the program's nice value (only root can do this, though).
<LI> make your program multi-processor-aware. Normal programs only use 1
CPU. You have to run several instances of your program (or make it
multi-threaded) to really take advantage of your two CPU's.
</UL>
<BLOCKQUOTE>
I've decided that the reason lies in the cache sped/size and bought
(pretty cheap) dual Pentium-II/450MHz Xeon computer with 2MB L2 cache
per proccessor that suppose to run at 450MHz and 512M SDRAM on
SuperMicro mainboard. Unfortunately I did not find any difference in
performance of this computer and still much cheaper dual
Pentium-II/400MHz. Why is it?
</BLOCKQUOTE>
<P> Total performance depends on a lot of things except CPU speed and cache
size. To name a few:
<UL>
<LI> amount of RAM
<LI> - type and speed of hard disks
<LI> - is the kernel SMP aware?
<LI> - number of processes competing for CPU time
</UL>
<P> The clock speeds between the two systems don't vary much. So if you find
that your performance hasn't increased as much as you expected, the only
thing that you can conclude is that the cache size probably isn't the limiting
factor here.
<BLOCKQUOTE>
May be, Red Nat 6.1 somehow must be told explicitely about cache size?
But I did not find any such option...
</BLOCKQUOTE>
<P> I don't *think* so. AFAIK, the cache can't be influenced from the OS on x86
CPU's. I've only heard of that trick with Mac's running on 68040's
<P> HTH, Roland
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Re: Anti Virus programs for linux Red Hat 6
</FONT> </H3>
Sun, 27 Feb 2000 15:35:41 +0100 (CET)
<BR>From: Roland Smith &lt;<A HREF="mailto:rsmith@xs4all.nl">rsmith@xs4all.nl&gt;</A>
<BLOCKQUOTE>
<P> Is there a "definative" anti virul program for Linux? Any info
appreciated!
</BLOCKQUOTE>
<P> There are several anti-virus programs available, see Freshmeat.net:
<A HREF="http://freshmeat.net/appindex/daemons/anti-virus.html">
http://freshmeat.net/appindex/daemons/anti-virus.html</A>
<P> I believe that the McAfee also runs on Linux.
<P> But these are mostly used for scanning mail destined for other systems that
are more vulnerable to viruses.
<P> Linux and other UNIX-like systems don't suffer much from viruses, because
most programs do not run with root privileges. So they don't have access to
the system, other than the user's home-directory and processes.
<P> So as long as you're surfing as a normal user, and not as root, any virus
that you contract can at most endanger your own files and processes, and
not the integrety of the system. Besides, most binary and macro viruses are
targeted on DOS/Windows, so they don't even work on Linux.
<P> Of course there are other attacks on your system possible, forms of
so-called root-exploits; using known defects in programs to gain access to
your machine as root.
<P> That's why you do need to keep track of your distribution's security
advisories.
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Re: neighbour table overflow
</FONT> </H3>
Sun, 27 Feb 2000 15:38:13 +0100
<BR>From: Baco &lt;<A HREF="mailto:baco@baco.net">baco@baco.net&gt;</A>
<P> Dear,
<BLOCKQUOTE>
I was running quite a long time with NFS and transmission stopped. I
get: Sep 6 00:03:20 coyote kernel: eth0: trigger_send() called with
the transmitter busy. I rebooted the machine I was connected to and I
get the below (part of /var/log/messages >file. Not all error
statements shown):
<PRE>
Sep 6 17:57:04 beartooth kernel: neighbour table overflow
Sep 6 17:57:04 beartooth kernel: neighbour table overflow
Sep 6 17:57:04 beartooth rpc.statd: Cannot register service: RPC:
Unable to send; errno = No buffer space available
Sep 6 17:57:04 beartooth nfs: rpc.statd startup succeeded
Sep 6 17:57:04 beartooth rpc.statd[407]: unable to register (SM_PROG,
SM_VERS, udp).l:
</PRE>
</BLOCKQUOTE>
<P> I had the same problem but with all ftp daemons running
under inetd
<P> My problem was resolved when I added
"127.0.0.1 localhost" into /etc/hosts
and when I setup the loopback lo interface using route and ifconfig
<P> I hope this was also your problem.
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Win95-Linux small network with null modem
</FONT> </H3>
Sun, 27 Feb 2000 10:36:57 -0500
<BR>From: David B Sarraf &lt;<A HREF="mailto:david.sarraf@juno.com">david.sarraf@juno.com&gt;</A>
<P> Dear Wagner Perlino
<P> What you are asking is commonly done with Linux. For example I have a
small home network with three and sometimes four W95 machines and
sometimes another Linux box. All are connected to a hub along with a
"server" linux box. That machine does the following
<UL>
<LI> dials my ISP on demand using the diald package
<LI> network address translation (masquerading) and firewalling (blocks
bad guys) using IPFWADM
<LI> intranet server using Apache
<LI> file (disk volume) and printer sharing (2 printers) using Samba
<LI> modem sharing (for Juno, FreeInet, etc)
<LI> intranet-enabled control of lamps and other devices using an X10
transmitter on the serial port.
</UL>
Projects underway:
<UL>
<LI> database server installation, possibly MySQL
<LI> cron and perl scripts to update a database of my personal Setiathome
statistics
</UL>
<P> I did not set out to do all of this at once. The project began as a
request to make a dial-on-demand connection. It just grew as I got
better with Linux and realized the power of the O/S and machine.
<P> Dial on demand was quite an experience to set up due to my then
inexperience with Linux, ISP hookups, and networking. Now it would be
quite easy.
<P> There were some issues with the current version of diald (0.16 and 0.99)
and incompatibilities with newer versions of Linux (particularly Red Hat
6.1 and the Ethertap device). When I did this project about a year ago
the issues were being worked through. Some comprehensive how-tos were
posted and some users were reporting success. By now the package itself
has probably been fixed. My workaround was to stay with diald 0.16 and
RedHat 5.1. Setup was straightforward and the combination has worked
flawlessly for about a year.
<P> Contact me if you want more details. I'd be glad to help.
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Subject: insmod and newbie to RH6.1
</FONT> </H3>
Sun, 27 Feb 2000 11:05:53 -0500
<BR>From: David B Sarraf &lt;<A HREF="mailto:david.sarraf@juno.com">david.sarraf@juno.com&gt;</A>
<P> Put the insmod command into /etc/rc.d/rc.local
<P> Any commands there are run at boot time.
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">secondary ide and cdrom
</FONT> </H3>
Sun, 27 Feb 2000 22:32:44 -0500
<BR>From: George W. Bursha &lt;<A HREF="mailto:gburs2@hotmail.com">gburs2@hotmail.com&gt;</A>
<P> I noticed a number of times people have problems with secondary ide on a
pnp sound card. Don't be alarmed by ide3: unexpected interrupt,
status=0xff, count=1. That is to say, if you are successful in getting
your isapnp.conf correct and the the card seems proper from dmesg all
except for this message and you still can't do a mount /dev/cdrom
/cd0.....well fool, then go to /dev and rm cdrom and ln -s to the
correct device! /dev/cdrom is probably linked to /dev/hdb for example.
When testing your cd use 'mount -t iso 9660 /dev/hdx /mnt/cdrom'. Where
x in hdx is the correct device name. You will perhaps surprise yourself
after many hours spent shaking your head.
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Re: Users required to enter root-password? Red Hat 6.1
</FONT> </H3>
Tue, 29 Feb 2000 19:40:27 -0500
<BR>From: Srinivasa A. Shikaripura &lt;<A HREF="mailto:sas@lucent.com">sas@lucent.com&gt;</A>
<BLOCKQUOTE>
I have just installed version 6.1 and set up my modem to dial out to my ISP.
However, when I log on as a user and press KDE&gt;Internet&gt;kppp a pop-up box
opens up and wants me to enter the root-password! This does not seem right.
is there a way to avoid having to enter the root pass word when logged on
as a non-root user?
</BLOCKQUOTE>
<P> You could possibly change the permissions on /dev/modem and whatever
it is pointing to (/dev/ttyS1 etc.) to allow the user to read/write
from that device.
<P> You should also be selectively allow some users to use the modem by giving
group permissions, but I am really not suer how it is done. (but I know
it is possible).
<P> cheers
-Sas
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Re: Modem problem with 5.2
</FONT> </H3>
Sat, 04 Mar 2000 11:33:45 -0800
<BR>From: Steve Dunbar &lt;<A HREF="mailto:sad@efn.org">sad@efn.org&gt;</A>
<BLOCKQUOTE>
... I can hear the modem clicking like it is trying to dial, but it will never dial the number....
</BLOCKQUOTE>
<P> Try running setserial to set the IRQ used by the modem, e.g. I use
"setserial /dev/ttyS2 irq 5 uart 16550A" to get my modem working. This
command must be run as root. You may have to mess with the jumpers on
your modem card to set the IRQ.
<P> There should be an initialization script that controls serial port
configuration at boot time. On Suse 6.3 this is /sbin/init.d/serial. It
should be possible to edit this script to set your modem set up
automagically, although I haven't yet got it working on my system.
<P> See the Modem HOWTO for more info.
<P> -- Steve
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Installing Linux on a laptop with a single FD/CD slot
</FONT> </H3>
Sun, 5 Mar 2000 17:45:26 -0800
<BR>From: &lt;<A HREF="mailto:ben-fuzzybear@yahoo.com">ben-fuzzybear@yahoo.com&gt;</A>
<P> Saw this question in LG the other day - yep, I'm a few issues behind but
catching up fast. Relatively easy answer (I just tried it with both Debian and
Red Hat and it works fine):
<P> (Assumptions: you have DOS/Windows installed, and can read from your CD.)
<P> First, create a directory - C:\Linux is fine.
<P> (The two examples below will cover the majority of the installs done these days, and are easily adaptable to other distros.)
<H3>Debian</H3>
I'm one of those guys who'd never heard of a distro on CD until _after_
d'loading a gig-plus worth of stuff, back when... but somewhere on the CD there
should be files called "loadlin.exe", "root.bin", and "linux", ~1.5MB worth of
stuff. Copy those to your new directory. Shut down your machine (I'm assuming
the CD and the FD are not hot-swappable - otherwise there'd be no point to
this), swap in the CDR, and turn it back on. Start DOS - *not* a DOS window
under Win9x, but DOS (by pressing the F8 key, if necessary, as soon as you see
the "Starting Windows..." message), type
<PRE>
cd Linux
</PRE>
<P> at the C: prompt, then type
<PRE>
loadlin linux root=/dev/ram initrd=root.bin
</PRE>
<H3>Red Hat</H3>
<P> This uses the 5.2 CD but I would think it's much the same for the different
versions. From the "dosutils" directory, copy "loadlin.exe"; from
"dosutils\autoboot" copy "vmlinuz" and "initrd.img" into your "Linux"
directory. Shut down, attach CDROM, reboot into DOS, 'cd Linux', and type
<PRE>
loadlin vmlinuz initrd=initrd.img
</PRE>
<P> ...and you're on your way!
<P> Another tip, while we're on the subject - Debian has these files available at their FTP server, and probably on the CD as well -
<PRE>
base2_1.tgz - 10MB
drv1440.bin - 1.4MB
resc1440.bin - 1.4MB
</PRE>
<P> Stick these in your "Linux" directory, too; they'll install a base Linux
system on your HD, or let you perform any sort of rescue ops necessary (by
mounting your existing Linux partition as /target hanging off a ramdisk, for
example - forget your root password lately? <grin>). No CD required - that's
the entire base package. One of _the_ handiest things there is when you're
munging through a tricky installation - and a GOOD reference for the initial
state of your /etc files (look inside base2_1.tgz). Putting those files on the
DOS side is usually my first step during an installation, and it's saved my
sanity more than once.
<P> Ben Okopnik
Captain S/V "Ulysses"
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">X screen captures into video animation
</FONT> </H3>
Mon, 6 Mar 2000 10:27:37 -0700 (MST)
<BR>From: Michael J. Hammel &lt;<A HREF="mailto:mjhammel@graphics-muse.org">mjhammel@graphics-muse.org&gt;</A>
<P> Thus spoke Ferenc Tamas Gyurcsan
<BLOCKQUOTE>
I just saw your problem on the lg. Did you look for something like
xvidcap? (I can't give you an url, but you will find it.)
ps: If you manage to produce a good mpeg from the captured pictures,
please let me know how.
Ferenc
</BLOCKQUOTE>
<P> The original question was from Shawn Medero, who asked:
<BLOCKQUOTE>
It captures motion on the computer desktop, basically multiple
screen-captures tied together to form a movie of sorts. Primarly one would
use to create training demostrations on linux applications, etc.
</BLOCKQUOTE>
<P> I checked, and yes, XVidCap does appear to fit this description. A quick
check on <A HREF="http://freshmeat.net">Freshmeat</A> gave this description for
XVidCap:
<BLOCKQUOTE>
XVidCap is an X11/Xt program, which captures specified rectangular areas of
the X11 desktop. The captured frames can be saved in different formats
(XWD, PNG, JPEG, PPM). Frames per second and other parameters can be
defined at the command line. The saved frames could be used e.g. for an
mpeg encoder or to make an animated GIF. A Step-mode is supported to get a
frame on mouse click.
</BLOCKQUOTE>
<P> I tried to access the Homepage for this program, but couldn't get through,
though it might be a problem on my end. I don't have time to recheck
today, so I'll just pass along the URLs of interest.
<P> Download: <A HREF="ftp://ftp.komm.hdk-berlin.de/pub/linux/X11/">
ftp://ftp.komm.hdk-berlin.de/pub/linux/X11/</A>
Homepage: <A HREF="http://home.pages.de/~rasca/xvidcap/">
http://home.pages.de/~rasca/xvidcap/</A>
<P> Thanks to Ferenc for pointing this out. Its another application to add to
my own catalog of tools on the Graphics Muse site
(<A HREF="http://graphics-muse.com">http://graphics-muse.com</A>).
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Uninstalling Linux on a Laptop
</FONT> </H3>
Tue, 7 Mar 2000 12:55:23 -0500
<BR>From: &lt;<A HREF="mailto:Michael.Risser@Summus.com">Michael.Risser@Summus.com&gt;</A>
<P> First I know this is opposite of what the intentions of Linux are, but
sometimes it IS necessary.
I recently had to remove Linux from my Dell Inspiron 3500 Laptop so that I
could reinstall Windoze, it was necessary due to work, and limited
hard-drive space(4GB).
<P> Windows fdisk, Partition Magick, and Drive Wizard would not remove the
partitions I had created for Red Hat 6.1(kudos to Linux on that one :-))
Instead you must first begin installing WinNT, and allow it to remove the
partition. After WinNT has removed the partition you can either let it
format the drive, or install Windoze as normal. So far that is the only way
I have found to remove Linux partitions
<P> Note: This tip was actually given me by my brother-in-law who had to do the
same thing.
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">2 Cent Tips
</FONT> </H3>
Wed, 08 Mar 2000 16:13:59 -0500
<BR>From: Bolen Coogler &lt;<A HREF="mailto:bcoogler@dscga.com">bcoogler@dscga.com&gt;</A>
How to set vi edit mode in bash for Mandrake 7.0
<P> If, like me, you prefer vi-style command line editing in bash, here's
how to get it working in Mandrake 7.0.
<P> When I wiped out Redhat 5.2 on my PC and installed Mandrake 7.0, I found
vi command line editing no longer worked, even after issuing the "set -o
vi" command. After much hair pulling and gnashing of teeth, I finally
found the problem is with the /etc/inputrc file. I still don't know
which line in this file
caused the problem. If you have this same problem in Mandrake or some
other distribution, my suggestion for a fix is:
<P> 1. su to root.
2. Save a copy of the original /etc/inputrc file (you may want it back).
<P> 3. Replace the contents of /etc/inputrc with the following:
<PRE>
set convert-meta off
set input-meta on
set output-meta on
set keymap vi
set editing-mode vi
</PRE>
<P> The next time you start a terminal session, vi editing will be
functional.
<P> --Bolen Coogler
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Solution to mysterious dial-in hangup
</FONT> </H3>
Wed, 15 Mar 2000 19:19:56 +0100
<BR>From: Eric Kaf&eacute; &lt;<A HREF="mailto:kafe@mobilixnet.dk">kafe@mobilixnet.dk&gt;</A>
<P> This seems to be a very common Red Hat 6.1 bug. The problem is
mentioned, without a solution, in the current FAQ for the PPP demon.
<P> After installing Red Hat 6.1, every time I tried to dial-in to my
ISP, a mysterious hangup occurred on the first attempt, and the
connection always succeeded the second time. I first suspected the
ISP, but they have nothing to do with it.
<P> The problem disappeared as soon as I compiled ppp from the most
recent source rpm. I use ppp-2.3.11-1 with a 2.2.14 kernel.
Compilation was straightforward. Now I connect at once and
everything is just fine.
<P> According to the README.linux file in the ppp documentation,
there are some subtleties related to compiling ppp for different
kernel versions. Perhaps the ppp package included in Red Hat 6.1
was configured for another kernel than it ships with.
<P> Best regards
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">ATI xpert cards
</FONT> </H3>
Sat, 18 Mar 2000 21:50:25 -0800
<BR>From: &lt;<A HREF="mailto:noah@nack.org">noah@nack.org&gt;</A>
<BLOCKQUOTE>
I'm new user and believer of the Linux OS and I need help badly. I'm looking for a driver for an ATI Xpert@Work 8Mb PCI card. Where can
I get it? I'm using a RedHat 5.2 and my monitor is a Mitsubishi Diamond Scan model FA3415AT4 [...]
</BLOCKQUOTE>
<P> Configure your display with the help of 'XF86Setup' (you have to write it as I do, with upper and lower cased letters), or, if it doesn't run the 'xf86config'
program. Try to find your ATI Card, and if you don't, use simply SVGA. Most of cards which are not listed are standard SVGA Cards (my Matrox
Millenium G200 also), and they run very well with the SVGA driver.
<P> I have (successfully) set up a bunch of ATI cards under RedHat, and lately
(&gt;=5.0) have found that Xconfigurator seems to give better results with ATI cards.
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Re: Tip & Tricks
</FONT> </H3>
Tue, 21 Mar 2000 16:09:45 -0600
<BR>From: Jesse Lang &lt;<A HREF="mailto:jesse@tcmi.com">jesse@tcmi.com&gt;</A>
<P> The tip you're looking for looks something like this:
<P> Edit your dns entry that probably looks like this:
<PRE>
www A [Your Machine's IP Address]
</PRE>
TO:
<PRE>
@ A [Your Machine's IP Address]
www CNAME @
</PRE>
<P> What you're saying is that your IP is uniandes.edu.co and that www is a
alias to it. So either way, it will end up at your site. If Apache is set
up with the ServerName directive as "www.uniandes.edu.co", then it will fix
names as soon as it connects to apache.
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Re: make virtuald
</FONT> </H3>
Tue, 21 Mar 2000 16:50:16 -0600
<BR>From: Jesse Lang &lt;<A HREF="mailto:jesse@tcmi.com">jesse@tcmi.com&gt;</A>
<P> Chances are if your are using any other platform than Linux (Windows, dos,
mac, etc.), the problem is the mode that ftp was in when you uploaded it.
You have to make sure you upload in ascii mode as opposed to binary. This
mode will do the proper conversion of line breaks and such. Give it another
shot. The best way to tell if it's readable on linux is to type 'cat
filename.c' You should see the line breaks in the right places. Hope
this works for you. Let me know if you need more help if this doesn't roll
out for you.
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Linux not detecting above 64meg
</FONT> </H3>
Tue, 21 Mar 2000 16:50:16 -0600
<BR>From: Linux Gazette &lt;<A HREF="mailto:gazette@ssc.com">gazette@ssc.com&gt;</A>
<P> Several readers took your humble Editor to task for telling a user that
Linux cannot autodetect memory above 64 MB because of a BIOS limitation;
instead, I said that you have to tell Linux explicitly in the LILO config file
or at the LILO command line.
<P> The readers said they have had no problems with Linux autodetecting
their 128 MB of memory. So I went home and took the
<PRE>
append = "mem 128M"
</PRE>
line out of my /etc/lilo.conf file and discovered that, indeed, it was
unnecessary. But I know it was a necessity last year when I put the system
together. In the meantime I had switched from kernel 2.0.36 to 2.2.14--perhaps
autodetection was added to the 2.2 kernels.
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Multiple video cards
</FONT> </H3>
Mon, 13 Mar 2000 12:46:32 +0100
<BR>From: Fran&ccedil;ois D&eacute;sarm&eacute;nien &lt;<A HREF="mailto:desar@club-internet.fr">desar@club-internet.fr</A>&gt;
<BLOCKQUOTE>
<P> I have a question, have you any idea where I could find info about running multiple video cards and monitors under linux. eg. 2 SVGA cards or a SVGA and a VGA card
... and how should one configure these ??
</BLOCKQUOTE>
<P> XFree4.0 (which is out now) should solve this issue.
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Screen "Camera" for linux
</FONT> </H3>
Thu, 30 Mar 2000 02:28:57 -0500
<BR>From: Paul Winkler &lt;<A HREF="mailto:slinkp23@yahoo.com">desar@club-internet.fr</A>&gt;
Shawn Medero wrote:
<BLOCKQUOTE>
It captures motion on the computer desktop . .basically multiple
screen-captures tied together to form a movie of sorts. Primarly
one would use to create training demostrations on linux applications, etc.
</BLOCKQUOTE>
<P> You could do this with import (part of the ImageMagick package) and
a simple shell script. Try this, for example.
<P> <A HREF="misc/tips/camera.sh.txt">camera.sh</A>
You could then combine them to an animated GIF with Gimp.
Or use ImageMagick's animate command to view the sequence, like
this:
<PRE>
animate shot*.gif
</PRE>
But that starts a loop that repeats until you stop it...
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <FONT COLOR="navy">Extracting a block of text from a file
</FONT> </H3>
Thu, 30 Mar 2000 09:29:34 -0800
<BR>From: Jim Dennis &lt;<A HREF="mailto:jimd@linuxcare.com">djimd@linuxcare.com</A>&gt;
<BLOCKQUOTE>
I'm trying to extract a block of text from a file using just bash and
standard shell utilities (no perl, awk, sed, etc). I have a definitive
pattern that can denote the start and end or I can easily get the line
numbers that denote the start and end of the block of text I'm
interested in (which, by the way, I don't know ahead of time. I only
know where it is in the file). I can't find a utility or command that
will extract everything that falls between those points. Does such a
thing exist?
</BLOCKQUOTE>
<P> awk and sed are considered to be "standard shell utilities."
(They are part of the POSIX specification).
The sed expression is simply:
<PRE>
sed -n "$begin,${end}p" ...
</PRE>
... if begin and end are line numbers.
<P> For patterns it's easier to use awk:
<PRE>
awk "/$begin/,/$end/" ...
</PRE>
... Note: begin and end are regexes and should be
chosen carefully!
<P> However, since you don't want to do it the
easy way, here are some alternatives:
<P> ------------------ WARNING: very long -------------------------
<P> If it is a text file and you just want some lines out of
it try something like: (<A HREF="misc/tips/shextract.sh.txt">text version</A>)
<PRE>
#!/bin/sh
# shextract.sh
# extract part of a file between a
# pair of globbing patterns
[ "$#" -eq "2" ] || {
echo "Must supply begin and end patterns" &gt;&amp;2
exit 1
}
begin=$1
end=$2
of="" ## output flag
while read a; do
case "$a" in
"$begin") of="true";;
"$end") of="";;
esac
[ -n "$of" ] &amp;&amp; echo $a
done
exit 0
</PRE>
<P> ... this uses no external utilities except for the
test command ('[') and possibly the 'echo' command from
VERY old versions of Bourne sh. It should be supported
under any Bourne shell derivative. Under bash these
are builtin commands.
<P> It takes two parameters. These are "globbing" patterns
NOT regular expressions. They should be quoted, especially
if they contain shell wildcards (?, *, and [...]
expressions).
<P> Read any good shell programming reference (or even the
rather weak 'case...esac' section of the bash man page)
for details on the acceptable pattern syntax. Note
because of the way I'm using this you could invoke
this program (let's call it shextract, for "shell
extraction") like so:
<PRE>
shextract "[bB]egin|[Ss]tart" "[Ee]nd|[Ss]top"
</PRE>
<P> ... to extract the lines between the any occurrence
of the term "begin" or "Begin" or "start" or "Start" and
the any subsequent occurence of "end" or "End" or "stop"
or "Stop."
<P> Notice that I can use the (quoted) pipe symbol in this
context to show "alternation" (similar to the egrep use
of the same token).
<P> This script could be easily modified to use regex's
instead of glob patterns (though we'd either have to
use 'grep' for that or rely on a much newer shell
such as ksh '93 or bash v. 2.x to do so).
<P> This particular version will extract *all* regions
of the file that lie between our begin and end tokens.
<P> To stop after the first we have to insert a "break"
statement into our "$end") ...;;; case. To support
an "nth" occurence of the pattern we'd have to use
an additional argument. To cope with degenerate
input (cases where the begin and end tokens might be
out of order, nested or overlapped) we'd have to
do considerably more work.
<P> As written this example requires exactly two arguments.
It will only process input from stdin and only write
to stdout. We could easily add code to handle
more arguments (first two are patterns, 'shift'ed out
rest are input file names) and some options switches
(for output file, only one extraction per file,
emit errors if end pattern is found before start
pattern, emit warnings if no begin or subsequent end
pattern is found on any input file, stop processing on
any error/warning, etc).
<P> Note: my exit 0 may seem superfluous here. However,
it does prevent the shell from noting that the
program "exited with non-zero return value" or
warnings to that effect. That's due to my use of
test ('[') on my output flag in my loop. In the
normal case that will have left a non-zero return value
since my of flag will be zero length for the part of
the file AFTER the end pattern was found.
<P> Note: this program is SLOW. (That's what you get for
asking for it in sh). Running it on my 38,000 line
/usr/share/games/hangman-words (this laptop doesn't
have /usr/dict/words) it takes about 30 seconds or
roughly only 1000 lines per second on a P166 with 16Mb
of RAM. A binary can do better than that under MS-DOS
on a 4Mhz XT!
<P> BUG: If any lines begin with - (dashes) then your version
of echo *might* try to treat the beginnings of your lines
as arguments. This *might* cause the echo command to
parse the rest of the line for escape sequences. If you
have printf(1) evailable (as a built-in to your shell or
as an external command) then you might want to use that
instead of echo.
<P> To do this based on line numbers rather than patterns
we could use something more like:
(<A HREF="misc/tips/lnextract.sh.txt">text version</A>)
<PRE>
#!/bin/sh
# lnextract.sh
# extract part of a file between a
# line numbers $1 and $2
function isnum () {
case "$1" in
*[^0-9]*)
return 1;;
esac
}
[ "$#" -gt "2" ] || {
echo "Must supply begin and end line numbers" &gt;&amp;2
exit 1
}
isnum "$1" || {
echo "first argument (first line) must be a whole number" &gt;&amp;2
exit 1
}
isnum "$2" || {
echo "second argument (last line) must be a whole number" &gt;&amp;2
exit 1
}
begin=$1
end=$2
[ "$begin" -le "$end" ] || {
echo "begin must be less than or equal to end" &gt;&amp;2
exit 1
}
shift 2
for i; do
[ -r "$i" -a -f "$i" ] || {
echo "$i should be an existing regular file" &gt;&amp;2
continue
}
ln=0
while read a ; do
let ln+=1
[ "$ln" -ge "$begin" ] &amp;&amp; echo $a
[ "$ln" -lt "$end" ] || break
done < "$i"
done
exit 0
</PRE>
<P> This rather ugly little example does do quite a
bit more checking than my previous one.
<P> It checks that its first two arguments are
numbers (your shell must support negated character
class globs for this, ksh '88 and later, bash 1.x and 2.x,
and zsh all qualify), and that the first is less than or
equal to the latter. Then it shifts those out of
the way so it can iterate over the rest of the
arguments, extracting our interval of line from
each. It checks that each file is "regular"
(not a directory, socket, or device node) and
readable before it tries to extract a portion of
it. It will follow symlinks.
<P> It has some of the same limitations we saw before.
<P> In addition it won't accept it's input from stdin
(although we could add that by putting the main loop
into a shell function and invoking it one way if
our arg count was exactly two, and differently
(within our for loop) if $# is greater than two.
I don't feel like doing that here --- as this message
is already way too long and that example is complicated
enough.
<P> It's also possible to use a combination of 'head' and
'tail' to do this. (That's a common exercise in
shell programming classes). You just use something
like:
<PRE>
head -$end $file | tail -$(( $end - $begin ))
</PRE>
<P> ... note that the 'tail' command on many versions
of UNIX can't handle arbitrary offsets. It can
only handle the lines that fit into a fixed block size.
GNU tail is somewhat more robust (and correspondingly
larger and more complicated). A classic way to
work around limitations on tail was to use tac (cat
a file backwards, from last line to first) and
head (and tac again). This might use prodigous
amounts of memory or disk space (might use temporary
files).
<P> If you don't want line oriented output --- and your
patterns are regular expressions, and you're willing
to use grep and dd then here's a different approach:
<PRE>
start=$(grep -b "$begin" ... )
stop=$(( $( grep -b "$end" ... ) - $begin ))
dd if="$file" skip=$begin count=$stop bs=1b
</PRE>
<P> This is not a shell script, just an example.
Obviously you'd have to initialize $begin, $end, and $file
or use $1, $2, and $3 for them to make this into a
script. Also you have to modify those grep -b commands
a little bit (note my ellipses). This is because grep
will be giving us too much information. It will be
giving a byte offset to the beginning of each pattern
match, and it will be printing the matching line, too.
<P> We can fix this with a little work. Let's assume that
we want the first occurrence of "$begin" and the last
occurence of "$end" Here's the commands that will
just give us the raw numbers:
<PRE>
grep -b "$begin" "$file" | head -1 {
IFS=:
read b x
echo b
}
grep -b "$end" "$file" | tail -1 | {
IFS=:
read e x
echo e
}
</PRE>
<P> ... notice I just grep through head or
tail to get the first or last matching line,
and I use IFS to change my field separator
to a ":" (which grep uses to separate the offset
value from the rest of the line). I read the
line into two variables (separated by the
IFS character(s)), and throw away the extraneous
data by simply echoing the part I wanted
(the byte offset) back out of my subshell.
<P> Note: whenever you use or see a pipe operator
in a shell command or script --- you should
realize that you've created an implicit subshell
to handle that.
<P> Incidentally, if your patterns *might* have a
leading - (dash) then you'll have problems
passing them to grep. You can massage the
pattern a little bit by wrapping the first
character with square brackets. Thus "foo"
becomes "[f]oo" and "-bar" becomes "[-]bar".
(grep won't consider an argument starting
with [ to be a command line switch, but it
will try to parse -bar as one).
<P> This is easily done with printf and sed:
<PRE>
printf "%s" "$pattern" | sed -e 's/./[&amp;]/'
</PRE>
<P> ... note my previous warning about 'echo' ---
it's pretty permissive about arguments that
start with dashes that it doesn't recognize, it'll
just echo those without error. But if your pattern
starts with "-e " or -n it can effect out the rest
of the string is represented.
<P> Note that GNU grep and echo DON'T seem to take the
-- option that is included with some GNU utilities.
This would avoid the whole issue of leading dashes
since this conventionally marks the end of all
switch/option parsing for them.
<P> Of course you said you didn't want to use sed,
so you've made the job harder. Not impossible,
but harder. With newer shells like ksh '93 and
bash 2.x we can use something like:
<PRE>
[${pattern:0:1}]${pattern:1}
</PRE>
<P> (read any recent good book on shell programming
to learn about parameter expansion).
You<P> can use the old 'cut' utility, or 'dd' to
get these substrings. Of course those are just
as external to the shell as perl, awk, sed,
test, expr and printf.
If you<P> really wanted to do this last sort of
thing (getting a specific size substring from
a variable's value, starting from an offset
in the string, using only the bash 1.x parameter
expansion primitives) it could be done with a whole
lot of fussing. I'd use ${#varname} to get the
size, a loop to build temporary strings of
? (question mark) characters to of the right
length and the ${foo#} and ${foo%} operators
(stripping patterns from the left and right of
variable's value respectively)
to isolate my substring.
<P> Yuck! That really is as ugly as it sounds.
<P> Anyway. I think I've said enough on the subject
for now.
<P> I'm sure you can do what you need to. Alot of
it depends on which shell you're using (not just
csh vs. Bourne, but ksh '88 vs. '93 and bash v1.14
vs. 2.x, etc) and just how rigit you are about that
constraint about "standard utilities"
<P> All of the examples here (except for the ${foo:}
parameter expansion) are compatible with bash 1.14.
<P> (BTW: now that I'm really learning C --- y'all can
either rest easy that I'll be laying off the sh
syntax for awhile, or lay awake in fear of what I'll
be writing about next month).
<P> Here's a short GNU C program to print a set of
lines between one number and another:
(<A HREF="cextract.c.txt">text version</A>)
<PRE>
/* extract a portion of a file from some beginning line, to
* some ending line
* this functions as a filter --- it doesn't take a list
* of file name arguments.
*/
#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;stdlib.h&amp;gt;
#include &amp;lt;errno.h&amp;gt;
int
main (int argc, char * argv[] )
{
char * linestr;
long begin, end, current=0;
ssize_t * linelen;
linelen = 0;
linestr=NULL;
if ( argc &amp;lt; 3 ) {
fprintf(stderr, "Usage: %s begin end\n", argv[0]);
exit(1);
}
begin=atol(argv[1]);
if ( begin &amp;lt; 1 ) {
fprintf(stderr, "Argument error: %s should be a number "
"greater than zero\n", argv[1]);
exit(1);
}
end=atol(argv[2]);
if ( end &amp;lt; begin ) {
fprintf(stderr, "Argument error: %s should be a number "
"greater than arg[1]\n", argv[1]);
exit(1);
}
while ( getline(&amp;linestr, &amp;linelen, stdin ) &amp;gt; -1
&amp;&amp; (++current &amp;lt; end ) ) {
if (current &amp;gt;= begin) {
printf("%s", linestr);
}
}
exit(0);
return 0;
}
</PRE>
<P> This is about the same length as my shell version.
It uses atol() rather than strtol() for the
argument to number conversion. atol() (ASCII to long)
is simpler, but can't convey errors back to us.
However, I require values greater than zero, and GNU
glibc atol() returns 0 for strings that can't be
converted to longs. I also use the GNU getline()
function --- which is non-standard, but much more
convenient and robust than fussing with scanf(),
fgets() and sscanf(), and getc() stuff.
<!-- END tips.answers -->
<!-- *** BEGIN copyright *** -->
<P> <hr> <P>
<H5 ALIGN=center>
This page written and maintained by the Editor of the <I>Linux Gazette</I>.
Copyright &copy; 2000, <A HREF="mailto:gazette@ssc.com">gazette@ssc.com</A><BR>
Published in Issue 52 of <i>Linux Gazette</i>, April 2000</H5>
<!-- *** END copyright *** -->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">Microsoft flip-flop</font></H1>
<H4>By <a href="mailto:mark@linuxmall.com">Mark Bolzern</a></H4>
</center>
<P> <HR> <P>
<!-- END header -->
<P> <EM>Microsoft's flip-flop on Linux has created a lot of confusion in the
marketplace. Here's a look at the positions taken during and after the
anti-trust trial, and an evaluation by a Linux advocate.</EM>
<P> Microsoft has managed to create a quagmire of uncertainty among some
potential Linux users by conveniently recognizing Linux as a technological
threat to Windows 9x and NT during the Antitrust Trial, then denouncing Linux
as "hype" on a Microsoft web site. Obviously, Microsoft was willing to portray
Linux as competition to the court, but not to the buying public.
<P> One the one hand, in its "Proposed Findings" submitted to the anti-trust
court, Microsoft all but endorsed Linux. The section on the findings on
competitive operating systems glittered with references to Linux's viability
and acceptance. While anti-trust prosecutors no doubt anticipated that sort of
tactic from Microsoft, such detailed recognition of Linux coming from Microsoft
was stunning. Of course, Microsoft's Proposed Findings were not the findings of
the court, and shortly after the trial, Microsoft accordingly changed its
public position about Linux.
<H4>Documenting the Flip-flop</H4>
<P> While Microsoft may have previously characterized Linux as "pie in the
sky," the company felt sufficiently threatened to show a short film ridiculing
Linux at its July meeting with stock market analysts. Most people would
consider that good old-fashioned FUD (Fear, Uncertainty and Doubt), a tactic
frequently employed by Microsoft. After the meeting, however, Microsoft
executives reportedly emphasized the real point: They had ridiculed Linux
because they were afraid of it.
<P> In September, in a hefty document submitted to the anti-trust court
(Defendant Microsoft Corporation's Revised Proposed Findings of Fact, Microsoft
Does Not Possess Monopoly Power in the Alleged Market for "Operating Systems
for Intel-Compatible PCs." -- September 10, 1999) Microsoft made over 50
references to Linux as a competitive operating system that is gaining
significant momentum and market share.
<P> But in October, Microsoft was on the offensive again, publishing a "Linux
Myths"
(<A HREF="http://www.microsoft.com/ntserver/nts/news/msnw/LinuxMyths.asp">http://www.microsoft.com/ntserver/nts/news/msnw/LinuxMyths.asp</A>) page on
the web. This time Linux was characterized as a lot of hype.
<P> We all know that Microsoft is a fierce competitor, with many challengers
and enemies. But in the interest of separating the hype from the realities, we
need to sort out what were the main assertions about Linux that Microsoft
declared in its court-filed "Proposed Findings," and how do the compare to the
"Linux Myths" document.
<P> As one who has been heavily involved with the microcomputing world since
the mid '70s, and a member of the Linux community from the outset, I would like
to review the Microsoft positions and try to make sense of them. To accomplish
this, however, we must assess some obvious contradictions.
<H4>Issue 1: Competitive Operating Systems</H4>
The case brought by "We The People" against Microsoft was for its alleged unfair trading practices that, among other things, stifled innovation. Microsoft countered that charge in their Proposed Findings document by saying there is considerable evidence of significant innovation in the marketplace. Indeed, Microsoft cited Linux very prominently among "competitive operating systems" and quoted Gordon Eubanks, CEO of Oblix, as saying Linux has already become a "viable commercial solution." Microsoft also cited that Linux "runs on various popular microprocessor architectures, such as Intel's x86, Compaq's Alpha, Silicon Graphics MIPS, Motorola's PowerPC and Sun's SPARC."
<P> A month later Microsoft flip-flopped in its Linux Myths by saying, "Linux does not provide support for the broad range of hardware in use today."
<P> Microsoft was, in fact, right the first time. In reality, Linux supports most exciting PC hardware and much non-PC hardware. Linux is an innovative extension of Unix as noted in my 1994 document "Why Linux is Significant," which predicted correctly many years ago the state of Linux today
(<A HREF="http://www.LinuxMall.com/news/announce/lxsig">http://www.LinuxMall.com/news/announce/lxsig</A>).
<P> With the proven stability of the Linux kernel, Microsoft is correct to anticipate that various Linux systems will compete effectively with Windows NT. Perhaps more important, Linux will compete with Windows 2000, Microsoft's future contender for the business community. In fact, the wild success of the Red Hat and VA Linux IPOs has no doubt stolen a lot of thunder from the long-planned Windows 2000 rollout.
<H4>Issue 2: The User Interface</H4>
Running Linux successfully on microprocessors is one thing, but what about the user interface? Microsoft's September position, taken in the Proposed Findings, stated that "KDE distributes a graphical user interface (GUI) for use with Linux on desktop computers that looks remarkably like Windows 98 . . . and Corel is also developing a graphical user interface for Linux."
<P> Later on, in its Linux Myths, Microsoft maintains that "The complexity of the Linux operating system and cumbersome nature of the existing GUIs would make retraining end-users a huge undertaking and would add significant cost." Another flip-flop.
<P> The fact is, the Corel and KDE interfaces are indeed pleasing and user friendly. So are the ones developed by the Gnome project, Xi Graphics' CDE and others. And when you consider the thousands of expert participants in the Linux community who are contributing their expertise to the free software cause, it suggests that if there's a next quantum improvement in GUIs, it will come through the Linux Community.
<H4>Issue 3: Software Applications</H4>
Okay, Linux qualifies as an operating system with a GUI. But what about applications? In the Proposed Findings Microsoft says numerous software developers are producing Linux applications, and more are on their way. Those which Microsoft identified included Netscape's browsing software, Lotus Notes, Corel's WordPerfect Office and the StarOffice suite of business applications from Sun, as well as productivity suites and many Internet applications.
<P> In the Linux Myth document Microsoft flip-flopped again, saying, "Linux as a desktop operating system makes no sense. A user would end up with a system that has fewer applications, is more complex to use and manage, and is less intuitive."
<P> It seems to me that this flip-flop is not only transparent, but flies in the face of potential future litigation. The fact is, freely-distributed Windows emulators will circumvent many interface problems. Even Microsoft's Proposed Findings recognizes that it's possible to run Windows-based applications for Linux by using WINE emulation software developed by the open source movement. In addition, Red Hat, Caldera, SuSE, TurboLinux, Linux-Mandrake and other future versions of Linux will be bundled with popular desktop applications. And products like Tarantella, which connects dissimilar systems to share applications, and VM-Ware, which allows running Linux and Microsoft OS simultaneously on the same machine, among others are starting to have a significant impact. There is also a significant trend toward the porting of Windows applications to Linux by manufacturers themselves.
<P> Microsoft is also guilty of not being completely honest with its own users. Windows 2000 will be incompatible with a number of existing Windows applications, and with the advent of Intel's 64-bit computing platform, both Linux and Windows will find themselves on a level playing field for applications. When vying for application support on the Intel 64-bit platform, Microsoft may quickly fall behind Linux in terms of available applications.
<H4>Issue 4: What About Hardware Support?</H4>
What about the big hitters in microcomputer hardware, are they likely to support Linux? According to the Proposed Findings, "Leading OEMs such as Sun, Dell, Gateway, Toshiba, IBM, Silicon Graphics, Hewlett-Packard and Hitachi, (plus Apple) are now shipping Linux . . . preinstalled on one or more of their computer models."
<P> Later, in the Linux Myths, Microsoft says "The Linux community likes to talk about Linux as a stable and reliable operating system, yet there are no real world data or metrics and very limited customer evidence to back up these claims." Microsoft points to it customers, including Boeing, Barnes and Noble, Dell Computer and Nasdaq, as dependent on Windows NT 4.0 for their mission-critical applications.
<P> While Microsoft has, and will continue to have, an impressive list of high-end customers, so too does Linux. Nearly all of the Fortune 2,000 are listed in LinuxMall.com's customer base, and are using Linux for strategic purposes. As stated by Microsoft and noted in the press on a daily basis, many high-profile computer manufacturers and independent support companies are now offering comprehensive lists of hardware supported by Linux. At the time of this writing, in addition to the manufacturers mentioned by Microsoft, my company, LinuxMall.com, is being flooded by requests from companies wanting to offer Linux-based hardware, as well as offering support services for sale.
<P> Actually, the Internet abounds with stories of failed installations based on Microsoft technology being replaced by Linux and other Open Source systems, and the phenomenal return on investment that doing so brings about.
<H4>Issue 5: User Support</H4>
The Proposed Findings state that "five to ten million people were using Linux on workstations or personal computers at the beginning of 1999, and that the number is growing rapidly."
<P> Then, in Linux Myths: "Serious corporations are spending serious money on Linux, and it is growing rapidly on all relevant fronts . . .The Linux operating system is not suitable for mainstream usage by business or home users," and goes on to explain why Linux has a long way to go to be competitive to Windows.
<P> It doesn't actually surprises me that so many millions of people were using Linux as of last year. As CEO of one of the Internet's largest Linux-related sites, I have seen our traffic grow to more than 1/2 million people per month, many of whom are using Linux. IDC has pegged the growth of the Linux market at about 212% per year, and I believe that Microsoft has pegged the annual Linux growth rate closer to 1000%. That's rather breathtaking, and the rate is obviously capable of continuing in the short term as the support for both corporate and home users gets dramatically better.
<P> Witness to a Paradigm Shift?
Microsoft's contradictory position on Linux as a viable competitor seems indicative of the difference between the marketplace and the court. It also indicates that Microsoft senses a paradigm shift similar to the shift that allowed Microsoft to replace IBM as the dominant force in the computer industry. Only time will tell if Linux will displace Microsoft entirely, but the shift is important nonetheless. Just as IBM suffered and then adapted, so will Microsoft. The question is "when."
<P> If you're aware of the news in general, you know there is a lot of excitement about Linux, and a certain amount of hype. My guess is that all the ink Linux has generated over the past year has created a 60-70% awareness of the operating system. Of that, perhaps 5-10% took action in 1999. Does that mean it's being oversold? I don't believe so.
<P> Microsoft minimizes the importance of Linux's low cost (actually, no cost to download, and cheaper yet when you consider time, $1.89 for any of the most popular Linux distributions on CD from LinuxMall.com.), arguing that "A free operating system does not mean low total cost ownership." However, when a Fortune 1000 business considers running Windows 2000 on servers and thousands of workstations, they will be faced with paying millions of dollars for their operating system in licensing fees alone! In addition, it is common knowledge that it is not out of the ordinary to need to reboot Windows NT servers weekly or monthly in order to avoid problems. Linux, on the other hand, has been proven to run for months and sometimes years without requiring a reboot. In 24/7 operations this is a critical issue. This is especially true when the cost of supporting Linux, because of its stability and configurability, may actually be lower than for Windows NT, even while techs for Linux are being quickly spawned by universities and the Internet. These are reasons why many if not most of the ISPs that once used Windows NT now use Linux or its Open Source cousin, FreeBSD, as will more and more corporations.
<P> I believe Linux is en route to becoming the operating system of choice very soon. Its development simply cannot be stopped, simply because of the community dynamic behind it. As people become aware of how rapidly Linux is getting easier to use and support, acceptance at the desktop will grow dramatically. In the next two or three years, Linux will continue to attain significant market penetration. Over the next five years, it has a chance to become the dominant operating system for general use.
<P> I also believe that the findings of fact tend to underestimate what is happening with Linux. In general, the present situation is accurately depicted by the findings, but I believe Judge Jackson has erred on the side of caution in finding that Linux is not a significant long-term competitor to Microsoft. However, Judge Jackson can be excused for his lack of vision concerning Linux since proving that Microsoft would have significant competition in the future will not excuse them for past actions.
<P> In the end, Microsoft's public smoke screen cannot obscure the fact that Linux is a viable operating system for servers and desktops alike. Linux has made good on being the "better UNIX than UNIX" that was the stated goal of Windows NT. The question is no longer, "Is Linux ready for you?" The question now is, "Is the public ready for Linux?"
<!-- *** BEGIN copyright *** -->
<P> <hr> <!-- P -->
<H5 ALIGN=center>
Copyright &copy; 2000, Mark Bolzern<BR>
Published in Issue 52 of <i>Linux Gazette</i>, April 2000</H5>
<!-- *** END copyright *** -->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">HelpDex</font></H1>
<H4>By <a href="mailto:shane_collinge@yahoo.com">Shane Collinge</a></H4>
</center>
<P> <HR> <P>
<!-- END header -->
<H1>Database</H1>
<IMG ALT="HelpDex8.jpg" SRC="gx/collinge/database.jpg"
WIDTH="750" HEIGHT="300">
<BR CLEAR="all">
<IMG ALT="HelpDex8.jpg" SRC="gx/collinge/geek.jpg"
WIDTH="750" HEIGHT="300">
<BR CLEAR="all">
<IMG ALT="HelpDex8.jpg" SRC="gx/collinge/resent.jpg"
WIDTH="750" HEIGHT="300">
<BR CLEAR="all">
<SPACER TYPE="vertical" SIZE="20">
<H1>Paper Clips</H1>
<IMG ALT="HelpDex8.jpg" SRC="gx/collinge/weetbix.jpg"
WIDTH="750" HEIGHT="300">
<BR CLEAR="all">
<IMG ALT="HelpDex8.jpg" SRC="gx/collinge/king.jpg"
WIDTH="750" HEIGHT="300">
<BR CLEAR="all">
<IMG ALT="HelpDex8.jpg" SRC="gx/collinge/tile.jpg"
WIDTH="750" HEIGHT="300">
<BR CLEAR="all">
<SPACER TYPE="vertical" SIZE="20">
<H1>Cartooning</H1>
<IMG ALT="HelpDex8.jpg" SRC="gx/collinge/written.jpg"
WIDTH="750" HEIGHT="300">
<BR CLEAR="all">
<P> More <EM>HelpDex</EM> cartoons are on Shane's web site,
<A HREF="http://mrbanana.hypermart.net/Linux.htm">
http://mrbanana.hypermart.net/Linux.htm</A>.
<!-- *** BEGIN copyright *** -->
<P> <hr> <!-- P -->
<H5 ALIGN=center>
Copyright &copy; 2000, Shane Collinge<BR>
Published in Issue 51 of <i>Linux Gazette</i>, March 2000</H5>
<!-- *** END copyright *** -->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">A Fantastic Interview with Wine's Man Alexandre Julliard</font></H1>
<H4>By <a href="mailto:frc@linuxsolutions.com.br">Fernando Ribeiro Corr&ecirc;a</a> and Luis Strano</H4>
<EM>Originally published at
<A HREF="http://www.olinux.com.br/interviews/10/en">
http://www.olinux.com.br/interviews/10/en</A></EM>
</center>
<P> <HR> <P>
<!-- END header -->
<H4>Olinux: Tell us about your background?</H4>
<STRONG>Julliard:</STRONG> I've studied computer science at the Swiss Federal
Institute of Technology. I've been working in software development for
the last 10 years, mostly in embedded software (routers, payphones,
etc.), and I've been working as a hobby on the Wine project since its
start in 1993.
<H4>Olinux: Explain shortly the Wine's History and Organization? What<61>s
its main purpose?</H4>
<STRONG>Julliard:</STRONG> Wine started in 1993, and I've been the maintainer
since 1994. The main purpose is to allow running Windows binaries under
Linux (and other Unix systems), as well as to allow people to recompile
their existing Windows source code to build native Unix binaries without
having to modify the existing code.
The organisation is along the "benevolent dictatorship" model; all the
changes are submitted to me, and I have the final say on what gets or
doesn't get into the source tree.
<H4>Olinux: What is your main work in real life? Are you full time worker
for wine?</H4>
<STRONG>Julliard:</STRONG> I'm working for the company CodeWeavers; part of my job
is to work on Wine, the other part is to work on custom development jobs
for customers. At the moment this includes doing Wine development on
behalf of Corel, so yes I'm mostly working full-time on Wine, at
least for now.
<H4>Olinux: What you do in Wine?</H4>
<STRONG>Julliard:</STRONG> A little bit of everything... my speciality is mostly
in the low-level areas like memory management, threading, etc. Plus of
course studying incoming patches and merging them into the source tree.
<H4>OLinux: Are there business companies or any other type of
organization that finances Wine development? How did Corel investment
and support change wine<6E>s development?</H4>
<STRONG>Julliard:</STRONG> There is no organisation putting funds directly into
Wine, but there are companies having people work on Wine; of course the
major contributor in this area is Corel, with a lot of people working
full-time on Wine.
Corel's involvment has done a lot for Wine, mainly by addressing areas
of the code that had been a bit neglected until then, and also by doing
extensive testing of all their office suite under Wine and fixing all
the problems they encountered. Wine is definitely much better now than
it would have been without Corel's help.
<H4>Olinux: Everyone in Wine's staff is a volunteer?</H4>
<STRONG>Julliard:</STRONG> No, since there are people at Corel working on it as
part of their job.
<H4>Olinux: How people are organized and what are tools are used to
control the results of the work being done in different projects and
parts of the world?</H4>
<STRONG>Julliard:</STRONG> People communicate through mailing lists, and all the
code is in a CVS repository accessible read-only by anybody. All the
changes are reviewed by me, and then stored in the CVS tree where
anybody can test them.
<H4>Olinux: How many people are working for wine nowadays? Are you
satisfied with the results?</H4>
<STRONG>Julliard:</STRONG> It's hard to say exactly how many people are working at
any given moment, but I'd estimate it at 30-40 active developers. I
think the results are very impressive, particularly when compared to the
amount of resources Microsoft is putting into Windows.
<H4>Olinux: Are there anything that can be done to improve
productivity?</H4>
<STRONG>Julliard:</STRONG> Having more people of course; better documentation of
the Windows API would help a lot but I don't think there is much to hope
for from Microsoft in this respect.
<H4>Olinux: Describe the active projects and their core activities? How
are the tasks divided and co-ordinated in terms of content and
staff?</H4>
<STRONG>Julliard:</STRONG> There is no formal organisation in sub-projects. Everybody works on what he wants to, and coordination is done through the mailing list and CVS tree.
<H4>Olinux: How would you answer Bill Gates statements that Linux wasn't
any danger to Microsoft monopoly because it was decentralized and
uncoordinated?</H4>
<STRONG>Julliard:</STRONG> Linux is a danger to Microsoft precisely because it is
decentralized. There isn't one company that you can buy or put out of
business, so the usual Microsoft tactics do not work against Linux.
<H4>Olinux: Do you see any problem regarding quality of software
development and maintenance due associated to the volunteer work?</H4>
<STRONG>Julliard:</STRONG> I think the quality is usually better with volunteer
work, since people take the time to do things the right way, and also
take more pride in their work since it is published for the whole world
to see.
The main problem with volunteer work is that the parts of the code that
are less fun to write get less attention; this is why it is a good thing
to have both volunteer and paid developers on the same project.
<H4>Olinux: How do you describe wine achievements in 90's and what are
the prospects and goals for 2000? When users will have a perfect version
of wine?</H4>
<STRONG>Julliard:</STRONG> Wine has come a very long way, from the initial 16-bit
support to now nearly complete support of both 16- and 32-bit APIs, OLE,
DirectX, etc. We are getting to the point where the core of Wine is
complete, which should lead us to the first general public release,
hopefully sometime this year.
The perfect version that runs 100% of the applications with 100%
compatibility is probably never going to exist, but a version that is
perfect for a certain number of tested applications is certainly
possible; and in fact today's Wine is already perfectly good enough for
certain applications.
<P> <EM>The OLinux site also has more Linux interviews.
<UL>
<LI> English:
<A HREF="http://www.olinux.com.br/interviews/">
http://www.olinux.com.br/interviews/</A>
<LI> Portuguese:
<A HREF="http://www.olinux.com.br/entrevistas/">
http://www.olinux.com.br/entrevistas/</A>
</UL>
</EM>
<!-- *** BEGIN copyright *** -->
<P> <hr> <!-- P -->
<H5 ALIGN=center>
Copyright &copy; 2000, Fernando Ribeiro Corr&ecirc;a and Luis Strano<BR>
Published in Issue 52 of <i>Linux Gazette</i>, April 2000</H5>
<!-- *** END copyright *** -->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">Linux Site O' The Month: Glade</font></H1>
<H4>By <a href="mailto:slambo@linuxstart.com">Sean Lamb</a></H4>
</center>
<P> <HR> <P>
<!-- END header -->
<H2>What's This?</H2>
<P> This article is the the current installment in an ongoing series of site
reviews for the Linux community. Each month, I will highlight a Linux-related
site and tell you all about it. The intent of these articles is to let you
know about sites that you might not have been to before, but they will all have
to do with some aspect of Linux. Now, on with the story...
<H2>Glade (<a href="http://glade.pn.org/"><tt>http://glade.pn.org/</tt></a>)</H2>
<P>Linux, and UN*X in general, rocks the command line. However, as more users familiar
with that <i>other</i> operating system migrate to a real operating system, they expect
to see a graphical interface on almost everything. You may argue that this is a Bad
Thing, but as a programmer myself, I see this as a Good Thing. It means that more and
more programs will need to be written, updated and maintained, which translates to job
security.
<P>With users migrating from another windowing system, they expect to find programs that
have a windowing interface. Even with the advantage that there is almost always more
than one way to do something in Linux, the choice of windowing libraries to use can very
quickly generate a religious war, so I'll try not to spread any of my own preferences in
this area, lest I become a target myself.
<P>Until recently, it has been difficult to write a completely windows-driven (note the
lack of capitalization here) user interface from scratch. Writing an interface with a
text editor and compiler can be exceedingly time consuming for a programmer who isn't
intimitely knowledgeable about the windowing library. That's where Glade comes in.
<h3>The program...</h3>
<P>Glade is an attempt to create an interface builder that uses the GTK+ library to
create the widgets that the programmer needs for an application. If you have the
GNOME development libraries installed, Glade can produce native GNOME application
interfaces as well. Once you get used to creating and placing widgets in Glade, you
can create some very complex interfaces in a manner of minutes.
<P>When the interface is the way that you like, Glade can create the source code for
you in either C, C++, Ada95, Python and Perl. Glade will also allow you to create a
dynamically loaded interface that uses libGlade to read and build the screen definitions
without generating source code (this can be handy for writing quick dialog boxes or
informational windows).
<P>Although Glade is currently still in development, now at version 0.5.7, my testing
proved this to be a robust application that was able to create the interface that I wanted
with a minimum of troubles.
<h3>The website...</h3>
<P>This wouldn't be a Linux Site O' The Month without a look at the website, so let's take
a closer look...
<P>At first glance, the Glade website isn't the most exciting site on the internet. But,
that's not necessarily a Bad Thing. With a minimum of graphic elements on the main page, it
is a very fast-loading site, compared to others that I've seen recently. The site is
frameless, which I am tending to like more as I see frames so misused on other sites.
<P>The Features section of this site includes screenshots of the three windows that make up
the Glade interface as well as some sample images of interfaces that were created with Glade.
The Download page includes the usual list of source code tarballs and a few prebuilt packages
for some of the more popular distros. The developer has included both the release history
and todo list for Glade in the History and ToDo sections, respectively. If your mailbox isn't
quite full enough yet, you can get your fill under the Mailing Lists link. Finally, in the
Links section, there are links to information and tools that use or support Glade, while the
Applications section highlights apps that were built with Glade.
<P>This isn't a very big website, but what it lacks in size, it makes up in content. There
is enough information on this site to help you get Glade installed on your box, get you started
building applications with it, and get you examples of other programs that were created with
it. If you've been thinking of building an application for Linux but don't know where to start
in building your interface, try Glade. You'll be surprised at how easy it can be to get down
to writing the code that controls your program and not worry about how it connects to the
user's rodential device pointer.
<!-- *** BEGIN copyright *** -->
<P> <hr> <!-- P -->
<H5 ALIGN=center>
Copyright &copy; 2000, Sean Lamb<BR>
Published in Issue 52 of <i>Linux Gazette</i>, April 2000</H5>
<!-- *** END copyright *** -->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">"Cannot execute /bin/bash: Permission denied" - solved!</font></H1>
<H4>By <a href="mailto:ben-fuzzybear@yahoo.com">Ben Okopnik</a></H4>
</center>
<P> <HR> <P>
<!-- END header -->
<P> Just a few minutes before sitting down to write this article, I managed
to fix a problem that has been the bane of my existence for the last two
weeks. Since it is a problem that I have often seen mentioned in the
Linux Gazette, usually phrased in a manner that shows the writer to be
standing on a chair with a noose around his neck and typing with his
toes, I've decided to share it with other readers, hopefully saving them
wear and tear on good rope. This may also serve as a good guide to
troubleshooting software problems in general. Be aware, though, that a
login problem could involve _any_ of the areas described - what fixed my
particular machine may not be the solution for yours.
<P> A couple of weeks ago, I decided to install an MUA (Mail User Agent) on my
machine. A strange thing to do, considering that I live on a sailboat
anchored well away from phone lines or electricity - but I had my reasons.
I'd done this on land-based systems before; there was just a bit of
experimentation that I wanted to do.
Wel<P> l, as a pride of lemmings goeth before a fall off a cliff, so does an
MTA (Mail Transfer Agent) go before an MUA - you need something that
will deliver the mail, otherwise there's not much point in writing it! So,
an MTA/MUA installation. No problem - I keep the entire Debian
distribution on the Linux partition of my hard drive; this speeds up
installations as well as making package searches a trivial task.
<P> If truth be known, I don't like 'su', at least not for major
tasks: the fact that it keeps the original user's environment variables, rather
than assuming those of the account being "su"'d to, has caused me a few
"interesting moments". Yeah, a quick permissions change or an /etc file
modification - all right, - but for serious work, like installing and
uninstalling several major packages (I wasn't sure which MTA I wanted yet), I
log in as `root'.
<P> On to the task. Midnight Commander makes it the work of a few keystrokes
to dive into and explore a directory tree, as well as letting you look
inside - and install - any Debian or RedHat package. Let's see...
`sendmail'? (Read the `man' page inside the package, look at the docs,
install...) Nope, too big and complex. I need something a bit simpler.
(Uninstall.) `exim'?... `exmh'?... `mh'?... `nmh'? All got the same
"install/uninstall" treatment, with the exception of required libraries:
whenever I install a library, it stays installed. After a bit of doing
this on a new system, I don't get any complaints about `Required libraries
missing' - if it wasn't for the fact that a number of libs in any given
distribution are `either/or' choices (they'd conflict with each other), I'd
install the entire "libs" directory and never worry about it again!
<P> However, I still had an MTA to choose. Ah, `smail'! Easy to install,
painless to configure - done. Easy choice for an MUA - I really like the
configurability of `mutt' - and I'm finished! (Prophetic words...)
<P> EXCEPT. Now, I found that I could not log in as a non-root user
anymore. The message I got was:
<PRE>
Cannot execute /bin/bash: Permission denied
</PRE>
<P> What in the heck was this?
<BLOCKQUOTE>
`Was this some occult illusion?<BR>
Some maniacal intrusion?<BR>
These were choices Solomon<BR>
Himself had never faced before...'
</BLOCKQUOTE>
<P> I knew that I hadn't done anything in /etc/password - for that
matter, anything in /etc - but I wasn't 100% sure of what those packages, safe
as they're supposed to be, were doing under my auspices as `root'. So, I
quickly did some double-checks - yes, user `ben' still existed in
/etc/password; ditto for group `ben' in /etc/group; entering the wrong string
as a password provoked the usual `Login incorrect' message instead of the
`Cannot execute'. Hmm.
<P> Another double-check: I created a new user ("joe"), new password and all
("joe")<grin>, and tried to log in as that user. No go, same error.
Something in the login sequence had died, for reasons unknown. (Goodbye,
"joe"...)
<P> At this point, I let out a quiet "eep!" of minor panic, very
quickly switched to another VT, and tried to log in as `root'. WHEW; no
problems there. At least I would still have access to the machine when I next
brought it up... I'd have hated to do an immediate `live' backup and
reinstallation!
<P> Open up /bin. What do the file permissions look like? Uh-huh...
everything is set to 755 (-rwxr-xr-x); in addition, `login', `mount',
`umount', `ping' and `su' are all SETUID (-rwsr-xr-x). So far, so good;
how about /etc permissions? They all look OK too - mostly 644
(-rw-r--r--), with an occasional 600 (-rw-------) here and there, for
files denied to everyone but `root'. All right, let's try something
silly; I overwrote `login' and `bash' with fresh copies, straight out of
their original packages, to make sure that they weren't corrupted. Nope;
still no luck.
<P> Wait, how about /home? If the permissions on that got mis-set and the user
couldn't get in... Rats, it was fine too - 6775 (drwxrwsr-s). Checking the
.bashrc and .bash_profile showed nothing unusual - and their perms were
OK. Just for kicks, I checked all the other subdirectories in '/'; all
except /root were world-readable, which was fine.
<P> There are a couple of files in /var that keep track of who's logged in,
when they logged out, and so on; if these guys get corrupted, *all* sorts
of strange unpredictable stuff happens. So - emergency measure time! - I
typed
<PRE>
cat &gt;/var/log/wtmp
cat &gt;var/run/utmp
</PRE>
which blew their contents away and left them as zero-length files.
<EM>[He actually typed this without the "cat", but I put the "cat" in to
make it clear that the "&gt;" was part of the command line and not the
shell prompt. -Ed.]</EM> I
logged out on all VTs (just so `utmp' and `wtmp' would get some data),
and... <sigh> the usual result.
<P> Permissions on /dev/ttyX and /dev/vcsX (terminals and virtual consoles)?
They all looked OK too; I was starting to lose hope.
<P> Wait; what about a systematic approach? Let's get an idea of exactly
what's happening before running in every direction. A quick look at the
System Administrator's Guide (SAG) to refresh my memory - ah, there's the
login process:
<BLOCKQUOTE>
<HR NOSHADE>
<H3>From the "System Administrator's Guide", by Lars Wirzenius</H3>
<P> First, init makes sure there is a getty program for the terminal
connection (or console). getty listens at the terminal and waits for the
user to notify that he is ready to login in (this usually means that the
user must type something). When it notices a user, getty outputs a welcome
message (stored in /etc/issue), and prompts for the username, and finally
runs the login program. login gets the username as a parameter, and
prompts the user for the password. If these match, login starts the shell
configured for the user; else it just exits and terminates the process
(perhaps after giving the user another chance at entering the username and
password). init notices that the process terminated, and starts a new
getty for the terminal.
<PRE>
' ' ' ' ' ' ' '
------------ ' GIF2ASCII '
| Start | ' conversion by '
------------ ' "fastfingers" '
V ' program '
------------------- ' Copyleft 2000 '
___________| init: fork + exec |_______ ' ' ' ' ' ' ' '
| | "/sbin/getty" | |
| ------------------- |
^ V ^
| ---------------------- |
| | getty: wait for user | |
| ---------------------- |
^ V ^
| ---------------------- |
| | getty: read username,| |
| | exec "/bin/login" | |
| ---------------------- |
^ V ^
| ---------------------- |
| | login: read password | |
| ---------------------- |
^ V ^
| / \ |
| / \ |
------------- / Do \ |
| Login: exit |---<-No- / they \ |
------------- \ match?/ ^
\ / |
\ / |
\ / |
| Yes ^
V |
------------------------ |
| login: exec("/bin/sh") | |
------------------------ ^
V |
---------------------- |
| sh: read and execute | |
| commands | ^
---------------------- |
V |
---------- |
| sh: exit |-----------
----------
</PRE>
Figure 8.1: Logins via terminals: the interaction of init, getty, login,
and the shell.
<P> Note that the only new process is the one created by init (using the
fork system call); getty and login only replace the program running in the
process (using the exec system call).
<HR NOSHADE>
</BLOCKQUOTE>
<P> Following the process, we can see that everything up until the last part
- the 'exec("/bin/sh")', that is - seems OK. It's during or after that
hand-off that things go wild. The problem was now down to system calls,
something I wasn't quite sure how to approach... and yet that piece of
information contained everything I needed to know; I just didn't know how
to apply it. Later on, it would become self-evident.
<P> Over the next ten days or so, every time I logged in I would try
something new; some things totally outlandish and unlikely to work; some,
bright ideas that produced great disappointment when the Evil Message
once again showed its head. Nothing worked. I replaced `getty'; tried a
couple of shells other than /bin/bash; tried "su"ing to `ben'; checked
the logs (they showed `ben' as having successfully logged in (!), which
told me that `login' was fine; the failure occurred when it handed the
process off to `bash' - I knew that!)...
<P> After finding only a few references to this on the Net - mostly in
Japanese, Swedish, and German (I managed to puzzle out the last two - one
of them suggested checking perms on '/' ! Excellent idea... which didn't
pan out in my case), I shot off a panicked resume of the problem to the
The Answer Guy <wave, wave> - Hi! &lt;grin&gt; Unfortunately, he must have been
swamped by all those Windows2000 questions that he just loves to
answer... anyway, I was cast on my own resources.
<P> Ah - `strace'! Remember `strace'; `strace' is your friend... A really
fantastic piece of software that traces the execution of a program and
reports it, step by step. Let's go!
<P> Since you have to be logged in to run a program, I ran
<PRE>
strace -s 10000 -vfo login.ben login ben
</PRE>
<P> from my current VT; this meant "Run strace on `login ben'; print all
lines up to 10000 characters long (I didn't want to miss any messages, no
matter how long they were); make the output verbose; trace any forked
processes; output the result to a file called `login.ben'". Then, as a
baseline, I ran
<PRE>
strace -s 10000 -vfo login.root login root
</PRE>
- and now, I had two files to compare. The `root' one was about twice
as long as `ben' - that made sense, since a successful login goes on to
execute all the stuff in the "~/.bash*" files.
<P> `strace login' makes for very informative reading. If I hadn't already
read the System Administrator's Guide, this would have given me the exact
information - in far more detail. It shows all the libraries that are
read, every file examined by `login', the comparison procedure for
`group' and `password'... the only thing it did NOT show was the reason
for the failure; just the fact itself, at exactly the point in the
procedure where I expected it to be:
<PRE>
(300+ lines elided)
execve("/bin/bash", ["-bash"], ["TERM=linux", "HZ=100", "HOME=/home/ben",
"SHELL=/bin/bash", "PATH=/bin:/usr/bin", "USER=ben", "LOGNAME=ben",
"MAIL=/var/spool/mail/ben", "LANG=C", "HUSHLOGIN=FALSE"]) = -1 EACCES
(Permission denied)
write(2, "Cannot execute /bin/bash: Permission denied\n", 44) = 44
</PRE>
<P> Just great. The last thing poor `login' tried to do, before falling over
on its back with its legs twitching in the air, was to `execve' bash with
the defined variables collected from /etc/password, /etc/login.defs, and
so on - all of those looked OK - and write those 44 hateful characters to
"stderr" (output descriptor 2). Basically, the stuff I'd already figured
out.
<P> I did notice, however, that `login' was opening a number of libraries in
/lib that were needed by the Name Service Switch configuration file
(/etc/nsswitch.conf). What if one of the mentioned libraries was
corrupted? That would be right in line with the `system calls' theory -
since libraries are where the system calls come from! Let's check the lib
that handles local logins for NSS (see `man nsswitch'):
<PRE>
dpkg -S libnss_compat-2.0.7.so
</PRE>
("Tell me, O Mighty Debian Package Manager, whence cometh said program?"),
and the Debian Oracle, in his wisdom, replied -
<PRE>
libc6: /lib/libnss_compat-2.0.7.so
</PRE>
<P> Humm. The very core of the Linux libs. Well... a quick replacement of all
the /lib/libnss* ... and no change. Next idea.
<P> This procedure got me thinking, though. Something was indeed "rotten in
the state of Denmark" - perhaps I needed to check perms on the files in
/libs?
<P> The only problem was, I didn't know what they were supposed to be. You
see, most of the libs are set to "root.root 644" - owner root, group root,
user - read/write, group - read-only, others - read-only. There are a few,
though, that should be set "root.root 755" - as above, but with "execute"
permissions for everyone added... and without looking at a fresh Linux
installation, I had no idea of what was right.
<P> WAIT a minute! As I'd mentioned in a 2-cent tip that I'd sent in to LG, I
like to keep a copy of a Debian "base installation" file set (7 files,
about 15MB) on my DOS partition as a 'rescue' utility - it should have
everything I need!
<HR WIDTH="50%" ALIGN="center"> <!-- ******************************* -->
And so it was. Midnight Commander, via its "Virtual File System", allows
you to explore compressed files as if they were directories; a look
inside "base2_1.tgz#utar/lib" (the VFS syntax used by MC) showed me that
one of the very first libs - ld-2.0.7.so - was supposed to be set to
755. Ten seconds later, I was the owner of a brand-new Virtual Terminal -
as user `ben'.
<P> Yes, I did check the perms on all the other libraries; `ld-2.0.7.so' was
the only one that was affected. The only remaining `unknown' was how the
perms changed in the first place... but I suspect that question will never
be answered.
<HR WIDTH="50%" ALIGN="center"> <!-- ******************************* -->
<P> As usual, the lessons that Linux teaches are hard - but fair. There's
*always* a way to solve a problem; admittedly, often the easiest way is to
reinstall the system, but this does not teach you the "innards" of an OS
the way tracking down a problem will. In my case, reinstallation would
have been relatively easy: I have a couple of spare drives, easily big
enough to hold my "up to the minute" data so that I don't even need to
touch my backups, and a basic Debian install takes me less than 10
minutes. I wasn't interested in that. The thought uppermost in my mind
was: "What would happen if this occurred at a customer's site?" I
<EM>needed</EM>
to know what the right solution was... and through persistence - no, sheer
bloody-mindedness - I succeeded.
<P> I don't suggest that every one of you beat his brains out against some
difficult problem once a week just to "keep in practice" - but I do
suggest that you use a methodical approach, based on knowledge gained
from reading the appropriate HOWTOs and other documentation available
before grabbing that installation CD yet another time. There will be
times when you'd like nothing better than to laugh maniacally as you
watch your system shrink to a pinpoint, dropping away from your lofty
perch on the Empire State Building... and there will be other times when
the satisfaction of having solved a knotty problem of this sort makes you
pound your chest and do Tarzan imitations.
<P> Now, if you all will excuse me, I've got a chimpanzee and an elephant I'm
supposed to meet...
<P> Happy Linuxing to all,<BR>
Ben Okopnik
<!-- *** BEGIN copyright *** -->
<P> <hr> <!-- P -->
<H5 ALIGN=center>
Copyright &copy; 2000, Ben Okopnik<BR>
Published in Issue 52 of <i>Linux Gazette</i>, April 2000</H5>
<!-- *** END copyright *** -->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">Introduction to Shell Scripting--The Basics</font></H1>
<H4>By <a href="mailto:ben-fuzzybear@yahoo.com">Ben Okopnik</a></H4>
</center>
<P> <HR> <P>
<!-- END header -->
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="MCedit/Linux">
<title>Introduction to Shell Scripting - The Basics</title>
</head>
<body>
<h1>
<b><i><font size=-1>``Here's a hint. When you think your code to exec a
shell function is just not working, never, repeat NEVER send it "/etc/reboot"
just to see what happens.''<br>
&nbsp;-- Elliott Evans</font></i></b></h1>
<p><br>INTRO
<p>Shell scripting is a fascinating combination of art and science that
gives you access to the incredible flexibility and power of Linux with
very simple tools. Back in the early days of PCs, I was considered quite
an expert with DOS's "batch files", something I now realize was a weak
and gutless imitation of Unix's shell scripts. I'm not usually much given
to Microsoft-bashing - I believe that they have done some absolutely awesome
stuff in their time - but their BFL ("Batch File Language") was a joke
by comparison. It wasn't even a funny one.
<p>Since shell scripting is an inextricable part of the shell itself, quite
a bit of the material in here will deal with shell quirks, methods, and
specifics. Be patient; it's all a part of the knowledge that is necessary
for writing good scripts.
<br>&nbsp;
<p>PHILOSOPHY OF SCRIPTING
<p>Linux - Unix in general - is not a warm and fuzzy, non-knowledgeable-user
oriented system. Rather than specifying exact motions and operations that you
must perform, it provides you with a myriad of small tools which can be connected
in a literally infinite number of combinations, to achieve any result that
is necessary (I find Perl's motto of "TMTOWTDI" - There's More Than One
Way To Do It - highly apropos for all of Unix). That sort of power and
flexibility, of course, carries a price - increased complexity and a requirement
for higher competence in the user. Just as there is an enormous difference
between operating, say, a bicycle versus a super-sonic jet fighter, so
is there an enormous difference between blindly following the rigid dictates
of a standardized GUI and creating your own program, or shell script, that
performs exactly the functions you need in exactly the way you need them
done.
<p>Shell scripting is programming - but it is programming made easy, with
little, if any, formal structure. It is an interpreted language, with its
own syntax - but it is only the syntax that you use when invoking programs
from your command line; something I refer to as "recyclable knowledge".
This, in fact, is what makes shell scripts so useful: in the process of
writing them, you continually learn more about the specifics of your shell
and the operation of your system - and this is knowledge that truly pays
for itself in the long run as well as the short.
<br>&nbsp;
<p>REQUIREMENTS
<p>Since I have a strong preference for `bash', and it happens to be by
far the most commonly used shell, that's what these scripts are written
for. Even if you use something else, that's still fine: as long as you
have `bash' installed, these scripts will execute correctly. As you will
see, scripts invoke the shell that they need; it's part of what a well-written
script does.
<p>I'm going to assume that you're in your home directory, since we don't
want these files scattered all over the place where you can't find them
later. I'm also going to assume that you know enough to hit the "Enter"
key after each line that you type in, and that, once you have selected
a name for your shell script, you will check that you do not have an executable
with that same name in your path (<font color="#FF0000">Hint: type "which
bkup" to check for an executable called "bkup"</font>). For this specific
reason, you should <b>never</b> name your scripts "test". This is one of
the FAQs of Unix, a.k.a. "why doesn't my shell script/program do anything?"
There's an executable in /bin called "test" that does nothing (nothing
obvious, that is) when invoked...
<p>It goes without saying that you have to know the basics of file operations
- copying, moving, etc. - as well as being familiar with the basic assumptions
of the file system, i.e., "." is the current directory, ".." is the parent
(the one above the current), "~" is your home directory, etc. You didn't
know that? You do now! &lt;chuckle>
<p>Whatever editor you use, whether `vi', `emacs', `mcedit' (the default
editor in <a href="http://www.gnome.org/mc/">Midnight Commander</a> and
one of my favorite tools), or any other text editor is fine; just don't
save this work in some word-processing format.
<p>In order to avoid constant repetition of material, I'm going to number
the lines as we go through and discuss different parts of a script file.
I'll be putting it all together at the end, anyway.
<br>&nbsp;
<p>BUILDING A SCRIPT
<p>Let's go over the very basics of creating a script. Those of you who
find this obvious and simplistic are invited to follow along anyway; as
we progress, the material will become more complex - and a "refresher"
never hurts. As it is, the projected audience for this article is a Linux
newbie, someone who has never created a shell script before - but wishes
to become a Script Guru in 834,657 easy steps. :)
<br>&nbsp;
<p>In its simplest form, a shell script is nothing more than a shortcut
- a list of commands that you would normally type in, one after another,
to be executed at your shell prompt - plus a bit of "magic" to notify the
shell that it is indeed a script.
<p>The "magic" consists of two simple things: a notation at the beginning
of the script that specifies the program that is used to execute it, and
a change in the permissions of the file containing the script in order
to make it executable.
<p>As a practical example, let's create a script that will "back up" a
specified file to a selected directory; we'll go through the
steps and the reasoning that makes it all happen.
<p>First, let's create the file and set the permissions. Type
<pre>>bkup
chmod +x bkup</pre>
The first line creates a file called "bkup" in your current directory.
The second line makes it executable; note that the "+x" option of `chmod'
makes this script executable by everyone - if you wish to restrict that,
you'll need to run `chmod' with "u+x" or "ug+x" (see the "chmod" man page).
In most cases, though, just plain "+x" is fine.
<p>Next, we'll need to actually create the script. Start your editor and
open up the file you've just made:
<pre>mcedit bkup</pre>
The first line in all of the script files we create will be this one (again,
remember to ignore the number and the colon at the start of the line):
<pre>
<hr width="75%" align="left">1: #!/bin/bash
<hr width="75%" align="left"></pre>
I've heard this referred to as the 'hash-bang hack'. The interesting thing
about it is that the pound character is actually a comment
<br>marker - everything following a '#' on a line is supposed to be ignored
by the shell - but the '#!' construct is unique in that respect, and is
interpreted as a prefix to the name of the executable that will actually
process the lines that follow.
<p>This is a subtle but important point, by the way: when a script runs,
it actually starts an additional bash process that runs under the
<br>current one; that process executes the script and exits, dropping you
back in the original shell that spawned it. This is why a script that,
<br>for example, changes directories as it executes will not leave you
in that new directory when it exits: the original shell has not been told
to change directories, and you're right where you were when you started
- even though the change is effective while the script runs.
<p>To continue with our script:
<pre>
<hr width="75%" align="left">2:&nbsp; # "bkup" - copies specified files to the user's ~/Backup
3:&nbsp; # directory after checking for name conflicts.
<hr width="75%" align="left"></pre>
As I've mentioned, the `#' character is a comment marker. It's a good
idea, since you'll probably create a number of shell scripts in the
<br>future, to insert some comments at the beginning of each one to indicate
what it does - or at some point, you'll be scratching your
<br>head and trying to remember why you wrote it. In later columns, we'll
explore ways to make that reminder a bit more automatic... but let's go
on.
<pre>
<hr width="75%" align="left">4: cp -i $1 ~/Backup
<hr width="75%" align="left"></pre>
<p><br>The "-i" syntax of the `cp' command makes it interactive; that is,
if we run "bkup file.txt" and a file called "file.txt" already exists in
<br>the ~/Backup directory, `cp' will ask you if you want to overwrite
it - and will abort the operation if you hit anything but the 'y' key.
<p>The "$1" is a "positional parameter" - it denotes the first thing that
you type after the script name. In fact, there's an entire list of
<br>these variables:
<pre><b><font size=-1>$0 - The name of the script being executed - in this case, "bkup".
$1 - The first parameter - in this case, "file.txt"; any parameter may
&nbsp;&nbsp;&nbsp;&nbsp; be referred to by $&lt;number> in this manner.
#@ - The entire list of parameters - "$1 $2 $3..."
$# - The number of parameters.</font></b></pre>
There are several other ways to address and manipulate positional parameters
(see the `bash' man page) - but these will do us for now.
<br>&nbsp;
<p>MAKING IT SMARTER
<p>So far, our script doesn't do very much; hardly worth bothering, right?
All right; let's make it a bit more useful. What if you wanted
<br>to both keep the file in the ~/Backup directory <u>and</u> save the
new one - perhaps by adding an extension to show the "version"? Let's try
<br>that; we'll just add a line, and modify the last line as follows:
<pre>
<hr width="75%" align="left">4: a=$(date +%T-%d_%m_%Y)
5: cp -i $1 ~/Backup/$1.$a
<hr width="75%" align="left"></pre>
Here, we are beginning to see a little of the real power of shell scripts:
the ability to use the results of other Linux tools, called "command substitution".
The effect of the $(command) construct is to execute the command inside
the parentheses and replace the entire "$(command)" string with the result.
In this case, we have asked `date' to print the current time and date,
down to the seconds, and pass the result to a variable called 'a'; then
we appended that variable to the filename to be saved in ~/Backup. Note
that when we assign a value to a variable, we use its name ( a=xxx ), but
when we want to use that value, we must prepend a '$' to that name (.../$1.$a).
The names of variables may be almost anything, with these exceptions:
<ul>
<li>
No reserved words, i.e.</li>
<ul>
<li>
case do done elif else esac fi for function if in select then until while
time</li>
<br>&nbsp;</ul>
<li>
May not contain unquoted metacharacters or reserved characters, i.e.</li>
<ul>
<li>
! { } | &amp; * ; ( ) &lt; > space tab</li>
</ul>
</ul>
<ul>
<li>
Should not unintentionally be a standard shell variable, such as</li>
<ul>
<li>
PATH PS1 PWD RANDOM SECONDS (see "man bash" for many others)</li>
</ul>
</ul>
In my experience, if you confine your variable names to lower-case letters,
dashes, and underscores, there won't be any problems.
<br>&nbsp;
<p>The effect of the last two lines in the script is to create a unique
filename - something like <b><font face="Courier New,Courier"><font size=-1>file.txt.01:00:00-01_01_2000</font></font></b>
- that should not conflict with anything else in ~/Backup. Note that I've
left in the "-i" switch as a "sanity" check: if, for some truly strange
reason, two file names do conflict, "cp" will give you a last-ditch chance
to abort. Otherwise, it won't make any difference - like dead yeast in
beer, it causes no harm even if it does nothing useful.
<p>By the way, the older version of the $(command) construct - the `command`
(note that "back-ticks" are being used rather than single quotes) - is
deprecated, for a good reason. $()s are easily nested - <b><font face="Courier New,Courier"><font size=-1>$(cat
$($2$(basename file1 txt)))</font></font></b>, for example; something that
cannot be done with back-ticks, as the second back-tick would "close" the
first one, and the command would fail, or do something unexpected. You
can still use them, though - in single, non-nested substitutions (the most
common kind), or as the innermost or outermost pair of the nested set -
but if you use the new method exclusively, you'll always avoid that error.
<br>&nbsp;
<p>So, let's see what we have so far, with whitespace added for readability
and the line numbers removed (hey, an actual script!):
<pre>
<hr width="75%" align="left">#!/bin/bash</pre>
<pre># "bkup" - copies specified files to the user's ~/Backup
# directory after checking for name conflicts.</pre>
<pre>a=$(date +%T-%d_%m_%Y)
cp -i $1 ~/Backup/$1.$a
<hr width="75%" align="left"></pre>
Yes, it's only a two-line script - but one that's starting to become useful.
We'll continue playing with it in the next issue.
<br>&nbsp;
<p>Oh, one last thing; another "Unix FAQ". Should you try to execute your
newly-created script by typing
<pre>bkup</pre>
at the prompt, you'll get this familiar reproof:
<pre>bash: bkup: command not found</pre>
&nbsp;-- "HEY! Didn't we just sweat, and labor, and work hard... What happened?"
<p>Unlike DOS, the execution of commands and scripts in the current directory
is disabled by default - as a security feature. Imagine what would happen
if someone created a script called "ls", containing "rm -rf *" ("erase
everything") in your home directory and you typed "ls"! If the current
directory (".") came before "/bin" in your PATH variable, you'd be in a
sorry state indeed...
<p>Due to this, and a number of similar "exploits" that can be pulled off,
you have to specify the path to all executables that you wish to run there
- a wise restriction. You can also move your script into a directory that
is in your path, once you're done tinkering with it; "/usr/local/bin" is
a good candidate for this (<font color="#FF0000">Hint: type "echo $PATH"
to see which directories are listed</font>).
<p>Meanwhile, in order to execute it, simply type
<p><font face="Courier New,Courier">./bkup file.txt</font>
<p>- the "./" just says that the file to be run is in the current directory.
Use "~/", instead, if you're calling it from anywhere else;
<br>the point here is that you have to give a complete path to the executable,
since it is not in any of the directories listed in your
<br>PATH variable.
<p>This assumes, of course, that you have a file in your current directory
called "file.txt", and that you have created a subdirectory
<br>called "Backup" in your home directory. Otherwise, you'll get an error.
<br>&nbsp;
<p>REVIEW
<p>In this article, we've looked at some of the basics involved in creating
a shell script, as well as some specifics:
<br>&nbsp;
<li>
File creation</li>
<li>
Permissions</li>
<li>
Spawned subshells</li>
<li>
Execution in a non-PATHed directory</li>
<br>&nbsp;
<li>
The `hash-bang hack'</li>
<li>
Comments</li>
<li>
Positional parameters</li>
<li>
Command substitution</li>
<li>
Variables</li>
<br>&nbsp;
<p>WRAP-UP
<p>Well, that's a good bit of information for a start. Play with it, experiment;
shell scripting is a large part of the fun and power of
<br>Linux. Next month, we'll talk about error checking - the things your
script should do if the person using it makes an error in syntax, for example
- as well as getting into loops and conditional execution, and maybe dealing
with a few of the "power tools" that are commonly used in shell scripts.
<p>Please feel free to send me suggestions for any corrections or improvements,
as well as your own favorite shell-scripting tips or any really neat scripting
tricks you've discovered; just like anyone whose ego hasn't swamped their
good sense, I consider myself a student, always ready to learn something
new. If I use any of your material, you will be credited.
<p>Until then -
<p>Happy Linuxing!
<br>&nbsp;
<p>
<hr width="75%" align="left">
<br>REFERENCES
<p>"man" pages for 'bash', 'cp', 'chmod'
<br>&nbsp;
<p><b><i><font size=-1>``Not me, guy. I read the Bash man page each day
like a Jehovah's Witness reads the Bible. No wait, the Bash man page IS
the bible.</font></i></b>
<br><b><i><font size=-1>Excuse me...''</font></i></b>
<br><b><i><font size=-1>-- More on confusing aliases, taken from comp.os.linux.misc</font></i></b>
<!-- *** BEGIN copyright *** -->
<P> <hr> <!-- P -->
<H5 ALIGN=center>
Copyright &copy; 2000, Ben Okopnik<BR>
Published in Issue 52 of <i>Linux Gazette</i>, April 2000</H5>
<!-- *** END copyright *** -->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">Linux Gazette art</font></H1>
<H4>By <a href="mailto:mso@ssc.com">Mike Orr</a></H4>
</center>
<P> <HR> <P>
<!-- END header -->
In the last issue, your humble Editor asked if anybody wanted to send
in any artwork to jazz up the Gazette. I received two entries.
<P>
<TABLE ALIGN="center" CELLSPACING="15" CELLPADDING="15" BORDER="2"><TR>
<TD ALIGN="center" VALIGN="bottom">
<IMG ALT="[Animated GIF of Tux bouncing on a globe of the world]"
SRC="gx/art/bounce.gif" WIDTH="114" HEIGHT="200">
<P><STRONG>Linux Total World Domination 2005</STRONG>
<P> John Hinsley &lt;<A HREF="mailto:jhinsley@telinco.co.uk">jhinsley@telinco.co.uk</A>&gt;
</TD><TD ALIGN="center" VALIGN="bottom">
<IMG ALT="[Penguin GIF]" SRC="gx/art/indian_penguin.gif">
<P><STRONG>Penguin created using xpaint</STRONG>
<P> Rick Smith &lt;<A HREF="mailto:rsmith13@tampabay.rr.com">rsmith13@tampabay.rr.com</A>&gt;
</TD>
</TR></TABLE>
<!-- *** BEGIN copyright *** -->
<P> <hr> <!-- P -->
<H5 ALIGN=center>
Copyright &copy; 2000, Mike Orr<BR>
Published in Issue 52 of <i>Linux Gazette</i>, April 2000</H5>
<!-- *** END copyright *** -->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">Exploring parsing and virtual machines with Python</font></H1>
<H4>By <a href="mailto:iclabs@vsnl.com">Pramode C E</a></H4>
</center>
<P> <HR> <P>
<!-- END header -->
The design of compilers/interpreters is a challenging field - one
which offers a lot of scope for theoretical exploration as well
as hands on coding. Being a Python fan, I tried to implement some
of the ideas which I am learning about compilers/interpreters
in this beautiful language. As I am neither a Python Guru nor
a compiler expert, the implementation may be imperfect. But it
was certainly lots of fun!
<H2> A simple language </H2>
Don't be disappointed when I tell you that we are not going to
discuss the implementation of an Object Oriented, functional
language with automatic garbage collection and the works! The
language I am talking about here is the one which we learn as
kids, the language of arithmetic expressions. For example,
<pre>
1+2*3-4
1/2+3-4/5
.....
</pre>
We will start with a program which will read an expression of
this form and evaluate it directly. We will then modify this program
to generate a data structure called a parse tree which can then
be evaluated by recursive algorithms. The next step is to generate
instructions for a virtual machine using this parse tree. The last
step is to store these virtual machine instructions on disk
and run it with an interpreter when required.
<H2> Context-free grammars </H2>
<p>
Programming languages are often described using a compact and
powerful notation called a Context-free Grammar. The grammar
describes a set of substitutions. Here is a grammar for arithmetic
expressions:
<pre>
E ::= T { ADDOP T }
T ::= F { MULOP F }
F ::= 0 | 1 | 2 | 3 | .....
ADDOP ::= + | -
MULOP ::= * | /
</pre>
Assume that E stands for expression, T stands for term and F
stands for factor. The curly brace denotes 'zero or more repetitions'.
Reading the first production, we would say that "An expression is
a term, followed by zero or more repetitions of the combination of
an adding operator and a term." The third production says that a
factor is either 0 or 1 or 2 or 3 or 4 and so on, ie, the whole
set of positive integers. It takes some time to get used to
esoteric definitions like this, but if we have a basic understanding
of recursive structures, it is not very difficult.
<H2> A simple expression evaluator </H2>
<p>
Here is the source for a simple expression evaluator in Python.
(<A HREF="misc/pramode/listing1.py.txt">text version</A>)
<pre>
#--------------------A simple expression evaluator---------------#
import re, string
Inputbuf = []
# A token is either a number or an operator symbol.
# The main program reads a line from the input and
# stores it in an array called Inputbuf. The function
# gettoken() returns individual tokens from this array.
def gettoken():
global Inputbuf
p = re.search('^\W*[\+\-\*/]|^\W*[0-9]+', Inputbuf)
token = p.string[p.regs[0][0]:p.regs[0][1]]
token = string.strip(token)
if token not in ['+', '-', '*', '/']:
token = int(token)
Inputbuf = Inputbuf[p.regs[0][1]:]
return token
# lookahead() peeks into the input stream and tells you what
# the next input token is
def lookahead():
global Inputbuf
try:
p = re.search('^\W*[\+\-\*/]|^\W*[0-9]+', Inputbuf)
token = p.string[p.regs[0][0]:p.regs[0][1]]
token = string.strip(token)
if token not in ['+', '-', '*', '/']:
token = int(token)
return token
except:
return None
def factor():
return gettoken()
def term():
e1 = factor()
tmp = lookahead()
while (tmp in ['*', '/']):
gettoken()
if (tmp == '*'):
e1 = e1 * factor()
else:
e1 = e1 / factor()
tmp = lookahead()
return e1
def expression():
e1 = term()
tmp = lookahead()
while (tmp in ['+', '-']):
gettoken()
if (tmp == '+'):
e1 = e1 + term()
else:
e1 = e1 - term()
tmp = lookahead()
return e1
def main():
global Inputbuf
Inputbuf = raw_input()
print expression()
if __name__=='__main__':
main()
</pre>
It would be good to trace the execution of the above code for some
simple expressions.
<H2> Producing a parse tree </H2>
<p>
The above program simply evaluates the given infix arithmetic
expression. We are now going to modify it to produce a parse
tree instead. A parse tree for the expression 1+2*3 would
look like this:
<pre>
+
/ \
/ \
1 *
/ \
/ \
2 3
</pre>
Each node of the tree consists of the following fields:
<ol>
<li> 'op' or 'number' depending on whether the node is an
internal node or a leaf node
<li> A link to the 'left child' called 'left'
<li> A link to the 'right child' called 'right'
</ol>
The tree is built from the bottom up. The function 'factor'
simply creates a new tree node with a number in it, initializes
the left and right pointers to NULL, and returns the node. The
function 'expression()' creates a new node with an operator
'+' or '-' as the value of the 'op' field and assigns the left
and right pointers to values obtained by calling 'term()'.
Function 'term()' works in a similar way.
<P> (<A HREF="misc/pramode/listing2.py.txt">text version</A>)
<pre>
#--------------------Produce a parse tree---------------------#
# gettoken() and lookahead() are same as in the first listing
NULL = 0
import re, string
Inputbuf = []
class Tree:
pass
def factor():
newnode = Tree()
newnode.number = gettoken()
newnode.left = newnode.right = 0
return newnode
def term():
left = factor()
tmp = lookahead()
while (tmp in ['*', '/']):
gettoken()
right = factor()
newnode = Tree()
newnode.op = tmp
newnode.left = left
newnode.right = right
left = newnode
tmp = lookahead()
return left
def expression():
left = term()
tmp = lookahead()
while (tmp in ['+', '-']):
gettoken()
right = term()
newnode = Tree()
newnode.op = tmp
newnode.left = left
newnode.right = right
left = newnode
tmp = lookahead()
return left
def treeprint(ptree):
if (ptree):
try:
print ptree.op
except:
print ptree.number
treeprint(ptree.left)
treeprint(ptree.right)
def main():
global Inputbuf
Inputbuf = raw_input()
ptree = expression()
return ptree
if __name__=='__main__':
ptree = main()
treeprint(ptree)
</pre>
<H2> Building a stack machine </H2>
<p>
The parse tree which we have created can be easily evaluated by
writing a recursive function. But we will adopt a different
method. We will generate code for evaluating expressions in the
instruction set of a simple hypothetical machine called a
'stack machine'. The instructions which this machine has are very
simple - push a number on to the stack, add two numbers, multiply
two numbers etc. Thus, evaluation of the expression 1+2*3 yields the
following code:
<pre>
push 1
push 2
push 3
mul
add
</pre>
These instructions are stored in an array. Push, mul, add etc are
functions. The instructions may be directly executed by walking
through the array and executing the functions held by each array
element or they may stored in a disk file (an easy way is to
use the Python pickle module, though it is a waste of space).
Another program may then read this
code into an array and execute it. The code which I have written
works like this: If you run the program without any filename
argument, it reads an expression from the keyboard, generates
code for the virtual machine in an array and executes it by
walking through the array. The code is also stored in a file
called 'code.out'. Now if you run the program with a file name
argument code.out, it loads the instructions from the file
and executes it, without reading from the keyboard.
<P> (<A HREF="misc/pramode/listing3.py.txt">text version</A>)
<pre>
import re, string, sys, pickle
# Functions not included herein should be copied from the previous listings.
NULL = 0
Inputbuf = []
NCODE = 100
NSTACK = 100
Code = []
Stack = [0] * NSTACK
Pc = 0
Stackp = 0
class Tree:
pass
class CodeItem:
pass
def initcode():
global Code
for i in range(0, NCODE):
t = CodeItem()
Code.append(t)
def pushop():
global Stack, Stackp, Code, Pc
Stack[Stackp] = Code[Pc].number
Stackp = Stackp + 1
Pc = Pc + 1
def addop():
global Stack, Stackp, Code, Pc
Stackp = Stackp - 1
right = Stack[Stackp]
Stackp = Stackp - 1
left = Stack[Stackp]
Stack[Stackp] = left + right
Stackp = Stackp + 1
# define subop, mulop and divop here.
def generate(codep, ptree):
try:
# if the field 'number' is not present, the
# following line generates an exception.
n = ptree.number
Code[codep].op = pushop
codep = codep + 1
Code[codep].number = n
codep = codep + 1
return codep
except:
if (ptree.op == '+'):
codep = generate(codep, ptree.left)
codep = generate(codep, ptree.right)
Code[codep].op = addop
codep = codep + 1
return codep
# elif (ptree.op == '-'): We will write the code
# generation actions for '-', '*', '/' here.
def eval(ptree): # Generate the instructions, then execute them
global Pc, Stackp, Code, Stack
Pc = generate(0, ptree)
Code[Pc].op = NULL
Stackp = 0
Pc = 0
while Code[Pc].op != NULL:
tmp = Pc
Pc = Pc + 1
Code[tmp].op()
return Stack[0]
def eval2(): # Directly execute the loaded code
global Pc, Stackp, Code, Stack
Stackp = 0
Pc = 0
while Code[Pc].op != NULL:
tmp = Pc
Pc = Pc + 1
Code[tmp].op()
return Stack[0]
def main():
global Inputbuf, Code
try:
f = open(sys.argv[1])
Code = pickle.load(f)
f.close()
result = eval2()
print 'result is:', result
return result
except:
print 'Not opening code file, reading from k/b'
initcode()
Inputbuf = raw_input()
ptree = expression()
result = eval(ptree)
f = open('code.out', 'w')
pickle.dump(Code, f)
print 'Code dumped in a file called dat'
print 'result is:', result
return result
if __name__=='__main__':
result = main()
</pre>
'generate()' and 'eval()' are the critical functions. 'generate()'
walks through the expression tree creating the virtual machine code
and storing it in an array 'Code'. 'eval()' walks through the array
'Code' executing the instructions, using an array 'Stack' for
holding the partial results.
<H2> Conclusion </H2>
<p>
It is possible to extend the above program to handle variables
and assignment statements, control flow constructs like gotos,
if statements etc. Soon, you would be building a simple Basic-like
language.
<p>
Coming from a C background, Python's lack of certain C constructs
like the ++ operator is a minor irritation. The lack of compile
time type declarations also seems to have some detrimental effects
upon code readability. Also, you will pay dearly for any typo.
If you have a variable 'f' of type 'struct foo' and 'foo' does not
have a field called 'next', an assignment to 'f.next' will generate a
compile time error in C whereas the Python interpreter would gladly
allow the assignment to go through.
<p>
<H2> References </H2>
The standard book on compiler design is 'Principles of Compiler Design' by
Aho A.V and Ullman J.D. The inspiration for this article came from 'The Practice of
Programming', another excellent book by Brian Kernighan and Rob Pike.
The 'generate' and 'eval' functions are Python renderings of code
from this book. 'A Second course in Computer Science with Pascal' by Daniel D. McCracken
presents several algorithms, including an expression evaluator, in a very engaging style.
<!-- *** BEGIN copyright *** -->
<P> <hr> <!-- P -->
<H5 ALIGN=center>
Copyright &copy; 2000, Pramode C E<BR>
Published in Issue 52 of <i>Linux Gazette</i>, April 2000</H5>
<!-- *** END copyright *** -->
<center><H2>
<A HREF="http://www.linuxgazette.com/">
<IMG SRC="../gx/newlogo.jpg" width=600 height=256 border=0
ALT="Linux Gazette... making Linux just a little more fun!"></a>
</H2>
<H4>Published by <A HREF="http://www.linuxjournal.com/"><I>Linux Journal</I></A></H4>
</center>
<P> <hr> <P>
<H1><font color="maroon">The Back Page</font></H1>
<ul>
<li><a HREF="#authors">About This Month's Authors</a>
<li><a HREF="#notlinux">Not Linux</a>
</ul>
<a name="authors"></a>
<P> <HR> <P>
<!--======================================================================-->
<center><H3><font color="maroon">About This Month's Authors</font></H3></center>
<P> <HR> <P>
<!--======================================================================-->
<!-- BEGIN bio -->
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Mark Bolzern</H4>
Mark is President and CEO of
<A HREF="http://www.linuxmall.com">LinuxMall.com</A>, a director at Linux
International, on the advisory councils of the Linux Professional Institute and
the Linux Business Expo. He has a long history of involvement with the Open
Source community, and is considered one of the "Original Linux People." He is
also one of the organizers of the Linux Business Expo and other Linux community
activities. He appears frequently as an op/ed guest of industry publications
and is a frequent public speaker on the subject of open systems and Linux.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Shane Collinge</H4>
Part computer programmer, part cartoonist, part Mars Bar. At night, he runs
around in a pair of colorful tights fighting criminals. During the day... well,
he just runs around. He eats when he's hungry and sleeps when he's sleepy.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Fernando Correa and Luis Strano</H4>
Fernando is a computer analyst just about to finish his
graduation at Federal University of Rio de Janeiro. Now, he has built
with his staff the best
<A HREF="http://www.olinux.com.br">Linux Portal</A> in Brazil and have further
plans to improve services and content for their Internet users.
<P> Luis is a 17-year-old student in Sao Paulo and a volunteer in
this section at OLinux.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Sean Lamb</H4>
I'm currently working on completing my BS degree in Computer Science at Lakeland
College (begun earlier at the University of California, Riverside). I've been
involved in computer support for the past 6 years, via phone, fax, and email,
and I have created documentation for use by end users (some articles in the
Microsoft Knowledge Base) and other support staff (published in-house as either
individual documents or on the support intranet), and I contributed some
chapters to "Special Edition Using KDE" from Que publishing (now in print). I
have done some application development on MS-DOS platforms and have begun
developing a pair of applications for my Linux box. I am currently employed as
a software developer working in C++ with Informix on a mix of Linux and AIX
servers. When I'm not playing with or writing about Linux, I can usually be
found working on my model railroad.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Ben Okopnik</H4>
A cyberjack-of-all-trades, Ben wanders the world in his 38' sailboat, building
networks and hacking on hardware and software whenever he runs out of cruising
money. He's been playing and working with computers since the Elder Days
(anybody remember the Elf II?), and isn't about to stop any time soon.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Ben Okopnik</H4>
A cyberjack-of-all-trades, Ben wanders the world in his 38' sailboat, building
networks and hacking on hardware and software whenever he runs out of cruising
money. He's been playing and working with computers since the Elder Days
(anybody remember the Elf II?), and isn't about to stop any time soon.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Mike Orr</H4>
Mike is the Editor of the <I>Linux Gazette</I>. You can read what he has to
say in the Back Page column in this issue. He has been a Linux enthusiast
since 1991 and a Debian user since 1995. He is SSC's web technical
coordinator, which means he gets to write a lot of Python scripts.
Non-computer interests include ska/oi! music and the international language
Esperanto.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Pramode C.E and Gopakumar C.E</H4>
Pramode works as a teacher and programmer while
Gopakumar is an engineering student who likes to play with Linux
and electronic circuits.
<!-- END bio -->
<a name="notlinux"></a>
<P> <hr> <P>
<!--====================================================================-->
<center><H3><font color="maroon">Not Linux</font></H3></center>
<P> <HR> <P>
<!--======================================================================-->
<P>
<!-- *** BEGIN Not Linux *** --->
<P> Next month <EM>Linux Gazette</EM> will have a new Editor: Jason Kroll.
Jason is the Technical Editor for <EM>Linux Journal</EM>, so you may know
him from his product reviews and Stupid Programming Tricks column. He is
a strong supporter/activist for free software, and I predict he is going
to have a lot of fun running the <EM>Gazette</EM>. Especially considering
the enthusiasm of its readers and contributors, as I have always commented.
<P> I will continue to work on technical aspects of SSC's web sites, which
means writing more web applications in Python, such as the <EM>LG</EM>
Discussion forums unveiled last month. (What do you guys think of them, by
the way?)
<P> Next month, Jason and I will be working together to produce the May issue.
The following month, he'll be on his own, because I'll be on VACATION in
England and Scotland, and not turning on a computer at all if I can help it!
<HR NOSHADE WIDTH="50%" ALIGN="center"> <!-- **************************** -->
<P> The following quote was sent to me by a coworker.
<BLOCKQUOTE>
The classically minded among us may have noted a new TV
ad for Microsoft's Internet Explorer e-mail program which uses the
musical theme of the "Confutatis Maledictis" from Mozart's Requiem.
<P> "Where do you want to go today?" is the cheery line on the screen.
Meanwhile, the chorus sings "Confutatis maledictis, flammis acribus
addictis."
<P> This translates to "The damned and accursed are convicted to the
flames of hell."
<P> Good to know that Microsoft has done its research.
</BLOCKQUOTE>
<HR NOSHADE WIDTH="50%" ALIGN="center"> <!-- ************************** -->
<P> Thanks for sending in your articles and 2-cent tips.
Remember: don't just use Linux this month, have fun with it!
<P> Michael Orr<br>
Editor, <A HREF="http://www.linuxgazette.com/"><i>Linux Gazette</i></A>, <A
HREF="mailto:gazette@ssc.com">gazette@ssc.com</a>
<BR CLEAR="all">
<!-- *** END Not Linux *** --->
<!-- *** BEGIN copyright *** -->
<P> <hr> <P>
<H5 ALIGN=center>
This page written and maintained by the Editor of the <I>Linux Gazette</I>.<BR>
Copyright &copy; 2000, <A HREF="mailto:gazette@ssc.com">gazette@ssc.com</A><BR>
Published in Issue 52 of <i>Linux Gazette</i>, April 2000</H5>
<!-- *** END copyright *** -->
</BODY></HTML>