Home Page -- Paul Serice
BadPad is a text editor that tries to
occupy the same niche under Unix that Notepad does under
ByteUtil.java dumps the raw data
of a byte array into a string that has the same format of emacs'
C++ Operator Precedence Chart
- CGI Scripts.
cgul stands for "C General Utility
Library." As its name implies, it is a library of general
utilities written in portable C. The core of the library
are the same sort of standard algorithms found in the C++
checksum is a java program that
calculates checksums producing output similar to
md5sum and sha1sum.
Chocolate Pieces is a two player
game. Each player must take 1, 2, 3, or 4 pieces of
chocolate on each move. The player who takes the last
chocolate piece (or pieces) wins. On the other end of the
above link is a computer program. You will always move
first. With perfect play, you can always beat the
computer. One mistake though, and the computer will
always beat you. I did not conceive of the game.
cidr converts an ip address and netmask
to Classless InterDomain Routing (CIDR) format. Includes the
functions ip_string_to_uint32() and ip_uint32_to_string().
CraftyWatcher lets you follow
the musings of Crafty as it decides its next winning move.
crlf converts among the unix, mac, and
dos end-of-line conventions.
between integer and text representation of dotted quad ip
dump_vars.tcl is a Tcl
script that dumps the names and values of all variables that
are currently in scope. This is especially useful at global
scope. For example, it lets you compare your development
environment with your
Dynamic Strings is a collection of
dynamic string implementations in various programming
ernie is a 100% Emacs Lisp script that
can be used as a drop-in replacement for grep making it easy
to grep using the native version of Emacs on Windows.
event_loop is a standalone event
loop that can be used to write any number of different types
of programs on Unix include servers.
fossil-scripts are a
collection of scripts for use with
the fossil SCM
Greatest Common Divisor is a graphical
user interface that finds the greatest common divisor shared
between a fraction's numerator and denominator. It then
reports both the reduced fraction and the greatest common
HostConvert is a graphical Java
application I wrote for quick DNS lookups.
HostEntry is more feature-rich than
HostConvert, but is not finished.
ical patch to get the last official ical
source (circa 1995) to build with recent versions of gcc and
Jenkins One-at-a-Time Hash
written in Standard ML.
Loan Repayment is a small web-based app that
is sure to depress you. You can get the source for a
stand-alone executable that does the same thing.
Log Follow allows you to follow
text files similar to tail and less but with a few extras.
It has a graphical interface and runs natively on both linux
mergesort.sml is a Standard
ML implementation of merge sort that is slightly faster than
than SML/NJ's ListMergeSort when compiled with mlton.
mgdiff Debian Package
mgdiff-scripts are a set of
scripts for automatically displaying a graphical difference
program like mgdiff, meld, tkdiff, xxdiff, etc. for each
different file as determined by the output of
or one of the following version control systems:
mktemp is a clone of BSD's
"mktemp" which exclusively creates a temporary file for use
by a shell script. I wrote this in straight C because I
needed this functionality on WinNT, and it is currently
missing in the Cygwin utilities. Actually, the mkstemp()
function call is now present, but the "mktemp" executable is
NumberFormat is a simple gui
for displaying the binary format of arbitrary precision
numbers and for converting among common bases like
hexadecimal and octal. Command-line utilities are also
included that do the same thing.
ocaml.mk is a Makefile for ocaml
development. It should be sufficient for small to medium
pad.scm is a module for racket (a dialect of
scheme). This module provides simple implementations of
(pad-left) and (pad-right) which are needed because Scheme's
(format) function does not (to my knowledge) allow the user
to specify field width or alignment.
Path Manager (pathmgr) is a Python script
that makes managing your PATH or other PATH-like enviroment
variables (or any delimited list) easy and portable.
pstree is a relatively portable
awk script that rearranges the output of "ps" into a
parent-child tree. pstree gets its name from several other
common utilities that do something similar. It is known to
work with FreeBSD, NetBSD, OpenBSD, IRIX, Linux, and
Quadratic Equation Solver solves for
complex roots given complex coefficients for second degree
polynomials using the familiar Quadratic Equation.
rational-to-string are Clojure
and Common Lisp packages that allows input or output of arbitrary
precision floating point numbers.
realpath uses the standard C
library call to realpath() in order to strip out back
references and symbolic links.
report_signals is a
simple program that prints to standard output the number and
text description of all the signals (except SIGKILL and
SIGSTOP of course) it receives.
rgb is a small GUI that lets you quickly
try different color combinations from the standard rgb.txt
list of colors or from a custom list of colors in the same
rot13.sh is a simple rot13 encoder
shunt and flyisofs allow you to treat
your CD writer under linux like you would a tape drive.
These two programs make it much more convenient to make
multi-volume CD backups of your Linux system using your
favorite backup software. In fact, by using these two
programs, you can completely eliminate all temporary file
creation and just stream your data straight to your burner.
shunt is also interesting by itself because of its
general utility in making the unix pipeline a more friendly
place to work.
slock is a simple program
that lets shell scripts synchronize around a file lock on a
local file system or one mounted via NFS (provided the NFS
server supports file locking). This is for those times
where perl or python isn't available. The "s" in "slock"
comes from its association with shell scripts.
slock for BSD is the same
as "slock" above but it compiles on more platforms. It is
informative to do a diff on the main.cc in this tarball and
the main.cc in the other tarball above. It will show you
how sigwaitinfo() is simpler to use than sigsuspend() when
you don't need a signal handler to run.
split.cc returns a vector of strings
split on a character delimiter (C++).
split.lg returns a list of strings
split on a character delimiter (Logo).
split.lisp returns a list of
strings split on a list of character delimiters (Lisp).
Simple String class is a simple, dynamic
string class for C.
a string from any type that can be extracted for a
take care of what I consider to be a few oversights in the
strtol(), strtoul(), and strtod() C stdlib routine. It
provides conversion routines for int, unsigned, long,
unsigned long, and double.
StringUtil.java returns a
Vector of String types split on a character delimiter (java).
strtok_r() example to show how
to avoid the common pitfalls of using the reentrant version
Investing shows how your money grows given constant
earnings and periodic deposits. As of 2000, if you have an
IRA that grows at a constant 10%/year and if you contribute
$3000.00 annually through equal bi-weekly direct deposits.
At the end of 30 years, your $89996.40 invest will grow to
Functions Using Dieharder explains how to partially test
hash functions using dieharder.
truncate is a short program
that wraps the function of truncate(2). It works as a
faster replacement to dd if=/dev/zero of=<file>.
usleep.c is a wrapper around the
usleep() system call.
verify_atoi() is a "C"
routine that verifies the string you send to atoi is really
an integer. This is necessary because atoi() returns 0 for
both when a zero is read and when the input string is in an
improper format. An alternative is to use strtol() as is
shown in usleep above.
word_jumble finds American English
solutions for jumbled words.