
The three principle virtues of a programmer are
Laziness, Impatience, and Hubris.
Larry Wall
There are two ways of constructing a software design:
One way is to make it so simple that there are obviously no deficiencies, and
the other way is to make it so complicated that there are no obvious
deficiencies. The first method is far more difficult.
-C.A.R. Hoare
Reliability
in the Face of Complexity - the Challenge of High-end Scientific Programming,
2001, by Gary Ferland, my contribution to Spectroscopic challenges of photoionized plasmas, ASP Conference 247
PDF

Links to the open source software movement:
The home page of the Open Source
Initiative.
Slashdot a rumor mill for hackers
O'Reilly Open Source Center
Free Software Foundation
Linux Online
Mozilla.org
The Apache Project
Cygwin - GNU on Win32 distributed by
Red Had.
The Linux Documentation Project
iMatix software tools

Perl
Perl is an excellent platform-independent way to automatically interact with a computer. I
use Perl scripts to completely test Cloudy every night after it is changed and
to do other housekeeping activities.
(The full test suite must be run anytime anything changes to catch bugs as soon as they are introduced.)
The Perl Institute
The Activestate distribution (the one
I use - includes an excellent debugger)
On Usenet at comp.lang.perl
CPAN - Comprehensive Perl Archive Network,
lots of Perl scripts
The Perl data language,
PDL, extends Perl to do matrix math
SMTP email can be sent from Perl on nt/w2k using
DevMail
I use
Blat to send email
from Windows through SMTP and is open source

MPI
Cloudy uses MPI for parallel computing. Here is the MPI
master site.
MPI - The
Complete Reference. An on-line book on MPI.
The PACS Training Course on MPI.

Tcl/Tk
Graphical top-ends for much of the Cloudy analysis tools are being developed
using Tcl/Tk. This provides a simple cross platform way to build a
user-friendly GUI.
The Active State
Tcl/Tk site
Visual Tcl/Tk, a Visual Basic-like
tcl editor
tcl developer exchange
Tcl/Tk contributed source
archive

Other free software
File viewers;
Adobe for PDF,
Ghostscript and GSview (its graphical front end for Windows) for PostScript,
and the gv front end
for Unix.
Tex:
MiKTeX is a port of the TeX environment to Win95 and NT. The gsview
download also includes the ps2epsi translator, which is needed to convert
pc-generated postscript into the encapsulated postscript needed by the LaTex
environment.
Need to make your modern Word or WordPerfect document look like old-fashioned
Latex?? Design Science, the makes
of MathType,
offer a port of the Computer Modern fonts to the
TrueType. They are free
but you need to register.
Editors:
Editpad is a Windows 95/NT text editor.
The grasp
editor gives an algorithmic view of a program.
VIM is an improved Vi available for free
download. The
vi lovers homepage has links to
this and more. This is the editor I use.
EMACS ported to
NT
BK ReplacEm - replaces text across
multiple files.
Eluent tools provides a graphical front end
to sed to edit an entire collection of files. I use these tools every day.
Compilers
The Cygwin (Redhat) port of gcc
(click on "install now"). This includes many GNU utilities and
gcc.
The djgpp port of the GNU C++ compiler
to dos. This link includes other gnu stuff as well.
MinGW: Minimalist GNU For Windows
A
list of IDEs for gcc.
Al Stevens' IDE for gcc, called Quincy
LCC-Win32 is an independent
development of a C/Fortran environment. The binary is free.
Pacific C, a simple
C compiler
The command line version of the Borland
C++ compiler is free.
Splint is an open source lint for C
Object Outline from Bumble Bee Software
produces reports of relationships between routines and objects
X11 Servers for Windows:
WeirdX is a pure Java implementation
XFree86 from Cydwin
Unix clones:
Cygwin ports the Unix
environment to Windows.
The Unix Reconstruction Project -
rewrites Unix tools in Perl
wxWindows is a cross-platform GUI
Etc:
The Secure Shell for connecting to other
machines, and file transfers, is free for educational use
Mindterm does ssh and scp
Calc98 is a
simulated hand calculator that also does extensive conversions. A great deal of
its power is not obvious at first, so be sure to read the html help file.
Project Gutenberg - making all public domain literature openly available.
Literate Programming is a web
site dedicated to clear programming style, and methods of creating
self-documenting programs
rtf2latex converts an
rtf file (which Word can create) into LaTex
What
real programmers use
Games:
The source and executables for Super Star Trek, a
descendant of a game I
played in the early 1970s on a mighty CDC 6600 using a paper TTY.

Some shareware/commercial software I use
The following software is not free, but evaluation downloads are.
MS Visual Studio,
Cloudy is developed with this IDE/C++ compiler
Visual SlickEdit runs on may platforms
and has great power. This is the editor I use.
Eluent Tools, file and directory editing,
and it integrates with Visual Studio.
MKS Toolkit, brings a Korn
shell and Unix tools into the NT environment.
WinZip can compress and decompress zip, gzip, and tar files.
WS_FTP is an ftp client.
L0phtCrach by L0pht Heavy Industries
can discover passwords on any Microsoft machine if it has enough time and
physical access to the box. It should only be used for morally justifiable
purposes such as correcting errors in your merit evaluation on the Chair's or
Dean's computer, or your salary stored on the Comptroller's machine.
UltraEdit, a programmer's editor
ZoneAlarm is a personal firewall

Repositories of scientific software, with sources
Atlas is a self-optimizing
BLAS
The object oriented numerics
page
GAMS, NIST's Guide to Available Mathematical
Software.
The Netlib Repository at UTK & ORNL
The TOMS Repository at
www.netlib.org
Numerical analysis FAQ
page, has many hints about web resources.
The Blitz++ Numerical Library home
page, a set of C++ classes designed for scientific use. They also have an
Object-Oriented Numerics Page, with
links to lots of scientific software.
POOMA - parallel object-oriented
methods and applications, from Los Alamos
TNT (Template Numerical
Toolkit) is NIST's set of ANSI C++ routines for linear algebra, with source.
They also have lapack++.
Scientific Computing: C++
versus Fortran, describing classes designed for scientific computing in C++.
Resources for
mathematical computation in C or C++.
The SNIPPETS collection of C codes with
source
Scientific Applications for Linux (SAL)
has many codes with sources
iMatix has an open source Standard Function
Library
Boost is a free peer-reviews portable C++
library

C & C++
The chairman of AT&T
Said, "Your graduate physics degree
Is not worth a penny,
Of your kind we've too many.
Perhaps you can program in C?"
Steve Langer, from the ASP
Limerick page