Good Reading
(Updated May 5, 2000)
This page was originally intended as a way of keeping track of any good
papers and articles, mostly computer-related, that I've downloaded from the
Internet. However, that got to be more trouble than it's worth - I can always
look up a paper using a search engine - so I've mostly been adding links to
collections of papers and articles, e.g., magazines with on-line articles,
E-zines, etc. There is lots of good stuff out there - enjoy!
Computers
Fiction
Genomics
Literature
Medicine
Periodicals
Religion
Science
Papers
Computers
- DevJournal -
articles mostly about Microsoft Windows programming.
- InformIT - articles, book
excerpts, etc.
- Ubiquity -
"An ACM IT Magazine and Forum".
Fiction
Genomics
- "BoulderIO"
by Lincoln Stein - is a brief overview of and manual for a
PERL-friendly, data interchange format for genome analysis software.
The PERL objects? Boulders, stones, and pebbles (nested stones), of
course!
- Primer on
Molecular Genetics by Denise Casey, for the Department
of Energy - an excellent, fairly detailed overview of the Human Genome
Project. I see so many links to it, would it be fair to call it a
"classic" in the field?
- "An
Introduction to Biocomputing" by David Steffen -
is the informative introduction to the
BioComputing HyperText Coursebook.
- "Doing
Sequence Analysis With Your Printer" by D. B. Searls - describes
RSVP
(Rapid Sequence Visualization in PostScript), a suite of PostScript
programs that perform preliminary sequence analysis and generate
graphic output. The programs also run on any computer that has a
PostScript interpreter, so you're not restricted to a printer!
(Since our printer couldn't handle the graphics in the paper, I had
to manually delete the figures from the PostScript file in order
to print it. An example of the graphic output is found on RSVP's
home page.)
- "The
Importance of Standards and Componentry in Meeting the Genome
Informatics Challenges of the Next Five Years" by Nathan Goodman,
Steve Rozen, and Lincoln Stein - discusses the benefits of building
tools in a modular fashion with standardized interfaces between the
modules and proposes a study of the existing practices and of ways
of merging them into some type of cohesive standard. (Also see
"The
Case for Componentry in Genome Information Systems" by the same
authors.)
Literature
Medicine
- Emerging Infectious
Diseases - "a peer-reviewed journal published by the
National Center for Infectious Diseases".
- Perspectives - A
Mental Health Magazine - an on-line magazine for the layman,
covering various topics in psychology.
- Prevention &
Treatment - "a peer-reviewed, rapid publication, electronic
journal".
- Psychiatric
Times - "a monthly trade publication with news and clinical
articles read by psychiatrists, allied mental health professionals and
primary care physicians who treat mental disorders".
- ShrinkMagazine.com:
Psychotherapy Ethics, Fraud, Legislation, Commentary -
a "Consumer's Guide and Review of the Psychotherapy Industry".
- Stitches:
The Journal of Medical Humour - great stuff! You'll need to
register (for free) with
Medscape® in order to
access the text of the articles.
- The Write
Brain - "a compilation of short stories, poetry, essays
and artwork created by consumers, caregivers, [and] mental health
professionals".
Periodicals
Religion
Science
- American
Scientist - "The Magazine of Sigma Xi, The Scientific
Research Society".
- Discover - a
popular science magazine. Check out the full text of
recent
issues and the
searchable
archive of older issues.
- New Scientist
(the British counterpart to Science News?) also has the
full text of selected articles, both from the current issue and from
back issues.
The articles are aimed at the interested layman and cover a broad
range of scientific subjects.
- Science News -
"the weekly newsmagazine of science".
- Scientific American -
scientific paradise - for the layman, more or less.
- Skeptical
Inquirer - published by the Committee for the Scientific
Investigation of Claims of the Paranormal (CISCOP).
- "The
Outer Reaches of Life", excerpted from John Postgate's book
of the same name - discusses (with some humor thrown in here and
there) the conditions required to sustain life as deduced from the
range of life known on earth.
Papers
- "Language Research:
Functional Languages and Object-Oriented Programming" by John
DiCamillo - a brief overview of functional programming and languages.
- "Object-Oriented Scanning
and Parsing" by John DiCamillo - an interesting overview of the
design and implementation in C++ of scanners and parsers intended for
special purpose languages; e.g., for embedding in tools.
- "Usability and
Class Library Design: Guidelines for Simplicity and Power" by
Arthur T. Jolin, in Dr. Dobb's Journal, October 1996 - an
excellent set of general guidelines for designing class libraries and
object frameworks.
- "Building
Bug-Free O-O Software: An Introduction to Design by Contract" from
ISE, Inc. - sounds like it was written by Bertrand Meyer and, like
anything he writes, it was both interesting and worthwhile to read.
- "SWIG:
An Easy to Use Tool for Integrating Scripting Languages with C and
C++" by David M. Beazley, from the 4th Annual Tcl/Tck Workshop -
describes a tool for automatically generating bindings of scripting
language commands to user-written C and C++ functions and variables.
Of particular interest is the capability of adapting the tool to
arbitrary scripting languages; e.g., Tcl, Perl, etc. A generic
Language
class defines methods for emitting the
C++ code that implements the binding of scripting language
constructs to C++ constructs:
create_function()
, link_variable()
,
declare_const()
, etc. To generate bindings for a new
scripting language, derive a new class from Language
and override the methods to genearte the appropriate C++ "wrappers"
for the scripting language.
-
C++?? A Critique of C++ by Ian Joyner - hasn't slowed the
juggernaut - or should I say, bandwagon.
- "Java
and the New Internet Programming Paradigm" adapted from Edward
Yourdon's Rise & Resurrection of the American Programmer -
a fairly in-depth overview of the capabilities and features of Java,
including an interesting look at its potential impact on the software
industry.
- Steve McConnell's
web site has his
"Best Practices"
columns from IEEE Software,
some articles
from Software Development, and excerpts from
his Code
Complete and
Rapid
Development books.
- "Eiffel
vs. C++: One Language Designer's View" by Bertrand Meyer -
a USENET posting from 1989. Back then, multiple inheritance and
templates in C++ were just "around the corner" and exception handling
was just a gleam in someone's eye. Eiffel, of course, already had all
three; see my own "TPOCC and
Object-Oriented Programming".
- "Effective
STL" by David Harvey - is one among several useful and well-written
articles of his on C++ and the Standard Template Library.
Also see G. Bowden Wise's well-done
"An Overview
of the Standard Template Library".
- "Threads:
Just Say No" by Michael Spertus - argues against the use
of threads. It is one of a number of columns and feature articles
available from the on-line magazine,
Object
Currents; each monthly issue also includes links to on-line
articles from its hardcopy sister publications:
C++ Report, JOOP, etc. On the subject of
threads, also see John Ousterhout's presentation,
"Why Threads
Are a Bad Idea (For Most Purposes)".
- "Scripting:
Higher Level Programming for the 21st Century" by
John Ousterhout - appears (to me) to be a subtle attempt to make people
realize that Java is not the be-all and end-all of the world. This
white paper is vintage Ousterhout: very readable, very interesting,
and making very good points. Unfortunately, most of the other
documents at his
web site
are slide presentations in PostScript or PowerPoint form.
- "Unix Talking with PC's"
by Andrew Tridgell - is, truthfully, an "entertaining account of the
development of the Samba package" and is one of several, equally
entertaining articles
available on-line from the
Linux Journal.
- "libscheme:
Scheme as a C Library" by Brent W. Benson, Jr. -
describes a well-designed, embeddable Scheme interpreter inspired by
the embeddable Tcl interpreter. In the same vein are:
- Elk,
a deluxe, embeddable Scheme interpreter with all the bells and
whistles, described in Oliver Laumann's and Carsten Bormann's,
"Elk:
The Extension Language Kit"
-
MzScheme, another deluxe Scheme interpreter, patterned after
libscheme and described in Matthew Flatt's,
"Inside
MzScheme".
- "Escaping the
Event Loop: An Alternative for Multi-Threaded GUIs" by Matthew
Fuchs - makes the interesting point that the reactive style
of programming with event loops is equivalent to continuation
passing style. Fuchs then attempts to show how using continuations
as callbacks simplifies the implementation of a multi-threaded program
in the context of an event loop, but he loses me at this point.
- "Erlang -
A Survey of the Language and Its Industrial Applications"
by Joe Armstrong - presents an overview of
Erlang, a
virtual machine-based, industrial-strength, functional language used
to write operational, real-time, telecommunications software. This
article made my blood boil - why do we put up with the likes of C++
and Java?
-
Revised(4) Report on the Algorithmic Language Scheme
edited by William Clinger and Jonathan Rees - is a concise, but very
readable specification for the Scheme language, often contrasted with
the lengthy and dry specifications of other languages. (This is
apparently the official home of R^4RS - the HTML
document is correctly formatted and the bibiliography has links
to the proper, 2-column PostScript version of the report.)
- "A
Distributed Computing Model for Telemetry Data Processing"
by Matthew Barry, Kevin Scott, and Steven Weismuller - presents the
Information
Sharing Protocol (ISP) used to distribute Space Shuttle telemetry
and other data to remote computers. In a nutshell, distributed data
servers publish data to which clients can subscribe. The paper
discussed a number of applications of ISP, but was lacking in
implementation details. These can be found, however, in the
User's
Guide.
- ARIANE 5
Flight 501 Failure - is the report from the Inquiry Board
which investigated the failure shortly after launch of the Ariane 5
rocket in June 1996. Briefly, failure in a software module (reused
from Ariane 4) which shouldn't have been active post-launch caused
CPUs in both the active and backup Inertial Reference Systems (SRI)
to halt. As a result, erroneous attitude data was forwarded to the
main computer, which then attempted to correct for the extreme
"attitude" of the launch vehicle. The report is very readable and
well-worth reading, particularly the final conclusions and
recommendations. Also see:
- "Experiences
Converting a C++ Communication Software Framework to Java" by
Prashant Jain and Douglas C. Schmidt, in C++ Report,
January 1997 - discusses the conversion of ACE from C++ to Java.
(Also see Schmidt's other
on-line
publications.)
- "Cygwin32:
A Free Win32 Porting Layer for UNIX® Applications" by Geoffrey
J. Noer. (Also see The
Cygwin Project.)
- "Back
to the Future: The Story of Squeak, A Practical Smalltalk Written in
Itself" by Dan Ingalls, Ted Kaehler, John Maloney, Scott Wallace,
and Alan Kay, in OOPSLA '96 (or '97?) -
describes the design and implementation of a portable Smalltalk
software development environment - very interesting and very
impressive! (Also see the
Squeak home page for more
documentation and ports to Windows 95 and NT, Macintosh, most UNIX
platforms, various PDAs, Acorn's RiscOS, OS/2, DOS, BeOS, and NeXT.)
Alex Measday / c.a.measday@ieee.org