This is a list of most of my Opensource projects, and documentation examples.

If you click a "select row" button, you'll be taken to a list of technologies involved in a project.

If you click a "select column" button, you'll be taken to a list of projects using a particular technology (think programming language, etcetera).

If you get a little lost in this big table, you can mouseover a "Yes" to see what row and column you are currently looking at.


Description


Highlights


Code in Rust


Code in Python


Code in POSIX shell


Code in C


Code in C++


Code in Java


Code in C#


Code in Perl


Code in JavaScript / TypeScript


Code in Haskell


Code in Golang


Programming: theory and building blocks


Problem Solving: abstract and instances


Automation


*ix in general


Linux specifics


Solaris specifics


AIX specifics


MacOS specifics


Performance


Networking


Security


Graphics and/or GUI


Web stuff


Database


Printing


System Administration


E-Mail


Spam


Large Storage


Host Documentation
Persuading Neovim to treat #!/usr/bin/env pypy3 files as filetype python Yes Yes
IQS2: A portable 'ultrabatch' scheduler class for Linux Yes Yes Yes Yes Yes
pybenoit Yes Yes Yes
drsmenu Yes Yes Yes
line-lengths-summary Yes Yes
mactools: create MacOS apps from GUI-utilizing scripts Yes Yes Yes Yes
Install-cgoban3 (for KGS) Yes Yes Yes
python-thread-comparison Yes Yes Yes Yes
zip-distances: find all zip codes within n miles of a target zip code Yes Yes
frequencies: count word frequencies on stdin Yes Yes
Computing a square root using Newton's Method Yes Yes Yes
Rolling-checksum-mod Yes Yes Yes Yes Yes Yes
just-one Yes Yes Yes Yes Yes Yes
log-gap Yes Yes Yes Yes Yes
bpe: a binary patch editor Yes Yes
screen-movie: capture a video of your screen, even on an old, slow computer Yes Yes Yes
true-false-tournament: run a command and compute percent success Yes Yes Yes Yes Yes
fractal-dragon: an eye-pleasing mathematical object Yes Yes
coordinate: yet another n shell commands m at a time Yes Yes Yes Yes Yes Yes
histogram: generate a histogram of values read from stdin Yes Yes Yes
Malloc-wrapper Yes Yes Yes Yes Yes Yes
srsh: an rsh with secure authentication (of purely historical interest) Yes Yes Yes Yes Yes Yes Yes Yes
MD5 performance comparison across a few different languages Yes Yes Yes Yes
TCP/IP and message boundaries Yes Yes Yes Yes Yes Yes Yes
Catenate-mp3s Yes Yes
Music-pipeline Yes Yes Yes
Bidir: Keep the latest of two files, overwriting the older Yes Yes Yes
pylint-json-report Yes Yes Yes
bgrep: a binary grep tool Yes Yes Yes
setup-passwordless-ssh Yes Yes Yes Yes Yes Yes Yes
The House Robber Problem, solved using a Genetic Algorithm Yes Yes Yes Yes Yes
Performing set arithmetic on files Yes Yes Yes
On strongly vs weakly typed languages Yes Yes Yes
Getting a hierarchical process list Yes Yes Yes Yes Yes Yes Yes
'Why is Python so slow?' Yes Yes Yes
find-dead-links: Find dead and malformed links on a website Yes Yes Yes Yes Yes
pythons: run a command or file on several python implementations Yes Yes Yes
cpythons: build several Cpython versions automatically Yes Yes Yes Yes
bcgrep: a grep tool with experimental support for not fouling your buffer cache Yes Yes Yes
hcm: Run predefined commands on predefined hosts with minimal clicking Yes Yes Yes Yes Yes Yes Yes
The alien language problem Yes
Play-music-collection Yes
Python's Calling Convention Yes Yes Yes Yes
Learning C Quickly Yes
6502 programs Yes Yes
from-table: extract HTML tables as csv Yes Yes
semirandom: rearrange lines from stdin a little bit Yes Yes Yes
recent: identify recently modified files Yes Yes Yes Yes Yes
database: a shell-callable interface to single-table databases Yes Yes Yes Yes Yes
Shadow Password Suite Yes Yes Yes
goo: a flawed go AI Yes Yes Yes
newstosgf: change rec.games.go ASCII diagrams into SGF for more pleasant viewing Yes
Kentou: memorizing pro 'go' games Yes Yes
toaster: improving the security of old *ixes by turning off most services Yes Yes Yes Yes Yes Yes Yes Yes
ppmdist: convert low numbers of colors in a picture to high-contrast grayscale Yes Yes Yes Yes Yes
maxtime Yes Yes Yes Yes Yes Yes Yes
circle.png: an application of the inverse square law Yes Yes Yes
Screensaver stuff Yes Yes
soksoo: An automatically-derived SGF file with joseki mistakes and punishments Yes Yes Yes
Pggo: A PyGame interface to GnuGo Yes Yes
bash's $PS0 prompt Yes Yes Yes Yes
dedup-notes: deduplicate a file with a line-oriented delimiter Yes Yes Yes
snapcat: like dd but with variable blocksizes Yes Yes Yes
NFS performance tweaking Yes Yes Yes Yes Yes Yes Yes
On heaps and garbage collection Yes Yes Yes Yes Yes Yes
A performance comparison (on an unrepresentative microbenchmark) between C++ and Python Yes Yes Yes Yes Yes
this-pylint: Check python code against 2.x and 3.x pylint allowing selected messages to be ignored. Suitable for use in a Makefile or related tool Yes
Mandelbrot web-browser performance comparison: C/ECMAScript vs Brython Yes Yes Yes Yes Yes Yes
sieve: Compute primes beneath a particular value Yes Yes Yes Yes
bits_mod: An array of bits Yes Yes Yes
Fibonacci-heap-mod: A Priority Queue implementation with nice theoretical performance Yes Yes Yes Yes
Interesting-quotient: demonstrates some repeating decimals Yes
Limited-fingerd: a finger daemon that gives the user the option of not publishing much information Yes Yes Yes Yes Yes
gquiz: drilling on questions and answers Yes Yes Yes
Head0: a null-terminated head(1) program Yes Yes Yes
Binary Trees Yes Yes Yes
Scapegoat Trees Yes Yes Yes
to-table2: Automatically converting CSV to an HTML table Yes Yes Yes Yes Yes
Why you should use Solaris 2.x instead of SunOS 4.1.x Yes Yes
Rot13 - very minimal (weak) encryption for things you don't care to protect well - EG movie spoilers or joke punchlines Yes Yes Yes
Recreating directories for the sake of adding ext3 indexes Yes Yes Yes Yes Yes Yes Yes
A splay tree implementation Yes Yes Yes
A list of datastructure implementations I've worked on Yes Yes Yes Yes Yes
A linked list implementation in pure python Yes Yes Yes
An implementation of Diffie-Helman key exchange Yes Yes Yes Yes
Prime numbers Yes Yes Yes Yes Yes Yes Yes
Python dictionaries (or dict-like objects) that allow duplicates Yes Yes Yes
Generating all valid anagrams from an input word or phrase Yes Yes Yes Yes
Copying data from a stochastically failing hard disk Yes Yes Yes Yes Yes Yes Yes
An exploration of common POSIX threading mistakes in C Yes Yes Yes Yes
MIT Open Courseware Java assignments Yes
Comparison of available Python-in-the-Browser technologies Yes Yes Yes
Fibonacci sequence Yes Yes Yes Yes Yes
red-black-tree-mod Yes Yes Yes Yes
Speeding up Python Yes Yes Yes Yes Yes Yes
Python Tree Comparison Yes Yes Yes Yes Yes
ttype - single character non-echoed tty I/O in C Yes Yes Yes Yes Yes
Sort Comparison Yes Yes Yes Yes Yes
Drs-bloom-filter Yes Yes Yes Yes Yes
Pyrabinf: A C++ Rabin Fingerprinting implementation wrapped for Python callability using Cython Yes Yes Yes Yes
Backshift: A deduplicating backup system Yes Yes Yes Yes Yes Yes Yes Yes
Fast GUI pipe meter Yes Yes Yes Yes Yes Yes Yes
Finding a zip code at the center of n zipcodes Yes Yes Yes Yes
On the use of significant whitespace in a programming language Yes Yes Yes
A treap implementation in Python Yes Yes Yes
Looper: Running n commands m at a time with good error checking Yes Yes Yes Yes Yes Yes Yes
replacebell: Making X use a nicer bell sound Yes Yes
daemon: daemonizing arbitrary programs Yes Yes Yes Yes
UCI-yppasswd: a yppasswd extended to do password testing Yes Yes Yes Yes
working-set: a benchmark for measuring OS memory overhead Yes Yes Yes Yes Yes
symmat: symbolic matrix arithmetic Yes Yes
A /usr/bin/script reimplementation Yes Yes Yes Yes Yes
Usenix/LISA December 2005 Recovering from Linux hard drive disasters Yes Yes Yes Yes
Reading null-terminated lines - and other delimiters Yes Yes Yes Yes
odirect - deterring buffer cache pollution Yes Yes Yes Yes Yes Yes Yes Yes Yes
The distinction between hardware and software Yes Yes Yes
Counting lines of text in a pipeline with a progress report Yes Yes Yes Yes Yes
Searching for a large number of patterns in a larger amount of ASCII data Yes Yes Yes Yes Yes
A python module to convert nonnegative whole numbers to/from a null terminatable string Yes Yes
A caching dictionary wrapper around python databases like gdbm, Berkeley DB and ndbm Yes Yes Yes Yes
Software for DCSLIB Yes Yes Yes Yes Yes Yes Yes Yes Yes
Merging AIX libraries Yes Yes Yes Yes Yes
How to make a website more plucker-friendly Yes Yes
Network trouble on autoinst Yes Yes Yes Yes Yes Yes
Testing a network to see what of half/full 10/100/1000BaseT works well Yes Yes Yes Yes Yes Yes
Splitting a file into multiple files on regex boundaries Yes Yes Yes Yes
Open source desktop search applications Yes Yes Yes
A means of indexing directories in an ext3fs without backup and restore Yes Yes Yes Yes Yes Yes
A couple of programs for summarizing disk use Yes Yes Yes Yes
Efforts to write a device driver for an Olympus VN480PC Yes Yes
Running a single command on many hosts - some programs for doing it Yes Yes Yes Yes Yes
WDS notes Yes Yes Yes Yes
Rebooting a hung Sun Yes Yes Yes Yes
loop: running a large number of parameterized shell commands Yes Yes Yes Yes Yes Yes Yes
An exploration of the relationship between setpgrp and exit Yes Yes
Generic hashing routines Yes Yes Yes Yes
Why you should use ADT's in your code Yes Yes Yes Yes Yes
OPeNDAP stuff Yes Yes Yes Yes Yes Yes
Empirically determining your system's maximum TCP window size Yes Yes Yes Yes Yes Yes Yes
Converting Redhat static routes to AIX static routes Yes Yes Yes Yes Yes Yes Yes Yes
The relationship between malloc and sbrk or 'Why is my program's RSS growing even though I keep free'ing memory?' Yes Yes Yes Yes Yes Yes Yes Yes Yes
A program to gracefully notify users when a set of URL's have moved Yes Yes Yes Yes Yes Yes
A pair of programs for merging NIS domains or other /etc/passwd-style databases Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
An overview of how X11 works Yes Yes Yes Yes Yes Yes
Indexing a list of files Yes Yes Yes Yes Yes Yes Yes Yes
Dividing files up into equivalence classes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Stamp: An OS signature generator and comparator Yes Yes Yes Yes Yes Yes Yes Yes
Increase privilege with your own password Yes Yes Yes Yes
IQS: A portable 'ultrabatch' scheduler class for Unix Yes Yes Yes Yes Yes
For displaying pbm images on an ancient hercules video card Yes Yes Yes
Plpd: A BSD-compatible print system Yes Yes Yes Yes Yes
Sunrays in ET509 Yes Yes Yes Yes
Perl notes Yes Yes
oacstats: behind the scenes doc Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Loadleveler notes Yes Yes Yes Yes Yes
DTrace notes Yes Yes Yes Yes Yes Yes
dcs.nac boot trouble Yes Yes Yes Yes
bpgetfile workaround Yes Yes Yes Yes Yes Yes
Big dd hypothesis Yes Yes Yes Yes Yes Yes
Bash notes Yes Yes Yes
Writing portable Bourne shell scripts Yes Yes Yes Yes Yes
Wifi and cordless phone conflicts Yes Yes Yes Yes Yes Yes Yes Yes
What program is active on that port? Yes Yes Yes Yes Yes Yes
VPN info Yes Yes Yes Yes Yes Yes Yes Yes
Usenix 2005: Next Generation Storage Yes Yes Yes Yes Yes Yes
Useful AIX commands Yes Yes Yes Yes Yes Yes Yes
Unix and Linux filesystem recovery without LVM or other volume management Yes Yes Yes Yes Yes Yes
Troubleshooting a gnome problem early in the login Yes Yes Yes Yes Yes
SunFire V490 notes Yes Yes Yes Yes
Sun video configuration Yes Yes Yes Yes
Sun alternate break sequence Yes Yes Yes Yes
Sun StorEdge 3511 installation notes Yes Yes Yes Yes Yes Yes
Solaris 'zones' notes Yes Yes Yes Yes
Solaris Patch Pro Yes Yes Yes Yes Yes
Solaris notes Yes Yes Yes Yes Yes Yes
Samsung ML-2150 laserprinter with Samba and CUPS Yes Yes Yes Yes Yes Yes
SAM-FS notes Yes Yes Yes Yes Yes
Redhat linux commands Yes Yes Yes Yes Yes Yes Yes Yes Yes
Redhat NFS trouble Yes Yes Yes Yes Yes
Rebooting portions of the ESMF Yes Yes Yes Yes Yes Yes Yes Yes
Rebooting an IBM SP2 compute cluster Yes Yes Yes Yes Yes Yes
POPTOP (PPTP) notes Yes Yes Yes Yes Yes Yes
PalmOS network diagnostics Yes Yes Yes
Orange County computer stores with a web presence Yes Yes
Networked Hewlett-Packard printer notes Yes Yes Yes Yes Yes Yes
Netreo SNMP notes Yes Yes Yes Yes Yes Yes Yes
NX (the graphics compression system not the NoeXecute bit on newer Intel and AMD CPU's) Yes Yes Yes Yes Yes Yes
NFSv4 notes Yes Yes Yes Yes Yes Yes Yes Yes Yes
NFS timeout notes Yes Yes Yes Yes Yes Yes Yes Yes
MySQL notes Yes Yes Yes Yes Yes Yes Yes
Maxtor RMA procedure Yes Yes Yes
Machine room options Yes Yes
Low bandwidth addons for X11 Yes Yes Yes Yes Yes
Loadleveler problems and resolutions Yes Yes Yes Yes Yes Yes Yes
Linksys WRT54G notes Yes Yes Yes Yes Yes Yes Yes
Keeping backups from pounding a system Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
HSSOE spam filtering Yes Yes Yes Yes Yes Yes Yes Yes
Free X11 server options Yes Yes Yes Yes Yes Yes Yes
Floppy disk notes Yes Yes Yes Yes Yes Yes
Fedora Core 3 notes Yes Yes Yes Yes Yes Yes Yes
FLOSS development NNTP server Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Encrypting documents Yes Yes Yes Yes
EXT3 filesystem recovery Yes Yes Yes Yes
ESMF scheduler notes Yes Yes Yes Yes Yes Yes Yes
ESMF ratio of data blocks to inodes Yes Yes Yes Yes
Debugger notes Yes Yes Yes Yes Yes Yes Yes
CUPS notes Yes Yes Yes
Checking a hardware component for compatibility with your OS Yes Yes Yes Yes Yes Yes
Local stores/chainstores with Wifi access Yes Yes
Stripped down MTA's Yes Yes Yes Yes Yes Yes Yes
Matlab on AIX 5.1 Yes Yes Yes Yes
Documentation about 3Ware RAID cards and Maxtor drives Yes Yes Yes Yes
Solaris 10 bootcamp notes Yes Yes Yes Yes Yes Yes Yes Yes
A framework for conducting lots of related network performance tests Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
A program for computing the average and standard deviation in numbers on stdin Yes Yes Yes Yes
pnetcat: like netcat but fast and flexible Yes Yes Yes Yes Yes Yes Yes Yes
What to do when you don't know the first thing about a software system you need to work with immediately Yes Yes Yes Yes
Overview of methods of recovering lost deleted or damaged data Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Overview of my Sun-related pages Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Fast pseudorandom number generator for benchmarking Yes Yes Yes Yes Yes Yes
Optiputer notes Yes Yes Yes Yes Yes Yes Yes Yes
Python module and shell command for converting modular units Yes Yes Yes Yes Yes Yes Yes
Generate reports from columnar data Yes Yes Yes Yes Yes Yes
AIX accounting Yes Yes Yes Yes Yes Yes Yes Yes Yes
Finding the largest directories in a filesystem Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Changing a Sun from multiple partitions to a single partition Yes Yes
RS-232 notes Yes Yes Yes Yes Yes Yes Yes
Sun StorEdge 3511 notes Yes Yes Yes Yes Yes Yes Yes Yes
Sun QFS notes Yes Yes Yes Yes Yes
kill-duplicate-process program Yes Yes Yes Yes Yes Yes Yes Yes Yes
Recovering root access Yes Yes Yes Yes Yes
Finding the n highest numbers in a huge list Yes Yes Yes Yes Yes Yes Yes Yes
Linux and USB disks Yes Yes
Converting PDF files to Plucker format Yes Yes Yes
A program for finding the pid of another program Yes Yes Yes Yes Yes
Why it's important to check for errors early in programs Yes Yes Yes Yes Yes Yes Yes Yes
Convert databases like Sleepycat GDBM etc. to other formats Yes Yes Yes Yes Yes Yes
Chopping stdin into chunks to be fed to individual subprograms Yes Yes Yes Yes Yes Yes Yes Yes
AIX shared libraries: Not the same old Yes Yes Yes Yes
Network performance: Definitions with analogies Measuring and Improving Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
A simple host to host disk to disk backup script Yes Yes Yes Yes Yes Yes Yes Yes Yes
Searching for files recursively Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Recovering lost e-mail Yes Yes Yes Yes Yes Yes
Mounting readonly NFS replicas Yes Yes Yes Yes Yes Yes Yes
A fallback reboot procedure when a host is pingable but not allowing logins Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Converting binary data Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Sun E250 notes Yes Yes Yes Yes Yes Yes
ESMF data recovery Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Ethereal notes Yes Yes Yes Yes Yes Yes Yes Yes
Automatically converting select Palm memos to web pages Yes Yes Yes Yes Yes Yes
Methods of verifying data transfers compared Yes Yes Yes Yes Yes Yes Yes Yes Yes
The standard 'nice' program is good for CPU hogging processes. 'slowdown' is good for I/O hogging processes. Yes Yes Yes Yes Yes Yes Yes Yes Yes
RAID overview Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
XFree86 Yes Yes Yes
Duplicating SunOS disk labels in a way that may be less confusing to future admins Yes Yes Yes Yes Yes
On getting command line arguments to not show up in 'ps' Yes Yes Yes
Sendmail notes Yes Yes Yes Yes Yes Yes Yes
QEMU Yes Yes Yes
Automatically determining what environment variables may be related to a program working under one account but not another Yes Yes Yes Yes Yes Yes Yes
Getting decent HTML handling out of various MUA's Yes Yes Yes Yes Yes
Contextual: Adding text relative to other text already in a file Yes Yes Yes Yes Yes Yes Yes
A simple GUI API for python based on Xdialog and similar Yes Yes Yes Yes
Notify the user when a state changes Yes Yes Yes Yes Yes Yes Yes Yes
Debugging with system call tracers Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Clean up messy HTML Yes Yes Yes Yes Yes Yes
DSPAM Yes Yes Yes Yes Yes Yes Yes
NFS troubleshooting Yes Yes Yes Yes Yes Yes Yes Yes
Search for the library containing unresolved externals Yes Yes Yes Yes Yes Yes Yes Yes Yes
Getting ETA and throughput out of a pipeline Yes Yes Yes Yes Yes Yes Yes Yes
Cobble: A simple source code control system targeted at minimally modified baselines Yes Yes Yes Yes Yes
The Sun diskless boot process Yes Yes Yes Yes
A buffered socket module for python Yes Yes Yes Yes Yes Yes Yes
Testing the health of registered RPC services Yes Yes Yes Yes Yes Yes Yes
Multihop ssh through firewalls inspired by UUCP Yes Yes Yes Yes Yes Yes Yes Yes
Obtaining a static hostname without a static IP address Yes Yes Yes Yes Yes Yes
Setting up a PXE server (courtesy of Tim Cook) Yes Yes Yes Yes
Efforts to get a working CCSM3 geometry for the ESMF Yes Yes Yes Yes Yes Yes Yes
Testing SSL services Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
PalmOS applications Yes Yes Yes Yes Yes Yes
Verifying a data transfer from a suspect filesystem Yes Yes Yes Yes Yes Yes Yes Yes Yes
Enabling jumbo frames for network performance Yes Yes Yes Yes Yes Yes Yes Yes
mtee: piping stdin to multiple consumer subprocesses Yes Yes Yes Yes Yes Yes Yes Yes
Setting up Xprint on Solaris Yes Yes Yes Yes
Redhat Enterprise Linux headless installation Yes Yes Yes Yes Yes
Setting up a release of Solaris for jumpstarting/autoinstalling Yes Yes Yes Yes Yes Yes
3Ware RAID card tuning Yes Yes Yes Yes Yes
SunOS software RAID Yes Yes Yes Yes Yes Yes Yes Yes Yes
Hanging an antispam filter off of evolution Yes Yes Yes Yes Yes Yes
Linksys 'BEFSR' hardware Yes Yes Yes Yes
VNC Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
MPC/GradEA host documentation Yes Yes Yes Yes Yes
Setting up a Solaris jumpstart procedure to allow incoming stel Yes Yes Yes Yes Yes
ESMF host history Yes Yes Yes Yes Yes
NBD and GNBD Yes Yes Yes Yes Yes Yes
Sending nagios notices to your cell phone or pager without getting flooded Yes Yes Yes Yes
IBM SP switch Yes Yes Yes Yes Yes Yes
History of host dcs.nac Yes Yes Yes Yes Yes
Using the magic SysRq facility Yes Yes Yes
Setting up a screensaver to present the status of the hosts you manage Yes Yes Yes Yes Yes Yes Yes
Run a program only after a specific file becomes available Yes Yes Yes Yes Yes
The Lustre filesystem Yes Yes Yes Yes Yes Yes Yes Yes
The GFS filesystem Yes Yes Yes Yes Yes Yes Yes Yes
Linux software RAID Yes Yes Yes Yes
Some things to try on systems that are crashing Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Checking hosts behind a firewall with nagios Yes Yes Yes Yes Yes Yes
Building Redhat Enterprise Linux kernels Yes Yes
Copying lots of data - more than you wanted to know Yes Yes Yes Yes Yes Yes Yes Yes
Problem solving techniques for *ix Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes





  • Rows





  • Columns




































































































  • This page last created at Sat Aug 3 18:39:38 PDT 2024



    Hits: 14281
    Timestamp: 2024-12-30 09:40:50 PST

    Back to Dan's tech tidbits

    You can e-mail the author with questions or comments: