Fiction L
A Fake Internet Presence,
since 1994

   PalmOS Tools  

Brandon's Program Archive

The 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

The Encapper 1.3

Written 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.

C Source

Webgrab 1.3

Another 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.

C Source

Randroot 1.1

This 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.

Gzipped Tar

GIFtrans 1.11.1

This program was written by Andreas Ley ( 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.

C Source

This 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.

Perl 4 Script 1.1 - Archie CGI Gateway

This 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.

Perl 4 Script

S3Mod 1.10 - A Portable s3m and mod Player

This 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.

Gzipped Tar - HP-UX 9.05 Binary - IRIX 5.3 Binary - Linux 2.0.0 Binary
OSF/1 3.0 Binary - Solaris 2.4 Binary

XBuffy - A multi folder biff for X

XBuffy was written by Bill Pemberton ( 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 ( 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.

XBuffy 3.3 Patched Gzipped Tar - XBuffy 3.3 Patched Readme
Access Time README - Access Time PATCH
MH/Maildir Support README - MH/Maildir Support PATCH

snprintf - A Portable, Partial Implementation

For 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.

C Source - Original

rtfreader - A portable application/ms-rtf parser

RTF 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

Gzipped TAR

catdoc - A simple application/ms-word parser

Yes, 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

Gzipped TAR

aub - Assemble Usenet Binaries

Most 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.

PERL Script

Copyright (C) 2009 Brandon Long. All Rights Reserved. / Terms of Service

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.