Software by Peter Miller

This web site contains software written and owned by Peter Miller <>. All of it was developed using the Aegis transaction based software configuration management package. This software is all owned by Peter Miller and is all freely distributable under the terms and conditions of the GNU GPL.

See also my project list on Ohloh, but it is inevitably less complete.

LaunchPad PPA

If you use Ubuntu Linux, there are pre-built packages available for installation using the normal sudo apt-get install method.

To start using this package repository, use the following commands:

sudo add-apt-repository \
sudo apt-get update
The add-apt-repository command may be found in the python-software-properties package.


Aegis is a project change supervisor, and performs some of the Software Configuration Management needed in a CASE environment. Aegis provides a framework within which a team of developers may work on many changes to a program independently, and Aegis coordinates integrating these changes back into the master source of the program, with as little disruption as possible. Resolution of contention for source files, a major headache for any project with more than one developer, is one of Aegis's major functions.


The local Aegis project list may be found here. This inludes projects hosted here, rather than at


The bigtext comamnd is used to print big text using X11 fonts. It is similar to many other banner(1) commands, except that it has all of the X11 fonts to draw with.

Black Hole MTA

The black-hole-mta package is for use in automated package build systems. It looks like a Mail Transfer Agent (MTA) and email goes in but nothing comes out. It is intended for use in chroot jails for automated package build systems.


The Canola program is an emulator for the 1970s vintage Canon Canola 1614P programmable calculator.


The ccard program may be used to validate credit card numbers.

CD-Rom Stuff

The cdrom-stuff package contains tools to create CD-Rom images.


The chip8 package includes a virtual machipe for Chip8, an interpreter used in a number of 1970s-era home computers. It implements a small machine designed specifically for simple video games, and uses X11 to display the screen.


The Contrast program tool is used to compare files, token by token, and present a graphical diff.


Cook is a tool for constructing files, and maintaining referential integrity between files. It is given a set of files to create, and recipes of how to create and maintain them. In any non-trivial program there will be prerequisites to performing the actions necessary to creating any file, such as include files. Cook provides a mechanism to define these.


The dnsutl package is a collection of programs to make configuration and mainenance of DNS (and related data) more simple.


The FHist package contains 3 utilities, a file history tool “fhist”, a file comparison tool “fcomp”, and a file merging tool “fmerge”. These are mentioned in the Aegis documentation.


The fstrcmp project provides a library that is used to make fuzzy comparisons of strings and byte arrays, including multi-byte character strings.

GNU Gettext

Back in 1998 I contributed a heap of code to the GNU Gettext project. The command side, rather than the library side.


Hexdump is a simple program for dumping binary files in hexadecimal format. It provides both hexadecimal and ascii columns.


The icon-compositor project is a collection of programs for manipulating and compositing icon images.


The itractorgen prgram generates images of tractors.


You know how you bang out a quick program for some task, and then discover a few weeks later you should have kept the source? These days, I just put all such programs in the Junkyard.


The Knight-Path program is used to find the shortest path of a knight chess piece between two chess board positions.


The libexplain project provides a library which may be used to explain Unix and Linux system call errors. This will make your application's error messages much more informative to your users.


The mag-tape package is a collection of utilities for manipulating UNIX magnetic tapes, including copying and comparing tapes.


The nis-util package is a collection of powerful tools for manipulating NIS (Network Information Service) map files. NIS maps are hightly interrelated. In order to provide a stable working environment for users, it is essential that the the system administrator have tools which report inconsistencies between NIS maps in a timely manner.


The Plastic File System uses FUSE to manipulate what the file system looks like for user programs. These virtual file systems exist in user space, and no kernel hacks or modules (other than FUSE) are required.


The Plumbing project provides a library which may be used to implement lightweight C++ wrapper facades for Berkeley sockets for single threaded applications.


Quickie is a small footprint, fast C++ Wiki engine; hence the name. I went looking for small, fast, open source wiki engines on the Internet and didn't find one. Too many were written in interpretive languages with huge run-time footprints. Quickie is small and fast.


The SRecord package is a collection of powerful tools for manipulating EPROM load files. It understands the Motorola S-Record format, the Intel hex format and many others. In addition to converting between all formats, it can also perform a variety of data manipulations.


The tardy program is a tar post-processor, useful for manipulating the file headers within tar(5) files.


The Tickle project is an open-source implementation of a compiler for the domain-specific language called Transaction Control Language (TCL). This is compatible with the Illicom TradeXpress™ Enterprise package, used with their Realtime Transaction Environment (RTE). A pretty printer is included.


The ucsd-psystem-fs package is used to mount UCSD p-System filesystem disk images as Linux file systems. It also contains a number of other useful UCSD p-System filesystem tools.


The ucsd-psystem-os project contains the II.0 source files (and some bug fixes) plus a Makefile that uses the cross compiler to build the sources, and the file system tools to build working disk images that can be executed using the virtual machine.


The ucsd-psystem-um project is reconstructing the II.0 user Manual.


The ucsd-psystem-vm project is a portable virtual machine (p-code interpreter) for the UCSD p-System. It supports execution of Apple ][ Pascal programs, it can even display TurtleGraphics using X11.


The ucsd-psystem-xc project provides a Pascal cross compiler for producing UCSD p-System code files on Posix hosts, such as Linux. It also provides some other related tools, such as a disassembler.


If you thought cat -v was considered harmful, you haven't met my uncia.


Vii is a simple program which periodically executes a command, and the most recent output is displayed. The display can be scrolled up and down, or left and right.

Penguin Emeritus

This page has been accessed approximately times since 14-Jan-2007.