A graylisting sendmail/postfix milter that defers inbound mail on the first try and allows the message to be delivered after that. Optional whitelisting is included, as well as a variety of spam suppression techniques. Everything can be configured using a simple configuration file. This milter has been running on five known sites for over two years with great success. The milter now can check and base delivery decisions on SPF records. It can now be run as an ordinary user even when run by root. It's SPF check is compatible with the OpenDMARC milter.

A general purpose thread pool library built on top of pthreads. With it, you can launch one or more thread pools and have those threads run almost any function you choose. The number of threads can be dynamically increased. A hook is included to allow your functions to detect thread shutdown.

A hash table library that can store binary data. It is thread safe and you can use as many hash tables in your program as you wish because each has its own context. You can drop items from the hash table and can expire items that have become too old. String keys are default, but with your own comparison routine you can use binary or specialty keys. If you have special needs you can substitute your on hash calculation function for the built in one. The libray allocates memory for keys and data, but that allocation can be prevented by the use of simple function calls. There is also a library call that allows you to judge the efficiency of your hash function. The library has complete HTML documentation. And several tests of the library can be run with "make check".

The onepixd daemon allows you to imbed a one-pixel GIF reference inside an email message and to have this daemon both supply that GIF image and record the number of times it has been referenced. You may join other data using an upload interface, and may view summaries of data using a simple web interface, or by feeding the CSV format data files into other programs.

This pi program will solve pi to 10,000 places fairly quickly. It has a built in timer (with -t) and will verify its output against a standard (with -v) and will produce output suitable for printing (with -p). Just run as: ./pi digits, as for example, ./pi 1000.