Validate Saudi ID is a PHP class that can be used to validate Saudi resident identifier numbers. It takes a resident identifier number and calculates a checksum to verify whether it may be a valid number. It returns either 1 (for Saudis), 2 (for non-Saudis), or FALSE (for invalid numbers).
JRainbow is a program that generates Rainbow tables for the MD5 and SHA-1 hash algorithms. These tables then can be used for a Rainbow attack to retrieve hashed passwords. Up to 8 digit password rainbow tables are supported. The tables use a textual format. Six variations of alphanumeric and special character sets are supported. You can choose how many times to hash the input before storing it in the table.
ExternalSort is a class that can sort large files similar to the Unix sort command. It can read the file to be sorted in small buckets associated with temporary files to not exceed the configured PHP memory limits. The buckets are sorted individually and then merged to produce the final sorted output. The class provides command line interface options so it can be executed as a command from a shell.
PHP Clarke and Wright Algorithm is a class that can solve a truck routing problem with the Clarke and Wright algorithm. It attempts to solve the problem of determining the routes by which a given number of trucks with different weight and volume capacity will be dispatching deliveries to a certain number of clients distributed geographically within certain time windows. The class takes as parameters the nodes of positions of each client, the demands of each client, a matrix of distance between nodes, and the capacity of each truck. It computes the route for each truck, as well the time and distance to drive to each customer and the volume and weight to transport.
C Almost Generic Library (CAGL) is a set of C macros which generates typed arrays, lists (singly or doubly-linked), hash tables, and balanced binary trees, as well as many useful functions to manipulate them. The containers grow automatically, and their memory is managed by the library. The container data, or elements, may also be managed by the library, depending on the options specified by the programmer. The aim is to free C programmers from the drudgery of implementing common data structures and algorithms. CAGL also provides some safety by making the containers typed instead of void pointers. Although, at most, two macros are invoked to declare and define a container type, manipulation of the containers is done using functions generated by the macros. A simple naming convention is used to get around the limitation that C doesn't support function overloading.
The "Sound of Sorting" is a demo program containing many integer sorting algorithms. The algorithms are visualized in real time and augmented with sound effects, which are based on the values being compared. Animation speed and sound sustain can be customized while the algorithm is running. The visualization also highlights the algorithm's internal workings, which makes the demo program very useful for teaching sorting algorithms in an undergraduate computer science course. The program also counts the number of comparisons done by an algorithm, which can then be compared to the analytically derived value. The demo is implemented using the cross-platform toolkits wxWidgets and SDL, and can be executed on Windows, Linux, and Mac.
libefgy is a set of C++ headers containing lots of templates loosely related to maths. The headers include templates for fractional arithmetic, big integers (and thus "big fractions"), calculating π, e, and some calculations with those (for trigonometrics), matrix manipulations, tuples, polar and Euclidian spaces in arbitrary dimensions, (perspective) projections, colour space manipulations in RGB and HSL, and assorted other things.