thrown
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 213
Stones Throw 0.3
Stones Throw is an Arkanoid clone. more>>
Stones Throw project is an Arkanoid clone.
It comes with accurate 2D physics.
Unzip this zip file into any folder and run stonesthrow.bat
<<lessIt comes with accurate 2D physics.
Unzip this zip file into any folder and run stonesthrow.bat
Download (0.19MB)
Added: 2006-12-08 License: GPL (GNU General Public License) Price:
1050 downloads
Snoopy vs. the Red Baron 1.0
Snoopy vs. the Red Baron is an open-source one/two player combat game, available for Mac OS X, Linux, BeOS, QNX and Windows. more>>
Snoopy vs. the Red Baron is an open-source one/two player combat game, available for Mac OS X, Linux, BeOS, QNX and Windows.
The original Snoopy was a tiny game for the Apple Macintosh, with black and white graphics, but already almost all the levels of the new Snoopy/SDL were implemented.
Snoopy could be played by two opponents, sharing a single screen and keyboard, and although it had poor graphics and tough controls, we very much liked to play it.
While we learned programming, we constantly sought for simple, yet interesting projects. If you have ever tried to learn a new language or API, you will have recognized that the simplest way in mastering the stuff is simply reprogramming an existing application, without losing much thought on design and originality.
So my friend reprogrammed Snoopy, in Object Pascal, using SAT, the Sprite Animation Toolkit, on his Classic II. That version of Snoopy features a fully functional AI, network play, but only the first level ( weapons drop).
While he was at it, he also implemented a "missing feature", the bombs, for which there where graphics and sounds in the game, but which could not be thrown.
When I discovered SDL, I recognized that it would be ideal for the job. Running on Windows, Linux, MacOS, BeOS and many other platforms, it is my new toolkit of choice for multimedia programming. It took us several weeks to port Snoopy (besides going to school, but now the work is almost done, with only the finishing touches to be made.
I can only encourage everyone to try SDL; it is really easy and portable (if worked right).
<<lessThe original Snoopy was a tiny game for the Apple Macintosh, with black and white graphics, but already almost all the levels of the new Snoopy/SDL were implemented.
Snoopy could be played by two opponents, sharing a single screen and keyboard, and although it had poor graphics and tough controls, we very much liked to play it.
While we learned programming, we constantly sought for simple, yet interesting projects. If you have ever tried to learn a new language or API, you will have recognized that the simplest way in mastering the stuff is simply reprogramming an existing application, without losing much thought on design and originality.
So my friend reprogrammed Snoopy, in Object Pascal, using SAT, the Sprite Animation Toolkit, on his Classic II. That version of Snoopy features a fully functional AI, network play, but only the first level ( weapons drop).
While he was at it, he also implemented a "missing feature", the bombs, for which there where graphics and sounds in the game, but which could not be thrown.
When I discovered SDL, I recognized that it would be ideal for the job. Running on Windows, Linux, MacOS, BeOS and many other platforms, it is my new toolkit of choice for multimedia programming. It took us several weeks to port Snoopy (besides going to school, but now the work is almost done, with only the finishing touches to be made.
I can only encourage everyone to try SDL; it is really easy and portable (if worked right).
Download (0.35MB)
Added: 2005-12-28 License: GPL (GNU General Public License) Price:
1409 downloads
Tree::Binary 0.07
Tree::Binary is a Object Oriented Binary Tree for Perl. more>>
Tree::Binary is a Object Oriented Binary Tree for Perl.
SYNOPSIS
use Tree::Binary;
# a tree representaion of the expression:
# ((2 + 2) * (4 + 5))
my $btree = Tree::Binary->new("*")
->setLeft(
Tree::Binary->new("+")
->setLeft(Tree::Binary->new("2"))
->setRight(Tree::Binary->new("2"))
)
->setRight(
Tree::Binary->new("+")
->setLeft(Tree::Binary->new("4"))
->setRight(Tree::Binary->new("5"))
);
# Or shown visually:
# +---(*)---+
# | |
# +-(+)-+ +-(+)-+
# | | | |
# (2) (2) (4) (5)
# get a InOrder visitor
my $visitor = Tree::Binary::Visitor::InOrderTraversal->new();
$btree->accept($visitor);
# print the expression in infix order
print $visitor->getAccumulation(); # prints "2 + 2 * 4 + 5"
# get a PreOrder visitor
my $visitor = Tree::Binary::Visitor::PreOrderTraversal->new();
$btree->accept($visitor);
# print the expression in prefix order
print $visitor->getAccumulation(); # prints "* + 2 2 + 4 5"
# get a PostOrder visitor
my $visitor = Tree::Binary::Visitor::PostOrderTraversal->new();
$btree->accept($visitor);
# print the expression in postfix order
print $visitor->getAccumulation(); # prints "2 2 + 4 5 + *"
# get a Breadth First visitor
my $visitor = Tree::Binary::Visitor::BreadthFirstTraversal->new();
$btree->accept($visitor);
# print the expression in breadth first order
print $visitor->getAccumulation(); # prints "* + + 2 2 4 5"
# be sure to clean up all circular references
$btree->DESTROY();
This module is a fully object oriented implementation of a binary tree. Binary trees are a specialized type of tree which has only two possible branches, a left branch and a right branch. While it is possible to use an n-ary tree, like Tree::Simple, to fill most of your binary tree needs, a true binary tree object is just easier to mantain and use.
Binary Tree objects are especially useful (to me anyway) when building parse trees of things like mathematical or boolean expressions. They can also be used in games for such things as descisions trees. Binary trees are a well studied data structure and there is a wealth of information on the web about them.
This module uses exceptions and a minimal Design By Contract style. All method arguments are required unless specified in the documentation, if a required argument is not defined an exception will usually be thrown. Many arguments are also required to be of a specific type, for instance the $tree argument to both the setLeft and setRight methods, must be a Tree::Binary object or an object derived from Tree::Binary, otherwise an exception is thrown. This may seems harsh to some, but this allows me to have the confidence that my code works as I intend, and for you to enjoy the same level of confidence when using this module. Note however that this module does not use any Exception or Error module, the exceptions are just strings thrown with die.
This object uses a number of methods copied from another module of mine, Tree::Simple. Users of that module will find many similar methods and behaviors. However, it did not make sense for Tree::Binary to be derived from Tree::Simple, as there are a number of methods in Tree::Simple that just wouldnt make sense in Tree::Binary. So, while I normally do not approve of cut-and-paste code reuse, it was what made the most sense in this case.
<<lessSYNOPSIS
use Tree::Binary;
# a tree representaion of the expression:
# ((2 + 2) * (4 + 5))
my $btree = Tree::Binary->new("*")
->setLeft(
Tree::Binary->new("+")
->setLeft(Tree::Binary->new("2"))
->setRight(Tree::Binary->new("2"))
)
->setRight(
Tree::Binary->new("+")
->setLeft(Tree::Binary->new("4"))
->setRight(Tree::Binary->new("5"))
);
# Or shown visually:
# +---(*)---+
# | |
# +-(+)-+ +-(+)-+
# | | | |
# (2) (2) (4) (5)
# get a InOrder visitor
my $visitor = Tree::Binary::Visitor::InOrderTraversal->new();
$btree->accept($visitor);
# print the expression in infix order
print $visitor->getAccumulation(); # prints "2 + 2 * 4 + 5"
# get a PreOrder visitor
my $visitor = Tree::Binary::Visitor::PreOrderTraversal->new();
$btree->accept($visitor);
# print the expression in prefix order
print $visitor->getAccumulation(); # prints "* + 2 2 + 4 5"
# get a PostOrder visitor
my $visitor = Tree::Binary::Visitor::PostOrderTraversal->new();
$btree->accept($visitor);
# print the expression in postfix order
print $visitor->getAccumulation(); # prints "2 2 + 4 5 + *"
# get a Breadth First visitor
my $visitor = Tree::Binary::Visitor::BreadthFirstTraversal->new();
$btree->accept($visitor);
# print the expression in breadth first order
print $visitor->getAccumulation(); # prints "* + + 2 2 4 5"
# be sure to clean up all circular references
$btree->DESTROY();
This module is a fully object oriented implementation of a binary tree. Binary trees are a specialized type of tree which has only two possible branches, a left branch and a right branch. While it is possible to use an n-ary tree, like Tree::Simple, to fill most of your binary tree needs, a true binary tree object is just easier to mantain and use.
Binary Tree objects are especially useful (to me anyway) when building parse trees of things like mathematical or boolean expressions. They can also be used in games for such things as descisions trees. Binary trees are a well studied data structure and there is a wealth of information on the web about them.
This module uses exceptions and a minimal Design By Contract style. All method arguments are required unless specified in the documentation, if a required argument is not defined an exception will usually be thrown. Many arguments are also required to be of a specific type, for instance the $tree argument to both the setLeft and setRight methods, must be a Tree::Binary object or an object derived from Tree::Binary, otherwise an exception is thrown. This may seems harsh to some, but this allows me to have the confidence that my code works as I intend, and for you to enjoy the same level of confidence when using this module. Note however that this module does not use any Exception or Error module, the exceptions are just strings thrown with die.
This object uses a number of methods copied from another module of mine, Tree::Simple. Users of that module will find many similar methods and behaviors. However, it did not make sense for Tree::Binary to be derived from Tree::Simple, as there are a number of methods in Tree::Simple that just wouldnt make sense in Tree::Binary. So, while I normally do not approve of cut-and-paste code reuse, it was what made the most sense in this case.
Download (0.027MB)
Added: 2006-10-14 License: Perl Artistic License Price:
1108 downloads
LibTorrent 0.11.6
LibTorrent is a BitTorrent library written in C++ for Unix. more>>
LibTorrent is a BitTorrent library written in C++ for Unix. LibTorrent library is designed to avoid the redundant buffers and data copying that most (all?) other BitTorrent implementations suffer from.
The library is single-threaded and the client handles the select loop. An interactive ncurses client is included as an example.
Main features:
- The client has full control over the polling of sockets.
- Sigc++ signals makes i easy for the client to react to events.
- Fast resume which checks the file modification time.
Direct reading and writing from network to mmaped files:
- Avoids duplication of data where both the application and the kernel has a copy of the file chunk.
- Unused chunks get thrown out or written to disk instead of the swap.
- Kernel handles caching of the file.
File hash check:
- Uses the same thread.
- Client can control the rate. (Will be improved)
- Non-blocking and preload to memory with the mincore and madvise system calls.
File handler:
- Fine-grained use of file read/write permissions, allows seeding of read-only files.
- Allows torrents with unlimited number of files.
- Opens closed files when mapping chunks to memory, with graceful error handling.
- Support for files larger than 2 GB.
- Different download priorities for files in the torrent.
- Multi-tracker support.
- No dependency on any specific HTTP library, the client implements a wrapper class.
- Dynamic request pipe size.
- Upload and download throttle.
- And much more i havent bothered mentioning. (nor implementing)
<<lessThe library is single-threaded and the client handles the select loop. An interactive ncurses client is included as an example.
Main features:
- The client has full control over the polling of sockets.
- Sigc++ signals makes i easy for the client to react to events.
- Fast resume which checks the file modification time.
Direct reading and writing from network to mmaped files:
- Avoids duplication of data where both the application and the kernel has a copy of the file chunk.
- Unused chunks get thrown out or written to disk instead of the swap.
- Kernel handles caching of the file.
File hash check:
- Uses the same thread.
- Client can control the rate. (Will be improved)
- Non-blocking and preload to memory with the mincore and madvise system calls.
File handler:
- Fine-grained use of file read/write permissions, allows seeding of read-only files.
- Allows torrents with unlimited number of files.
- Opens closed files when mapping chunks to memory, with graceful error handling.
- Support for files larger than 2 GB.
- Different download priorities for files in the torrent.
- Multi-tracker support.
- No dependency on any specific HTTP library, the client implements a wrapper class.
- Dynamic request pipe size.
- Upload and download throttle.
- And much more i havent bothered mentioning. (nor implementing)
Download (0.50MB)
Added: 2007-08-02 License: GPL (GNU General Public License) Price:
500 downloads
Iterator::IO 0.02
Iterator::IO is a Perl module with filesystem and stream iterators. more>>
Iterator::IO is a Perl module with filesystem and stream iterators.
SYNOPSIS
use Iterator::IO;
# Return the names of files in a directory (except . and ..)
$iter = idir_listing ($path);
# Return all the files in a directory tree, one at a time.
# Like File::Find, in slow motion.
$iter = idir_walk ($path);
# Return the lines of a file, one at a time.
$iter = ifile ($filename, %options);
# Return the lines of a file, in reverse order
$iter = ifile_reverse ($filename, %options);
This module provides filesystem and stream iterator functions. See the Iterator module for more information about how to use iterators.
FUNCTIONS
idir_listing
$iter = idir_listing ($path);
Iterator that returns the names of the files in the $path directory. If $path is omitted, defaults to the current directory. Does not return the . and .. files (under unix).
Requires IO::Dir and Cwd.
Example:
To return only certain files, combine this with an igrep:
$iter = igrep {-s && -M < 1} idir "/some/path";
(Returns non-empty files modified less than a day ago). (igrep) is defined in the Iterator::Util module).
idir_walk
$iter = idir_walk ($path);
Returns the files in a directory tree, one by one. Its sort of like File::Find in slow motion.
Requires IO::Dir and Cwd.
ifile
$iter = ifile ($filename, %options);
Opens a file, generates an iterator to return the lines of the file.
%options is a reference to a hash of options. Currently, two options are supported:
chomp
chomp => boolean indicates whether lines should be chomped before being returned by the iterator. The default is true.
$/
$/ => value specifies what string to use as the record separator. If not specified, the current value of $/ is used.
"rs" or "input_record_separator" may be used as option names instead of "$/", if you find that to be more readable. See the English module.
Option names are case-insensitive.
ifile requires IO::File.
ifile_reverse
$iter = ifile_reverse ($filename, %options);
Exactly the same as "ifile", but reads the lines of the file backwards.
The input_record_separator option values undef (slurp whole file) and scalar references (fixed-length records) are not currently supported.
INTERFACE CHANGE
In version 0.01 of Iterator::IO, the "ifile" and ifile_reverse functions accepted their options in a different manner. This has now changed to operate via a hash reference of options. The old way will still work, but is deprecated and will be removed in a future release.
EXPORTS
This module exports all function names to the callers namespace by default.
DIAGNOSTICS
Iterator::IO uses Exception::Class objects for throwing exceptions. If youre not familiar with Exception::Class, dont worry; these exception objects work just like $@ does with die and croak, but they are easier to work with if you are trapping errors.
See the Iterator module documentation for more information on how to trap and handle these exception objects.
Parameter Errors
Class: Iterator::X::Parameter_Error
You called an Iterator::IO function with one or more bad parameters. Since this is almost certainly a coding error, there is probably not much use in handling this sort of exception.
As a string, this exception provides a human-readable message about what the problem was.
Exhausted Iterators
Class: Iterator::X::Exhausted
You called value on an iterator that is exhausted; that is, there are no more values in the sequence to return.
As a string, this exception is "Iterator is exhausted."
I/O Errors
Class: Iterator::X::IO_Error
This exception is thrown when any sort of I/O error occurs; this only happens with the filesystem iterators.
This exception has one method, os_error, which returns the original $! that was trapped by the Iterator object.
As a string, this exception provides some human-readable information along with $!.
Internal Errors
Class: Iterator::X::Internal_Error
Something happened that I thought couldnt possibly happen. I would appreciate it if you could send me an email message detailing the circumstances of the error.
<<lessSYNOPSIS
use Iterator::IO;
# Return the names of files in a directory (except . and ..)
$iter = idir_listing ($path);
# Return all the files in a directory tree, one at a time.
# Like File::Find, in slow motion.
$iter = idir_walk ($path);
# Return the lines of a file, one at a time.
$iter = ifile ($filename, %options);
# Return the lines of a file, in reverse order
$iter = ifile_reverse ($filename, %options);
This module provides filesystem and stream iterator functions. See the Iterator module for more information about how to use iterators.
FUNCTIONS
idir_listing
$iter = idir_listing ($path);
Iterator that returns the names of the files in the $path directory. If $path is omitted, defaults to the current directory. Does not return the . and .. files (under unix).
Requires IO::Dir and Cwd.
Example:
To return only certain files, combine this with an igrep:
$iter = igrep {-s && -M < 1} idir "/some/path";
(Returns non-empty files modified less than a day ago). (igrep) is defined in the Iterator::Util module).
idir_walk
$iter = idir_walk ($path);
Returns the files in a directory tree, one by one. Its sort of like File::Find in slow motion.
Requires IO::Dir and Cwd.
ifile
$iter = ifile ($filename, %options);
Opens a file, generates an iterator to return the lines of the file.
%options is a reference to a hash of options. Currently, two options are supported:
chomp
chomp => boolean indicates whether lines should be chomped before being returned by the iterator. The default is true.
$/
$/ => value specifies what string to use as the record separator. If not specified, the current value of $/ is used.
"rs" or "input_record_separator" may be used as option names instead of "$/", if you find that to be more readable. See the English module.
Option names are case-insensitive.
ifile requires IO::File.
ifile_reverse
$iter = ifile_reverse ($filename, %options);
Exactly the same as "ifile", but reads the lines of the file backwards.
The input_record_separator option values undef (slurp whole file) and scalar references (fixed-length records) are not currently supported.
INTERFACE CHANGE
In version 0.01 of Iterator::IO, the "ifile" and ifile_reverse functions accepted their options in a different manner. This has now changed to operate via a hash reference of options. The old way will still work, but is deprecated and will be removed in a future release.
EXPORTS
This module exports all function names to the callers namespace by default.
DIAGNOSTICS
Iterator::IO uses Exception::Class objects for throwing exceptions. If youre not familiar with Exception::Class, dont worry; these exception objects work just like $@ does with die and croak, but they are easier to work with if you are trapping errors.
See the Iterator module documentation for more information on how to trap and handle these exception objects.
Parameter Errors
Class: Iterator::X::Parameter_Error
You called an Iterator::IO function with one or more bad parameters. Since this is almost certainly a coding error, there is probably not much use in handling this sort of exception.
As a string, this exception provides a human-readable message about what the problem was.
Exhausted Iterators
Class: Iterator::X::Exhausted
You called value on an iterator that is exhausted; that is, there are no more values in the sequence to return.
As a string, this exception is "Iterator is exhausted."
I/O Errors
Class: Iterator::X::IO_Error
This exception is thrown when any sort of I/O error occurs; this only happens with the filesystem iterators.
This exception has one method, os_error, which returns the original $! that was trapped by the Iterator object.
As a string, this exception provides some human-readable information along with $!.
Internal Errors
Class: Iterator::X::Internal_Error
Something happened that I thought couldnt possibly happen. I would appreciate it if you could send me an email message detailing the circumstances of the error.
Download (0.014MB)
Added: 2007-04-27 License: Perl Artistic License Price:
910 downloads
GD::Graph::Thermometer 0.05
GD::Graph::Thermometer is a Perl module to generate progress graph on the fly. more>>
GD::Graph::Thermometer is a Perl module to generate progress graph on the fly.
SYNOPSIS
use GD::Graph::Thermometer;
my $result = GD::Graph::Thermometer->new({
image_path => /path/to/image.png,
type => png,
goal => 80000,
current => 20000,
title => Funding the League for the Year ($),
width => 100,
height => 200,
transparent => 1,
background_color => [ r, g, b ],
text_color => [ r, g, b ],
outline_color => [ r, g, b ],
mercury_color => [ r, g, b ]
});
When deployed in production, the current value ought to be dynamically calculated based on a query of the database tracking contributions or volunteers or whatever the goal represented by the graph represents.
my $result = GD::Graph::Thermometer->new({});
This module exports only one method, its constructor, ->new(), which creates a .png (by default) image file of the thermometer graph with the path and name defined in its constructor. If no image_path is defined in the constructor, then the module will print the image directly to STDOUT.
The anonymous hash fed to the constructor must define values for the keys: goal and current. Otherwise a fatal error will be thrown. Current should represent the progress made toward the goal being graphed since the beginning of the campaign.
The output format defaults to png if the key type is undefined, otherwise a user may specify png, gif or jpeg as the output format. These correspond to the GD::Image-> methods by the same name, which are used to implement the ->_render_image() internal method.
The size parameters will default to 100 pixels wide by 200 pixels tall, if those arguments are missing from the anonymous hash given to the constructor. If title is not defined a warning will be thrown, but the graph will still be generated.
The colors for the background, text, outline and mercury will default to white, black, black and red respectively, if not otherwise defined in the constructor. If defined in the constructor, they should be defined as an anonymous array of three values ( => [ r, g, b ],), range 0 - 255, suitable for feeding to the GD::Image->colorAllocate() method. If the transparent key is set to 1, any area of the image set to either the default or a custom background color will render as transparent for inclusion on a web page.
<<lessSYNOPSIS
use GD::Graph::Thermometer;
my $result = GD::Graph::Thermometer->new({
image_path => /path/to/image.png,
type => png,
goal => 80000,
current => 20000,
title => Funding the League for the Year ($),
width => 100,
height => 200,
transparent => 1,
background_color => [ r, g, b ],
text_color => [ r, g, b ],
outline_color => [ r, g, b ],
mercury_color => [ r, g, b ]
});
When deployed in production, the current value ought to be dynamically calculated based on a query of the database tracking contributions or volunteers or whatever the goal represented by the graph represents.
my $result = GD::Graph::Thermometer->new({});
This module exports only one method, its constructor, ->new(), which creates a .png (by default) image file of the thermometer graph with the path and name defined in its constructor. If no image_path is defined in the constructor, then the module will print the image directly to STDOUT.
The anonymous hash fed to the constructor must define values for the keys: goal and current. Otherwise a fatal error will be thrown. Current should represent the progress made toward the goal being graphed since the beginning of the campaign.
The output format defaults to png if the key type is undefined, otherwise a user may specify png, gif or jpeg as the output format. These correspond to the GD::Image-> methods by the same name, which are used to implement the ->_render_image() internal method.
The size parameters will default to 100 pixels wide by 200 pixels tall, if those arguments are missing from the anonymous hash given to the constructor. If title is not defined a warning will be thrown, but the graph will still be generated.
The colors for the background, text, outline and mercury will default to white, black, black and red respectively, if not otherwise defined in the constructor. If defined in the constructor, they should be defined as an anonymous array of three values ( => [ r, g, b ],), range 0 - 255, suitable for feeding to the GD::Image->colorAllocate() method. If the transparent key is set to 1, any area of the image set to either the default or a custom background color will render as transparent for inclusion on a web page.
Download (0.007MB)
Added: 2007-02-08 License: Perl Artistic License Price:
990 downloads
Eterm 0.9.4
Eterm is a vt102 terminal emulator intended as a replacement for xterm. more>>
Eterm is a vt102 terminal emulator intended as a replacement for xterm. It is designed with a Freedom of Choice philosophy, leaving as much power, flexibility, and freedom as possible in the hands of the user.
Eterm is designed to look good and work well, but takes a feature-rich approach rather than one of minimalism. Current features include color support, background images (all Imlib-supported formats), theme support, and pseudo-transparency.
Enhancements:
- This release contains primarily bugfixes, particularly for dead keys, but has a few new features thrown in as well, like support for a "beep command" to replace the PC speaker beep, EWMH/xcompmgr window opacity support, 256-color support, and NetWM startup ID support.
<<lessEterm is designed to look good and work well, but takes a feature-rich approach rather than one of minimalism. Current features include color support, background images (all Imlib-supported formats), theme support, and pseudo-transparency.
Enhancements:
- This release contains primarily bugfixes, particularly for dead keys, but has a few new features thrown in as well, like support for a "beep command" to replace the PC speaker beep, EWMH/xcompmgr window opacity support, 256-color support, and NetWM startup ID support.
Download (0.79MB)
Added: 2006-08-23 License: GPL (GNU General Public License) Price:
1161 downloads
grocks 1.01
grocks project is the game of Asteroids on steroids, in 500 lines of Python. more>>
grocks project is the game of Asteroids on steroids, in 500 lines of Python.
grocks is a small computer game. It was written by the author while drunk at a party; it was a good party. grocks is somewhat of a cross between asteroids, thrust, and koules, with a bit of sexual innuendo and lots of Newtonian physics thrown in.
It now includes Jaymzs `videoPrint to display the messages in pretty fading text on the main game window (it used to write them in the terminal).
There is a new version written in `braced C++ which only works under X11 (not Windoze) and doesnt have videoPrint yet - but its faster! My C++ is a bit rusty.
To play grocks on a Linux/i386 machine:
- You can simply execute `rocks, its already compiled for your machine.
<<lessgrocks is a small computer game. It was written by the author while drunk at a party; it was a good party. grocks is somewhat of a cross between asteroids, thrust, and koules, with a bit of sexual innuendo and lots of Newtonian physics thrown in.
It now includes Jaymzs `videoPrint to display the messages in pretty fading text on the main game window (it used to write them in the terminal).
There is a new version written in `braced C++ which only works under X11 (not Windoze) and doesnt have videoPrint yet - but its faster! My C++ is a bit rusty.
To play grocks on a Linux/i386 machine:
- You can simply execute `rocks, its already compiled for your machine.
Download (0.038MB)
Added: 2006-12-09 License: GPL (GNU General Public License) Price:
1050 downloads
Test::Exception 0.25
Test::Exception is a Perl module to test exception based code. more>>
Test::Exception is a Perl module to test exception based code.
SYNOPSIS
use Test::More tests => 5;
use Test::Exception;
# or if you dont need Test::More
use Test::Exception tests => 5;
# then...
# Check that something died
dies_ok { $foo->method1 } expecting to die;
# Check that something did not die
lives_ok { $foo->method2 } expecting to live;
# Check that the stringified exception matches given regex
throws_ok { $foo->method3 } qr/division by zero/, zero caught okay;
# Check an exception of the given class (or subclass) is thrown
throws_ok { $foo->method4 } Error::Simple, simple error thrown;
# all Test::Exceptions subroutines are guaranteed to preserve the state
# of $@ so you can do things like this after throws_ok and dies_ok
like $@, what the stringified exception should look like;
# Check that a test runs without an exception
lives_and { is $foo->method, 42 } method is 42;
# or if you dont like prototyped functions
dies_ok( sub { $foo->method1 }, expecting to die );
lives_ok( sub { $foo->method2 }, expecting to live );
throws_ok( sub { $foo->method3 }, qr/division by zero/,
zero caught okay );
throws_ok( sub { $foo->method4 }, Error::Simple,
simple error thrown );
lives_and( sub { is $foo->method, 42 }, method is 42 );
<<lessSYNOPSIS
use Test::More tests => 5;
use Test::Exception;
# or if you dont need Test::More
use Test::Exception tests => 5;
# then...
# Check that something died
dies_ok { $foo->method1 } expecting to die;
# Check that something did not die
lives_ok { $foo->method2 } expecting to live;
# Check that the stringified exception matches given regex
throws_ok { $foo->method3 } qr/division by zero/, zero caught okay;
# Check an exception of the given class (or subclass) is thrown
throws_ok { $foo->method4 } Error::Simple, simple error thrown;
# all Test::Exceptions subroutines are guaranteed to preserve the state
# of $@ so you can do things like this after throws_ok and dies_ok
like $@, what the stringified exception should look like;
# Check that a test runs without an exception
lives_and { is $foo->method, 42 } method is 42;
# or if you dont like prototyped functions
dies_ok( sub { $foo->method1 }, expecting to die );
lives_ok( sub { $foo->method2 }, expecting to live );
throws_ok( sub { $foo->method3 }, qr/division by zero/,
zero caught okay );
throws_ok( sub { $foo->method4 }, Error::Simple,
simple error thrown );
lives_and( sub { is $foo->method, 42 }, method is 42 );
Download (0.011MB)
Added: 2007-05-03 License: Perl Artistic License Price:
904 downloads
Exception::Base 0.07
Exception::Base is a Perl module with lightweight exceptions. more>>
Exception::Base is a Perl module with lightweight exceptions.
SYNOPSIS
# Use module and create needed exceptions
use Exception::Base (
Exception::IO,
Exception::FileNotFound => { message => File not found,
isa => Exception::IO },
);
# try / catch
try Exception eval {
do_something() or throw Exception::FileNotFound
message=>Something wrong,
tag=>something;
};
# Catch the Exception::Base, other exceptions throw immediately
if (catch Exception::Base my $e) {
# $e is an exception object for sure, no need to check if is blessed
if ($e->isa(Exception::IO)) { warn "IO problem"; }
elsif ($e->isa(Exception::Die)) { warn "eval died"; }
elsif ($e->isa(Exception::Warn)) { warn "some warn was caught"; }
elsif ($e->with(tag=>something)) { warn "something happened"; }
elsif ($e->with(qr/^Error/)) { warn "some error based on regex"; }
else { $e->throw; } # rethrow the exception
}
# the exception can be thrown later
$e = new Exception::Base;
$e->throw;
# try with array context
@v = try Exception::Base [eval { do_something_returning_array(); }];
# use syntactic sugar
use Exception::Base qw , Exception::IO;
try eval {
throw Exception::IO;
}; # dont forget about semicolon
catch my $e, [Exception::IO]; # Exception::Base is by default
This class implements a fully OO exception mechanism similar to Exception::Class or Class::Throwable. It does not depend on other modules like Exception::Class and it is more powerful than Class::Throwable. Also it does not use closures as Error and does not polute namespace as Exception::Class::TryCatch. It is also much faster than Exception::Class.
Main features:
- fast implementation of an exception object
- fully OO without closures and source code filtering
- does not mess with $SIG{__DIE__} and $SIG{__WARN__}
- no external modules dependencies, requires core Perl modules only
- implements error stack, the try/catch blocks can be nested
- shows full backtrace stack on die by default
- the default behaviour of exception class can be changed globally or just for the thrown exception
- the exception can be created with defined custom properties
- matching the exception by class, message or custom properties
- matching with string, regex or closure function
- creating automatically the derived exception classes ("use" interface)
- easly expendable, see Exception::System class for example
<<lessSYNOPSIS
# Use module and create needed exceptions
use Exception::Base (
Exception::IO,
Exception::FileNotFound => { message => File not found,
isa => Exception::IO },
);
# try / catch
try Exception eval {
do_something() or throw Exception::FileNotFound
message=>Something wrong,
tag=>something;
};
# Catch the Exception::Base, other exceptions throw immediately
if (catch Exception::Base my $e) {
# $e is an exception object for sure, no need to check if is blessed
if ($e->isa(Exception::IO)) { warn "IO problem"; }
elsif ($e->isa(Exception::Die)) { warn "eval died"; }
elsif ($e->isa(Exception::Warn)) { warn "some warn was caught"; }
elsif ($e->with(tag=>something)) { warn "something happened"; }
elsif ($e->with(qr/^Error/)) { warn "some error based on regex"; }
else { $e->throw; } # rethrow the exception
}
# the exception can be thrown later
$e = new Exception::Base;
$e->throw;
# try with array context
@v = try Exception::Base [eval { do_something_returning_array(); }];
# use syntactic sugar
use Exception::Base qw , Exception::IO;
try eval {
throw Exception::IO;
}; # dont forget about semicolon
catch my $e, [Exception::IO]; # Exception::Base is by default
This class implements a fully OO exception mechanism similar to Exception::Class or Class::Throwable. It does not depend on other modules like Exception::Class and it is more powerful than Class::Throwable. Also it does not use closures as Error and does not polute namespace as Exception::Class::TryCatch. It is also much faster than Exception::Class.
Main features:
- fast implementation of an exception object
- fully OO without closures and source code filtering
- does not mess with $SIG{__DIE__} and $SIG{__WARN__}
- no external modules dependencies, requires core Perl modules only
- implements error stack, the try/catch blocks can be nested
- shows full backtrace stack on die by default
- the default behaviour of exception class can be changed globally or just for the thrown exception
- the exception can be created with defined custom properties
- matching the exception by class, message or custom properties
- matching with string, regex or closure function
- creating automatically the derived exception classes ("use" interface)
- easly expendable, see Exception::System class for example
Download (0.023MB)
Added: 2007-05-23 License: Perl Artistic License Price:
884 downloads
TjMSNLib 0.50
TjMSNLib is an MSN Messenger client library written in Java and designed to be platform independent. more>>
TjMSNLib is an MSN Messenger client library written in Java and designed to be platform independent. It supports file transfers, smilies, and multiple user chat sessions.
TjMSN was started as due to a lack of decent MSN Messenger clients for Linux, so I decided that I would write a client that was platform independent, so that I would run on both my desktop and laptop.
TjMSN is free software and it is licensed under the terms of the GNU General Public License.
Enhancements:
- This release fixes a few major bugs.
- The first was a stream flush bug which caused switch board sessions (chat sessions) to time out before they even started.
- Errors thrown when trying to set the traffic class on a TCP socket are no longer ignored.
- This was causing the library to crash while connecting on Mac OS X.
- Finally, problems which occurred when a user added you to their contact list while offline or online were fixed.
<<lessTjMSN was started as due to a lack of decent MSN Messenger clients for Linux, so I decided that I would write a client that was platform independent, so that I would run on both my desktop and laptop.
TjMSN is free software and it is licensed under the terms of the GNU General Public License.
Enhancements:
- This release fixes a few major bugs.
- The first was a stream flush bug which caused switch board sessions (chat sessions) to time out before they even started.
- Errors thrown when trying to set the traffic class on a TCP socket are no longer ignored.
- This was causing the library to crash while connecting on Mac OS X.
- Finally, problems which occurred when a user added you to their contact list while offline or online were fixed.
Download (0.047MB)
Added: 2006-06-21 License: GPL (GNU General Public License) Price:
1221 downloads
GoldenPod 0.6
GoldenPod is a podcast client (or podcast aggregator, or podcatcher) written in Perl. more>>
GoldenPod is a podcast client (or podcast aggregator, or podcatcher, feel free to pick whichever name you want) written in perl.
It supports multiple ways to work. GoldenPod supports reading configuration files in ~/.goldenpod/ and then saving the podcasts to the directory defined there.
It supports just getting thrown into a directory where BashPodder used to be and replaces it automagically, and lastly it supports having its config files in the same dir as itself and then just being run from a random location and it detects and chdirs correctly.
Information on how to configure goldenpod can be found in the manpage. If GoldenPod is installed globally on your system just type "man goldenpod" and the manpage will happily pop up and tell you what you need, if not then type in the directory containing the GoldenPod files "man ./goldenpod.1" and itll (hopefully) pop happily up and (you guessed it) tell you what you
want to know.
Enhancements:
- A security problem that could result in arbitrary command execution on specially crafted download links in RSS feeds was fixed (GPSA-2006:1).
- The gpconf GUI was added.
- Use of older curl versions was fixed.
<<lessIt supports multiple ways to work. GoldenPod supports reading configuration files in ~/.goldenpod/ and then saving the podcasts to the directory defined there.
It supports just getting thrown into a directory where BashPodder used to be and replaces it automagically, and lastly it supports having its config files in the same dir as itself and then just being run from a random location and it detects and chdirs correctly.
Information on how to configure goldenpod can be found in the manpage. If GoldenPod is installed globally on your system just type "man goldenpod" and the manpage will happily pop up and tell you what you need, if not then type in the directory containing the GoldenPod files "man ./goldenpod.1" and itll (hopefully) pop happily up and (you guessed it) tell you what you
want to know.
Enhancements:
- A security problem that could result in arbitrary command execution on specially crafted download links in RSS feeds was fixed (GPSA-2006:1).
- The gpconf GUI was added.
- Use of older curl versions was fixed.
Download (0.018MB)
Added: 2006-07-29 License: GPL (GNU General Public License) Price:
1182 downloads
brandgang 0.1
brandgang is a http firewall tunneling for Java applets with restricted network. more>>
brandgang is a http firewall tunneling for Java applets with restricted network.
You should install the software like this:
Extract the archive to a (home-)directory. For now there are no
installation scripts or further installation instructions.
tar -xzvf brandgang-0.1.xxx.tar.gz
WinZip users check: TAR file smart CR/LF Conversion.
You will need to create directories "var" and "lib" by hand, if your
archiver ignores empty directories. Check MANIFEST for anything
missing.
Main features:
- This transparently uses the browser configured proxy, simulating duplex communication, by multiple java.net.HttpURLConnections to a http tunnel server, that forwards the connection. Because no reference to the proxy is made, no security exceptions will be thrown for restricted applets.
-
- A combination of encryption (RSA/RC4) and message digests(MD5) is used in an effort to secure an insecure datapath. Though this comes with only a (small) telnet and SSH client, it is supposed to be easy to modify other networking applets to use tunnels.
-
- You can still use modified clients for direct connections over tcp sockets. You can also use secured connections to the tunnel server over a common tcp socket, and have the connection forwarded.
-
- The tunnel server can forward to multiple servers, handling multiple tunnels concurrently. The tunnel server can handle requests from http clients for files,
- so you dont need to run any (other) httpd to host the applets. The tunnel server can be used to enable access to a LAN. You can allow accepting and connecting hosts for the tunnel server (besides setting a Java security policy).
-
- Both server and clients are written in Java.
<<lessYou should install the software like this:
Extract the archive to a (home-)directory. For now there are no
installation scripts or further installation instructions.
tar -xzvf brandgang-0.1.xxx.tar.gz
WinZip users check: TAR file smart CR/LF Conversion.
You will need to create directories "var" and "lib" by hand, if your
archiver ignores empty directories. Check MANIFEST for anything
missing.
Main features:
- This transparently uses the browser configured proxy, simulating duplex communication, by multiple java.net.HttpURLConnections to a http tunnel server, that forwards the connection. Because no reference to the proxy is made, no security exceptions will be thrown for restricted applets.
-
- A combination of encryption (RSA/RC4) and message digests(MD5) is used in an effort to secure an insecure datapath. Though this comes with only a (small) telnet and SSH client, it is supposed to be easy to modify other networking applets to use tunnels.
-
- You can still use modified clients for direct connections over tcp sockets. You can also use secured connections to the tunnel server over a common tcp socket, and have the connection forwarded.
-
- The tunnel server can forward to multiple servers, handling multiple tunnels concurrently. The tunnel server can handle requests from http clients for files,
- so you dont need to run any (other) httpd to host the applets. The tunnel server can be used to enable access to a LAN. You can allow accepting and connecting hosts for the tunnel server (besides setting a Java security policy).
-
- Both server and clients are written in Java.
Download (0.21MB)
Added: 2006-07-11 License: GPL (GNU General Public License) Price:
1200 downloads
Net::DBus::Error 0.33.4
Net::DBus::Error is a Perl module with error details for remote method invocation. more>>
Net::DBus::Error is a Perl module with error details for remote method invocation.
SYNOPSIS
package Music::Player::UnknownFormat;
use base qw(Net::DBus::Error);
# Define an error type for unknown track encoding type
# for a music player service
sub new {
my $proto = shift;
my $class = ref($proto) || $proto;
my $self = $class->SUPER::new(name => "org.example.music.UnknownFormat",
message => "Unknown track encoding format");
}
package Music::Player::Engine;
...snip...
# Play either mp3 or ogg music tracks, otherwise
# thrown an error
sub play {
my $self = shift;
my $url = shift;
if ($url =~ /.(mp3|ogg)$/) {
...play the track
} else {
die Music::Player::UnknownFormat->new();
}
}
This objects provides for strongly typed error handling. Normally a service would simply call
die "some message text"
When returning the error condition to the calling DBus client, the message is associated with a generic error code or "org.freedesktop.DBus.Failed". While this suffices for many applications, occasionally it is desirable to be able to catch and handle specific error conditions. For such scenarios the service should create subclasses of the Net::DBus::Error object providing in a custom error name. This error name is then sent back to the client instead of the genreic "org.freedesktop.DBus.Failed" code
<<lessSYNOPSIS
package Music::Player::UnknownFormat;
use base qw(Net::DBus::Error);
# Define an error type for unknown track encoding type
# for a music player service
sub new {
my $proto = shift;
my $class = ref($proto) || $proto;
my $self = $class->SUPER::new(name => "org.example.music.UnknownFormat",
message => "Unknown track encoding format");
}
package Music::Player::Engine;
...snip...
# Play either mp3 or ogg music tracks, otherwise
# thrown an error
sub play {
my $self = shift;
my $url = shift;
if ($url =~ /.(mp3|ogg)$/) {
...play the track
} else {
die Music::Player::UnknownFormat->new();
}
}
This objects provides for strongly typed error handling. Normally a service would simply call
die "some message text"
When returning the error condition to the calling DBus client, the message is associated with a generic error code or "org.freedesktop.DBus.Failed". While this suffices for many applications, occasionally it is desirable to be able to catch and handle specific error conditions. For such scenarios the service should create subclasses of the Net::DBus::Error object providing in a custom error name. This error name is then sent back to the client instead of the genreic "org.freedesktop.DBus.Failed" code
Download (0.092MB)
Added: 2006-11-13 License: Perl Artistic License Price:
1075 downloads
Java::JCR::Exception 0.08
Java::JCR::Exception is a Perl wrapper for repository exceptions. more>>
Java::JCR::Exception is a Perl wrapper for repository exceptions.
SYNOPSIS
eval {
my $node = $root->add_node(foo, nt:unstructured);
};
if ($@) {
print STDERR "Failed to add node foo: $@n";
}
This class is used to make the exceptions thrown from the Java code work more nicely in Perl. Primarily, this involves performing nicer stringification than is provided by Inline::Java.
<<lessSYNOPSIS
eval {
my $node = $root->add_node(foo, nt:unstructured);
};
if ($@) {
print STDERR "Failed to add node foo: $@n";
}
This class is used to make the exceptions thrown from the Java code work more nicely in Perl. Primarily, this involves performing nicer stringification than is provided by Inline::Java.
Download (0.047MB)
Added: 2007-06-05 License: Perl Artistic License Price:
871 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 thrown 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