    <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/">
     <channel>
        <title>ACCU  :: Members Experiences</title>
        <link>https://members.accu.org/index.php/journals/934</link>
        <description>Professionalism in Programming</description>
        <dc:language>en-us</dc:language> 
        <dc:creator>Administrator</dc:creator> 
        <admin:generatorAgent rdf:resource="http://www.xaraya.org" /> 
        <admin:errorReportsTo rdf:resource="mailto:webeditor@accu.org" />
       <sy:updatePeriod>hourly</sy:updatePeriod>
       <sy:updateFrequency>1</sy:updateFrequency>
       <docs>http://backend.userland.com/rss</docs>


        <h2>Journal Articles</h2>


<div class="xar-mod-head"><span class="xar-mod-title">CVu Journal Vol 11, #6 - Oct 1999</span></div>

<table border="0" cellpadding="1" cellspacing="0">
    <tbody>
    <tr>
        <td valign="top">
            Browse in :
       </td>
       <td valign="top">

                                            <a href="https://members.accu.org/index.php/journals/">All</a>

                     &gt;                         <a href="https://members.accu.org/index.php/journals/c76/">Journals</a>

                     &gt;                         <a href="https://members.accu.org/index.php/journals/c77/">CVu</a>

                     &gt;                         <a href="https://members.accu.org/index.php/journals/c129/">116</a>
                    (22)
<br />
</td>
   </tr>
   </tbody>
</table>




<div class="xar-error">
   <p>
 <strong>Note:</strong> when you create a new publication type,
the articles module will automatically use the templates
<em>user-display-[publicationtype].xt</em>
and <em>user-summary-[publicationtype].xt</em>.
If those templates do not exist when you try to preview or display a new article,
you'll get this warning :-)  Please place your own templates in themes/<em>yourtheme</em>/modules/articles . The templates will get the extension .xt there. </p>
</div>
<div class="xar-norm xar-standard-box-padding">
   <h1><strong>Title:</strong>&nbsp;Members Experiences</h1>
<p><strong>Author:</strong>&nbsp;</p>
<p>
<strong>Date:</strong> 03 October 1999 13:15:33 +01:00 or Sun, 03 October 1999 13:15:33 +01:00</p>
<p><strong>Summary:</strong>&nbsp;</p>
<p><strong>Body:</strong>&nbsp;<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e20" id="d0e20"></a>Microsoft
Visual Studio 6.0 Enterprise Edition</h2>
</div>
<p>Visual Studio is a very expensive Windows development
environment containing several programming languages, and Microsoft
recently decided to give one copy to each of the second-year
undergraduates at Cambridge. The idea is that we might like to use
it in our final-year project and can thereafter keep it. The secret
agenda could be to turn us all into Microsoft developers, Microsoft
managers and so on, as opposed to the competition (e.g. open
source). Needless to say there was quite an anti-Microsoft fuss in
reaction to this, and suggestions of publicly burning the software,
but that didn't happen and nearly all of the students did take
their copies. (I know because I took mine just before the deadline
so I could see how full the sign-up sheet was.) There is however no
obligation and I doubt if many of them could be caught actually
using it for their projects.</p>
<p>Well what is it like? My first impression is, how bloated! Just
look at these disk space requirements: 116-135Mb for Basic,
302-403Mb for C++, 85-90Mb for FoxPro, 81-98Mb for InterDev,
86-104Mb for J++, 59-141Mb for SourceSafe, 43-59Mb for Internet
Exploder 4, 57-493Mb for MSDN (required for the online
documentation), 200Mb for the NT option pack, 80-95Mb for SQL
server, 50-100+Mb for SNA server and may require additional space
for other stuff. Fortunately you don't have to install all of it at
once. While I'm far from convinced that every one of those
megabytes are properly used, there does seem to be an awful lot
&quot;thrown in&quot; - the CHtmlView class, for example, is essentially a
web browser that you can bolt into your application.</p>
<p>The first thing I looked at was the included book, which
describes an enterprise development model, often giving the
impression of being vague and hand-waving, and points to the
various diagramming tools and so on that are included (some of
which assume you have several computers at your disposal), then
gives some hype about the various development environments and
&quot;wizards&quot; (which are all very well if you like their way of
working, but not flexible enough to work with existing non-wizard
code). Of course, it advocates all-Microsoft solutions (apart from
some mainframe connectivity).</p>
<p>The book is in a sense amateurish, the diagrams looking like
they were printed on an ancient dot matrix (the book is dated 1998)
and there are some typographical errors like forgetting to embolden
a subheading. And there are some significant technical errors. For
example, after doing the Database section of my undergraduate
course I picked up on the sentence at the bottom of page 69: &quot;The
process of refining tables, ... to create an efficient database is
called normalisation&quot;. Actually, normal forms are not supposed to
make the database more efficient. &quot;One fact one place&quot; is not
always efficient, if processes have to queue up to get to that one
place. Normal forms are intended to help with consistency and
protect against some common design flaws. They must have known this
because it's implied earlier on the same page. They seem to be
using technical words like &quot;efficient&quot; in a marketing sense. I
would rather not trust a book that does that.</p>
<p>If &quot;automatic code completion eliminates the need to memorise
language syntax&quot;, and &quot;Visual C++ is the development tool used to
build ... Word and Excel&quot;, can we infer that the developers of Word
and Excel were not good enough to remember the syntax of the
language? If you use any kind of tool that finishes your code for
you, you'd better check that its guess really is right, which means
STOP and THINK - if you haven't got time for that then you're in
for Trouble.</p>
<p>Another thing I'm usually sceptical of is web-site design
software, and going by the book's description, no wonder there are
so many inaccessible sites out there.</p>
<p>Then I tried to install the software. It comes as a three-CD set
with an extra two CDs for MSDN (including the documentation) and
one for a service pack, and Visual J++ is on a separate CD. So,
when the installation completely failed, I tried first installing
J++. Have a good book handy when you install, and be prepared to
restart your machine several times in the process. You will be told
that Internet Explorer 4 is &quot;essential&quot; and if you wanted to keep
another version for any reason, sorry but it's going. Your
shortcuts, icons, file associations and so on will also be changed
whether you like it or not, and generally bits get changed all over
the system - in fact it can't completely clean up after itself, as
is illustrated by the direction to &quot;reformat the hard disk and
re-install the operating system&quot; if you have used a beta copy! I
like to have at least some idea of what's going on on MY system,
which I have taken a lot of time adjusting.</p>
<p>When it had finished installing, I launched J++ and tried
creating a &quot;Windows Application&quot;, whereupon it told me that I'd
better enable Microsoft language extensions or it might not compile
properly. I was told &quot;While future versions of Microsoft Java's
development tools may be prohibited by court order from
incorporating keyword extensions and compiler directives not
contained in Sun's Java language specification, any code written
and compiled with this version of the product will be unaffected by
such a ruling.&quot; Draw your own conclusions!</p>
<p>It took me into one of those IDEs that makes your desktop look
like an aircraft control panel with not so much room for the code
itself. It had created a file called Form1.java, but when I looked
at it, instead of seeing code I saw a window template. I removed
that file from the project and did File New, and it created a file
called &quot;Java File1.java&quot;. I'm not sure what sense there is in that,
since a .java file should contain a class of the same name and you
can't have spaces in a class name. It wasn't obvious how to change
the filename, so I created one in advance and opened it.</p>
<p>As you type, keywords and comments are syntax highlighted, and
it pops up a list of member methods where relevant, underlines
suspect syntax, and does its own thing with indentation. As with
Word, such &quot;as you type&quot; checking can be CPU-intensive and make the
software less responsive, but everyone knows You Should Get A
Faster Computer (TM). These features can be turned off; indeed
there is a fair amount of configurability under Tools/Options
(although not all of the fonts can be changed). I would prefer to
be able to turn off the pop-up list but call it up with a hotkey
should I need it (like Unix's tab completion), but not a chance -
it's all or nothing. I added some AWT code I had and tried
compiling, but got &quot;Specified main class 'Form1' not found&quot;.
However, opening and OK-ing the Project Properties dialogue,
without changing anything, fixed this problem. It produced a
Windows .exe that was surprisingly small (about 10k) because it
used DLLs; other output formats include DLL files, self-extracting
setups and applets. Also it is possible to build a console
application, although the help text rather misleadingly calls this
an &quot;MS-DOS application&quot;; you still need Windows to run it.</p>
<p>I very much doubt if I'll be using J++ in preference to Sun's
command-line compiler, not being too keen on point-and-click GUI
builders (let alone non-standard language extensions) and finding
println quicker than integrated debuggers. I might use it if I need
to compile a Java program into a .exe file, and for that it's a lot
of hard disk space to pay.</p>
<p>After J++ was installed, the rest of the setup worked. I tried
Visual C++, which has a similar IDE although it doesn't seem to do
quite so much as you type. The compiler was nice to recognise
'<tt class="literal">using</tt>' as a keyword, but not so nice to
give me warnings about <tt class="function">main()</tt> returning a
value, and when I typed '<tt class="function">main()</tt>' on its
own, it said &quot;assuming <tt class="type">void</tt>&quot;. The &quot;Hello
world&quot; program produced a 220Kb .exe file including debug code. By
the way, the included &quot;hello world&quot; program looks like this:</p>
<pre class="programlisting">
#include &quot;stdafx.h&quot;
int main(int argc, char* argv[])
{
  printf(&quot;Hello World!\n&quot;);
  return 0;
}
</pre>
<p>Well if it were C I'd prefer <tt class="function">puts</tt>, not
to mention &lt;stdio.h&gt;, but it's supposed to be C++ so what's
wrong with <tt class="classname">cout</tt>? Many C++ coders (myself
included) sometimes use C-ish things because of &quot;old habit&quot;, but
doing it in the example code of a development package is slightly
more serious.</p>
<p>Then I wanted to say a little more than &quot;hello world&quot;, so I
threw my access gateway at it; this is around 200k of source that
works on GNU C++. It displayed a hierarchical list of classes and
methods (in a font that couldn't be made any bigger), that could be
clicked on to jump there in the source. When I built it, though, it
said &quot;Cannot execute program&quot;, &quot;0 errors, 0 warnings&quot; and there
wasn't an executable. I then realised that it doesn't recognise
GNU's preferred extension of .C++ for C++ files; they must be .cpp,
even though it does allow you to add .C++ files to the project and
then ignores them.</p>
<p>I then compiled it, and was surprised to find a few errors,
given that it compiled under GNU C++ with all warnings turned on.
Double clicking on these errors took you to the appropriate point
in the source. A couple of times I had tried to <tt class=
"literal">delete[]</tt> a <tt class="type">const char*</tt>,
(<i><span class="remark">but you are allowed to do that
Francis</span></i>) which GNU let me get away with but Microsoft
didn't (my users needn't worry because it was the '<tt class=
"literal">const</tt>' that was in error, not the '<tt class=
"literal">delete</tt>'). When I wrote</p>
<pre class="programlisting">
class CgiInQuery : public CGIEnvironment::CgiInput
</pre>
<p>it complained that I couldn't access the <tt class=
"literal">protected class CgiInput</tt> (although GNU objects to
'<tt class="literal">class CgiEnvironment::CgiInQuery</tt>' and I
didn't really want to put it all in the header file), and when I
wrote</p>
<pre class="programlisting">
return(new TableEncoding[theNumberOfEncodings] (dataFile));
</pre>
<p>it said &quot;cannot specify initialiser for arrays&quot;. Pity - GNU and
I had always thought it was a neat way of loading all the data in
one line. The other errors were due to Microsoft thinking that a
variable declared in a '<tt class="literal">for</tt>' initialiser
extends beyond the scope of the '<tt class="literal">for</tt>',
which is wrong (although many compilers years ago did it)
[<i><span class="remark">when it was the correct thing to do
Francis</span></i>]</p>
<p>Now I have actually seen Visual C++ I still fail to see why some
recruitment departments require experience in it, rather than C++
experience in general. If a company uses Visual C++, practically
any C++ programmer should be able to walk in and start coding in
it, give or take an idiosyncracy. As for the various &quot;wizards&quot;, I
thought the whole point of them was that you didn't need
experience, and many of them don't do that much anyway. What
remains are things like the Microsoft Foundation Classes (MFC), and
it's quite possible to use Visual C++ without touching them, so
requiring Visual C++ experience could very well be specifying the
wrong thing.</p>
<p>I did not try the other components of Studio, such as Basic
(just because someone's given me a Basic compiler doesn't mean I
have to use the thing). I did try Internet Explorer and as I
expected I'm not too keen on it, especially when it tries to take
over my life. It is however integrated with the development
environment - if you load a web page with a Javascript error in it,
for example, you have the option of debugging, which takes you back
to the aircraft control panel and lets you edit the code. Thanks,
but I'd rather not end up with the overcomplicated IE-specific
web-site I might get if I developed it in that.</p>
<p class="c2"><span class="remark">Thanks, Silas. Actually you
should not be quite so biased. The big problem with Visual Basic is
that every release is incompatible with every other one. The good
things about it is that it are that it isn't Basic and it has a
reasonable Visual Programming environment (though that might not be
an advantage to Silas).</span></p>
<p class="c2"><span class="remark">The real problem with using
Visual C++ is that it isn't C++. Once you have a body of source
code that works with VC++ you are not going to like porting it to
another, more conforming compiler. And, yes, MFC does not port to
other compilers, the compilers have to be fixed to compile the
source code. Exactly the wrong way round.</span></p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e121" id="d0e121"></a>Various Free
Software</h2>
</div>
<p>C was first used to write the Unix kernel and has always been
closely associated with Unix, and its free variants that are
gaining increasing acceptance. It can be argued that programmers
should have at least some experience in these, and installing one
on your own machine is one way to get such experience. Here I
describe my adventures from the beginning.</p>
<p>To run Un*x on a PC you need at least a 386; there is such a
thing as the &quot;embedded Linux kernel subset&quot; that will run on an XT
but I have had no success with it (and anyway you need an existing
Unix system to compile it). In autumn 1997 I got a machine with a
high enough spec, so I dug out an old magazine cover CD that had
Red Hat Linux on it (it was the CD that prompted the controversial
Hewson article in The Times on 20th April 1997, but I didn't know
that). I read the readme and installed it.</p>
<p>Installation is not necessarily easy (I have heard it said that
installation can be the hardest part), especially if you don't know
what you're doing. You'll probably find that your first attempt
won't work. The old Red Hat greeted me by mangling my partition
table - it helps if you know all about primary and secondary
partitions and so forth. When I sorted that out, I ended up at a #
prompt (root, i.e. superuser) and didn't know what to do (I didn't
know a thing about Unix). So I deleted it and went through a year
of the Computer Science course with my NT student license, during
which I was introduced to the lab's Unix system, and because NT
kept crashing (which eventually turned out to be due to a
miss-configured motherboard) and I preferred the configurability of
X Windows, I wanted to switch to something else at the first
opportunity.</p>
<p>One of the philosophies of the Unix command line is to have lots
of small tools that can be combined - passing the input of one to
the output of another and so on (they really do run &quot;in parallel&quot;,
so if you're filtering the output of a command you see the output
from the filter while the command is still running). And some of
them are very flexible, for example bash and emacs.</p>
<p>Discouraged by Red Hat, I tried various versions of Linux that
did not require separate partitions. Monkey Linux, for example, can
be installed in a DOS partition. (Most of these things can be
downloaded from the Web - it helps if you are well-connected. As I
write this I am offline and don't know the URL, but a search for
&quot;monkey linux&quot; will probably get there.) Unfortunately I found I
couldn't get any of the packages (applications) to install properly
(there were only five of them anyway), I couldn't connect to the
network and I was only just able to run X Windows (and not very
well). The documentation did say that Monkey is not recommended for
serious use. When Adrian Wontroba made his BSD for free offer in
the summer of 1998, I thought there's no better time than the
summer vacation to install and get to know a new OS, except of
course that I was offline and so could not use all the online
sources of information to help. I used PartitionMagic to shrink my
NTFS partition, put a few files on the shared FAT and left 200Mb
for FreeBSD (www.freebsd.org/). I installed FreeBSD 2.2.6 from the
CD-ROM and it worked fine, but there was hardly any of that 200Mb
partition left. I trimmed it down by deleting stuff I thought I
wouldn't need - bad mistake as things later didn't work and I
couldn't work out why. But there's nothing like deleting the small
fonts in order to force applications to use larger ones!</p>
<p>When back at university I used my FreeBSD installation as an X
terminal to access software on other people's computers. This was
easier than trying to cram anything else in that 200Mb but it has
its disadvantages, not least of which is you are intimately aware
of all network failures. I did everything as root because my random
chmods &quot;for extra security&quot; had made it so that only root could do
anything useful and I couldn't restore the old state. It is not a
good idea to do everything as root because every program you run
has full access to the system. It was still apparent though that
FreeBSD was much better at managing resources than NT was - the
hard drive, for example, didn't thrash nearly so much, and the
system as a whole was much more responsive.</p>
<p>I set up the Cern HTTP daemon and Lynx so I could run the access
gateway, along with PC Emulator to run a couple of DOS programs,
Bash, and ytree to organise files (Explorer didn't work very well).
I tried Wine (the Windows emulator) but it crashed on startup. I
also tried Linux emulation and it worked on the couple of binaries
I tried. Sendmail didn't work at all (I think I must have deleted
something I shouldn't have). I had to run the generic kernel
because I didn't have room to compile my own (also at this point
the motherboard was still unstable and I couldn't run the computer
for that long); the generic kernel can't do everything (notably it
can't do audio). The PC Emulator was fine but slow (it's a good
idea to run it at a low priority) and the timer routines aren't
right. ytree is a nice XTree-like program that runs from the
console.</p>
<p>Another problem was that the kernel kept running out of swap
space, especially when running lots of windows of the latest
Netscape (which seems to ask for a lot of X Windows memory).
Sometimes it thrashes the disk for ages and sometimes X Windows
will freeze on 100% CPU, meaning you have to log in from over the
network to do anything. (There was no ssh daemon and I didn't want
to telnet as root or su because of the danger of network snooping,
so I wrote my own &quot;let me in&quot; program that uses a time-dependent
secret function on a random number; I put the same algorithm in my
Psion palmtop and used that for authentication.)</p>
<p>When I came to installing KLIC, I needed more space. I couldn't
re-size the FreeBSD partition, but I could create another; I
crammed everything else up and created another 300Mb partition,
mounting it as /usr. (My old /usr became redundant space.) I also
installed emacs to look at the info files and one or two other
things, but primarily I was still using FreeBSD as an X terminal.
Having to switch between operating systems all the time is a pain
in the neck. (I used NT's boot loader together with a small
freeware program BOOTPART that lets you add almost anything to its
menu.)</p>
<p>Recently I had occasion to get a second hard drive, and a friend
helped me install it and put Debian Linux on it (see
www.debian.org/). Debian has the advantage that it is very easy to
set up and maintain; it is supposed to be a &quot;zero-admin&quot; Un*x with
all the defaults set sensibly and secure, and there is a package
called apt that lets you use the command &quot;apt-get install
package-name&quot; to take you through the complete process of
downloading, configuring and starting a package. The packages can
be uninstalled quite simply too, and kernel customisation can be
done from a dialogue-driven interface.</p>
<p>I'm told that a lot of Cambridge people are Debian developers.
There is a kind of &quot;holy war&quot; between Linux and FreeBSD, with
FreeBSD advocates saying that it is more mature than Linux, and
Linux advocates saying that Linux has overtaken FreeBSD and the
FreeBSD people are stuck in the past. I would recommend that, if
your organisation has a lot of people who are experts in one but
not the other, then choose that one. There are a few subtle
differences between Linux and FreeBSD that may trip up the experts
of the other system. But Debian is rather nice.</p>
<p>I would further recommend that, as much as possible, you put all
your personal configuration, customisation and data in your home
directory (i.e. don't make the mistake I did with FreeBSD). That
way you only have to back up the home directory and a list of the
packages installed; anything else is replaceable. You do
occasionally need to fine-tune files in /etc, but this is generally
done automatically by the Debian administration tools.</p>
<p>Linux can also support more hardware and filing systems. It
could read my FreeBSD partitions and the NT partition, as well as
using DOS with long filenames. FreeBSD is supposed to be better as
a server (quite important if you're providing services), seems to
be preferred by a lot of Japanese people, and reading about the
Halloween Document debate got me worried that one day I'd be
punished by Microsoft if I ran Linux. Well I hope not.</p>
<p>One package that I have come to like very much is the K desktop
environment (KDE). (Note that you need to install and configure X
Windows first.) KDE does have its problems - one or two of the
applications (like the mail client) don't fully support customised
colours, for example - but generally there are few problems. (There
are some bugs you might run into very occasionally and learn how to
avoid, but they may well be fixed by the time you read this.) KDE
is a fully-integrated window manager, application launcher, file
manager with automatic MIME type detection, FTP and Web browser,
help system, archive manager and bookmarks, with all the utilities
you'd expect in a full-featured GUI-based operating system and
more. If you want to use Unix but don't like the command line, get
KDE; if you do like the command line, get KDE anyway because it
makes your xterms look good :-) The KDE defaults seem to be
intended so that Windows users will feel &quot;at home&quot;, but more
powerful features (such as automatic focus) can be enabled and the
configuration is dialogue-based. The documentation is very good
(especially given that most of the authors speak English as a
second language), and although there are some sections saying &quot;not
written yet&quot;, this does not cause a problem.</p>
<p>Incidentally, you don't have to use the K window manager to use
the KDE applications. They will work with any window manager. Quite
a few people like icewm, but unfortunately it is not supposed to be
very customisable.</p>
<p>I would recommend that you have some system to browse the &quot;man&quot;
(manual) pages and &quot;info&quot; files. GNU Emacs can browse info files.
KDE can browse both, although the version I have runs into bugs.
FreeBSD comes with a program called &quot;xman&quot; to do it. The package
&quot;tkman&quot; is nicer, but if you want to go through a Web browser, try
installing the Apache web server and the packages info2www and
man2html.</p>
<p>You won't need a C or C++ compiler because one comes bundled
with the system, as do a number of other languages, and gdb, once
you get used to it, is a debugger that can actually debug, as
opposed to look pretty and crash whenever your program does. You
will need an editor - in the old days all editing was done with vi,
and there are some people out there who might put me on their hit
list if I dare denounce it, but between you and me the only thing
you have to know about vi is, if you should ever get into it by
accident, typing :q! will get out. Setting the EDITOR environment
variable to emacs (in your .bash_profile - you'll find out when you
see the documentation) should prevent any nasty accidents. The
package &quot;nedit&quot; is a nice editor for X Windows (not the console, so
don't set EDITOR to it), with a fair range of features but lighter
than emacs. My system really became a &quot;development environment&quot;
when I created a .kdelink to nedit so I could click on source files
to edit them.</p>
<p>While you're at editing your .bash_profile and .bashrc, I
recommend adding something like the following:</p>
<pre class="literallayout">
alias ls=&quot;ls --color&quot;
export PS1='\h:\w\$ '
export PATH=$PATH:.
</pre>
<p>(The syntax is all in the documentation.) I could go on for some
time about the various other &quot;dot file&quot; tweaks I like, but you'd
get bored. Reading the man page for X is a good idea.</p>
<p>nedit is not as stable or as powerful as emacs (the version I
have, for example, crashes on save if you have syntax highlighting
on, but this may have been fixed). Emacs is described as an &quot;editor
plus kitchen sink&quot; or &quot;a Lisp interpreter and a load of Lisp&quot;. Some
people do everything in it - read mail, news, browse the Web, file
management etc. It does have some nice editing modes but takes some
getting used to. I would recommend XEmacs over emacs because it is
&quot;nicer&quot; in X Windows but is otherwise similar. However, some
packages insist on plain emacs; for this reason I have an
installation of emacs 19 (the old version, without the
internationalisation and other interesting stuff) and xemacs
20.</p>
<p>LyX is a very good WYSIWYG interface to LaTeX, which is better
than the average wordprocessor because it takes care of all the
style housekeeping for you. You don't have to know LaTeX to use
LyX; using LyX easily compares with using the leading
wordprocessors, except that you can concentrate on the content of
your document more than the layout (which is handled
automatically). It is also reputed to be very stable. Most
universities use TeX or LaTeX for their typesetting. TeX is a
typesetting package by Donald Knuth, LaTeX is a macro system for
it, and LyX is a front-end. You'll need all these packages; gs,
ghostview, gsfonts, gsfonts-other and magicfilter are also useful
for easy printing. (Ignore the horror stories about Unix printing;
it's File Print.) For viewing Postscript and PDF, you might prefer
gv to ghostview but it doesn't use your own colours. (The Adobe
Acrobat reader is rather redundant.) Distributing documents in PDF
and Postscript format is not a good idea for electronic viewing
anyway (although a lot of universities do it) - both packages are
about the most awkward and least responsive text viewers I know,
especially if you have large print, and it's much better to import
the TeX into LyX. By the way, using a large magnification in xdvi
risks locking the X server.</p>
<p>Yes</p>
<p>Other packages on my &quot;get them&quot; list are:</p>
<div class="itemizedlist">
<ul type="disc">
<li>
<p>at (to do commands 'at' a certain time),</p>
</li>
<li>
<p>ytree (an XTree-like file manager for the console, mentioned
earlier; useful when you aren't using X),</p>
</li>
<li>
<p>tree (like the DOS command),</p>
</li>
<li>
<p>statserial (useful for debugging serial port programs and
cables),</p>
</li>
<li>
<p>Lynx (a text mode Web browser - one day you might need it),</p>
</li>
<li>
<p>Netscape Communicator (big and unwieldy but a useful fall-back
when you don't know how else to do what you want),</p>
</li>
<li>
<p>Netscape's Java options (you have to get them separately),</p>
</li>
<li>
<p>zip (for compatibility with pkzip; unfortunately unzip is
separate, which I didn't find out until I went offline),</p>
</li>
<li>
<p>gimp (a very powerful graphics package &quot;just in case&quot;),</p>
</li>
<li>
<p>gimp-nonfree to add GIF and TIFF support to it,</p>
</li>
<li>
<p>wine (a Windows API emulator; buggy at present but useful when
you just have to launch a Windows program to get data out of
it),</p>
</li>
<li>
<p>signify (a random .signature generator that can generate a
different one each time the file is accessed, although this doesn't
work with all email clients),</p>
</li>
<li>
<p>all the X fonts you can lay your hands on (if you're a fonty
person or you might have international users; in the latter case
you should probably get all the packages to do with those languages
on the list),</p>
</li>
<li>
<p>cgiwrap (allows ordinary users to run CGI programs),</p>
</li>
<li>
<p>catdoc (useful when you need to look at an MS-Word file, from
any character set),</p>
</li>
<li>
<p>flip (a no-nonsense command-line tool to change the line endings
in text files between DOS and Unix conventions),</p>
</li>
<li>
<p>mswordview (converts MS-Word 97 files to HTML; unfortunately the
HTML isn't much tidier than Word's own export routine
produces),</p>
</li>
<li>
<p>pstotext (attempts to extract some of the plain text from
PostScript and PDF documents),</p>
</li>
<li>
<p>rgrep (a version of grep that can highlight matches and recurse
directories),</p>
</li>
<li>
<p>jdk (if you're a Java person),</p>
</li>
<li>
<p>splitvt (splits the terminal into two windows, in case one day
you're stuck with only a single telnet connection to your
machine).</p>
</li>
</ul>
</div>
<p>No</p>
<p>Packages on my &quot;tried and don't really like&quot; list (with no
offence intended to the authors) include:</p>
<div class="itemizedlist">
<ul type="disc">
<li>
<p>dotfile (nice idea but can't get it to work),</p>
</li>
<li>
<p>uvscan (a virus scanner that wouldn't install; you don't have to
worry too much about viruses on Linux anyway),</p>
</li>
<li>
<p>biff (there are better ways of alerting you to email),</p>
</li>
<li>
<p>sigrot (not as good as signify),</p>
</li>
<li>
<p>xfmail (I can't put up with the colours or change them),</p>
</li>
<li>
<p>buici-clock,</p>
</li>
<li>
<p>jered (editor for C/C++ but nothing like emacs),</p>
</li>
<li>
<p>crashme (a stress tester but it's rather dangerous),</p>
</li>
<li>
<p>defrag (also unsafe),</p>
</li>
<li>
<p>netenv (asks which network environment to go into at boot time;
unless you change VERY often, or don't switch your system off, it
can just get in the way of booting),</p>
</li>
<li>
<p>syslog-summary (I didn't find it helpful),</p>
</li>
<li>
<p>xpw (a wordprocessor but nothing like LyX)</p>
</li>
<li>
<p>V editor/IDE (rather basic interface for an IDE).</p>
</li>
</ul>
</div>
<p>There are of course other packages, and it is worth spending
time browsing the Debian (or FreeBSD or whatever) web pages that
list them, especially if you have a specialist need.</p>
<p>I would recommend that anyone who is able to do so should try an
open source system. You Windows people don't know what you're
missing.</p>
<p class="c2"><span class="remark">Are Silas and I the only
software users?</span></p>
</div>
</p>
<p><strong>Notes:</strong>&nbsp;</p>
<p><em>More fields may be available via dynamicdata ..</em></p>
</div>
</channel>
</rss>
