Turn Watcher is a tool based on Dungeons & Dragons rules. It is used to track the initiative of your players and monsters. It includes an option to roll initiative on every round, roll will, listen, and spot, and it has a status column that shows you the current status of your players. When you enter a player or monster, you also enter all of its modifiers, so the computer can take care of rolling all the dice for you. Still want to roll initiative? You can simply order the characters with the Move Up and Move Down options.
W-Packager is a packager similar to dpkg that can be used by anyone to create and maintain Debian packages under Linux or other Unix systems. The aim of the project is primarily to have a workable version of a packager that can be compiled on many systems, including those that do not support fork(). At this time, W-Packager is used within UniGW. It can also be used under Linux.
odbcpp is an ODBC C++ library wrapper. The ODBC library itself is a low level C library that has many functions, all of which could return errors. This wrapper checks for errors on every single call to the ODBC interface, so if an SQL statement, a connection, or anything else fails, an exception is generated.
MO Auto add terms is a Drupal 6.x module that automatically assigns terms to your pages from their contents, titles, and comments. This makes it very useful to build a complete site index without worrying about missing a few terms here and there. It also allows you to offer tagging functionality to your users, even when you prevent them from adding terms (by hiding the taxonomy field), and yet have terms assigned to their posts. This assignment is done automatically with MO Auto add terms. The module can also add parent terms, remove terms that are not in the page anymore, recognize equivalents and synonyms, hide the taxonomy selection box from the edit page, limit the number of terms to add automatically, etc.
Controlled Variables implements secure basic types in C++. It provides C++ templates that give you the ability to control the initialization of your basic C types (i.e. char, int, long long, etc.). In particular, it allows you to avoid forgetting to initialize variable members, since these variables cannot be initialized where declared. Controlled Variables can be used wherever you declare a basic type variable without immediately initializing it (and limited controlled variables where a bounded value is used).
The libQtCassandra library is an advanced C++ library used to access Cassandra servers. Unlike the basic Cassadra server interface, this C++ library provides separate objects that handle each level of the server data, i.e. the cluster, contexts, table, rows, and cells. It uses Qt and the Qt style for all the classes, which makes it very easy to use if you already know Qt.
libtld is a library used to extract the TLD from a URI and to check email validity. This allows you to extract the exact domain name, sub-domains, and all the TLD (top level, second level, third level, etc.). The problem with TLDs is that you cannot know where the domain starts. Some domains can use one top-level domain, others use two, etc. However, it may be useful to know where the domain is to have the exact list of sub-domains. For example, if you want to force www. at the start of the domain name if no other sub-domains are specified, then you need to know exactly how many TLD are defined in a URI. The libtld offers one main function: tld(), which gives you a way to extract the TLD from any URI. The result is the offset where the TLD starts. This gives you enough information to extract everything else you need. For emails, the library is capable of parsing a string that represents a list of email addresses to be verified. The verification includes a check of the domain name and its TLD.
The libQtSerialization library is a Qt extension that makes it easy to serialize your data in a forward and backward compatible way. The library is composed of QWriter and QReader. The writer is straightforward - all you have to do is call a writeTag() function and the data is serialized. The reader is a little more complex as it supports special cases, such as sub-classes (so you can save a tree of classes) and arrays of classes (your tree may be composed of multiple instances of a given object).
The X3D library is used to load an X3D file and render it using OpenGL (an X3D file is an XML file describing a 3D environment that can be rendered with OpenGL.) The library supports all the objects as defined in the X3D specification in 2006. The render library is still somewhat limited, though. It works well under Linux. It is likely to work on any Unix, and has worked under MS Windows before. The project includes a test that makes use of FLTK version 2.0-m3. That version of FLTK can be downloaded from the project repository, as FLTK itself actually ended up not publishing a concrete 2.0 version of the library.
Bug in readlink()
The following is bogus since strlen() may return a size less than 4. Ooops!
if (strcmp(lpszLinkFile + strlen(lpszLinkFile) - 4, ".lnk") != 0)