timeplotters is a collection of command line tools for visualizing temporal data. It is especially useful for visualizing data from ad-hoc program logs, helping you to spot patterns and anomalies that you would not otherwise see by just watching how the program works or by looking at the logs with the naked eye. Its input format is tailored to event types typically seen in program logs, and the visualization methods are tailored to the questions typically asked about program performance (e.g. distribution of activity durations).
The program arbtt, the automatic rule-based time tracker, allows you to investigate how you spend your time, without having to manually specify what you are doing. arbtt records which windows are open and active, and provides you with a powerful rule-based language to afterwards categorize your work.
The ListLike module provides a common interface to the various Haskell types that are "list-like". Predefined interfaces include standard Haskell lists, Arrays, ByteStrings, and lazy ByteStrings. Custom types can easily be made ListLike instances as well. ListLike also provides for String-like types, such as String and ByteString, for types that support I/O, and for types that can handle infinite lists.
Streams is an I/O library designed to eventually replace the current I/O facilities based on using Handles. The main advantage is its strong modular design using typeclasses. It consists of small independent modules, each implementing one type of stream (file, memory buffer, pipe, etc.) or one part of common stream functionality (buffering, char encoding, locking, etc.). 3rd-party librarie can easily add new stream types and new common functionality. Other benefits of the new library include support for streams functioning in any monad, Hugs and GHC compatibility, high speed, and an easy migration path from the existing I/O library. It is heavily based on the HVIO module written by John Goerzen.
Unbounded Tic-Tac-Toe is an implementation of a popular game: the user plays against the computer, each placing their mark (X or O) at a vacant place on the board. The goal is to get a specific number (between 2 and 10, usually 5) of marks in a row, either horizontally, vertically, or diagonally. The twist is that the board is infinite.
GeBoP stands for General Boardgames Player. GeBoP allows you to play 9 strategic boardgames against the computer or against another player. You can even watch a number of computer players fight among themselves. Some of the games can be played with a variable number of players, and other games can be played on various board sizes. GeBoP features a unified best move engine. Because of this, additional strategic boardgames are easy to add to the application.