LINUX GAZETTE

February 2003, Issue 87       Published by Linux Journal

Front Page  |  Back Issues  |  FAQ  |  Mirrors
The Answer Gang knowledge base (your Linux questions here!)
Search (www.linuxgazette.com)


Linux Gazette Staff and The Answer Gang

Editor: Michael Orr
Technical Editor: Heather Stern
Senior Contributing Editor: Jim Dennis
Contributing Editors: Ben Okopnik, Dan Wilder, Don Marti

TWDT 1 (gzipped text file)
TWDT 2 (HTML file)
are files containing the entire issue: one in text format, one in HTML. They are provided strictly as a way to save the contents as one file for later printing in the format of your choice; there is no guarantee of working links in the HTML version.
Linux Gazette[tm], http://www.linuxgazette.com/
This page maintained by the Editor of Linux Gazette, gazette@ssc.com

Copyright © 1996-2003 Specialized Systems Consultants, Inc.

[ Table of Contents ][ Front Page ][ Talkback ][ FAQ ][ Next ]
LINUX GAZETTE
...making Linux just a little more fun!
The Mailbag
From The Readers of Linux Gazette


HELP WANTED : Article Ideas
Submit comments about articles, or articles themselves (after reading our guidelines) to The Editors of Linux Gazette, and technical answers and tips about Linux to The Answer Gang.


H/W detection in Debian ?

Sat, 11 Jan 2003 19:06:15 +0530
Joydeep Bakshi (joy12 from vsnl.net)

Hi all,

  1. kudzu is the DEFAULT H/W detection tool in RH & harddrake in MDK. is there anything in debian?
  2. I have installed kudzu in debian 3.0 , but it is not running as a service. it needs to execute the command kudzu manually. more over it couldn't detect my epson C21SX printer. but under MDK 9.0 kudzu detected the printer . any solution please ?

thanks in advanced.


ppp over nullmodem cable - no response to (LCP ConfReq ...)

Tue, 31 Dec 2002 16:45:02 +0100
Josef Angermeier jun. (josef.angermeier from web.de)

hi linux gazette

first thanks for your great work.

id like to connect over a serial cable to a windows 2000 ras server. i already know that the problem isnt the null modem cable, because i just could remote control my second computer while using getty and windows's hyperterminal on the other side. (btw i first tried gnu/linux's minicom instead of window's hyperterminal but it seemed to me minicom just works with a modem a the end of the cable, am i wrong or is there any other program out there which i should give a try ?) ok ive already read those Serial-* and PPP* howto but i probably missed something. further, i also set the same baud rate at the ras server side. so any idea, why i dont get any reply to my LCP ConfReq Request ??

greets

josef

melee:/home/josef/tmp# pppd /dev/ttyS0 nodetach
Serial connection established.
using channel 1
Using interface ppp0
Connect: ppp0 <--> /dev/ttyS0
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x143c91f8> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x143c91f8> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x143c91f8> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x143c91f8> <pcomp> <accomp>]
....

my /etc/ppp/options.ttyS0

connect 'chat -v -f /etc/ppp/scripts/winserver.chat'
19200
debug
crtscts
local
user josef
noauth


How can we block mails from users using ipchains

Sun, 5 Jan 2003 22:33:43 -0800
Dan Wilder (SSC sysadmin)
Question by linux-questions-only@ssc.com, vinod (vinod from globaledgesoft.com)

HI,

I would like to know how to block mails from other users on the same system.I tried using 'ipchains' & port no,but it didnt work.Please help me with this.

Thanks

Perhaps you could be more specific about what you're trying to accomplish. For example:

I'll take this one to the readership as a general request for more articles about setting up mail systems to do interesting things. In fact, some things that aren't really about spam could be a fun read :) -- Heather


dual boot problem

Mon, 6 Jan 2003 14:29:33 -0500
Faber Fedor (faber from linuxnj.com)
Question by Phil Harold (Lazybum from sio.midco.net)

I installed Redhat 8.0 on an existing system that has XP pro on it. XP is on ide0 and the Redhat is on ide1 XP hard drive is fat file system. When it boots it asks go to Redhat or dos… I don’t have dos. How do I get back to the windows? What needs to be done to change the boot loader. I thought I had set it up so Linux only booted with a floppy… I guess not Thanks for any help. Phil Harold

Go ahead and choose "DOS". That will boot into the other partition which is set up (hopefully) to boot XP.

Looks normal so far. Hardly worthy of the "help wanted" section here at the Gazette ... but nope, it's a stumper. -- Heather

just before the other symbols it says:

root no verify (hd2,0) chainloader +1

hit the enter key is when the symbols come looks like greek and chinese


Custom kernel, not so custom modules

Fri, 10 Jan 2003 18:25:16 +0100
Eduardo (edlm from wanadoo.es)
An old question - he had said this relates to [[http://www.linuxgazette.com/issue64/tag/16.html][issue 64 #16 in The Answer Gang]] - but still a stumper. We have a lot more readers now; maybe one of you knows what happened here? -- Heather

Hello all,

I have exactly the same problem described by Michael Hansen. Modules doesn't load after recompile Kernel. I'm also a newbie in Linux, but I see (If you are using red hat at least), it creates a directory /lib/modules/2.4.xcustom (in fact kernel version pass to 2.4.18custom in my case), but when you do make modules it copies to directory 2.4.x. If you rename directories the problem comes when you try to install a new driver that use uname -r command during installation to find modules directory (uname -r result is 2.4.xcustom). I don't know how solve this problem.

Best regards


ipchains vs iptables

Wed, 22 Jan 2003 14:39:11 +0100
Dean Buhrmann (d.buhrmann from chello.nl)

Dear Answer Gang members,

I have a linux home network which is connected to the internet through a gateway. This computer runs linux with a 2.2.18 kernel. I use IP-chains to block some unwanted incoming traffic. One of the machines runs mldonkey. This program needs the ports 4161 and 4162. I get the following error from server i contact:

ERROR: Your port 4662 is not reachable. You have a LOWID.

This port is open. The solution to this problem seems to be to redirect incoming packets from the internet for port 4662 directly to the machine where mldonkey runs.

The following iptable should do this:

iptables -A PREROUTING -t nat -p tcp -d $4 --dport 4662 -j DNAT --to 192.168.1.100

$4 is the gateway
192.168.1.100 runs mldonkey

I use a 2.2.18 kernel with ipchains on the gateway. In Howto's and other documentation i can't find a way to do this with ipchains. Do you know if it's possible and how?

Please your help.

greetings Dean Buhrmann.

Articles about trevails, with details are always welcome when you solve a strange problem. Of course there are HOWTO's for ipchains and for netfilters, but perhaps we could see an article about do something complicated enough to illustrate differences that might have you prefer one or the other interface. -- Heather

GENERAL MAIL


Re: your mail

Mon, 20 Jan 2003 11:45:17 -0500
Ben Okopnik (the LG Answer Gang)
Question by Larry Leeds (lleeds from cableone.net)

I had an IBM 20G hard drive that had a lot of bogus information in the master boot record due to formatting it with 2G jumper on and then formatting with the jumper off. It wouldn't load an OS, and it locked up every time I tried to run fdisk, norton disk doctor couldn't fix it either, but your little DOS assembly program http://www.linuxgazette.com/issue63/okopnik.html saved my hard drive.

Thank you!

Glad you found it useful, Larry. A number of people have written in with comments like yours about that particular article; I find it very pleasant that my work has benefitted that many people.

I appreciate your letting me know.


POS Software in Linux

Tue, 21 Jan 2003 21:07:25 -0500
Ben Okopnik (the LG Answer Gang)
Question by Stelian Iancu (stelian.iancu from gmx.net)

Hi!

I was reading the December 2002 issue of LG (btw, great magazine! I've just re-discovered it, and it's fantastic!) and I saw the PC-MOS thread originated by Reilly Burke.

I remembered that I saw something like a prototype for a POS software on the net and I went searching for it. The address is http://www.dnalounge.com/backstage/src/pos and the author is no other than jwz (Jamie Zawinski).

As fas as I can see, there is only an idea and a "little prototype" (as the author describes it), but maybe this prototype can be used for further developement by somebody else.

HTH!

If you need a restaurant-specific POS and don't mind going commercial (for a very small fee as compared to other POSes, actually), I have only good things to say about the ViewTouch POS <http://www.viewtouch.com> in spite of its closed-source nature. The interface is very well thought-out and beautifully done; the layout, menu, employee, and ingredient list configuration is a snap. It supports all the popular touchscreens, industry-standard narrow printers, and all the standard cash drawers. Despite the documentation that insists on "RedHat-only" compatibility, I've run it under Debian from day one (three years or so ago), and it works fine.

My biggest concern with it, of course, is that it is closed-source. I would have liked to tweak some minor features for the client I had who was interested; as well, I wonder what would happen if the developer disappeared off into the ether... but that's the nature of that particular beast. It is, however, an interesting and well-executed option. Interestingly enough, I spotted a major restaurant near Baltimore (a Brazilian steakhouse in Columbia, MD) using it about a year ago. The employees using it didn't have any negative comments, either.

P.S. Keep up the good work!

Thanks, Stelian. That's the reality and the plan. :)


GAZETTE MATTERS


Wanted: Proofreaders

Thu Jan 30 11:24:03 PST 2003
LG Editor Iron (gazette from ssc.com)

LG is looking for proofreaders. The main qualifications are a good command of English grammar, a native or near-native sense of English word usage, and the ability to recognize and clarify phrases that are too academic, not understood outside their own country, or unnecessarily difficult for those with limited English ability to read.

Depending on the number of proofreaders, the workload would be at most one article per month, but more likely one article every 2-3 months. Of course, you would be able to refuse articles you don't have time to proofread, or if you're not interested in the subject.

If interested, send gazette@ssc.com some samples or URLs of stuff you've written or proofread (any topic, any length) that demonstrates your wording style.


Compilation Problem in Writing Your Own Toy OS (PART II)

Thu, 19 Dec 2002 07:15:59 -0800 (PST)
Mohammad Moghal (riazdat from yahoo.com)

Dear Sir,

"Writing Your Own Toy OS" is a Great Contribution towards knowledge.

I have tried PART I successfully.

But, after compiling part II, I booted my system from Drive A. System checked Drive A and was hangged. There was no output of the string.

Could you please help me out.

Best Regards

M. R. Moghal

Forwarding to the author, Krishnakumar R.
He fixed one of the programs somewhere in the series after it was published, but I don't remember exactly where. If you're reading on a mirror, check the main site, and see whether that program has been changed. http://www.linuxgazette.com/issue79/krishnakumar.html -- Mike


publishing

Fri, 27 Dec 2002 03:37:09 -0500
Mike Orr (Linux Gazette Editor)
Question by Felix F. (felix from pz4.org)
Readers, please note that this was actually an exchange of mails back and forth between Mike and Felix, rather than one message which Mike responded to in gory detail. If anyone out there, either in whole or in part, takes on the Herculean task of providing paper editions of LG please let us know - we will very happily spread the word! -- Heather

Have you ever thought of publishing the gazette and require subscriptions? I would sure like to get a monthly magazine then browsing the gazette online.

We've had several requests for a print version of LG. However, the cost of producing it would be prohibitive. (Printing, postage, software to track subscriptions, customer service staff, etc. And if you want a glossy magazine rather than just a xerox copy, there's layout costs, more printer's fees, etc.) Commercial magazines like our Linux Journal can do it because most of their revenue comes from advertising, but Linux Gazette does not accept advertising (except sponsorships).

We have repeatedly asked if any readers would be willing to set up their own print-and-distribute service for LG, but nobody has offered.

What kind of equipment would be required to print-and-distribute services?

At minimum, a lazer printer, envelopes, stamps, and a list of subscribers. That's how small, do-it-yourself zines work. You'd want some kind of cover or binding unless you're just going to send a stack of loose sheets.

But mailing costs alone will soak you, especially since a single issue of LG is something like fifty printed pages. (I've never printed an issue, so that's an estimate.) Sending fifty pages via first-class mail within the US is $3-4, so that's $48/year. Would you pay $48 for LG? You may be able to get a better deal with book rate or presorted rate but you'd have to check with the post office. But how will you recoup your cost for toner cartridges, paper, printer repair/replacement (since it will wear out sooner), envelopes, and the time to write the addresses or attach labels, not to mention the time dealing with subscription requests, complaints about "I didn't receive my issue", etc?

Today many free magazines put ads into the magazine and make money to publish the magazine. It would be a good idea to maybe advertise, but I'm not sure if LG has a high number of subscribers. I can see where the management issue would be a problem (billing, distributing, etc). Hopefully one day maybe. :)

LG has a huge number of readers all over the world. I don't know the number because people who read via mirrors or off-line are uncountable. But there are mirrors in fifty countries, and I figure any country with a mirror must have a subtantial LG readership. Either that, or it at least has one LG fanatic.... :)

You bring up an interesting point. LG itself is not interested in running ads, at least not at present. I like to think of LG as an ad-free zone, a safe haven from ads. But since LG content is freely redistributable, there's nothing prohibiting a print-and-deliver service from inserting ads in their version.

Actually, our author Alan Ward in Andorra said he's seen a Spanish print version of LG on the newsstands there. I assume it was the Spanish translation of Linux Journal, which may include some LG articles.

I've seen few sites publishing their works into magazine (including ads) and subscribers did not get angry at the ads, because they understood that to publish costs money and if the work is quality it's worth subscribing for.

HAPPY NEW YEAR and good luck.

There are a few articles in LG that may not be redistributed in a commercial print publication (where "commercial" means you're charging any amount of money for it). Those articles have a message to that effect at the bottom of the article. The ones that come to mind are:

In those cases, you will have to contact the author for permission.


This page edited and maintained by the Editors of Linux Gazette
HTML script maintained by Heather Stern of Starshine Technical Services, http://www.starshine.org/
Copyright © 2003
Copying license http://www.linuxgazette.com/copying.html
Published in Issue 87 of Linux Gazette, February 2003

LINUX GAZETTE
...making Linux just a little more fun!
More 2-Cent Tips

This column isn't ready yet.

 


Copyright © 2003, . Copying license http://www.linuxgazette.com/copying.html
Published in Issue 87 of Linux Gazette, February 2003

LINUX GAZETTE
...making Linux just a little more fun!
The Answer Gang

This column isn't ready yet.

 


Copyright © 2003, . Copying license http://www.linuxgazette.com/copying.html
Published in Issue 87 of Linux Gazette, February 2003

LINUX GAZETTE
...making Linux just a little more fun!
News Bytes
By Michael Conry

News Bytes

Contents:

Selected and formatted by Michael Conry

Submitters, send your News Bytes items in PLAIN TEXT format. Other formats may be rejected without reading. You have been warned! A one- or two-paragraph summary plus URL gets you a better announcement than an entire press release. Submit items to gazette@ssc.com


 February 2002 Linux Journal

[issue 106 cover image] The February issue of Linux Journal is on newsstands now. This issue focuses on enterprise computing. Click here to view the table of contents, or here to subscribe.

All articles older than three months are available for public reading at http://www.linuxjournal.com/magazine.php. Recent articles are available on-line for subscribers only at http://interactive.linuxjournal.com/.


Legislation and More Legislation


 You win some...

Jon Johansen, a Norwegian programmer who has been facing criminal charges as a result of his involvement in the creation of the DeCSS computer code for playing CSS encoded DVDs, has been acquitted on all counts. Jon was charged under a law that relates to breaking into other people's property, a law usually invoked in cases where attackers have attempted to break into another party's computer system. The law had never before been applied to prosecute a defendant for breaking into his own property, and in this case the Norwegian court ruled against the prosecutor on all charges, citing Norwegian law protecting a consumer's rights to use his own property. An English translation of the judgement has been made online by EFF.

The war is not over yet, however, and Norwegian prosecutors are set to appeal the verdict. If the request for an appeal is granted, the case will be heard again before the Norwegian appeal courts. Film industry lawyer, Charles Sims, was keen to assert that a US resident would have been breaking the law if they did what Jon Johansen did.


 You lose some

The United States Supreme Court has ruled to support the 20 year extension of copyright terms that was granted two years ago. The balance of opinion went 7-2, with dissenting opinions coming from Justices Stevens and Breyer.

The constitutional challenge began when Eric Eldred, who distributes public-domain books online, found that he would have to remove some of these works as their copyrights had been reactivated by an extension granted by the US Congress. There is a large amount of information on the case available at eldred.cc. Lisa Rein has also compiled a selection of reports and resources related to the case.

The issue at stake in the Eldred case was whether it was constitutional for Congress to extend copyrights in this way. There are compelling arguments on both sides of this argument (with some more compelling if you own billions of dollars in copyrighted works and want your business to be subsidised by the public), but the court has ruled that Congress had (and has) the right to make this extension. This does not mean that the all is lost. Governments in democratic countries are supposed to be responsive to the desires of citizens, and to act accordingly. Thus, it is important for citizens to make their opinions on these issues apparent to their elected representatives. Simply because a government can pass a law, does not mean that they will pass the law, especially if they can expect to pay a steep price at the ballot box next election time.

This is particularly relevant to European readers. European copyrights last for 50 years. What makes this significant is that about 50 years ago was the beginning of the modern era music recording, so from now on, a steady stream of high quality recordings by still-popular artists will be entering the public domain. Industry bodies are lobbying to have the terms of copyrights extended and are bandying words like piracy around to cloud the waters. As pointed out by Dean Baker, extending copyrights retrospectively on works does nothing to encourage creativity or "To promote the Progress of Science and useful Arts". Instead, it " raises costs to consumers and leads to increased economic inefficiency". This straight-forward truth will not stop industry monopolists and their quislings from attempting to steal the labour of humanity from the public commons, and then telling us it was all for our own good.


 DMCA

Your monthly serving of DMCA madness this time involves garage doors. It would appear that at least one firm believes that making universal garage door remotes is a breach of the DMCA and is prepared to spend some legal money on the idea. That wasn't enough? Well, here's a second helping: Lexmark is invoking the DMCA in an attempt to hobble the printer cartridge remanufacturing industry. Edward Felten has concisely explained that a major issue here is the whole principle of interoperability. Interestingly, the European Parliament has voted in a new law banning such "smart" printer cartridges as they make recycling more difficult and expensive. Bruce Schneier predicts a trade war, but even if it does not come to that, it will be interesting to see where the story goes. Also highlighted by Bruce, and worth reading, is the EFF's guide Unintended Consequences: Four Years under the DMCA.


Linux Links

Linux Magazine article on journaling filesystems.

Linux Planet article discussing basic Linux network security.

Some links highlighted by Linux Today:

Linux Job Market.

Lawrence Lessig discusses whether derivative works are always a bad thing for the owners of the original work. Japanese experience indicates they may be beneficial.

The Register has a report on businesses gathering to fight Hollings' copy controls

Some links from NewsForge:

Dave's Desktop is one Linux user's quest to share information on some of the helpful apps for Linux he has come across recently.

Howard Wen at O'Reilly is on a quest to find good Linux games. On the way, he found Falcon's Eye and talked to the game's creator

Linux Server Hacks: Backups

Both Linux Journal and DesktopLinux have dealt with Linux's relevance to senior citizens.

Some links from Linux Weekly News:

The Chinese Linux Documentation Project (CLDP) has included LDP's and Gnu's documents, translated them into Chinese. It also involve the Linux Gazette.

Some links from Slashdot:

Wikipedia, the free, contributor-maintained on-line encyclopedia, has reached its second birthday and 100,000 articles.


Upcoming conferences and events

Listings courtesy Linux Journal. See LJ's Events page for the latest goings-on.

O'Reilly Bioinformatics Technology Conference
February 3-6, 2003
San Diego, CA
http://conferences.oreilly.com/

Desktop Linux Summit
February 20-21, 2003
San Diego, CA
http://www.desktoplinux.com/summit/

Game Developers Conference
March 4-8, 2003
San Jose, CA
http://www.gdconf.com/

SXSW
March 7-11, 2003
Austin, TX
http://www.sxsw.com/interactive

CeBIT
March 12-19, 2003
Hannover, Germany
http://www.cebit.de/

Software Development Conference & Expo
March 24-28, 2003
Santa Clara, CA
http://www.sdexpo.com/

Linux Clusters Institute (LCI) Workshop
March 24-28, 2003
Urbana-Champaign, IL
http://www.linuxclustersinstitute.org/

4th USENIX Symposium on Internet Technologies and Systems
March 26-28, 2003
Seattle, WA
http://www.usenix.org/events/

PyCon DC 2003
March 26-28, 2003
Washington, DC
http://www.python.org/pycon/

Linux on Wall Street Show & Conference
April 7, 2003
New York, NY
http://www.linuxonwallstreet.com

AIIM
April 7-9, 2003
New York, NY
http://www.advanstar.com/

FOSE
April 8-10, 2003
Washington, DC
http://www.fose.com/

LinuxFest Northwest 2003
April 26, 2003
Bellingham, WA
http://www.linuxnorthwest.org/

Real World Linux Conference and Expo
April 28-30, 2003
Toronto, Ontario
http://www.realworldlinux.com

USENIX First International Conference on Mobile Systems, Applications, and Services (MobiSys)
May 5-8, 2003
San Francisco, CA
http://www.usenix.org/events/

USENIX Annual Technical Conference
June 9-14, 2003
San Antonio, TX
http://www.usenix.org/events/

CeBIT America
June 18-20, 2003
New York, NY
http://www.cebit-america.com/

The Fourth International Conference on Linux Clusters: the Linux HPC Revolution 2003
June 18-20, 2003
Las Vegas, NV
http://www.linuxclustersinstitute.org/Linux-HPC-Revolution

O'Reilly Open Source Convention
July 7-11, 2003
Portland, OR
http://conferences.oreilly.com/

12th USENIX Security Symposium
August 4-8, 2003
Washington, DC
http://www.usenix.org/events/

LinuxWorld Conference & Expo
August 5-7, 2003
San Francisco, CA
http://www.linuxworldexpo.com

Linux Lunacy
Brought to you by Linux Journal and Geek Cruises!
September 13-20, 2003
Alaska's Inside Passage
http://www.geekcruises.com/home/ll3_home.html

Software Development Conference & Expo
September 15-19, 2003
Boston, MA
http://www.sdexpo.com

PC Expo
September 16-18, 2003
New York, NY
http://www.techxny.com/pcexpo_techxny.cfm

COMDEX Canada
September 16-18, 2003
Toronto, Ontario
http://www.comdex.com/canada/

LISA (17th USENIX Systems Administration Conference)
October 26-30, 2003
San Diego, CA
http://www.usenix.org/events/lisa03/

HiverCon 2003
November 6-7, 2003
Dublin, Ireland
http://www.hivercon.com/

COMDEX Fall
November 17-21, 2003
Las Vegas, NV
http://www.comdex.com/fall2003/


News in General


 MEN Micro's New M-Modules

Two new digital input M-Modules from MEN Micro have been released. They have been designed to meet tough environmental and safety specifications and were developed specifically for railway applications, but they can be deployed in a broad range of industrial systems where shock, vibration, temperature and harsh environments are a concern.

The M-Modules, which are designated M31 and M32, each provide 16 binary channels to a control platform. Because they conform to the ANSI-approved M-Module standard, they can be installed in a number of standard bus-based systems, including CompactPCI, PXI, VMEbus and PCI, or they can be used in small busless systems.

Software drivers for the M31 and M32 are available for Windows, Linux, VxWorks, QNX, RTX and OS-9.


Distro News


 Ark

Ark Linux is a new distribution, led by former Red Hat employee Bernhard Rosenkraenzer. It is based on Red Hat 7.3/8.0, and free alpha downloads are available.


 Debian

Debian Weekly News reported the announcement by Steve McIntyre that he has created a set of update CD images that contain new and updated packages from 3.0r1.


Also from Debian Weekly News is a report on the availability of an RSS feed of new Debian packages.


Bdale Garbee, current Debian project leader, has been interviewed by Australian newspaper The Age.


 Eagle

Eagle Linux is a how-to based Linux distribution offering full open source documentation assisting users in creating personal embedded, floppy, and CD based bootable distributions.


 Gentoo

Gentoo Linux has announced the second release candidate for the upcoming 1.4 version of Gentoo Linux. New in 1.4_rc2 is the Gentoo Reference Platform: a suite of binary tarballs that allow for faster initial installation. Currently X, GNOME, KDE, Mozilla, and OpenOffice,org are available as binary installations for x86 architectures and ppc architectures with others to follow.


 Mandrake

Mandrake 9.0 has been reviewed recently by The Register/NewsForge and by Open for Business.


It has been widely reported in the past month that Mandrake is currently experiencing acute financial problems. This has lead company management to apply for Chapter-11 style protection. The purpose of this is to give the company some respite to allow it to reorganise its finances without pressure from creditors. The French courts have approved the plan and hopefully the company will in a better position to make positive progress after this period.


 SCO

The SCO Group have announced plans to work with Wincor Nixdorf to provide Linux-based retail point-of-sale (POS) solutions to retailers in North America. This relationship gives retail customers an economical, reliable choice by combining the functionality and flexibility of Wincor Nixdorf hardware with the stability and reliability of SCO operating systems. The joint retail solutions will rely on Wincor Nixdorf's BEETLE POS family and SCO's Linux POS solution, SmallFoot.


 SuSE

SuSE Linux has annnounced the availability of a desktop Linux product that gives users the full functionality of the Microsoft Office suite of applications. SuSE Linux Office Desktop, available from January 21, is intended for small companies looking for an easy, preconfigured desktop -- as well as for personal users with little or no Linux experience.


 UnitedLinux

UnitedLinux has announced plans to integrate the full OSDL Carrier Grade Linux (CGL) 1.1 feature set for UnitedLinux 1.0, delivering enhanced abilities to develop and deploy carrier-grade applications in a standardized Linux environment.

Developed by UnitedLinux integration partner SuSE Linux with HP, IBM and Intel, the features -- targeted initially for use on Intel-based hardware platforms -- enable telecommunications providers to develop and deploy new products and services on standards-based, modular communications platforms.


LPI a professional certification program for the Linux community, and UnitedLinux LLC have signed a cooperative agreement to market a UnitedLinux professional certification program.


Software and Product News


 KDE

KDE 3.1 has been released.


 Understanding the Linux Kernel, 2nd Edition

O'Reilly & Associates has released a new edition of Understanding the Linux Kernel which has been updated to cover version 2.4 of the kernel. 2.4 differs significantly from version 2.2: the virtual memory system is new, support for multiprocessor systems is improved, and whole new classes of hardware devices have been added.


 Aqua Data Studio 1.5

AquaFold has announced the release of Aqua Data Studio 1.5, a free database tool supporting all major database platforms, including Oracle 8i/9i, DB2 7.2/8.1, Microsoft SQL Server 2000/7.0, Sybase ASE 12.5, MySQL, PostgreSQL and generic JDBC drivers. Aqua Data Studio also supports all major Operating Systems designed to run Sun Microsystem's Java Platform such as Microsoft Windows, Linux, OSX and Solaris. Aqua Data Studio is designed to speed up the development of database and application developers by providing them with an elegant and consistent interface to all databases on all platforms. Free downloads and screenshots of Aqua Data Studio are available online.


 OpenMFG

OpenMFG is a company using open source software to bring enterprise resource planning (ERP) applications to small manufacturers, has welcomed the first ten members of the Open Partners Program.


Copyright © 2003, Michael Conry. Copying license http://www.linuxgazette.com/copying.html
Published in Issue 87 of Linux Gazette, February 2003

LINUX GAZETTE
...making Linux just a little more fun!
The Ultimate Editor
By Stephen Bint

Somewhere, out there, is a C++ programmer whom destiny has chosen to be our liberator.

The Ultimate Editor's Time Has Come

How can it be that Windows users are spoiled for choice of excellent text editors, while not one decent one exists for the Linux console? Linux is a better OS, supported by better programmers who are dedicated to producing better tools for eachother's benefit. The text editor is the programmer's most important and frequently used tool. Yet Linux console editors are rubbish. How can this be?

Those of us who migrate from windows to Linux expect a text editor, at the very least, to allow selection of text with the mouse and to have mouse-sensitive menus and dialogs. Of all the editors only mcedit, the editor built in to the Midnight Commander disk navigator, has these features. The rest have no dialogs and either no mouse interface or a very limited, stupid one.

Yet even mcedit has a fatal flaw. If there is anything about its behaviour you don't like, or a function it lacks which you would like to add, you will find that reverse-engineering the source to solve that problem is more difficult than writing your own text editor from scratch. Unfortunately mcedit is quite basic, so it really needs added functionality and there is no easy way to add it.

What is the point of Open Source being open, if it is so complicated and poorly documented as to be impenetrable to anyone but the author?

Let's face it, we are all the same. We love writing code and hate writing docs. Writing slick algorithms is fun but explaining how they work to newbies is a bore. Yet if someone were to take the trouble to write an editor with maintenace in mind and build in a simple way to add C++ functions to menus, it might be the last editor ever written. No one would bother to write a text editor if one existed, whose behaviour was easy to change and to which any function could be added.

Blasphemy

Stallmanist Fundamentalists may say at this point, emacs is extensible. So it is, but you need to learn a second language to extend it. Besides that, the basic editor has a crude and confusing user interface which cannot be improved by adding lisp modules.

Some of us who aspire to use Linux are ordinary people, not software supermen. It is cruel and unnecessary to tell someone struggling to learn their first language, that they must simultaneously learn a second language in order to make their editor work they way they want it to.

It will never do. Emacs isn't a tool. It's an intelligence test. It is time stupid people fought back against the elitists who are so clever, they find learning emacs a breeze. Notice that you do not have to learn how to use mcedit. It does what you expect so there is nothing to learn.

The Ultimate Editor would be what emacs should have been: an extensible editor with an intuitive mouse-and-menu interface. [Editor's note: emacs was born before mice and pulldown menus were invented.] Instead of complicating the picture with a second language, the extensions would be written in C++. It would come with a programmer's guide, explaining how to install your own menu commands and also describing the anatomy of the source so that you can easily locate the module you are after if you want to change something about its basic behaviour. It would be a do-it-yourself editor kit.

O, Beautiful Tool

If the Ultimate Editor existed, this is what it would be like. You would download it and build it and find it has the basic functionality of mcedit. It would have mouse selection, mouse-sensitive menus and a file open dialog box that allows you to navigate the disk by double-clicking on directories.

It would have few functions: File Open, File Save, File Save As, Exit, Cut, Copy, Paste, Delete and Help. At first there would be no search function, but the README would explain that the source file for the search function is included and would give simple instructions for how to add it. The lines to be added to the source would already be there, but commented out, to make it easy to add the search function.

To add the search function you would have to:

1. Move its source file to the editor's src directory

2. Declare the function at the top of main.cc like this:

   int show_search_dlg();

3. Add a line to main() (actually uncomment a line) like this:

   ed.add_menu_cmd( show_search_dlg, "Search", "Edit", F2_key, SHIFT_PRESSED );

...which installs a command labelled "Search" on the "Edit" menu, which can be activated directly by pressing Shift-F2.

4. In the Makefile, add (uncomment) a compile rule for the source file and add its name to the list of objects to be linked.

5. Run Make and find that the search function is now on the menu.

Having followed this procedure, even a complete newbie will know how to write their own menu functions. The editor will be a global variable, (C++ object) accessible in any source file the user writes, through its header file. Its member functions will report the states of all its internal variables, such as cursor position and area selected. The text array containing the file being edited will be accessible as a member variable, so that the file can be scanned and modified within the user function.

Living Colour

Usually, the logic of colourization is imposed on users. Some editors offer a dialog to change the colours and to add keywords, but the logic is dictated by the author.

The Ultimate Editor will offer an easy way for users to write their own colourization routines. Apart from enabling people to colourize rare and eccentric languages, this feature will unlock the hidden potential of colourization.

Think how many ways you could choose to colour source and what an aid to reverse engineering it could be. Depending on your purpose, you might want to colour identifiers according to which header file they are declared in, or whether they are automatic or allocated, or use colours to indicate their scope. You might choose to have several colouring schemes installed and switch between them with hot keys.

To make colourizing simple, the Ultimate Editor will store its files in file arrays which contain two arrays of strings - one for the text and another for the colours. The file array will keep the sizes of the strings in these arrays synchronized so that, for every character stored in the text array, there is always a byte representing its colour at the same co-ordinates in the colour array.

The editor will always draw on the colour array when it refreshes, so all the programmer has to do in order to colour a character at certain co-ordinates, is change the value in the colour array at those same co-ordinates and refresh the display.

Ninety Percent Widgets

From the user's point of view, dialog boxes appear to be a small part of a text editor. From the programmer's perspective, it is the other way round. The editable fields which appear in dialogs are fully functional editing windows with a couple of features disabled. So to write the Ultimate Editor is really to write the Ultimate Widget Library.

A well-written widget library with good docs is more than an accessory to an extensible editor. If users become familiar with the library in order to improve the editor, they can use it to produce configuration dialogs which assist non-experts in configuring other software, by asking simple questions and writing out their wishes in a config file.

Linuxconf is a very important configuration tool, but it is fading like a dead language because it is hard to use. Because it is hard to use, it is hard to get enthusiastic about improving it. Users and programmers both drift instead towards other, distribution-specific configuration programs. If linuxconf was rewritten to show mouse-sensitive dialogs that behave like proper dialogs (like X-windows dialogs), it might grow to include modules to enable clueless newbies to configure any popular package.

Do you not agree, that the main obstacle to the popularity of Linux, is esotericism? I mean, no-one bothers to write software for newbies because only software experts ever use Linux. The growth of Linux is being prevented by an elitist Catch-22. If idiot-friendly configuration programs were not important to the popularity of an OS, would Microsoft have lavished so much time and money on them?

Rewriting linuxconf with a simple but modern widget library would be the first step to making what it should be - a project that never ends. It should be continually growing as more modules are added, until it becomes the one-stop-shop through which all Linux software can be configured by children.

A Little Help

I want this challenge to be open to anyone who knows C++. Because interfacing with the mouse, keyboard and colour-text screen under Linux is a low-level nightmare, I have produced an interface library which makes it as simple under Linux as it is under DOS. I recommend it over Slang for the purpose of writing an editor for several reasons.

First, the Slang source (including docs and demo programs) zipped is 740k, whereas my library's source zips to 42k. Second, Slang does not report mouse movement, so a Slang program cannot drag-select with the mouse. Third, the colouring system in Slang is complicated, but mine represents the screen as an EGA-style buffer of character/colour byte pairs.

I wrote my library after an attempt to use Slang myself drove me to the conclusion that its all-platform capability generated an unacceptable overhead and took less than full advantage of the potential of the Linux console. I don't doubt that the author of Slang is a better programmer than me, but I have produced a library specifically to serve programmers who want to produce the first adequate editor for the Linux console.

You can download it here: http://members.lycos.co.uk/ctio/

And now that interfacing with the console is as simple under Linux as it ever was under DOS, the obstacle to Linux editors having the same basic features as DOS editors has been removed. Now anyone who knows C++ can do something great. To produce the editor and widget library I have described might change the course of the history of free software, by rolling out a red carpet to entry-level programmers.

Invent the Wheel

I am constantly being told that there is no need to reinvent the wheel. A ship could sail the Atlantic, powered only by my sighs. Let me assure you, I will march up and down the High Street blowing a trumpet and proclaiming at the top of my voice, "NO NEED TO REINVENT THE WHEEL!" on the day that someone actually produces a ROUND WHEEL.

In theory, any Open Source editor can be hacked and made perfect, but we are still waiting for a mouse-aware console editor which can be hacked and improved by programmers with I.Q.s under 170. Without adequate documentation, Open Source is a Closed Book to ordinary mortals.

Destiny

What are you, C++ programmer? Someone with the power to build abstract machines, an inventor that has transcended the limitations of the material world that crushed the dreams of human inventors of every generation before this? The citizens of the beautiful city of Free Software scrape along on square wheels and you could solve their problem.

If you are sitting on your flabby backside thinking, "Nyaahh. It's not for me", then who is it for? Not me, I'm homeless. I have had access to a computer long enough to write the interface library, but now I am living in a tent and the closest I get to a computer is occasional internet access at a day centre for the unemployed. That is why it can't be me. Why can't it be you?

It might be your destiny to be the author of that Ultimate Editor, the last editor ever written. Perhaps no more than a month after the importance of free software has been recognised and Stallman's face is carved on Mount Rushmore, they may have to blow it off with dynamite and carve yours on there instead.

Reference

Slang, by John E. Davis. Slang appears to have eclipsed curses, as the keyboard/mouse/colour text interface library most programmers would recommend. If you are dead clever, you might find a way to use the subset of Slang purely concerned with the console interface, which is part of the Midnight Commander source. It is smaller and allows text selection at the Linux console, while still offering limited functionality on less capable terminals, even telnet windows!

CTIO, by Stephen Bint. By far the simplest and best console interface library I have ever written. Only works at the Linux console and DOS, not in rxvt/xterm nor telnet windows (but it's only 42k). Read about my struggle to write it here.

emacs, by Richard Stallman. A millstone in the history of free software.

 

[BIO] Stephen is a homeless Englishman who lives in a tent in the woods. He eats out of bins and smokes cigarette butts he finds on the road. Though he once worked for a short time as a C programmer, he prefers to describe himself as a "keen amateur".


Copyright © 2003, Stephen Bint. Copying license http://www.linuxgazette.com/copying.html
Published in Issue 87 of Linux Gazette, February 2003

LINUX GAZETTE
...making Linux just a little more fun!
HelpDex
By Shane Collinge

These cartoons are scaled down to minimize horizontal scrolling. To see a panel in all its clarity, click on it.

[cartoon]
[cartoon]
[cartoon]
[cartoon]
[cartoon]
[cartoon]

Recent HelpDex cartoons are at Shane's web site, www.shanecollinge.com, on the Linux page.

 

[BIO] 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.


Copyright © 2003, Shane Collinge. Copying license http://www.linuxgazette.com/copying.html
Published in Issue 87 of Linux Gazette, February 2003

LINUX GAZETTE
...making Linux just a little more fun!
Ecol
By Javier Malonda

These cartoons were made for es.comp.os.linux (ECOL), the Spanish USENET newsgroup for Linux. The strips are drawn in Spanish and then translated to English by the author. Text commentary on this page is by LG Editor Iron. Your browser has shrunk the images to conform to the horizontal size limit for LG articles. For better picture quality, click on each cartoon to see it full size.


All Ecol cartoons are at tira.escomposlinux.org (Spanish) and comic.escomposlinux.org (English).

These cartoons are copyright Javier Malonda. They may be copied, linked or distributed by any means. However, you may not distribute modifications. If you link to a cartoon, please notify Javier.

 


Copyright © 2003, Javier Malonda. Copying license http://www.linuxgazette.com/copying.html
Published in Issue 87 of Linux Gazette, February 2003

LINUX GAZETTE
...making Linux just a little more fun!
Quick-Start Networking
By Edgar Howell

Quick-Start Networking

Contents

Introduction
1. Ethernet
2. Ssh
3. Screen
4. File Transfer
5. Nfs
6. Samba
7. PCMCIA
8. Further Reading
9. A Future without Windows?

Introduction

Over the holidays I finally had a block of time large enough to work on a network at home. But getting started is always my biggest problem and it took a while to understand what had to be done on which machine. In retrospect it was quite easy to get started.

This article is essentially little more than my notes, taken during the experience, less false starts. To the best of my knowledge it documents what I had to do and will be my reference if the need arises to repeat any of this.

To avoid inflating this unnecessarily and because I'm really just an experienced newbie, almost nothing is explained. There are references to some relevant articles but I assume you know how to find the standard documentation.

To my mind there is no reason for anyone with two or more computers not to have them networked. My first step was with an Ethernet card for the PC, a cross-over cable, and a PCMCIA Ethernet card, all for 87.50 euro. Once that was working, another PCMCIA card (should have known by the price that it was Windows-only), 8-port switch and 3 3-meter cables cost 67.50 euro. Roughly $160 wasn't bad. And it shouldn't cost much more than $25 to connect 2 PCs point-to-point.

The current status of this home office network is as follows:

  • Toshiba 486 500MB/24MB, SuSE 8.0 (kernel 2.4.18-4GB) without X
  • PC Pentium 166 2x4GB/32MB, SuSE 6.3 (kernel 2.2.13)
  • Toshiba AMD 4GB/64MB, SuSE 8.0 (kernel 2.4.18-4GB) or Windows 98

    By the way, the asymmetry in the following is not due to anything inherent in networking or the different Linux kernels. Rather, the 486 will one day be my portal to the Internet. It shouldn't be able to do much of anything other than responding to someone it knows. On the other hand the other two should have no restrictions.

    Other than that, be careful: this is merely intended to get up and running as quickly as possible. Everything else has been pretty much ignored. Consider this just a small but important first step. Your next step has to be the relevant documentation because this is quite superficial!

    1. Quick-Start - Ethernet

    Other than a PCMCIA problem (see below), installing and configuring Ethernet is rather straight-forward. To keep things simple I started out with a cross-over cable, i.e. point-to-point, and moved on to a switch only after everything else was known to work.

    Rather than having each machine connect to the network at boot, there are scripts in /root to run when it is time to connect. Here are the relevant scripts and files from two of the machines (less comments and stuff not relevant here):

    Toshiba 486

         /etc/hosts:       127.0.0.1      localhost
                           192.168.0.99   Toshiba486.Lohgo  Lohgo486
                           192.168.0.100  ToshibaAMD.Lohgo  LohgoAMD
                           192.168.0.101  PC.Lohgo          LohgoPC
    
         /etc/hosts.allow: sshd: 192.168.0.100, 192.168.0.101
    
         /root/eth-up:     #!/bin/bash
                           /sbin/ifconfig eth0 192.168.0.99 \
                                          broadcast 192.168.0.255 \
                                          netmask 255.255.255.0 up
    

    Pentium 166

         /etc/hosts:       127.0.0.1      localhost         PC
                           192.168.0.99   Toshiba486.Lohgo  Lohgo486
                           192.168.0.100  ToshibaAMD.Lohgo  LohgoAMD
                           192.168.0.101  PC.Lohgo          LohgoPC
    
         /etc/hosts.allow: sshd:      192.168.0.100
                           portmap:   192.168.0.100
                           lockd:     192.168.0.100
                           rquotad:   192.168.0.100
                           mountd:    192.168.0.100
                           statd:     192.168.0.100
    
         /root/eth-up:     #!/bin/bash
                           /sbin/insmod rtl8139
                           /sbin/ifconfig eth0 192.168.0.101 \
                                          broadcast 192.168.0.255 \
                                          netmask 255.255.255.0 up
    

    The following are the same on all 3 machines:

         /etc/hosts.deny:  ALL : ALL
    
         /root/eth-down:   #!/bin/bash
                           /sbin/ifconfig eth0 down
    
         /root/eth-stat:   #!/bin/bash
                           /sbin/ifconfig eth0; /bin/netstat -r
    

    The extra entries for the P166 in /etc/hosts.allow are to support nfs. And insmod in /root/eth-up is due to the Ethernet card in the PC vs PCMCIA on the notebooks.

    Be aware that SuSE at installation has an option to "re-organize" /etc/hosts that defaults to CHECK_ETC_HOSTS=yes in /etc/rc.config. My suspicion is that this is what can cause the 192-IP-address to be replaced by a 127-address for the host itself in /etc/hosts on reboot. I don't reboot often enough to feel like checking this out. But if you get an inexplicable inability to access the network, do verify the contents of this file.

    2. Quick-Start - Ssh

    Without a doubt this is the most complex of the Linux facilities described here but is the key to a couple of things that are extremely useful and it certainly should be set up, for both convenience and security.

    Prerequisites/definitions:

  • "local" is the machine whose keyboard you want to use
  • "remote" is the machine whose keyboard you don't want to use
  • "<user>" has been set up on both machines
  • "<host>" is the 3rd column of the entry for the "remote" host in /etc/hosts on the "local" machine
  • the entries in /etc/hosts.allow and /etc/hosts.deny on the "remote" machine permit use of sshd from the "local" machine
  • use of the mount command does mean playing disk-jockey between the two machines as appropriate.
  • the following is based on SuSE 6.3 (2.2.13) and 8.0 (2.4.18-4GB)

    This is what you have to do if you don't bother to set ssh up:

    Remote        Local          Comment
    
                  <logon as user also known to remote host>
                  ssh <host>
                                 warning:... SOMETHING NASTY
                  yes            accept it
                  <password>
    

    This is setup:

    Remote        Local          Comment
    
                  <l;ogon as user also known to remote host>
                  /usr/bin/ssh-keygen
                                 accept default: .ssh/identity
                                 no passphrase
                  mount /floppy
                  cp .ssh/identity.pub /floppy/
                  umount /floppy
    
    logon as <the same user>
    mkdir .ssh                   if necessary
    mount /floppy
    cp /floppy/identity.pub .ssh/authorized_keys
    cp /etc/ssh/ssh_host_key.pub /floppy/known_hosts
    umount /floppy
    
                  mount /floppy
                  cp /floppy/known_hosts .ssh/
                  umount /floppy
                  vi .ssh/known_hosts
                                 add <host> at start of line and
                                 remove root@<host> at end
    

    And this is what you have to do to logon after setting things up:

    Remote        Local          Comment
    
                  <logon as user also known to remote host>
                  ssh <host>
    

    Note that the host key is generated as part of system installation (with SuSE anyhow). And there can be differences in directory structure (SuSE's kernel 2.2 didn't have 'ssh' under 'etc'). Also note that this is just intended to get someone unfamiliar with ssh up and running. Do not blindly follow these steps if you have used ssh before! In particular most 'cp's certainly ought to be 'cat ... >>'. In the office at home I don't want a passphrase to begin work on a different machine, but you might.

    3. Quick-Start - Screen

    Although it has been mentioned in Linux Gazette several times and I actually did play with it briefly, the need for screen wasn't at all obvious to me. Given 6+ vt's and X running on at least two others with unlimited windows under whatever window manager one has running, it seemed just another level of complexity.

    The need became obvious as the network at home began taking shape. The rationale behind screen boils down to this: if you start sessions on remote machines under screen, they remain available to you as long as the remote machine isn't shut down -- independent of what happens on the communication link or your local machine. Like one of my PCMCIA Ethernet cards only works under Windows and I can thus only connect one of the notebooks to the PC at a time, if the AMD is also running Linux, as it usually is -- but no need to shut the 486 down, just eject the card, pop it into the AMD and screen keeps sessions active on the 486 for later access.

    To start screen:

        screen -R   restart session if available, otherwise start one
    

    Within screen (not at all apparent, it hides well) use Ctrl-a followed by:

        ?   help
        w   show list of windows
        n   switch to next window
        c   create new window
        d   disconnect
        A   assign title to window
    

    4. Quick-Start - File Transfer

    If you are using ssh, you can get rid of rsh -- and telnet and ftp as well for that matter. Here are a couple of alternatives that to me are more convenient than the lot.

    Netcat is a nifty little tool, analogous to cat. You start it to receive a file on one machine

        netcat -vv -l -p <port> > <file>
    

    and then tell the other machine what to send

        netcat -vv -w 10 <hpopst> <port> < <file>
    or
        tar -czvf - <directory> | netcat -vv -w 10 <host> <port>
    

    Use netstat and /etc/services to find an available port. The option "-w 10" tells the sender to terminate the connection after 10 seconds of inactivity and the option "-vv" lets you verify that the correct number of bytes was sent and received.

    While netcat holds promise for scripts to backup to a different machine as the network at home gradually takes shape, Midnight Commander has amazing facilities for the things one simply has to do by hand.

    If ssh has been set up properly, the following entered in the command line makes mc's active panel point to the same user on the "other" machine -- yes, "#sh" not "#ssh", unfortunately

        cd /#sh:<host>
    

    And if the other side has anonymous ftp running, the following should be fairly self-explanatory

        cd /#ftp:www.tldp.org/
    

    5. Quick-Start - NFS

    I played around with nfs and it works but unfortunately my notes are non-existant (basically just check-marks in the printout of the HOWTO). As I recall, besides installing the relevant package on client and server all that was needed was to edit /etc/exports on the PC (server) as follows:

    /home	192.168.0.100(rw,root_squash,sync,insecure)
    /tmp	192.168.0.100(rw,root_squash,sync,insecure)
    
    See also /etc/hosts.allow under 1. Ethernet, above.

    At installation SuSE has a number of options to be selected, many (all?) of which wind up in /etc/rc.config. Here is an excerpt of those relevant to nfs:

    START_PORTMAP="yes"
    NFS_SERVER="yes"
    USE_KERNEL_NFSD="yes"
    USE_KERNEL_NFSD_NUMBER="4"
    NFS_SERVER_UGID="no"
    REEXPORT_NFS="no"
    

    On the AMD (client) I added the following to /etc/fstab:

    192.168.0.101:/home	/Rhome	nfs	noauto,users,sync 0 0
    192.168.0.101:/tmp	/Rtmp	nfs	noauto,users,sync 0 0
    

    At that point the mount command works with /Rhome etc. just as well as /floppy or any other entry in fstab. One minor annoyance is that user ID's must be the same on all machines using nfs. This was not a problem for me because, when installing Linux, I create the few users in the same order.

    6. Quick-Start - Samba

    Given the difficulty of keeping track of what one is doing under Windows, particularly with false starts and things that turn out to be wrong or simply irrelevant, this needs to be taken with a large grain of salt. It assumes that the driver for the PCMCIA card has been installed, if relevant. And if the terminology is slightly obscure, that is due to my translating from the German versions of Windows.

    The following is what was necessary to enable logon to the PC from the AMD under Samba, i.e. from Windows 98 to Linux 2.2.13 (SuSE 6.3). With appropriate adjustments the same steps worked in the other direction, i.e. from Windows 95 to Linux 2.4.18-4GB (SuSE 8.0). But note these differences:

  • encrypt passwords: 98: yes; 95: no
  • path to smb.conf: 2.4: /etc/samba; 2.2: /etc
  • path to smbpasswd: 2.4: /etc/samba; 2.2: /etc
  • path to netlogon: 2.4: /usr/local/samba; 2.2: /var/lib/samba
    Part 1 - Linux
                                 edit /etc/smb.conf
    [global]
       workgroup = Lohgo
       encrypt passwords = yes
       smb passwd file = /etc/smbpasswd
       password level = 8
       username level = 8
       socket options = TCP_NODELAY
       domain logons = yes
       domain master = yes
       os level = 65
       preferred master = yes
       wins proxy = no
       wins support = yes
       hosts allow = 192.168.0.100 127.
    [homes]
       comment = Home Directories
       read only = no
       browseable = no
    [netlogon]
       comment = Network Logon Service
       path = /usr/local/samba/netlogon
       public = no
       writeable = no
       browseable = no
    [profiles]
       path = /home/%U/profile
       guest ok = yes
       browseable = no
                                 confirm validity, should show no errors
    testparm | less
                                 create user w/password
    smbpasswd -a web
                                 verify user enabled
    smbpasswd -e web
                                 start Samba
    smbd -D
    nmbd -D
                                 at this point from the client -- under
                                 Linux, not Windows -- the following
                                 should give a meaningful response
    smbclient -L LohgoPC
                                 and the following should give you
                                 ftp-like access
    smbclient //LohgoPC/web
    
    Part 2 - Windows98
    
    control panel | network | configuration
      add | client for microsoft network
      properties
        Windows NT-domain: Lohgo
        quick logon
      add | protocol | microsoft | tcp/ip
      properties | set IP-address
        IP-address:     192.168.000.100
        Subnet address: 255.255.255.000
      primary network logon: client for Microsoft network
    control panel | network | identification
      computer name: LohgoAMD
      workgroup:     Lohgo
      description:   ToshibaAMD.Lohgo
    control panel | passwords | user profiles
      users can customize: both
    reboot
                                 if using PCMCIA the following puts
                                 a symbol on the task bar with which
                                 the PCMCIA card can be removed
    <insert PCMCIA Ethernet card and wait for lights to settle down>
                                 the following works ONLY after TCP/IP
                                 has been set up, shows configuration
    start | run | winipcfg
                                 test connection from within a dos-box
    ping -n 5 192.100.0.101
                                 edit c:\windows\hosts.sam
    127.0.0.1       localhost
    192.168.0.101   lohgopc
                                 edit c:\windows\lmhosts.sam
    192.168.0.101   lohgopc
    

    At this point after booting, Windows will ask you to logon, which you can either do with a user known to Samba or cancel to use Windows without the network as before. Now, however, the pop-up window opened by Ctrl-Esc includes near the bottom a line to logoff that afterwards provides the same logon prompt as booting. And the entries in the task bar -- in the home directory, anyhow -- tell you who and where you are, as in

    "Explorer - <user> at <host>"

    where "<host>" is the 3rd column of the entry for the Linux machine in /etc/hosts on the Linux machine.

    Symbolic links work quite nicely. The following executed within the home directory of some user makes a directory -- even on a different partition -- on the Linux machine available to that user on the Windows machine:

    ln -s /dos/f/pictures pictures

    Due to a shortage of resources on the PC and the fact that I have no real use for Windows anyhow, I use the following scripts to start and stop the Samba daemons on the PC as needed:

    /root/samba-up:     #!/bin/bash
                        /usr/sbin/smbd    -d3    -l /tmp/sbd.log
                        /usr/sbin/nmbd -D -d0 -o -l /tmp/sbd.log
    
    /root/samba-down:   #!/bin/bash
                        kill -s SIGTERM $(ps aux | grep mbd \
                            | grep -v grep | awk '{print $2}')
    
    Once you have this working, it won't take you 5 minutes to set up a network printer. Uncomment (or add) the following to smb.conf:
    [printers]
       comment = All Printers
       browseable = no
       printable = yes
       public = no
       read only = yes
       create mode = 0700
       directory = /tmp
    
    And then spend some time with the archaic data entry system on the Windows machine:
    control panel | printer | new printer
      network printer | search
        network environment | Pc
          hpdj-a4-raw
        manufacturer: HP
        printer:      HP OfficeJet
    
    Shut down and re-start Samba and you're in business.

    7. Quick-Start - PCMCIA

    To be honest I have no idea whether this is generally applicable or is specific to SuSE (8.0). And it was only the 2.4 kernel that had problems with PCMCIA, not 2.2 strangely enough. Also, it has nothing to do with networking per se. But if you're going to connect a notebook to your network, you'll probably have to confront the alphabet monster. And a PCMCIA Ethernet card makes a delightful docking station.

    Omitting many details, I initially failed to note an inconsistency with references to irq 5 and 10 that later led to tons of error messages. But this was due to having inserted the PCMCIA card before starting the installation of Linux.

    In my case at least, by not inserting the PCMCIA card before starting installation, there was a reference to only one irq which led to my doing the following.

    After initial boot in /etc/sysconfig/pcmcia add

    	PCMCIA_PCIC="i82365"
    	PCMCIA_PCIC_OPTS="irq_list=10"
    
    and then run /sbin/SuSEconfig and reboot.

    However, installing the PCMCIA software before doing this causes the notebook to hang irrevocably on boot. The only way to boot is by giving LILO the parameter NOPCMCIA=yes. Instead, I installed the PCMCIA software after SuSEconfig and before reboot.

    After that, inserting the PCMCIA card produces a couple of beeps and it works as advertised. Since this is my first personal experience with Ethernet, I can't comment on alternatives but the D-Link DFE-650TXD PCMCIA Ethernet card works well, Linux-to-Linux anyhow (a couple of hours sending stuff over the network before risking the wretched "Recovery CD-Rom" to make Windows 98 work again) and has lots of LEDs to let you know what is going on.

    Here is the output from /sbin/cardctl config and ident.

    CONFIG:

    Socket 0:
      not configured
    Socket 1:
      Vcc 5.0V  Vpp1 0.0V  Vpp2 0.0V
      interface type is "memory and I/O"
      irq 10 [exclusive] [level]
      function 0:
        config base 0x0400
          option 0x60 status 0x00 copy 0x00
        io 0x0300-0x031f [auto]
    

    IDENT:

    Socket 0:
      no product info available
    Socket 1:
      product info: "D-Link", "DFE-650TXD", "Fast Ethernet", "Rev. A1"
      manfid: 0x0149, 0x0230
      function: 6 (network)
    

    8. Further Reading

    See also the following articles in the issue of Linux Gazette indicated:
    36: Introducing Samba by John Blair
    39: Expanding Your Home Network by J.C. Pollman
    44: DNS for the Home Network by J.C. Pollman and Bill Mote
    47: Backup for the Home Network by J.C. Pollman and Bill Mote
    48: SAMBA, Win95, NT and HP Jetdirect by Eugene Blanchard
    50: Sharing your Home by J.C. Pollman and Bill Mote
    57: Making a Simple Linux Network Including Windows 9x by Juraj Sipos
    61: Using ssh by Matteo Dell'Omodarme
    64: ssh suite: sftp, scp and ssh-agent by Matteo Dell'Omodarme
    67: Using ssh-agent for SSH1 and OpenSSH by Jose Nazario
    74: Play with the Lovely Netcat by zhaoway

    The Linux Gazette Answer Gang Knowledge Base under Network Configuration has numerous relevant tidbits among which Routing and Subnetting 101 is mandatory reading.

    And the Linux Focus Index by Subject under System Administration has several articles well worth looking at, e.g.:
    Replacing a Windows/NT/2000 server using Linux and Samba by Sebastian Sasias
    Through the Tunnel by Georges Tarbouriech
    Samba Configuration by Eric Seigne
    Network File System (NFS) by Frederic Raynal
    Home Networking, glossary and overview by Guido Socher

    9. A Future without Windows?

    Coming from pre-TRS-80 days, I've used DOS, various versions of Windows, at least 3 releases of OS/2, Coherent, and now 5 releases of SuSE Linux over at least 5 years. I am convinced that anyone in a position to "compare and contrast" would agree that at best Windows is unstable junk. One of my goals for a quite some time had been to gain complete independence from Windows.

    But consider: our ISDN phone system has an RS-232 connector with which it can be programmed via -- yeah, you got it. One of the printers is USB for the notebook and guess whose drivers are available. Our digital camera uses smart media and the USB smart media reader... Oh, well, you get the picture.

    I've only had Samba working for a week and actually hadn't even intended to check it out but everything else worked so well that it seemed worth a try. And it's so slick that I question whether it would really be worth my effort to try to find replacement drivers for this legacy stuff. How many hours, how many experiments, what guarantee of success? Doesn't it make more sense to boot the notebook under the "silly system" (I hope Monty Python put that under GPL) and use the Samba connection to the rest of the network? At least until the last Windows-legacy device eats it.

     

    [BIO] Edgar is a consultant in the Cologne/Bonn area in Germany. His day job involves helping a customer with payroll, maintaining ancient IBM Assembler programs, some occasional COBOL, and otherwise using QMF, PL/1 and DB/2 under MVS.


    Copyright © 2003, Edgar Howell. Copying license http://www.linuxgazette.com/copying.html
    Published in Issue 87 of Linux Gazette, February 2003

    LINUX GAZETTE
    ...making Linux just a little more fun!
    A Keep-Alive Program You Can Run Anywhere
    By Graham Jenkins

    The Poodle and the Labrador

    You are halfway through typing a new program into a remote machine connected over a dial-up line, and you get called to intervene in a fight between your partner's miniature poodle and the neighbour's ugly yellow Labrador. When you get back, your connection has timed-out.

    Is this something that has happened to you? Or perhaps you had to drag your kids away from a particularly offensive episode of Jerry Springer, then found you had to stick around to make sure they didn't come back?

    The Blonde Solution

    The traditional procedure for maintaining activity on your line during an interruption of the type outlined above was to use a 'fortune' program in a small loop so that a random saying got written to your screen every half-minute. This could present some real problems if a person with fair hair looked at your screen and saw something like:

     Q:  How do you make a blonde's eyes light up?
     A:  Shine a flashlight in her ear.
    

    You could of course used a '-i' or equivalent parameter restricting 'fortune' to generating inoffensive material like:

      Computing Definition
      Chaining - A method of attaching programmers to desk, to speed up output.
    

    The more recent incarnations of the 'fortune' program offer their users a more specific set of options. You can chose between offending those who are Irish, gay or intellectually retarded!

    For The Terminally-Challenged

    If you are just using a browser to read your Hotmail messages, you probably won't want to open a terminal window just so you can run a 'fortune' program. If you are using an X11-compliant window-manager, you could start a clock program with something like:

     xclock -digital -update 1 &

    But that's not going to work on your your vintage Windows 95 machine unless you also happen to be running something like PC-Xware.

    The 'KeepAlive.java' program listed here is designed to work anywhere. It's written in Java 1.1 so that even the 'jview' virtual machine on your basic Microsoft machine can handle it. It doesn't rely on finding a 'fortune', 'xclock' or other program on a remote machine. And you don't have to change anything when you connect via a different ISP.

    Finding A Partner

    But you have to send traffic somewhere, right? So how do you find a partner machine which will receive your traffic? If we were writing this program as a shell script, we might work out where our gateway was, and ping it at appropriate intervals. That's not so easy to do in a Java program which might run on any number of platforms. And in any case, it would be nice if we could send traffic somewhere beyond the gateway machine.

    In almost every sort of networking arrangement, the participating machines have knowledge of one or more nameserver addresses. So what we can do from our Java program is make periodic requests to those nameservers. We need to ensure that any hosts whose addresses we request cannot be found locally in a hosts table. And we need to also ensure that the answers to our nameserver requests are not cached locally. If you take a look now at the program, you will see that the names of the hosts whose addresses we are requesting are generated by examining the clock-time in milliseconds at the time of each request. This results in names like A1040689223909, A1040689229448, etc.

    That's really all we need to do. But it's nice to be able to see something happening. So our program defines a 'MessageFrame' class which displays two colored buttons in a GUI window. The colors of these are changed at each iteration. We also set the title on the GUI window, and change it at each iteration - so we can still see something happening when the window is minimized. And we set up a listener to detect 'window closing' events and perform a graceful shutdown.

    Getting It Together

    Here's the program. You need to compile it with a command like:

     javac KeepAlive.java
    This will generate three 'class' files which contain code which can be executed on a java virtual machine. So you can copy those class files to a directory on another machine, then execute it with a command like:
     java KeepAlive
    To use the Microsoft virtual machine on a Windows box, use:
     java KeepAlive

    /* @(#) KeepAlive.java  Trivial keep-alive program. Tries at 5-second intervals
     *                      to find addresses for hosts with generated names. This
     *                      ensures that messages are sent to nameserver(s).
     *                      Copyright (c) 2002 Graham Jenkins <grahjenk@au1.ibm.com>
     *                      All rights reserved. Version 1.06, August 15, 2002.
     */
    import java.io.*;
    import java.net.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.util.Date;
    public class KeepAlive {
      public static void main(String[] args) {
        MessageFrame f=new MessageFrame();  // Change button colours each iteration.
        int flag=0;                         // Also switch frame-title so we can see
        while ( true ) {                    // activity whilst iconified.
          f.statusMess(Color.red,Color.red); f.setTitle("==X==");
          try {InetAddress addr=InetAddress.getByName("A"+(new Date()).getTime());}
          catch (UnknownHostException ioe) {}
          if(flag==0) {f.statusMess(Color.yellow,Color.green); f.setTitle("1.06");}
          else {f.statusMess(Color.green,Color.yellow); f.setTitle("KeepAlive");}
          flag=1-flag;
          try {Thread.sleep(5000L);} catch (InterruptedException e) {}
        }
      }
    }
    
    class MessageFrame extends Frame implements ActionListener {
      private Button b1, b2;                // Displays two coloured buttons.
      public MessageFrame() {
        Panel p=new Panel(); p.setLayout(new FlowLayout());
        b1=new Button() ; b2=new Button(); p.add(b1); p.add(b2);
        this.add("South",p); this.setSize(150,50); this.show();
        this.addWindowListener(new WindowAdapter() {
          public void windowClosing(WindowEvent e) { System.exit(0); }
        });
      }
      public void statusMess(Color left, Color right) {
        b1.setBackground(left); b2.setBackground(right);
      }
      public void actionPerformed(ActionEvent e) {}
    }
    

    If you have Java 1.1 or later, and no requirement to use the Microsoft virtual machine, you can assemble the class files into a single 'jar' file, then execute it using the '-jar' option thus:

      echo "Main-Class: KeepAlive\015" >/tmp/MyManifest
      jar cmf /tmp/MyManifest /tmp/KeepAlive.jar *.class
      
      java -jar /tmp/KeepAlive.jar
    

    If You Don't Have It

    If your machine doesn't have Java, you can get it from Sun MicroSystems. And if you need to know more about network programming with Java, you could take a look at "Java Network Programming and Distributed Computing" by David Reilly and Michael Reilly.

     

    [BIO] Graham is a Unix Specialist at IBM Global Services, Australia. He lives in Melbourne and has built and managed many flavors of proprietary and open systems on several hardware platforms.


    Copyright © 2003, Graham Jenkins. Copying license http://www.linuxgazette.com/copying.html
    Published in Issue 87 of Linux Gazette, February 2003

    LINUX GAZETTE
    ...making Linux just a little more fun!
    Linux-Based Voice Recognition
    By Janine M Lodato

    Let's look at Linux-based voice recognition software from the perspective of China. It would behoove Linux computer makers anyway to begin manufacturing their computers in China, because China offers a low-cost method of manufacturing and provides them with a large market for their hardware which can also be exported to other important markets around the world.

    Linux computers have the capacity to accommodate voice recognition systems, such as IBM ViaVoice. This is especially advantageous to Chinese speakers because both Mandarin and Cantonese are very complex in the written form, so documents could be more easily produced through voice recognition software running on a Linux platform. Using a keyboard is next to impossible for Chinese languages because so many characters are involved in typing a document.

    Other languages will also benefit from using voice recognition software for purposes of speed. Hands-busy, eyes-busy professionals can benefit greatly from voice recognition so they don't have to use a mouse and keyboard to document their findings. Voice-activated, easily-used telephone systems will benefit all walks of life. Anyone driving a car will find voice recognition a much more effective way of manipulating a vehicle and communicating from the vehicle.

    The health-care market alone may justify the Linux based voice recognition project. Health-care services are the largest expense of the Group of Ten nations, and it is the fastest growing sector as well. Health-care workers would benefit from using their voices to document describing the treatments of patients. Voice recognition allows them a hands-free environment in which to analyze, treat and write about particular cases easily and quickly.

    Electronically connected medical devices via wireless LAN can benefit:

    In this life sciences field, the simplicity, reliability and low cost of Linux for servers, tablets, embedded devices and desktops is paramount. Only about 10% of the documents in the health-care field in the USA are produced electronically due to the cumbersome and unreliable nature of the Windows environment. 30% of the cost of health-care is a direct result of manual creation of the documents and many of the malpractice cases are also due to the imprecision of transcriptions of manually scribbled medical records and directives, as anybody who looks at a prescription can attest.

    Obviously, the market for these new technologies exists. What remains is for a hungry company with aggressive sales people to tap into that market. Once those sales people get the technology distributed, the needs of many will be met and a new mass market will open up that Microsoft isn't filling: assistive technology (AT). Actually, the field already exists but needs to be expanded to include both physically disabled and functionally disabled.

    Yes, voice recognition offers great promise for the future. However, it isn't perfect and needs to be improved. One improvement could use lip reading to bolster its accuracy. Still another is multi-tonal voice input. Another is directional microphones. Every generation of voice recognition software will improve as the hardware for Linux gets bigger and stronger.

     

    [BIO]


    Copyright © 2003, Janine M Lodato. Copying license http://www.linuxgazette.com/copying.html
    Published in Issue 87 of Linux Gazette, February 2003

    LINUX GAZETTE
    ...making Linux just a little more fun!
    Perl One-Liner of the Month: The Adventure of the Arbitrary Archives
    By Ben Okopnik

    Spring was in full bloom, and Woomert Foonly was enjoying another perfect day. It had featured a trivially easy configuration of a 1,000-node Linux cluster, and had been brought to an acme by lunching on Moroccan b'stila with just a touch of ras el hanout curry and a fruited couscous on the side, complemented by a dessert of sweet rice with cinnamon. All was at peace... until Frink Ooblick burst in, supporting - almost carrying - a man who seemed to be in the last extremity of shock. Frink helped him to the couch, then dropped into the easy chair, clearly exhausted by his effort.

     -- "Woomert, it's simply scandalous. This is Resolv Dot Conf, a humble... erm, well, a sysadmin, anyway. Recently, he was cruelly forced to install some kind of a legacy OS on his manager's computer - can you imagine? - and now, he's being asked to do something that sounds nearly impossible, although I could only get scant details. He had heard of your reputation (who hasn't, these days?), and was coming to see if you could help him, but collapsed in the street just outside your door due to the residual shock and a severe Jolt Cola deficiency. As to the problem... well, I'll let him tell you."

    Woomert had been tending to their guest while listening, with the result that the latter now looked almost normal. Indeed, Woomert's "sysadmin-grade coffee" was well-known among the cognoscenti for its restorative powers, although the exact recipe (it was thought to have Espresso Alexander and coffee ice cream somewhere in its ancestry, but the various theories diverged widely after that point) remained a deep secret.

    Now, though, the famous detective's eyes sharpened to that look of concentration he habitually wore while working.

     -- "Please state your problem clearly and concisely."

    The quickly recovering sysadmin shook his head mournfully.

     -- "Well, Mr. Foonly... you see, what I have is a script that processes the data submitted to us by our satellite offices. The thing is, it all comes in various forms: we're a health insurance data processor, and every company's format is different. Not only that, but the way everyone submits the data is different: some just send us a plain data file, others use 'gzip', or 'compress', or 'bzip', or 'rar', or even 'tar' and 'compress' (or 'gzip'), and others - fortunately, all of those are just plain data - hand us a live data stream out of their proprietary applications. Our programmers handled the various format conversions as soon as they got the specs, but this arbitrary compression problem was left up to me, and it's got me up a tree!"

    He stopped to take a deep breath and another gulp of Woomert's coffee, which seemed to revive him further, although he still sat hunched over, his forehead resting on his hand.

    "Anyway, at this point, making it all work still requires human intervention; we've got two people doing nothing but sorting and decompressing the files, all day long. If it wasn't for that, the whole system could be completely automated... and of course, management keeps at me: 'Why isn't it fixed yet? Aren't you computer people supposed to...' and so on."

    When he finally sat up and looked at Woomert, his jaw was firmly set. He was a man clearly resigned to his fate, no matter how horrible.

    "Be honest with me, Mr. Foonly. Is there a possibility of a solution, or am I finished? I know The Mantra [1], of course, but I'd like to go on if possible; my users need me, and I know of The Dark Powers that slaver to descend upon their innocent souls without a sysadmin to protect them."

    Woomert nodded, recognizing the weary old warrior's words as completely true; he, too, had encountered and battled The Dark Ones, creatures that would completely unhinge the minds of the users if they were freed for even a moment, and knew of the valiant SysAdmin's Guild (http://sage.org) which had sworn to protect the innocent (even though it was often protection from themselves, via the application of the mystic and holy LART [2]).

     -- "Resolv, I'm very happy to say that there is indeed a solution to the problem. I'm sure that you've done your research on the available tools, and have heard of 'atool', an archive manager by Oskar Liljeblad..."

    At Resolv's nod, he went on.

    "All right; then you also know that it will handle all of the above archive formats and more. Despite the fact that it's written in Perl, we're not going to use any of its code in your script - that would be a wasteful duplication of effort. Instead, we're simply going to use 'acat', one of 'atool's utilities, as an external filter - a conditional one. All we have to do is insert it right at the beginning of your script, like so:


    #!/usr/bin/perl -w # Created by Resolv Dot Conf on Pungenday, Chaos 43, 3166 YOLD @ARGV = map { /\.(gz|tgz|zip|bz2|rar|Z)$/ ? "acat $_ '*' 2>/dev/null|" : $_ } @ARGV; # Rest of script follows
    ...
    
    
    "Perl will take care of the appropriate magic - and that will take care of the problem."

    The sysadmin was on his feet in a moment, fervently shaking Woomert's hand.

     -- "Mr. Foonly, I don't know how to thank you. You've saved... well, I won't speak of that, but I want you to know that you've always got a friend wherever I happen to be. Wait until they see this!... Uh, just to make sure I understand - what is it? How does it work?"

    Woomert glanced over at Frink, who also seemed to be on the edge of his seat, eager for the explanation.

     -- "What do you think, Frink - can you handle this one? I've only used one function and one operator; the rest of it happened automagically, simply because of the way that Perl deals with files on the command line."

    Frink turned a little pink, and chewed his thumb as he always did when he was nervous.

     -- "Well, Woomert... I know you told me to study the 'map' function, but it was pretty deep; I got lost early on, and then there was this new movie out..."

    Woomert smiled and shook his head.

     -- "All right, then. 'map', as per the info from 'perldoc -f map', evaluates the specified expression or block of expressions for each element of a list - sort of like a 'for' loop, but much shorter and more convenient in many cases. I also used the ternary conditional operator ('?:') which works somewhat like an "if-then-else" construct:


    # Ternary conditional op - sets $a to 5 if $b is true, to 10 otherwise $a = $b ? 5 : 10; # "if-then-else" construct - same action if ( $b ){ $a = 5; } else { $a = 10; }
    "Both of the above do the same thing, but again, the first method is shorter and often more convenient. Examining the script one step at a time, what I have done is test each of the elements in @ARGV, which initially contains everything on the command line that follows the script name, against the following regular expression:

    /\.(gz|tgz|zip|bz2|rar|Z)$/

    This will match any filename that ends in a period (a literal dot) followed by any of the specified extensions.

    Now, if the filename doesn't match the regex, the ternary operator returns the part after the colon, '$_' - which simply contains the original filename. Perl then processes the filename as it normally does the ones contained in @ARGV: it opens a filehandle to that file and makes its contents available within the script. In fact, there are a number of ways to access the data once that's done; read up on the diamond operator ('<>') , the STDIN filehandle, and the ARGV filehandle (note the similarity and the difference, Frink!) for information on some of the many available methods of doing file I/O in Perl."

    "On the other hand, if the current element does match, the ternary