A Fake Internet Presence,
Brandon's Program ArchiveThe following programs are programs that I find useful and/or fun. I didn't write all of them, though I have modified quite a number of them. I've attributed things where I can, but if you feel that you wrote something here and I didn't attribute you, feel free to mail me at firstname.lastname@example.org.
The Encapper 1.3Written by Brian Swetland, this is a C program to create the link tree for a new program in an encap distribution. For more information, see Mark Roth's encap package manager, epkg, and a whole lot of information on it here.
Webgrab 1.3Another program originally written by Brian Swetland. Brian and I have since made a few changes to allow header editing, etc. Webgrab is a command line browser, and is quite useful for testing servers and writing scripts to snarf web content. The current version of webgrab is also part of the NCSA HTTPd 1.5.x distribution.
Randroot 1.1This program was initially written by Scott Powers, and I modified it and cleaned it up to make it useable on my system. This program uses a configuration file and an external image viewer to change the background image under X every so often. Includes documentation.
GIFtrans 1.11.1This program was written by Andreas Ley (email@example.com). It converts any GIF to a GIF89a and allows for setting the transparent and background color, changing colors, adding or removing comments, and anaylyzing GIF contents. A must for the Un*x based Web Content Developer.
get_links.plThis is a perl script which uses webgrab to show and/or download all of the links on a remote page. Useful for mirroring sites, or downloading a directory of images.
AA.pl 1.1 - Archie CGI GatewayThis is a perl script which I wrote to replace a shell script version. It interfaces with the Un*x C-Archie command-line archie query program, and creates a hyper-linked response in HTML. It can be seen in action here.
S3Mod 1.10 - A Portable s3m and mod PlayerThis was a program that originated as an x86 assembly project for ECE 291 by my roommates David Jeske and Dan Marks while I was a TA for the course. I decided to port it to Linux on a whim, and they took over from there. Since then, I've helped with various issues, including the reorganization of the most recent versions. See the S3Mod Home Page for more information.
XBuffy - A multi folder biff for XXBuffy was written by Bill Pemberton (firstname.lastname@example.org) and was based on Xmultibiff. It allows the user to specify multiple mail folders which XBuffy will watch for incoming mail. The first patch below is by David DeSimone (email@example.com) and fixes a couple of bugs and makes sure that XBuffy doesn't change the mtime and atime of the folder so that XBuffy doesn't interfere with other programs which check for new mail, such as the mailboxes (buffy) feature of Mutt. I wrote the second patch to expand XBuffy to support MH and Maildir format folders. I don't actually have any MH folders to test it on, so let me know if it doesn't work. This was for XBuffy 3.2.1. Now, I've updated the patches for xbuffy 3.3, and added a few more fixes from the Debian xbuffy distribution, including autoconf configuration to replace the Imake configuration. Just grab the new xbuffy Gzipped Tar, no need to apply any patches.
Note: You might want to check out GBuffy, a rewrite of XBuffy using the GTK+ toolkit.
snprintf - A Portable, Partial ImplementationFor security and stability reasons, one should use functions in C which do checking of string lengths, yet most of the standard C functions don't. Nowadays, most libc's have quite a few of the standard string functions with length checking, but rarely do they have snprintf. Another problem is that most library implementations of sprintf() are closely coupled with printf() and fprintf(). For mutt, we needed a version of snprintf() for machines which didn't have one, and I modified one we found to be as complete as we needed it. It doesn't support the ',' modifier, and it doesn't support the %e and %g formating codes, but is fairly complete in all other respects. If you have any suggestions or bugfixes, I'd be interested in hearing about it. This code is in the public domain.
rtfreader - A portable application/ms-rtf parserRTF is the Microsoft Richtext Format, a more portable, mostly-ASCII formatting language that is exported by word processors like MS Word. These files generally have the extension .rtf, but occassionally I've seen them with .doc as well.
For these files, I use a parser from Microsoft, which is part of the RTF format specification. I copied it out of the spec, and "ported" it to Unix. The mailcap line is:
application/ms-rtf; rtfreader ; copiousoutput
catdoc - A simple application/ms-word parserYes, this is for MS Word .doc files. Someone pointed out a debian package to me. This program does a fair job of stripping the garbage from a MS Word document and presenting only the text. It is nowhere near complete, but it should be good enough for handling those people who seem to require using MS Word to send a sentence or paragraph of pure text. The author has rewritten this from scratch, and the new version can handle more Word files and also includes an Excel data extractor. The homepage for this tool is located here.
application/ms-word; catdoc '%s' ; copiousoutput
aub - Assemble Usenet BinariesMost newsreaders these days allow you to uudecode a multi-post image or binary from the binary newsgroups, but this can be slow and tedious, especially for large binaries or over a slow link. This is a perl script which automates the process. The original is quite old, but I've modified it for a number of things, including making it quite a bit faster at selecting articles for downloading, and a 'killfile' type option for killing the more obvious spam. Also, this version has a first pass at decoding MIME/Base64 encoded images, and also NNTP Authorization.
The "I work for a big public company" disclaimer:
The views expressed on these pages are mine alone and not those of my employer. I am not now, nor have I ever been employed to speak for anyone. Well, except my own company, but that's gone now. For more information, see the Standard Disclaimer