condition
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 301
CSS::SAC::ConditionFactory 0.06
CSS::SAC::ConditionFactory Perl module contains the default ConditionFactory. more>>
CSS::SAC::ConditionFactory Perl module contains the default ConditionFactory.
SYNOPSIS
my $cf = CSS::SAC::ConditionFactory->new;
my $cond1 = $cf->create_foo_condition;
my $cond2 = $cf->create_bar_condition;
This is the default ConditionFactory for CSS::SAC. It creates conditions of all types defined in SAC. You may wish to subclass or replace the default ConditionFactory in order to get your own condition objects.
I plan on adding more flexibility to this factory so that one could tell it the classes to use for various conditions, that would avoid enforcing subclassing/recoding for people that only want to replace a family of factory methods.
I know that some of the method names are quite lengthy, but given the great number of possible conditions it helps to have descriptive names.
METHODS
These define the interface that must be adhered to by ConditionFactories. The Java names (given in parens) work too, though the Perl ones are recommended.
CSS::SAC::ConditionFactory->new or $cf->new
Creates a new condition factory object.
$cf->create_and_condition($first,$second) (createAndCondition)
creates a combinator condition of type and
$cf->create_attribute_condition($lname,$ns,$specified,$value) (createAttributeCondition)
creates an attr condition
$cf->create_begin_hyphen_attribute_condition($lname,$ns,$specified,$value) (createBeginHyphenAttributeCondition)
creates a attr condition of type bh
$cf->create_class_condition($ns,$value) (createClassCondition)
creates a attr condition of type class
$cf->create_content_condition($data) (createContentCondition)
creates a content condition
$cf->create_id_condition($value) (createIdCondition)
creates a attr condition of type id
$cf->create_lang_condition($lang) (createLangCondition)
creates a lang condition
$cf->create_negative_condition($cond) (createNegativeCondition)
creates a negative condition
$cf->create_one_of_attribute_condition($lname,$ns,$specified,$value) (createOneOfAttributeCondition)
creates a attr condition of type id
$cf->create_only_child_condition() (createOnlyChildCondition)
creates a only-child condition
$cf->create_only_type_condition() (createOnlyTypeCondition)
creates a only-type condition
$cf->create_or_condition($first,$second) (createOrCondition)
creates a combinator condition of type or
$cf->create_positional_condition($position,$type_node,$same_type) (createPositionalCondition)
creates a positional condition
$cf->create_pseudo_class_condition($ns,$value) (createPseudoClassCondition)
creates a attr condition of type pseudo class
<<lessSYNOPSIS
my $cf = CSS::SAC::ConditionFactory->new;
my $cond1 = $cf->create_foo_condition;
my $cond2 = $cf->create_bar_condition;
This is the default ConditionFactory for CSS::SAC. It creates conditions of all types defined in SAC. You may wish to subclass or replace the default ConditionFactory in order to get your own condition objects.
I plan on adding more flexibility to this factory so that one could tell it the classes to use for various conditions, that would avoid enforcing subclassing/recoding for people that only want to replace a family of factory methods.
I know that some of the method names are quite lengthy, but given the great number of possible conditions it helps to have descriptive names.
METHODS
These define the interface that must be adhered to by ConditionFactories. The Java names (given in parens) work too, though the Perl ones are recommended.
CSS::SAC::ConditionFactory->new or $cf->new
Creates a new condition factory object.
$cf->create_and_condition($first,$second) (createAndCondition)
creates a combinator condition of type and
$cf->create_attribute_condition($lname,$ns,$specified,$value) (createAttributeCondition)
creates an attr condition
$cf->create_begin_hyphen_attribute_condition($lname,$ns,$specified,$value) (createBeginHyphenAttributeCondition)
creates a attr condition of type bh
$cf->create_class_condition($ns,$value) (createClassCondition)
creates a attr condition of type class
$cf->create_content_condition($data) (createContentCondition)
creates a content condition
$cf->create_id_condition($value) (createIdCondition)
creates a attr condition of type id
$cf->create_lang_condition($lang) (createLangCondition)
creates a lang condition
$cf->create_negative_condition($cond) (createNegativeCondition)
creates a negative condition
$cf->create_one_of_attribute_condition($lname,$ns,$specified,$value) (createOneOfAttributeCondition)
creates a attr condition of type id
$cf->create_only_child_condition() (createOnlyChildCondition)
creates a only-child condition
$cf->create_only_type_condition() (createOnlyTypeCondition)
creates a only-type condition
$cf->create_or_condition($first,$second) (createOrCondition)
creates a combinator condition of type or
$cf->create_positional_condition($position,$type_node,$same_type) (createPositionalCondition)
creates a positional condition
$cf->create_pseudo_class_condition($ns,$value) (createPseudoClassCondition)
creates a attr condition of type pseudo class
Download (0.037MB)
Added: 2007-06-20 License: Perl Artistic License Price:
856 downloads
lm-monitor 1.0
lm-monitor is a daemon that run sensors at a defined interval (15 seconds by default) and checks the output. more>>
lm-monitor is a daemon that run sensors at a defined interval (15 seconds by default) and checks the output
If a sensor value has gone outside the defined limit since the last reading, an email message is sent to one or more administrators, alerting them about the condition so they can take appropriate action.
lm-monitor requires the lm-sensors package and a working email configuration, including the "mail" command.
Enhancements:
- Found and corrected a bug in MailText() that generated unvalid indices into SData member arrays.
- Wrote a script to create an unprivileged system account.
- Added code to drop root privilegies and run as the system account mentioned above.
- The install target creates a separate directory for lm-monitor in $(PIDDIR) (normally /var/run), and sets owner and group to lm-monitor. This is neccesary for lm-monitor to be able to remove the pidfile on exit, after having dropped root privilegies.
- Corrected the manpage regarding the --verify-config option.
- Added --help and --version as valid options (previously only -h and -v was accepted).
- Found and corrected a bug in EvaluateAlarm() where newBits was used instead of oldBits when composing mail messages for restored alarms.
<<lessIf a sensor value has gone outside the defined limit since the last reading, an email message is sent to one or more administrators, alerting them about the condition so they can take appropriate action.
lm-monitor requires the lm-sensors package and a working email configuration, including the "mail" command.
Enhancements:
- Found and corrected a bug in MailText() that generated unvalid indices into SData member arrays.
- Wrote a script to create an unprivileged system account.
- Added code to drop root privilegies and run as the system account mentioned above.
- The install target creates a separate directory for lm-monitor in $(PIDDIR) (normally /var/run), and sets owner and group to lm-monitor. This is neccesary for lm-monitor to be able to remove the pidfile on exit, after having dropped root privilegies.
- Corrected the manpage regarding the --verify-config option.
- Added --help and --version as valid options (previously only -h and -v was accepted).
- Found and corrected a bug in EvaluateAlarm() where newBits was used instead of oldBits when composing mail messages for restored alarms.
Download (0.021MB)
Added: 2006-09-26 License: GPL (GNU General Public License) Price:
1130 downloads
libcontain 0.2 Alpha1
libcontain library provides a large and growing number of fast and thread-safe containter objects written in C and C++. more>>
libcontain library provides a large and growing number of fast and thread-safe containter objects written in C and C++.
The libcontain library now provides the following container types:
- a series of hash tables libcontain includes the hash table implementation from GNU glib and a hash implementation in C++ it inherited from the libhash library it originates from. This latter has been rendered thread-safe in the 0.2 release and implements a linear hashing algorithm. A single hash table implementation that will replace them both is on the drawing boards and is intended to be thread-safe and non-blocking.
- an array (vector) implementation
libcontain currently includes a non-blocking array implementation. However, this implementation presents a race-condition in concurrent calls to any of its writing functions if the array is in the process of being resized. There is currently no known non-blocking way to solve this race condition. Help is welcome in this area.
- a binomial tree
The binomial tree provided by libcontain does not provide any algorithmic logic in its implementation: it is a generic container that can be used as the basis for other container implementations, such as a heap or a map (as a matter of fact, the heap and the map are both based on this binomial tree)
- a heap
libcontain provides an automatically sorting heap implementation that (obviously) uses a heap sort to sort the elements it contains. Unfortunately, the heap implementation is not non-blocking (although bases on a non-blocking binomial tree implementation). It contains four levels of locks: a reader count and a write lock at the level of the nodes, and a reader count and a write lock at the level of the container. The locks are posed on the container for as short a time as possible so at to prevent the progress of the algorithm to block too long. If anyone knows of a non-blocking heap algorithm, input is more than welcome.
- a list
libcontain provides a non-blocking list implementation based on an algorithm by M.M. Micheal (also the inventor of Safe Memory Reclamation on which libmemory is based).
a map
The map implementation included in libcontain is based on the binomial tree implementation. Unlike some implementations based on binary trees, this implementation stores values in each node of the tree (not just the leaf nodes) and therefore allows a more memory-efficient way to store information than hashes and other map implementations. Also, the map implementation does not use a "less" function but uses a three-way comparison to compare keys (much like the helper function used by qsort). The implementation is almost (but not quite) non-blocking: for most intents and purposes, there are no real locks: read and write operations may be re-directed along a branch of the binomial tree if a node that they traverse is being deleted, but will not block for that. However, a remove operation will wait for another remove operation to finish if it traverses a node being removed.
- a queue
a non-blocking queue implementation is provided
- a stack
a non-blocking stack implementation is also provided
In future versions, the hash implementation will be replaced by a non-blocking one and the remaining problems with the existing containers will (hopefully) be solved. Help is also needed to write the architecture-dependant code for non-IA32 platforms such as Sparc.
Enhancements:
- The 0.2 release introduces number of important new features including a heap and a map, both based on a lock-free binomial tree. It also includes the required memory management to make the containters impervious to the ABA problem and thus truly thread-safe.
<<lessThe libcontain library now provides the following container types:
- a series of hash tables libcontain includes the hash table implementation from GNU glib and a hash implementation in C++ it inherited from the libhash library it originates from. This latter has been rendered thread-safe in the 0.2 release and implements a linear hashing algorithm. A single hash table implementation that will replace them both is on the drawing boards and is intended to be thread-safe and non-blocking.
- an array (vector) implementation
libcontain currently includes a non-blocking array implementation. However, this implementation presents a race-condition in concurrent calls to any of its writing functions if the array is in the process of being resized. There is currently no known non-blocking way to solve this race condition. Help is welcome in this area.
- a binomial tree
The binomial tree provided by libcontain does not provide any algorithmic logic in its implementation: it is a generic container that can be used as the basis for other container implementations, such as a heap or a map (as a matter of fact, the heap and the map are both based on this binomial tree)
- a heap
libcontain provides an automatically sorting heap implementation that (obviously) uses a heap sort to sort the elements it contains. Unfortunately, the heap implementation is not non-blocking (although bases on a non-blocking binomial tree implementation). It contains four levels of locks: a reader count and a write lock at the level of the nodes, and a reader count and a write lock at the level of the container. The locks are posed on the container for as short a time as possible so at to prevent the progress of the algorithm to block too long. If anyone knows of a non-blocking heap algorithm, input is more than welcome.
- a list
libcontain provides a non-blocking list implementation based on an algorithm by M.M. Micheal (also the inventor of Safe Memory Reclamation on which libmemory is based).
a map
The map implementation included in libcontain is based on the binomial tree implementation. Unlike some implementations based on binary trees, this implementation stores values in each node of the tree (not just the leaf nodes) and therefore allows a more memory-efficient way to store information than hashes and other map implementations. Also, the map implementation does not use a "less" function but uses a three-way comparison to compare keys (much like the helper function used by qsort). The implementation is almost (but not quite) non-blocking: for most intents and purposes, there are no real locks: read and write operations may be re-directed along a branch of the binomial tree if a node that they traverse is being deleted, but will not block for that. However, a remove operation will wait for another remove operation to finish if it traverses a node being removed.
- a queue
a non-blocking queue implementation is provided
- a stack
a non-blocking stack implementation is also provided
In future versions, the hash implementation will be replaced by a non-blocking one and the remaining problems with the existing containers will (hopefully) be solved. Help is also needed to write the architecture-dependant code for non-IA32 platforms such as Sparc.
Enhancements:
- The 0.2 release introduces number of important new features including a heap and a map, both based on a lock-free binomial tree. It also includes the required memory management to make the containters impervious to the ABA problem and thus truly thread-safe.
Download (0.37MB)
Added: 2006-01-19 License: GPL (GNU General Public License) Price:
1373 downloads
mod_tee
mod_tee serves to clone an document as it is served. more>>
mod_tee serves to "clone" an document as it is served. mod_tee was hacked up as a quick-and-dirty fix when a Site Valet user complained of problems saving a Valet report: mod_tee now serves to enable registered users to request email copies of any report generated.
The current status is "works for us", but it is not of release quality. It is less-than-complete in several respects. Its probably not a good idea to use it operationally unless youre prepared to get your hands dirty fixing any problems, or pay for support.
Configuration
TeeType FILE|PIPE|SMTP [Destination]
Where to send the cloned output:
FILE - save to a destination file. For testing only!
PIPE - pipes output to a destination program with popen.
SMTP - sends cloned output directly to email at a destination mailserver. Implements SMTP handshake with no error checking - so its a dangerous option!
TeeCondition query|cookie|path|header|env|true|false [key] [val]
Defines a condition for mod_tee to be activated for a request. Values true and false are unconditional, while the others define a QUERY_STRING key, a Cookie, a PATH_INFO component, a request header or an environment variable to trigger the tee. Conditional values require a key. If val is defined then key must match it; otherwise any value of key will activate the tee.
TeeHeader key value
Defines an RFC822-style header to be inserted in front of the body of the page.
<<lessThe current status is "works for us", but it is not of release quality. It is less-than-complete in several respects. Its probably not a good idea to use it operationally unless youre prepared to get your hands dirty fixing any problems, or pay for support.
Configuration
TeeType FILE|PIPE|SMTP [Destination]
Where to send the cloned output:
FILE - save to a destination file. For testing only!
PIPE - pipes output to a destination program with popen.
SMTP - sends cloned output directly to email at a destination mailserver. Implements SMTP handshake with no error checking - so its a dangerous option!
TeeCondition query|cookie|path|header|env|true|false [key] [val]
Defines a condition for mod_tee to be activated for a request. Values true and false are unconditional, while the others define a QUERY_STRING key, a Cookie, a PATH_INFO component, a request header or an environment variable to trigger the tee. Conditional values require a key. If val is defined then key must match it; otherwise any value of key will activate the tee.
TeeHeader key value
Defines an RFC822-style header to be inserted in front of the body of the page.
Download (0.012MB)
Added: 2006-04-20 License: GPL (GNU General Public License) Price:
1285 downloads
DBIx::Timeout 1.01
DBIx::Timeout is a Perl module that provides a safe method of timing out DBI requests. more>>
DBIx::Timeout is a Perl module that provides a safe method of timing out DBI requests.
The method described in the DBI documentation uses unsafe signals, which may cause memory corruption. DBIx::Timeout instead uses a separate timeout process.
The problem with using POSIX sigaction() is that it relies on unsafe signals to work. Unsafe signals are well known to cause instability. For example, imagine your DB client code is in the middle of updating some global state when the signal arrives. That global state could be left in an inconsitent state, just wait for the next time it is needed to cause problems. Since this will likely occur far from the cause, and only ocur rarely, it can be a very difficult problem to track down.
Instead, this module:
- Forks a child process which sleeps for $timeout seconds.
- Runs your long-running query in the parent process.
- If the parent process finishes first it kills the child and returns.
- If the child process wakes up it kills the parents DB thread and exits with a code so the parent knows it was timed out.
NOTE: After this call your database connection may be killed even if no timeout occurred. This is due to a race condition - the child may wake up just as parent process finishes. Patches addressing this bug are welcome. Until this is fixed you should be ready to reconnect after call_with_timeout().
<<lessThe method described in the DBI documentation uses unsafe signals, which may cause memory corruption. DBIx::Timeout instead uses a separate timeout process.
The problem with using POSIX sigaction() is that it relies on unsafe signals to work. Unsafe signals are well known to cause instability. For example, imagine your DB client code is in the middle of updating some global state when the signal arrives. That global state could be left in an inconsitent state, just wait for the next time it is needed to cause problems. Since this will likely occur far from the cause, and only ocur rarely, it can be a very difficult problem to track down.
Instead, this module:
- Forks a child process which sleeps for $timeout seconds.
- Runs your long-running query in the parent process.
- If the parent process finishes first it kills the child and returns.
- If the child process wakes up it kills the parents DB thread and exits with a code so the parent knows it was timed out.
NOTE: After this call your database connection may be killed even if no timeout occurred. This is due to a race condition - the child may wake up just as parent process finishes. Patches addressing this bug are welcome. Until this is fixed you should be ready to reconnect after call_with_timeout().
Download (0.006MB)
Added: 2006-09-22 License: Perl Artistic License Price:
1127 downloads
Arguvision R0
Arguvision is an enterprise class video surveillance system. more>>
Arguvision project is an enterprise class video surveillance system.
Arguvision is based on a distributed Linux or Unix cluster architecture, with up to 1000 cameras per single cluster with aggregation capability and instant access to recorded or live video.
Main features:
- Up to 1000 video channels per cluster - unlimited clusters
- 6 channels at 720x480 at 30 frames/sec per video grabber unit
- NTSC or PAL video input
- M-JPEG compression 1:15
- 1TB of storage for 10 days per camera at full resolution in high motion area
- Export video using AVI format , or single images using JPEG format
- Real-time view from any camera using client software
- Secure authenticated user access (SSL) based on user role
- Instant browse and archive search by date/time or alarm condition
- Alarm event notification by e-mail or pager
- Record on pre-programmed schedule, or on alarming condition
- Alarm events generated on motion, on video loss, or by activation of an external sensor
- NTP synchronization with time standards (like US Governments NIST)
- Data storage on internal/external network devices managed by SQL RDBMS
- RDBMS capacity monitoring
- Purge obsolete video data automatically
<<lessArguvision is based on a distributed Linux or Unix cluster architecture, with up to 1000 cameras per single cluster with aggregation capability and instant access to recorded or live video.
Main features:
- Up to 1000 video channels per cluster - unlimited clusters
- 6 channels at 720x480 at 30 frames/sec per video grabber unit
- NTSC or PAL video input
- M-JPEG compression 1:15
- 1TB of storage for 10 days per camera at full resolution in high motion area
- Export video using AVI format , or single images using JPEG format
- Real-time view from any camera using client software
- Secure authenticated user access (SSL) based on user role
- Instant browse and archive search by date/time or alarm condition
- Alarm event notification by e-mail or pager
- Record on pre-programmed schedule, or on alarming condition
- Alarm events generated on motion, on video loss, or by activation of an external sensor
- NTP synchronization with time standards (like US Governments NIST)
- Data storage on internal/external network devices managed by SQL RDBMS
- RDBMS capacity monitoring
- Purge obsolete video data automatically
Download (9.0MB)
Added: 2006-02-21 License: GPL (GNU General Public License) Price:
1346 downloads
Cooperative Linux 0.6.4
Cooperative Linux is the first working free and open source method for optimally running Linux on Microsoft Windows natively. more>>
Cooperative Linux is the first working free and open source method for optimally running Linux on Microsoft Windows natively.
More generally, Cooperative Linux (short-named coLinux) is a port of the Linux kernel that allows it to run cooperatively alongside another operating system on a single machine.
For instance, it allows one to freely run Linux on Windows 2000/XP, without using a commercial PC virtualization software such as VMware, in a way which is much more optimal than using any general purpose PC virtualization software.
In its current condition, it allows us to run the KNOPPIX Japanese Edition on Windows.
<<lessMore generally, Cooperative Linux (short-named coLinux) is a port of the Linux kernel that allows it to run cooperatively alongside another operating system on a single machine.
For instance, it allows one to freely run Linux on Windows 2000/XP, without using a commercial PC virtualization software such as VMware, in a way which is much more optimal than using any general purpose PC virtualization software.
In its current condition, it allows us to run the KNOPPIX Japanese Edition on Windows.
Download (2.6MB)
Added: 2006-07-02 License: GPL (GNU General Public License) Price:
703 downloads
The amaroK bindings for Python 0.1.0
The amaroK bindings for Python is a fairly complete amaroK remote control class. more>>
The amaroK bindings for Python is a fairly complete amaroK remote control class. It is extremely useful for amaroK scripts and other applications. Basically, you can remote control amaroK by calling methods from an amaroKProxy instance.
In addition, it implements the Observer/Observable pattern so you can deal with events in an object-oriented, loosely coupled fashion. Even better, you can call an amaroKProxy instances collection.getSong(filename) method to get a Song object, with track, artist, album name, and elegant "Artist - Track name" strings.
Nearly all DCOP functions for communication with amaroK are implemented.
It will use KDE bindings DCOP module if available, otherwise it will default to the command-line DCOP dcop command, through python-commandsplus. If using KDE bindings, a slave process is spawned, and IPC is used to marshal and unmarshal function calls, so as to not contaminate your applications sys.modules with KDEs Python modules. This all happens automatically in the background.
To use it, you import the module in your script and instantiate an amaroKProxy instance, then call your instances startMonitoring() method, which will start reading from standard input, monitoring for amaroKs events. You can then sleep(1) until your instances .isAlive() method returns False (which means amaroK is now gone.
amaroKProxy is an Observable class, and so are its members:
- player
- contextBrowser
This means that you can implement Observer objects or Threads in your amaroK script, and have them be notified of amaroK events, instead of having to read standard input and act accordingly (plus error-prone exceptional condition handling).
<<lessIn addition, it implements the Observer/Observable pattern so you can deal with events in an object-oriented, loosely coupled fashion. Even better, you can call an amaroKProxy instances collection.getSong(filename) method to get a Song object, with track, artist, album name, and elegant "Artist - Track name" strings.
Nearly all DCOP functions for communication with amaroK are implemented.
It will use KDE bindings DCOP module if available, otherwise it will default to the command-line DCOP dcop command, through python-commandsplus. If using KDE bindings, a slave process is spawned, and IPC is used to marshal and unmarshal function calls, so as to not contaminate your applications sys.modules with KDEs Python modules. This all happens automatically in the background.
To use it, you import the module in your script and instantiate an amaroKProxy instance, then call your instances startMonitoring() method, which will start reading from standard input, monitoring for amaroKs events. You can then sleep(1) until your instances .isAlive() method returns False (which means amaroK is now gone.
amaroKProxy is an Observable class, and so are its members:
- player
- contextBrowser
This means that you can implement Observer objects or Threads in your amaroK script, and have them be notified of amaroK events, instead of having to read standard input and act accordingly (plus error-prone exceptional condition handling).
Download (0.033MB)
Added: 2005-12-29 License: GPL (GNU General Public License) Price:
1395 downloads
Mon.cgi 0.1 (MWI)
Mon.cgi is a CGI interface for viewing the status of a Mon service. more>>
Mon.cgi is a CGI interface for viewing the status of a Mon service.
mon is a general-purpose scheduler and alert management tool used for monitoring service availability and triggering alerts upon failure detection. mon was designed to be open and extensible in the sense that it supports arbitrary monitoring facilities and alert methods via a common interface, all of which are easily implemented with programs in C, Perl, shell, etc., SNMP traps, and special mon traps.
mon views resource monitoring as two separate tasks: the testing of a condition, and triggering an action upon failure. mon was designed to implement the testing and action-taking tasks as separate, stand-alone programs. mon is fundamentally a scheduler which executes the monitors (each test a specific condition), and calls the appropriate alerts if the monitor fails. The decision to invoke an alert is governed by logic which offers various "squelch" features and dependencies, all of which are configurable by the user.
Monitors and alerts are not a part of the core mon server, even though the distribution comes with a handful of them to get you started. This means that if a new service needs monitoring, or if a new alert is necessary, the mon server does not need to be changed. This makes mon easily extensible.
That is from Jim Trocki who wrote mon, Im currently maintaining a web interface that works with mon which was based from Arthur K. Chans original mon.cgi.
Enhancements:
- This is the initial release of the Mon Web Interface (MWI), which is the progression of the mon.cgi Web interface.
- This interface is written entirely from scratch, with full CSS and HTML W3C complacency.
- This is an alpha release: the back end code is based on the mon.cgi tree, but the interface will have features that are currently unusable.
<<lessmon is a general-purpose scheduler and alert management tool used for monitoring service availability and triggering alerts upon failure detection. mon was designed to be open and extensible in the sense that it supports arbitrary monitoring facilities and alert methods via a common interface, all of which are easily implemented with programs in C, Perl, shell, etc., SNMP traps, and special mon traps.
mon views resource monitoring as two separate tasks: the testing of a condition, and triggering an action upon failure. mon was designed to implement the testing and action-taking tasks as separate, stand-alone programs. mon is fundamentally a scheduler which executes the monitors (each test a specific condition), and calls the appropriate alerts if the monitor fails. The decision to invoke an alert is governed by logic which offers various "squelch" features and dependencies, all of which are configurable by the user.
Monitors and alerts are not a part of the core mon server, even though the distribution comes with a handful of them to get you started. This means that if a new service needs monitoring, or if a new alert is necessary, the mon server does not need to be changed. This makes mon easily extensible.
That is from Jim Trocki who wrote mon, Im currently maintaining a web interface that works with mon which was based from Arthur K. Chans original mon.cgi.
Enhancements:
- This is the initial release of the Mon Web Interface (MWI), which is the progression of the mon.cgi Web interface.
- This interface is written entirely from scratch, with full CSS and HTML W3C complacency.
- This is an alpha release: the back end code is based on the mon.cgi tree, but the interface will have features that are currently unusable.
Download (0.043MB)
Added: 2006-12-27 License: GPL (GNU General Public License) Price:
1031 downloads
Test::Version 0.02
Test::Version is a Perl module that has the role to check for VERSION information in modules. more>>
Test::Version is a Perl module that has the role to check for VERSION information in modules.
SYNOPSIS
use Test::Version;
plan tests => $num_tests;
version_ok( $file );
FUNCTIONS
version_ok( FILENAME, [EXPECTED, [NAME] ] )
version_ok requires a filename and returns one of the three values:
NO_FILE Could not find the file
NO_VERSION File had no VERSION information
VERSION_OK VERSION information exists
version_ok okays a test without an expected result if it finds VERSION information, or if an expected result is specified and it finds that condition. For instance, if you know there is no VERSION information,
version_ok( $file, NO_VERSION );
When it fails, version_ok will show error information.
The optional third argument NAME is the name of the test which version_ok passes through to Test::Builder. Otherwise, it choose a default test name "VERSION test for FILENAME".
<<lessSYNOPSIS
use Test::Version;
plan tests => $num_tests;
version_ok( $file );
FUNCTIONS
version_ok( FILENAME, [EXPECTED, [NAME] ] )
version_ok requires a filename and returns one of the three values:
NO_FILE Could not find the file
NO_VERSION File had no VERSION information
VERSION_OK VERSION information exists
version_ok okays a test without an expected result if it finds VERSION information, or if an expected result is specified and it finds that condition. For instance, if you know there is no VERSION information,
version_ok( $file, NO_VERSION );
When it fails, version_ok will show error information.
The optional third argument NAME is the name of the test which version_ok passes through to Test::Builder. Otherwise, it choose a default test name "VERSION test for FILENAME".
Download (0.005MB)
Added: 2007-05-07 License: Perl Artistic License Price:
902 downloads
Diogene87 1.0.0 RC3
Diogene87 is a powerful scheduler system for GNU/Linux. more>>
Diogene87 provides a scheduler system very powerfull for Linux operating systems.
Diogene87 is a powerful scheduler system for GNU/Linux. Diogene87 is a french project and is written in C.
Diogene87 provides a daemon dio87d which can be control with the dio87c communication utility. If you want to use a graphical user interface, please use Narcisse81.
Main features:
- centralized management : jobs can be run on local or remote servers (on TCP/IP network).
- jobs dependences : a job can wait for another to be terminated. A job can be started when an other is normally finished or aborted.
- start condition : a job can wait for a file-presence, for a manual validation or for a specified time.
- planning : a job can be planned at regular interval : every day, every month, every year...
- log of job activity : output of jobs (on console) are logged.
- job monitoring : a web interface is provide to control job execution.
- statistic for job duration : minimum, maximum and average duration.
- resource control : job queue with threshold for maximum number of running jobs allow to control access to limited ressources. Job queues can be manually opened or closed if the associated resource is not available.
Enhancements:
- This release provides an important bugfix: sometimes on Solaris systems, a core dump was generated when a job terminates.
<<lessDiogene87 is a powerful scheduler system for GNU/Linux. Diogene87 is a french project and is written in C.
Diogene87 provides a daemon dio87d which can be control with the dio87c communication utility. If you want to use a graphical user interface, please use Narcisse81.
Main features:
- centralized management : jobs can be run on local or remote servers (on TCP/IP network).
- jobs dependences : a job can wait for another to be terminated. A job can be started when an other is normally finished or aborted.
- start condition : a job can wait for a file-presence, for a manual validation or for a specified time.
- planning : a job can be planned at regular interval : every day, every month, every year...
- log of job activity : output of jobs (on console) are logged.
- job monitoring : a web interface is provide to control job execution.
- statistic for job duration : minimum, maximum and average duration.
- resource control : job queue with threshold for maximum number of running jobs allow to control access to limited ressources. Job queues can be manually opened or closed if the associated resource is not available.
Enhancements:
- This release provides an important bugfix: sometimes on Solaris systems, a core dump was generated when a job terminates.
Download (MB)
Added: 2007-07-17 License: GPL (GNU General Public License) Price:
830 downloads
Apache Portable Runtime 1.2.8
The mission of the Apache Portable Runtime (APR) project is to create and maintain software libraries. more>>
Apache Portable Runtime (APR) project mission is to create and maintain software libraries that provide a predictable and consistent interface to underlying platform-specific implementations.
The primary goal is to provide an API to which software developers may code and be assured of predictable if not identical behaviour regardless of the platform on which their software is built, relieving them of the need to code special-case conditions to work around or take advantage of platform-specific deficiencies or features.
Main features:
- Atomic operations
- Dynamic Shared Object loading
- File I/O
- Locks (mutexes, condition variables, etc)
- Memory management (high performance allocators)
- Memory-mapped files
- Multicast Sockets
- Network I/O
- Shared memory
- Thread and Process management
- Various data structures (tables, hashes, priority queues, etc)
Enhancements:
- Various bugs were fixed.
- The API compatible with version 1.2.7.
<<lessThe primary goal is to provide an API to which software developers may code and be assured of predictable if not identical behaviour regardless of the platform on which their software is built, relieving them of the need to code special-case conditions to work around or take advantage of platform-specific deficiencies or features.
Main features:
- Atomic operations
- Dynamic Shared Object loading
- File I/O
- Locks (mutexes, condition variables, etc)
- Memory management (high performance allocators)
- Memory-mapped files
- Multicast Sockets
- Network I/O
- Shared memory
- Thread and Process management
- Various data structures (tables, hashes, priority queues, etc)
Enhancements:
- Various bugs were fixed.
- The API compatible with version 1.2.7.
Download (1.0MB)
Added: 2007-06-21 License: The Apache License 2.0 Price:
870 downloads
Monsterz 0.7.0
Monsterz is a little arcade puzzle game, similar to the famous Bejeweled or Zookeeper. more>>
Monsterz is a little arcade puzzle game, similar to the famous Bejeweled or Zookeeper.
Monsterzs goal of the game is to create rows of similar monsters, either horizontally or vertically. The only allowed move is the swap of two adjacent monsters, on the condition that it creates a row of three or more. When alignments are cleared, pieces fall from the top of the screen to fill the board again. Chain reactions earn you even more points.
This game is mostly about luck, but it remains highly addictive. You have been warned. Currently three modes are available:
Classic- play against the clock and clear a given number of each monster type to reach next level.
Puzzle- clear lines of monsters to move pieces around and put together the puzzle.
Training- play against the clock in a neverending level, chose the timer difficulty and number of monsters for infinite fun.
Monsterz is completely free software, available under the terms of the WTFPL.
<<lessMonsterzs goal of the game is to create rows of similar monsters, either horizontally or vertically. The only allowed move is the swap of two adjacent monsters, on the condition that it creates a row of three or more. When alignments are cleared, pieces fall from the top of the screen to fill the board again. Chain reactions earn you even more points.
This game is mostly about luck, but it remains highly addictive. You have been warned. Currently three modes are available:
Classic- play against the clock and clear a given number of each monster type to reach next level.
Puzzle- clear lines of monsters to move pieces around and put together the puzzle.
Training- play against the clock in a neverending level, chose the timer difficulty and number of monsters for infinite fun.
Monsterz is completely free software, available under the terms of the WTFPL.
Download (2.4MB)
Added: 2006-05-12 License: WTFPL Price:
1263 downloads
Commands::Guarded 0.01
Commands::Guarded Perl package provides better scripts through guarded commands. more>>
Commands::Guarded Perl package provides better scripts through guarded commands.
SYNOPSIS
use Commands::Guarded;
my $var = 0;
step something =>
ensure { $var == 1 }
using { $var = 1 }
; # $var is now 1
step nothing =>
ensure { $var == 1 }
using { $var = 2 } # bug!
; # $var is still 1 (good thing too)
my $brokeUnless5 =
step brokenUnless5 =>
ensure { $var == 5 }
using { $var = shift }
; # nothing happens yet
print "var: $varn"; # prints 1
$brokeUnless5->do(5);
print "now var: $varn"; # prints 5
step fail =>
ensure { $var == 3 }
using { $var = 2 }
; # Exception thrown here
This module implements a deterministic, rectifying variant on Dijkstras guarded commands. Each named step is passed two blocks: an ensure block that defines a test for a necessary and sufficient condition of the step, and a using block that will cause that condition to obtain.
If step is called in void context (i.e., is not assigned to anything or used as a value), the step is run immediately, as in this pseudocode:
unless (ENSURE) {
USING;
die unless ENSURE;
}
If step is called in scalar or array context, execution is deferred and instead a Commands::Guarded object is returned, which can be executed as above using the do method. If do is given arguments, they will be passed to the ensure block and (if necessary) the using block.
The interface to Commands::Guarded is thus a hybrid of exported subroutines (see SUBROUTINES below) and non-exported methods (see METHODS).
For a detailed discussion of the reason for this modules existence, see RATIONALE below.
<<lessSYNOPSIS
use Commands::Guarded;
my $var = 0;
step something =>
ensure { $var == 1 }
using { $var = 1 }
; # $var is now 1
step nothing =>
ensure { $var == 1 }
using { $var = 2 } # bug!
; # $var is still 1 (good thing too)
my $brokeUnless5 =
step brokenUnless5 =>
ensure { $var == 5 }
using { $var = shift }
; # nothing happens yet
print "var: $varn"; # prints 1
$brokeUnless5->do(5);
print "now var: $varn"; # prints 5
step fail =>
ensure { $var == 3 }
using { $var = 2 }
; # Exception thrown here
This module implements a deterministic, rectifying variant on Dijkstras guarded commands. Each named step is passed two blocks: an ensure block that defines a test for a necessary and sufficient condition of the step, and a using block that will cause that condition to obtain.
If step is called in void context (i.e., is not assigned to anything or used as a value), the step is run immediately, as in this pseudocode:
unless (ENSURE) {
USING;
die unless ENSURE;
}
If step is called in scalar or array context, execution is deferred and instead a Commands::Guarded object is returned, which can be executed as above using the do method. If do is given arguments, they will be passed to the ensure block and (if necessary) the using block.
The interface to Commands::Guarded is thus a hybrid of exported subroutines (see SUBROUTINES below) and non-exported methods (see METHODS).
For a detailed discussion of the reason for this modules existence, see RATIONALE below.
Download (0.012MB)
Added: 2007-05-23 License: Perl Artistic License Price:
885 downloads
AI::Prolog::Introduction 0.739
AI::Prolog::Introduction Perl module contains the what and the why of logic programming. more>>
AI::Prolog::Introduction Perl module contains the what and the why of logic programming.
You can skip this if you already know logic programming.
Note that most of this was pulled from my write-up about logic programming in Perl at http://www.perlmonks.org/?node_id=424075.
In Perl, generally you can append one list to another with this:
my @Z = (@X, @Y);
However, thats telling the language what to do. As sentient beings, we can look at that and infer more information. Given @Z and @X, we could infer @Y. Given just @Z, we could infer all combinations of @X and @Y that can be combined to form @Z.
Perl cannot do that. In logic programming, however, by defining what append() looks like, we get all of that other information.
In Prolog, it looks like this:
append([], X, X).
append([W|X],Y,[W|Z]) :- append(X,Y,Z).
(Theres actually often something called a "cut" after the first definition, but well keep this simple.)
What the above code says is "appending an empty list to a non-empty list yields the non-empty list." This is a boundary condition. Logic programs frequently require a careful analysis of boundary conditions to avoid infinite loops (similar to how recursive functions in Perl generally should have a terminating condition defined in them.)
The second line is where the bulk of the work gets done. In Prolog, to identify the head (first element) of a list and its tail (all elements except the first), we use the syntax [head|tail]. Since ":-" is read as "if" in Prolog, what this says if we want to concatenate (a,b,c) and (d,e,f):
Given a list with a head of W and a tail of X:
@list1 = qw/a b c/; (qw/a/ is W, the head, and qw/b c/ is X, the tail)
If its appended to list Y:
@Y = qw/d e f/;
We get a list with a head of W and a tail of Z:
@list2 = qw/a b c d e f/;
Only if X appended to Y forms Z:
X is qw/b c/. Y is qw/d e f/. Z is qw/b c d e f/.
<<lessYou can skip this if you already know logic programming.
Note that most of this was pulled from my write-up about logic programming in Perl at http://www.perlmonks.org/?node_id=424075.
In Perl, generally you can append one list to another with this:
my @Z = (@X, @Y);
However, thats telling the language what to do. As sentient beings, we can look at that and infer more information. Given @Z and @X, we could infer @Y. Given just @Z, we could infer all combinations of @X and @Y that can be combined to form @Z.
Perl cannot do that. In logic programming, however, by defining what append() looks like, we get all of that other information.
In Prolog, it looks like this:
append([], X, X).
append([W|X],Y,[W|Z]) :- append(X,Y,Z).
(Theres actually often something called a "cut" after the first definition, but well keep this simple.)
What the above code says is "appending an empty list to a non-empty list yields the non-empty list." This is a boundary condition. Logic programs frequently require a careful analysis of boundary conditions to avoid infinite loops (similar to how recursive functions in Perl generally should have a terminating condition defined in them.)
The second line is where the bulk of the work gets done. In Prolog, to identify the head (first element) of a list and its tail (all elements except the first), we use the syntax [head|tail]. Since ":-" is read as "if" in Prolog, what this says if we want to concatenate (a,b,c) and (d,e,f):
Given a list with a head of W and a tail of X:
@list1 = qw/a b c/; (qw/a/ is W, the head, and qw/b c/ is X, the tail)
If its appended to list Y:
@Y = qw/d e f/;
We get a list with a head of W and a tail of Z:
@list2 = qw/a b c d e f/;
Only if X appended to Y forms Z:
X is qw/b c/. Y is qw/d e f/. Z is qw/b c d e f/.
Download (0.068MB)
Added: 2007-07-04 License: Perl Artistic License Price:
842 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above condition 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