6801 lines
250 KiB
HTML
6801 lines
250 KiB
HTML
<!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
|
||
Published by <I>Linux Journal</I></H2>
|
||
|
||
<A HREF=../index.html>Front Page</A> |
|
||
<A HREF=../index.html>Back Issues</A> |
|
||
<A HREF=../faq/index.html>FAQ</A> |
|
||
<A HREF=../mirrors.html>Mirrors</A> |
|
||
<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 & 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ê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 © 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 <<A HREF="mailto:d0ct0r_x@hven.com.ve">d0ct0r_x@hven.com.ve</A>>
|
||
<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 <<A HREF="mailto:j_e_coleman@yahoo.com">j_e_coleman@yahoo.com</A>>
|
||
<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 <<A HREF="mailto:alpha_bp@hotmail.com">alpha_bp@hotmail.com</A>>
|
||
<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 Ø. Skjebnestad <<A HREF="mailto:autowern@c2i.net">autowern@c2i.net</A>>
|
||
<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 <<A HREF="mailto:dwitwer@innercite.com">dwitwer@innercite.com</A>>
|
||
<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 <<A HREF="mailto:Anthony.Youngman@ECA-International.com">Anthony.Youngman@ECA-International.com</A>>
|
||
<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 <<A HREF="mailto:tjr@ida.net">tjr@ida.net</A>>
|
||
<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 > 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 <<A HREF="mailto:Franken@requestfoods.com">Franken@requestfoods.com</A>>
|
||
<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 <<A HREF="mailto:evagre@jazzcyber.com">evagre@jazzcyber.com</A>>
|
||
<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 <<A HREF="mailto:arasad@undergrad.math.uwaterloo.ca">arasad@undergrad.math.uwaterloo.ca</A>>
|
||
<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 <<A HREF="mailto:orbit@nettlink.net.pk">orbit@nettlink.net.pk</A>>
|
||
<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 <<A HREF="mailto:lstefan@europeenne-assurances.com">lstefan@europeenne-assurances.com</A>>
|
||
<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 <<A HREF="mailto:fuhrer6mill@yahoo.com">
|
||
fuhrer6mill@yahoo.com</A>>
|
||
<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 <<A HREF="mailto:vanoosterhout@email.com">vanoosterhout@email.com</A>>
|
||
<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 <<A HREF="mailto:thesunray@hotmail.com">thesunray@hotmail.com</A>>
|
||
<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 <<A HREF="mailto:CAS@FutureRealms.com">CAS@FutureRealms.com</A>>
|
||
<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 <<A HREF="mailto:tony@exocomp.free-online.co.uk">tony@exocomp.free-online.co.tony@exocomp.free-online.co.uuk</A>>
|
||
<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 <<A HREF="mailto:redial@tsinet.ru">redial@tsinet.ru</A>>
|
||
<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 > /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 -> [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) -> [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) -> [196.34.38.2].53 ds=4 nsid`421 id55 3ms
|
||
reforw(addr=0 n=0) -> [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" > /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 > /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 > sasha.asup > 195.34.38.1: icmp: echo request
|
||
12:39:23.644703 ppp0 < 195.34.38.1 > sasha.asup: icmp: echo reply
|
||
..........
|
||
12:39:27.434735 ppp0 > sasha.asup > 195.34.38.1: icmp: echo request
|
||
12:39:27.574701 ppp0 < 195.34.38.1 > sasha.asup: icmp: echo reply
|
||
12:39:28.014857 lo > sasha.asup.1052 > sasha.asup.domain: 30612+ PTR?
|
||
10.0.41.198.in-addr.arpa. (42)
|
||
12:39:28.014857 lo < sasha.asup.1052 > sasha.asup.domain: 30612+ PTR?
|
||
10.0.41.198.in-addr.arpa. (42)
|
||
12:39:28.015356 ppp0 > sasha.asup.domain > 195.34.38.1.domain: 37592+ PTR?
|
||
10.0.41.198.in-addr.arpa. (42)
|
||
............
|
||
12:39:29.434740 ppp0 > sasha.asup > 195.34.38.1: icmp: echo request
|
||
12:39:29.564708 ppp0 < 195.34.38.1 > sasha.asup: icmp: echo reply
|
||
|
||
|
||
13:26:31.045625 lo > sasha.asup.1075 > sasha.asup.domain: 31874+ PTR?
|
||
90.10.8.128.in-addr.arpa. (42)
|
||
13:26:31.045625 lo < sasha.asup.1075 > sasha.asup.domain: 31874+ PTR?
|
||
90.10.8.128.in-addr.arpa. (42)
|
||
13:26:31.046140 if21 > sasha.asup.1071 > 198.41.0.4.domain: 16489+ PTR?
|
||
90.10.8.128.in-addr.arpa. (42)
|
||
13:26:31.464747 if21 > sasha.asup > 195.34.38.1: icmp: echo request
|
||
13:26:31.604706 if21 < 195.34.38.1 > 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 <<A HREF="mailto:ivanusra@cs.ro">ivanusra@cs.ro</A>>
|
||
<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 <<A HREF="mailto:dimebag2go@yahoo.com">dimebag2go@yahoo.com</A>>
|
||
<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 <<A HREF="mailto:lulu@erols.com">lulu@erols.com</A>>
|
||
<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 <<A HREF="mailto:tarozax@earthlink.net">tarozax@earthlink.net</A>>
|
||
<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 <<A HREF="mailto:serakar@vero.gr">serakar@vero.gr</A>>
|
||
<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 <<A HREF="mailto:ndeep_b@yahoo.com">ndeep_b@yahoo.com</A>>
|
||
<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 <<A HREF="mailto:luis.neves@netc.pt">luis.neves@netc.pt</A>>
|
||
<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 <<A HREF="mailto:hasanjamal@hotmail.com">hasanjamal@hotmail.com</A>>
|
||
<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 & 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 <<A HREF="mailto:tmorizot@adc.is.irs.gov">tmorizot@adc.is.irs.gov</A>>
|
||
<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 <<A HREF="mailto:tmorizot@adc.is.irs.gov">tmorizot@adc.is.irs.gov</A>> 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 <<A HREF="mailto:gazette@ssc.com">gazette@ssc.com</A>>
|
||
<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 <<A HREF="mailto:sysadmin@ssc.com">sysadmin@ssc.com</A>>
|
||
<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 <<A HREF="mailto:mattyt@oz.net">mattyt@oz.net</A>>
|
||
<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 <<A HREF="mailto:jimhill@meldrick.swcp.com">jimhill@meldrick.swcp.com</A>>
|
||
<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: <<A HREF="mailto:fuzzybear@pocketmail.com">fuzzybear@pocketmail.com</A>>
|
||
<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 <<A HREF="mailto:Alex.Vrenios@motorola.com">Alex.Vrenios@motorola.com</A>>
|
||
<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 <<A HREF="mailto:mdsimont@snet.net">mdsimont@snet.net</A>>
|
||
<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 <<A HREF="mailto:mjhammel@graphics-muse.org">mjhammel@graphics-muse.org</A>>
|
||
<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: <<A HREF="mailto:PoiPuPy@aol.com">PoiPuPy@aol.com</A>>
|
||
<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 <<A HREF="mailto:morgan.karlsson@nordiskcarbonblack.se">morgan.karlsson@nordiskcarbonblack.se</A>>
|
||
<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 © 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&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 & 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ü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
|
||
&
|
||
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 & 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 © 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¢ 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 <<A HREF="mailto:bryanh@giraffe-data.com">bryanh@giraffe-data.com></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&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 <<A HREF="mailto:hzo@goldfish.cube.net">hzo@goldfish.cube.net></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 > 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 <<A HREF="mailto:lnaa@centurytel.net">lnaa@centurytel.net></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øe (Acebone) <<A HREF="mailto:acebone@f2s.com
|
||
">acebone@f2s.com></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 <<A HREF="mailto:agreene@pobox.com">agreene@pobox.com></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é A. Gaeta Mendes <<A HREF="mailto:gaeta@ecosfera.com.br">gaeta@ecosfera.com.br></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 <<A HREF="mailto:michal@ellpspace.math.ualberta.ca">michal@ellpspace.math.ualberta.ca></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 <<A HREF="mailto:rternosk@appliedtheory.com">michal@ellpspace.math.ualberta.ca></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 <<A HREF="mailto:csena@itautec-philco.com.br">csena@itautec-philco.com.br</A>></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 <<A HREF="mailto:agreene@pobox.com">agreene@pobox.com></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 <<A HREF="mailto:rocky@ss.pub.ro">rocky@ss.pub.ro></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: <<A HREF="mailto:ghaverla@freenet.edmonton.ab.ca">ghaverla@freenet.edmonton.ab.ca></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 <<A HREF="mailto:jmfera@sion.com">jmfera@sion.com></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 <<A HREF="mailto:scottie99@netscape.net">scottie99@netscape.net></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 <<A HREF="mailto:rsmith@xs4all.nl">rsmith@xs4all.nl></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 <<A HREF="mailto:scottie99@netscape.net">scottie99@netscape.net></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 <<A HREF="mailto:djbusch@mediaone.net">djbusch@mediaone.net></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 <<A HREF="mailto:helge@jhterstegge.de">helge@jhterstegge.de></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 <<A HREF="mailto:vdubeau@ploverdev.com">vdubeau@ploverdev.com></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 <<A HREF="mailto:jimregan@litsu.ie">jimregan@litsu.ie></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: <<A HREF="mailto:fuzzybear@pocketmail.com">fuzzybear@pocketmail.com></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>&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 <<A HREF="mailto:rsmith@xs4all.nl">rsmith@xs4all.nl></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 <<A HREF="mailto:rsmith@xs4all.nl">rsmith@xs4all.nl></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 <<A HREF="mailto:baco@baco.net">baco@baco.net></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 <<A HREF="mailto:david.sarraf@juno.com">david.sarraf@juno.com></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 <<A HREF="mailto:david.sarraf@juno.com">david.sarraf@juno.com></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 <<A HREF="mailto:gburs2@hotmail.com">gburs2@hotmail.com></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 <<A HREF="mailto:sas@lucent.com">sas@lucent.com></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>Internet>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 <<A HREF="mailto:sad@efn.org">sad@efn.org></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: <<A HREF="mailto:ben-fuzzybear@yahoo.com">ben-fuzzybear@yahoo.com></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 <<A HREF="mailto:mjhammel@graphics-muse.org">mjhammel@graphics-muse.org></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: <<A HREF="mailto:Michael.Risser@Summus.com">Michael.Risser@Summus.com></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 <<A HREF="mailto:bcoogler@dscga.com">bcoogler@dscga.com></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é <<A HREF="mailto:kafe@mobilixnet.dk">kafe@mobilixnet.dk></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: <<A HREF="mailto:noah@nack.org">noah@nack.org></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
|
||
(>=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 <<A HREF="mailto:jesse@tcmi.com">jesse@tcmi.com></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 <<A HREF="mailto:jesse@tcmi.com">jesse@tcmi.com></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 <<A HREF="mailto:gazette@ssc.com">gazette@ssc.com></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çois Désarménien <<A HREF="mailto:desar@club-internet.fr">desar@club-internet.fr</A>>
|
||
|
||
<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 <<A HREF="mailto:slinkp23@yahoo.com">desar@club-internet.fr</A>>
|
||
|
||
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 <<A HREF="mailto:jimd@linuxcare.com">djimd@linuxcare.com</A>>
|
||
|
||
<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" >&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" ] && 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" >&2
|
||
exit 1
|
||
}
|
||
|
||
isnum "$1" || {
|
||
echo "first argument (first line) must be a whole number" >&2
|
||
exit 1
|
||
}
|
||
|
||
isnum "$2" || {
|
||
echo "second argument (last line) must be a whole number" >&2
|
||
exit 1
|
||
}
|
||
|
||
begin=$1
|
||
end=$2
|
||
|
||
[ "$begin" -le "$end" ] || {
|
||
echo "begin must be less than or equal to end" >&2
|
||
exit 1
|
||
}
|
||
|
||
shift 2
|
||
for i; do
|
||
[ -r "$i" -a -f "$i" ] || {
|
||
echo "$i should be an existing regular file" >&2
|
||
continue
|
||
}
|
||
ln=0
|
||
while read a ; do
|
||
let ln+=1
|
||
[ "$ln" -ge "$begin" ] && 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/./[&]/'
|
||
</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 &lt;stdio.h&gt;
|
||
#include &lt;stdlib.h&gt;
|
||
#include &lt;errno.h&gt;
|
||
|
||
int
|
||
main (int argc, char * argv[] )
|
||
{
|
||
char * linestr;
|
||
long begin, end, current=0;
|
||
ssize_t * linelen;
|
||
|
||
|
||
linelen = 0;
|
||
linestr=NULL;
|
||
|
||
if ( argc &lt; 3 ) {
|
||
fprintf(stderr, "Usage: %s begin end\n", argv[0]);
|
||
exit(1);
|
||
}
|
||
|
||
begin=atol(argv[1]);
|
||
if ( begin &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 &lt; begin ) {
|
||
fprintf(stderr, "Argument error: %s should be a number "
|
||
"greater than arg[1]\n", argv[1]);
|
||
exit(1);
|
||
}
|
||
|
||
while ( getline(&linestr, &linelen, stdin ) &gt; -1
|
||
&& (++current &lt; end ) ) {
|
||
if (current &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 © 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 © 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 © 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ê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 © 2000, Fernando Ribeiro Corrê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 © 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 >/var/log/wtmp
|
||
cat >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 ">" 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! <grin> 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 © 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>
|
||
-- 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>
|
||
<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>
|
||
<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! <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>
|
||
<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>
|
||
<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: # "bkup" - copies specified files to the user's ~/Backup
|
||
3: # 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
|
||
be referred to by $<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>
|
||
<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> </ul>
|
||
|
||
<li>
|
||
May not contain unquoted metacharacters or reserved characters, i.e.</li>
|
||
|
||
<ul>
|
||
<li>
|
||
! { } | & * ; ( ) < > 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>
|
||
<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>
|
||
<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>
|
||
<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>
|
||
-- "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>
|
||
<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>
|
||
<li>
|
||
File creation</li>
|
||
|
||
<li>
|
||
Permissions</li>
|
||
|
||
<li>
|
||
Spawned subshells</li>
|
||
|
||
<li>
|
||
Execution in a non-PATHed directory</li>
|
||
|
||
<br>
|
||
<li>
|
||
The `hash-bang hack'</li>
|
||
|
||
<li>
|
||
Comments</li>
|
||
|
||
<li>
|
||
Positional parameters</li>
|
||
|
||
<li>
|
||
Command substitution</li>
|
||
|
||
<li>
|
||
Variables</li>
|
||
|
||
<br>
|
||
<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>
|
||
<p>
|
||
<hr width="75%" align="left">
|
||
<br>REFERENCES
|
||
<p>"man" pages for 'bash', 'cp', 'chmod'
|
||
<br>
|
||
<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 © 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 <<A HREF="mailto:jhinsley@telinco.co.uk">jhinsley@telinco.co.uk</A>>
|
||
|
||
</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 <<A HREF="mailto:rsmith13@tampabay.rr.com">rsmith13@tampabay.rr.com</A>>
|
||
</TD>
|
||
</TR></TABLE>
|
||
|
||
|
||
|
||
|
||
<!-- *** BEGIN copyright *** -->
|
||
<P> <hr> <!-- P -->
|
||
<H5 ALIGN=center>
|
||
|
||
Copyright © 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 © 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 © 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>
|