old-www/LDP/LG/issue63/gibbs.html

769 lines
26 KiB
HTML

<!--startcut ==============================================-->
<!-- *** BEGIN HTML header *** -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML><HEAD>
<title>Installing dict - An On-Line Dictionary LG #63</title>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#0000AF"
ALINK="#FF0000">
<!-- *** END HTML header *** -->
<CENTER>
<A HREF="http://www.linuxgazette.com/">
<H1><IMG ALT="LINUX GAZETTE" SRC="../gx/lglogo.png"
WIDTH="600" HEIGHT="124" border="0"></H1></A>
<!-- *** BEGIN navbar *** -->
<IMG ALT="" SRC="../gx/navbar/left.jpg" WIDTH="14" HEIGHT="45" BORDER="0" ALIGN="bottom"><A HREF="collinge.html"><IMG ALT="[ Prev ]" SRC="../gx/navbar/prev.jpg" WIDTH="16" HEIGHT="45" BORDER="0" ALIGN="bottom"></A><A HREF="index.html"><IMG ALT="[ Table of Contents ]" SRC="../gx/navbar/toc.jpg" WIDTH="220" HEIGHT="45" BORDER="0" ALIGN="bottom" ></A><A HREF="../index.html"><IMG ALT="[ Front Page ]" SRC="../gx/navbar/frontpage.jpg" WIDTH="137" HEIGHT="45" BORDER="0" ALIGN="bottom"></A><A HREF="http://www.linuxgazette.com/cgi-bin/talkback/all.py?site=LG&article=http://www.linuxgazette.com/issue63/gibbs.html"><IMG ALT="[ Talkback ]" SRC="../gx/navbar/talkback.jpg" WIDTH="121" HEIGHT="45" BORDER="0" ALIGN="bottom" ></A><A HREF="../faq/index.html"><IMG ALT="[ FAQ ]" SRC="./../gx/navbar/faq.jpg"WIDTH="62" HEIGHT="45" BORDER="0" ALIGN="bottom"></A><A HREF="nielsen.html"><IMG ALT="[ Next ]" SRC="../gx/navbar/next.jpg" WIDTH="15" HEIGHT="45" BORDER="0" ALIGN="bottom" ></A><IMG ALT="" SRC="../gx/navbar/right.jpg" WIDTH="15" HEIGHT="45" ALIGN="bottom">
<!-- *** END navbar *** -->
<P>
</CENTER>
<!--endcut ============================================================-->
<H4 ALIGN="center">
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">Installing dict - An On-Line Dictionary</font></H1>
<H4>By <a href="mailto:chris@hawklord.uklinux.net">Chris Gibbs</a></H4>
</center>
<P> <HR> <P>
<!-- END header -->
<H1>Purpose of this Paper</H1>
<P>To advertise the efforts of <A HREF="http://www.dict.org">http://www.dict.org</A> and to
provide the means by which any Linux user regardless of experience,
can install a functional dictionary system either for local or
network use.
</P>
<h3><u>CONTENTS</u></h3>
<p>
<OL>
<LI><a href="#1">Introduction</a>
<LI><a href="#2">The DICT Development Group (www.dict.org)</a>
<LI><a href="#3">Available Dictionaries</a>
<LI><a href="#4">Installation</a>
<OL class="inner">
<LI><a href="#5">dictd, dict and dictzip</a>
<LI><a href="#6">Webster's</a>
<LI><a href="#7">WordNet (r) 1.6</a>
<LI><a href="#8">Jargon File, FOLDOC, The Elements, Easton's Bible Dictionary & Hitchcock's Bible
Names Dictionary</a>
<LI><a href="#9">More up-to-date Jargon File</a>
<LI><a href="#10">US Gazetteer</a>
<LI><a href="#11">The Devils Dictionary</a>
<LI><a href="#111">Who Was Who: 5000 B. C. to Date</a>
<LI><a href="#12">Language Dictionaries</a>
</OL>
<LI><a href="#13">Configuring dictd</a>
<LI><a href="#14">Using dict</a>
<LI><a href="#15">Kdict</a>
<LI><a href="#16">Conclusion</a>
</OL>
</p>
<a name="1"></a>
<H1>Introduction</H1>
<P>I have been using Linux exclusively as my operating system for
over three years now. One of the very few things I miss about <I>&quot;that
other operating system&quot;</I> is the easy availability of cheap or
even free versions of commercial encyclopedias and dictionaries.
</P>
<P>So when I installed a recent version of S.u.S.E. linux I was both
surprised and happy to find a package called <B>Kdict</B> had been
installed on my machine. Reading the documentation that came with the
package revealed that the program was only a front end to another
program, and that though it is possible to install a dictionary
server locally, if I wanted to do so I would have to get everything
else I need from the Internet.
</P>
<a name="2"></a>
<H1>The DICT Development Group (www.dict.org)</H1>
<P><SUB>Note:- This section paraphrases the contents of ANNOUNCE in
the dict distribution.</SUB>
</P>
<P><A HREF="http://www.dict.org/">The DICT Development Group
(www.dict.org)</A> have both developed a <B>Dictionary Server
Protocol</B> (as described in RFC 2229), client/server software in C
as well as clients in other languages such as Java and Perl, and
converted various freely available dictionaries for use with their
software.
</P>
<P>The <B>Dictionary Server Protocol</B> (DICT) is a TCP transaction
based query/response protocol that allows a client to access
dictionary definitions from a set of natural language dictionary
databases.
</P>
<P><B>dict</B>(1) is a client which can access DICT servers from the
command line.
</P>
<P><B>dictd</B>(8) is a server which supports the DICT protocol.
</P>
<P><B>dictzip</B>(1) is a compression program which creates
compressed files in the gzip format (see RFC 1952). However, unlike
gzip(1), dictzip(1) compresses the file in pieces and stores an index
to the pieces in the gzip header. This allows random access to the
file at the granularity of the compressed pieces (currently about
64kB) while maintaining good compression ratios (within 5% of the
expected ratio for dictionary data). dictd(8) uses files stored in
this format.
</P>
<P>Available in separate <CODE>.tar.gz</CODE>
files are the data, conversion programs, and formatted output for
several freely-distributable dictionaries. For any single dictionary,
the terms for commercial distribution may be different from the terms
for non-commercial distribution -- be sure to read the copyright and
licensing information at the top of each database file. Below are
approximate sizes for the databases, showing the number of headwords
in each, and the space required to store the database:
</P>
<CENTER>
<TABLE border=2>
<TR>
<TD>
<P><B>Database</B></P>
</TD>
<TD>
<P><B>Headwords</B></P>
</TD>
<TD>
<P><B>Index</B></P>
</TD>
<TD>
<P><B>Data</B></P>
</TD>
<TD>
<P><B>Uncompressed</B></P>
</TD>
</TR>
<TR>
<TD>
<P>web1913</P>
</TD>
<TD>
<P>185399</P>
</TD>
<TD>
<P>3438 kB</P>
</TD>
<TD>
<P>11 MB</P>
</TD>
<TD>
<P>30 MB</P>
</TD>
</TR>
<TR>
<TD>
<P>wn</P>
</TD>
<TD>
<P>121967</P>
</TD>
<TD>
<P>2427 kB</P>
</TD>
<TD>
<P>7142 kB</P>
</TD>
<TD>
<P>21 MB</P>
</TD>
</TR>
<TR>
<TD>
<P>gazetteer</P>
</TD>
<TD>
<P>52994</P>
</TD>
<TD>
<P>1087 kB</P>
</TD>
<TD>
<P>1754 kB</P>
</TD>
<TD>
<P>8351 kB</P>
</TD>
</TR>
<TR>
<TD>
<P>jargon</P>
</TD>
<TD>
<P>2135</P>
</TD>
<TD>
<P>38 kB</P>
</TD>
<TD>
<P>536 kB</P>
</TD>
<TD>
<P>1248 kB</P>
</TD>
</TR>
<TR>
<TD>
<P>foldoc</P>
</TD>
<TD>
<P>11508</P>
</TD>
<TD>
<P>220 kB</P>
</TD>
<TD>
<P>1759 kB</P>
</TD>
<TD>
<P>4275 kB</P>
</TD>
</TR>
<TR>
<TD>
<P>elements</P>
</TD>
<TD>
<P>131</P>
</TD>
<TD>
<P>2 kB</P>
</TD>
<TD>
<P>12 kB</P>
</TD>
<TD>
<P>38 kB</P>
</TD>
</TR>
<TR>
<TD>
<P>easton</P>
</TD>
<TD>
<P>3968</P>
</TD>
<TD>
<P>64 kB</P>
</TD>
<TD>
<P>1077 kB</P>
</TD>
<TD>
<P>2648 kB</P>
</TD>
</TR>
<TR>
<TD>
<P>hitchcock</P>
</TD>
<TD>
<P>2619</P>
</TD>
<TD>
<P>34 kB</P>
</TD>
<TD>
<P>33 kB</P>
</TD>
<TD>
<P>85 kB</P>
</TD>
</TR>
<TR>
<TD>
<P>www</P>
</TD>
<TD>
<P>587</P>
</TD>
<TD>
<P>8 kB</P>
</TD>
<TD>
<P>58 kB</P>
</TD>
<TD>
<P>135 kB</P>
</TD>
</TR>
</TABLE>
</CENTER>
<P>All of these compressed databases and indices can be
stored in approximately 32MB of disk space.
</P>
<P>Additionally there are a number of bi-lingual
dictionaries to help with translation. Though I have not looked at
these judging from their different sizes some will be more useful
than others (i.e. English to Welsh is unfortunately not very good,
whereas English to German is probably quite useful).
</P>
<P>All the dictionaries seem to be under constant
development so interested people should keep up with latest
developments.
</P>
<a name="3"></a>
<H1>Available Dictionaries</H1>
<DL>
<br>
<DT><B>Webster's Revised Unabridged Dictionary (1913)</B>
</DT><DD><P>
The Oxford English Dictionary this is not! It is however a very
pleasant dictionary. It seems to be an American version of one of
those Dictionary/Encyclopedias, so common at the time of its
writing. Quite often in a definition you will find a poetic quote
and it really is very informative and pleasant to use.
</DD><DT>
<br><br>
<B>WordNet (r) 1.6</B>
</DT><DD><P>
This dictionary seems to be under constant development. The aim
seems to be to provide definitions of all the words people want to
have definitions for! In practice it seems to miss some obvious
words such as &quot;with&quot; and &quot;without&quot;. I guess the
idea is to simply provide necessary update to the definitions found
in Webster's. Unfortunately this dictionary is neither as
informative or as pleasant as Webster's. If you need a more up to
date dictionary it is necessary.
</DD><DT>
<br><br>
<B>The Free On-line Dictionary of Computing (15Feb98)</B>
</DT><DD><P>
FOLDOC is a searchable dictionary of acronyms, jargon, programming
languages, tools, architecture, operating systems, networking,
theory, conventions, standards, mathematics, telecoms, electronics,
institutions, companies, projects, products, history, in fact
anything to do with computing. The dictionary is Copyright Denis
Howe 1993, 1997.
</DD><DT>
<br><br>
<B>U.S. Gazetteer (1990)</B>
</DT><DD><P>
This is probably only of interest to people wanting information
about America. The original U.S. Gazetteer Place and Zipcode Files
are provided by the U.S. Census Bureau and are in the Public Domain.
</DD><DT>
<br><br>
<B>Easton's 1897 Bible Dictionary</B>
</DT><DD><P>
These Dictionary topics are from M.G. Easton M.A., D.D., Illustrated
Bible Dictionary, Third Edition, published by Thomas Nelson, 1897.
Due to the nature of etext, the illustrated portion of the
Dictionary has not been included.
</DD><DT>
<br><br>
<B>Hitchcock's Bible Names Dictionary (late 1800's)</B>
</DT><DD><P>
This dictionary is from &quot;Hitchcock's New and Complete Analysis
of the Holy Bible,&quot; published in the late 1800s. It contains
more than 2,500 Bible and Bible-related proper names and their
meanings. Some Hebrew words of uncertain meaning have been left out.
It is out of copyright, so feel free to copy and distribute it. I
pray it will help in your study of God's Word. --Brad Haugaard
</DD><DT>
<br><br>
<B>The Elements (22Oct97)</B>
</DT><DD><P>
This dictionary database was created by Jay Kominek &lt;jfk at acm.org&gt;.
</DD><DT>
<br><br>
<B>The CIA World Factbook (1995)</B>
</DT><DD><P>
This somewhat typically short sighted view of the World (sorry I
love America, I lived there for a while - its great, but it is not
ALL THE WORLD!), really only becomes useful if you look in the index
file and see that there are Appendix's, these are though of limited
use to normal people, who think that the world ends at their
keyboard.
</DD><DT>
<br><br>
<B>Jargon File (4.2.0, 31 JAN 2000)</B>
</DT><DD><P>
The Jargon File is a comprehensive compendium of hacker slang
illuminating many aspects of hackish tradition, folklore, and humor.
This bears remarkable similarity to FOLDOC above.
</DD><DT>
<br><br>
<B>THE DEVIL'S DICTIONARY ((C)1911 Released April 15 1993)</B>
</DT><DD><P>
_The Devil's Dictionary_ was begun in a weekly paper in 1881, and
was continued in a desultory way at long intervals until 1906. In
that year a large part of it was published in covers with the title
_The Cynic's Word Book_, a name which the author had not the power
to reject or happiness to approve. Users of the <B>fortune</B>
program will already have some familiarity with this ;-).
</DD><DT>
<br><br>
<B>Who Was Who</B>
</DT><DD><P>
Who Was Who: 5000 B. C. to Date: Biographical Dictionary of the
Famous and Those Who Wanted to Be, edited by Irwin L. Gordon
<br><br>
<B>OTHER DICTIONARIES</B>
</DT><DD><P>
A number of other dictionaries have been made available, see the
<B>dict</B> home page for details. In many cases you may find the
program to convert dictionary data to the format <B>dict</B>
requires has not been written yet ;-(
<br><br>
</DD>
</DL>
<P>
As mentioned elsewhere, there are a number of translation
dictionaries also available (see below).
</P>
<a name="4"></a>
<H1>Installation</H1>
<P>The links given here were correct at the time of writing. If it is
a long time since this paper was published you should visit
<A HREF="http://www.dict.org/">http://www.dict.org</A> to see what has
changed.
</P>
<P>Unfortunately installation of the above mentioned software did not
go quite as easily as it should have, which partly explains why I am
writing this;-).
</P>
<P>The first thing you will need is plenty of disk space. The largest
dictionary available is <B>Webster's 1913</B> dictionary, which will
need about 85Meg to be re-built in.
</P>
<a name="5"></a>
<H2>dictd, dict and dictzip</H2>
<P>Unarchive <A HREF="ftp://ftp.dict.org/pub/dict/dictd-1.5.5.tar.gz">dictd-1.5.5.tar.gz</A>
in the normal manner.
</P>
<P><B>IMPORTANT:-</B> The HTML support has been turned off in this
version of <B>dict</B>. You need to turn it back on if you want to
take advantage of <B>Kdict</B>.
</P>
<P>Load the file <B>dict.c</B> into your favorite editor and remove
the comments from line 1069:-
</P>
<PRE>
{ &quot;raw&quot;, 0, 0, 'r' },
{ &quot;pager&quot;, 1, 0, 'P' },
{ &quot;debug&quot;, 1, 0, 502 },
{ &quot;html&quot;, 0, 0, 503 }, //Remove comments from this line
{ &quot;pipesize&quot;, 1, 0, 504 },
{ &quot;client&quot;, 1, 0, 505 },
</PRE><P>
so the file becomes as above.
</P>
<P>Now you can run <CODE>./configure;make;make install</CODE>. You
will see a great many warnings produced by the compiler, but at the
end you should have working client, server and compression program
installed.
</P>
<a name="5"></a>
<H2>Webster's</H2>
<P>Unpack the files <A HREF="ftp://ftp.dict.org/pub/dict/dict-web1913-1.4.tar.gz">dict-web1913-1.4.tar.gz</A>
and <A HREF="ftp://ftp.dict.org/pub/dict/web1913-0.46-a.tar.gz">web1913-0.46-a.tar.gz</A>:
</P>
<PRE>
$ tar xvzf dict-web1913-1.4.tar.gz
$ tar xvzf web1913-0.46-a.tar.gz
$ cd dict-web1913-1.4
$ mkdir web1913
$ cp ../web1913-0.46-a/* web1913
$ ./configure
$ make
$ make db
</PRE><P>
Now go make a cup of tea, this takes over an hour on my 133MHz box.
When done, decide on a place for your dictionaries to live and copy
them there, I use <CODE>/opt/public/dict-dbs</CODE> as suggested:-
</P>
<PRE>
$ mkdir /opt/public/dict-dbs
$ cp web1913.dict.dz /opt/public/dict-dbs
$ cp web1913.index /opt/public/dict-dbs
</PRE>
<a name="7"></a>
<H2>
WordNet (r) 1.6</H2>
<P>Grab <A HREF="ftp://ftp.dict.org/pub/dict/dict-wn-1.5.tar.gz">dict-wn-1.5.tar.gz</A>
</P>
<P>It is a great shame that one of the most useful dictionaries is
also the one that refuses to compile correctly. To create a viable
dictionary the original data must be parsed by a program. When you do
<CODE>make</CODE> it is this program that is created. Unfortunately
this package uses a <code>Makefile</code> created by <CODE>./configure</CODE>
which does not work. I am unable to correct the <CODE>automake</CODE>
procedure but can assure you that the following will work:
</P>
<PRE>
$ tar xvzf dict-wn-1.5.tar.gz
$ cd dict-wn-1.5
$ ./configure
$ gcc -o wnfilter wnfilter.c
$ make db
</PRE><P>
Again this process takes a considerable amount of time ( &gt; 1 hour
on my 133MHz). Once complete if you have not already created a
directory for your dictionaries do so now and copy the dictionary and
its index there:
</P>
<PRE>
$ cp wn.dict.dz /opt/public/dict-dbs
$ cp wn.index /opt/public/dict-dbs
</PRE>
<a name="8"></a>
<H2>
Jargon File, FOLDOC, The Elements, Easton's Bible Dictionary &amp;
Hitchcock's Bible Names Dictionary</H2>
<P>Grab <A HREF="ftp://ftp.dict.org/pub/dict/dict-misc-1.5.tar.gz">dict-misc-1.5.tar.gz</A>
</P>
<PRE>
$ tar xvzf dict-misc-1.5.tar.gz
$ cd dict-misc-1.5
$ ./configure
$ make
$ make db
$ cp easton.dict.dz /opt/public/dict-dbs
$ cp easton.index /opt/public/dict-dbs
$ cp elements.dict.dz /opt/public/dict-dbs
$ cp elements.index /opt/public/dict-dbs
$ cp foldoc.dict.dz /opt/public/dict-dbs
$ cp foldoc.index /opt/public/dict-dbs
$ cp hitchcock.dict.dz /opt/public/dict-dbs
$ cp hitchcock.index /opt/public/dict-dbs
$ cp jargon.dict.dz /opt/public/dict-dbs
$ cp jargon.index /opt/public/dict-dbs
</PRE>
<a name="9"></a>
<H2>
More up-to-date Jargon File</H2>
<P>Grab <A HREF="ftp://ftp.dict.org/pub/dict/dict-jargon-4.2.0.tar.gz">dict-jargon-4.2.0.tar.gz</A>
</P>
<PRE>
$ tar xvzf dict-jargon-4.2.0.tar.gz
$ cd dict-jargon-4.2.0
$ ./configure
$ make
$ make db
$ cp jargon.dict.dz /opt/public/dict-dbs
$ cp jargon.index /opt/public/dict-dbs
</PRE>
<a name="10"></a>
<H2>
US Gazetteer</H2>
<P>Grab <A HREF="ftp://ftp.dict.org/pub/dict/dict-gazetteer-1.3.tar.gz">dict-gazetteer-1.3.tar.gz</A>
</P>
<PRE>
$ tar xvzf dict-gazetteer-1.3.tar.gz
$ cd dict-gazetteer-1.3
$ ./configure
$ make
$ make db
$ cp gazetteer.dict.dz /opt/public/dict-dbs
$ cp gazetteer.index /opt/public/dict-dbs
</PRE>
<a name="11"></a>
<H2>
The Devils Dictionary</H2>
Grab <A HREF="ftp://ftp.dict.org/pub/dict/pre/devils-dict-pre.tar.gz">devils-dict-pre.tar.gz</A>
</P>
<P>As with the language dictionaries below, the dictionary has
already been created for you. Simply unpack this file in your
dictionary directory.
</P>
<a name="111"></a>
<h2>Who Was Who: 5000 B. C. to Date</h2>
<p>
Grab <a href="http://www.hawklord.uklinux.net/dict/www-1.0.tgz">http://www.hawklord.uklinux.net/dict/www-1.0.tgz</a>
<PRE>
$ tar xvzf www-1.0.tgz
$ cd www-1.0
$ ./configure
$ make
$ make db
$ cp www.dict.dz /opt/public/dict-dbs
$ cp www.index /opt/public/dict-dbs
</PRE>
<a name="12"></a>
<H2>Language Dictionaries</H2>
<P>Visit <A HREF="ftp://ftp.dict.org/pub/dict/pre/www.freedict.de/20000906">ftp://ftp.dict.org/pub/dict/pre/www.freedict.de/20000906</A>
</P>
<P>Installing a language dictionary does not involve re-building the
dictionary from original data, so you just need to unpack each file
into you dictionary directory.
</P>
<a name="13"></a>
<H1>Configuring dictd</H1>
<P><B>dictd</B> expects to find the file <CODE>/etc/dictd.conf</CODE>,
though an alternative file may be specified on the command line. Each
dictionary needs to be specified in this file so <B>dictd</B> can
find the dictionary and its index. For example if you just want to
use Webster's, WordNet and The Devils Dictionary, then the following
entries will be required (assuming you use <CODE>/opt/public/dict-dbs</CODE>
as your dictionary directory):
</P>
<PRE>
database Web-1913 { data &quot;/opt/public/dict-dbs/web1913.dict.dz&quot;
index &quot;/opt/public/dict-dbs/web1913.index&quot; }
database wn { data &quot;/opt/public/dict-dbs/wn.dict.dz&quot;
index &quot;/opt/public/dict-dbs/wn.index&quot; }
database devils { data &quot;/opt/public/dict-dbs/devils.dict.dz&quot;
index &quot;/opt/public/dict-dbs/devils.index&quot; }
</PRE><H2>
Advanced Configuration</H2>
<P>It seems it is possible to implement user access control and other
security measures. I have not tried this. If I were into security
issues the current state of the software gives me no reason to trust
any security feature it might have. But why anyone would want to
restrict access to these dictionaries is completely beyond me, this
is stuff any user has a right to use.
</P>
<P>You should be aware of a number of security issues if you intend
to make <B>dictd</B> available over a local network since not being
aware will leave your server vulnerable to a number of possible
attacks.
</P>
<p>Unless you are installing <b>dictd</b> on a server for a school/college
or for some other large network these issues will probably be of no concern to
you. If you are installing on such a network then you should already
be aware of the issues below.
</p>
<H3>Server Overload, Denial of Service, Heavy Swapping</H3>
<P>All these symptoms can occur if a number of users send queries
like <CODE>MATCH * re .</CODE> at the same time. Such queries return
the whole database index and each instance will require around 5MB
buffer space on the server.
</P>
<P>Possible solutions include limiting the number of connections to
the server, limiting the amount of data that can be returned for a
single query or limiting the number of simultaneous outstanding
searches.
</P>
<H3>Denial of Service</H3>
<P>The server can be driven to a complete stand still by any evil
minded <I>cracker</I> that wants to connect to the server 1,000,000
times.
</P>
<P>To prevent such anti-social behavior simply limit the number of
connections based on IP or mask.
</P>
<H3>Buffer Overflow</H3>
<P>If you experience this kind of problem you should make your
logging routines more robust, use <CODE>strlen</CODE> and examine
<CODE>daemon_log</CODE>.
</P>
<a name="14"></a>
<H1>Using dict</H1>
<P><B>dict</B> expects to find the file <CODE>/etc/dict.conf</CODE>.
This file should contain a line with the name of the machine you wish
to use as your <B>dictd</B> server, though this can be overridden at
the command line.
</P>
<P>The current version of <B>dict</B> is a little disappointing as a
users front-end for <B>dictd</B>. If all you have is a console and
you can't use <B>Kdict</B> then you will just have to get used to
<B>dict</B>. The worst thing about <B>dict</B> is that it can trash
your console and you will need to take action (such as logging out
and back in) to restore the keyboard to normal! This typically occurs
if there is a problem with <B>dictd</B>; such as when it is not
running and you try to use <B>dict</B>.
</P>
<P>Since <B>dict</B> is just a console program, it just sends output
to <B>less</B>. So unless you have a very good memory you will need
to use `cut and paste' to transfer referenced words or phrases back to
the command line.
</P>
<P>There is an option to send output to a pager program. I tried the
command <CODE>dict -html -P lynx luser</CODE>, the result was not a
happy one! Lynx went mad, referencing random help and configuration
files in a manner that reminded me of certain viruses in MS operating
systems.
</P>
<P>Personally I would say if you can avoid using <B>dict</B>
directly, avoid it! It is necessary to have it if you want to use
<B>Kdict</B>, and you <B>do</B> want to use <B>Kdict</B>.
</P>
<a name="15"></a>
<H1>Kdict</H1>
<IMG SRC="misc/gibbs/kdict.gif" ALT="Kdict.gif" WIDTH=578 HEIGHT=559 BORDER=0>
<P>To take full advantage of <B>dict</B> you really <B><I>need</I></B>
Kdict from <A HREF="http://www.rhrk.uni-kl.de/~gebauerc/kdict">http://www.rhrk.uni-kl.de/~gebauerc/kdict</A>.
I have used version 0.2 and cannot speak for any other version.
</P>
<P>To use <B>Kdict</B> you <B><I>must</I></B> turn HTML support back
on for <B>dict</B> as described above.
</P>
<P>The screen shot above shows <B>Kdict</B> in use. <B>Kdict</B>
makes good use of the limited HTML tags provided by <B>dict</B>, and
inserts extra tags so that you can easily cross-reference words. Any
phrase or word shown in red can be clicked on with the mouse to show
its definition.
</P>
<P>What makes <B>Kdict</B> so good is the fact that you can use the
clipboard to highlight a word from any window on the desktop and paste
it into <B>Kdict</B> as a query.
</P>
<a name="16"></a>
<H1>Conclusion</H1>
<P>This is a great project that can only get better, so it is a lot
like <B>Linux</B> and <B>gnu</B> software in general... <B>Give it
your full support</B>!
</P>
<p>
If you get <b>xscrabble</b> from <a href="http://www.belgarath.demon.co.uk/programs/index.html"> Matt Chapman's homepage</a>, you can enhance your enjoyment of the game by looking up the definitions of words you don't know, - as the computer beats the sh*t out of you;-).
<!-- *** BEGIN copyright *** -->
<P> <hr> <!-- P -->
<H5 ALIGN=center>
Copyright &copy; 2001, Chris Gibbs.<BR>
Copying license <A HREF="../copying.html">http://www.linuxgazette.com/copying.html</A><BR>
Published in Issue 63 of <i>Linux Gazette</i>, Mid-February (EXTRA) 2001</H5>
<!-- *** END copyright *** -->
<!--startcut ==========================================================-->
<HR><P>
<CENTER>
<!-- *** BEGIN navbar *** -->
<IMG ALT="" SRC="../gx/navbar/left.jpg" WIDTH="14" HEIGHT="45" BORDER="0" ALIGN="bottom"><A HREF="collinge.html"><IMG ALT="[ Prev ]" SRC="../gx/navbar/prev.jpg" WIDTH="16" HEIGHT="45" BORDER="0" ALIGN="bottom"></A><A HREF="index.html"><IMG ALT="[ Table of Contents ]" SRC="../gx/navbar/toc.jpg" WIDTH="220" HEIGHT="45" BORDER="0" ALIGN="bottom" ></A><A HREF="../index.html"><IMG ALT="[ Front Page ]" SRC="../gx/navbar/frontpage.jpg" WIDTH="137" HEIGHT="45" BORDER="0" ALIGN="bottom"></A><A HREF="http://www.linuxgazette.com/cgi-bin/talkback/all.py?site=LG&article=http://www.linuxgazette.com/issue63/gibbs.html"><IMG ALT="[ Talkback ]" SRC="../gx/navbar/talkback.jpg" WIDTH="121" HEIGHT="45" BORDER="0" ALIGN="bottom" ></A><A HREF="../faq/index.html"><IMG ALT="[ FAQ ]" SRC="./../gx/navbar/faq.jpg"WIDTH="62" HEIGHT="45" BORDER="0" ALIGN="bottom"></A><A HREF="nielsen.html"><IMG ALT="[ Next ]" SRC="../gx/navbar/next.jpg" WIDTH="15" HEIGHT="45" BORDER="0" ALIGN="bottom" ></A><IMG ALT="" SRC="../gx/navbar/right.jpg" WIDTH="15" HEIGHT="45" ALIGN="bottom">
<!-- *** END navbar *** -->
</CENTER>
</BODY></HTML>
<!--endcut ============================================================-->