The ConfigReader library is a set of classes which reads
directives from a configuration file. The library is
completely object oriented, and it is envisioned that
parsers for new styles of configuration files can be
easily added.
ConfigReader::Spec encapsulates a specification for
configuration directives. You can specify which
directives can be in the configuration file, aliases for
the directive, whether the directive is required or has a
default value, and how to parse the directive value.
Here's an example of how one directive might be specified:
required $spec 'HomePage', 'new URI::URL';
This defines a required directive called 'HomePage'. To
parse the value from the configuration file, the
URI::URL::new() method will be called with the string
value as its argument.
use 'perldoc ConfigReader' for more information.
DRAC is a daemon that dynamically updates a relay authorization map for
Sendmail, Postfix and other MTAs that support it. It provides a way for
legitimate users to relay mail through an SMTP server, while preventing
non-authorized users from using it as a spam relay. Authenticated users
have their IP address added to the map immediately after they have
authenticated via POP, IMAP, or any other daemon which supports the
DRAC API. By default, map entries expire after 30 minutes, but can be
renewed by additional authentication. Periodically checking mail on a
POP server sufficiently does this. DRAC does not require that the
POP/IMAP and SMTP server be on the same physical host.
Sometimes it's necessary to protect some certain data against plain reading
or you intend to send information through the Internet. Another reason might
be to assure users cannot modify their previously entered data in a follow-up
step of a long Web transaction where you don't want to deal with server-side
session data. The goal of Crypt::Lite was to have a pretty simple way to
encrypt and decrypt data without the need to install and compile huge
packages with lots of dependencies.
Crypt::Lite generates every time a different encrypted hash when you
re-encrypt the same data with the same secret string. Nevertheless you
are able to make double or tripple-encryption with any data to increase
the security. Decryption works also on hashes that have been encrypted
on a foreign host (try this with an unpatched IDEA installation ;-).
treewm is a window manager that tries to implement a new concept. In
addition to the client windows the user can create desktops which can
themselves contain windows and desktops. By arranging the windows in
such a tree the user is able to manage his tasks efficiently treewm is
feature-rich, flexible and provides a powerful concept. However,
treewm's look is is rather puristic, and its feel is not always
intuitive, but with a bit of practise it should be very effective to
use.
Short feature list (some of them are quite unique among window managers):
- Allows to create desktops and to arbitrarily move windows between
desktops
- Many options (such as sticky, autoresize, always on top, or the
focus or raise policy) can be set for any desktop or window
- Can be fully customized using the configuration file
- Has a very powerful (somewhat vi-like) command mode, and can be
controlled from shell scripts via a FIFO
- Icons can be placed on desktops that can execute arbitrary commands
- Only uses very common libraries, in particular it doesn't require
GTK, Qt, or anything like that
Camlp4 is a software system for writing extensible parsers for
programming languages. It provides a set of OCaml libraries that are
used to define grammars as well as loadable syntax extensions of such
grammars. Camlp4 stands for Caml Preprocessor and Pretty-Printer and
one of its most important applications is the definition of
domain-specific extensions of the syntax of OCaml.
Camlp4 was part of the official OCaml distribution until its version
4.01.0. Since then it has been replaced by a simpler system which is
easier to maintain and to learn: ppx rewriters and extension points.
Term::Clui offers a high-level user interface to give the user of command-line
applications a consistent "look and feel". Its metaphor for the computer is as
a human-like conversation-partner, and as each question/response is completed
it is summarised onto one line, and remains on screen, so that the history of
the session gradually accumulates on the screen and is available for review, or
for cut/paste. This user interface can therefore be intermixed with standard
applications which write to STDOUT or STDERR, such as make, pgp, rcs etc.
Dia2Code is a small utility used to generate code from a Dia diagram.
Dia is a program to make diagrams (ports/graphics/dia)
- Reads UML diagrams.
- Can handle UML - Generalization, UML - Realization and UML - Implements.
- Selective code generation.
- User-defined output directory.
- Stereotype handling: interfaces, abstract classes.
- "Import" and "include" based on the parent classes, the type of
attributes and return type of methods if they're declared in the same
diagram.
- Support for JavaBeans(tm): will create automagically methods to access
and modify each attribute.
Daemons provides an easy way to wrap existing ruby scripts (for example
a self-written server) to be run as a daemon and to be controlled by
simple start/stop/restart commands.
If you want, you can also use daemons to run blocks of ruby code in a
daemon process and to control these processes from the main application.
Besides this basic functionality, daemons offers many advanced features
like exception backtracing and logging (in case your ruby script
crashes) and monitoring and automatic restarting of your processes if
they crash.
Cultivation is quite different from most other games. It is a social
simulation, and the primary form of conflict is over land and plant
resources---there is no shooting, but there are plenty of angry
looks. It is also an evolution simulation. Within the world of
Cultivation, you can explore a virtually infinite spectrum of
different plant and gardener varieties.
All of the graphics, sounds, melodies,and other content in Cultivation
are 100% procedurally generated at playtime. In other words, there
are no hand-painted texture maps---instead, each object has a
uniquely "grown" appearance. Every time you play, Cultivation
generates fresh visuals, music, and behaviors.
Oh no! The fair city is under attack by a GNOME logo that drops bombs! You
must destroy the city before the logo crashes into a building!
Wait, no, that's not right. Oh no! There is a city standing in the way of
the GNOME logo you're trying to fly around. You must destroy the buildings
before they crash into your flying logo.
Either way, the game is so simple to play that your cat could potentially
earn the high score just by walking across the keyboard. GNOME Attacks!
This game also features one of the coolest splash screens ever.