Algorithm Study provides tools and resources to augment the traditional study of algorithms. It includes implementations of common and less-common algorithms in a variety of languages and visualization tools to help in gaining a deeper understanding of the algorithms. The algorithm implementations are each accompanied by a discussion of the asymptotic ("big O") run time and memory limits of the algorithm. Some implementations include discussion of how the algorithm or data structure is commonly used and comparisons with similar algorithms or data structures. All implementations have test cases that exercise their functionality. The visualization tool, Algorithm Visualizer, displays what happens as various algorithms do their work.
swampex (or Swamp Explorer) is a cross-platform library designed to work with raster maps in Ozi Explorer format. Using this library, you'll be able to collect maps in the file system, get information about map calibration, find maps by latitude/longitude, render maps in SDL surfaces, and more.
MeetmeAutoMute is a utility for Asterisk that can automatically mute participants in a Meetme conference. This can be handy for when you are using the conference to broadcast some audio (like during a speech or presentation, and do not want to have people interfere with the speaker. It is written in Python and uses the AMI through the pyst library. Everything is configurable through a config file, and can be controlled at run time through the use of "signals". An "init.d" style bash script is included that will start the app as a background daemon.
Trafficmeter is a traffic collecting and logging system. It collects and groups packets by time, source IP, destination IP, protocol, source port, and destination port. You can get a detailed log of traffic for every IP without any daemon configuration work. It also gives statistics of IP incoming and outgoing traffic for a time period.
libpersist is a small library of C++ base classes and templates providing the capability to store and load objects in their entirety across executions. It also provides for object relocation between threads in a NUMA (non-uniform memory access) parallel processing environment. Objects are stored to disk as POD. They are reconstructed when reloaded into memory. Relocation is a special case of persistence, requiring reconstruction after the POD has been moved in memory. After all objects have been relocated, all references to the objects are swizzled (their IDs are resolved to their addresses), so that they can be dereferenced efficiently.