These are Tom Ryder's personal repositories. The code here varies a lot in usefulness and seriousness.

There's more information about what’s published here under the "Code" heading section of my main website.


Patches and pull requests are welcome. Please use either git-send-email(1) or git-request-pull(1), addressed to


You are welcome to fork and/or mirror this content to other servers, to the extent the license for that project permits. Please indicate somewhere on your mirror the primary URL of the project on

I request that you do not use GitHub or other proprietary code hosting platforms for these mirrors, but I do not strictly require it.

Why not GitHub?

I don't host code on GitHub anymore since June 2016.

The primary reason I host code on my own domain is a practical one: I can retain control over its location via URL redirects if it needs to move, including redirects to another site.

However, I also dislike the tacit acceptance of GitHub as the dominant free software hosting platform for decentralized version control, when it is itself centralized, proprietary, and closed-source, and vulnerable to to the same issues and abuse that affected SourceForge.

Regardless of your position on individual cases, the fact that so much controversy results from any censorship activity from GitHub should be considered a warning sign that too much depends on their service. If GitHub were not in this position, nobody would care.

Using Git does not require GitHub; use the tools under "Contributing" on this page instead. For a web frontend, I recommend the superb cgit, or gitweb, which is included in the Git source and is straightforward to configure for any CGI webserver.

There are some more good reasons not to use GitHub or any other proprietary code hosting platform discussed here: