Lots of boring words

Unless otherwise noted, all of this software is copyright me, Wim Lewis, <wiml@hhhh.org> / <wiml@omnigroup.com>. It is not in the public domain. However, I give permission for anyone to use, copy, duplicate, distribute, modify, improve, or archive this software, under the following conditions:
  1. My name, address, and any copyright notices or other attributions must remain intact in the source code;
  2. Modified copies or derived works must be clearly marked as such;
  3. Any commercial software or service incorporating this software must clearly indicate that it incorporates or depends on free software;
  4. It may be used only for purposes of good, and never for evil.

Further, please note that this software is provided ``as is'', without any express or implied warranties, and so on, and so forth. In fact, for all you know it will reformat your disks and mail me your password files, and you should treat it accordingly.

Finally, please send any useful modifications, comments, or observations to me, so that I can maintain and improve these programs.

The old crufty stuff

Please read the boring words before fetching the old crufty stuff.

Most of this software is pretty old and not very polished. I haven't touched it or looked at it in a while and probably don't maintain it. On the other hand, if you decide to distribute a derived version, or have a patch you want to contribute, please let me know.

Perl software

Makefeeds reads two active files and generates a pattern, suitable for an INN newsfeeds entry, which when matched against one file produces only the entries that are also in the other file. It makes use of wildcards to compress the pattern. It will fetch an active file from a server via NNTP, which makes it ideal for news sites who want to re-generate their newsfeeds entries, or who want to send a new newsfeeds entry to a site that is feeding them. (This is most useful between sites neither of which has a full feed.) I have a faint hope that this may promote a more redundantly-interconnected Usenet, and reduce article propagation times and lossage and tooth decay and urban blight, or maybe it will just get me my rec.arts.sf postings faster. Here is the article I posted to alt.sources.

Python software

Here is a DNS module I wrote a few years ago (around '94, I guess). It basically implements a DNSMessage class and a family of subclass and component classes, and ways to encode a message into the rfc1035 on-the-wire format, and decode it again. It's very easy to make custom DNS clients or servers this way. It's not heavily documented, but if you're familiar with the DNS protocol its usage should be obvious, I hope. Here's the module: [ rfc1035.py ] (and a simple example of using it as a client). It's one of the first things I ever wrote in Python, so be easy on it. (Note: I have a newer version of this which implements a lot more of the DNS protocol, including dynamic updates, secure DNS, and the like. Mail me if interested. [2Feb2000])

In the course of other software development, I wrote a module which parses XDR definition files (and by extension, RPC definition files) into an internal form, and another module which emits Python code to implement Packer and Unpacker classes and workable skeletons of client classes, all of which work with the rpc.py module in the 1.4 distribution. Here's the article I posted.

I've written an RPC-based audio-CD information server, which works with an upcoming release of OmniCD, a CD player app for NEXTSTEP. The server serves from multiple workmandb-format databases, as well as being able to talk to remote CDDBP servers and cache their results locally. The format of the information it serves is fairly high-level, being a synthesis of the WorkMan and Xmcd database formats. The server isn't done yet, but watch this space.

C software

A while ago I wrote a utility to program PIC 16C84 microcontrollers via a simple parallel port adapter on a Linux or NetBSD box. (The only unusual thing about this being the Linux/NetBSD part.)


PGP-signed MD5-sums of the sources in this directory are here.

Last modified: 20th January, 1998. Wim Lewis <wiml@omnigroup.com> ( My home page)