Codeville is a distributed Version Control System. It began with a novel
idea for a merge algorithm, and has grown from there. It is designed to
be easy to use, and scale from small personal projects, to very large
distributed ones. If you'd like to know why there's need for new merge
algorithms, consider what the lead monotone developer had to say:
http://article.gmane.org/gmane.comp.version-control.monotone.devel/3264
Codeville works by creating an identifier for each change that is done,
and remembering the list of all changes which have been applied to each
file, and the last change which modified each line in each file. When
there's a conflict, it checks to see if one of the two sides has already
been applied to the other one, and if so, makes the other side win
automatically. When there's a non automatically mergeable version conflict,
Codeville behaves in almost exactly the same way as CVS.
I believe a lot of log processing is done too early.
This module lets you defer log processing in two ways:
* Defer recording of log messages until some "transaction" has completed
Typically this transaction is something like an HTTP request or a cron job.
Generally log messages are easier to read if they are recorded atomically and
are not intermingled with log messages created by other transactions.
* Defer rendering of log messages
Sometimes you don't know how logs should be rendered until long after the
message has been written. If you aren't sure what information you'll want to
display, or you expect to display the same logs in multiple formats, it makes
sense to store your logs in a highly structured format so they can be
reliably parsed and processed later.
This module doesn't actually write out logs! To use this module for normal
logging purposes you also need a logging library.
Thread::Apartment provides an apartment threading wrapper
for Perl classes. "Apartment threading" is a method for
isolating an object (or object hierarchy) in its own thread,
and providing external interfaces via lightweight client
proxy objects. This approach is especially valuable in the
Perl threads environment, which doesn't provide a direct
means of passing complex, nested structure objects between
threads, and for non-threadsafe legacy object architectures,
e.g., Perl/Tk.
By using lightweight client proxy objects that implement the
Thread::Queue::Queueable interface, with Thread::Queue::Duplex
objects as the communication channel between client proxies
and apartment threads (or between threads in general), a more
thread-friendly OO environment is provided, ala Java, i.e.,
the ability to pass arbitrary objects between arbitrary threads.
Thread::Apartment is a fundamental component of the PSiCHE
framework (http://www.presicient.com/psiche).
This is automated checker to make sure a C++ file follows Google's C++ style
guide (http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml). As it
heavily relies on regular expressions, cpplint.py won't catch all violations of
the style guide and will very occasionally report a false positive. There is a
list of things we currently don't handle very well at the top of cpplint.py,
and we welcome patches to improve it.
The linting tool takes a list of files as input. For full usage instructions,
please see the output of:
./cpplint.py --help
Unit tests are provided in cpplint_unittest.py. This file can safely be ignored
by end users who have downloaded this package and only want to run the lint
tool.
Mozilla::PublicSuffix provides a single function that returns the public suffix
of a domain name by referencing a parsed copy of Mozilla's Public Suffix List.
From the official website at http://publicsuffix.org:
A "public suffix" is one under which Internet users can directly register names.
Some examples of public suffixes are .com, .co.uk and pvt.k12.wy.us. The Public
Suffix List is a list of all known public suffixes.
A copy of the official list is bundled with the distribution. As the official
list continues to be updated, the bundled copy will inevitably fall out of date.
Therefore, if the bundled copy of found to be over thirty days old, this
distribution's installer provides the option to check for a new version of the
list and download/use it if one is found.
QEMU is a FAST! processor emulator using dynamic translation to achieve
good emulation speed.
QEMU has two operating modes:
* Full system emulation. In this mode, QEMU emulates a full system
(for example a PC), including a processor and various peripherials.
It can be used to launch different Operating Systems without rebooting
the PC or to debug system code.
* User mode emulation (Linux host only). In this mode, QEMU can launch
Linux processes compiled for one CPU on another CPU. It can be used to
launch the Wine Windows API emulator or to ease cross-compilation and
cross-debugging.
As QEMU requires no host kernel patches to run, it is very safe and easy to use.
See also the preconfigured system images on http://oszoo.org/
Many live cd isos also work.
QEMU is a FAST! processor emulator using dynamic translation to achieve
good emulation speed.
QEMU has two operating modes:
* Full system emulation. In this mode, QEMU emulates a full system
(for example a PC), including a processor and various peripherials.
It can be used to launch different Operating Systems without rebooting
the PC or to debug system code.
* User mode emulation (Linux host only). In this mode, QEMU can launch
Linux processes compiled for one CPU on another CPU. It can be used to
launch the Wine Windows API emulator or to ease cross-compilation and
cross-debugging.
As QEMU requires no host kernel patches to run, it is very safe and easy to use.
See also the preconfigured system images on http://oszoo.org/
Many live cd isos also work.
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.
Sort files or its standard input using the bogo-sort algorithm
described in the Jargon File <http://www.catb.org/~esr/jargon/>.
A quote from the Jargon File 'bogo-sort' entry:
...The archetypical perversely awful algorithm (as opposed to
_bubble sort_, which is merely the generic bad algorithm).
_Bogo-sort_ is equivalent to repeatedly throwing a deck of cards
in the air, picking them up at random, and then testing whether
they are in order. It serves as a sort of canonical example of
awfulness. Looking at a program and seeing a dumb algorithm, one
might say "Oh, I see, this program uses _bogo-sort_." Esp.
appropriate for algorithms with factorial or super-exponential
running time in the average case and probabilistically infinite
worst-case running time. Compare _bogus_, _brute force_,
_lasherism_...
GNU VCDImager is a full-featured mastering suite for
authoring, disassembling and analyzing Video CD's and Super
Video CD's. The core functionality consists of directly making Video CD
BIN/CUE-style CD images from mpeg files.
Features
- Free software available under the GNU Public License
- Support for Video CD 1.1 and 2.0 disc formats
- Support for the Super Video CD 1.0 disc format
- Full PBC (playback control) support
- Support for segment play items
- Automatic padding of MPEG streams on the fly
- Support for 99-minute (out-of-specification) CD-R media
- Extraction of Video CD's into files (incl. the PBC information)
- Use of XML for the description of Video CD's
http://www.vcdimager.org/