Home Page -- Paul Serice
- Programming
-
argparse_example.py is
a simple example of how to use the standard Python
"argparse" library.
-
BadPad is a text editor that tries to
occupy the same niche under Unix that Notepad does under
Windows.
-
ByteUtil.java dumps the raw data
of a byte array into a string that has the same format of emacs'
"hexl" mode.
-
C++ Operator Precedence Chart
-
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++
STL.
-
checksum is a java program that
calculates checksums producing output similar to
md5sum and sha1sum.
-
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.
-
DottedQuad.java converts
between integer and text representation of dotted quad ip
addresses.
-
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
StarKit
environment.
-
Dynamic Strings is a collection of
dynamic string implementations in various programming
languages.
-
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
system.
-
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
divisor.
-
Harbinger is a Macintosh OSX
application that gives you advance notification of when the
screensaver is about to start.
-
hex.py is simple Python script that
prints a hex dump of a file or standard input in a format
similar to hexdump's "Canonical hex+ASCII display." The
format is actually based on hexl-mode in emacs.
-
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
Tcl/Tk.
-
Jenkins One-at-a-Time Hash
written in Standard ML.
-
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
and Windows.
-
make_enum
is a set of C/C++ macros that automatically define
enumerations and their helper functions for converting to
and from string and testing if it is safe to cast an
integers to the enumerations.
-
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
diff
or one of the following version control systems:
Bazaar,
CVS,
Fossil,
GIT,
Mercurial, or
Subversion
-
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
still missing.
-
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
sized projects.
-
OpenSSH 9.5:
ObscureKeystrokeTiming no discusses why you should
probably disable the ObscureKeystrokeTiming option in
OpenSSH.
-
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.
-
port_forwarding.py is a port
forwarding script written in Python.
-
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
Solaris.
-
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
format.
-
rot13.sh is a simple rot13 encoder
using tr.
-
sendrecv is a simply
Python project having send.py and recv.py scripts that can
be used to send and receive standard input and standard
output respectively.
-
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.
-
string_to<T>() converts
a string from any type that can be extracted for a
std::istream.
-
string_conversions.h
and
string_conversions.c
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
of strtok.
-
Systematic
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
$569085.84.
-
Testing Hash
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.
- Links
- Mail