The "forks" pragma allows a developer to use threads without having to
have a threaded perl, or to even run 5.8.0 or higher. There were a number
of goals that I am trying to reach with this implementation.
The standard Perl 5.8.0 threads implementation is very memory consuming,
which makes it basically impossible to use in a production environment,
particularly with mod_perl and Apache. Because of the use of the standard
Unix fork() capabilities, most operating systems will be able to use the
Copy-On-Write (COW) memory sharing capabilities (whereas with the standard
Perl 5.8.0 threads implementation, this is thwarted by the Perl interpreter
cloning process that is used to create threads). The memory savings have
been confirmed.
You should be able to run threaded applications unchanged by simply making
sure that the "forks" and "forks::shared" modules are loaded,
e.g. by specifying them on the command line.
QGit is a git GUI viewer built on Qt/C++.
With qgit you will be able to browse revisions history, view patch content and
changed files, graphically following different development branches.
Features :
- View revisions, diffs, files history, files annotation, archive tree.
- Commit changes visually cherry picking modified files.
- Apply or format patch series from selected commits, drag and drop commits
between two instances of qgit.
- Associate commands sequences, scripts and anything else executable to a
custom action. Actions can be run from menu and corresponding output is grabbed
by a terminal window. qgit implements a GUI for the most common StGIT commands
like push/pop and apply/format patches. You can also create new patches or
refresh current top one using the same semantics of git commit,
i.e. cherry picking single modified files.
QuickCheck++ is a tool for testing C++ programs automatically,
inspired by QuickCheck, a similar library for Haskell programs.
In QuickCheck++, the application programmer provides a specification
of parts of its code in the form of properties which this code must
satisfy. Then, the QuickCheck++ utilities can check that these
properties holds in a large number of randomly generated test cases.
Specifications, i.e. properties, are written in C++ by deriving
from the quickcheck::Property class. This class contains members
not only to express the specification but also to observe the
distribution of test data and to write custom test data generators.
The framework also allows the specification of fixed test data, as
can be done with more traditional unit testing frameworks.
The Liquid Rescale plugin is an implementation of the content-aware
resizing by seam carving algorithm by Shai Avidan and Ariel Shamir.
It aims at resizing pictures non uniformly while preserving the
features of the picture, i.e. avoiding distortion of the important
parts of the picture. It can also be used to remove portions of the
picture in a consistent way.
It works both ways, but enlarging gives better results if done in
successive steps. It can use extra layers as masks to select which
features of the image should be preserved and which should be
discarded.
The plugin works on the active layer or floating selection. If a
selection is present, it is saved to a channel. If the layer has a
transparency mask, an option is given to select the behaviour
(apply/discard).
MozJPEG is a fork of libjpeg-turbo with 'jpgcrush' functionality built in.
This project's goal is to reduce the size of JPEG files without reducing quality
or compatibility with the vast majority of the world's deployed decoders.
The idea is to reduce transfer times for JPEGs on the Web, thus reducing page
load times.
'mozjpeg' is not intended to be a general JPEG library replacement. It makes
tradeoffs that are intended to benefit Web use cases and focuses solely on
improving encoding. It is best used as part of a Web encoding workflow. For a
general JPEG library (e.g. your system libjpeg), especially if you care about
decoding, we recommend graphics/libjpeg-turbo port.
The Byte Code Engineering Library (formerly known as JavaClass) is
intended to give users a convenient possibility to analyze, create,
and manipulate (binary) Java class files (those ending with
.class). Classes are represented by objects which contain all the
symbolic information of the given class: methods, fields and byte code
instructions, in particular.
Such objects can be read from an existing file, be transformed by a
program (e.g. a class loader at run-time) and dumped to a file
again. An even more interesting application is the creation of classes
from scratch at run-time. The Byte Code Engineering Library (BCEL) may
be also useful if you want to learn about the Java Virtual Machine
(JVM) and the format of Java .class files.
BCEL is already being used successfully in several projects such as
compilers, optimizers, obsfuscators and analysis tools, the most
popular probably being the Xalan XSLT processor at Apache.
This software is supposed to work as a "reference implementation" of the
suggested "whoson" internet protocol. The protocol is expected to be
employed on "spam relay protected" mail servers to allow traveling
customers still send their email via the protected server. For this, a
realtime database of "temporarily trusted" IP addresses is maintained by
a special daemon program. The database may be filled by, e.g. POP/IMAP
servers, and used by SMTP server. Another possible use of the protocol
is to have the database filled by RADIUS/TACACS server for all dialup
clients, and SMTP server using it to put the user identity into the
"Received" header along with the source IP address. The protocol itself
is defined in a separate document "whoson.txt".
The Math::Units module converts a numeric value in one unit of measurement
to some other unit. The units must be compatible, i.e. length can not be
converted to volume. If a conversion can not be made an exception is
thrown.
A combination chaining and reduction algorithm is used to perform the most
direct unit conversion possible. Units may be written in several different
styles. An abbreviation table is used to convert from common long-form
unit names to the (more or less) standard abbreviations that the units
module uses internally. All multiplicative unit conversions are cached so
that future conversions can be performed very quickly.
Too many units, prefixes and abbreviations are supported to list here. See
the source code for a complete listing.
mtail is a small tail workalike that performs output coloring using ansi
escape sequences (although the sequences are overridable, so you could cause
it to output something else, e.g. html font tags, if you really wanted to).
mtail is written in python, is fairly small, and should be relatively
platform-independent.
It has a config file that can contain an arbitrary number of entries, each
of which has a series of regular expressions to indicate which files to color
according to which entry. for each entry, the config file specifies a coloring
scheme using regular expressions and, optionally, filters to apply to each
line before coloring (for example, to strip out extra info, etc.). the config
file also may override the predefined colors and the escape sequences (or
whatever) actually used to perform the coloring.
SOCKS servers are a form of proxy that are commonly used
in firewalled LAN environments to allow access between networks,
and often to the Internet.
The problem is that most applications don't know how to gain
access through SOCKS servers.
This means that network based applications
that don't understand SOCKS are very limited in networks they can reach.
An example of this is simple 'telnet'.
If you're on a network firewalled from the internet
with a SOCKS server for outside access,
telnet can't use this server and thus can't telnet out to the Internet.
tsocks' role is to allow these non SOCKS aware applications
(e.g telnet, ssh, ftp etc) to use SOCKS without any modification.
It does this by intercepting the
calls that applications make to establish network connections
and negotating them through a SOCKS server as necessary.