GTK is a library for creating graphical user interfaces similar to
the Motif "look and feel". It is designed to be small and efficient, but
still flexible enough to allow the programmer freedom in the interfaces
created. GTK allows the programmer to use a variety of standard user
interface widgets such as push, radio and check buttons, menus, lists
and frames. It also provides several "container" widgets which can be
used to control the layout of the user interface elements.
GTK provides some unique features. (At least, I know of no other
widget library which provides them). For example, a button does not
contain a label, it contains a child widget, which in most instances
will be a label. However, the child widget can also be a pixmap, image
or any combination possible the programmer desires. This flexibility is
adhered to throughout the library.
OpenGLRaw is a raw Haskell binding for the OpenGL 3.2 graphics system
and lots of OpenGL extensions. It is basically a 1:1 mapping of
OpenGL's C API, intended as a basis for a nicer interface. OpenGLRaw
offers access to all necessary functions, tokens and types plus a
general facility for loading extension entries. The module hierarchy
closely mirrors the naming structure of the OpenGL extensions, making it
easy to find the right module to import. All API entries are loaded
dynamically, so no special C header files are needed for building this
package. If an API entry is not found at runtime, a userError is
thrown.
OpenGL is the industry's most widely used and supported 2D and 3D
graphics application programming interface (API), incorporating a broad
set of rendering, texture mapping, special effects, and other powerful
visualization functions.
PEAR::PEAR_PackageFileManager revolutionizes the maintenance of PEAR packages.
With a few parameters, the entire package.xml is automatically updated with a
listing of all files in a package.
Features include
- can detect PHP and extension dependencies using PHP_CompatInfo
- reads in an existing package.xml file, and only changes the
release/changelog
- a plugin system for retrieving files in a directory. Currently two plugins
exist, one for standard recursive directory content listing, and one that
reads the CVS/Entries files and generates a file listing based on the
contents of a checked out CVS repository
- incredibly flexible options for assigning install roles to files/directories
- ability to ignore any file based on a * ? wildcard-enabled string(s)
- ability to include only files that match a * ? wildcard-enabled string(s)
- ability to manage dependencies
- can output the package.xml in any directory, and read in the package.xml
file from any directory.
- can specify a different name for the package.xml file
PEAR_PackageFileManager is fully unit tested.
Bochs is a highly portable open source IA-32 (x86) PC emulator written in
C++, that runs on most popular platforms. It includes emulation of the
Intel x86 CPU, common I/O devices, and a custom BIOS. Currently, bochs can
be compiled to emulate a 386, 486, Pentium, Pentium Pro or AMD64 CPU,
including optional MMX, SSE, SSE2 and 3DNow instructions.
Bochs is capable of running most Operating Systems inside the emulation
including Linux, DOS, Windows 95/98 and Windows NT/2000/XP.
Bochs was written by Kevin Lawton and is currently maintained by the Bochs
project.
Bochs can be compiled and used in a variety of modes, some which are still
in development. The 'typical' use of bochs is to provide complete x86 PC
emulation, including the x86 processor, hardware devices, and memory. This
allows you to run OS's and software within the emulator on your workstation,
much like you have a machine inside of a machine. For instance, let's say
your workstation is a Unix/X11 workstation, but you want to run Win'95
applications. Bochs will allow you to run Win 95 and associated software
on your Unix/X11 workstation, displaying a window on your workstation,
simulating a monitor on a PC.
IceBreaker is a game similar to Jezzball or Barrack. So, uh, there's a bunch of
penguins on an iceberg in Antarctica. You have been selected to catch them so
they can be shipped to Finland, where they are essential to a secret plot for
world domination.
In order to trap the penguins, you'll need to break the iceberg into small
chunks. (They're afraid of water, for no apparent reason.) You do this by
melting lines in the ice with Special High-Tech GNU Tools.
If a penguin hits a line in progress, however, it vanishes with a loud noise,
and you lose a life. (Yes, a life. This story is really breaking down, isn't
it? But never fear -- I'll keep going until it's completely dead.)
Once 80% or more of the iceberg is gone, the remaining chunks are small enough
for shipping. Of course, if you manage to get rid of more than that, you'll
save on postage, thus earning you exponential amounts of Geek Cred (a.k.a.
"score").
After you ship off one batch of penguins, it's time to move on to the next.
Each subsequent 'berg will have one more penguin, and you'll have one more
life. This will continue until you lose, or until you exceed level one hundred
or so, which Ain't Gonna Happen.
VMailMgr (short for Virtual MAIL ManaGeR) is a package of programs designed to
manage multiple domains of mail addresses and mailboxes on a single host. It
co-operates with qmail for mail delivery and program control. It features:
* A password checking interface between qmail-popup and qmail-pop3d which
replaces the usual checkpassword, as well as an authentication module for
Courier IMAP, that provide access to the virtual mailboxes by one of three
methods:
o IP-based virtual server access (invisible to the POP3 user)
o username-based access (username-virtualuser)
o hostname-based access (virtualuser@virtual.host or
virtualuser:virtual.host)
* CDB-based password tables to speed up access for domains of any size.
* Tools to setup a virtual domain, add and delete individual virtual users
and aliases, and to change passwords. CGI programs to accomplish the
* above tasks from a set of web pages.
* A native PHP library to complement or replace the CGIs.
* A daemon process that securely directs the operation of the CGIs and PHP
code.
* A separate delivery agent that automatically deals with any address
inside a virtual domain from a single .qmail-default file.
Math::Series defines a class for simple mathematic series with a recursive
definition such as x_(n+1) = 1 / (x_n + 1). Such a recursive definition is
treated as a sequence whose elements will be added to form a series. You
can refer to the previous sequence element as well as to the current index
in the series. Creation of a Math::Series object is described below in the
paragraph about the constructor.
Math::Series uses Math::Symbolic to parse and modify the recursive
sequence definitions. That means you specify the sequence as a string
which is parsed by Math::Symbolic. Alternatively, you can pass the
constructor a Math::Symbolic tree directly.
Because Math::Series uses Math::Symbolic for its implementation, all
results will be Math::Symbolic objects which may contain other variables
than the sequence variable and the iterator variable.
Each Math::Series object is an iterator to iterate over the elements of
the series starting at the first element (which was specified by the
starting element, the second argument to the new() constructor). It offers
facilities to cache all calculated elements and access any element
directly, though unless the element has been cached in a previous
calculation, this is just a shortcut for repeated use of the iterator.
Why3 is a platform for deductive program verification. It provides a rich
language for specification and programming, called WhyML, and relies on
external theorem provers, both automated and interactive, to discharge
verification conditions. Why3 comes with a standard library of logical
theories (integer and real arithmetic, Boolean operations, sets and maps,
etc.) and basic programming data structures (arrays, queues, hash tables,
etc.). A user can write WhyML programs directly and get correct-by-
construction OCaml programs through an automated extraction mechanism.
WhyML is also used as an intermediate language for the verification of C,
Java, or Ada programs.
Why3 is a complete reimplementation of the former Why platform. Among the
new features are: numerous extensions to the input language, a new
architecture for calling external provers, and a well-designed API,
allowing to use Why3 as a software library. An important emphasis is put
on modularity and genericity, giving the end user a possibility to easily
reuse Why3 formalizations or to add support for a new external prover if
wanted.
The idea is that IPFilter in its current state can already do a simple L4
round-robin in its NAT rules. However, it does not detect or sense when a
service and/or host is down. It will continue to send requests to a downed
service/host.
However, IPFilter lets us add and remove rules on-the-fly so it should be
possible to build a daemon that lets you specify "clusters". In each cluster
you would specify its members/hosts and services. As well as a health-check
for the service to determine its current state.
Once a service was deemed "up" we would add a Round-Robin rule to the NAT
table, and naturally, the reverse once we detect a service as being "down".
In addition to this, this program can optionally add ipf rules to log for RST
(reset) packets coming from the members of your clusters. In the situations
where the software/port goes down, but the host itself is still working, we
would detect failure instantly. (Since the forwarded connections to the service
would trigger a RST packet back). If this option is enabled, l4ip spawns the
"ipmon" command to monitor for the "log" entries given when such a packet is
detected. l4ip will then mark the service down. This is an add-on feature and
is strictly not necessary for functional usage. It is currently only supported
for TCP.
AI::Categorizer is a framework for automatic text categorization. It
consists of a collection of Perl modules that implement common
categorization tasks, and a set of defined relationships among those
modules. The various details are flexible - for example, you can choose
what categorization algorithm to use, what features (words or otherwise)
of the documents should be used (or how to automatically choose these
features), what format the documents are in, and so on.
The basic process of using this module will typically involve obtaining a
collection of pre-categorized documents, creating a "knowledge set"
representation of those documents, training a categorizer on that
knowledge set, and saving the trained categorizer for later use. There are
several ways to carry out this process. The top-level AI::Categorizer
module provides an umbrella class for high-level operations, or you may
use the interfaces of the individual classes in the framework.
A simple sample script that reads a training corpus, trains a categorizer,
and tests the categorizer on a test corpus, is distributed as eg/demo.pl .