Over the years I’ve written a bunch of software; most of it is small utilities to make shell programming easier or solve a specific problem I’ve had. I don’t know how useful any of this will be to other people, but in the best Free/Open Source Software spirit I can manage, I’m making it available. If you find it useful, great; if not, well, at least no one will accuse me of hoarding my work.

I don’t entirely agree with the GNU Public License, so I’ve come up with a license of my own; I think you’ll find it quite reasonable.

Now then, on to the software …

A brief overview of this collection of tools.

The INSTALL file that describes how to build and install these programs.

A brief history and “justification” of my tools.

Perform common IP address/CIDR/netmask calculations.

A script to install the programs in this collection.

Convert integers between bases 2, 8, 10, 16, 32, 62, and 64.

Perform simple date operations like yesterday, tomorrow, five days in the future, etc.

Print sequences of dates.

POSIX date(1), with extensions (single-digit day, day suffix, epoch seconds, microseconds, and operating on a specified date) and deletions (can’t be used to set the system date), and all done with 100% POSIX-compliant library calls.

Used with hexify (see below).

Display a file in hexadecimal and ASCII.

Embed plain ASCII man pages inside a C program.

Check a file for “unprintable” characters.

A command-line interface to the lstat(2) system call, with lots of options.

A command-line interface to the mkstemp(3) library call.

Print a selected day of the month.

A very simple program for managing notes to myself.

Used in shell programming to compare two numbers (because sometimes the shell makes it difficult to deal with negative numbers, and floating point numbers are right out).

A script to provide a uniform path for the script in this collection.

A very simple program for compiling and printing status reports.

A command-line interface to the strcmp(3) and strncmp(3) library calls (because neither POSIX test(1) nor sh(1) can do this.

A simple program for testing other programs.

All the software is collected in a single gzipped tar file. Here’s an abbreviated revision history of that file:

2010/01/03 @ 12:50 -0500   first posting
2010/01/04 @ 13:40 -0500   added dseq
2010/01/04 @ 17:09 -0500   added nthday
2010/01/05 @ 12:16 -0500   added hd, fixed bug in pre-printed man page for addrtool
2010/01/10 @ 12:42 -0500   added BACKGROUND, isprint; fixed a minor bug in the man page for edate; changed strcmp and strncmp to print only words (no more numbers, no -v flag)
2010/01/25 @ 18:25 -0500   fixed bugs in isprint, postalworker
2012/01/14 @ 10:44 -0500   removed openCreatExcl, postoffice; added Install_all, asm2install, simplePath, tester; added/updated Makefile for everything; all programs now in separate directories; improved installation scheme; added README files for note, st; added --man to all programs; added features to lstat.