Some useful Unix software
These programs were written by Andrew Myers and are
freely available for use, subject to some provisos contained in individual
distributions. These programs are free, but come with absolutely no
warranty.
The programs requiring compilation are set up using autoconf, and are easily
built and installed. They do require an ANSI C compiler (such as the GNU C
compiler, gcc).
To receive notification of updates to any of the software offered here,
please send mail.
- The Condorcet
Internet Voting Service makes it easy to set up
your own secure, anonymous elections across the Internet, using
state-of-the-art algorithms for ranking choices.
-
XSokoban is the X version of the classic puzzle game.
- relplot generates
high-quality PostScript plots of relations on
two variables, expressed as equations.
- rcsview displays RCS and CVS files by using
color to indicate which version various text came from. It allows rapid switching between
viewed versions while maintaining the same position in the file, and convenient display of
log messages. It requires Tcl/Tk.
- mvsed is a simple but useful script that allows easy manipulation
of files while applying substitution patterns to the filenames. For example, mvsed makes it
easy to change file extensions, to change filenames from upper- to lowercase, or to move files between one directory structure and another.
- grader is a program for
generating appealing plots of exam scores and other sampled data, using
a posteriori principles to form a hypothesis about the "true"
probability distribution being sampled (or at least a nice excuse for
smoothing). [An
example]
- splitdefs improves a build process by
avoiding unnecessary builds. One of the annoyances of Unix programming in C or C++ is
excessive rebuilding when using make. One reason for this problem is the natural
desire to organize preprocessor definitions into central configuration files, particularly
when using autoconf. This program addresses the problem by automatically splitting
configuration files into smaller headers, allowing fine-grained dependency analysis and
fewer gratuitous compilations. Splitdefs is easily integrated into a typical build
process.
- netview displays
the packets being sent on a local network in an
unusual and intuitive dynamic animation. It works on Linux and
Windows. (This program was developed with Saikat Guha, building on an
older program that was developed with Bruce Karsh.)
- ccube displays the
current X colormap in either a standard 8x8 grid or by the colors' positions inside the
RGB color cube. Handy for seeing how various programs are using the colormap.
- MLM is an extension to gnu cpp that permits multi-line macro
definitions without the usual backslash crud. Even better, errors that occur within the
macro expansion are reported at the correct place within the macro definition, rather than
at the point of invocation.
TeX packages
- cu_thesis.cls.
This is version 2.9.3 of the Cornell thesis style document class,
originally written by Sergio Gelato and modified by several others
including me. This version corrects some bugs in previous versions,
relating to line spacing, page number placement, page size and page
centering. It also includes a sample thesis document and a sample Makefile
for building a thesis. [Cornell thesis information]
- ttquot.sty. This package has seen a lot
of use for writing technical documentation and papers. It's very simple: the double
quotation marks (") put their contained text into typewriter font, and underscores
put contained text into italics, except when they occur in math mode or inside
"". Thus, documents written using ttquot are readable both before
and after formatting.
- angle.sty makes < and > produce angle brackets instead
of less-than and greater-than signs. Useful for typesetting mathematics.
Occasionally interacts badly with other packages that want to use the
same characters.
- exam.sty is a package for writing
examinations. It has lots of nice formatting support, but
the best feature is that it keeps track of how much questions and
parts of questions are worth and makes sure that everything totals up
correctly. It also supports writing the solutions and the exam itself in a single file,
with package options used to control which version is generated.
An example exam is
available (and here it is formatted
and as solutions).
The utf8 package
supports UTF-8 encoded LaTeX documents. If your editor supports UTF-8
encodings, you can use Unicode characters in your
document directly. The set
of mappings currently includes more than 450 characters:
a lot of the math symbols, the ISO-Latin-1
characters, and the Greek alphabet. Modern LaTeX distributions do
include UTF-8 support via the inputenc package, but it
only seems to support Latin-1 characters. The
utf8 package also comes with
a set of Vim bindings for entering all the
characters; just set the Vim variable encoding to
utf8 (Eclipse has a similar setting).
Here is an example document: [ LaTeX | PDF ]. If you'd like support for
additional characters, add them to utf8-table.txt (included) and
I'll quickly generate an updated version of the style file for you.
PostScript code
These are some not very useful but fun PostScript documents.
Various Javascript hacks
Useful software I don't distribute
-
I wrote the original graphical diff/merge tool, called gdiff, at Silicon
Graphics when I worked there in 1989. I was inspired by the interactive
textual diff program, sdiff. Since then there have been lots of
nice spinoffs that supports text editing and directory-level merging,
like xxdiff, kdiff3, and meld.
Andrew Myers
andru@cs.cornell.edu