critical events
Critical Mass 1.0.1
Critical Mass (Critter) is an SDL/OpenGL space shootem up game. more>>
The latter is my main development platform. Other platforms supported by SDL/OpenGL may also work with a bit of work.
TigerEvents 0.7.1
TigerEvents is a web-based event announcement system. more>>
Enhancements:
- This release has several bugfixes and enhancements.
- New to this release is the exporting of several calendar formats, including iCal, hCal, and being able to import events into Google Calendar.
Data::ICal::Entry::Event 0.12
Data::ICal::Entry::Event is a Perl module that represents an event in an iCalendar file. more>>
SYNOPSIS
my $vevent = Data::ICal::Entry::Event->new();
$vevent->add_properties(
summary => "my party",
description => "Ill cry if I want to",
# Dat*e*::ICal is not a typo here
dtstart => Date::ICal->new( epoch => time )->ical,
);
$calendar->add_entry($vevent);
$vevent->add_entry($alarm);
A Data::ICal::Entry::Event object represents a single event in an iCalendar file. (Note that the iCalendar RFC refers to entries as "components".) It is a subclass of Data::ICal::Entry and accepts all of its methods.
@1 Know Your Events 1.0
Let your site visitors view or search events posted by you. more>> Let your site visitors view or search events posted by you. Support image upload.<<less
check_writable 1.0
check_writable is a Nagios plugin that checks if one or more directories are writable. more>>
It returns a critical status if one of the tests fails.
Event 1.09
Event is an Event loop processing. more>>
SYNOPSIS
use Event qw(loop unloop);
# initialize application
Event->flavor(attribute => value, ...);
my $ret = loop();
# and some callback will call
unloop(ok);
The Event module provide a central facility to watch for various types of events and invoke a callback when these events occur. The idea is to delay the handling of events so that they may be dispatched in priority order when it is safe for callbacks to execute.
Events (in the ordinary sense of the word) are detected by watchers, which reify them as events (in the special Event module sense). For clarity, the former type of events may be called "source events", and the latter "target events". Source events, such as signals arriving, happen whether or not they are being watched. If a source event occurs which a watcher is actively watching then the watcher generates a corresponding target event. Target events are only created by watchers. If several watchers are interested in the same source event then each will generate their own target event. Hence, any particular source event may result in zero, one, two, or any number of target events: the same as the number of watchers which were actively watching for it.
Target events are queued to be processed in priority order (priority being determined by the creating watcher) and in FIFO order among events of the same priority. Queued ("pending") events can, in some cases, be cancelled before being processed. A queued event is processed by being passed to the callback function (or method on a particular object or class) which was specified to the watcher.
A watcher, once created, operates autonomously without the Event user having to retain any reference to it. However, keeping a reference makes it possible to modify most of the watchers characteristics. A watcher can be switched between active and inactive states. When inactive, it does not generate target events.
Some types of source event are not reified as target events immediately. Signals received, for example, are counted initially. The counted signals are reified at certain execution points. Hence, signal events may be processed out of order, and if handled carelessly, on the wrong side of a state change in event handling. A useful way to view this is that occurrence of the source event is not actually the arrival of the signal but is triggered by the counting of the signal.
Reification can be forced when necessary. The schedule on which some other events are created is non-obvious. This is especially the case with watchers that watch for a condition rather than an event. In some cases, target events are generated on a schedule that depends on the operation of the event loop.
Discrete Event Calculus Reasoner 1.0
Discrete Event Calculus Reasoner is an open source program for performing automated commonsense reasoning. more>>
Discrete Event Calculus Reasoner solves problems efficiently by converting them into satisfiability (SAT) problems.
Main features:
- Comes with 99 examples
- Comes with 12-page users manual
- Supports deduction/temporal projection, abduction/planning, postdiction, and model finding
- Allows default reasoning about action, change, space, and mental states
- Useful for intelligent user interfaces, business systems, natural language understanding, and computer vision
- Helps applications understand the world, make inferences, adapt to unexpected situations, and be more flexible
- Released under the Common Public License v1.0
Statistics::MaxEntropy 0.9
MaxEntropy is a Perl5 module for Maximum Entropy Modeling and Feature Induction. more>>
SYNOPSIS
use Statistics::MaxEntropy;
# debugging messages; default 0
$Statistics::MaxEntropy::debug = 0;
# maximum number of iterations for IIS; default 100
$Statistics::MaxEntropy::NEWTON_max_it = 100;
# minimal distance between new and old x for Newtons method;
# default 0.001
$Statistics::MaxEntropy::NEWTON_min = 0.001;
# maximum number of iterations for Newtons method; default 100
$Statistics::MaxEntropy::KL_max_it = 100;
# minimal distance between new and old x; default 0.001
$Statistics::MaxEntropy::KL_min = 0.001;
# the size of Monte Carlo samples; default 1000
$Statistics::MaxEntropy::SAMPLE_size = 1000;
# creation of a new event space from an events file
$events = Statistics::MaxEntropy::new($file);
# Generalised Iterative Scaling, "corpus" means no sampling
$events->scale("corpus", "gis");
# Improved Iterative Scaling, "mc" means Monte Carlo sampling
$events->scale("mc", "iis");
# Feature Induction algorithm, also see Statistics::Candidates POD
$candidates = Statistics::Candidates->new($candidates_file);
$events->fi("iis", $candidates, $nr_to_add, "mc");
# writing new events, candidates, and parameters files
$events->write($some_other_file);
$events->write_parameters($file);
$events->write_parameters_with_names($file);
# dump/undump the event space to/from a file
$events->dump($file);
$events->undump($file);
This module is an implementation of the Generalised and Improved Iterative Scaling (GIS, IIS) algorithms and the Feature Induction (FI) algorithm as defined in (Darroch and Ratcliff 1972) and (Della Pietra et al. 1997). The purpose of the scaling algorithms is to find the maximum entropy distribution given a set of events and (optionally) an initial distribution.
Also a set of candidate features may be specified; then the FI algorithm may be applied to find and add the candidate feature(s) that give the largest `gain in terms of Kullback Leibler divergence when it is added to the current set of features.
Events are specified in terms of a set of feature functions (properties) f_1...f_k that map each event to {0,1}: an event is a string of bits. In addition of each event its frequency is given. We assume the event space to have a probability distribution that can be described by
The module requires the Bit::SparseVector module by Steffen Beyer and the Data::Dumper module by Gurusamy Sarathy. Both can be obtained from CPAN just like this module.
Rapid Application Development Library 2.8.3
Rapid Application Development Library 2.8.3 is yet another excellent utility you should not miss. It is actually a C language library developed to abstract details of interprocess communications and more>>
Rapid Application Development Library 2.8.3 is yet another excellent utility you should not miss. It is actually a C language library developed to abstract details of interprocess communications and common linux/unix system facilities so that application developers can concentrate on application solutions. It encourages developers (whether expert or novice) to use a proven paradigm of event-driven, asynchronous design. By abstracting interprocess messaging, events, timers, and any I/O device that can be represented as a file descriptor, radlib simplifies the implementation of multi-purpose processes, as well as multi-process applications.
Radlib greatly improves typical process performance through the use of shared memory buffers to avoid costly "malloc" and "free" library calls. These buffers are used for interprocess messages. radlib utilizes shared memory constructs to provide global message queue management and global "Queue Groups" for increased interprocess communications flexibility. All shared resources are semaphore protected to avoid issues with concurrent access.
In short, radlib is a sincere attempt to provide real-time OS capability on a non-real-time OS. It has been successfully deployed on linux, MacOSX and FreeBSD but there is no reason it would not build and run on any flavor of unix supporting System V IPC.
Specifically, radlib provides fast system buffers, a simple config file utility, events, doubly-linked lists, process logging through syslog, message queues, semaphores, shared memory utilities, timers, stacks, state machine utilities, a process framework, a process management utility to start/stop groups of processes, optional MySQL or PostgreSQL database API, a straightforward TCP/streams socket API, a UDP/datagram unicast/multicast/broadcast API, CRC and SHA utility APIs, and other assorted system utilities.
An example application template is provided in the distribution (see the "Example Application Template" link in the left column of this page). The template example serves two purposes: it demonstrates, through source code inspection, how a well constructed radlib process is implemented and it provides an example build environment with the capability for someone new to radlib to build and execute an example application "right out of the box".
Proprietary forms of radlib have been used in several mission-critical commercial applications with excellent results. It is light yet very powerful and efficient in real time. radlib is BSD-licensed (free to use in binary or source forms) and distributed as source to be built on the target platform. Build instructions are included in the distribution. See the file "COPYING" in the distribution for details concerning open source software and the BSD license.
Major Features:
- Includes SQLite3 support.
- Can be used on both 32 and 64 bit platforms with no special configuration required.
- Supports native development on the LinkSys NSLU2 as well as binary package support for radlib applications. See the README file for details.
- Includes a new message router daemon and API. This new paradigm simplifies interprocess communications substantially. See radmsgRouter.h for details.
- Includes a new example template which demonstrates multiprocess applications and the new message router API. See template/README in the distro for details.
- Built with libtool which generates shared libraries as well as static if supported on the build platform. Header files are now C++ friendly and radlib can be linked with C++ applications. LIST and LIST_ID were changed to RADLIST and RADLIST_ID to avoid problems with newer versions of MySQL.
- Includes SHA-1, SHA-256 and CRC16/32 utilities. See the header files "radsha.h" and "radcrc.h" for details.
Tk::event 804.027
Tk::event contains miscellaneous event facilities: define virtual events and generate events. more>>
SYNOPSIS
$widget->eventAction(?arg, arg, ...?);
The eventAction methods provides several facilities for dealing with window system events, such as defining virtual events and synthesizing events. Virtual events are shared by all widgets of the same MainWindow. Different MainWindows can have different virtual event.
The following methods are currently supported:
$widget->eventAdd(, sequence ?,sequence, ...?)
Associates the virtual event virtual with the physical event sequence(s) given by the sequence arguments, so that the virtual event will trigger whenever any one of the sequences occurs. Virtual may be any string value and sequence may have any of the values allowed for the sequence argument to the bind method. If virtual is already defined, the new physical event sequences add to the existing sequences for the event.
$widget->eventDelete( ?,sequence, sequence, ...?)
Deletes each of the sequences from those associated with the virtual event given by virtual. Virtual may be any string value and sequence may have any of the values allowed for the sequence argument to the bind method. Any sequences not currently associated with virtual are ignored. If no sequence argument is provided, all physical event sequences are removed for virtual, so that the virtual event will not trigger anymore.
$widget->eventGenerate(event ?,option => value, option => value, ...?)
Generates a window event and arranges for it to be processed just as if it had come from the window system. $window is a reference to the window for which the event will be generated. Event provides a basic description of the event, such as < Shift-Button-2 > or >. If Window is empty the whole screen is meant, and coordinates are relative to the screen. Event may have any of the forms allowed for the sequence argument of the bind method except that it must consist of a single event pattern, not a sequence. Option-value pairs may be used to specify additional attributes of the event, such as the x and y mouse position; see "EVENT FIELDS" below. If the -when option is not specified, the event is processed immediately: all of the handlers for the event will complete before the eventGenerate method returns. If the -when option is specified then it determines when the event is processed.
$widget->eventInfo(?>?)
Returns information about virtual events. If the argument is omitted, the return value is a list of all the virtual events that are currently defined. If is specified then the return value is a list whose elements are the physical event sequences currently defined for the given virtual event; if the virtual event is not defined then undef is returned.
SmartIrc4net 0.4.0
SmartIrc4net in an IRC library for C#/.NET. more>>
Main features:
- 3 layered API:
- IrcConnection (low-level API) contains socket handling and message buffer
- IrcCommands (extends IrcConnection, middle-level API) contains RFC IRC commands plus easy to use IRC methods (like Op/Deop/Ban/Unban...)
- IrcClient (extends IrcCommands, high-level API) full featured IRC class, with channel syncing, fully event driven
- send/receive floodprotection
- detects and changes nickname on nickname collisions
- autoreconnect, if connection is lost
- autoretry for connecting to IRC servers
- debugging/logging system with log levels (using log4net)
- compatible with Mono and Micrsoft .NET Framework
- sendbuffer with a queue that has 3 priority levels (high, medium, low) plus a bypass level (critical)
- channel syncing (tracking of users/modes/topic etc in objects)
- user syncing (tracking the user in channels, nick/ident/host/realname/server/hopcount in objects)
- when channel syncing is acticated the following methods are available:
- IsJoined
- IsOpped
- IsVoiced
- IsBanned
- on reconnect all joined channels will be rejoined, also when keys are used
- own CTCP version reply can be set
Enhancements:
- This release contains crash fixes in the CTCP PING handling code, non-RFC support mode, channel mode parser, and connection handling.
- It also includes an active pinger, which detects network problems much better, as TCP sockets can stall for days or weeks before the error is detected.
- This is the first release that has support for UTF-8.
- The API documentation was extended.
- The login method accepts a list of nicknames, automatically uses the next nickname if a nickname collision happens, and uses part of the nickname plus a random number as a fallback.
Event::RPC 0.90
Event::RPC is a event based transparent Client/Server RPC framework. more>>
SYNOPSIS
#-- Server Code
use Event::RPC::Server;
use My::TestModule;
my $server = Event::RPC::Server->new (
port => 5555,
classes => { "My::TestModule" => { ... } },
);
$server->start;
----------------------------------------------------------
#-- Client Code
use Event::RPC::Client;
my $client = Event::RPC::Client->new (
server => "localhost",
port => 5555,
);
$client->connect;
#-- Call methods of My::TestModule on the server
my $obj = My::TestModule->new ( foo => "bar" );
my $foo = $obj->get_foo;
ABSTRACT
Event::RPC supports you in developing Event based networking client/server applications with transparent object/method access from the client to the server. Network communication is optionally encrypted using IO::Socket::SSL. Several event loop managers are supported due to an extensible API. Currently Event and Glib are implemented.
Userexitd for TSM 0.4
Userexitd for TSM is a configurable handler for Tivoli Storage Manager events. more>>
Userexitd for TSM allows an administrator to filter events using regular expressions and run various actions for TSM events, such as sending mail and SNMP traps, writing messages into syslog, and running scripts and programs.
This software consists of two parts: a simple shared library (userexit.so), which is dynamically linked to the TSM Server as a user exit and communicates using a socket with the userexitd daemon, which runs as a separate service. The daemon is configured with an XML configuration file.
Enhancements:
- This release features some code cleanup, a working AIX port, support for reloading configuration on SIGHUP
Historical Event Markup and Linking Project 0_7.2-20060718
Historical Event Markup and Linking project provides a means of coordinating and navigating disparate historical materials. more>>
It includes:
- an XML schema for historical events which describes the events participants, dates, location and keywords; the schema associates these with source materials in print or on the web.
- XSLT stylesheets that combine conforming documents and generate lists, maps and graphical timelines out of them.
Heml integrates these resources using the Cocoon2 web publishing engine.
Main features:
- An RDF export of some recent Japanese history.
- A timeline of Russia under Stalin (in Russian)
- An xhtml document about Beethoven, with heml:Event tags added, producing a sidebar for historical navigation
- An animated map of events pertaining to the study of the history of Greek medicine (currently requires Adobe SVG Plugin)
- A dynamic map of the career of Gottfried Wilhelm von Leibniz
- A table of events during the Meiji Restoration (in Japanese Unicode)
Explore the menus above these to change their view, language, font, base map, calendar, etc. Alternatively, follow one of the Local Documents links on the site sidebar to explore all the views on that document.
Use the schema to create your own Heml documents, download the Heml webapp, and serve your material as timelines, maps and historical tables.
The somewhat out-of-date Project Description introduces the ideas behind Heml and outlines the direction this project is heading. The fully documented XML schema is also available. You can use it to create your own Heml documents, download the Heml webapp, and serve your material as timelines, maps and historical tables.
App::Modular::Module::Events 0.1.2
App::Modular::Module::Events is a Perl module with event handling for App::Modular compatible applications. more>>
SYNOPSIS
####################################################################
package App::Modular::Module::Me;
use base qw(App::Modular::Module);
sub depends { return Events; }
sub start_listen {
my $self = shift;
$self->{modularizer}->module(Events)->
register(Listener, TelephoneRings);
};
sub event_handler {
my $self = shift;
my $event = shift;
print Yeah! Somebody thought about me!
if ($event eq TelephoneRings);
};
####################################################################
package App::Modular::Module::You;
use base qw(App::Modular::Module);
sub depends { return Events; }
sub call_me {
$self->{modularizer}->module(Events)->
trigger(TelephoneRings);
};
####################################################################
package main;
use App::Modular;
my $modul = instance App::Modular;
$modul->module(Me)->start_listen();
$modul->module(You)->callme();
exit;
App::Modular aims to provide a framework which should it make very easy to programmes to create any kind of modular program.
This module provides basic event handling as a contribution to that toolkit. Modules may register themselves as listeners for events, if an event is triggered, all the modules are notified by calling $module-event_handler(event, @params) >.
The events are speciefied as simple strings.