LINUX GAZETTE

November 2000, Issue 59       Published by Linux Journal

Front Page  |  Back Issues  |  FAQ  |  Mirrors  |  Search

Visit Our Sponsors:

Linux NetworX
Penguin Computing
Red Hat
Tuxtops
eLinux.com
LinuxCare
LinuxMall
VMware

Table of Contents:

-------------------------------------------------------------

Linux Gazette Staff and The Answer Gang

Editor: Michael Orr
Technical Editor: Heather Stern
Senior Contributing Editor: Jim Dennis
Contributing Editors: Michael "Alex" Williams, Don Marti, Ben Okopnik

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,

Copyright © 1996-2000 Specialized Systems Consultants, Inc.

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


 The Mailbag!

Write the Gazette at

Contents:


Help Wanted -- Article Ideas

New submission address!

Send tech-support questions, answers and article ideas to The Answer Gang <>. Other mail (including questions or comments about the Gazette itself) should go to <>. All material sent to either of these addresses will be considered for publication in the next issue. Please send answers to the original querent too, so that s/he can get the answer without waiting for the next issue.

Unanswered questions appear here. Questions with answers--or answers only--appear in The Answer Gang, 2-Cent Tips, or here, depending on their content.

Before asking a question, please check the Linux Gazette FAQ to see if it has been answered there.


 Wed, 11 Oct 2000 12:50:21 +0200
From: Jean-Paul Duyx <>
Subject: Vines Client for linux

On my notebook I run linux, but at my work the network is Banyan Vines. Searching the internet, I could not find any linux client for Vines. Perhaps I didn't look good enough or mayby there is no such thing.I think it would be nice to read something about that. The only thing that i found was a private project to write a client for linux, but that site hasn't been updated for more than a year. it is http://freespace.virgin.net/paul.grayson/.


 Sun, 29 Oct 2000 14:33:05 +35824
From: Jon Claerbout <>
Subject: Income tax software

Every year I need to struggle with Windoze again in order to work out my income taxes. I heard that there were some web-based systems, but when I dug into it, it turned out that it needed to work with an adobe plugin that didn't work for me.

Hope you can dig up some better solutions for us Linux folk?

--
   o   ~
 _-'\_  ~
(*)<(*)  ~


 Wed, 18 Oct 2000 15:06:53 -0500
From: Matt <>
Subject: Slackware RAID1 problem

HEELP! hehe I have been trying to find a chatroom (or ICQ or something..just aas long as its live and they are available alot.) with some people (or better yet, one kind guru with lots of free time) in it that can help me with a slackware problem I am having..(specifically installing and configuring a RAID1 system). I am VERY new to linux ..have only compiled one kernel in my lifetime and don't truly understand what it did or why..hehe

All I need is someone to kinda walk me through step-by-step commands starting with CFDISK and going all the way to the end..a bootable raid1 system. (I can learn how and why later..but am on a bit of a time schedule at the moment.)

If you know of any places I can go or people to contact, please let me know as soon as you can.

I already have about 90 pages of printed material and have tried most of it, but its not working. dunno, maybe the the instructions I have (have about 10 different sets form different websites) are missing something..

Anyway, I really appreciate any help you might be able to offer..


 Fri, 20 Oct 2000 18:06:30 -0200
From: César A. K. Grossmann <>
Subject: Windows NT Event Log on a Linux Box

I need to consolidate the event log from several machines and produce some reports and even alerts from the data collected. I was thinking that using the Linux tools (cron jobs, scripting languages, and DBMS) could be a good idea, but cannot find how to do this (read the event log of a Windows box from a Linux box).

The best support I can find was the article http://www.securityfocus.com/frames/?focus=microsoft&content=/focus/microsoft/nt/log1.html. In it I can find:

"... The Event Log is accessible to remote machines via Remote Procedure Calls (RPC) via applications that utilize the Event Log API, such as the Event Viewer."

So I think it's possible to have some application that uses RPC (as SAMBA does) to connect to the remote Windows box and get a copy of the event log.

Can you help me? The Windows NT boxes are in an NT Domain, and the Linux box does have the SAMBA installed and running.

TIA

P.S.: sorry the bad english, I'm a brazilian penguinista.


Gazette Matters


 Fri, 6 Oct 2000 03:24:56 +0300
From: Peter Georgiev <>
Subject: Linux Gazette by e-mail

Here is my 0.02USD tip for all those readers who'd like to receive the Gazette by e-mail.

Actually it can be done quite easy. All you need to do is send an e-mail message to bitftp@pucc.princeton.edu with message body:

open ftp.ssc.com
chdir /pub/lg
binary
get lg-issueXX.tar.gz
quit

and you will receive back an e-mail containing a uuencoded copy of the requested file. There is plenty of uudecoding software so I will not elaborate further.

If you need more detailed HOWTO on the matter and a list of other ftp-mail servers send an e-mail message to mail-server@rtfm.mit.edu with message body:

send usenet/news.answers/internet-services/access-via-email

or mailto mailbase@mailbase.ac.uk with message body:

send lis-iis e-access-inet.txt

or visit http://www.activesol.com/www/drbobfram.htm

There you will also find info on various internet services available via e-mail.

Your Editor comments:

This is certainly easy since it uses standard FTP commands. Remember to get lg_base.tar.gz too the first time, and lg-base-new.tar.gz each month. However, note that the file sizes are large: recent issues have been 750KB - 2.1 MB, and lg-base is currently 837 KB. Some mail gateways reject messages which are over a certain size, frequently one megabyte. If the files are too large for your gateway, the following suggestion may be more suitable for you.

Ralbright <> recommends:

Send an email as noted here to any of the numerous www4 servers.

From: Your  Mail Address Here   
To:  www4mail@ftp.uni-stuttgart.de
Subject: leave blank nothing here

GETSIZE 50000
XUUENCODE 
ftp://ftp.ssc.com/pub/lg/lg-issue58_tar_gz.

this results in 24 msg that are numbered part 01 of 24 and uuencode. I use uudeview to decode the 24 parts. I then rename each part to aa----ax. 24 parts; then I combine the parts exactly like this. must be this way!!

copy /b aa+ab+ac+ad and finally ax
then press return on the line containing the copy instruction It will ask if you want aa to be overwrote. answer yes and all will now be in aa now re name aa to issue58.tgz and proceed with untgz

I have acquired all 58 issues this way through email only. Hope you can make sense out of this.

Your Editor comments:

That copy command is for DOS/Windows sysems. (No, it's not a crime to read LG on a Windows machine.) On Linux/UNIX, you'd do this instead:
cat aa ab ac ad ... ax >issue58.tgz
This creates issue58.tgz, containing all the other files joined together one after the other. I don't see why you need to rename the files to aa, ab, etc., since you're just going to use them once and then delete them. Why not just use whatever names uudecode gives you?

Ralbright <> continues:

E-mail, like everything else, sometimes goes off into never-never land. If, after getting the parts of LG, you discover that some parts are missing, send the following to the www4 server:
GETPART put missing part number here
GETSIZE 50000
XUUENCODE 
ftp://ftp.ssc.com/pub/lg/lg-issue58_tar_gz.


 Wed, 11 Oct 2000 09:09:50 -0700
From: Linux Gazette <>
Subject: Translations

Thanks to everybody who responded to last month's request for translators from other languages to English. Currently we have volunteers for:

ROMANCE
Spanish (3), Portuguese (2), French.
GERMANIC
German, Dutch, Norwegian, Danish, Swedish
SLAVIC
Russian (from Russian only)

We don't get a lot of mail in non-English languages, but we have gotten an article in French and one in Spanish, and TAG/Mailbag items in Italian, Spanish and Danish. I just want to have translators ready in case we need them someday.

Those who wish to translate from English into their own language should contact the foreign-language version of interest, or start your own if there isn't one. As always, see the mirrors page.

Note to those who work on LG's foreign-language editions:

There is a new mailing list, lg-translators, where I send advance copies of articles after they have been formatted. This will give you a chance to get your hands on the articles a few days early to lessen the delay between when the English version appears and when your translation is ready.

To subscribe to this list, send a message to with "subscribe lg-translators" in the body. This is a moderated list: only articles, article revisions, and announcements from LG to the foreign editions will be sent.

Musings on the Spanish LG:

The Spanish LG (La Gazeta de Linux) could become a significant force in the next several months. I have been getting inquiries about it every month, moreso than I've received for the other languages. The Spanish-speaking world in particular seems to have a lot of unmet demand for a Gazette-like publication. I suspect that's because of the economic situation in Latin America (an affordable OS is more of a necessity than in Europe), because people are less likely to grow up knowing English, and because there are a whole *lot* of Spanish speakers.

The demand for Spanish LG reminds me of the demand for an affordable Macintosh that was built up during the late 80s. When Apple finally released the MacClassic in 1990, I for one immediately went down and bought one, as did a lot of other people. Apple was forced to switch to a 3-shift, 24-hour production line to churn them out, just to meet the demand.

Note: all non-English versions of Linux Gazette are done as independent projects without LG sponsorship. LG does not endorse specific translations as being official. However, we gratefully acknowledge all translations we know about on our mirrors page.


Thanks

Thu, 26 Oct 2000 13:29:57 -0400
From: Bill Cox <>

I was doing a search of your achives and found exactly what I needed. Thanks for being there.


 Mon, 16 Oct 2000 19:41:46 -0500 (CDT)
From: Jason Englander <>
Subject: "@" sign confuses LG mirrors

I have no idea when this started because I auto-mirror /pub/lg/www_root and only usually look at it when a new issue comes out... but here's what I get with ftp and with lftp:

-rw-rw-r--   1 698    @ 105    @    30147 Sep 26 11:39 lg_faq.html
-rw-rw-r--   1 698    @ 105    @    11763 Sep 30 15:38 lg_frontpage.html
-rw-rw-r--   1 698    @ 105    @   162592 Sep 30 15:45 lg_index.html
-rw-rw-r--   1 698    @ 105    @   134353 Nov 17  1999 lg_index_tag.html
-rw-r--r--   1 698    @ 218    @     1475 Jul 28  2000 lg_index_tag0.html
-rw-rw-r--   1 698    @ 105    @     2379 Mar  1  1999 lg_statement.html
-rw-rw-r--   1 698    @ 105    @    86857 Sep 30 15:37 mirrors.html
-rw-rw-r--   1 698    @ 105    @      102 Nov  3  1999 robots.txt
-rw-rw-r--   1 698    @ 105    @     8866 Aug 31 17:44 ssc.copying.html
drwxrwxr-x   2 698    @ 105    @     1024 Feb 28  2000 test
-rw-rw-r--   1 698    @ 105    @     3021 Mar 30  2000 search.html

The two @ that are in there seem to be botching up "mget *.html" type requests and mirroring (I use lftp's mirror), making the "search.html" file become "30 2000 search.html" (the 30 and the 2000 coming from the date).

Anyone else report this? I'm going to grab the .tar.gz files now and shut off the nightly updates.

[Nobody else has reported this. We get the "@" symbols on the FTP listings too. However, LG has an rsync server. Rsync is reliable and uses less bandwidth than FTP mirroring. Jason switched to rsync and said it's working fine. Hints for setting up an rsync client for LG are here. -Mike.]


This page written and maintained by the Editors of the Linux Gazette. Copyright © 2000, . Copying license http://www.linuxgazette.com/copying.html
Published in Issue 59 of Linux Gazette, November 2000

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


News Bytes

Contents:

Selected and formatted by
Late additions added by the Editor

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.


November 2000 Linux Journal

The November issue of Linux Journal is on newsstands now. This issue focuses on Hardware. Click here to view the table of contents, or here to subscribe.

All articles through December 1999 are available for public reading at http://www.linuxjournal.com/lj-issues/mags.html. Recent articles are available on-line for subscribers only at http://interactive.linuxjournal.com/. 


Distro News


Caldera

Oct. 3, 2000: Caldera Systems has announced that its Linux management solution, formerly known as Cosmos, is entering open beta. This solution will enable administrators to manage the networked systems of any Linux distribution. Caldera aims to allow network administrators to use policies and profiles to manage a half dozen or thousands of Linux systems, without having to individually manage each.

The Beta is available for download from http://www.calderasystems.com/beta/.


Conectiva

Duke of URL review.


Lute

Oct. 6th, 2000: LuteLinux.com. has announced the addition of ShowMeLinux. to their family of services. LuteLinux will host future issues and will take over as publisher of ShowMeLinux, an on-line magazine 'Bringing news to Business Professionals and Enthusiasts alike.' Contributions to ShowMeLinux are welcome, and should be directed to: . 

In a further initiative LinuxFreeSupport will be authoring ShowMeLinux's 'Support Line'. The Support Line is a column offering answers to questions posed by readers regarding such topics as installations, networking, administration, applications, and the desktop.


Mandrake

Linux-Mandrake 7.2 is now available for download. It includes KDE 2.0, GNOME 1.2, PowerPak's ViaVoice voice-recognition software, the CUPS printing system, laptop profile and synchronization utilities, KOffice, ReiserFS (a journalling filesystem), Supermount (transparent access to removable media) and MandrakeUpdate (free automatic online upgrades of system software). Linux-Mandrake 7.2 speaks several dozen languages and will soon be offered in three commercial versions for home and business users.


Red Flag

Oct. 18, 2000: Red Flag Linux is officially launched by Sun Wah Linux Ltd. Included in this launch are Red Flag Linux Server 2.0 and Red Flag E-business Start Kit 1.0. The former, run on 32-bit, 64-bit or higher-end machines, optimizes server hardware performance. This product can improve the efficiency of office work. It provides a complete business Internet/Intranet connection solution, an ISP/ICP solution which can control website traffic and InterScan VirusWall network anti-virus software. All of these functions combine for the best platform for network business. Targeting the growing m-commerce market, Sun Wah Linux and EdgeMatrix have also embarked on a bundling program with WAPgate, residing on Red Flag Linux platform.

Red Flag Linux Server 2.0 was developed strictly in accordance with international L118NUX standards and General Public License regulations.

Red Flag E-business Start Kit 1.0 is an integrated solution for businesses. It consists of six components: Red Flag Linux Server 2.0; e-Office, for users to easily transfer internal data via the Internet; e-Shop, where users can easily create their own e-shops through the Internet; Web Mail, providing an inter-platform e-mail system manager designed for businesses; Web BBS, for customers to offer feedback and suggestions on the message board; and Ez2min, a remote monitoring software for the Linux system operated through the browser.

Mr. Alex Banh, Deputy Chief Executive Officer of SW Linux has expressed a commitment to developing international markets for homegrown Chinese software and to promoting Linux training in local Chinese institutes.


Rock

ROCK Linux 1.3.11 has been released.


SuSE

SuSE Linux 7.0 Personal Edition equips small office and home users with all the resources needed to install, configure and operate a Linux system and comes on 3 CDs. This package includes over 600 programs including StarOffice 5.2, Netscape and VMWare plus three easy-read manuals. The Personal Edition is retailing at R410.00.

The Professional Edition of SuSE 7.0 contains a collection of power tools including VMWare Workstation for Linux, Emhydra by Lutris Technologies, PostGreSQL. Suse Linux 7.0 Professional is supplied on 6 CDs and four manuals. 90 days of installation and basic configuration support by phone, fax or email are also included in the Professional version, which is available from OS/2 Express for R615. Contact OS/2 Express. We are advised that a limited number of evaluation packages are available. 


News in General


Upcoming conferences & events

Courtesy Linux Journal's Events page.

Linux Business Expo
(co-located with COMDEX event)
November 13-17, 2000
Las Vegas, NV
www.key3media.com/linuxbizexpo
USENIX Winter - LISA 2000
December 3-8, 2000
New Orleans, LA
www.usenix.org
Pluto Meeting 2000
December 9-11, 2000
Terni, Italy
meeting.pluto.linux.it
LinuxWorld Conference & Expo
January 30 - February 2, 2001
New York, NY
www.linuxworldexpo.com
ISPCON
February 5-8, 2001
Toronto, Canada
events.internet.com
Internet World Spring
March 12-16, 2001
Los Angeles, CA
events.internet.com
Game Developers Conference
March 20-24, 2001
San Jose, CA
www.cgdc.com
CeBit
March 22-28, 2001
Hannover, Germany
www.cebit.de
Linux Business Expo
April 2-5, 2001
Chicago, IL
www.linuxbusinessexpo.com
Strictly e-Business Solutions Expo
May 23-24, 2001
Location unknown at present
www.stricltyebusinessexpo.com
USENIX Annual Technical Conference
June 25-30, 2001
Boston, MA
www.usenix.org
PC Expo
June 26-29, 2001
New York, NY
www.pcexpo.com
Internet World
July 10-12, 2001
Chicago, IL
events.internet.com
O'Reilly Open Source Convention
July 23-26, 2001
San Diego, CA
conferences.oreilly.com
LinuxWorld Conference & Expo
August 10-14, 2001
New York, NY
www.linuxworldexpo.com
Linux Lunacy
Co-Produced by Linux Journal and Geek Cruises

October 21-28, 2001
Eastern Carribean
www.geekcruises.com


Jabber.com Announces Palm Integration and Three-Way Partnership for New Jabber Wireless Initiative

Sept. 25, 2000: Jabber.com Inc. has announced Palm and Jabber integration along with a three-way partnership between Jabber.com, WorkSpot Inc., a premier open source Application Service Provider, and IQ3G, Inc., a leader in enterprise wireless solutions. The three-way partnership has been established as the foundation for a new Jabber wireless initiative and marks the beginning of Jabber's efforts in the wireless market. Under the new initiative, WorkSpot, IQ3G and Jabber.com are working together, along with the open source community, to develop Jabber compatibility with Palm devices.

Jabber has also announced a strategic relationship with Red Hat to deliver real-time messaging infrastructure to Red Hat embedded Linux. Elements of this were showcased at the Embedded Systems 2000 show, September, in San Jose, Calif. Jabber is the only open source, XML-based platform for extensible instant messaging applications. For the latest developments on the Jabber landscape, consult their news site.


Dell First To Market with Red Hat Linux 7

Sept. 25, 2000: DELL has announced availability of Version 7 of the Red Hat Linux operating system on Dell PowerEdge(tm) servers and Dell Precision(tm) Workstations worldwide. The new operating system is also available on select configurations of Dell desktop and notebook PC products. Dell and Red Hat, as part of their One Source Alliance, worked closely during the development of Red Hat Linux 7 to ensure smooth installation and interoperability of the operating system on Dell server and client products. Details of a benchmark test of Dell PowerEdge 8450 and Dell PowerEdge 6400 servers running Red Hat Linux and TUX 1.0 have been posted on SPEC's Web site, http://www.spec.org, since August, 1999, where the Dell machines led the field.


Neoware

KING OF PRUSSIA, PA: Neoware Systems , a leading supplier of award-winning software and solutions for the emerging information appliance market, announces that Security Applications, Inc. has selected Neoware's Eon information appliance platform and NeoLinux software to power its new, fully networkable building security panel, e-Panel. Security Applications has ported its proprietary UNIX software to Neoware's Eon platform running the NeoLinux operating system which is based upon Official Red Hat Linux. NeoLinux is the first embedded version of Official Red Hat Linux. Neoware has also announced that the opening of four new US sales offices to continue its growth efforts. This coincides with an recruitment of several key personnel.


VMware Announces New User Group Program

Palo Alto, Calif., Sept. 28, 2000 - VMware, Inc. today announced the launch of a new and improved user group program. This program will provide support to relevant user groups around the world in the form of software, giveaways, product collateral and technical guides, presentation materials, consideration for VMware speaker participation at events, and more. Further information is available at VMware's site. http://www.vmware.com/news/user_groups/index.jsp.


Sensiva partners with Wacom Asia Pacific

Mountain View, California, Oct. 2, 2000- Sensiva, Inc., a leading manufacturer of computer graphic tablets and electronic pens, announces a partnership with Wacom Co., Ltd., to offer Sensiva clients interactive symbol recognition functionality in all their tablet products. Through this, people will not only be allowed to copy and paste images directly into the computer but to also navigate much faster through Internet and software applications using simple symbols.


China Internet laws

CNN has a scary article about China's Internet laws. "Internet content and service providers must keep records of all the content that appears on their Web sites and all the users who dial on to their servers for 60 days, and hand the records to police on demand, the rules state."

Definitions of illegal content are vague, such as "spreading rumors", "disrupting social stability", gambling and pornography. The rules also forbid "harming ethnic unity" and "advocating cults and feudal superstition" -- terms often invoked to prosecute suspected Tibetan independence activists and members of Falun Gong and other spiritual movements.


Opera, PalmPalm and Trolltech form Strategic Alliance for Asian Embedded Linux Market

Sept. 25, 2000: Opera Software, PalmPalm Technology Inc., and Trolltech announce the formation of a strategic alliance for the Asian wireless Linux market. The companies will jointly develop "Linux Total Solution for Wireless Internet Appliance" for hardware manufacturers in the wireless Internet space.

Linux Total Solution for Wireless Internet Appliance consists of Opera's "Opera for Linux" Web browser, Trolltech's "Qt/Embedded," an embedded GUI environment and windowing system, integrated with PalmPalm's "Tynux," a Linux Operating System optimized for the wireless Internet. This is to provide a complete embedded Linux solution for wireless Internet devices.


Linux Links

Linux.com Talk to Eazel about Linux UI and working in the OSS model

The Duke of URL Links

Why the world needs reverse engineers -- or -- What Digital Convergence (the maker of CueCat) wasn't telling its customers

Did Al Gore invent the Internet?

Anchordesk UK links:

Kernel Wiki invites contributions of documentation/illumination on aspects of the Linux kernel.

Word processing in Linux : a business perspective.

The Ninth International Python Conference.

Gimp-Savvy.com contains a guide called "Grokking the GIMP", which covers the use of the GIMP's core tools and shows how nine major projects were done.

The HP-HOWTO shows how to use Linux with various Hewlett-Packard products, and what level of Linux support there is for each product.

European lawmakers propose to make hacking illegal. (MSNBC)

An interesting proposal to force abandoned copyrighted products into the public domain. (OS Opinion)

A review of four Windows emulators and PC emulators. (Linux World)

Linux in the financial industry. (Tech Web)

Embedded OS licencing fees: how the lack of licencing fees for embedded Linux products will enable many times more embedded devices to appear on the market and allow smaller companies to get in on the act. (ZDnet)

Interview with Vincent Rijmen of the Rindael AES algorithm, a DES replacement which is much harder to crack. Rindael is unencumbered by intellectual-property and patent claims. (Linux Security)


Software Announcements


NetworX Linux Cluster Helps Researchers Fight Disease

SANDY, UTAH, Oct. 3, 2000 - Linux NetworX, Inc., a provider of large-scale clustered computer solutions, announced today that the National Center for Macromolecular Imaging (NCMI) at Baylor College of Medicine will use the company's clustered computers in its world-renowned molecular imaging research center.

Using a 32-processor cluster system from Linux NetworX, Baylor College of Medicine reconstructs the molecular configurations of disease and illness-causing viruses and other molecules and develops three-dimensional models of their structures. A cutting-edge technique then allows researchers to view the viruses as if they were locks. By properly studying these "locks," they hope to find the "keys" to opening and destroying them. In the past, much of this research was done on large supercomputers costing millions of dollars. But today, because of price-performance issues, clustered-computer alternatives are being selected to handle the large amounts of computation, data handling and storage required.

In the past, scientists used trial and error methods to create vaccines and drugs to fight viruses. But now, using clustered computers and other technologies, they are able to define the structure of these viruses and attempt to design drugs that will solve the specific problems each one presents.

In further good news for the company, the Linux NetworX Evolocity (TM) cluster server receives Best of Show Award for Network Servers & Peripherals from InernetWeek and Network Computing at NetWorld+Interop 2000 Atlanta. The Evolocity cluster server, introduced at the show, is designed for managing and optimizing Web traffic in the Internet market.


Tridia

ATLANTA Sept. 25, 2000--- Tridia Corporation, a provider of eSupport tools that facilitate interactive support and remote system administration, has launched Release 2.0 of the company's newest product offering, TridiaVNC (virtual network computing) the first commercially supported release of open-source, virtual network computing software that views and controls Linux consoles. TridiaVNC Release 2.0's Linux viewer and control features make Linux servers remotely manageable from anywhere on the network and from a variety of systems (Linux, Windows, Unix, Mac). A prerelease binary (e.g., beta) will be available by Sept 26 on www.tridiavnc.com. The source code will also be available to the public via CVS at www.developvnc.org. Those wishing to contribute to this open-source endeavour may also like to try their hand at naming the TridiaVNC Alien mascot. Further incentive is the US$5000 prize for the winning entry! Entries can be made on the TridiaVNC website before November 30 2000.


Teamware Office 5.3 for Linux

Teamware Group has a Groupware application for Linux called Teamware Office 5.3 for Linux. The product is available in RPM format for a 90-day evaluation period with a 50-user license at www.teamware.com/linux/. It is a ready-to-run groupware product for corporate collaboration and communication with a customizable user interface and state-of-the-art communications features. It will be sold for $1000 USD for a 100 user server license.


Proven CHOICE Accounting releases Internet Toolkit

Oct. 2, 2000 --- Proven Software, Inc. is pleased to announce the release of the Proven CHOICE Internet Toolkit designed to help developers integrate internet applications to Proven CHOICE accounting. For details, consult this website. A sample application using the Proven CHOICE inventory file is available for inspection. Proven CHOICE is a powerful multi-user accounting system for linux with the attributes needed by organizations of medium size. Proven Software has been developing multi-user business applications for 18 years and exclusively in Linux for over 5 years.


Workstation Solutions Announces Quick Restore 2.7

AMHERST, N.H., Oct. 17, 2000 - Workstation Solutions, Inc., a leader in innovative data protection software, announces major enhancements to Quick Restore 2.7 that provide increased performance and scalability in data protection of network attached storage (NAS) and other platforms. Quick Restore's new performance, scalability, and ease-of-use features allow customers to backup and restore critical business information rapidly and cost-effectively. Quick Restore 2.7 can be used with a host of new devices from Compaq, Exabyte, HP, Breece Hill, Spectra Logic, ADIC, Qualstar, and StorageTek. Quick Restore 2.7 is available immediately from Workstation Solutions. List pricing begins at $2500. As part of their partnership building strategy, Workstation Solutions have formed partnerships with Network Appliance, VA Linux, and Mirapoint to Support Leading NAS Servers. Their aim is for Quick Restore to provide flexible, fail-safe, high-volume data protection for these companies' platforms.


Internet C++ (ICVM) Alpha Release

Bob A. Dayley, inventor of Internet C++ (an open alternative to Java and C-Sharp) recently announced the product's alpha release. This release is a demonstration and test of the virtual machine (ICVM), the compiler (igcc), and libraries. Complete source to Internet C++ and ICVM are available for download, as well as binary releases of ICVM for Unix/Unix-like platforms, including Linux, FreeBSD, and NetBSD. Internet C++ feature a high-speed virtual machine (ICVM) that is fast enough to run Doom with no JIT compilation. Bob invites anyone interested to download their Doom port and check it out for yourself! Further information is available.


 Other software

The Opera web browser 4.0 for Linux is now in beta.

Magic Software is building an e-tailing solution called TISTrade for Toyo Information Systems, based on Magic eMerchant. TISTrade will make it easier for manufacturers and retailers outside Japan to sell to consumers in Japan.


Copyright © 2000, Michael Conry and the Editors of . Copying license http://www.Linuxgazette.com/copying.html
Published in Issue 59 of Linux Gazette, November 2000


(?) The Answer Gang (!)


By Jim Dennis, Ben Okopnik, Dan Wilder, Dustin Puryear, Anthony Greene, Brian Finn, Richard Turner, the Editors of Linux Gazette... and You!
Send questions (or interesting answers) to


Contents:

¶: Greetings From Heather Stern
(?)Linux Gazette
(?)table overflow
(?)Sed / Awk Script
(?)Porting to Access
(?)Issues with a modem
(?)LinuxRedHat Errno 404
(?)IP Masq and X
(?)extra keyboard keys under X
(?)cloning with dd
(!)`HELP: Crontab not running
(?)Replacing an MS Exchange Mail Server with Linux
(?)background processes in Linux
(?)serial consoles, install, boot, etc --or--
Serial Consoles
(?)Confused About Internet Access to My Home Computer --or--
Does Internet access require an ISP?

(¶) Greetings from Heather Stern

Well, it's autumn at last, and sunny but cold and windy days (with the leaves fluttering around ... heh, that would make a great backdrop on my wallpaper...) are in competition with fluffy grey cloudy days (which I also like). I'm pretty pleased; the Gang is growing!

The flip side of that is, I didn't get quite everything in. Some of the items might well become seperate articles. Others will be seen next month.

Anyways, I wanted to babble just a little bit about themes. Nowadays your computer does not have to be drab and boring. Or, it can be plain - but your idea of comfortably plain. With the fancier window managers you hardly have to be sure that windows under X are still square.

So, what did your computer dress like for All Hallow's Eve? Mine wants to go as a Tektronix vector terminal, and the best I could find it was a copy of Spacewars...

See you next month, everyone!


(?) Linux Gazette

From Ben Okopnik to Jon Lapham on Thu, 5 Oct 2000

If I read your article correctly, you used sendmail to change your "From" header and add some aliases. Why did you use sendmail to do this? Why not set all this up in your email client? As a fellow mutt enthusiast, you do know that this can be configured in your .muttrc and that you can set up a global ".muttrc" for the system? It seems to me that you should try to make it easy for your brother to do things like add a new alias to his email list. The sendmail alias solution seems a bit overkill IMO.

(!) I see that I've failed to explain my requirements sufficiently... <grin> I swear, LG readers are the best literary critics in the world!
Changing the /etc/Muttrc or the ~/.muttrc only changes the "From:" (note the colon), and not the "From " header (which does not exist at the time that the e-mail is created; it is added by the MTA). A number of mail readers, including Netscape (at this point, having done some serious fiddling with Muttrc, I'm uncertain about Mutt), use the "From " header in forming their 'Received from' and 'On dd/dd/dd, <user> wrote:' lines; since I get quite a lot of mail from other Linux users, I see a lot of "On dd/dd/dd, root wrote:"... Often (and this is much worse) the sender addy looks normal, but the "Reply to:" is set to "localusername@isp_host.com" - if you don't pay attention when you hit "Reply", you'll get an unpleasant surprise in 3-5 days (e.g., "Mail could not be delivered to ''...") In order to fix those headers completely, I change both the .muttrc and the sendmail setup. By the way, I found that in RedHat, the 'send-hook * my_hdr From:' line in Muttrc caused Mutt to give an error message. It works fine on my Debian boxes...
Also, rather than adding aliases, I've caused sendmail to do address conversions, a completely different issue. An alias is a short name used as a substitute for a recipient's mail address; the conversions are a way for sendmail to know that the local username "ben" should be converted to "" on all outgoing mail.

(?) I install RH linux on peoples machines all the time, and I have to say I almost never have to change the default sendmail setup, even for single user systems connected via ISP.

(!) Try this: once you've set up one of those accounts, send mail to yourself (not the local username, but the mail account at your ISP) and read the headers. You'll most likely find that the "From " header has your local username instead of your e-mail address. Of course, if you've found a way to fix this via Muttrc, I would be more than happy to learn it!
Ben Okopnik

(?) table overflow

From Heather Stern and Jim Dennis to james zhuang on Fri, 6 Oct 2000

Hi,

I am runing Redhat Linux 6.x. Recently I am getting an error message 'neighbour table overflow' pop up in the console screen.

Any ideas,
James

(!)[Heather] Yes, it means your localhost interface is not set up correctly. I don't know the actual mechanics (perhaps one of the rest of the Gang will chime in) but basically, the message is about your ARP cache going crazy trying to deal with what is really local traffic.
Until you fix it, session based protocols like samba, nfs, ftp and telnet, and ssh will have iffy connections. Samba and NFS will probably be so annoying you can't really use them; a good ftp client will just feel like it's slow as molasses.
Whereas, if you go into /etc/sysconfig/network-scripts and you make sure that you have a valid ifcfg-lo file, things will be properly speedy.
(!)[JimD] I noticed that 'pump' and some other DHCP clients would corrupt your localhost/loopback configuration and remove the routes thereto unless you explicity tell them which interface you want them to work on. You'd think that 'pump' et al would default to leaving your lo interface alone --- but that seemed to be where I was getting it for awhile.

(?) Sed / Awk Script

From Dan Wilder to Kopf on Sat, 14 Oct 2000

Could someone tell me how to write a sed script which'll put text at the beginning of each line of a file, and change all the backslashes in the file to forwardslashes?

I need it so that I can change all my .m3u files from windows format to UNIX, IE from:

Deftones\White Pony\Pink Maggit.mp3

to

/mnt/win_c/mp3s/Deftones/White Pony/Pink Maggit.mp3

Anyone have any ideas?

(!) Haven't tried it, but
#!/bin/sh
#
# call with filename as first argument. Puts
# out revised file to standard out
sed 's%\%/%g;s%^%/mnt/win_c/mp3s/%' $1
Uses "%" as delimiter, to avoid having to escape the more conventional forward slash. The
s%\%/%g
says to put a forward slash in place of a backslash, and the "g" modifier says to do it for every such.
;
is a command delimiter
s%^%/mnt/win_c/mp3s/%
says to substitute /mnt... at the beginning of each line (that's what "^" matches).
For more info, see "man sed". This manpage contains one of the several fine introductions to regular expressions, which have the ability to match things like the beginning or ending of a line, strings containing not just particular characters put particular sets of characters, and so on. See also "man grep".

... but, when Kopf tried it ...

(?) Hi Dan,

I entered that in, but it gives me an error of:

sed: -e expression #1, char 11: Unknown option to 's'

I don't know what char 11 is, is it the 11th character inside the quotes of what's being sent to sed? I've been messing around with the script, but to no avail...

Any Ideas?

Thanks,

Aengus

(!)Try
sed 's%\\%/%g;s%^%/mnt/win_c/mp3s/%'
The "\" has special significance as an escape character, means "ignore me but take next character literally".
My bad.

(?) Porting to Access

From Ben Okopnik to John Humphre Halliday on Tue, 17 Oct 2000

Hello Answer Guy!

(?) Hello, John -
The Answer Guy/Gang is a column in the Linux Gazette; we answer Linux-based questions for our readers. It just so happens, though, that I was the EDP manager for an insurance company in the Virgin Islands - and this company used Clipper (all the in-house apps were written in it). Due to the major Y2K issues inherent in their operations, I convinced them to switch to a different suite of apps - which involved converting the old databases to Access.
First, for the Linux community: for those of you who want to read/use Clipper DBFs under Linux, I've written a front end for Martin Schulze's "dbview" called "clipview"; it's a viewer/converter that patches the differences between the two formats. It's available on my site - http://www.geocities.com/~ben-fuzzybear/clipview.tgz - and Martin may also be including the functionality in future releases of "dbview".

(?) I was hoping you'd be able to recommend the quickest way to port from a Clipper/DB2 database to Access 2000. A client has asked that I do this for them and I know almost nothing about Clipper - just that it's a compiler for DB2 type databases (.dbf). Is it possible to access the tables through an ODBC connection in Access and simply copy/import the tables/data to Access?

(!) You actually have several ways to do it; Access can link the files via ODBC or read them via its "import" facility (DB3, DB4, or FoxPro types work fine; I seem to remember DB2 as not working correctly...) Note that linking works fine unless you specify "shared" mode; then, it becomes dead slow. If you decide to import the files, make absolutely sure that you index them beforehand; Access can make a really horrible mess of a file that is out of index, and will do so without any notification... By the same token, double-check any files you import (# of records, totals, etc.)
Good luck!
Ben Okopnik

(?) Issues with a modem

From Ben Okopnik to J. Miguel Iglesias S. on Wed, 18 Oct 2000

I have a PC running RedHat 6.2, I also have an internal Motorola ModemSurfr 56k.

Some guy told me he found the way to make it work with linux, so he told me to define the parameters using the setserial function.

(!) Just for the sake of clarity: "setserial" is used to configure the serial port, which is necessary for access to the modem; it does not configure the modem itself. In the case of internal modems such as yours, the port is part of the card itself - but you should still realize that there is a difference.

(?) Checking the boot log I saw the system runs setserial at boot and detects the port for the modem.

(!) That's pretty standard, at least in the distributions with which I'm familiar; the problem is that the values to which the ports are set are usually 'auto' or default values. It pays to manually configure "setserial" to get the best performance (and in some cases, _any_ performance) from your serial ports: after a bit of tweaking, I saw the data transfer rate across my serial link go from just over 9kB/s to just under 12kB/s.

(?) However I used the setserial function and somehow my modem gave me some response using minicom.

(!) A good sign! This says that your modem is _not_ a Winmodem, and you're talking to the right port.

(?) If I use minicom, I'm able to dial to my ISP, but the speed is way too slow (it takes about 30 seconds just to display the greeting from my ISP) so my connection times out before I'm able to login to the ISP.

(!) This sounds like a conflict - and in this term, I include hardware as well as software that sets up hardware, such as "setserial". Let's go over the possibilities.
1) Serial port. As a guess, I would say that this is most likely the culprit, given that tweaking "setserial" is what allowed you to see your modem in the first place. Read the "setserial" man page carefully, particularly paying attention to the speed flags such as "hi" and "vhi". Check the other settings for the port you're using, port and IRQ both, and _specify_ them rather than auto-configuring. "setserial" can be used right from the command line, so you do not have to reboot to change the settings; experiment with different values and see if they produce any changes.
2) "Usage" conflict. In theory, once some piece of software uses a given serial port, it will write a "lock" file that will prevent other software from trying to use it. Unfortunately, this scheme is not perfect: a particularly stupid piece of software (one that does not honor or check for the lock), or one that uses the 'cua' port addressing scheme (as in '/dev/cua0', etc.) may try to use a port that is already in use, causing a problem. Immediately after rebooting and _before_ trying to do anything with the modem, try running the "fuser" utility on the appropriate "/dev/ttySx" port - if another process is using it, "fuser" should let you know.
3) IRQ conflict. I've noticed that under Linux, as contrasted against DOS/Win, IRQ conflicts seem to slow down the associated process instead of just crashing the machine; a "friendlier" response, as I see it, and certainly easier to diagnose. Try removing the modem from the system and checking "/proc/interrupts" for other hardware using the IRQ that it requires (e.g., IRQ4 for ttyS0/ttyS2, or IRQ3 for ttyS1/ttyS3.) Also, check "/proc/ioports" for 03F8, 02F8, 03E8, and 02E8 - the port addresses for ttyS[0123] - though I wouldn't expect too much trouble there.

(?) If I use the pppdial in Gnome it simply don't detect my modem.

(!) I would first make sure that the serial port and the modem were working OK before trying to set up a dial-up account - i.e., eliminate the conflicts and make a good connection via "minicom" (make sure you're using the correct setup values in "minicom", as well!), _then_ worry about automating the dial-up.
Good luck,
Ben Okopnik

... Miguel replies...

(?) I will try all your hints and let you know how it worked, maybe my experience will bring some hope with this modem to other users.

I'm considering to buy an external modem anyway (but still want to make my current modem as well), do you think I should buy a CNet ($70) or I should go safer and buy an US Robotics ($110)?

Thanks a lot for all your help and regards

Miguel

(!) My experience with modems is that "you get what you pay for". I've had excellent luck with USR and Hayes modems, variable with other brands; given the above choices, I would certainly plunk down the extra money for the USR.
Along with LinuxMafia's Rick Moen, I believe that internal modems, when ground fine and lightly roasted, make a decent coffee but have little use otherwise; making your existing modem work is good troubleshooting practice, but your idea of replacing it with an external is a good one.
Ben Okopnik, modem curmudgeon :)

(?) LinuxRedHat Errno 404

From Heather Stern to Ken on Wed, 18 Oct 2000

I want to change the default of Errno 404, so that the user is redirected to another URL when they request a URL that is not on my server. What directory and file do I need to edit?

(!) In most web servers it's possible to configure it so 404 errors (or other numbered errors, another popular one to force this way is 501 as it sometimes happens from broken scripts) go to a special page of your choice. A lot of big ISPs have 404 errors lead to a front page for their search engine, explaining that whatever you were trying to find has moved.
On Apache under SuSE, the file to adjust is /etc/httpd/httpd.conf but it could as easily be under a home directory for Apache under /usr somewhere. I've no experience with the other servers, but the powerful ones like Roxen Challenger and aolserver should definitely also have the feature available.

(?) IP Masq and X

From Heather Stern to M.K. Laha on Thu, 19 Oct 2000

My Linux PC is on a private LAN that connects to the internet through a (Linux based) router using IP masquerading.

My problem is that I can't seem to point the DISPLAY environment variable on a remote machine on the internet to that of my Linux PC. So, if I run, say, gnuplot, on the remote server, I cannot see its output on my PC.

I've tried setting the DISPLAY variable on the remote machine to point to the router but that doesn't work. Seeting the DISPLAY variable to point to my PC obviously doesn't work because it is not "visible" to the remote machine on the internet.

I shall greatly appreciate any help/pointers. Thanks in advance.

- Manas Laha

(!) So assuming that you are at one Linux box (Home) and your other Linux box (Work) is behind all this firewall stuff. (Yours might really have some other relationship to you, but this will help everyone understand what I mean, and usually it's corporate boxes that have better defenses.)
If you have been provided a way to reach Work from Home via ssh, then all you need to do is turn on X11 forwarding. Then ssh will create a "virtual" display (usually Work:10.0) which will acept X GUI commands, but really send them up the ssh pipe back to Home.
So, ot's okay not to be running X on the Work system at all, as long as the libraries are there so programs that you want to run can be good X clients. You do need to be running X on your Home system though. Launch ssh out of an xterm (eterm, etc.) and both your ssh client plus Work's ssh daemon must be given the options that X11 forwarding is okay. Why? Because these days it usually defaults to off, as it's a security risk; X usally has an annoyingly strong root privilege. You can reduce the risk by using .Xauthority files so only your account at Work can use the pipe.
What most people don't think of, is that this trick, where Work's CPU is supposed to display on Home's monitor, used to be the normal way that the X windowing system was used... and that's why the part of X that paints on the monitor is called the server.

... Manas answers...

(?) Thanks for your prompt reply. I haven't tried using ssh so far, but I shall certainly try it out now.

- Manas Laha


(?) extra keyboard keys under X

From Ben Okopnik to Gavin W. Burris on Sun, 22 Oct 2000

(?) I have a Gateway keyboard with multimedia keys along the top. Is there any way to use these under X? Could I press one and have a program or shell script run? Thank you for your time.

(!) The answer depends on exactly what those keys do. If they are "programmable" keys such as Gateway used to have, then their definition is up to you: if you can invoke a shell script by typing something in, then you can invoke it with a "programmable" key. As an example, "icewm" can use those "Windows" keys to pull up the program menu; a combination of arrow keys and the 'Enter' key will invoke any of the listed apps. "icewm" can also (I believe this violates the "window manager mandate", but works very well for me personally) intercept Ctrl- key combinations, which can then be tied to specific commands.
If, on the other hand, they generate some sort of previously unmapped key codes, then you would have to dig a little deeper into your WM man page and other reference material. The "key codes must be passed to the application" directive seems to be one that is ignored by most WMs, and one or more may be capable of being 'told' to intercept these new codes - but this would obviously be a per-WM-specific feature.
I recommend taking a closer look at what's happening via 'showkey' in a VT and 'xev' in an xterm. Once you have an idea of what keycodes you're generating, you'll know in what direction to search.
Ben Okopnik

(?) cloning with dd

From Ben Okopnik to Chris Smart on Mon, 23 Oct 2000

(?) Hi, do you know how I can speed up the dd command under Linux when cloning disks. I use dd if=/dev/hd? of=/dev/hd? at the moment, are there any flags that I can use to speed it up. Or maybe you know a quicker way to clone disks that preferably doesn't use Norton ghost or powerquest disk image!

Any help will be much appreciated

(!) There is a "hard limit" associated with the type of process that you're talking about: the 'speed', or the maximum data transfer rate of the slowest HD. One tool that could be useful, especially if you're cloning to a number of identical drives, is "hdparm" - the man page gives a good "tuning" guide (I got a significant improvement from my laptop HD performance after playing with it for a bit) which can help you maximize the DTR of a given drive. This applies to both of the drives involved.
The other issue is, of course, "dd" itself, particularly the 'bs' option which sets the size of the block that is read from 'if' and written to 'of'. Here is a test worth trying:
time dd if=/dev/hd? of=testfile bs=[N]k count=M
where NxM=10Mbytes, and the source and the target are on different drives. Vary N (and consequently M) and see what blocksize gives you the best performance. Given this type of custom-tweaking, I believe you should be able to improve on the performance of any other software...
Ben Okopnik

(!) `HELP: Crontab not running

From Richard N. Turner on Sat, 09 Sep 2000

Dear Editor,
I saw the article mentioned in the subject and some of the followups and had to reply.
I've seen more than my share of people cursing cron and saying: "But the script runs fine from the command line!". Pierre Abbat's reply in the September issue was right on. Most people will modify the PATH variable to include some directories beyond the major ones that get defined in places like /etc/profile and scripts will fail when they attempt to run some commands that rely on this modified PATH.
The thing to remember is that cron doesn't run your .profile when it runs a script. If you don't explicitly define the full path to a program run from within the script it'll fail. So you either have to make sure your script contains something like "/home/mydir/devel/bin/prog1" (or whatever) or amend the PATH at the top of the script.
Another alternative is to just source, depending on your shell, either .profile or .bash_profile from within your script (assuming that it defines PATH and whatever other environment variables were helping the script run from the command line). If you include a line near the top of your script like:
. /home/mydir/.profile
or
. /home/mydir/.bash_profile
all things you usually rely on in your interactive environment are defined for your scripts run under cron as well.
If you do decide to source your .profile, you might want to watch for things that depend on there being a display and/or keyboard "attached" to the process running the script. If there isn't, you might see strange error messages like "not a typewriter" or "cannot open display :0.0". I have a toolbox of variables and shell functions that I like to use in a file called "std_functions" which I source near the beginning of my interactive environment setup as well as my scripts. One of the things I put in `std_functions' is:
     TRUE="0 -eq 0"      #Lets you define Boolean environment
variables and
     FALSE="1 -eq 0"     #makes scripts easier to read six
months from now.
     if [ -t 0 ]
     then
          INTERACTIVE=${TRUE}
     else
          INTERACTIVE=${FALSE}
     fi
The "-t" test returns `true' if stdin (file handle 0) is associated with a terminal. Then in your profile, you can do things like run xrdb using:
     if [ ${INTERACTIVE} ]
     then
          xrdb -l ~.Xresources
     fi
and not get weird messages from your cron jobs (The above `if' block would, of course, evaluate as false under cron). I tend to keep my profile arranged so that any setup that I need for my interactive sessions is wrapped by an if-then-fi block. After all, you don't really need to define aliases and use them in your shell scripts (Ugh!).
Hope this'll help someone...
PS: I've somehow missed reading the Gazette for the last couple of months. It keeps getting better. Keep up the good work.
-- RNT

On behalf of the crew, thanks! We couldn't do it without you! -- Heather


(?) Replacing an MS Exchange Mail Server with Linux

From Dustin Puryear, Anthony E. Greene, and Brian Finn to hutchins on 11 Sep 00

On this subject, we hear both from the author of a good book all about it, a serious cross-platform power user, and someone who simply found something better than Exchange to use in this fashion.

This is a sort of follow on to your discussion in Issue 56 of reasons not to migrate a Linux mailserver to MS Exchange.

One feature that the MS Exchange Server/Outlook Client (as well as the Lotus Notes Server/Client) offers is a centralized address book.

(!)[Dustin] Dear Jonathan,
I read with some dismay your message to Linux Gazette regarding a lack of "centralized" directory services on Linux. Nothing could be further from the truth. There are several LDAP servers ready to run on Linux. Better yet, OpenLDAP, an open-source LDAP server, compiles easily on Linux and can be integrated with MTA's such as Sendmail and Postfix. In addition, you can access the directories on OpenLDAP from Netscape or Outlook 98+ easily. In fact, I have implemented OpenLDAP at my company and it works great!
FYI, I cover both Postfix and OpenLDAP in my book, "Integrate Linux Solutions into Your Windows Network," which is aimed specifically at NT managers wishing to use Linux to their advantage in NT-dominated networks. (Of course, it works the other way around as well--if you wish to bring NT/Windows into your UNIX organization the book just as well.)
Feel free to ask me any specific questions that you may have.
Best regards, Dustin
--- Dustin Puryear

Hey Dustin, thanks for joining the Gang! If anyone sends you good questions and you copy your answers to LG at -- we will publish them so more people can understand how it all ticks. -- Heather

(!)[Anthony] There is no reason this would not work for external addresses. I run an LDAP server on my home network for members of my household. Most of the addresses are for external users. I update it using an LDAP client <http://www.biot.com/gq/>; and the changes are immediately available to everyone.
Netscape has no problem using the LDAP server automatically to resolve partial addresses. I did the same thing in my former organization where Outlook 2000 and Outlook Express were the clients. The Outlook 2000 client needed to be tweaked to use a more flexible LDAP query, but then they both worked fine. Even the StarOffice mail client can use LDAP, but the procedure for selecting addresses in StarMail is tedious and non-intuitive.
The Outlook 2000 installer makes you choose either Internet-Only or Exchange Server mode. If you choose Exchange Server mode (the default, I think), then you will have to edit the registry to get a more flexible LDAP query. The default search looks only at the beginning of the email address. It does not search the 'cn' (commonName), 'sn' (surname), 'givenName', or any other attributes. I changed the search so that it looked anywhwere in the 'cn' attribute. You can figure this out by looking at the man pages for the utilities that ship with OpenLDAP and the registry entry associated with the LDAP server on the Windows client machine.
If you're limited to performing updates from a Winbox, you might look into ldap-abook <http://sourceforge.net/projects/ldap-abook/>. It's a set of perl scripts and a module that makes it easy to maintain an LDAP address book. You will probably have to edit the scripts to fit your situation, but it can work. I found it easier to do batch updates by updating an LDIF file and re-importing the whole thing during off-peak periods. If you have a large directory, you'll probably want to get a good LDAP client instead. The utility programs that come with OpenLDAP are pretty good if you only have command-line access to the server.
(!)[Brian] In issue 58, an Answer Guy reader was looking for a Linux replacement for Microsoft Exchange. I believe OpenMail by HP (http://www.hp.com/go/openmail) could be what he is looking for. Here is a blurb from Info World about it:
"Summary: HP OpenMail is an impressive, highly scalable mail server. One OpenMail server will handle Microsoft Outlook (with scheduling and calendar), Lotus cc:Mail, Lotus Notes, Microsoft Mail, Web, and standard e-mail clients.
Cost: Free for Red hat Linux servers with up to 50 mailboxes. $41 per mailbox on Linux Servers, $77 per mailbox on other platforms.
Platforms: Red Hat Linux 6.x;
HP-UX 10.20 or 11.0;
AIX 4.21 or 4.3;
Solaris 2.5.1 to 2.6
Hope this helps,
Brian Finn

(?) background processes in Linux

From Peter Samuelson to Andy Larkum on Sat, 30 Sep 2000

Regarding a recent LG Two-Cent Tip-- [Andy Larkum asks LG]

(?) I have a small query. I want to log into a Linux machine, set a process running, and log out again, leaving the process running. It has been suggested that I can do this by simply using 'nohup command &' but this didn't work, because the process was killed as soon as I logged out again.

(!)[Heather responds] screen with autodetach mode turned on would work nicely. We use it here all the time. -- Heather
(!)[Peter] What you want is the 'disown' command, a bash builtin. It causes the shell to detach a background job from the tty and basically forget it ever existed.
This is really useful in loops. Often I want to start 100 jobs in the background but don't care about stopping them later. So:
i=0; while [ $i -lt 100 ]; do some_long_job_involving_$i & disown; ((i=i+1)); done
Note that I use '&' to put each job in the background, then immediately disown it. That way the job numbers don't accumulate and get in the way.
If you are forced to use a non-bash shell that doesn't support disown, you can get the same effect by running the background job in a subshell:
sh -c 'some_long_job &'
The 'sh' you spawn to run the job exits immediately -- it's not an interactive shell so it doesn't bother with th job control crap -- and your login shell is none the wiser about some_long_job still going.
Peter

(?) Serial Consoles

From Jim Dennis to Joseph Annino on Sun, 08 Oct 2000

One thing that is really great about Sun hardware is that you can get rid of the monitor, mouse, and keyboard all together and do everything from install the operating system to change EEPROM settings via a serial console. While Intel hardware was never designed this way, I cannot find much information about setting up Linux on Intel to approximate this. Is it possible to install and boot Linux over a serial console? Log-in in this way is easy, but to be able to completely administer a system the install and boot functions are critical, especially the Lilo prompt would be nice.

(!) Note: Linux on Sun and other SPARC hardware supports the serial console just as you'd expect. Let's try to remember that Linux is just a "PC UNIX" anymore. I've also used Linux serial console on PReP (PowerPC Reference Platform) systems.
I've heard that some new Intel motherboards include BIOS support for serial console. However, I haven't seen one of those yet.
As to your question. Yes, Linux can support a serial console, and it can concurrently support the normal PC console (with virtual consoles) and a serial console.
Your first step is to compile your kernel with serial console support. That's a standard configuration option in the 2.2.x kernels and it was available as an unofficial patch for years (since the pre-1.0 days). There is a small text file to explain this support in /usr/src/linux/Documentation/serial-console.txt (Obviously depends on your kernel version, but it's been there for awhile so any recent kernel should include it).
Next you have to configure LILO by editing the /etc/lilo.conf. There are two parts to this configuration --- you want to configure the LILO bootloader itself to include support for prompting and handling input on the serial port, and you want to add a command line parameter to the kernel to enable and configure the serial console support that you had compile into it.
So you need a lilo.conf that looks something like:
boot=/dev/hda2
root=/dev/hda3
install=/boot/boot.b
map=/boot/map
delay=20
prompt

#      vvvvvvvvv
serial=0,19200n8
#      ^^^^^^^^^

image=/boot/vmlinuz
        label=new
        read-only

#                vvvvvvvvvvvvvvvvv
        append="console=ttyS0,19200"
#                ^^^^^^^^^^^^^^^^^

Note that these different parameters don't have matching syntax. On the serial= directive (which configures the LILO boot loader support) we have the port number (without the ttyS device name prefix) followed by the speed, parity and data bits. On the append= drive we are passing a kernel option. The kernel console= option takes the base name of a device (with the /dev/ directory name, but with the ttyS* prefix/device name), and then the port speed.
Actually the speed, parity, and bits settings for both of these use the same format and syntax. So the important difference is that one (the serial=) takes just a serial port number while the other takes a device name (ttyS*). The first time I tried to get LILO working with a serial console I didn't read it carefully enough and I thought I knew more than the documentation. It took me a few hours to figure out that I needed to remove the "ttyS" from my serial= line!
Finally, some newer PC motherboards/chipsets have support for full serial operation. These tend to be the more expensive keyboards that are designed for rackmount cases and are particularly handy for co-location servers.

(?) Does Internet access require an ISP?

From Mike Orr to Jeffrey Stephens on Tue, 17 Oct 2000

(?) I'm a bit confused. I was re-reading back issues of Linux Gazette and came across this answer which you provided in the Sept. 98 column, issue 32. I am running Redhat 6.2 which I configured using the KDE workstation option. I understand you to say in the enclosed answer that no one can access their computer over the internet without making arrangements with their ISP. Then what's the big deal about securing my cable connection? Since I haven't made any arrangements with my ISP your answer would seem to suggest that I am secure. On the other hand, if someone can break into my machine then I ought to be able to connect with it myself over the internet without going through my ISP. Am I missing something here?

Regards,

Jeff Stephens

(!)[a past reply] Permission to Set up a Linux Server
Alright, I finally figured out what you were asking. It took a little work, though.
First note: when you set up a Linux system it defaults to providing many services. It is already a "server."
What you seem to be asking is: "How do I make my server accessible via the Internet?"
As you surmised you would have to make arrangements with some ISP to have some dedicated (or at least "dial on demand") connection to the net, or to "co-locate" your hardware with them.
(!)[Mike] There are several issues here. One is, what the terms "server", "ISP" and "being connected to the Internet" all mean. Another is, how do the different types of Internet connections affect how easy it is for a cracker to break into your computer.
If you have Internet access, you are connected to the Internet through an ISP (Internet Service Provider) of some sort. For cable modems, the cable company normally runs its own ISP that all customers must use. My DSL provider allows me to use any of several local ISPs instead of their own. The cableco or telco connects you to your ISP through some non-Internet means (cable or DSL to the cableco/telco central office, then ATM or Frame Relay or whatever to the ISP), and then the ISP takes it from there. Your ISP is your gateway to the Internet: no gateway, no Internet.
 
Being a "server" means your computer runs services which other people can use. Of course, at the most basic level, all Internet-aware computers are servers, because Internet is a two-way street, and if you can ping up other computers, other computers can ping you. But normally "server" means you're running application-level services: web, e-mail, ssh, telnet, ftp, etc. that other people can use. And yes, most Linux distributions come with all these services enabled by default, and yes, this is a security risk. (See"Linux Security, or Rather, the Lack Thereof" in last month's News Bytes (http://www.linuxgazette.com/issue58/lg_bytes58.html#general).) You should know which services your computer is running and turn off those you don't specifically want to offer.

The answer you quoted was from 1998, and things were different back then. Cable modems and DSL were not common, at least not in the US. (Although my Canadian friend likes to point out that he had a cable modem in eastern BC a year before we even heard the term "cable modem".) Almost everybody used analog modems with dial-up connections. Dial-up connections are by nature less vulnerable to attack than cable modems are, because the would-be cracker will find that your server:

  1. may be disconnected right now.
  2. may have a dynamic IP, and of course the cracker must know the machine's current IP (or domain name) in order to sabotage it.
To solve problem (1), dial-up users need a 24-hour connection or a "dial on demand" service. Dial on demand means the ISP will telephone your computer whenever a packet comes through for it and the link is down. This requires a special arrangement with the ISP, and your computer must be configured to answer the phone, and you have to make sure that nothing else (answering machine, fax machine or person) picks up the phone first. Most ISPs would not do this, and the few that did charged big bucks for it.
(Note: Linux distributions have the "diald" daemon which does dial-on-demand in the opposite direction: whenever your computer or internal network wants to connect outside, it will dial the ISP for you if the connection is down. But this does not help the problem above, which is incoming traffic.)
For any kind of 24-hour connection (dedicated modem with separate phone line, ISDN, Frame Relay, T-1), you would be paying $140-$1000 per month-- out of reach for most individuals. Those of us who have long desired this are ecstatic that we can now get this service at an affordable rate.
To solve problem (2), you need a static IP (one that never changes) or "dynamic DNS" service. Of course, this affects cable modems as well. With a cable modem, you may have a dynamic IP (which changes every time you plug in the modem, and perhaps every few days as well). This will at least ensure that even if a cracker breaks in, he (or she) won't be back over the long term, because when he tries to come back, he'll find himself on a different computer and he'll have to start from square one determining its configuration. Of course the tradeoff is, if you wish to run a web server or e-mail server and you have a dynamic IP, it'll be mighty inconvenient for the public to know your current IP or domain name.
("Dynamic DNS" means the nameserver is set up to allow its configuration (which IP your domain name points to) to be changed frequently and conveniently, either by you typing a new number on a web page or by a script on your computer which sends in the new information.)
So yes, people from the outside can crack your computer even if you haven't made special arrangements with your ISP. Linux Gazette has published several articles this year on securing your home network, and these are all recommended reading.

More 2¢ Tips!


Send Linux Tips and Tricks to


Identify services

follow up to issue58/tag/7.html

Mon, 2 Oct 2000 13:38:30 -0400 (EDT)
From: Mathew A Johnston (johnston@megaepic.com)
I'm not sure that I'm sending this to the right address, but...
I find the most useful tool in the attempt to identify services and their parents to be netstat -ple (process, listening, extended info). This provides a table of listening sockets, the processes that own them, and the uid of the process.
If you're making an emergency read only anti-hack disk, put this on it - you cant trust your installed version always.
Mathew Johnston


Checking Passwords in Custom Apps

Sun, 08 Oct 2000 14:14:04 -0700

Hi,

I need to authenticate a user entering a linux os.

I get from the user a username and a password and need to cross it with the /etc/passwd file.

How do I cross the password with the existing one ? (How can I enctypr the password the user entered ?)

Thanks you,
Gil.

I presume what you're trying to ask is something like: "how can my custom script or application determine if a user has given me the password as would be checked by the system?"
The short answer is that your program should use the getpwent(3) and the crypt(3) library calls.
That is a bit of an oversimplification but here's a bit more detail:
Technically you don't "encrypt" the password, you "hash" it and compare your result with the one that's stored in the /etc/passwd, or the /etc/shadow file, or the one that's returned by NIS, etc.
Here is a link to a simple example I found using Google:
http://oloon.student.utwente.nl/~remco/linux-c-programming/9902/msg00017.html
Glyn Clements is one of the most active and knowlegeable contributors to the linux-admin mailing list.
-- JimD


Printing under Linux

Tue, 10 Oct 2000 09:52:20 -0600
From: Jim (JBRANDV@pnm.com)
In your answer to Gaurav you didn't mention TurboPrint. I found the current version has full support for my Epson Photo 700 and most other Epson printers as well. I now have full photo quality printing under Linux. Support for other printers is growing daily so keep checking back if you don't see it the first time. The URL: http://www.turboprint.de
It is beta (0.61) but seems to work great!
Jim


subnet needed

Tue, 10 Oct 2000 19:45:00 -0700 (PDT)
From: Buddy Newton (blu3plat3@yahoo.com)

--- "Arne C. Johnson" wrote: what does this subnet does this network give you

192.168.160.0 /20

Thanks

192.168.160.1-192.168.175.254 4094 hosts
that's a 255.255.240.0 mask
The trick is that each "255" octet is 8 bits. The number on the end of the slash is a number of bits set on. So, 8 + 8 = 16, still not enough, need 4 bits 4 more! See it's really just that many 1's counted from the left... which is to say from the top of the values, so within the third octet, that's 16 + 32 + 64 + 128 = 240. The netmask 1's allow bits to "leak through" and establish the network address... the 0's block or "mask" all the local addresses off. For a lot more detail what this is all about, see Jim Dennis' fairly verbose "routing and subnetting 101" in issue 36. -- Heather


companies

Sun, 15 Oct 2000 11:46:11 EDT

what are some of the companies that makes "LINUX" operating systems?

There are so many, it is hard to count them... and groups which are not companies also produce their own setups of Linux, so we call them "distributions".
Linux Weekly News (http://www.lwn.net) has a section dedicated to following this question, and a sidebar that has links to a long list of distro's - so you should check it out.
-- Heather


Keyboard keys/buttons...

Tue, 17 Oct 2000 09:04:19 -0700
anthony buckland wrote:

I live in Japan and would like to replace the Japanese keyboard (buttons) of my NEC laptop with the English keyboard (buttons)--if you know what I mean? Now, do you happen to know of a supplier(s) in the US or elsewhere that I could possibly contact for those English buttons? I thank you, again.

I would contact NEC support via one of the links at http://www.nec.com/support/index.html and see if they can help. Perhaps they can send you the keytops or at least tell you who manufactures them.
-- Mike


How to read Cisco Documentation CDROM on Linux platform

Tue, 17 Oct 2000 08:41:39 -0700
From: Andrea Montefusco <>
Are you interested to such micro-howto ?
Regards
Andrea Montefusco

How to read Cisco Documentation CDROM on Linux platform

  1. mount the cisco cdrom ( mount /dev/cdrom /mnt/cdrom )
  2. start httpd apache daemon.
  3. define a virtual server by mean of a listen on a port of your choice id:
    Listen 127.0.0.1:8080

    You must include a Listen for your virtual servers in your virtual host configuration (specialized file or httpd.conf file); add the following instructions:

    <Virtualhost localhost:8080>
    Options Indexes FollowSymlinks
    DocumentRoot /mnt/cdrom
    AddHandler gunzip .htm
    Action gunzip /cgi-bin/CiscoDoc
    </Virtualhost>
    
  4. put in your CGI directory /home/httpd/cgi-bin the following file: (text version)
    #!/bin/sh
    #
    #
    echo Content-type:text/html
    echo
    
    
    FULL_PATH="$DOCUMENT_ROOT""$PATH_INFO"
    
    ROOT_FILE="$DOCUMENT_ROOT""/home/home.htm"
    
    if [ -f "$ROOT_FILE" ]; then
    
       bunzip2 -t "$FULL_PATH"  1> /dev/null 2>&1
    
       rc2=$?
    
       if [ "$rc2" = "0" ]; then
          bunzip2 --stdout "$FULL_PATH"
       else
          gunzip -l "$FULL_PATH"   1> /dev/null 2>&1
          rc=$?
    
          if [ "$rc" = "0" ]; then
            gunzip --stdout "$FULL_PATH"
          else
            cat "$FULL_PATH"
          fi
       fi
    
    else
       echo "<HTML><BODY>"
       echo "<H1>Root file (" $ROOT_FILE ") not present</H1>"
       echo "<H2>Did you forget to insert the CD-ROM ? </H2>"
       echo "</BODY></HTML>"
    fi
    
    #echo "<HTML><BODY>"
    echo "<HR>"
    echo "<H4>"
    echo "Cisco Documentation CDROM Reader ver. 0.3 -- A.Montefusco A.Passariello"
    echo "</H4>"
    #echo "</BODY></HTML>"  
    
    
  5. Make it executable with the command
       chmod -c 755 CiscoDoc 
    
  6. Now you can access Cisco Manuals using URL: "http://localhost:8080/home/home.htm"


A note conserning the article "Making a Simple Linux Network Including

Mon, 11 Sep 2000 12:05:12 +0000
From: Samuli Seppänen (samuli.seppanen@kolumbus.fi)
Instead of doing an "echo 7 > /proc/parport/0/irq" you can put following line to modules.conf:
options parport_pc io=0x378, irq=7
where io / irq should be replaced if necessary. With this you should be able to insmod plip without any problems.


Wanted: articles about non-LILO boot loaders. -- Heather

Wed, 27 Sep 2000 22:50:54 -0400
From: "Hoyt" (hduff2@att.net)
Neil Koozer of Roseburg, Oregon has created nuni, a boot loader for a Linux system that uses the ext2 file system and IDE drives.
nuni handles various ext2 block sizes and handles both small and large kernels.
www.linuxforum.org/plug/articles/nuni.html
Hoyt Duff


Grep

Sat, 30 Sep 2000 17:36:39 +0530
From: Rakesh Tiwari (rakesh_tiwari@jasubhai.com)
From what i understand, u only want to know users begining with "potatoe" in the "Login" coloumn.
$finger | cut -f1 -d" " | grep potatoe
Regards
Rakesh Tiwari
If you obey all the rules, you miss all the fun.


2 cent tips - re: Reflections Replacement

Mon, 16 Oct 2000 23:53:00 -0500
From: Rick Cook ()
Toshiro,

Hi! I would like to access my graphics Linux desktop from my Windows box; I was able to do it using a software called Reflection (I guess you know it), is there any (free) software with the same capabilities of Reflection?

You could also try VNC. If you run a VNC Server on your Linux Machine and a VNC client on your Windows box, you can get a graphical Login (xdm, gdm, kdm) on your Windows Box. See:
http://www.uk.research.att.com/vnc
The Linux version comes included with several distributions, including Debian.
Good Luck,
Rick Cook


Modems

Tue, 3 Oct 2000 21:12:17 -0400
From: "Barry" (BarryJJ@ATTGlobal.Net)
I bought the ActionTec Internal Call Waiting PCI - not to be confused with the "56K PCI Pro" which is labelled as a WinModem - 'coz it was the only one that mentioned Linux support on the box and was PCI. From this I assumed it to be a "real" modem.
I haven't actually tried it under Linux yet, but I was impressed to find the instruction book had more pages (10) devoted to getting it to work under Linux than for the Windows variants. And there is no mention of having to install special software ... at least none that I can find.
There are separate headings for PPP, GNOME Dialer Applet, KPPP, linuxconf Dialer, and even a paragraph on minicom. It cites the instructions as having been verified under Red Hat 5.2 and 6.0, although I found references to my current distribution of choice - SuSE - on their web pages.
I was impressed! Their web site is www.actiontec.com
HTH ... BJ


authentication pam and kde

Mon, 23 Oct 2000 08:25:49 -0700
From: Breen Mullins <>
At 11:42 AM +0200 10/23/00, Dean Buhrmann wrote:

Hello,

Kapil Sharma gave in the Oktober issue a few security tips. One is blocking users from doing su and only allowing the users from group wheel to do so. [snip]

It works well in virtual terminals. In KDE however it is now impossible to su. Authentication rejects now always the root password.

Hi Dean -
This also fails in Gnome if I use the default terminal. Try opening a vanilla xterm - I can su if I do it there.
Breen


Printing in Netscape

Wed, 25 Oct 2000 12:15:56 -0700
In issue 57 (http://www.linuxgazette.com/issue57/lg_tips57.html), Matthew Willis suggested using psnup to print two pages per sheet in Netscape.
psnup -c -n 2 | lpr -pprinter
I had to change this slightly to get it to work for me. I use:
psnup -c -n 2 -pletter | lpr
The "-pletter" option says you're using letter-sized paper (the normal page size in the US). Otherwise it will default to the European A4 size. If you print A4-formatted pages on letter paper, the rightmost part of the content runs off the edge of the page.
The "-pprinter" option didn't work for me. I assume Matthew was trying to select the printer device. According to my lpr manpage, the option would be "-P printer". "-p" filters the input through pr, which isn't what we want. (The pr command formats text files.)
-- Mike Orr

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


HAL 91 - a minimalistic Linux distribution

By


Table of Contents

Introduction

Recently, I started studiying computer sciences in conjuction with economics at the Technical University of Clausthal.

I met another Linux enthusiast, Christian Perle. He told me about one of his ongoing projects. And that one was maintaining the HAL91 Linux distribution..

This article should be a short description of what is HAL91 and where could it be used for.
Please contact , for further information.

I just want to tell you about its existence...

What is HAL91?

In short, a quote of the HAL91 boot message:

_/  _/ _____/ _/        _____/  __/ http://home.sol.no/~okolaas/linux/hal91/
_/  _/ _/  _/ _/        _/  _/  __/            -=[ Floppy Linux ]=-
_____/ _____/ _/   ___/ _____/   _/                 ver 0.2.0
_/  _/ _/  _/ _/            _/   _/             okolaas@online.no
_/  _/ _/  _/ _____/        _/   _/          (c) 1998 0yvind Kolaas

HAL91 is a minimalistic Linux distribution that fits on one floppy disk (1.44MB).

Special about HAL91 is that it comes along with a whole set of useful utilities for maintaining and troubleshooting a linux system, including some limited networking support.

The HAL91 Project was started by Oyvind Kolaas but Christian Perle is now the maintainer of the HAL91 distribution.

Features of HAL91

In order to keep HAL91 as small as possible the whole HAL91 system currently uses the libc5.

Kernel 2.0.36 is the current kernel version.

HARDWARE REQUIREMENTS:
You just a need a minimal system with a 386 processor and 8MB of RAM. HAL91 comes along with harddisk and CD-ROM support but it runs directly from floppy out of a RAM disk.
A special feature of HAL91 is the included minimal support for NE2000 compliant network hardware and the ability to establish a PPP connection over a null modem cable (via the ppp-nullmodem script).

The following programs and tools are included with the HAL91 distribution.

tool/program Description
bash bourne again shell
bunzip2 uncompress bzip2 files
bzip2 compress files to .bz2
cat concatenate files
chmod change file permissions
chown change file ownerships
chroot change root filesystem
cp copy files
dd read/write devices and files
df show free disk space
dir show contents of directory (symlinked to ls)
dmesg show kernel messages
du show disk usage
e2fsck check/repair an ext2 filesystem
elvis clone of the vi editor
fdisk partition hard disks
free show memory statistics
ftp ftp client
grep search for patterns in files (symlinked to rgrep)
gunzip uncompress gzip files
gzip compress files to .gz
halt halt the system
hostname show/set hostname
ifconfig configure network devices
init.net simple script for configuring ethernet
insmod load kernel modules
less display files
ln create links
loadkeys load keymaps
ls list contents of directory
lsmod show loaded kernel modules
mkdir create directories
mke2fs create an ext2 filesystem
mknod create special device files
mkswap set up swap partition
more display files (symlinked to less)
mount mount filesystem
mv rename/move files
ncp server/client to copy files/directories over network
npoll receive stdin over network (symlinked to ncp)
npush send stdin over network (symlinked to ncp)
open open virtual consoles
ping send ICMP requests
ppp-nullmodem simple script for PPP using nullmodem cable
pppd PPP daemon
ps show process status
reset clear the screen
rgrep search for patterns in files
rm remove files/directories
rmmod remove kernel modules
route configure network routes
sh bourne shell (symlinked to bash)
sleep pause for a specified time
swapoff turn off swap (symlinked to swapon)
swapon turn on swap
sync synchronize cache with disks
tar tape archiver
telnet remote login client
tr translate characters in files
umount unmount filesystem
update automatic syncing of filesystems
vi vi editor (symlinked to elvis)
zcat concatenate gzip compressed file (symlinked to gzip)
zless display gzip compressed files

(And this fits on a single floppy disk!)

The HAL91 floppy is bootable. Just insert it into your floppy drive and start your computer.

The bootloader LOADLIN is also included with the HAL91 floppy. You can launch HAL91 directly from a running DOS.

All visible files on the HAL91 floppy are on a VFAT file system. You can inspect the disk and even copy its contents (with losing the ability to boot directly from it) to anywhere using a DOS or Windows compatible system.

Kernel features of HAL91

HAL91's kernel configuration is shown in the file kconf on the disk:

#
# Automatically generated by make menuconfig: don't edit
#

#
# Code maturity level options
#
# CONFIG_EXPERIMENTAL is not set

#
# Loadable module support
#
CONFIG_MODULES=y
CONFIG_MODVERSIONS=y
# CONFIG_KERNELD is not set

#
# General setup
#
CONFIG_MATH_EMULATION=y
CONFIG_NET=y
# CONFIG_MAX_16M is not set
CONFIG_PCI=y
CONFIG_SYSVIPC=y
# CONFIG_BINFMT_AOUT is not set
CONFIG_BINFMT_ELF=y
CONFIG_KERNEL_ELF=y
CONFIG_M386=y
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M686 is not set

#
# Floppy, IDE, and other block devices
#
CONFIG_BLK_DEV_FD=y
CONFIG_BLK_DEV_IDE=y
# CONFIG_BLK_DEV_HD_IDE is not set
CONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
# CONFIG_BLK_DEV_IDESCSI is not set
# CONFIG_BLK_DEV_IDE_PCMCIA is not set
CONFIG_BLK_DEV_CMD640=y
# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
# CONFIG_BLK_DEV_RZ1000 is not set
# CONFIG_BLK_DEV_TRITON is not set
# CONFIG_IDE_CHIPSETS is not set
CONFIG_BLK_DEV_LOOP=y
CONFIG_LOOP_ROOT=y
# CONFIG_BLK_DEV_MD is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_INITRD=y
# CONFIG_BLK_DEV_XD is not set
# CONFIG_PARIDE is not set
# CONFIG_BLK_DEV_HD is not set

#
# Networking options
#
# CONFIG_FIREWALL is not set
# CONFIG_NET_ALIAS is not set
CONFIG_INET=y
# CONFIG_IP_FORWARD is not set
# CONFIG_IP_MULTICAST is not set
# CONFIG_SYN_COOKIES is not set
CONFIG_IP_ACCT=y
# CONFIG_IP_ROUTER is not set
# CONFIG_NET_IPIP is not set
# CONFIG_INET_PCTCP is not set
# CONFIG_INET_RARP is not set
# CONFIG_NO_PATH_MTU_DISCOVERY is not set
CONFIG_IP_NOSR=y
CONFIG_SKB_LARGE=y
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_AX25 is not set
# CONFIG_NETLINK is not set

#
# SCSI support
#
# CONFIG_SCSI is not set

#
# Network device support
#
CONFIG_NETDEVICES=y
# CONFIG_DUMMY is not set
# CONFIG_EQUALIZER is not set
# CONFIG_PLIP is not set
CONFIG_PPP=y
# CONFIG_SLIP is not set
# CONFIG_NET_RADIO is not set
CONFIG_NET_ETHERNET=y
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_NET_VENDOR_SMC is not set
# CONFIG_NET_PCI is not set
CONFIG_NET_ISA=y
# CONFIG_LANCE is not set
# CONFIG_AT1700 is not set
# CONFIG_E2100 is not set
# CONFIG_DEPCA is not set
# CONFIG_EWRK3 is not set
# CONFIG_EEXPRESS is not set
# CONFIG_HPLAN_PLUS is not set
# CONFIG_HPLAN is not set
# CONFIG_HP100 is not set
CONFIG_NE2000=y
# CONFIG_SK_G16 is not set
# CONFIG_NET_EISA is not set
# CONFIG_NET_POCKET is not set
# CONFIG_TR is not set
# CONFIG_FDDI is not set
# CONFIG_ARCNET is not set

#
# ISDN subsystem
#
# CONFIG_ISDN is not set

#
# CD-ROM drivers (not for SCSI or IDE/ATAPI drives)
#
# CONFIG_CD_NO_IDESCSI is not set

#
# Filesystems
#
# CONFIG_QUOTA is not set
# CONFIG_MINIX_FS is not set
# CONFIG_EXT_FS is not set
CONFIG_EXT2_FS=y
# CONFIG_XIA_FS is not set
CONFIG_NLS=y
CONFIG_ISO9660_FS=y
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
# CONFIG_UMSDOS_FS is not set
CONFIG_VFAT_FS=y
CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
CONFIG_NLS_CODEPAGE_850=y
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_KOI8_R is not set
CONFIG_PROC_FS=y
# CONFIG_NFS_FS is not set
# CONFIG_SMB_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set

#
# Character devices
#
CONFIG_SERIAL=y
# CONFIG_DIGI is not set
# CONFIG_CYCLADES is not set
# CONFIG_STALDRV is not set
# CONFIG_RISCOM8 is not set
CONFIG_PRINTER=y
# CONFIG_SPECIALIX is not set
# CONFIG_MOUSE is not set
# CONFIG_UMISC is not set
# CONFIG_QIC02_TAPE is not set
# CONFIG_FTAPE is not set
# CONFIG_APM is not set
# CONFIG_WATCHDOG is not set
# CONFIG_RTC is not set

#
# Sound
#
# CONFIG_SOUND is not set

#
# Kernel hacking
#
# CONFIG_PROFILE is not set

HAL91 - what to do with it?

In short, you could use HAL91 as a rescue and trouble shooting disk. It comes along with all needed tools and it runs out of the box without requiring the hard disk to run.

The included tools can be used for network trouble shooting.

HAL91 can be used as a boot image for bootable CD-ROMs and it could be used as a base Linux to install another Linux.

Last but not least, it is a very good starting point for learning about the creation of a running distribution.

Related links

Here, you may find links to the homepage of the HAL91 project.

NOTICE: The webpage mentioned in the current HAL91 boot message does not exist anymore.

written with permission of


Copyright © 2000, Matthias Arndt. Copying license http://www.linuxgazette.com/copying.html
Published in Issue 59 of Linux Gazette, November 2000

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


Open Source is Open for Business

*100% free of Monopoly code*

By


So there I was at ComputerAvenue talking with Lin the Wanton and her mates behind the counter. They know I am a Linux user and they like to bring out their complaints about the Monopoly to see what I say. They may bring up the death of Corel just to get a rise out of me. This time the subject turned to credit card access for your business and how do you get it if you are a 100% committed Linux user. You can have any number of helpers and agents and credit card companies at your door, ready to sell you some credit card action for your eBusiness. Oh, they just love you to death because there is so much peer pressure on small business to "get online". It smells of money and that is blood in the water for these sharks.

It seems that every one of these credit card sellers is on something called IIS and it only runs on NT or Windows of various mutated varieties. That is not in itself a bad thing. A webserver is a webserver. However, the company that makes this software has been found guilty of anti-competitive monopolistic practices in a court of law. A scrupulous business will avoid any involvement with such an unsavoury element. It is obvious to you and to your conscientious customer that when you lie down with dogs, you wake up with fleas.

The question is "How can a committed Open Source business avoid getting caught up in this IIS webserver for its most important transactions?"

The answer is that Open Source and non-Monopoly solutions can be found. I am going to share with you:

online for free

That is right, my website is hosted for free. There are no annoying popup browser windows. There is no monthly fee. There was no money up front. There has never been any money change hands to keep the site up.

Simple code on each of your html pages will make sure that only a nice controlled banner will appear at the top of each page instead of an annoying popup browser window.

The simple code:

<body>
<!--#echo banner=""-->

That is it. Just make darn sure that the "echo banner" is the first thing after the end of the "body" tag.

use the force Luke

I see that advertising money can force a search engine to cough up a well financed site to the top of the search results. If your search engine site owns some other sites, it can also get its own sites forced up to the top of the search results. This is not in itself a bad thing, but it will educate you as to how the internet is shaping itself. A search for "free hosting site" will always turn up some very big operations in the first page or two of results. This works in your favour if you can further winnow out the IIS/NT chaff. My tool for this job is www.netcraft.co.uk and their feature page for "What's that site running now?".

I found hypermart that way. They did not use any Monopoly code, so I gave them the business, literally. The nice folks at hypermart have a very fine web-based site manager for you and yes, you can do a little check mark to insert banners automatically. However, you know and I know that automatic switches can sometimes get turned off; especially on a big site like this.

I have listed several sites that are free hosts for your website. Funny, none of the listed sites are using Monopoly coded webservers.

credit card access

The hard part about shopping for an online credit card merchant account is that you have to know how to approach each new vendor. It helps if you can get a nice professional response because then you can do some straight business without posing.

I must admit, I did do some posing. Here is the result of the search: you are going to need 300.00 bucks US to purchase your very own merchant credit card account. The only advantage to this that I can see is that you can then take "air money" for intangibles like Service, Licensing and Donations.

There are many credit card agents that can sell you a merchant credit card account. Most of these are using a thing called IIS on something called NT or another one called Windows, with various version numbers. They are sold by the Monopoly and you should be concerned about exactly how much information is being sent to the Monopoly headquarters from each transaction on these sites.

no money up front

There are some credit card agents that can do the credit card transaction for you with no money up front because you are using their merchant account to sell products on your site.

Many times here in Canada I have been sent spam to inform me that I can set up credit card access on some agent in the USA. For the Canadian merchant, it was not available.

Here is one for you that can be used by a Canadian vendor. It is called CCNow.

Verify the operating system and web server at www.netcraft.co.uk.

You will find that CCNow runs on Solaris and uses Netscape Enterprise server. This is Unix, folks, the Monopoly has nothing to do with your customers or their precious information. It is locked down on a secure Unix server. It is safe.

There are many Linux and Open Source sites available for other payment options. The most well known of these is PayPal, who have recently started just this kind of credit card access for you. Be cautious; the paypal site uses Apache Stronghold on Linux but the parent site is www.x.com and they use that IIS thing on NT. You will not be able to know if your information is safe and secure on a Unix system in that group of sites. Make a check of the https server at www.netcraft.co.uk to be sure. Select "What's that SSL site running?".

transactions 100% free of Monopoly code

I can not tell you how important this one registers in the minds and hearts of your Open Source customers. I can say that the Monopoly has created the Open Source movement by abusing their customers. Maybe that is self-evident.

To hammer the point home, I want you to remember that on a Monopoly controlled machine secret information is passed between Monopoly headquarters and your machine on the internet. The privacy statements that you see on every website are there because the Monopoly threatened to pull advertising revenue from sites without a privacy statement. The reason such a big show was made about privacy is because the Monopoly was caught sending user profiles to the Monopoly headquarters from every Monopoly machine every time they went online on the internet. So there, now you know.

At my little shop, we avoid this secret pitfall by not using any Monopoly code on our credit card transactions. This is done by making sure that our credit card agent uses Sun technology or Open Source technology. If any other source for software comes up, let them be a sworn enemy of the Monopoly like Sun or let them be as free with their source code as BSD. I have spoken.

pennies per click

First, you have to have content on your site. A site full of sites is nice, but every yahoo and his dog is making portal sites that are sites full of sites. What you need is actual readable, stealable content in order to get your fair share of visitors. You can not be MacDuffie's or Windy's but you can offer a solid meal at great prices and add something to set you apart.

Now that you have some traffic to offer to a potential advertiser, you can do the rounds of pay-per-click agents. These are websites full of advertisers willing to pay for clickthrough from your site to their site. They often pay per click.

You can identify a clickthrough advertiser when it offers an affiliate program. In contrast, a reseller program requires that you actually do some selling in order to get a commission. Go to the affiliate program site, give your information and maybe you can get some code to put on your pages to refer your clickthrough pennies. They will add up.

Open Source eCommerce

Yes, we are under a lot of peer pressure to set up eCommerce, eBusiness, eFood, eToilets, ad nauseum. Your typical commercial sales outlet for eCommerce is waiting for you to submit thousands of dollars for a very nice eCommerce software package. Well, you now have a freely distributed Open Source eCommerce solution. Put your money into service and technical support because the code is released under the GPL.

The package is nicely wrapped up into a very beautiful "lady store" put together by very smart folk at Open Sales. You simply download the source code and put the store into operation on your web server. Then after you have worked out any kinks, you go online with a professional eCommerce site.

Open Source and open for business

When it is all built and bug-tested, you will have created an Open Source based, free-economy, world-beater of an eCommerce site. How much did you pay for hosting? Zero. How much did you pay for credit card access? Zero. How much did you pay for your world class eCommerce software? Zero. How much do you love this concept? You be the judge. It is all right here, waiting for you. Now go and tell your friends.

Rants and References

A click is a LeftButton MouseEvent. It is caused by the carpal tunnel sufferer twitching downwards on his Left Rodent Button while the cursor on the screen is inside the borders of the advertiser's little button or hypertext link.

Agents for credit cards are able to create a merchant credit card account for you with the credit card companies. You really do need a merchant credit card account because there are so many ways to get money for services rendered. You see, if you go to a credit card agent that lets you use their account for your sales, then the legal relationship requires that you sell something real and tangible. If you want to get rental fees, or fees for time spent, then you will need your own merchant credit card account.

Submit is a word that I expect to hear when you have knocked me down and you have your foot on my neck. It is not so friendly as it could be. Please consider converting all of your "Submit" buttons into "Send it" buttons. I refuse to submit!

Death may be too strong a word. How about infection? With the Monopoly propping up all of their dying competition, we can seriously consider that only the Monopoly has enough money to go into the software business under the old model for proprietary code. Look, you wonder why I write this article? It is because so much of the movement in the business world is driven by foolish decisions to go with the money rather than make a new ballgame. Paying thousands of dollars for software that can not do as much as Linux is just plain stupid. Unless of course, you go with Open Source and Linux for all of your needs. Then this moaning becomes redundant. Anyway, beware any Linux binaries coming out of Corel now that 24% of the company is in convicted monopolist hands. Source code is ok with me; it is the secret binaries that frighten me. My fear is only based on the Monopoly's past behaviour and convictions in a court of law.

Yahoo is one of a growing number of real words that are getting appropriated by stupid trademarks and silly patents. I hope I have offended all yahoos at Yahoo by using `their' word. Yahoo, yahoo, yahoo.

My meaning for a very beautiful "lady store" is one where even a discriminating and classy woman can shop at ease and comfort. You see the clean site layout and feel secure in the knowledge that you are in the very nicest of company. A "lady store" is one you can show off to designers, graphic artists, print media professionals and even your mom.

The Monopoly has mutated their software many times and each time the captive has to purchase a new version. Mutation is in the eye of the beholder, as evidenced by this advertisement.

Here are the sites that I have found to be free hosting sites. In the search engine at netscape I gave the keywords "free hosting site". It is in no way an exhaustive list. It is an Open Source list as far as I could tell. My apologies to anyone who is not listed. I did not know about you. You can check their webserver at www.netcraft.co.uk to see what operating system is reported.

Here are the sites that I have found to be Open Source or non-Monopoly merchant credit card account access sites. In the search engine at netscape I gave the keywords "online merchant credit card account". It is in no way an exhaustive list. It is a clean list as far as I could tell. My apologies to anyone who is not listed. I did not know about you. You can check their webserver at www.netcraft.co.uk to see what operating system is reported.

Here is what the article will help you to find: the Operating System changes.

The above example looks like a fine safe Unix style of site for your eCommerce. Look again. NBCi is owned by the Monopoly. I did not see much of the Olympics. I have three TV channels over here that I skip over and do not watch. That is right, MSNBC has infected my TV. They already have your WebTV, your Windows Me (them?) and your NT box.

Open for Business

excellent Linux documentation references:

Commercial-HOWTO

Intranet-Server-HOWTO

Networking-Overview-HOWTO

WWW-HOWTO

Made with mcedit on an i486
running RedHat 5.0 GNU/Linux 2.0.35
because nobody forced me to upgrade a working system.
All references to revolution are purely intentional.

"Linux--where the only monopoly we support has a Boardwalk and a Baltic Avenue."

[If you didn't follow that link above about the dirty tricks Microsoft has been caught doing, here it is again. It really is worthwhile reading. -Ed.]


Copyright © 2000, Bill Bennet. Copying license http://www.Linuxgazette.com/copying.html
Published in Issue 59 of Linux Gazette, November 2000

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


Narval, the Intelligent Personal Assistant
--or--
How the French Linux Gazette is Built

By


Abstract

Narval is an Intelligent Personal Assistant software, released under the GNU Public License by Logilab. It was used to set up Gazo, a bot that is assisting the group of volunteers that translates Linux Gazette into French, by taking care of most of the coordination-related work. Narval features artificial intelligence and agent technologies and contributes to change the way we use the Internet and computers. Narval stands for Network Assistant Reasoning with a Validating Agent Language.

Gazo, a real-life example

When I took over the coordination of the French translation of Linux Gazette, I was quickly faced with the very same problem the former coordinator had to deal with: time. Coordination is no brain work, but it can quickly take up a large amount of time: scan your mailbox for e-mails from people offering to translate an article, check that it is not taken yet, send back an answer, update the web page, merge all the articles into one monthly issue... It seemed to me that I was always losing most of my time with repetitive tasks and losing other people's time when not being able to send back an answer right away saying "go ahead" or "this one is already taken". In other words, I had an itch to scratch.

I can hear you say "Just write a server script and let your contributors ask for articles using HTML forms!". I had three reasons for not doing it. The first one was that some people back then did not have web access, only e-mail. The second reason was that I didn't want to cut off the translation of Linux Gazette from the rest of the translation of the LDP, hence I wanted to keep using the mailing-list[1]. Last but not least, I had already been doing some work in the field of artificial intelligence and agents and thought it would be a nice opportunity to try out a couple ideas. I named that agent Gazo, after the magazine you are currently reading.

The first version of Gazo was nothing like the Narval framework. It was a single python script that would get incoming mail from procmail. Gazo was fed a copy of every e-mail I would receive and try to figure out if it concerned Linux Gazette by looking for keywords in the subject. If it did, it would parse the subject field using regular expressions, trying to extract the demand of the user, which could be one of the following: ask for an article, send a translation, send a proof-read translation or abandon an article. A typical subject for offering to translate the article F of the issue 58 was "[lg] asking for article 58 F". In case Gazo found a match for the subject it would execute several actions.

  1. When someone asks for an article, check he is not already translating two articles and that the article is not already assigned to someone else. If everything is OK, assign the article to that person, send him a confirmation e-mail, update the web page and tell the coordinator (me) what was done.
  2. When someone sends a translation, check that the article was assigned to him, save the attached file to the in-progress/translated/ directory on the FTP server, send an e-mail to thank the contributor, pick up one of the volunteer proof-readers who has the fewest articles assigned and notify him via e-mail that he has a new article to proof-read, then update the web page and tell the coordinator what was done.
  3. When someone sends a proof-read translation, check that the article was assigned to him, save the attached file to the in-progress/proof-read/ directory on the FTP server, thank the sender, update the web page and tell the coordinator what was done.
  4. When someone sends an abandon notification, save the attached file to the in-progress/unfinished/ directory on the FTP server, say "thank you anyway", update the web page and tell the coordinator what was done.
  5. Every week, post a list of the articles waiting to be translated and remind the people who are translating articles that they have not sent their translation yet and can abandon it if they do not have time to complete it.

As you can see, there's no surprise here, just writing e-mail, moving files around and keeping everything synchronized. And as you probably know already, in computer science, "without surprise" often rhymes with "can be automated" (well, could have...;-).

That first script worked well for over a year, but proved to be difficult to extend, because describing sequences of actions and testing for all possible error cases required writing a lot of code. Another itch needed scratching... but it took much longer than the first one and more than myself to deal with it. Ladies and gentlemen, please welcome the Narval Project.

Narval

When you spend most of your day using your computer to work with other people on several projects, keep in touch with friends, try not to lose ground on the news front and answer phone calls, you soon realize that what you really need is someone or something that does part of your work for you. That someone exists and is called a secretary or an assistant. They are real people, work for money, sleep at night and do not necessarily add up two ten digits numbers in 10e-9 seconds. That something exists too. There are a few instances of it in several AI labs, but unlike the former, they're not that smart. Nonetheless, let's be optimistic and call those somethings Intelligent Personal Assistants.

Narval is one of them. It borrows from advanced techniques like petri nets, rule-based systems, programming by contracts, planning, automated learning, component programming and XML, to let one release the pressure of repetitive work.

Narval executes recipes, that are sequences of actions linked by transitions. An action can be downloading a web page, performing a database query, transforming a piece of XML, sending an e-mail or whatever you may want to wrap in a few lines of python code. Conditions can be associated to transitions so that you can control the execution path through the graph representing a recipe. That gives you the basic vocabulary to control the flow of execution through different branches of your recipe and to coordinate concurrent tasks.

Using a graphical user interface named Horn (Narval is French for narwhal or narwhale, see below), a user can create a new recipe in a few mouse clicks by assembling building blocks (actions from the library, other recipes) and specifying the conditions associated to the transitions that link blocks together.

In Narval, everything is represented using XML: action prototypes, pieces of information, recipes, etc. XML provides a basic format to express the structure of the data that is manipulated. If you have ever worked with a Unix shell, you probably have realized the power of the pipes that let you do a lot of work by making a data stream flow thru filters and programs. Similarly, Narval executes recipes by passing XML fragments from an action to another, an important difference being that with Narval, the stream of execution goes thru a graph, not a sequence. At each step, pieces of XML are transformed and/or created. Narval keeps track of what did what.

In Narval, actions have complex prototypes that borrow from programming by contracts. A prototype specifies conditions on the XML nodes the action needs as input and will return as output, whether it can process a list or not, etc. For each input and output a set of XPath expressions is used to define the name of the tag, the value of an attribute, etc. When executing the actions, Narval will use these expressions to detect errors and failures and abort the recipe if it has no way to recover. That provides a permanent run-time verification mechanism that reveals itself quite useful and that Eiffel programmers already know of.

The new version of Gazo is built on top of Narval as a set of recipes. It does the same as its predecessor, but is expressed in a higher-level graphical language, is easier to modify and maintain and will benefit from the other capabilities of Narval, such as error recovery, learning (this user always takes a lot of time, do not let him have more than one article), etc. An image being worth a thousand words, I won't go thru the details of Gazo's behavior once again, just read the above description while looking at the two screen-shots below, then try to answer the following question: which one is more expressive, those graphs or 1000 lines of python script? The labels prefixed by Gazo correspond to bits of python code, the ones with underscores are XSL transformations and the others are recipes. The first screen-shot is the top-level recipe, the second one is the "Ask for article" recipe.

top level recipe ask for article

What's new in this? One may object that the coordination problem described above could have been solved using a simple web application and that commands have been included in the subject of e-mails even before the first mailing-list management software. Both are true, but completely miss the point. Narval is, in a sense, an interpreter for a high-level graphical language, and draws its power and simplicity of use from features such as complex action prototypes and contracts, run-time arguments selection, rule-based mechanisms, large action library, etc.

Narval is not an application, but a framework to create your personal assistant in a few mouse clicks.

What's next?

Narval's ambition is to be the best Intelligent Personal Assistant available on the Net and to grow into a software that really deserves the adjective Intelligent.

In our group of developers, we already have a Narval that helps to coordinate our projects. Each of us has its own Narval that assists him by filtering out junk ads from web pages, fetches the daily cartoons, summarizes in one page the news from different web sites, checks the agenda and sends reminders for appointments, accepts voice commands and answers using text-to-speech free software.

Applications are endless, as with any programming language. Our plans are twofold. On the one hand, integrate in the libraries all the actions we can think of: voice modem to be able to "phone home" and tell your assistant what to do, home automation protocols like X10 to control your home, cell-phone and PDA features, etc. As stated, new actions can easily be added with a few lines of python code. On the other hand, we will develop and implement the intelligent features the Narval framework was designed for, but that are missing at the time of this writing: planning, learning and cooperation with other assistants.

Planning. Once you have a sufficient number of actions, a set of basic recipes and a description of the relations between different concepts, you can start doing planning: you give your assistant a goal, like "suggest me a movie for tonight", and it will figure out a sequence of actions that will make it fulfill that goal (extract critics or rankings from a movie web site, compare to the user preferences, look up the theatre schedule and send back the suggestion to the user). The prototypes of the actions are particularly useful for this.

Learning. In Narval, everything is represented using XML. Each piece of information has a structure. Each piece of information has a timestamp. Each piece of information has a trace: what produced it, what used it, for what purpose, etc. If you have any experience with automatic learning, you know that this is a valuable setup on top of which it is possible to implement many algorithms. Using learning techniques, your assistant could realize that every Friday, you visit a web site about movies, then offer you to add that site to your Friday daily newspaper or start searching for movie critics.

Cooperation. Making two people or two assistants cooperate is often a matter of protocols. If you want them to be smarter, it becomes a problem of recognizing what the other is doing. Having recipes as explicit sequences of actions and having all the features mentioned about learning is of real value in tackling cooperation.

Are we alone out there?

Narval is the only Intelligent Personal Assistant released as free software that we know of. At least three companies have commercial products that we consider related, even if they do not belong to the same category for they are not as generic nor customizable and extensible as Narval.

The first one is the software that comes with the TiVo VCR. It fetches the TV program for you, helps you to set up the recording of a show, and may even suggest a movie to watch depending on what genre of movies you have watched lately.

Prody Parrot, from Mindmaker, was shipped with Sound Blaster sound cards for some time. Working on windows only, it would help you sort your e-mail, remind you of your appointments, download web pages and summarize them, entertain you by dialoguing as if it were a psychoanalyst (ever tried Eliza in Emacs?), using speech recognition and text-to-speech. Those are quite nice features, but you wouldn't set up an assistant like Gazo with that software...

The last one is a web application named One Red Cube that acts as a personal communication hub that can redirect your phone calls, your faxes and your e-mails from one device to the other. Nothing like an assistant, but the idea of integration is there.

There are also three free software projects that work on things loosely related to Narval and worth mentioning. The GNU Bayonne project, as a Computer Telephony Integrated server, could very well end-up as a valid competitor to One Red Cube. The Mister House project is a nice home automation system that implements many features. Provided you're not afraid to write some perl code and get your hands dirty, it will let your house play a song when you walk up the stairs, ask quiz questions during breakfast and download the weather forecast when you ask for it on the phone. Last, the Piper project is building a visual shell that let you federate resources from different hosts using a graphical user interface to draw a flow chart analogous to streams and pipes.

Exotic whales

Narval in French, narwhale in English, is a sea mammal that lives in the Arctic Ocean. The male has a tooth that grows out of his mouth and turns into a long tusk. The Narval's tusk was believed to be a unicorn horn and sold in Europe during the middle ages (and later), thus proving the existence of the unicorn.

Our prototype system was called Al, named after the HAL computer in 2001: A Space Odyssey. When we where looking for a name, we wanted to keep the Al syllable, and we ended up with Narval. It offers a nice acronym and a nice mascot.(Linux has Tux the penguin; we have Ornicar the narwhale! :-) Since the narwhale is known for its tusk, we wanted to use that name for the companion user interface, but Horn offers a better acronym (Human ORiented Narval interface), so we did as if it was a unicorn horn and not a Narval tusk.

Here are some follow-up links for the curious:

Conclusion

I hope this article made you feel like trying Narval and learning more about artificial intelligence, agent technologies and their applications to real-life problems. Feel free to join our mailing lists to discuss further these matters.

That's all folks, Happy Hacking!

[1] Like the Linux Documentation Project itself, the French translation project is volunteer work. The principal medium for discussion, help and most of the coordination is a mailing-list. See http://www.traduc.org/ for details.


Copyright © 2000, Nicolas Chauvat. Copying license http://www.linuxgazette.com/copying.html
Published in Issue 59 of Linux Gazette, November 2000

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


HelpDex

By


9000000.jpg
alevel.jpg
eric.jpg
niece.jpg
pink.jpg
rotflmho.jpg
superuser.jpg
vacation.jpg

Courtesy Linux Today, where you can read all the latest Help Dex cartoons.


Copyright © 2000, Shane Collinge. Copying license http://www.linuxgazette.com/copying.html
Published in Issue 59 of Linux Gazette, November 2000

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


Interview with Google's Sergey Brin

By
Originally published at OLinux


Google: An important tool to organize information around the world

Sergey Brin, a native of Moscow, graduated with honors with a bachelor of science degree in mathematics and computer science from the University of Maryland at College Park. He is currently a Ph.D. candidate in computer science at Stanford University, where he received his master's degree. Brin is a recipient of a National Science Foundation Graduate Fellowship. Brin's research interests include search engines, information extraction from unstructured sources, and data mining of large text collections and scientific data. He has published more than a dozen publications in leading academic journals, including "Extracting Patterns and Relations from the World Wide Web"; "Dynamic Data Mining: A New Architecture for Data with High Dimensionality," which he published with Larry Page; "Scalable Techniques for Mining Casual Structures"; "Dynamic Itemset Counting and Implication Rules for Market Basket Data"; and "Beyond Market Baskets: Generalizing Association Rules to Correlations."

OLinux: What is Google company's mission?

Sergey Brin: Google's mission is to organize the world's information, making it universally accessible and useful.

OLinux: When did you start this company? What was your initial motivation and how do you see it nowadays?

Sergey Brin: We started working on Google in 1995, as a research project at Stanford University. In 1998, we formed the company, Google Inc., and launched the search engine in beta to the outside world. This happened in September 1998. Our goal was to created a very simple and easy-to-use website that offers the best search engine in the world. This is still our goal, and we plan to continue to focus our business on search technology for some time to come.

OLinux: What kind of customers look for Google services and what are your company main clients? How fast Google wants to expand its solutions to other countries around the world?

Sergey Brin: We have over 100 customers in over 20 countries. Some of our banner customers include Yahoo!, AOL/Netscape, Cisco, WashingtonPost.com, and VirginNet (in the UK). Google customers license our technology because they are looking for the fastest, most relevant search on the Internet. Google currently supports 25 language searches, and will continue to aggressively add to this list. We ultimately hope to support all major languages in the world.

OLinux: How fast revenues are growing? Are there any plans for an IPO?

Sergey Brin: We're very happy with our business plan. Revenues are growing every quarter and we've made very few changes to our business strategy since we started the company. An IPO is something we're considering, but is not in our near-term plans. We've always managed the finances of our company very carefully, and we are fortunate to still have a very strong cash position from our initial venture financing, which was in June 1999.

OLinux: How did business over Internet has change the use of Google widening client's base and for searching tools?

Sergey Brin: We have millions of users a day who use Google to search for products and product information related to their purchasing decisions. For example, we index almost the entire Amazon.com website. As more and more information appears on the Internet, Google plans to index it and offer this content to our users. Google currently is the world's largest search engine, with over 1 billion web pages in our index.

OLinux: What are your responsibilities at Google? Rapidly, describe your daily tasks at Google?

Sergey Brin: Both my partner, Larry Page, and myself are very involved in almost all aspects of our business. I spend quite a bit of time each day on hiring, internal management, and marketing.

OLinux: How does Google collaborate with its partners?

Sergey Brin: Each of our partner relationships is unique, so it's hard to answer this question. We support our partners in a variety of ways, from simply providing the world's best search technology, to co-marketing, to providing technological assistance, etc.

OLinux: What are the Google marketing strategies and alliances in order to keep itself on the Internet market?

Sergey Brin: Google actually relies on our users to help with our marketing. We have a very high percentage of our users who often tell others about our search engine. This has helped Google immensely, and has helped our website traffic grow over 20% per month since we started our company in 1998.

OLinux: How is Google organized? Try to give us an idea of how Google works? How is the coordination and management (servers, directories, contribution, staff payment)? How many people are involved? What are the main problems? Does Google have a central office somewhere or a HQ?

Sergey Brin: Google has two offices. Our headquarters are in the heart of Silicon Valley -- in Mountain View, California, which is about 10 minutes from Stanford University, where Google was born. We also have a small sales office in New York City, with about 10 employees who sell advertising for us. In total, we have just over 150 employees. Most of these employees are involved with our technology and engineering department. We have over 30 PhD's in this group!

Google's servers (we have over 6,000 servers that run RedHat 6.2) are hosted at three data centers across the U.S. -- one in the Washington DC area, and two in Silicon Valley.

OLinux: Please, evaluate rapidly Google evolution in terms of pages served using its tools? Can you describe something that really helped the project to succeeded? Have any idea of number of sites using Google search engine? Number of pages served by google engine every day?

Sergey Brin: Google currently servers over 20 million searches per day on our own website (www.google.com), and over 50 million searches per day on our own site and our partner websites (Yahoo, Netscape, Cisco, etc.). Have so many smart and talented employees has really helped our company succeed. There are over 25,000 websites on the Internet that use the Google search engine.

OLinux: Why should a site choose Google search engine instead of others? What are the better features Google bring to users?

Sergey Brin: Google offers users better quality search results, a simple, easy-to-use interface, high performance, and an exclusive focus on just being a search engine. We also offer cool features like caches pages, stock quotes, news headlines, links to online maps.

OLinux: Let's talk about Research and Development (R&D) and Software Engineering (SE): How many people work in SE activities developing google main tools? What is its policy toward investment in R&D?

Sergey Brin: We have about 80 engineers and R&D team members, and we're big fans of investing heavily in R&D.

OLinux: How is the research & development coordinated? What are the analysis and programming tools used? Are there any special quality control, auditing on code produced?What are the main projects under way?

Sergey Brin: They're very closely intertwined; developers do research and vice versa, and everyone talks a lot. Communication is very good between both of these groups.

For programming we use gnu tools: gcc, gdb, gnats. We use p4 for version control. For network installs, we use a variety of our own software, in addition to rsync. Machines are built on-site here at Google, configured, then shipped over to one of our three data centers.

We have a detailed regimen for code reviews and testing (QA).

The main projects we're working on, outside of improving the overall quality of our search engine are: Google wireless search technology, a variety of voice recognition projects, and Google international search technology bringing Google to more users worldwide.

OLinux: Currently, Google search engine runs in more than 5000 Red hat Linux servers. I read that Google system install and configure 80 servers at a time. What kind of tools coordinate this mass installation? What are the administrative tools used to monitor, check and replace servers failures? How is Linux used at the Google Projects? Why was Linux choose to improve Google search engine?

Sergey Brin: Actually, we currently run over 6,000 RedHat servers.

Linux is used everywhere...on the 6,000+ servers themselves, as well as desktop machines for all of our technical employees. We chose Linux because if offers us the price for performance ratio. It's so nice to be able to customize any part of the operating system that we like, at anytime. We have a large degree of in-house Linux expertise, too.

Most of our administrative tools were developed in-house, as well.

OLinux: What is Google security policy and how is it implemented?

Sergey Brin: Most of our machines are behind a router and not accessible to the outside world. The outside-accessible machines (webservers) are carefully audited for security holes.

We also use ssh an awful lot. :-)


Copyright © 2000, Fernando Ribeiro Corrêa. Copying license http://www.linuxgazette.com/copying.html
Published in Issue 59 of Linux Gazette, November 2000

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


IBM: The Big Blue Support for the Linux Comunity

By
Originally published at OLinux


OLinux: What is the group behind Linux at IBM (ibm open source site)? How are they divided and coordinated? Is there a central coordination for the project? Who is responsible for that?

IBM: Linux solutions touch the entire corporation -- hardware, software and services. IBM has established the Linux Technology Center as a focal point for its technical contributions to Linux. The center, which has a dedicated staff of engineers, manages the transfer of IBM technology to the open source community.

OLinux: How and when was Linux at IBM (the site) started? Was it a sort of top level and strategic decision or was it taken after clients/companies started asking for liunx solutions?

IBM: We began to see customer desire for Linux. IBM started to a formal Linux plan in 1998. We were begining to see customer desire and visionaries in some of our customer segments. viewing Linux as a wave of the future. Along with other open standards, such as HTTP, XML and TCP, we view Linux as playing a pivotal role in bringing interoperability to disparate server platforms and providing customers with an open, integrated e-business structure.

OLinux: How is the work coordinated and managed (servers, directories, contribution, staff payment)? How many people are involved world wide?

IBM: IBM's Linux strategy is to Linux enable all hardware, software and services. There are thousands of people working worldwide on this major initiative.

OLinux: How much has IBM invested ($) on research (labs, staff) and marketing it solutions?

IBM: Overall, IBM has invested millions of dollars in Linux. We will invest more than $200 million in a series of Linux initiatives in Europe and Asia Pacific over the next four years. These investments will include Linux development centers across Europe and Asia, alliances with Linux-focused business partners, along with the rapid deployment of about 600 specialized Linux consultants, hardware and software specialists, and services professionals. In the US, IBM has dedicated millions of dollars to help fund the Open Source Development Lab with Intel, NEC, HP and other Linux leaders

OLinux: From the start, IBM has contributed in many ways to chage conceptions on the computing world. How strategic was the decision to embrace Linux platform?

IBM: The decision was very strategic. For IBM, it's an inflection point that's associated with our focus on creating e-business solutions. We're helping companies build content solutions, commerce solutions, operations solutions--and Linux is a standard that we can use to help integrate all of these. It makes it much easier to move application components around. As a company, we're very sensitive to what it takes to achieve integration, because we're not just focused on selling this or that hardware platform. Linux will become the application development platform of choice for developers because of its multi-platform nature, and because it's not owned by any vendor. As a result of that, you can have vendors collaborating on standards.

OLinux: Was there any connection related to IBM's decision to suport Linux and the retirement of OS2 platform?

IBM: By embracing Linux, we are providing our customers with a choice of operating systems. The decision to embrace Linux is separate from OS2.

OLinux: What are the main research regarding software development projects going on? What´s the database program and programming tools and languages used (Perl, C)? How many developers work for IBM?

IBM: In the Software Group of IBM, we are currently working very hard to make sure all of our mission-critical software is able to support Linux. We have an expansive research and development team at IBM, with the actual number of developers in the thousands.

OLinux: Give us an idea of what Monterey Project represents for IBM?

IBM: The Project Monterey initiative was originally intended to enhance AIX with technologies from IBM's DYNIX/ptx (formerly of Sequent) and SCO's UnixWare operating systems, as well as to extend support for this enhanced AIX operating system to Intel's IA-64 bit architecture. AIX 5L, to be released later this year, demonstrates the success of the Project Monterey initiative, incorporating technology from the world's leading software and hardware providers, while maintaining the robustness of AIX.

AIX 5L -- the next generation of AIX -- takes AIX to the next level with leadership technology, a strong Linux affinity and added support for both IBM's Power and Intel's future IA-64 processor-based platforms, making it the most open UNIX in the industry. IBM, SCO/Caldera and Intel will continue to work together on AIX 5L for IA-64. We anticipate that future releases of AIX will continue to incorporate valuable technologies from IBM and the industry to satisfy requirements from many OEM system providers, independent hardware providers and independent software providers and deliver AIX 5L for IA-64 offerings and solutions.

OLinux: Tell us about IBM's Linux strategy. What are the main projects involving Linux? Are revenues already representative in terms of servers and desktops shipped with pre-installed?

IBM: IBM intends to make all of its server platforms Linux friendly, including S/390, AS/400, RS/6000 and Netfinity servers, and the work is already well underway. Netfinity servers are certified under the IBM ServerProven Program for Caldera, Red Hat, SuSE and TurboLinux distributions. In addition, selected models of IBM IntelliStations and ThinkPads are now Linux-enabled.

IBM has delivered all critical elements of its Application Framework for e-business on Linux, including DB2 Universal Database; WebSphere Application Servers, powered by the Apache HTTP engine; Domino; MQSeries; Developer Kit for Java; Tivoli system management tools; and VisualAge for Java. IBM is also working with its business partners to accelerate the development of applications for Linux. IBM offers a wide range of Linux consulting, design, implementation and technical support services, and a full curriculum of education, training, and certification programs. IBM consultants skilled in Linux are available worldwide to help customers develop, configure and enhance their Linux hardware and software solutions.

OLinux: What kind of custumers use IBM's services and software running Linux? Can you disclose some important companies using Linux? Any cases of study to reveal to us?

IBM: The University of New Mexico purchased 256 IBM Netfinity servers clustered with Red Hat Linux, creating the 24th fastest supercomputer. It is just about ready to go online. This new supercluster will increase the computing capabilities of the National Computational Science Alliance, a National Science Foundation (NSF) funded partnership, providing researchers with a platform for developing improved cluster management tools, gaining operational experience on large-scale clusters, and exploring the scalability of different types of science and engineering applications.

Weather.com, The Weather Channel® Web site, is also using Linux with IBM technology and services to serve its massive volume of maps and images, in an effort to meet the site's extreme traffic demands. IBM solutions will also become part of the Internet infrastructure for weather.com.

OLinux: Can you explain IBM strategy towards building alliances with Linux companies as Red Hat, Turbo Linux, Transmeta?

IBM: Our strategy to work with Linux distributors is driven by customer demand. Our customer base throughout the world has consistantly pointed to the distribution leaders and based on that feedback, we've established solid relationships with Red Hat, SuSE, TurboLinux and Caldera.

OLinux: IBM will ship its ThinkPads with Transmeta Crusoe chip. What this new technologies represent and how IBm plans to deploy it (the Crusoe chip)?

IBM: We continue to evaluate Transmeta as a possible processor technolog and we expect to finalize our decision soon.

OLinux: IBM supports Suse, Red Hat and turboLinux internationally. Why doesn't IBM support Debian GNU/Linux distribution which is regarded one of the easiest and most secure to work?

IBM: We base our decisions on customer demand. While Debian is well thought of, our customers have consistently expressed an interest in Red Hat, SuSE, TurboLinux and Caldera - and that's what we're giving them.

OLinux: Is Linux ready for mission critical operations? Will Linux ever substitute most of Unix in mission critical procesing? Are there any researches about Linux being deployed in such tasks like that?

IBM: Over time, Linux will become a viable enterprise UNIX system, capable of running more workloads requiring high scalability and industrial strength. We will work with the Linux community to help build such an enterprise Linux offering. This will take years, with the rate and pace being determined by the Linux community. Operating systems evolve slowly, and it is uncertain when Linux will have comprehensive enterprise capabilities.

OLinux: What about desktop users: are there any companies asking Linux for desktop apps?

IBM: Customers are always asking for more applications. We are working with the community to help create more applications for both the desktop and the enterprise.

OLinux: How important is the PartnerWorld and PartnerMarketing strategy for IBM's product selling?

IBM: Our partners thoughout the world are very important to our core product strategy. Through our partner programs, we're able to qualify and educate our partners - updating them on trends in the industry, technology advances, new product introductions - quickland easily. Building a solid foundation of key partners has been instrumental in propelling IBM to the forefront of our industry. We established PartnerWorld years ago as a means of centrally gathering our business partners on an annual basis - giving them an opportunity to hear firsthand new developments from IBM.

OLinux: How was Linux World recent event for the company? Can you describe the event on a business perspective? Can you disclose any results about new clients or companies willing to buy IBM's services?

IBM: The most recent LinuxWorld in San Jose, California was a huge success for IBM. We made a significant announcement with Red Hat which allows Red Hat to bundle and resell all of IBM's Linux-based software. This global alliance was incredibly well received. Also at the show, we announced our support for the newly found GNOME foundation and several open source announcements. Based on customer feedback, this show clearly places IBM at the forefront of the Linux movement. We have consistantly supported this new operating system and will continue to help move the technology forward.

OLinux: How does IBM sees KDE and GNOME? Do you think a merger would make better results? What relation does IBM have with GNOME? How importante is the GNOME foundation for IBM?

IBM: KDE and GNOME are innovative, rapidly maturing Linux desktops. Both KDE and GNOME have a large community backing their support. IBM is working with both KDE and GNOME to accelerate Linux on the desktop.

OLinux: In your opinion, how importante is the GNOME foundation to improve Linux usage on the PCs?

IBM: The GNOME Foundation is important to Linux on the desktop because it was formed to advance the GNOME desktop, the world's leading free and easy-to-use desktop environment for the user. GNOME has been designed to run on all modern strains of Unix-like operating systems. The support of leading vendors, including Sun Microsystems, IBM, Compaq, Eazel, CollabNet, Helix Code, Red Hat, demonstrates that the industry is coalescing behind GNOME as the esktop environment of the future. IBM has already released some technologies to GNOM including SashXB for Linux.


Copyright © 2000, Fernando Ribeiro Corrêa. Copying license http://www.linuxgazette.com/copying.html
Published in Issue 59 of Linux Gazette, November 2000

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


Alpha in the New Processors Market

By
Originally published at OLinux


OLinux: Alpha supports all major Linux distributions these days. How has been the relation between Alpha and Linux companies and Alpha and Linux community?

Richard Payne: I think the relationship is great, Alpha support is usually second only to i386 in the Linux kernel and most applications. There have been a few areas where we've had problems (for example Netscape) and there various companies have helped out (for example Compaq releasing the Tru64 libraries so Linux users can run the Tru64 version of Netscape).

In addition I know that both API and Compaq work quite closely with the various distributions, providing assistance when it's necessary.

OLinux: Can you detail the relation between alpha and Li.org?

Richard Payne: Both API and Compaq are members of LI.

OLinux: Does Alpha sponsor any FS/OS event? Or organization?

Richard Payne: Both API and Compaq sponsor various organizations. API has recently sent two machines to the Alsa group to ensure that Alsa stays supported on Alpha. I know of many kernel developers that have Alphas that have been donated by API or Compaq. API has also donated a machine to the AlphaLinux Organization (www.alphalinux.org) and is currently buying banner ad time from ALO.

In addition both companies (and sometimes alphalinux.org) can also usually be found at the major Linux shows.

OLinux: Linux companies are struggling to prove that investor won't have to wait a decade e to see profits or their investments back. Those stocks have lost its initial and phenomenal glamour. Is clear for you that Linux companies can make money and be profitable?

Richard Payne: I think they can, however it's going to take time. I think over the next few years we're really going to see software become a commodity. If you look back of the last few decades we've had an incredible duplication of effort out there. How many different UNIX types did we have? All with massive development and support organizations behind them. I can't help thinking this is just a massive waste of resources, especially when everybody all of those version basically perform the same functions.

OLinux: Transmeta is planing an IPO and have already launched Crusoe. How do you analyze Trasmeta innovation? Are there any direct moves of aplha related to Crusoe comp competition on chip market?

Richard Payne: Alpha and Crusoe and in different markets. Transmeta is going after the small low power segment. I see them more competing with the mobile Intel and PowerPC offerings. Alpha is at the other end of the spectrum, high performance but also high power usage and heat, not ideal for a laptop!

OLinux: Alpha supports all major Linux distributions these days. How has been the relation between alpha and Linux companies and Alpha and Linux community?

Richard Payne: I think the relationship is great, Alpha support is usually second only to i386 in the Linux kernel and most applications. There have been a few areas where we've had problems (for example Netscape) and there various companies have helped out (for example Compaq releasing the Tru64 libraries so Linux users can run the Tru64 version of Netscape).

In addition I know that both API and Compaq work quite closely with the various distributions, providing assistance when it's necessary.

OLinux: Can you detail the relation between alpha and Li.org?

Richard Payne: Both API and Compaq are members of LI.

OLinux: Does Alpha sponsor any FS/OS event? Or organization?

Richard Payne: Both API and Compaq sponsor various organizations. API has recently sent two machines to the Alsa group to ensure that Alsa stays supported on Alpha. I know of many kernel developers that have Alphas that have been donated by API or Compaq. API has also donated a machine to the AlphaLinux Organization (www.alphalinux.org) and is currently buying banner ad time from ALO.

In addition both companies (and sometimes alphalinux.org) can also usually be found at the major Linux shows.

OLinux: Linux companies are struggling to prove that investor won't have to wait a decade e to see profits or their investments back. Those stocks have lost its initial and phenomenal glamour. Is clear for you that Linux companies can make money and be profitable?

Richard Payne: I think they can, however it's going to take time. I think over the next few years we're really going to see software become a commodity. If you look back of the last few decades we've had an incredible duplication of effort out there. How many different UNIX types did we have? All with massive development and support organizations behind them. I can't help thinking this is just a massive waste of resources, especially when everybody all of those version basically perform the same functions.

OLinux: Transmeta is planing an IPO and have already launched Crusoe. How do you analyze Trasmeta innovation? Are there any direct moves of aplha related to Crusoe comp competition on chip market?

Richard Payne: Alpha and Crusoe and in different markets. Transmeta is going after the small low power segment. I see them more competing with the mobile Intel and PowerPC offerings. Alpha is at the other end of the spectrum, high performance but also high power usage and heat, not ideal for a laptop!


Copyright © 2000, Fernando Ribeiro Corrêa. Copying license http://www.linuxgazette.com/copying.html
Published in Issue 59 of Linux Gazette, November 2000

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


The Australian History of Tux

By


Gday from the land of Oz,

If anyone out there is wondering about the growing popularity of Linux and its adoption by Australian writers as a writers true operating system, perhaps the following may help explain.

On the reason for choosing Tux--the penguin mascot for Linux--Linus Tolvalds, the first of thousands who wrote the Linux computer operating system on the world wide web, had this to say:

When I was in Canberra a few years ago we went to the local zoo ... There they had a ferocious penguin that bit me...

OK now, when Linus says he was bitten by an angry penguin in Canberra and that is a good reason for the Tux mascot which today spells Linux, there maybe more to the story.

During the 1940s and 50s in Australia there was a literary magazine called, of all things, The Angry Penguins. This magazine was an avant-garde modernist poetry magazine edited by Max Harris and had modernist painters and writers grouped around it whose names are now legend in Australian art. But at that time they were just considered weird and way out. You know, the stereotype of mad deluded poets and artists starving and living in sub-standard housing.

Anyway, this literary magazine started to get a bit too much of a following. A couple of boring farts, both academic poets, got a bit hot under the collar about this and got together to write and submit a hoax modernist poem under the false name of Ern Malley. As it worked out, these farts are now better known for this hoax and the false name Ern Malley, then their own true names and works.

Now, since most of the archives for the Angry Penguins and a complete set of the journals may be found living in the National Library in Canberra, the question remains: was Linus bitten by a real angry penguin? Could it have been the ghost of Ern Malley? Or much worst still, could it be the ghost of Max Harris? After all, I'd rather be bitten by the ghost of a hoax poet then the ghost of a really angry penguin poet.

But as Linus later admits, it was really a fairy penguin that sucked gently on his finger, thinking it a fish. But, oh my, even more dangerous. Could he have had his digit licked by a queer poet becoming penguin?

So when Linus later writes:

Some people have told me they don't think a fat penguin really embodies the grace of Linux, which just tells me they have never seen a angry penguin charging at them in excess of 100mph. They'd be a lot more careful about what they say if they had.
He isn't wrong!


Copyright © 2000, Chris Jones. Copying license http://www.linuxgazette.com/copying.html
Published in Issue 59 of Linux Gazette, November 2000

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


Tuxedo Tails

By


impressive.png frozenpc.png

[Eric also draws the Sun Puppy comic strip at http://www.sunpuppy.com. -Ed.]


Copyright © 2000, Eric Kasten. Copying license http://www.linuxgazette.com/copying.html
Published in Issue 59 of Linux Gazette, November 2000

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


PHP Essentials (book review)

By


In this short article I will talk about a book on PHP, a web scripting language. But before going into the book itself, let's see what web scripting is and what PHP is all about. Web sites, 5 years ago, were simple text files with some images inserted. They were all done using HTML, the standard markup language. Now, in the year 2000, things have changed dramatically. Sites now provide more than just static, textual information. Web sites include dynamic information, animation files, session management (which allows them to recognize you at each visit) and other modern features. All of these features can't be created using only static HTML pages. Scripting languages need to be used to make the connection to the databases, to handle session management and to do all of the other back-end processing required to have good, modern pages.

PHP is a server-side scripting language. This means that it is composed of lines of code inserted in HTML pages. The web server processes the code, and its output is printed on the web page. Several other server-based scripting languages exist, including Microsoft ASP and CodeFusion. PHP is available on most Unix platforms and on Microsoft Windows.

PHP Essentials is a book for the HTML writer who wants to get into web scripting. If you have experience in making simple web sites and want to do complex dynamic sites, then this is the book for you. The book was published in Spring 2000 by Prima Publishing, a company that publishes dozens of computer books, and was written by Julie Meloni, a technical director for a multimedia company located in Campbell, California.

The information is very well presented; it is easy to read and is always supported with examples. Another plus is that it uses real life scenarios-- works you may need to accomplish in a real life situation where you need to create web sites. For example, most sites use databases to store user data, so the book thoroughly discusses database connections.

The author also provides an in-depth coverage of most topics. For example, in the first chapter, she talks about the installation phase and describes how to install PHP on various platforms and with several web servers, including Apache and Internet Information Server. In the database section, the book spends some time describing database systems as well as basic queries.

Also, the book is very up to date. It covers the latest PHP version, PHP4. Database examples are based on the MySQL database, which is currently the most popular database with Linux users. It is a recent book, and it shows.

While these are good features, there are also some problems. First, while it covers certain subjects in depth, it doesn't cover everything. Some topics that might be useful for web developers are not covered at all--the book is quite short.

Another thing that would have been nice is a CD-ROM with the example source code and with PHP itself. The book comes with no CD-ROM at all, and this is a down point.

Globally, PHP Essentials is a very good book for people who want to learn more about advanced web development using the PHP language. The book is listed at $39.99, which is very reasonable for a computer book. It's not the first book about PHP and most likely will not be the last, but it is the best choice for people beginning with PHP programming.

[The publisher's site is www.prima-tech.com. The program listings in the book are at www.thickbook.com. The hyperlink should go right to the page, but if it doesn't, go to the site and choose "code" on the main menu. -Ed.]


Copyright © 2000, Patrick Lambert. Copying license http://www.linuxgazette.com/copying.html
Published in Issue 59 of Linux Gazette, November 2000

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


dmesg explained

By and


Abstract

Often someone will write to a Linux help list asking for help with a particular device they want to get working under Linux, and a standard reply is "check the output of the dmesg command". This leaves a lot of new users befuddled, and this document is here to hopefully help them navigate this powerful debugging tool. Two sets of kernel boot messages are presented and annotated, from an i386 system and a Linux-Pmac system.

Introduction

The Linux kernel is the central interface between the user and the hardware. As such, it has to incorporate support for hardware if you are to use it. Often, though, cryptic device names are used by the system, making it difficult at first inspection to determine if some particular hardware is supported. The command 'dmesg', which is used to print kernel messages, is very useful in determining if a piece of hardware has been found, and if so, what the system is referring to it as.

This artcle, including the title and format of the dmesg comments, were directly inspired and copied from the OpenBSD Explained article by the same name. I felt one on Linux would be useful for people.

The manpage for dmesg is quite simple:

DMESG(8)                                                 DMESG(8)


NAME
       dmesg - print or control the kernel ring buffer

SYNOPSIS
      dmesg [ -c ] [ -n level ] [ -s bufsize ]

DESCRIPTION
       dmesg is  used  to  examine  or  control  the kernel ring
       buffer.
Upon boot, the dmesg output is from the kernel booting, showing the devices it has found and if it has been able to configure them at all (aside from userland configuration). This log is also available in the file /var/log/dmesg.

Kernel output on an i386 system

Shown below is a dmesg from an x86 system immediately after boot. The output is indented by several space, and comments and descriptions are left justified.

Linux version 2.2.14-5.0 (root@porky.devel.redhat.com) (gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)) #1 Tue Mar 7 20:53:41 EST 2000

First up is the kernel version (2.2.14) and build (5), along with who built it, with what compile it was built, and when it wass built. This can be some inportant information, as some kernel versions and the GCC project don't interact correctly.

Detected 300683434 Hz processor.

My K6/2-300 processor running at 300 MHz.

Console: colour VGA+ 80x25

A standard PC console screen (15 inch monitor).

Calibrating delay loop... 599.65 BogoMIPS

The useless benchmark of BogoMIPS. They're bogus (hence the name), but are often used as a relative processor speed indicator.

Memory: 63008k/65536k available (1084k kernel code, 412k reserved, 968k data, 64k init, 0k bigmem)

My memory statistics. My machine has 64MB of real memory.

Dentry hash table entries: 262144 (order 9, 2048k)

The dentry cache (dcache) represents the kernel's view of the namespace of mounted filesystems. There's pretty good documentation of it in Documentation/filesystems/vfs.txt in the kernel source tree.

Buffer cache hash table entries: 65536 (order 6, 256k)

In 2.2, the buffer cache is used for caching and aggregating data for writes to block devices. After 2.3.6, it is used for caching fs metadata, such as inode information.

Page cache hash table entries: 16384 (order 4, 64k)

In 2.2, the page (VM) cache is used for caching swap, read and mmap data (which was bad, because shared writable mappings were ugly). After 2.3.6, it also is used for write data (i.e., the buffer and page caches are mostly unified), and all became happiness and light (sorta like BSD).

VFS: Diskquotas version dquot_6.4.0 initialized

My kernel support quotas (though I'm not using them).

CPU: AMD AMD-K6(tm) 3D processor stepping 00

A quick identification of the processor.

Checking 386/387 coupling... OK, FPU using exception 16 error reporting.
Checking 'hlt' instruction... OK.

I seem to recall there being some Intel processor issues, which the kernel has to know about if it's to invoke corrections.

POSIX conformance testing by UNIFIX
PCI: PCI BIOS revision 2.10 entry at 0xfb490

And we start the probing of the PCI bus for peripherals.

PCI: Using configuration type 1
PCI: Probing PCI hardware
PCI: 00:38 [1106/0586]: Work around ISA DMA hangs (00)
Activating ISA DMA hang workarounds.
Linux NET4.0 for Linux 2.2

This kernel supports the Net4 networking codebase, which has a lot of features yet to be fully utilized.

Based upon Swansea University Computer Society NET3.039
NET4: Unix domain sockets 1.0 for Linux NET4.0.
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP

My core IP protocols supported. While not needed, IGMP can be fun. Note that some networks do not support muticasting.

TCP: Hash tables configured (ehash 65536 bhash 65536)
Initializing RT netlink socket
Starting kswapd v 1.5
Detected PS/2 Mouse Port.

Should be quite obvious...

Serial driver version 4.27 with MANY_PORTS MULTIPORT SHARE_IRQ enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at 0x02f8 (irq = 3) is a 16550A

The information about my serial ports.

pty: 256 Unix98 ptys configured
apm: BIOS version 1.2 Flags 0x07 (Driver version 1.9)

My motherboard supports the APM standard for sleeping.

Real Time Clock Driver v1.09
RAM disk driver initialized: 16 RAM disks of 4096K size

My kernel supports RAM disks. While I'm not using any most days, sometimes I do use them; if you have the memory, they make a real fast filesystem (like /tmp or, for a webserver, the main pages loaded).

VP_IDE: IDE controller on PCI bus 00 dev 39
VP_IDE: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0xe000-0xe007, BIOS settings: hda:DMA, hdb:DMA
ide1: BM-DMA at 0xe008-0xe00f, BIOS settings: hdc:DMA, hdd:DMA

My IDE controllers.

hda: Maxtor 51369U3, ATA DISK drive

My hard drive in the machine.

hdb: IDE/ATAPI CD-ROM 32X, ATAPI CDROM drive

My CDROM drive.

ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hda: Maxtor 51369U3, 12949MB w/2048kB Cache, CHS=6577/64/63
hdb: ATAPI 16X CD-ROM drive, 128kB Cache

Disk information.

Uniform CDROM driver Revision: 2.56
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077

Floppy drive information.

md driver 0.90.0 MAX_MD_DEVS=256, MAX_REAL=12
raid5: measuring checksumming speed
raid5: MMX detected, trying high-speed MMX checksum routines
pII_mmx : 761.238 MB/sec
p5_mmx : 726.567 MB/sec
8regs : 447.675 MB/sec
32regs : 308.610 MB/sec
using fastest function: pII_mmx (761.238 MB/sec)

A bunch of RAID and MD (used in multiple device devices, like disk arrays) information, again not used.

scsi : 0 hosts.
scsi : detected total.

While the kernel supports SCSI, I'm not using any on this host.

md.c: sizeof(mdp_super_t) = 4096
Partition check:
hda: hda1 hda2 < hda5 hda6 >

My disk partition information. The brackets indicate extended partitions.

autodetecting RAID arrays
autorun ...
... autorun DONE.

Like I said above, I'm using not using any RAID arrays.

VFS: Mounted root (ext2 filesystem) readonly.

At this point we're almost done with the kernel and ready to start the system.

Freeing unused kernel memory: 64k freed
Adding Swap: 66488k swap-space (priority -1)
ne2k-pci.c:vpre-1.00e 5/27/99 D. Becker/P. Gortmaker http://cesdis.gsfc.nasa.gov/linux/drivers/ne2k-pci.html
ne2k-pci.c: PCI NE2000 clone 'RealTek RTL-8029' at I/O 0xe800, IRQ 11.
eth0: RealTek RTL-8029 found at 0xe800, IRQ 11, 00:80:AD:41:22:10.

My ethernet device is a PCI NE2000 based device. (A real cheap NIC, but almost every OS supports it.)

VFS: Disk change detected on device fd(2,0)

At this point, the kernel is done booting and we're ready to start /sbin/init (unless we supplied some information about init upon boot). The system then starts rc.sysinit and begins normal boot operations. The kernel has finished booting.

Kernel output on a Linux-Pmac system

And, for comparison's sake, this is the output of Linux 2.2 on a PowerPC system. Again, the dmesg output is indented and the description and comments are left justified. For this system I was using BootX, which loads the kernel into memory from within the MacOS, then completes bootstrapping it after ditching the MacOS. Options can be passed to the kernel, as you would with LILO on an Intel based PC, from within the app.

device tree used 17860 bytes

PowerPC systems use what is known as OpenFirmware, rather than a PC like BIOS, and it has a 'device tree', which is arranged a bit like a UNIX filesystem. This one uses about 16kb.

Total memory = 72MB; using 512kB for hash table (at c0280000)

Again, total physical RAM available.

Linux version 2.2.6-15apmac (root@video.linuxppc.org) (gcc version egcs-2.91.66 19990314 (egcs-1.1.2 release)) #1 Mon May 31 03:54:09 EDT 1999

Kernel version (2.2.6 build 15 on a Pmac), who built it (root@video.linuxppc.org), what version of gcc (or egcs), and when it was built. This can be diagnostic as some versions of the Linux kernel don't play well with some versions of GCC.

PCI bus 0 controlled by bandit at f2000000
PCI bus 1 controlled by chaos at f0000000

Two PCI busses. OpenFirmware (OF) calls their controllers bandit and chaos.

System has 32 possible interrupts
via_calibrate_decr: decrementer_count = 100001 (600010 ticks)
Console: colour dummy device 80x25
Calibrating delay loop... 239.21 BogoMIPS

Ahh... sweet BogoMIPS, which mean pretty much nothing.

Memory: 69900k available (1532k kernel code, 2184k data, 112k init) [c0000000,c4800000]

After the initial bootstrap, about 68 MB of memory is left, having reserved some for the kernel and core system.

VFS: Diskquotas version dquot_6.4.0 initialized
POSIX conformance testing by UNIFIX
PCI: Probing PCI hardware

Let the PCI probing begin!

USB: Universal USB Driver v$Revision: 1.60 $
USB-OHCI: USB Open Host Controller Interface Driver
USB-HUBD: UUSBD Hub Driver v$Revision: 1.36 $
USB-HIDD: USB Human Interface Devices Driver v$Revision: 1.6 $
USB-HIDBP: USB HID Boot Protocol Driver v$Revision: 1.10 $

USB support is in the kernel, though I have no USB devices on the system.

adb devices: [2]: 2 2 [3]: 3 1

ADB, or Apple Desktop Bus, has two devices, the keyboard and the mouse. We'll see them detected below.

Linux NET4.0 for Linux 2.2
Based upon Swansea University Computer Society NET3.039
NET4: Unix domain sockets 1.0 for Linux NET4.0.
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP

Core networking protocols (NET4) built into the kernel. The IGMP comes from multicast support (see Stevens for more info).

Starting kswapd v 1.5
MacOS display is /bandit/IMS,tt128mb8

Recall that bandit is the PCI controller (bus0). I use an IMS Twin Turbo 8 MB video chipset.

Console: switching to colour frame buffer device 80x30
fb0: IMS TT (TVP) frame buffer; 8MB vram; chip version 2
Monitor sense value = 0x73f, using video mode 6 and color mode 0.
fb1: control display adapter

Some video settings. On PowerMac hardware, sometimes this can be important if you've loaded a kernel level video driver, which can cause havoc on some systems. This is useful stuff to check on a PPC that has some video problems (ie in X).

ADB mouse at 3, handler set to 4
ADB keyboard at 2, handler set to 5
PowerMac Z8530 serial driver version 1.01
tty00 at 0xc900e020 (irq = 15) is a Z8530 ESCC, port = modem
tty01 at 0xc9011000 (irq = 16) is a Z8530 ESCC, port = printer

It found the ADB devices and also the two serial ports. It's useful to know which ones are which. Recall that Macintosh machines have one labeled modem and one labeled printer, so this is useful info to know.

pty: 256 Unix98 ptys configured
Macintosh ADB mouse driver installed.
DMA sound driver installed, using 4 buffers of 32k.
RAM disk driver initialized: 16 RAM disks of 4096K size
loop: registered device at major 7
fd0: SWIM3 floppy controller

fd0, or the floppy drive 0, on PowerMacs uses a controller called 'SWIM3'. Unfortunately, in this instance of the kernel, it's broken.

md driver 0.90.0 MAX_MD_DEVS=256, MAX_REAL=12
USB-HUBM: Starting kusbdd (pid 2)
USBD: No USB hosts found
linear personality registered
raid0 personality registered
raid1 personality registered
raid5: measuring checksumming speed

If I had RAID controllers, this would be neat. As such, it's just sucking up space in my kernel.

8regs : 140.970 MB/sec
32regs : 122.301 MB/sec
using fastest function: 8regs (140.970 MB/sec)
scsi0 : MESH
scsi1 : 53C94
scsi : 2 hosts.

I have two SCSI controllers, both onboard, with one being internal (the MESH one) and one being external (the 53C94 controller).

mesh: target 0 synchronous at 10.0 MB/s
Vendor: IBM Model: DPES-31080 Rev: S31S
Type: Direct-Access ANSI SCSI revision: 01 CCS
Detected scsi disk sda at scsi0, channel 0, id 0, lun 0
Vendor: QUANTUM Model: CTS80S Rev: 4.05
Type: Direct-Access ANSI SCSI revision: 02
Detected scsi disk sdb at scsi0, channel 0, id 1, lun 0
mesh: target 3 synchronous at 5.0 MB/s
Vendor: MATSHITA Model: CD-ROM CR-8005A Rev: 4.0i
Type: CD-ROM ANSI SCSI revision: 02
Detected scsi CD-ROM sr0 at scsi0, channel 0, id 3, lun 0
mesh: target 4 synchronous at 10.0 MB/s
Vendor: SEAGATE Model: ST31200N Rev: 8648
Type: Direct-Access ANSI SCSI revision: 02
Detected scsi disk sdc at scsi0, channel 0, id 4, lun 0
Vendor: QUANTUM Model: FIREBALL_TM2110S Rev: 300X
Type: Direct-Access ANSI SCSI revision: 02
Detected scsi disk sdd at scsi1, channel 0, id 2, lun 0
scsi : detected 1 SCSI cdrom 4 SCSI disks total.
Uniform CDROM driver Revision: 2.54
SCSI device sda: hdwr sector= 512 bytes. Sectors= 2118144 [1034 MB] [1.0 GB]
SCSI device sdb: hdwr sector= 512 bytes. Sectors= 166200 [81 MB] [0.1 GB]
SCSI device sdc: hdwr sector= 512 bytes. Sectors= 2061108 [1006 MB] [1.0 GB]
SCSI device sdd: hdwr sector= 512 bytes. Sectors= 4124736 [2014 MB] [2.0 GB]

Disk detection. I'm not a big fan of how Linux names its disks (in the order it finds them), but it found all of my devices.

PPP: version 2.3.3 (demand dialling)
TCP compression code copyright 1989 Regents of the University of California
PPP line discipline registered.

Kernel PPP support. Compressed TCP headers in PPP is a great feature, by the way, in keeping message overhead low.

eth0: MACE at 00:05:02:10:e6:6d, chip revision 9.64

Good old eth0, the ethernet device. It's MACE on a PowerMac. If this had been a modular driver, it wouldn't have shown up here but only after the module had been inserted.

Partition check:
sda: sda1 sda2 sda3 sda4 sda5 sda6
sdb: sdb1
sdc: sdc1 sdc2 sdc3 sdc4
sdd: sdd1 sdd2 sdd3 sdd4

The partition check is useful for knowing what the disks are laid out as.

md.c: sizeof(mdp_super_t) = 4104
autodetecting RAID arrays
autorun ...
... autorun DONE.
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 112k init 32k prep
Adding Swap: 131428k swap-space (priority -1)

And we're done booting.

Concluding remarks

Like I noted above at the end of the i386 dmesg output, the kernel, once finished, then moves on to /sbin/init unless an argument poiting it elsewhere has been passed to the kernel at boot time. An example would be telling the kernel "init=/bin/sh", such that it would execute a shell upon boot, rather than /sbin/init (and what follows). Note that the kernel only mounts the root filesystem read-only, so if all you do is boot the kernel you have to mount your disks read-write in order to affect changes on them (ie editing /etc/passwd to rescue root's password).

While this isn't the most thorough of jobs, I hope that this little tour has been enjoyable for everyone, and educational.


Copyright © 2000, Jose Nazario and Natarajan Krishnaswami. Copying license http://www.linuxgazette.com/copying.html
Published in Issue 59 of Linux Gazette, November 2000

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


Encrypting Data in Web Forms

By


  1. References
  2. Introduction
  3. Using Blowfish
  4. Converting Encrypted key to Hex.
  5. Encrypt and Decrypted Methods
  6. Why do this stuff?
  7. Conclusion

References

  1. http://www.perl.com/CPAN-local/modules/by-category/14_Security_and_Encryption/Crypt/Crypt-Blowfish-2.06.readme
  2. http://www.perl.com/pub/doc/manual/html/pod/perlfunc/pack.html

Introduction

There may be times when you want to send encrypted data to a user on your web server. For example, if you want to hide the numeric id of an account. However, there is a problem sending encrypted data, it is binary. Also, there aren't too many packages that are easy to encrypt data in Perl.

Using Blowfish

Blowfish is the easiest encryption module to use in Perl. It doesn't have any licensing restrictions either. I believe some other modules also recently lost their resctrictions, but I always go with the ethically pure software if it is just as good as the other unethical software.

Here is an easy way to encrypt and then decrypt the data. Note, I don't print the binary encrypted string because it won't be printable.

use Crypt::Blowfish;

my $Blowfish_Key = "An extremely dumb password you should change.";
my $Blowfish_Cipher = new Crypt::Blowfish $Blowfish_Key;

  ### Remember, sentence has to be 8 long
my $Sentence = "DumbWord";
my $Encrypted = $Blowfish_Cipher->encrypt($Sentence);
my $Decrypted = $Blowfish_Cipher->decrypt($Encrypted);

print "Do the next two lines match?\n";
print "$Sentence\n";
print "$Decrypted\n";

Converting Encrypted key to Hex

"pack" and "unpack" can be a little confusing to use in perl. Basically, they convert data into different formats. Like converting characters into their numeric ASCII equiv or converting hex numbers to integers, etc.

All we want to do is convert binary data to hex data. Why is hex data important? It is alphanumeric and won't screw up a browser with weird characters. There is no security using hex, but it is compact, and it is always a fixed length. It converts each character into a 2 hex characters (or numbers). Always having an exact length per character makes it easy to convert back to binary data.

Here is a simple command to convert a sentence to hex, and then converting it back to text.

my $Sentence = "This is a dumb sentence.\n";
print "$Sentence\n";
my $Hex = unpack("H*",$Sentence);
print "$Hex\n";
my $Sentence2 = pack("H*",$Hex);
print "$Sentence2\n";

Encrypt and Decrypted Methods for cgi webpages

Here is a older smaller version of what we use at gnujobs.com, and it doesn't have a "new" method. This is just a simple package. Here is how you can call the methods:

First, I assume you are using mod_perl. In your root directory for the apache webserver, create this directory,

mkdir -p lib/perl/MyPackage
Then copy the module below to the location lib/perl/MyPackage/Misc.pm.

To encrypt data,

use MyPackage::Misc;
my $Data = "Just a dumb sentence I want to encrypt";
my $Encrypted = MyPackage::Misc->Encrypt($Data);

To decrypt info,
use MyPackage::Misc;
my $Decrypted = MyPackage::Misc->Decrypt($Encrypted);

And here are the methods. You should really customize these modules for your needs. I kept $Blowfish_Cipher as a global variable for the package so that it only needs to get compiled once. I guess I might as well copyright it with the GPL just to promote GPL. Here is the GNU GPL license. (text version of this listing)

#!/usr/bin/perl

# Copyright (C) 2000 Mark E. Nielsen at GNUJobs.com

# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

# Web-Encrypt-Example version 0, Copyright (C) 2000 Mark E. Nielsen at GNUJobs.com
# Web-Encrypt-Example comes with ABSOLUTELY NO WARRANTY.
# This is free software, and you are welcome
# to redistribute it under certain conditions.

# The Computer Underground, Inc., hereby disclaims all copyright
# interest in the program `Web-Encrypt-Example'
# written by Mark E. Nielsen.
# Mark E. Nielsen, President of The Computer Underground

package MyPackage::Misc;

use strict;
use Crypt::Blowfish;

my $Blowfish_Key = "An extremely dumb password you should change.";
my $Blowfish_Cipher = new Crypt::Blowfish $Blowfish_Key;

#-----------------------------------
sub Encrypt
{
my $self = shift;
my $String = shift;

my $Temp = $String;
my $Encrypted = "";
while (length $Temp > 0)  
  {
    ### If less than 8 characters, padd it with tabs
  while (length $Temp < 8) {$Temp .= "\t";}
    ### Ecnrypt the 8 length segment
  my $Temp2 = $Blowfish_Cipher->encrypt(substr($Temp,0,8));
    ### Add it to the end
  $Encrypted .= $Temp2; 
    ### If it is 8 or less, abort, otherwise get the next segment
  if (length $Temp > 8) {$Temp = substr($Temp,8);} else {$Temp = "";}
  }

my $Unpacked = unpack("H*",$Encrypted);

return ($Unpacked);
}

#--------------------------------
sub Decrypt
{
my $self = shift;
my $String = shift;

my $Packed = pack("H*",$String);

my $Temp = $Packed;
my $Decrypted = "";
while (length $Temp > 0)  
  {
  my $Temp2 = substr($Temp,0,8);
    ### In theory, we could up with less than 8 characters, check
  if (length $Temp2 == 8) 
    {
    my $Temp3 = $Blowfish_Cipher->decrypt($Temp2);
    $Decrypted .= $Temp3;
    } 
  if (length $Temp > 8) {$Temp = substr($Temp,8);} else {$Temp = "";}
  }
   ### Getting rid of tabs at the end, which could be a bad thing
   ### but is how I did it. 
$Decrypted =~ s/\t+$//g;

return ($Decrypted);
}

NOTE: There is one special thing you ought to do when decrypting information. Check to see if it contains valid data. If it is numeric, make sure it is a number.Usually a smart idea is to always assume the number is positive and less than a billion, and do something like this,

my $Error = 1;
if (($Value >0) && ($Value < 1000000000)) {$Error = 0;}
if ($Error == 1) {print "Darn it, this sucks, no valid data, bye bye!"; exit;}

Why do this stuff?

The need to encrypt data so that people can't put in arbitrary values can be very useful sometimes. Granted, a web server shouldn't ever be setup to let people put in arbitrary values, but sometimes if you are not careful, people can download all information out of your database by simply changing unique identifiers in a web form. Most people don't care, but some do.

Also, if correctly setup, the encrypted data won't interfere with the person's web experience if you keep the encrypted data in hidden fields in the webpage.

If you wish to send out an email message to a user to view data on your website, sending an email with a link that contains encrypted data can be a way to protect people from understanding how your web pages work. It doesn't protect you too much, but the more irritating you make it, the more likely it is for someone to just not bother trying to figure out how you do things.

Conclusion

I haven't tested PHP or Python to see if they have an easy module for encrypting data. The only module that was easy to use in Perl was Blowfish. It was painful to get any others for Perl installed. If you come across any that were as easy to use, or easier than Blowish, please let me know at .


Copyright © 2000, Mark Nielsen. Copying license http://www.linuxgazette.com/copying.html
Published in Issue 59 of Linux Gazette, November 2000

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


Spreading the OO Fun (Series Introduction)


By

Abstract

Series Table of Contents
    When I wrote the first Making Smalltalk with the Penguin article back in March of 2000 [LL], my target audience was experienced programmers who didn't have much exposure to OO programming or to Smalltalk.  The article's intent was to give an overview of my favourite programming language on my favourite operating system.  Since then, I've had a fair amount of email asking introductory type questions about Smalltalk and OO programming.  So I thought I'd try my hand at a small series.  It's been a while coming as after the first article I relocated from KS->CT and had a baby (obviously using the corporate 'I' here! :-)
    The target audience for this series are people new to OO or new to programming altogether.  The intent is to not only introduce OO programming, but to also spread the fun of Smalltalking.  Why do this format/effort when there's lots of good tutorials out there?  Two reasons really:  1) Tutorials are great, but can be static and dated pretty quickly.  2) An ongoing series tends to be more engaging and digestible.
    To help address the second reason above, my intent is to keep the articles concise so they can be digested in under an hour1.  Hopefully, as newbies follow along, they can refer back to the original article and make more sense of it.  I plan on having a touch of advanced stuff once in a while to add flavour and as before, the articles are going to be written for read-along or code-along people.
    Something new I'm going to try is to make the ongoing series viewable in a contiguous fashion and downloadable in one chunk for people who want to browse the series locally.  To do this, click on TOC grapic to right.  The articles are going to have 2 sets of links:  one set for www links, another set for local links, indicated as: [LL]
    If you like what you're reading, letting me know, and I'll keep putting precious time into it.
 

Why Smalltalk?

    Before we can get into OO stuff, I feel the need to set the context of the articles.  Unfortunately, this will take up the bulk of this first article, but it's an important thing to do.  We'll finish with a little bit of OO stuff at the end, and get into it more in the next article.
    I believe Smalltalk is the best environment to learn OO programming in because: In particular, I'm going to use Squeak as the playing vehicle.  You'll notice this is a different flavour of Smalltalk than I used in my first article.  I've never used Squeak before, so this'll be a learning experience for me too.  The reasons for this are:

Quote of the day

In essence, Smalltalk is a programming language focused on human beings rather than the computer.
        -Alan Knight

Installation stuff

    Note:  before you fire up Squeak, I need to warn you to not be put off by the sparten GUI. There's actually two types of GUIs in Squeak:  MVC & Morphic, both of which have skins to implement specific look-n-feels.  For at least the beginning of the series, I plan on sticking to Morphic without skins, as it's the newer GUI and I want to keep things simple.
    To install Squeak, you basically need to download and unzip 4 files.  RPMs are available for people who prefer them.  For instructions on downloading and installing Squeak, see these installation instructions, or these installation instructions.  (Note: I'm using v2.7 of Squeak, which isn't the latest version, but for the purposes of these articles, the latest-n-greatest version is not required unless otherwise noted)

First Looks

    Note:  do not save anything until we get to that point below.  The initial orientation and setup of squeak is a little painful, but by the time we're done here it'll be much more friendly.
    Now that you have Squeak installed, let's fire it up.  Go to a command prompt, cd to the directory where squeak is, and type squeak Squeak-2.7.image.  You'll see a window open, with 10 windows within it.  Feel free to read the Welcome To... and Getting Started... windows.  If you want to skip this and read them later, that's fine too.  You'll notice that the look-n-feel is "weird", don't worry about this.  There are reasons for this that I'll get to in a future article.  You can also play around with the various Play With Mes (there's some neat things there).  Feel free to mess around to your heart's content, try resizing things, moving them ,etc.  Don't worry about breaking anything as we haven't saved anything yet.  When you click on Play With Me 3, 6, 7 or 8, you need to click on the window to get into it.  To get out of it, left click on the window background, and select previous project.
    When you're done playing, and you're back in the main view you started out in, middle click on the squeak background somewhere, and select quit, and no, as we don't want to save any changes.  Now restart squeak, and move the Welcome To... window somewhere.  Now middle click on the squeak background somwhere, and select save and quit.  Now, restart sqeuak again... notice that the window is in the place where you left it.  In fact, every time you save in sqeuak the state of the IDE is saved exactly as it was! 2 All the window placements, all the code - everything is exactly where you left it.  This is great for getting back up to speed quickly on what you were doing.
    For the read-along folks, here's what the Welcome To... & two of the Play With Me windows look like:


    Now, let's do a little customization before we move on to examples.  Open a workspace (middle click on the squeak background, select open...>workspace.)  You'll notice that it's the same type of window as the Welcome To... and Getting Started... windows.  Enter in the following code snippits:

    Preferences setPreference: #noviceMode toValue: true.
    Preferences setPreference: #inboardScrollbars toValue: true.
    Preferences setPreference: #useGlobalFlaps toValue: true.

    Then highlight both lines and execute the code (middle click>do it).  This is known as 'doing it' in Smalltalk.  Congratulations, you just ran your first Smalltalk code.  Don't worry about the symantics right now, just be aware that we set some preferences.  Now, remember when I mentioned that we'd be using the morphic GUI type for these articles?  To do this, middle click on the squeak background, select open...>morphic project.  You'll see a small window appear called Unnamed1.  Let's name this project something, as you've already probably experienced, clicking on the title of the window will bring up a rename prompt.  Type in Making Smalltalk. If you want, you can resize the window to see the whole title.
    Now, let's enter the project, do this by clicking on the project to give it focus, then clicking on it again.  You'll notice there are four tabs  arranged around the screen (Menus, Squeak, Tools, and Supplies).  If you mouse over the tab, a pop up menu will appear with neat stuff on it.  If you mouse over the Menu tab you'll see the open... menu in the top left corner, select workspace to open up a workspace.  You'll notice the look-n-feel is a little different now, as we're using the Morphic type of GUI; this project will be the basis of these articles.

One thing you'll notice from the menus, is that there's no saving option.  Since we want to save everything we've done, let's get that menu.  To do this, right click on the project background, you should see a series of different coloured dots around the screen.  We're not going to get into their purpose just yet.  Now left click on the red dot in the top left hand corner of the screen, you'll see a playfield menu, select keep this menu up.  Now the menu is sticky, and you can move it around.  Let's move it out of the way of the flaps to the bottow left hand corner of the screen.  Finally,  let's save what we've done, on that menu you just made sticky, click on save.  Your window should look something like:

 

Getting to objects

    As I mentioned, the bulk of this article is going to be setting the stage for future articles.  Now we can finally start addressing the topic at hand.  There are many different definitions of what an object is.  One way of thinking about it is that an object is anything you can think of that is a noun.  A window, a menu, an array, a GUI, a string, an integer, a person, a tree, etc.  This is a very simple view of what an object is, and we'll refine the definition over time.
    In Smalltalk, everything is an object3.   Unlike other languages where small building blocks like integers or strings aren't objects, everything is an object.  If you have procedural programming experience, this is a good mantra to repeat for about 6 months.
    Let's start with the venerable Hello World example, but with a minor update (sheesh, we're not back in the '60s here).  Instead of printing a string to the stdout (to the command line), let's open a window with the string in it.  In the workspace enter and 'do':

    (Workspace new contents: 'Hello World') openLabel: 'Hello World Workspace'

    You'll see:

    Remember when I said everything is an object?  Well, we asked a new Workspace object to make its contents Hello World, then asked it to open itself with the label 'Hello World Workspace'.  Notice there's no 'main' method, no compiling and linking step, no switching between a text editor and a compiler.  The simplicity of being able to just type Smalltalk code and run it is very refreshing.
    ...but this old example is pretty worn out.  Let's do something a little more up to date4.  Let's make a line; in the workspace enter and do:

    World addMorph:
        (PolygonMorph
         vertices: {50@50. 200@200}
         color: Color red
         borderWidth: 20
         borderColor: Color red)

    You'll see:

    Here, we asked the project (World) we're in (projects are objects too) to add a morph that is a red line from point 50x50 to point 200x200.  Now, let's play with this object a little bit, if you right click on the line object, you'll get the various multi-coloured points again (these are called halos).  If you mouse over the line object, you'll see pop-up help describing what the halos do (Rote, Change size, debug, Duplicate, Move, etc)Left click on the yellow halo, and resize the line a few times.  Try the rotate, duplicate, move buttons to play some more.  Finally left click on the 'X' button when you want to get rid of the line object(s).
    To make this first article digestible, I'm going to stop off here.  Before I go though, I'm going to introduce the 'Sweet Squeak' section...

A Sweet Squeak

This section won't explore/explain code or example, but merely present a neat thing to try out5.  This time, lets view a shockwave file.  If you have an internet connection up, try entering this code and do it:  (note, might take a while over 28.8; I did this at a friend's place with a 128K ISDN and it was pretty snappy)

   (FlashMorphReader on: (HTTPSocket
        httpGet: 'http://www.audi.co.uk/flash/intro1.swf'
        accept:'application/x-shockwave-flash'))
    processFile startPlaying openInWorld.
 

Looking forward

The next article will discuss Objects again as well as classes, messages and encapsulation.
Also, if any Squeakers out there know of something neat that can be easily done, let me know and I'll add it if there's room.

Questions and Answers

As opposed to including already answered questions via email, I'm going to start this section with a clean slate to address questions (as I have time) that this series raises.  If you want a faster response, try posting your question to the comp.lang.smalltalk newsgroup, or the Swiki.

Article Glossary

This is a glossary of terms that I've used for the first time in this series, or a term that I want to refine.  If you don't see a term defined here, try the ongoing glossary [LL]

IDE
        Integrated Development Environment.   An environment that programmers use to develop code in that they can program and debug in.
[LL]
        relative Local Link, use this link when browsing these articles locally
Object
        (def 1-simple)  An object is anything you can think of that is a noun.  A window, a menu, an array, a GUI, a string, an integer, a person, a tree, etc.
OO
        Object Oriented  Briefly, this is a popular style/methodology of programming that these articles are going to introduce.
Project
       A specific view of the code.  You can have multiple simultaneous views of the code.  This is very handy if you're doing two or three projects at once, and don't want to lose track of where you're are in them.
Wiki site
        A series of web sites where there is no designated editor (for the most part, the odd page may have a password). If you see a way to improve the site, you can do so yourself! If you don't understand something, just edit the web page and type in your question!

Footnotes

[1]  Keeping the articles concise will actually be the biggest challange.  There's such a wealth of information that it's hard to convey just what is needed.   To that end, I plan on making some simplifications as I go along and gradually refine them to reflect the technicalities.
[2]  This is a feature common to all Smalltalk flavours that I know of.  It's one of the many thinks I like about Smalltalk.
[3]  This is the same assertion that I made in the first article, and I had a pile of people email me about how this isn't technically accurate.  I thought from the context of the article that it would be apparent that this was a simplified generalization, oh well.  This time I'll be explicit:  this assertion is technically not accurate:  not everything in Smalltalk is an object, but the vast majority of things are.  For the beginner, it's a helpful simplifying view to have.  I plan on refining this view later on.
[4]  This snippet is from a Swiki entry by Dan Ingalls
[5]  This snippet is also from the Swiki


Copyright © 2000, Jason Steffler. Copying license http://www.linuxgazette.com/copying.html
Published in Issue 59 of Linux Gazette, November 2000

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


The Back Page


About This Month's Authors


Matthias Arndt

I'm a Linux enthusiast, 20 years old and from Germany. I will start studying computer sciences in conjuction with economics in October. I like good old rock'n'roll and of course Linux. I love writing stories and I have always wanted to write for a computer magazine.

Bill Bennet

Bill, the ComputerHelperGuy, lives in Selkirk, Manitoba, Canada; the "Catfish Capitol of North America" if not the world. He is on the Internet at www.chguy.net. He tells us "I have been a PC user since 1983 when I got my start as a Radio Shack manager. After five years in the trenches, I went into business for myself. Now happily divorced from reality, I live next to my Linux box and sell and support GPL distributions of all major Linux flavours. I was a beta tester for the PC version of Playmaker Football and I play `pentium-required' games on the i486. I want to help Linux become a great success in the gaming world, since that will be how Linux will take over the desktop from DOS." It is hard to believe that his five years of university was only good for fostering creative writing skills.

Nicolas Chauvat

Nicolas is currently working at Logilab in Paris, France. He studied robotics, computer science and artificial intelligence and has been dreaming of electric sheep for some time now. He coordinates a French translation of Linux Gazette at http://www.traduc.org/lgazette

Shane Collinge

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.

Fernando Correa

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 Linux portal in Brazil and have further plans to improve services and content for their Internet users.

Chris Jones

Chris is an Australian poet and writer currently working on a series of novels with the working title of Swindle. He switched to Linux 14 months ago finding it the best operating system for writers he has ever worked on. He first installed Linux on his ancient Toshiba 3400 notebook, before buying a new desktop computer piece by piece. Once he got it assembled, he installed Linux as his only operating system.

Eric Kasten

I'm a software developer by day and an artist, web developer, big dog, gardener and wine maker by night. This all leaves very little time for sleep, but always enough time for a nice glass of Michigan Pinot Gris. I have a BS double major in Computer Science and Mathematics and an MS in Computer Science. I've been using and modifying Linux since the 0.9x days. I can be reached via email at or through my website at http://www.sunpuppy.com.

Patrick Lambert

I am a freelance writer and an IT professional. I have worked with Linux companies for 7 years, supporting users and doing coding. I have been writting articles for 2 years.

Jose Nazario

José is a Ph.D. student in the department of biochemistry at Case Western Reserve University in Cleveland, OH. He has been using UNIX for nearly ten years, and Linux since kernels 1.2.

Natarajan Krishnaswami

Natarajan, a graduate of Case Western Reserve University, is a software engineer in IBM S/390 who works on porting applications to OS/390 and Linux/390.

Mark Nielsen

Mark works at ZING (www.genericbooks.com) and GNUJobs.com. Previously, Mark founded The Computer Underground. Mark works on non-profit and volunteer projects which promote free literature and software. To make a living, he recruits people for GNU related jobs and also provides solutions for web/database problems using Linux, FreeBSD, Apache, Zope, Perl, Python, and PostgreSQL.

Jason Steffler

Jason is a Software Architect for McHugh Software International.  His computer related interests include: OO programming & design, Smalltalking, the peopleware aspects of software, and noodl'n around with Linux.


Not Linux


The funniest-message-to-cross-my-mailbox-this-month award goes to:

CONGRATULATIONS!

By opening this mail you have fallen victim to the Amish Virus.

Because we don't have any computers or programming experience, this virus works via community spirit and the honour system.

Please delete all the files from your hard drive and manually forward this virus to everyone on your mailing list.

Thank you for your co-operation.

The Amish Computer Programming Department

Happy Halloween, Thoughtful Veterans' Day, Happy Thanksgiving, and Happy Linuxing.

Michael Orr
Editor, Linux Gazette,


Copyright © 2000, the Editors of Linux Gazette. Copying license http://www.linuxgazette.com/copying.html
Published in Issue 59 of Linux Gazette, November 2000