New, very lightweight "Backup.remote" script for disk
to disk backups, being used in production from the ESMF across ucinet
to a linux machine running Ubuntu Linux. It's basically just tar |
ssh 'cat', but it also keeps 2 daily backups, 2 weeklies, and 2
performance - Provides definitions, ways of assessing performance,
and ways of improving network performance.
libraries - They aren't your usual Sun-like shared libraries found
on nearly all *ix's and (modern) linuxes.
chunkup - a program to tack a pipe-like
interface onto a program using only an MS-DOS-like (IE: no true pipes)
interface. Written to make it "possible" to pipe into an "Scommand"
(EG: "Sput"), which is part of
SRB. SRB in turn, is a very
mtools-like series of programs.
convert-database: a program for
converting data in one database format to another. Could also be used
for rebuilding a partially-broken database back into the same (but
A new article about why it's important to check error conditions early
(particularly when writing programs that allow unsafe memory
references). The language used for the examples given is FORTRAN,
but the same general ideas apply to C, sometimes C++, and a host of
AoE notes, AKA "ATA over
Ethernet", which makes it a tad like iSCSI or NBD/ENBD.
Pidof, which makes it easier
to look up the pid of a process (believe it or not ).
New pdftopdb program - for converting
pdf files into plucker format - for use on constrained devices like
PalmOS or Linux PDA's, or most anything else with a plucker viewer.
New Linux USB drives page -
hopefully applies to USB disk drives as well as USB flash drives
Script for finding the highest numbers in a list: highest. Also useful for ASCII order, and
finding lowest quantities. It's much faster than the traditional:
sort < hugefile | tail -10
...on very large collections of data, as long as "-10" doesn't get too
evolution-sledgehammer script. It's for unconfusing evolution , EG if evolution always dies as soon as you start it up.
sum-by - for very easy report generation from a whitespace delimited flat file database source file
modunits.py - for performing common modular units conversions, EG seconds, minutes, hours, days, weeks, months, years,
fast-pseudorandom program for benchmarking and other processes that need a constant but high-entropy data source
Sun stuff page has some new items, as well as most of the older things I wrote up
that have Sun stuff too (including the promised stuff about Solaris 10)
New "backup notes" palm memo. Includes information about Networker,
diagnosing backup problems (courtesy of David), other interesting backup
programs based on rsync and/or rdiff, and the relationship between backups and
compression and encryption.
An overview of what forms of data recovery are doable on *ix, from
grep'ing the device file, to making an image backup, to using a data recovery service.
merging uids programs for merging NIS domains, /etc/passwd's, and
similarly-formatted password databases.
penalize-users, for making the jobs of
some users run slower (in case they're using too many resources).
drs-rewrite, for informing users of where a set of URL's have moved to
"malloc and sbrk" page, about the
relationship between malloc and sbrk, and why free'ing memory sometimes doesn't
shrink your process.
script for automatically converting Redhat static route configuration data to
AIX static routes (both for the routing table and the ODM).
New max-tcp-window script, for determining
your system's maximum tcp window size.
Packaged up my old pbmonherc program for displaying .pbm images on a hercules adapter.
Packaged up my old hashing routines in C, to be released as drs-hash. Includes a statically typed version that's less
memory-efficient, and a weakly typed version that's very memory-efficient.
opendap stuff - A software system for efficiently serving up large scientific (for example)
setpgrp-and-exit - some code I wrote to explore the relationship between setpgrp,
fork, exit and defunct processes.
Finally gave loop a web page. It's for parallelizing jobs, without running all jobs concurrently,
by maintaining a pool of n nearly-always-running jobs out of m total.
equivs2 now has a -d option for specifying an output delimeter, and treats
nonexistent files as empty files. It also now has the ability to read filenames from stdin separated by a null byte, in
addition to its previous ability to do the same with newline termination.
drsbackup should handle -s correctly now (series of tar archives, one per filesystem)
evolution-sledgehammer, when yanking on ~/.evolution, will back up not to
~/.evolution.old, but rather to a directory name that includes the date.
Backup.remote page now also has my Backup.local and Backup.rsync scripts described
in it (for disk to disk backup on the same system, and rsync incrementals locally or to another system). rsync
backups or similar could really make our backup costs a lot lower, both in terms of storage requirements
and network network bandwidth requirements. I did Backup.remote and Backup.local for the ESMF, and Backup.rsync for
for my backups at home. The ESMF probably should be switched to Backup.rsync though. rsync backups apparently are
excellent both for individual file recovery (*ix, MacOS X and windows) as well as disaster recovery (*ix, maybe MacOS
X, probably not windows).
Seems the maxtime link may have disappeared, so here it is.
Finally documented my merge-libs script, that's intended to take some of the sting out
of AIX library unusualness, when you need a library with both 32 bit and 64 bit objects in it.
cachedb.py - for caching python database entries - write-through, write-back, and with disk-to-core and core-to-disk transparent format conversion
base255.py - a python module for converting numbers to strings and vice versa, but the strings have the interesting property that they can be null terminated and concatentated, without increasing ambiguity.
NBD doc page now has info about NBD and ENBD (as before), but also GNBD (without GFS) now.
odirect - for reading data without going through the buffer cache, hence deterring cache poisoning when reading data that you
know you won't be reading again anytime soon. Includes C and Python support, but the python support is done via SWIG, so it should be easy to do other
equivs2 can now skip the byte-for-byte comparisons that were required sometimes previously, instead trusting
hash comparisons. This optional behavior results in a huge performance gain, at the expense of a small difference in accuracy.
readline0.py - read data in python until an arbitrary character is found