This module implements a Genetic Algorithm (GA) in pure Perl. Other Perl
modules that achieve the same thing (perhaps better, perhaps worse) do
exist. Please check CPAN. I mainly wrote this module to satisfy my own
needs, and to learn something about GAs along the way.
I will not go into the details of GAs here, but here are the bare basics.
Plenty of information can be found on the web.
In a GA, a population of individuals compete for survival. Each individual
is designated by a set of genes that define its behaviour. Individuals
that perform better (as defined by the fitness function) have a higher
chance of mating with other individuals. When two individuals mate, they
swap some of their genes, resulting in an individual that has properties
from both of its "parents". Every now and then, a mutation occurs where
some gene randomly changes value, resulting in a different individual. If
all is well defined, after a few generations, the population should
converge on a "good-enough" solution to the problem being tackled.
Pidgin is a multi-protocol instant messaging client. It is compatible with AIM
(Oscar and TOC protocols), ICQ, MSN Messenger, Yahoo, IRC, Jabber, Gadu-Gadu,
and Zephyr networks.
Pidgin users can log in to multiple accounts on multiple IM networks
simultaneously. This means that you can be chatting with friends on AOL
Instant Messenger, talking to a friend on Yahoo Messenger, and sitting in an
IRC channel all at the same time.
Pidgin supports many features of the various networks, such as file transfer
(coming soon), away messages, typing notification, and MSN window closing
notification. It also goes beyond that and provides many unique features. A
few popular features are Buddy Pounces, which give the ability to notify you,
send a message, play a sound, or run a program when a specific buddy goes away,
signs online, or returns from idle; and plugins, consisting of text
replacement, a buddy ticker, extended message notification, iconify on away,
and more.
(Adapted from the About Pidgin page.)
Libgaim is a backend library and protocol modules needed for Pidgin frontend
frontends such as the GTK+ and console UIs.
This program is designed to match up items in two different lists, which may
have two different systems of coordinates. The program allows the two sets of
coordinates to be related by a linear, quadratic, or cubic transformation.
There was a major change in version 0.15: the first stage uses the clever method
of finding the most likely triangles described in Tabur, Publications of the
Astronomical Society of Australia, vol 24 , page 189 (2007). This replaces the
more brute-force-ish method of Valdes et al., Publications of the Astronomical
Society of the Pacific, vol 107, page 1119 (1995), which was employed in version
up to 0.14.
The program was designed and written to work on lists of stars and other
astronomical objects, but it might be applied to other types of data. In order
to match two lists of N points, the main algorithm calls for O(N^6) operations
(yes, that's N-to-the-sixth), so it's not the most efficient choice. I find
myself becoming impatient for N >= 100, but your mileage may vary. On the other
hand, it does allow for arbitrary translation, rotation, and scaling...
XML::Compile::WSDL11 understands WSDL version 1.1. An WSDL file defines a set of
messages to be send and received over (SOAP) connections. This involves encoding
of the message to be send into XML, sending the message to the server, collect
the answer, and finally decoding the XML to Perl.
As end-user, you do not have to worry about the complex details of the messages
and the way to exchange them: it's all simple Perl for you. Also, faults are
handled automatically. The only complication you have to worry about is to shape
a nested HASH structure to the sending message structure.
XML::Compile::Schema::template() may help you.
When the definitions are spread over multiple files you will need to use
addWSDL() (wsdl) or importDefinitions() (additional schema's) explicitly.
Usually, interreferences between those files are broken. Often they reference
over networks (you should never trust). So, on purpose you must explicitly load
the files you need from local disk! (of course, it is simple to find one-liners
as work-arounds, but I will to tell you how!)
Implementation of a function 'digest()' for the creation of hash
digests of arbitrary R objects (using the md5, sha-1, sha-256,
crc32, xxhash and murmurhash algorithms) permitting easy comparison
of R language objects, as well as a function 'hmac()' to create
hash-based message authentication code. The md5 algorithm by Ron
Rivest is specified in RFC 1321, the sha-1 and sha-256 algorithms
are specified in FIPS-180-1 and FIPS-180-2, and the crc32 algorithm
is described in ftp://ftp.rocksoft.com/cliens/rocksoft/papers/crc_v3.txt.
For md5, sha-1, sha-256 and aes, this package uses small standalone
implementations that were provided by Christophe Devine. For crc32,
code from the zlib library is used. For sha-512, an implementation
by Aaron D. Gifford is used. For xxHash, the implementation by Yann
Collet is used. For murmurhash, an implementation by Shane Day is
used. Please note that this package is not meant to be deployed for
cryptographic purposes for which more comprehensive (and widely
tested) libraries such as OpenSSL should be used.
java Management Extensions (JMX) is an API that facilitates building management
applications that can configure, and perform operations on, a server applica
-tion. In general, each manageable component of the server application is re
-presented by a Management Bean (or MBean, for short). JMX defines three types
of MBeans, of which Model MBeans are the most flexible. Model MBeans provide a
way to define MBeans for many different components, without having to write a
specific MBean implementation class for each one.
However, this power comes at a price. It is necessary to set up a substantial
amount of metadata about each MBean, including the attributes it should expose
(similar to JavaBeans properties), the operations it should make available (si
-milar to calling methods of a Java object via reflection), and other related
information. The Modeler component is designed to make this process fairly pain
-less -- the required metadata is configured from an XML description of each
Model MBean to be supported. In addition, Modeler provides a factory mechanism
to create the actual Model MBean instances themselves.
CityHash provides hash functions for strings. The functions mix the
input bits thoroughly but are not suitable for cryptography. See
"Hash Quality," below, for details on how CityHash was tested and so on.
Functions by CityHash:
- CityHash32() returns a 32-bit hash.
- CityHash64() and similar return a 64-bit hash.
- CityHash128() and similar return a 128-bit hash and are tuned for
strings of at least a few hundred bytes. Depending on your compiler
and hardware, it's likely faster than CityHash64() on sufficiently long
strings. It's slower than necessary on shorter strings, but we expect
that case to be relatively unimportant.
- CityHashCrc128() and similar are variants of CityHash128() that depend
on _mm_crc32_u64(), an intrinsic that compiles to a CRC32 instruction
on some CPUs. However, none of the functions we provide are CRCs.
- CityHashCrc256() is a variant of CityHashCrc128() that also depends
on _mm_crc32_u64(). It returns a 256-bit hash.
All members of the CityHash family were designed with heavy reliance
on previous work by Austin Appleby, Bob Jenkins, and others.
For example, CityHash32 has many similarities with Murmur3a.
PhysicsFS is a library to provide abstract access to various archives.
It is intended for use in video games, and the design was somewhat
inspired by Quake 3's file subsystem. The programmer defines a "write
directory" on the physical filesystem. No file writing done through the
PhysicsFS API can leave that write directory, for security. For example,
an embedded scripting language cannot write outside of this path if it
uses PhysFS for all of its I/O, which means that untrusted scripts can
run more safely. Symbolic links can be disabled as well, for added
safety. For file reading, the programmer lists directories and archives
that form a "search path". Once the search path is defined, it becomes
a single, transparent hierarchical filesystem. This makes for easy
access to ZIP files in the same way as you access a file directly on the
disk, and it makes it easy to ship a new archive that will override a
previous archive on a per-file basis. Finally, PhysicsFS gives you
platform-abstracted means to determine if CD-ROMs are available, the
user's home directory, where in the real filesystem your program is
running, etc.
PhysicsFS is a library to provide abstract access to various archives.
It is intended for use in video games, and the design was somewhat
inspired by Quake 3's file subsystem. The programmer defines a "write
directory" on the physical filesystem. No file writing done through the
PhysicsFS API can leave that write directory, for security. For example,
an embedded scripting language cannot write outside of this path if it
uses PhysFS for all of its I/O, which means that untrusted scripts can
run more safely. Symbolic links can be disabled as well, for added
safety. For file reading, the programmer lists directories and archives
that form a "search path". Once the search path is defined, it becomes
a single, transparent hierarchical filesystem. This makes for easy
access to ZIP files in the same way as you access a file directly on the
disk, and it makes it easy to ship a new archive that will override a
previous archive on a per-file basis. Finally, PhysicsFS gives you
platform-abstracted means to determine if CD-ROMs are available, the
user's home directory, where in the real filesystem your program is
running, etc.
Finch is a multi-protocol instant messaging client. It is compatible with AIM
(Oscar and TOC protocols), ICQ, MSN Messenger, Yahoo, IRC, Jabber, Gadu-Gadu,
and Zephyr networks.
Finch users can log in to multiple accounts on multiple IM networks
simultaneously. This means that you can be chatting with friends on AOL
Instant Messenger, talking to a friend on Yahoo Messenger, and sitting in an
IRC channel all at the same time.
Finch supports many features of the various networks, such as file transfer
(coming soon), away messages, typing notification, and MSN window closing
notification. It also goes beyond that and provides many unique features. A
few popular features are Buddy Pounces, which give the ability to notify you,
send a message, play a sound, or run a program when a specific buddy goes away,
signs online, or returns from idle; and plugins, consisting of text
replacement, a buddy ticker, extended message notification, iconify on away,
and more.
(Adapted from the About Finch page.)