ha
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 21
HA-JDBC 2.0
HA-JDBC is a JDBC driver implementation that provides light-weight. more>>
HA-JDBC project is a JDBC driver implementation that provides light-weight, transparent clustering capabilities to groups of homogeneous JDBC- accessed databases.
Main features:
- Supports any database accessible via JDBC.
- High-availability - Database cluster can lose a node without failing the current transaction.
- Improves performance of concurrent read-access by distributing load across individual nodes.
- Support for full JDBC 3.0 (Java 1.4) feature set.
- Compatible with JDBC RowSet implementations found in Java 1.5.
- Out-of-the-box database-independent strategies for synchronizing a failed cluster node.
- Exposes JMX management interface to allow administration of database clusters.
- Open source (LGPL).
<<lessMain features:
- Supports any database accessible via JDBC.
- High-availability - Database cluster can lose a node without failing the current transaction.
- Improves performance of concurrent read-access by distributing load across individual nodes.
- Support for full JDBC 3.0 (Java 1.4) feature set.
- Compatible with JDBC RowSet implementations found in Java 1.5.
- Out-of-the-box database-independent strategies for synchronizing a failed cluster node.
- Exposes JMX management interface to allow administration of database clusters.
- Open source (LGPL).
Download (1.5MB)
Added: 2007-07-17 License: LGPL (GNU Lesser General Public License) Price:
833 downloads
HA/FST 3.0.1
HA/FST is a high availability clustering tool for up to four Solaris nodes. more>>
HA/FST is a high availability clustering tool for up to four Solaris nodes. HA/FST project supports any application that can be managed from the command line.
HA/FST works similar to other HA tools. Heartbeats sent across a private network are monitored. If these heartbeats fail and subsequent checks across the public network fail then a failover can occur.
Additionally, each application is monitored at configurable intervals for soundness. Application failovers can trigger a restart or a failover.
HA/FST comes pre-equipped to support:
- Up to 4 nodes in cluster
- Application Fallback to Preferred Node
- Application Failover to a Preferred Node
- Remote Node Application Monitoring
- Event Notifications
- Network Interface Failover
- Apache
- NFS
- Oracle
- Samba
Enhancements:
Bug Fixes:
- Syntax error parsing -t option of fstmodapp prevented proper creation of application agents.
<<lessHA/FST works similar to other HA tools. Heartbeats sent across a private network are monitored. If these heartbeats fail and subsequent checks across the public network fail then a failover can occur.
Additionally, each application is monitored at configurable intervals for soundness. Application failovers can trigger a restart or a failover.
HA/FST comes pre-equipped to support:
- Up to 4 nodes in cluster
- Application Fallback to Preferred Node
- Application Failover to a Preferred Node
- Remote Node Application Monitoring
- Event Notifications
- Network Interface Failover
- Apache
- NFS
- Oracle
- Samba
Enhancements:
Bug Fixes:
- Syntax error parsing -t option of fstmodapp prevented proper creation of application agents.
Download (2.5MB)
Added: 2006-01-13 License: GPL (GNU General Public License) Price:
1380 downloads
HA-Tools 2.00
HA-Tools provide some programs to improve shell scripting in a High Availability environment. more>>
HA-Tools provide some programs to improve shell scripting in a High Availability environment.
The halockrun program provides a simple and reliable way to implement a locking in shell scripts. A typical usage for halockrun is to prevent cronjobs to run simultanously. halockrun uses a lock on a file via fcntl(2) which ensures the release of the lock even if the process gets killed via SIGKILL.
The hatimerun program provides a time-out mechanism which can be used from shell scripts.
Enhancements:
- This release features some extensions and clarifications about the exit codes returned by halockrun and hatimerun.
<<lessThe halockrun program provides a simple and reliable way to implement a locking in shell scripts. A typical usage for halockrun is to prevent cronjobs to run simultanously. halockrun uses a lock on a file via fcntl(2) which ensures the release of the lock even if the process gets killed via SIGKILL.
The hatimerun program provides a time-out mechanism which can be used from shell scripts.
Enhancements:
- This release features some extensions and clarifications about the exit codes returned by halockrun and hatimerun.
Download (0.15MB)
Added: 2007-08-19 License: GPL (GNU General Public License) Price:
801 downloads
Linux-HA 2.0.5
Linux-HA provides a heartbeat and IP address takeover functions for a high-availability Linux cluster. more>>
Linux-HA provides a heartbeat and IP address takeover functions for a high-availability Linux cluster.
The basic goal of the High Availability Linux project is to:
Provide a high-availability (clustering) solution for Linux which promotes reliability, availability, and serviceability (RAS) through a community development effort.
The Linux-HA project is a widely used and important component in many interesting High-Availability solutions. We estimate that we currently have around thirty thousand installations up in mission-critical uses in the real world since it became suitable for mission critical production in 1999. Interest in this project continues to grow. These web pages are average more than 17000 hits per day, and we see around 100 downloads of our software per day.
Heartbeat now ships as part of SUSE Linux, Mandriva Linux, MSC Linux, Debian GNU/Linux, Ubuntu Linux, Red Flag Linux, and Gentoo Linux. Ultra Monkey, and several companys embedded systems are also based on it. Although this is called the Linux-HA project, the software is highly portable and runs on FreeBSD and Solaris as well (even MacOS X from time to time).
There have been many articles and chapters in books written on this project and software. See the PressRoom for more details.
We have put our foot on the road to being competitive with commercial systems similar to those described in D. H. Browns 1998 or March 2000 analysis of RAS cluster features and functions. In most important respects, we think youll find that Linux-HA has achieved this level of competitiveness with our release 2 software.
This release 2 series brings technologies and basic capabilities which match or exceed the capabilities of many commercial HA systems. We think youll be surprised. An R2 getting started guide is available.
We also work well with the LVS (Linux Virtual Server) project and expect to continue to collaborate with them in the future, since our goals are complementary.
Enhancements:
- This release has significant bugfixes and enhancements, making it a worthwhile upgrade for anyone running R2 CRM-style configurations, or who would like to.
- An OCF RA for Xen guests and Chinese GUI support have been added.
- ipfail has been replaced and generalized (limited testing). Master/slave testing and fixes.
- Significant cibadmin fixes.
<<lessThe basic goal of the High Availability Linux project is to:
Provide a high-availability (clustering) solution for Linux which promotes reliability, availability, and serviceability (RAS) through a community development effort.
The Linux-HA project is a widely used and important component in many interesting High-Availability solutions. We estimate that we currently have around thirty thousand installations up in mission-critical uses in the real world since it became suitable for mission critical production in 1999. Interest in this project continues to grow. These web pages are average more than 17000 hits per day, and we see around 100 downloads of our software per day.
Heartbeat now ships as part of SUSE Linux, Mandriva Linux, MSC Linux, Debian GNU/Linux, Ubuntu Linux, Red Flag Linux, and Gentoo Linux. Ultra Monkey, and several companys embedded systems are also based on it. Although this is called the Linux-HA project, the software is highly portable and runs on FreeBSD and Solaris as well (even MacOS X from time to time).
There have been many articles and chapters in books written on this project and software. See the PressRoom for more details.
We have put our foot on the road to being competitive with commercial systems similar to those described in D. H. Browns 1998 or March 2000 analysis of RAS cluster features and functions. In most important respects, we think youll find that Linux-HA has achieved this level of competitiveness with our release 2 software.
This release 2 series brings technologies and basic capabilities which match or exceed the capabilities of many commercial HA systems. We think youll be surprised. An R2 getting started guide is available.
We also work well with the LVS (Linux Virtual Server) project and expect to continue to collaborate with them in the future, since our goals are complementary.
Enhancements:
- This release has significant bugfixes and enhancements, making it a worthwhile upgrade for anyone running R2 CRM-style configurations, or who would like to.
- An OCF RA for Xen guests and Chinese GUI support have been added.
- ipfail has been replaced and generalized (limited testing). Master/slave testing and fixes.
- Significant cibadmin fixes.
Download (5.3MB)
Added: 2006-04-28 License: LGPL (GNU Lesser General Public License) Price:
1282 downloads
Kahakai 0.6.2
Kahakai is a fork of the Waimea window manager, with the intent to create a language agnostic scriptable window manager. more>>
Kahakai is a fork of the Waimea window manager, with the intent to create a language agnostic scriptable window manager, while maintaining the original features of Waimea, and extending upon them. Kahakai is pronounced with the ca in car, the ha in hard, and ki from kite.
By "language agnostic", we mean that the scripts which control actions in the window manager are not language specific, they can be written in any language supported by SWIG. For starters, we plan on supporting Python with the addition of Ruby and Perl shortly thereafter.
Main features:
- Window/edge snapping
- Transparent window titles and menus with anti-aliased fonts
- Python scripting (Ruby/Perl support planned) used for configuration
- Dockapp support
- Pixmap styles, compatible with Blackbox/Fluxbox/Openbox & Waimea styles
- Viewports, multiple desktops
- KDE and GNOME support
<<lessBy "language agnostic", we mean that the scripts which control actions in the window manager are not language specific, they can be written in any language supported by SWIG. For starters, we plan on supporting Python with the addition of Ruby and Perl shortly thereafter.
Main features:
- Window/edge snapping
- Transparent window titles and menus with anti-aliased fonts
- Python scripting (Ruby/Perl support planned) used for configuration
- Dockapp support
- Pixmap styles, compatible with Blackbox/Fluxbox/Openbox & Waimea styles
- Viewports, multiple desktops
- KDE and GNOME support
Download (0.68MB)
Added: 2005-08-12 License: GPL (GNU General Public License) Price:
1533 downloads
HAproxy 1.3.12
HAproxy is a high performance Web load balancer. more>>
HA-Proxy is a TCP/HTTP reverse proxy which is particularly suited for high
availability environments. Indeed, it can :
- route HTTP requests depending on statically assigned cookies ;
- spread the load among several servers while assuring server persistence through the use of HTTP cookies ;
- switch to backup servers in the event a main one fails ;
- accept connections to special ports dedicated to service monitoring ;
- stop accepting connections without breaking existing ones ;
- add/modify/delete HTTP headers both ways ;
- block requests matching a particular pattern ;
It needs very little resource. HAproxy it is event-driven architecture allows it to easily
handle thousands of simultaneous connections on hundreds of instances without risking the systems stability.
Start parameters
There are only a few command line options :
-f < configuration file >
-n < high limit for the total number of simultaneous connections >
-N < high limit for the per-proxy number of simultaneous connections >
-d starts in foregreound with debugging mode enabled
-D starts in daemon mode
-q disable messages on output
-V displays messages on output even when -q or quiet are specified.
-c only checks config file and exits with code 0 if no error was found, or exits with code 1 if a syntax error was found.
-p < pidfile > asks the process to write down each of its childrens pids to this file in daemon mode.
-s shows statistics (only if compiled in)
-l shows even more statistics (implies -s)
The maximal number of connections per proxy is used as the default parameter for each instance for which the maxconn paramter is not set in the listen section.
The maximal number of total connections limits the number of connections used by the whole process if the maxconn parameter is not set in the global section.
The debugging mode has the same effect as the debug option in the global section. When the proxy runs in this mode, it dumps every connections, disconnections, timestamps, and HTTP headers to stdout. This should NEVER be used in an init script since it will prevent the system from starting up.
Statistics are only available if compiled in with the STATTIME option. Its only used during code optimization phases.
Enhancements:
- Content switching is now fully operational using ACLs.
- ACLs can look for matches in path and headers in addition to previously supported criteria.
- Integer comparison is now supported for header values. 15 pre-defined ACLs are provided.
- Error pages can be customized using external files.
- Several bugs have been fixed.
- This version will be maintained as a stable one during further development.
<<lessavailability environments. Indeed, it can :
- route HTTP requests depending on statically assigned cookies ;
- spread the load among several servers while assuring server persistence through the use of HTTP cookies ;
- switch to backup servers in the event a main one fails ;
- accept connections to special ports dedicated to service monitoring ;
- stop accepting connections without breaking existing ones ;
- add/modify/delete HTTP headers both ways ;
- block requests matching a particular pattern ;
It needs very little resource. HAproxy it is event-driven architecture allows it to easily
handle thousands of simultaneous connections on hundreds of instances without risking the systems stability.
Start parameters
There are only a few command line options :
-f < configuration file >
-n < high limit for the total number of simultaneous connections >
-N < high limit for the per-proxy number of simultaneous connections >
-d starts in foregreound with debugging mode enabled
-D starts in daemon mode
-q disable messages on output
-V displays messages on output even when -q or quiet are specified.
-c only checks config file and exits with code 0 if no error was found, or exits with code 1 if a syntax error was found.
-p < pidfile > asks the process to write down each of its childrens pids to this file in daemon mode.
-s shows statistics (only if compiled in)
-l shows even more statistics (implies -s)
The maximal number of connections per proxy is used as the default parameter for each instance for which the maxconn paramter is not set in the listen section.
The maximal number of total connections limits the number of connections used by the whole process if the maxconn parameter is not set in the global section.
The debugging mode has the same effect as the debug option in the global section. When the proxy runs in this mode, it dumps every connections, disconnections, timestamps, and HTTP headers to stdout. This should NEVER be used in an init script since it will prevent the system from starting up.
Statistics are only available if compiled in with the STATTIME option. Its only used during code optimization phases.
Enhancements:
- Content switching is now fully operational using ACLs.
- ACLs can look for matches in path and headers in addition to previously supported criteria.
- Integer comparison is now supported for header values. 15 pre-defined ACLs are provided.
- Error pages can be customized using external files.
- Several bugs have been fixed.
- This version will be maintained as a stable one during further development.
Download (0.29MB)
Added: 2007-06-19 License: GPL (GNU General Public License) Price:
860 downloads
IlohaMail 0.8.14 RC3
IlohaMail is a light weight multilingual webmail program. more>>
IlohaMail (pronounced: e-lo-ha-mail) is a light weight yet full featured multilingual webmail program that is easy to use and install.
It runs on a stock build of PHP, and does not require databases (although database support is available) or the IMAP library (it is powered by a custom IMAP/POP3 library).
Main features:
- Easy to install (only requires default build of PHP4)
- Light weight and fast
- Extensive multilingual capabilities
- Modular - Easily modifiable to accomodate different backends.
- Activity Logging
- Spam Prevention
- Multiple host/domain support
- Auto-appended Tag-Lines
- Optional MySQL backend for improved scalability and performance.
- External SMTP server support
- IMAP caching
- Theme support [development]
- POP3 & IMAP Support
- Send, receive, file, delete messages
- Create, rename, delete folders (requires IMAP)
- Send/receive attachments
- View images/html inline
- Full featured Contacts list
- Search messages (requires IMAP)
- User defined colors
- GPG/PGP support (requires GPG) [development]
- Multiple sender identities
- Spell checker (requires aspell)
- Calendar
- Bookmarks manager
- Customizable - Over 2 dozen user preferences
- Support for over 20 languages
<<lessIt runs on a stock build of PHP, and does not require databases (although database support is available) or the IMAP library (it is powered by a custom IMAP/POP3 library).
Main features:
- Easy to install (only requires default build of PHP4)
- Light weight and fast
- Extensive multilingual capabilities
- Modular - Easily modifiable to accomodate different backends.
- Activity Logging
- Spam Prevention
- Multiple host/domain support
- Auto-appended Tag-Lines
- Optional MySQL backend for improved scalability and performance.
- External SMTP server support
- IMAP caching
- Theme support [development]
- POP3 & IMAP Support
- Send, receive, file, delete messages
- Create, rename, delete folders (requires IMAP)
- Send/receive attachments
- View images/html inline
- Full featured Contacts list
- Search messages (requires IMAP)
- User defined colors
- GPG/PGP support (requires GPG) [development]
- Multiple sender identities
- Spell checker (requires aspell)
- Calendar
- Bookmarks manager
- Customizable - Over 2 dozen user preferences
- Support for over 20 languages
Download (0.35MB)
Added: 2005-05-05 License: GPL (GNU General Public License) Price:
1633 downloads
Head Over Heels 1.0.1
Head Over Heels is a spanky new remake of the classic Jon Ritman & Bernie Drummand isometric adventure. more>>
Head Over Heels is a spanky new remake of the classic Jon Ritman & Bernie Drummand isometric adventure.
Head Over Heels was released, um, a while ago. Around about 1987 if I recall correctly and it was immediately praised in the press as being quite the bestest thing ever. Not only was it a huge game for its time, it also had great graphics and was very addictive - if somewhat punishing in its difficulty level.
The variety in the locations was amazing and the challenges brilliantly designed. Quite rightly it was awarded with pretty much every accolade that could be bestowed upon it by the various magazines. Even today it still stands as a brilliantly designed title and has never really been bettered in the isometric adventure genre.
This version is a pretty darn faithful remake of the Speccy original except with a few spanking extra bits grafted on like a save system and subliminal flashes of erotic art (if I have my way!). I should perhaps tell you a bit about the team whos making the game. Im the one responsible for the graphics (apart from the lovely logo which you see adorning this site) and Im Graham Goring.
The programming is by the very talented Tomaz Kac (who only wrote this game because of a hastily scrawled diagram posted on the Retrospec mailing list about how you cant properly sort isometric games without complex masking), the excellent music is by Dorian Black (who I understand has a picture of an old man in his loft - ha ha ha!) and this website and the games logo is by Pierre Jovanovic.
Other contributors are James Curry, Kakarot, Milos Babovic, Metka Jostl and Sir Dave-O whose beta testing has been invaluable in both ironing out the programming bugs and also refining the layout of some of the rooms due to the handling being ever so slightly different to the Spectrum version.
On a personal note Ive also been encouraged by all the lovely people at the pixelation forum (pixelation.swoo.net) and of course the other members of Retrospec who have now grudgingly accepted that I can actually draw fairly good graphics.
<<lessHead Over Heels was released, um, a while ago. Around about 1987 if I recall correctly and it was immediately praised in the press as being quite the bestest thing ever. Not only was it a huge game for its time, it also had great graphics and was very addictive - if somewhat punishing in its difficulty level.
The variety in the locations was amazing and the challenges brilliantly designed. Quite rightly it was awarded with pretty much every accolade that could be bestowed upon it by the various magazines. Even today it still stands as a brilliantly designed title and has never really been bettered in the isometric adventure genre.
This version is a pretty darn faithful remake of the Speccy original except with a few spanking extra bits grafted on like a save system and subliminal flashes of erotic art (if I have my way!). I should perhaps tell you a bit about the team whos making the game. Im the one responsible for the graphics (apart from the lovely logo which you see adorning this site) and Im Graham Goring.
The programming is by the very talented Tomaz Kac (who only wrote this game because of a hastily scrawled diagram posted on the Retrospec mailing list about how you cant properly sort isometric games without complex masking), the excellent music is by Dorian Black (who I understand has a picture of an old man in his loft - ha ha ha!) and this website and the games logo is by Pierre Jovanovic.
Other contributors are James Curry, Kakarot, Milos Babovic, Metka Jostl and Sir Dave-O whose beta testing has been invaluable in both ironing out the programming bugs and also refining the layout of some of the rooms due to the handling being ever so slightly different to the Spectrum version.
On a personal note Ive also been encouraged by all the lovely people at the pixelation forum (pixelation.swoo.net) and of course the other members of Retrospec who have now grudgingly accepted that I can actually draw fairly good graphics.
Download (14MB)
Added: 2005-09-05 License: GPL (GNU General Public License) Price:
1791 downloads
Devel::TraceFuncs 0.1
Devel::TraceFuncs is a Perl module with trace function calls as they happen. more>>
Devel::TraceFuncs is a Perl module with trace function calls as they happen.
SYNOPSIS
Usage:
require Devel::TraceFuncs;
max_trace_depth 5;
trace_file "foo.out";
trace_file $file_handle;
sub foo {
IN(my $f, "a message");
DEBUG "hellooo!";
}
Devel::TraceFuncs provides utilities to trace the execution of a program. It can print traces that look something like:
+-> global: 0
| +-> main::fo(4, 5) (in ./t.pm:32): now then
| | +-> main::fp(4, 5) (in ./t.pm:19)
| | | +-> main::fq() (in ./t.pm:13)
| | | | que pee doll (in ./t.pm:8)
| | | +-< main::fq() (in ./t.pm:13)
| | | cee dee (in ./t.pm:14)
| | +-< main::fp(4, 5) (in ./t.pm:19)
| | ha
| | hs (in ./t.pm:20)
| +-< main::fo(4, 5) (in ./t.pm:32): now then
| done (in ./t.pm:34)
+-< global: 0
IN
A trace begins when a function calls IN. A myd variable is passed in, such that when that function exits, the destructor for the variable is called. If this trace is to be printed, the opening line of the trace in printed at this time. Any other parameters are concatenated together, and printed on both the opening and closing lines of the trace.
I wish the syntax could be a little nicer here, but I couldnt find anything in perl that resembles Tcls uplevel or upvar commands. If I was one of the perl gods, I could have figured out a way to do something like perl5db.pl:
sub sub {
# create a new subroutine, with a myd TraceFunc object
}
DEBUG
Print some text to the trace file, at the correct depth in the trace. If the last parameter ends in "!", the arguments are printed, regardless of current depth.
trace_file
trace_file takes one argument, which is either a file name or an open file handle. All trace output will go to this file.
max_trace_depth
To avoid lots of nesting, particularly from recursive function calls, you can set the maximum depth to be traced. If this is -1 (the default), all levels of functions are traced. If it is 0, no trace output occurs, except for DEBUG statements that end in "!".
<<lessSYNOPSIS
Usage:
require Devel::TraceFuncs;
max_trace_depth 5;
trace_file "foo.out";
trace_file $file_handle;
sub foo {
IN(my $f, "a message");
DEBUG "hellooo!";
}
Devel::TraceFuncs provides utilities to trace the execution of a program. It can print traces that look something like:
+-> global: 0
| +-> main::fo(4, 5) (in ./t.pm:32): now then
| | +-> main::fp(4, 5) (in ./t.pm:19)
| | | +-> main::fq() (in ./t.pm:13)
| | | | que pee doll (in ./t.pm:8)
| | | +-< main::fq() (in ./t.pm:13)
| | | cee dee (in ./t.pm:14)
| | +-< main::fp(4, 5) (in ./t.pm:19)
| | ha
| | hs (in ./t.pm:20)
| +-< main::fo(4, 5) (in ./t.pm:32): now then
| done (in ./t.pm:34)
+-< global: 0
IN
A trace begins when a function calls IN. A myd variable is passed in, such that when that function exits, the destructor for the variable is called. If this trace is to be printed, the opening line of the trace in printed at this time. Any other parameters are concatenated together, and printed on both the opening and closing lines of the trace.
I wish the syntax could be a little nicer here, but I couldnt find anything in perl that resembles Tcls uplevel or upvar commands. If I was one of the perl gods, I could have figured out a way to do something like perl5db.pl:
sub sub {
# create a new subroutine, with a myd TraceFunc object
}
DEBUG
Print some text to the trace file, at the correct depth in the trace. If the last parameter ends in "!", the arguments are printed, regardless of current depth.
trace_file
trace_file takes one argument, which is either a file name or an open file handle. All trace output will go to this file.
max_trace_depth
To avoid lots of nesting, particularly from recursive function calls, you can set the maximum depth to be traced. If this is -1 (the default), all levels of functions are traced. If it is 0, no trace output occurs, except for DEBUG statements that end in "!".
Download (0.004MB)
Added: 2007-05-02 License: Perl Artistic License Price:
905 downloads
Games::Euchre::AI 1.02
Games::Euchre::AI is a Player API for Euchre card game. more>>
Games::Euchre::AI is a Player API for Euchre card game.
This class implements a skeletal Euchre player programming interface. Subclasses can be created quite easily as interactive interfaces or AI computer players.
If you wish to write your own computer player, I recommend you start with Games::Euchre::AI::Simple. If you wish to write your own human interface, I recommend you start with Games::Euchre::AI::Human.
CLASS METHODS
new
Create and initialize a new Euchre AI. This object is implemented as an empty hash. Subclasses may wish to use this hash for state storage.
INSTANCE METHODS
Actions
The following methods are called in the course of the game where the AI (or human) has to make a decision. The state of the game is always passed in a hashreference. The following fields are always available:
name is the name of the current player. This is useful for output messages.
names is a hash relating player number to player name for all four players.
debug is a boolean indicating if we are debugging game or the AIs. Your AI may wish to provide verbose output if debugging is going on.
bid STATEHASH
Choose trump or pass. The relevent details of the current state of the game are provided in a hash reference. Here is an example of that data structure:
{
name => Player 1,
names => {1 => Player 1, 2 => P2, 3 => P3, 4 => Fred},
number => 1,
turnedUp => KH,
passes => 1,
ourScore => 2,
theirScore => 4,
winScore => 10,
hangdealer => false,
notrump => false,
hand => [JS, QH, 9S, KC, AD],
debug => false,
}
turnedUp is the suit and value of the card on the top of the blind. This will be undef on the second round of bidding.
passes says how many people have passed so far
hangdealer is a boolean saying whether the hang-the-dealer optional rule is in effect
notrump is a boolean saying whether the no trump optional rule is in effect
This function must return one of: H, D, C, S, N, HA, DA, CA, SA, NA, or undef
N means no trump, A means alone, undef means pass. Not all of these are legal at any given round! Use the isLegalBid() method below if you are unsure.
pickItUp STATEHASH
If this is called, you are the dealer and someone called trump. Choose which card from your hand to discard in exchange for the top card of the blind. The relevent details of the current state of the game are provided in a hash reference. Here is an example of that data structure:
{
name => Player 1,
names => {1 => Player 1, 2 => P2, 3 => P3, 4 => Fred},
number => 1,
turnedUp => KH,
trump => H,
bidder => 2,
weBid => false,
usAlone => false,
themAlone => false,
hand => [JS, QH, 9S, KC, AD],
debug => false,
}
This method should return the 0-based index of the card to trade for the turnedUp card. Namely, this in the index of the hand array for the card that you choose.
playCard STATEHASH
Choose which card from your hand to play on this trick. The relevent details of the current state of the game are provided in a hash reference. Here is an example of that data structure:
{
name => Player 1,
names => {1 => Player 1, 2 => P2, 3 => P3, 4 => Fred},
number => 1,
trump => H,
bidder => 2,
weBid => true,
usAlone => false,
themAlone => false,
trick => 2,
ourTricks => 0,
theirTricks => 1,
ourScore => 2,
theirScore => 4,
winScore => 10,
played => [10H, 9H, QC],
playedBy => [2, 3, 4, 1],
hand => [JH, AH, AS, KS],
debug => false,
}
playedBy is an arrayref of numbers of the players in the order they will play. Without this, the alone possibility makes it hard to tell who played what.
Any needed information not stored here (like who was the dealer, what was the turn-up card, what happened in the first trick) is YOUR responsibility to collect and store in your instance.
This method should return the 0-based index of the card to play. Namely, this in the index of the hand array for the card that you choose.
<<lessThis class implements a skeletal Euchre player programming interface. Subclasses can be created quite easily as interactive interfaces or AI computer players.
If you wish to write your own computer player, I recommend you start with Games::Euchre::AI::Simple. If you wish to write your own human interface, I recommend you start with Games::Euchre::AI::Human.
CLASS METHODS
new
Create and initialize a new Euchre AI. This object is implemented as an empty hash. Subclasses may wish to use this hash for state storage.
INSTANCE METHODS
Actions
The following methods are called in the course of the game where the AI (or human) has to make a decision. The state of the game is always passed in a hashreference. The following fields are always available:
name is the name of the current player. This is useful for output messages.
names is a hash relating player number to player name for all four players.
debug is a boolean indicating if we are debugging game or the AIs. Your AI may wish to provide verbose output if debugging is going on.
bid STATEHASH
Choose trump or pass. The relevent details of the current state of the game are provided in a hash reference. Here is an example of that data structure:
{
name => Player 1,
names => {1 => Player 1, 2 => P2, 3 => P3, 4 => Fred},
number => 1,
turnedUp => KH,
passes => 1,
ourScore => 2,
theirScore => 4,
winScore => 10,
hangdealer => false,
notrump => false,
hand => [JS, QH, 9S, KC, AD],
debug => false,
}
turnedUp is the suit and value of the card on the top of the blind. This will be undef on the second round of bidding.
passes says how many people have passed so far
hangdealer is a boolean saying whether the hang-the-dealer optional rule is in effect
notrump is a boolean saying whether the no trump optional rule is in effect
This function must return one of: H, D, C, S, N, HA, DA, CA, SA, NA, or undef
N means no trump, A means alone, undef means pass. Not all of these are legal at any given round! Use the isLegalBid() method below if you are unsure.
pickItUp STATEHASH
If this is called, you are the dealer and someone called trump. Choose which card from your hand to discard in exchange for the top card of the blind. The relevent details of the current state of the game are provided in a hash reference. Here is an example of that data structure:
{
name => Player 1,
names => {1 => Player 1, 2 => P2, 3 => P3, 4 => Fred},
number => 1,
turnedUp => KH,
trump => H,
bidder => 2,
weBid => false,
usAlone => false,
themAlone => false,
hand => [JS, QH, 9S, KC, AD],
debug => false,
}
This method should return the 0-based index of the card to trade for the turnedUp card. Namely, this in the index of the hand array for the card that you choose.
playCard STATEHASH
Choose which card from your hand to play on this trick. The relevent details of the current state of the game are provided in a hash reference. Here is an example of that data structure:
{
name => Player 1,
names => {1 => Player 1, 2 => P2, 3 => P3, 4 => Fred},
number => 1,
trump => H,
bidder => 2,
weBid => true,
usAlone => false,
themAlone => false,
trick => 2,
ourTricks => 0,
theirTricks => 1,
ourScore => 2,
theirScore => 4,
winScore => 10,
played => [10H, 9H, QC],
playedBy => [2, 3, 4, 1],
hand => [JH, AH, AS, KS],
debug => false,
}
playedBy is an arrayref of numbers of the players in the order they will play. Without this, the alone possibility makes it hard to tell who played what.
Any needed information not stored here (like who was the dealer, what was the turn-up card, what happened in the first trick) is YOUR responsibility to collect and store in your instance.
This method should return the 0-based index of the card to play. Namely, this in the index of the hand array for the card that you choose.
Download (0.021MB)
Added: 2006-12-26 License: Perl Artistic License Price:
1034 downloads
Games::Euchre::Player 1.02
Games::Euchre::Player is a player class for Euchre card game. more>>
Games::Euchre::Player is a player class for Euchre card game.
The four Player objects are used to interact with the humand and computer players, as well as to keep the state of the players hand, whether he bid and whether he went alone.
CLASS METHODS
new GAME NUMBER NAME
Create and initialize a new Euchre player. The number is 1-4.
INSTANCE METHODS
getGame
Return the Euchre game instance to which this player belongs.
setTeam TEAM
Record the Team instance that this player belongs to.
getTeam
Return the Team instance to which this player belongs.
setAI AI
Record the AI instance for this player.
getAI
Return the AI instance for this player.
setAlone
Indicate that this player has chosen to go alone in the current hand.
setBid
Indicate that this player has chosen to choose trump in the current hand.
wentAlone
Returns a boolean indicating whether this player chose to go alone on a bid.
isBidder
Returns a boolean indicating whether this player called the trump suit during bidding.
getName
Return this players name
getNumber
Return this players number, between 1 and 4
getHand
Return the Games::Cards::Hand object representing this players current hand.
getCards
Return an array of the Games::Cards::Card objects held in the players hand.
resetGame
Clear all of the state for the current game and get ready for the next one.
resetHand
Clear all of the state for the current hand and get ready for the next one.
bid TURN
Allow the player to choose trump or pass. Returns one of: H, C, D, S, N, HA, CA, DA, SA, NA, or undef. If the player has an AI instance set, that is invoked. Otherwise a pathetically simple AI decides the bid.
pickItUp
Allow the player, as dealer, to select which card to trade for the turned up card. This method performs the actual trade. If the player has an AI instance set, that is invoked. Otherwise a pathetically simple AI chooses the card.
playCard TRICK
Allow the player to select which card to play on the current trick. This method performs the actual play. If the player has an AI instance set, that is invoked. Otherwise a pathetically simple AI chooses the card.
isLegalBid TURNNUMBER BID
Given a bid, return a boolean indicating the validity of that bid. The bid is tested for structure (one of H, C, D, S, N, HA, CA, DA, SA, NA, or undef), tested against the bidding round (only the turned-up card suit can be called in round 1 , and may not be called in round 2), against the game options (hang-the-dealer, no-trump).
This is called from the bid() method.
<<lessThe four Player objects are used to interact with the humand and computer players, as well as to keep the state of the players hand, whether he bid and whether he went alone.
CLASS METHODS
new GAME NUMBER NAME
Create and initialize a new Euchre player. The number is 1-4.
INSTANCE METHODS
getGame
Return the Euchre game instance to which this player belongs.
setTeam TEAM
Record the Team instance that this player belongs to.
getTeam
Return the Team instance to which this player belongs.
setAI AI
Record the AI instance for this player.
getAI
Return the AI instance for this player.
setAlone
Indicate that this player has chosen to go alone in the current hand.
setBid
Indicate that this player has chosen to choose trump in the current hand.
wentAlone
Returns a boolean indicating whether this player chose to go alone on a bid.
isBidder
Returns a boolean indicating whether this player called the trump suit during bidding.
getName
Return this players name
getNumber
Return this players number, between 1 and 4
getHand
Return the Games::Cards::Hand object representing this players current hand.
getCards
Return an array of the Games::Cards::Card objects held in the players hand.
resetGame
Clear all of the state for the current game and get ready for the next one.
resetHand
Clear all of the state for the current hand and get ready for the next one.
bid TURN
Allow the player to choose trump or pass. Returns one of: H, C, D, S, N, HA, CA, DA, SA, NA, or undef. If the player has an AI instance set, that is invoked. Otherwise a pathetically simple AI decides the bid.
pickItUp
Allow the player, as dealer, to select which card to trade for the turned up card. This method performs the actual trade. If the player has an AI instance set, that is invoked. Otherwise a pathetically simple AI chooses the card.
playCard TRICK
Allow the player to select which card to play on the current trick. This method performs the actual play. If the player has an AI instance set, that is invoked. Otherwise a pathetically simple AI chooses the card.
isLegalBid TURNNUMBER BID
Given a bid, return a boolean indicating the validity of that bid. The bid is tested for structure (one of H, C, D, S, N, HA, CA, DA, SA, NA, or undef), tested against the bidding round (only the turned-up card suit can be called in round 1 , and may not be called in round 2), against the game options (hang-the-dealer, no-trump).
This is called from the bid() method.
Download (0.021MB)
Added: 2006-12-21 License: Perl Artistic License Price:
1038 downloads
Astaro Security Linux 7.5 Beta
Astaro Security Linux is an award-winning, unique network security solution in an integrated and easy-to-use and manage package. more>>
Astaro Security Linux 7.5 Beta offers you a wonderful and extremely useful product which is an award-winning, unique network security solution in an integrated and easy-to-use and manage package. Astaro Security Linux includes a combination of the following security applications:
- A Firewall with stateful packet inspection and application proxies guards Internet communications traffic in and out of the organization.
- A Virtual Private Network (VPN) gateway assures secure communications with remote offices, road warriors, and telecommuters.
- Anti-Virus defends computers from both email and web-bourne viruses.
- Intrusion Protection detects and stops hostile probes and application-based attacks.
- Spam Filtering eliminates the productivity drain of opening and deleting unsolicited emails.
- Surf Protection (Content Filtering) and Spyware Protection improve productivity by blocking inappropriate web activities, provide full protection from user tracking threats and violation of privacy.
Major Features:
- Protects all types of networks Windows, Linux, Unix and others.
- Delivers comprehensive features at low cost maximizing your ROI (return on investment).
- Highly effective. Has won numerous industry awards. Beat Cisco and Checkpoint in InfoWorld magazine product review, Beat IBM and Computer Associates in Linux World for Best Security Application.
- Integrated management platform features an intuitive browser-based interface and one-step updates for rapid deployment and easy management.
- Can be installed in under 15 minutes or purchased pre-installed on security appliances.
- Can start with firewall, VPN and spam protection and add other security applications as needed, seamlessly.
- Runs as a dedicated application server on top of a hardened operating system, which relieves operating system management headaches.
- Runs on systems ranging from small devices up to large multi-processor systems utilizing gigabytes of memory.
- Redundant systems can be configured to provide high availability and automatic failover in case of hardware or network failures.
- Load balancing improves performance - traffic shaping can set priorities by network, service and protocol.
- Logging, automatic backup, and diagnostic tools support high reliability.
- Free online evaluation workshop to get you started.
Enhancements:
- Major New Things:
- Intrusion Protection Performance
- Uses new version of the IPS engine
- Scales massively when used with Multi-Core CPU/Appliances
- Real-Time Bandwidth Monitor
- New Interface utilization bars on Dashboard (setup scale via QOS)
- Click for detailed overview as to "whats happening in my network right now"
- Import/Export Widget
- Gives the ability to work with manual lists for many features/fields
- Useful to import a large blacklist (for example) into the URL Blacklist
- Can been seen in many user-input boxes in Web, Mail and more. (Green Up/Down Arrows)
- Clone Objects
- Easily duplicate existing objects for quick re-use.
- Supported in most places for many objects (Definitions, Services, Certain Profiles/Actions)
- Extended Network Security Reporting
- Added Detailed Packet Filter/Firewall Reports
- Added Detailed IM/P2P Reports
- Reputation Support for Web Security
- Allows use of the trustedsource.org reputation for Web Filtering
- Documentation coming, for now visit their site/FAQ for more info on reputations
- DHCP Improvements
- Automatically map a current lease to a static assignment
- Limit DHCP leases to those with static assignments only
- Configurable DHCP lease time
- Servers retain configuration when enabled/disabled
- Multicast Routing Daemon
- PIM-SM Routing support
- More documentation on this implementation to come. Experiment with it and if it solves your needs.
- Other New Things:
- Windows SSL VPN Upgraded - New Client which supports X64 and many other options (download again via the UserPortal)
- Improved HTTP Caching - Increases hit/usage rates and makes the cache more effective.
- Quarantine/UserPortal Usability - Adds navigation to the bottom (supplementing the existing controls at the top), large amounts (250-1000) of displayed items per page, and sorting by subject line.
- Default Definition for "Internet" - Allows to specify "Internet" as an object which will exclude internal network(s) to aid policy creation (0.0.0.0/0 on Gateway interface)
- Customizable Shortcuts - Change the default Ctrl assignments to fit your preference
- Improved Definition/Services Sidebar - Mouseover now instantly shows full name and extended info to aid identifying desired object for drag n drop.
- User List shows static IPs - if assigned/configured (no need to edit in order to view)
- Live Log Negation - use to filter live logs to not show lines that match "-" entries i.e. -test to remove lines containing "test"
- Console/SSH Logins Trigger a notification - provides admin the needed insight when accessed.
- Instant Email Backup - Button for every created backup file which allows it to be sent immediately via email to configured addresses
- Custom text for notifications - Allows easier identification of which installation is sending the message. Especially useful if managing multiple sites using notifiers.
- Test NTP Sync - Button to immediately poll the configured NTP server
- Automatic Backup before Up2Date install
- Configurable Default for Lists - Allows for the amount of items per page (Packet Filter Rules, or anywhere there is a number amounts drop down) to have a larger default view
- Cluster/HA Serial Number View - Information on connected units made easier
- Schedule Firmware Installation - When an Up2Date for Firmware is available, you can schedule it to auto-install at a certain time (not a recurring setting)
- WebAdmin Network Section Split - Now two sections; "Network" and "Network Services" for usability.
- Search Boxes Retain Data - No need to re-enter query when returning from a drill down/result click.
- System Restart Reason - Allows logging of "why was system restarted" in the notification
- Group Tool tips for Members - Easily discern Network/Service Group members without having to edit in order to view
- Reporting Exclusions - Used to remove unwanted entries from various reports (such as Google-analytics from Web Security tables
- Log Flag for NAT Rules - Similar to packet filter, tells you which NAT rule was matched as part of traffic handling
- Masquerading for Additional IP Addresses - Allows the use of Masquerading (vs. just SNAT) for additional IPs bound to an interface
- Support for Multiple Authentication Servers - The authentication server section has been redesigned to support fallback/failover in an easier format, with many usability improvements
- SNMP MIB - Downloadable via the SNMP section of WebAdmin
- Up2date Status Reworked - Clarifies the current status of a Firmware Up2date to avoid confusion regarding the availability, download progress etc...of an issued Up2date.
- Inline/Snap Report Links - Directly moves the Admin to the relevant details report when browsing the embedded daily reports located throughout WebAdmin
- Global POP3 Sender Blacklist - Quarantined as "other" in the QM/EUP
- Dashboard RSS Feed - Provides visibility to select Astaro-issued items via WebAdmin
- Other magic features, enhancements, and usability improvements
Added: 2009-05-30 License: Free for non-commerc... Price: USD290.00
13 downloads
Finance::Quote::Yahoo::Europe 1.12
Finance::Quote::Yahoo::Europe is a Perl module that fetch quotes from Yahoo Europe. more>>
Finance::Quote::Yahoo::Europe is a Perl module that fetch quotes from Yahoo Europe.
SYNOPSIS
use Finance::Quote;
$q = Finance::Quote->new;
%info = $q->fetch("europe","12150.PA"); # Failover to other methods ok.
%info = $q->fetch("yahoo_europe","12150.PA"); # Use this module only.
This module fetches information from Yahoo Europe. Symbols should be provided in the format "SYMBOL.EXCHANGE", where the exchange code is one of the following:
PA - Paris
BC - Barcelona
BE - Berlin
BI - Bilbao
BR - Breme
CO - Copenhagen
D - Dusseldorf
F - Frankfurt
H - Hamburg
HA - Hanover
L - London
MA - Madrid
MC - Madrid (M.C.)
MI - Milan
MU - Munich
O - Oslo
ST - Stockholm
SG - Stuttgart
VA - Valence
VI - Vienna
DE - Xetra (was FX)
This module provides both the "europe" and "yahoo_europe" methods. The "europe" method should be used if failover methods are desirable. The "yahoo_europe" method should be used you desire to only fetch information from Yahoo Europe.
This module is loaded by default by Finance::Quote, but can be loaded explicitly by specifying the parameter "Yahoo::Europe" to Finance::Quote->new().
Information obtained by this module may be covered by Yahoos terms and conditions. See http://finance.uk.yahoo.com/ for more details.
<<lessSYNOPSIS
use Finance::Quote;
$q = Finance::Quote->new;
%info = $q->fetch("europe","12150.PA"); # Failover to other methods ok.
%info = $q->fetch("yahoo_europe","12150.PA"); # Use this module only.
This module fetches information from Yahoo Europe. Symbols should be provided in the format "SYMBOL.EXCHANGE", where the exchange code is one of the following:
PA - Paris
BC - Barcelona
BE - Berlin
BI - Bilbao
BR - Breme
CO - Copenhagen
D - Dusseldorf
F - Frankfurt
H - Hamburg
HA - Hanover
L - London
MA - Madrid
MC - Madrid (M.C.)
MI - Milan
MU - Munich
O - Oslo
ST - Stockholm
SG - Stuttgart
VA - Valence
VI - Vienna
DE - Xetra (was FX)
This module provides both the "europe" and "yahoo_europe" methods. The "europe" method should be used if failover methods are desirable. The "yahoo_europe" method should be used you desire to only fetch information from Yahoo Europe.
This module is loaded by default by Finance::Quote, but can be loaded explicitly by specifying the parameter "Yahoo::Europe" to Finance::Quote->new().
Information obtained by this module may be covered by Yahoos terms and conditions. See http://finance.uk.yahoo.com/ for more details.
Download (0.090MB)
Added: 2006-12-06 License: Perl Artistic License Price:
1053 downloads
Direct Access Provider Library 3.03
Direct Access Provider Library is a transport-independent, platform-independent, high-performance API. more>>
Direct Access Provider Library in short DAPL is a transport-independent, platform-independent, high-performance API for using the remote direct memory access (RDMA) capabilities of modern interconnect technologies such as InfiniBand, the Virtual Interface Architecture, and iWARP.
This is the reference implementation of that specification by the DAT Collaborative who maintain the DAPL API.
Enhancements:
- Support was added for new IB verbs client register event.
- Some problems supporting create qp without recv cq handle or recv qp resources were fixed.
- Some timeout and long disconnect delay issues exposed during scalability tests were fixed.
- Minor build problems were fixed.
- Support for multiple IB devices was added to dat.conf to support IPoIB HA failover.
- Support for returning local and remote port information was added.
- The RPM spec file was cleaned up.
- Enviroment variables to configure connection management timers were added.
<<lessThis is the reference implementation of that specification by the DAT Collaborative who maintain the DAPL API.
Enhancements:
- Support was added for new IB verbs client register event.
- Some problems supporting create qp without recv cq handle or recv qp resources were fixed.
- Some timeout and long disconnect delay issues exposed during scalability tests were fixed.
- Minor build problems were fixed.
- Support for multiple IB devices was added to dat.conf to support IPoIB HA failover.
- Support for returning local and remote port information was added.
- The RPM spec file was cleaned up.
- Enviroment variables to configure connection management timers were added.
Download (5.8MB)
Added: 2007-07-25 License: GPL (GNU General Public License) Price:
831 downloads
Games::Tournament::RoundRobin 0.01
Games::Tournament::RoundRobin is a Perl module for Round-Robin Tournament Schedule Pairings. more>>
Games::Tournament::RoundRobin is a Perl module for Round-Robin Tournament Schedule Pairings.
SYNOPSIS
$schedule = Games::Tournament::RoundRobin->new;
$pairings = $schedule->indexesInRound($roundm);
$round = $schedule->meeting($member1, [$member2, $member3]);
...
Every member of a league of 2n players can be paired with every other member in 2n-1 rounds.
If the league members are (Inf, 1 .. 2n-1), then in round i, i can be paired with Inf, and a can meet b, where a+b = 2i (mod 2n-1).
METHODS
new
Games::Tournament::RoundRobin->new( v => 5, league => [Ha, Be, He])
Games::Tournament::RoundRobin->new( league => {A => $a, B => $b, C => $c})
where v (optional) is the number of league members, and league (optional) is a list (or a hash) reference to the individual unique league members. One of v, or league (which takes precedence) is necessary, and if league is not given, the members are identified by the numbers 0 .. n-1.
If the league is a list (or hash) of n objects, they should be instances of a class that overloads both string quoting with a name method and arithmetical operations with an index method. The index method, called on the n objects in order, should return the n numbers, 0 .. n-1, and in that order if they are presented as an array. If they are presented as a hash, the hash is stored internally as an array and the keys are discarded.
If the league is a list of strings or numbers, indexes are constructed for the values on the basis of their positions in the list, and if a hash of strings or numbers, on the basis of the lexicographic order of their keys. Each string is expected to be unique.
If n is odd, an additional n-1, Bye or object (a Games::League::Member object, by default) member, depending on the type of the first member in the league, is added at the end and n is increased by 1.
indexesInRound
$schedule->indexesInRound($m)
Returns an array reference of the pairings in round $m. This method is useful if you are using numbers to represent your league members. It is not so useful if you are using strings or objects and you dont know their index numbers. Positions in the array represent members. The values represent their partners. Each member is thus represented twice.
roundsInTournament
$t = $schedule-> roundsInTournament;
$round1 = $t[0];
$inRound1FourthWith = $t->[0]->[3];
$inLastRoundLastWith = $$t[-1][-1];
Returns, as a reference to an array of arrays, the pairings in all rounds of the tournament. This method is useful if you are using the algorithm indexes.
partner
$schedule->partner($member, $m)
Returns the partner of $member in round $m.
membersInRound
$schedule->membersInRound($m)
Returns an hash reference of the pairings in round $m. This method is useful if you are using strings or objects. Keys in the hash represent league members. If the league members are objects, their names are used as keys. If 2 names are the same, the names are changed to $name.1, $name.2 etc. The values are their partners. Each player is thus represented twice.
memberSchedule
$schedule->memberSchedule($member)
Returns, as an array reference, the partners who $member is matched with in the order in which they meet, ie round by round.
meeting
$schedule->meeting($member,$partner)
Returns the rounds (TODO and the venue) at which $member meets $partner.
meetings
$schedule->meetings($member1,[$member2,$member3,...])
Returns, as an array reference, the rounds (TODO and the venue) at which $member1 meets $member2, $member3, ...
index
$schedule->index($member)
Returns $members index, the number which is used to pair it with other members. The index is the position, 0..n-1, of the $member in the league argument to the constructor (if an array) or the constructed array (if a hash.)
If $member is not a member of the array, or is itself an index, undef is returned.
member
$schedule->member($index)
$schedule->member($name)
$bye = $schedule->member( $schedule->size-1 )
Returns the member represented by $index, a number which ranges from 0..n-1, or by $name, a string. If there is no such member, undef is returned.
partners
$schedule->partners($index)
$schedule->partners($name)
Returns an array reference of all the partners of the $indexed or $named member, in index order, or the order in the league argument.
realPartners
$schedule->realPartners($index)
Returns an array reference of all the partners of the $indexed member, excluding the Bye member. Dont use this if you have no Bye member, as it just leaves off the last member.
size
$schedule->size
Returns the number of members in the round robin. Sometimes this may not be the same as the number of league members specified, because the array of league members takes precedence if supplied, and a bye is added if the number is odd.
rounds
$schedule->rounds
Returns the number of rounds in the round robin. This equals the number of league members, minus 1.
<<lessSYNOPSIS
$schedule = Games::Tournament::RoundRobin->new;
$pairings = $schedule->indexesInRound($roundm);
$round = $schedule->meeting($member1, [$member2, $member3]);
...
Every member of a league of 2n players can be paired with every other member in 2n-1 rounds.
If the league members are (Inf, 1 .. 2n-1), then in round i, i can be paired with Inf, and a can meet b, where a+b = 2i (mod 2n-1).
METHODS
new
Games::Tournament::RoundRobin->new( v => 5, league => [Ha, Be, He])
Games::Tournament::RoundRobin->new( league => {A => $a, B => $b, C => $c})
where v (optional) is the number of league members, and league (optional) is a list (or a hash) reference to the individual unique league members. One of v, or league (which takes precedence) is necessary, and if league is not given, the members are identified by the numbers 0 .. n-1.
If the league is a list (or hash) of n objects, they should be instances of a class that overloads both string quoting with a name method and arithmetical operations with an index method. The index method, called on the n objects in order, should return the n numbers, 0 .. n-1, and in that order if they are presented as an array. If they are presented as a hash, the hash is stored internally as an array and the keys are discarded.
If the league is a list of strings or numbers, indexes are constructed for the values on the basis of their positions in the list, and if a hash of strings or numbers, on the basis of the lexicographic order of their keys. Each string is expected to be unique.
If n is odd, an additional n-1, Bye or object (a Games::League::Member object, by default) member, depending on the type of the first member in the league, is added at the end and n is increased by 1.
indexesInRound
$schedule->indexesInRound($m)
Returns an array reference of the pairings in round $m. This method is useful if you are using numbers to represent your league members. It is not so useful if you are using strings or objects and you dont know their index numbers. Positions in the array represent members. The values represent their partners. Each member is thus represented twice.
roundsInTournament
$t = $schedule-> roundsInTournament;
$round1 = $t[0];
$inRound1FourthWith = $t->[0]->[3];
$inLastRoundLastWith = $$t[-1][-1];
Returns, as a reference to an array of arrays, the pairings in all rounds of the tournament. This method is useful if you are using the algorithm indexes.
partner
$schedule->partner($member, $m)
Returns the partner of $member in round $m.
membersInRound
$schedule->membersInRound($m)
Returns an hash reference of the pairings in round $m. This method is useful if you are using strings or objects. Keys in the hash represent league members. If the league members are objects, their names are used as keys. If 2 names are the same, the names are changed to $name.1, $name.2 etc. The values are their partners. Each player is thus represented twice.
memberSchedule
$schedule->memberSchedule($member)
Returns, as an array reference, the partners who $member is matched with in the order in which they meet, ie round by round.
meeting
$schedule->meeting($member,$partner)
Returns the rounds (TODO and the venue) at which $member meets $partner.
meetings
$schedule->meetings($member1,[$member2,$member3,...])
Returns, as an array reference, the rounds (TODO and the venue) at which $member1 meets $member2, $member3, ...
index
$schedule->index($member)
Returns $members index, the number which is used to pair it with other members. The index is the position, 0..n-1, of the $member in the league argument to the constructor (if an array) or the constructed array (if a hash.)
If $member is not a member of the array, or is itself an index, undef is returned.
member
$schedule->member($index)
$schedule->member($name)
$bye = $schedule->member( $schedule->size-1 )
Returns the member represented by $index, a number which ranges from 0..n-1, or by $name, a string. If there is no such member, undef is returned.
partners
$schedule->partners($index)
$schedule->partners($name)
Returns an array reference of all the partners of the $indexed or $named member, in index order, or the order in the league argument.
realPartners
$schedule->realPartners($index)
Returns an array reference of all the partners of the $indexed member, excluding the Bye member. Dont use this if you have no Bye member, as it just leaves off the last member.
size
$schedule->size
Returns the number of members in the round robin. Sometimes this may not be the same as the number of league members specified, because the array of league members takes precedence if supplied, and a bye is added if the number is odd.
rounds
$schedule->rounds
Returns the number of rounds in the round robin. This equals the number of league members, minus 1.
Download (0.010MB)
Added: 2007-01-05 License: Perl Artistic License Price:
1024 downloads
Secleted [ 0 ] software to compare
- Page: 1 of 2
- 1
- 2
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above ha search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed