KnightCap is a chess program.
The principal differences between KnightCap and other chess programs
are:
- KnightCap has an optional fully rendered 3D interface, giving a feel much
more like an "over the board" game.
- KnightCap was developed to run on a parallel distributed memory
machine, although it also runs on normal Unix boxes.
- KnightCap does not have an opening book---instead it keeps a file
(brain.dat) of losing moves and inserts them in the hash table at the
start of each search. At present it has about 1500 entries, and
this makes it a pretty competitive opening player.
- KnightCap learns the parameters of its evaluation function as it
plays. The most dramatic example of how this helps is an experiment
we conducted on FICS in which KnightCap learnt from a 1650 player
to a 2100 player in just 300 games. See
http://cs.anu.edu.au/people/Lex.Weaver/pub_sem/publications/knightcap.pdf
for more info on its learning algorithm.
ACM is a LAN-oriented, multiplayer aerial combat simulation. My main
design objective was to provide source code that could be easily
compiled and executed on a wide variety of platforms. To that end,
acm is written entirely in C, exploiting the programming features of
Unix, X11, and the BSD socket interface.
Players engage in air to air combat against one another using heat
seeking missiles and cannons.
ACM is implemented as two programs. The first, named "acm", is a small
program that, when invoked, starts a flight session on a given
workstation. The second component, named "acms", is a server process
that manages the multiplayer environment. It also manages the flight
simulation and display management that is required. Most players will
prefer to run the acms process on a back-end server system on their
local area network. Players at client workstations can then invoke the
acm program to begin play.
Mah jongg is an ancient Chinese game whose origins are supposed to date
back around 3000 years. It is typically a four player game with
similarities to most popular card games. This version is a solitaire
game using the mahjongg tiles. It was inspired by a version originally
seen on a PC.
The object of the game is to remove all the tiles from the board in
matching pairs. Tiles match only if they are identical. Exceptions are
the flower and season tiles. Any season tile will match any other season
tile and any flower tile will match any other flower tile. Tiles may be
removed from the board only if they have either a left or a right edge
open and they do not have a tile covering them.
Open Inventor(TM) is an object-oriented 3D toolkit offering a comprehensive
solution to interactive graphics programming problems. It presents a
programming model based on a 3D scene database that dramatically simplifies
graphics programming. It includes a rich set of objects such as cubes,
polygons, text, materials, cameras, lights, trackballs, handle boxes,
3D viewers, and editors that speed up your programming time and extend
your 3D programming capabilities.
Open Inventor:
- is built on top of OpenGL (R)
- defines a standard file format for 3D data interchange
- introduces a simple event model for 3D interaction
- provides animation objects called Engines
- provides high performance object picking
- is window system and platform independent
- is a cross-platform 3D graphics development system
- supports PostScript printing
- encourages programmers to create new customized objects
- is fun to use
MuPDF is a lightweight PDF viewer and toolkit written in portable C.
The renderer in MuPDF is tailored for high quality anti-aliased graphics. It
renders text with metrics and spacing accurate to within fractions of a
pixel for the highest fidelity in reproducing the look of a printed page on
screen.
MuPDF has a small footprint. A binary that includes the standard Roman fonts
is only one megabyte. A build with full CJK support (including an Asian
font) is approximately five megabytes.
MuPDF has support for all non-interactive PDF 1.7 features, and the toolkit
provides a simple API for accessing the internal structures of the PDF
document. Example code for navigating interactive links and bookmarks,
encrypting PDF files, extracting fonts, images, and searchable text, and
rendering pages to image files is provided.
The Java Chart Constuction Kit (JCCKit) is a small (< 100Kb) Java library and a
very flexible framework for creating scientific charts and plots.
The main purpose is to provide a flexible kit for writing Java applets and
application with the need for visualizing scientific data. If you are looking
for a lean scientific chart and plot library without all the unwanted bells and
whistles of the heavy competitors try JCCKit.
The key features of JCCKit are:
* small (< 100Kb jar file)
* highly configurable due to a sophisticated configuration concept
* extensible (1/3 of all classes are interfaces or abstract classes.)
* automatic updating if data changes
* easy programming of dynamic charts and plots
* automatic rescaling if canvas size changes
* out-of-the-box applet for presenting static data on a web page without
Java programming
* automatically generates a legend
The Quantum::Superpositions module adds two new operators to Perl: any and
all.
Each of these operators takes a list of values (states) and superimposes
them into a single scalar value (a superposition), which can then be
stored in a standard scalar variable.
The any and all operators produce two distinct kinds of superposition. The
any operator produces a disjunctive superposition, which may (notionally)
be in any one of its states at any time, according to the needs of the
algorithm that uses it.
In contrast, the all operator creates a conjunctive superposition, which
is always in every one of its states simultaneously.
Superpositions are scalar values and hence can participate in arithmetic
and logical operations just like any other type of scalar. However, when
an operation is applied to a superposition, it is applied (notionally) in
parallel to each of the states in that superposition.
Perdition is a mail retrieval proxy that allows users to connect to a
content-free POP3 or IMAP4 server that will redirect them to their real
POP3 or IMAP4 server. This enables mail retrieval for a domain to be
split across multiple backend servers on a per user basis. It can also
be used as a POP3 or IMAP4 proxy in firewall applications.
Perdition supports arbitrary library based map access to determine the
server for each user - POSIX regex, GDBM, PostgreSQL, MySQL, NIS and
OpenLDAP libraries ship with the distribution.
The use of perditon to scale mail services beyond a single box is discussed
in a paper the author wrote on high capacity email, so be sure to check the
web page.
MasqMail is a mail server designed for hosts that do not have a permanent
internet connection eg. a home network or a single host at home. It has
special support for connections to different ISPs. It replaces sendmail or
other MTAs such as qmail or exim.
Features
* Delivers only when online to a destination 'outside' your LAN
* Support for multiple Providers (ie. Mail Servers, or direct delivery)
* Rewriting of Return addresses (Return-Path:, From:, Reply-To:),
configurable for each Provider separately
* can also be used as a Mail Server on a LAN
* alias support
* delivery to pipes
* delivery to MDAs (eg. procmail)
* Maildir support (version >= 0.2.5)
* routing depending on sender
* AUTH (RFC 2554) support (as client, since version 0.1.0)
* SMTP-after-POP
* POP3 client
* POP3 client daemon (fetch mail in regular intervals if online)
MiniSat is a minimalistic, open-source SAT solver, developed to help
researchers and developers alike to get started on SAT. It is released under
the MIT licence, and is currently used in a number of projects.
Some key features of MiniSat:
- Easy to modify. MiniSat is small and well-documented, and possibly also
well-designed, making it an ideal starting point for adapting SAT based
techniques to domain specific problems.
- Highly efficient. Winning all the industrial categories of the SAT 2005
competition, MiniSat is a good starting point both for future research in SAT,
and for applications using SAT.
- Designed for integration. MiniSat supports incremental SAT and has
mechanisms for adding non-clausal constraints. By virtue of being easy to
modify, it is a good choice for integrating as a backend to another tool, such
as a model checker or a more generic constraint solver.