Every now and then I hack on some code, just to prove to myself that I can still do it.
Everything
Here is my entire source tree. All code is released under the GPL.
Written in C
APIs adapted from code that I used in college:
genlib/ -- Interface for memory allocation, error reporting, and to create a boolean type.
random/ -- Interface for pseudo-random number generation.
simpio/ -- Interface for easily getting user input.
strlib/ -- Interface for manipulating strings.
Other APIs that I have written:
crypto/ -- Interface for basic cryptanalysis. There are utilities for breaking substitution (or Caesar) ciphers, of which ROT13 is the canonical example. There are also functions that convert both hexadecimal and binary strings into their ASCII representation. I'm got a very basic RSA key generation and encrypt/decryption implementation as well, but I wouldn't recommend using it to guard state secrets.
darray/ -- Interface for a dynamic array.
hashtable/ -- Interface for a hash table, built with the dynamic array.
scanner/ -- Interface for a token scanner.
simpdb/ -- Interface for a database built on top of sqlite.
Client code:
argp/ -- A dead-simple example of command line argument parsing using the GNU argp library.
Written in Perl
misc/qb.pl -- A script that calculates NFL quarterback ratings.
misc/elim.pl -- A script that calculates when a team is eliminated from playoff contention in the NHL or NBA.
misc/encrypt.pl & misc/decrypt.pl -- Simple wrappers for encrypting and decrypting files with gpg.
misc/ratings.pl -- A script that calculates DCI ratings for Magic tournaments.
misc/project.pl -- A really simple script that projects sports statistics over a longer number of games.
misc/webpics.pl -- A very shoddy photo gallery webpage generation tool.
misc/lowercase.pl -- A script that makes all filenames in a directory lowercase.
Feedback
Send questions, comments, and/or bugs to <max AT spevack DOT org>.
