My programs

I wrote some software for you to enjoy. It is free, or, more to the point, open source, like the excellent GNU software from the Free Software Foundation. Open source is quickly becoming the mainstream, as evidenced by the January 2000 GartnerGroup's research note Debunking Open-Source Myths: Origins and Players. There are many reasons to chose Free Software!

As explained above, these programs are distributed under the GNU GPL. If you would like to use the code in a non-free (i.e., closed-source) software or you are not happy with the copyleft for another reason, please feel free to contact me and I am sure we will be able to find some agreeable terms.

Battleship, Mastermind, Life:
3 (n)curses programs, C++ sources: Mastermind player, Battleship player and a Conway's life interactive tool.
DEN: DEcode/ENcode v. 1.9 [2001-01-27]
C source; transliterate/code Cyrillic from/to koi[78], alt, 1251, ISO-8859-5, TeX, and A. Shen's convention. Works on UNIX as well as DOS and win32 with Cygwin.
access the BBDB (a rolodex for GNU Emacs) from the shell prompt. C source code.
a bunch of useful functions absent from GNU Emacs. I load this file on startup. Please drop me a line if you find this useful. As I am trying to get the Emacs maintainers to add some of these functions to the official version, I hope this file will actually shrink as time goes. My emacs.el.gz is also available.
the well known "guess an animal" game. It includes a sample animals file. You will need a Scheme interpreter to run that. You may use guile, available from the GNU ftp site. Also included the Emacs-Lisp source. The ANSI CL version can be found in cllib below.
get a stock quote over the WWW, plot (using gnuplot) the history. You get 4(!) versions: C, Perl, Java and ANSI CL. To run the Perl version (slower, fewer features), you will also need package, written by someone else. To run the Java version, you will need the JDK. For CL, you will need CLISP, CMU CL LispWorks, ACL or some other ANSI CL implementation which supports sockets. Actually, this code is obsolete, you should get cllib instead.
get a map via the WWW from mapblast. This is just a Java-based GUI to a well known WWW service, and its only advantage over your trusted Web browser is more power and user-friendliness. Beware - mapblast has probably changed the interface since 1997, when I wrote it. This archive also includes the Java version of GetQuote.
Common Lisp cross-implementation compatibility package [PORT]
networking, shell access, multi-threading, environment quering etc. This package is now a part of CLOCC.
ANSI CL add-ons [CLLIB]
this is the collection of ANSI CL files that I use. This package is now a part of CLOCC.
IMAP [2000-06-16]
this includes two Java programs which handle IMAP:
a fetchmail in Java.
Expunge all your folders recursively: when you have a whole bunch of folders and subfolders, it is a nuisance to have to click on each folder and select "compress" (in Netscape).
You will need JavaMail and Java Activation Framework from Javasoft to run this.
Java data pretty-printer [2001-01-23]
This adds poor man's pretty-printer to Java, allowing you to print your data in a more human-readable way than Scratch@dd1f7 or [[D.
some JavaScript toys
Access the Common Lisp HyperSpec - the web version of the ANSI standard X3.226-1994 "Information Technology - Programming Language - Common Lisp". This is inspired by the no-longer supported hyperspec.el by Erik Naggum and can access both the old (long file name) and the new (8.3-file name) versions of the HyperSpec.

Joint Projects

sink GNU Emacs - the editor I fixed many bugs and added some features.
CLISP CLISP - an ANSI Common Lisp implementation. I added ANSI floating-point contagion, ANSI multiple value places extension, PostgreSQL, Berkeley DB, Netica and PCRE interfaces, system call exporting, ANSI-compiant pathname handling, pretty-printing, CLOS enhancements, and did some bug fixes. See the current implementation notes
SCWM SCWM - Scheme Configurable Window Manager for the X Window System, an fvwm2 derivative, extensible with guile. I wrote the Emacs interface and some scheme modules [1997-1999].

The *.gz files are compressed using GNU gzip, *.tgz files are tar-files compressed with gzip (i.e., *.tar.gz files). You can get GNU gzip (as well as a wealth of other software - from development tools and compilers to D&D games) from

The *.zip files are archives created with Info-Zip.


If you are looking for an application of your programming skills, please consider the following tasks:

You might want to look at the GNU Task list too.

Relevant links

My Ohloh profile

Sam Steingold
Valid XHTML Use CSS Valid CSS created: 1995-01-01