vmware workstation tutorial
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 475
Derbrill Tutorials
Derbrill Tutorials are Free Tutorials For Writing Games and Multimedia Applications in Runtime Revolution with ArcadeEngine. more>>
Derbrill Tutorials are Free Tutorials For Writing Games and Multimedia Applications in Runtime Revolution with ArcadeEngine.
The tutorials come in a visually appealing e-book format which is both easy to read and use, the range of topics covered includes:
* The basics of Revolution such as: stacks, cards, scripts, messages and timers
* How to use geometric properties such as distances, angles and intersection rectangles
* Understanding and using different movements including linear, polygonal, circular and elliptic
* Advanced use of images
* Using the built-in collision detection
<<lessThe tutorials come in a visually appealing e-book format which is both easy to read and use, the range of topics covered includes:
* The basics of Revolution such as: stacks, cards, scripts, messages and timers
* How to use geometric properties such as distances, angles and intersection rectangles
* Understanding and using different movements including linear, polygonal, circular and elliptic
* Advanced use of images
* Using the built-in collision detection
Download (4.2MB)
Added: 2005-10-17 License: Freeware Price:
1470 downloads
Gnome Workstation Command Center 0.9.8
GWCC allows users to execute network utilities (ping, nslookup, traceroute). more>>
GWCC allows users to execute network utilities (ping, nslookup, traceroute) and workstation commands (netstat, df, process grep) from a single tabbed window.
Welcome to GWCC.This program is designed to provide an easy to use interface to your Unix system. I dont know about you, but perform the same operations over-and-over day-after-day, and the command line provided via a terminal window ceases to be very useful once you want to start doing something with the information - like saving or printing it.
In addition to having to know all the flags for all the commands you want to use, you also have to scroll up-and-down the terminal window to retrace your steps and to cut-and-paste (what was that IP address again?).
So, i hope you will find my GTK/GNOME-based point-and-click application of some use in your daily computing activities. Please feel free to write to me with any suggestions you may have (see Contacting The Author below).
Main features:
- Complete preferences system (no need to edit any config files, or know flags)
- GNOME support (session management, dialogs, menus, etc.)
- LibGLADE support
- Saving and Printing of all output!
- Highly configurable command flags and program behaviour.
<<lessWelcome to GWCC.This program is designed to provide an easy to use interface to your Unix system. I dont know about you, but perform the same operations over-and-over day-after-day, and the command line provided via a terminal window ceases to be very useful once you want to start doing something with the information - like saving or printing it.
In addition to having to know all the flags for all the commands you want to use, you also have to scroll up-and-down the terminal window to retrace your steps and to cut-and-paste (what was that IP address again?).
So, i hope you will find my GTK/GNOME-based point-and-click application of some use in your daily computing activities. Please feel free to write to me with any suggestions you may have (see Contacting The Author below).
Main features:
- Complete preferences system (no need to edit any config files, or know flags)
- GNOME support (session management, dialogs, menus, etc.)
- LibGLADE support
- Saving and Printing of all output!
- Highly configurable command flags and program behaviour.
Download (0.17MB)
Added: 2006-06-22 License: GPL (GNU General Public License) Price:
1224 downloads
KDE Simple Programming Tutorial 1.2
KDE Simple Programming Tutorial is a tutorial for developing a KDE application. more>>
KDE Simple Programming Tutorial is a tutorial for developing a KDE application.
With the only requirement of a little C++ knowledge, and using the latest KDE snapshots, the reader will learn how to build his/her first KDE application from a simple "Hello world" button to a Web browser with a DCOP interface that communicates with a bookmark application running in a separate process.
Theres also a spanish and a romanian version of the documentation.
<<lessWith the only requirement of a little C++ knowledge, and using the latest KDE snapshots, the reader will learn how to build his/her first KDE application from a simple "Hello world" button to a Web browser with a DCOP interface that communicates with a bookmark application running in a separate process.
Theres also a spanish and a romanian version of the documentation.
Download (MB)
Added: 2006-10-04 License: GPL (GNU General Public License) Price:
1121 downloads
MARC::Doc::Tutorial 2.00
MARC::Doc::Tutorial is a documentation-only module for new users of MARC::Record. more>>
MARC::Doc::Tutorial is a documentation-only module for new users of MARC::Record.
SYNOPSIS
perldoc MARC::Doc::Tutorial
What is MARC?
The MAchine Readable Cataloging format was designed by the Library of Congress in the late 1960s in order to allow libraries to convert their card catalogs into a digital format. The advantages of having computerized card catalogs were soon realized, and now MARC is being used by all sorts of libraries around the world to provide computerized access to their collections. MARC data in transmission format is optimized for processing by computers, so its not very readable for the normal human. For more about the MARC format, visit the Library of Congress at http://www.loc.gov/marc/
What is this Tutorial?
The document you are reading is a beginners guide to using Perl to processing MARC data, written in the cookbook style. Inside, you will find recipes on how to read, write, update and convert MARC data using the MARC::Record CPAN package. As with any cookbook, you should feel free to dip in at any section and use the recipe you find interesting.
If you are new to Perl, you may want to read from the beginning.
The document you are reading is distributed with the MARC::Record package, however in case you are reading it somewhere else, you can find the latest version at CPAN: http://www.cpan.org/modules/by-module/MARC/. Youll notice that some sections arent filled in yet, which is a result of this document being a work in progress. If you have ideas for new sections please make a suggestion to perl4lib: http://www.rice.edu/perl4lib/.
<<lessSYNOPSIS
perldoc MARC::Doc::Tutorial
What is MARC?
The MAchine Readable Cataloging format was designed by the Library of Congress in the late 1960s in order to allow libraries to convert their card catalogs into a digital format. The advantages of having computerized card catalogs were soon realized, and now MARC is being used by all sorts of libraries around the world to provide computerized access to their collections. MARC data in transmission format is optimized for processing by computers, so its not very readable for the normal human. For more about the MARC format, visit the Library of Congress at http://www.loc.gov/marc/
What is this Tutorial?
The document you are reading is a beginners guide to using Perl to processing MARC data, written in the cookbook style. Inside, you will find recipes on how to read, write, update and convert MARC data using the MARC::Record CPAN package. As with any cookbook, you should feel free to dip in at any section and use the recipe you find interesting.
If you are new to Perl, you may want to read from the beginning.
The document you are reading is distributed with the MARC::Record package, however in case you are reading it somewhere else, you can find the latest version at CPAN: http://www.cpan.org/modules/by-module/MARC/. Youll notice that some sections arent filled in yet, which is a result of this document being a work in progress. If you have ideas for new sections please make a suggestion to perl4lib: http://www.rice.edu/perl4lib/.
Download (0.77MB)
Added: 2007-07-10 License: GPL (GNU General Public License) Price:
836 downloads
Test::Unit::Tutorial 0.14
Test::Unit::Tutorial is a Perl module that contains a tutorial on unit testing. more>>
Test::Unit::Tutorial is a Perl module that contains a tutorial on unit testing.
SYNOPSIS
perldoc Test::Unit::Tutorial
Here should be extensive documentation on what unit testing is, why it is useful, and how to do it with the Test::Unit collection of modules.
Sorry for not implementing this yet.
Please have a look at the examples in the examples directory and read the README file that came with this distribution.
A short tutorial on how to use the unit testing framework is included in Test::Unit::TestCase.
Further examples can be found by looking at the self test collection, starting in Test::Unit::tests::AllTests.
<<lessSYNOPSIS
perldoc Test::Unit::Tutorial
Here should be extensive documentation on what unit testing is, why it is useful, and how to do it with the Test::Unit collection of modules.
Sorry for not implementing this yet.
Please have a look at the examples in the examples directory and read the README file that came with this distribution.
A short tutorial on how to use the unit testing framework is included in Test::Unit::TestCase.
Further examples can be found by looking at the self test collection, starting in Test::Unit::tests::AllTests.
Download (0.044MB)
Added: 2007-06-13 License: Perl Artistic License Price:
863 downloads
XML::Smart::Tutorial 1.6.9
XML::Smart::Tutorial is a Perl module with tutorials and examples for XML::Smart. more>>
XML::Smart::Tutorial is a Perl module with tutorials and examples for XML::Smart.
SYNOPSIS
This document is a tutorial for XML::Smart and shows some examples of usual things.
<<lessSYNOPSIS
This document is a tutorial for XML::Smart and shows some examples of usual things.
Download (0.049MB)
Added: 2006-09-12 License: GPL (GNU General Public License) Price:
1144 downloads
Array::Each::Tutorial 0.02
Array::Each::Tutorial - POD giving various examples how to use Array::Each. more>>
Array::Each::Tutorial - POD giving various examples how to use Array::Each.
SYNOPSIS
man Array::Each
man Array::Each::Tutorial
or
perldoc Array::Each
perldoc Array::Each::Tutorial
Overview
This tutorial contains only POD, so dont do this:
use Array::Each::Tutorial; # dont do this
Rather, simply read the POD (as you are doing). But first, please read the docs for Array::Each, because the whole scoop is there.
This tutorial is intended to augment those docs with examples showing situations where you might want to use Array::Each instead of other techniques.
EXAMPLES
Parallel Arrays vs. Using a Hash
First of all, use a hash. Its almost always the best solution if you want to associate a "key" with a "value". And there are modules available that will let you do wonderful things with hashes, like keeping the keys sorted or keeping them in the order they were added.
So given a hash, you might at some point want to do this:
my %h = ( a=>1, b=>2, c=>3, d=>4, e=>5 );
while( my( $k, $v ) = each %h ) {
# ... do something with $k and $v ...
}
On the other hand, if parallel arrays better implement your algorithm, then you may find you want to do something like this:
my @k = qw( a b c d e );
my @v = qw( 1 2 3 4 5 );
for my $i ( 0 .. $#k ) {
my( $k, $v ) = ( $k[$i], $v[$i] );
# ... do something with $k and $v (and maybe $i) ...
}
Using Array::Each, you could do the same thing this way:
use Array::Each;
my @k = qw( a b c d e );
my @v = qw( 1 2 3 4 5 );
my $obj = Array::Each->new( @k, @v );
while( my( $k, $v, $i ) = $obj->each ) {
# ... do something with $k and $v (and maybe $i) ...
}
If you dont need $i at all, you can leave it out, e.g.,
while( my( $k, $v ) = $obj->each ) {
# ... do something with $k and $v ...
}
If you have more than two parallel arrays, include them all in the call to new() and add as many "capture" variables as you need, e.g.,
my @k = qw( a b c d e );
my @v = qw( 1 2 3 4 5 );
my @p = qw( - + ~ = : );
my $obj = Array::Each->new( @k, @v, @p );
while( my( $k, $v, $p, $i ) = $obj->each ) {
# ... do something with $k, $v, and $p (and maybe $i) ...
}
<<lessSYNOPSIS
man Array::Each
man Array::Each::Tutorial
or
perldoc Array::Each
perldoc Array::Each::Tutorial
Overview
This tutorial contains only POD, so dont do this:
use Array::Each::Tutorial; # dont do this
Rather, simply read the POD (as you are doing). But first, please read the docs for Array::Each, because the whole scoop is there.
This tutorial is intended to augment those docs with examples showing situations where you might want to use Array::Each instead of other techniques.
EXAMPLES
Parallel Arrays vs. Using a Hash
First of all, use a hash. Its almost always the best solution if you want to associate a "key" with a "value". And there are modules available that will let you do wonderful things with hashes, like keeping the keys sorted or keeping them in the order they were added.
So given a hash, you might at some point want to do this:
my %h = ( a=>1, b=>2, c=>3, d=>4, e=>5 );
while( my( $k, $v ) = each %h ) {
# ... do something with $k and $v ...
}
On the other hand, if parallel arrays better implement your algorithm, then you may find you want to do something like this:
my @k = qw( a b c d e );
my @v = qw( 1 2 3 4 5 );
for my $i ( 0 .. $#k ) {
my( $k, $v ) = ( $k[$i], $v[$i] );
# ... do something with $k and $v (and maybe $i) ...
}
Using Array::Each, you could do the same thing this way:
use Array::Each;
my @k = qw( a b c d e );
my @v = qw( 1 2 3 4 5 );
my $obj = Array::Each->new( @k, @v );
while( my( $k, $v, $i ) = $obj->each ) {
# ... do something with $k and $v (and maybe $i) ...
}
If you dont need $i at all, you can leave it out, e.g.,
while( my( $k, $v ) = $obj->each ) {
# ... do something with $k and $v ...
}
If you have more than two parallel arrays, include them all in the call to new() and add as many "capture" variables as you need, e.g.,
my @k = qw( a b c d e );
my @v = qw( 1 2 3 4 5 );
my @p = qw( - + ~ = : );
my $obj = Array::Each->new( @k, @v, @p );
while( my( $k, $v, $p, $i ) = $obj->each ) {
# ... do something with $k, $v, and $p (and maybe $i) ...
}
Download (0.020MB)
Added: 2007-07-14 License: Perl Artistic License Price:
832 downloads
Black Orion Enterprise Linux Workstation 4.3
Black Orion Network is an update and system management platform. more>>
Black Orion Network is an update and system management platform for among others Black Orions redhat-compatible Enterprise Linux Distributions. Black Orion Enterprise Linux software distributions are offered to you by the open source community as free software.
A program is free software if users are free to redistribute copies, either with or without modifications, either gratis or charging a fee for distribution, to anyone anywhere. Being free to do these things means (among other things) that you do not have to ask or pay for permission. Please feel free to make and redistribute as many copies of Black Orion Enterprise Linux as you like.
How It Works:
1. Obtain Black Orion Enterprise Linux
Obtain one of Black Orions redhat-compatible Enterprise Linux Distributions from the downloads section.
2. Burn cd images
Burn the downloaded iso images on to a cd.
3. Register yourself as a Black Orion Network Member
Register yourself as a member in the Black Orion Network section.
4. Install Black Orion on a computer
Read the manuals for the various installation options. The system can also be installed as a rhel4 virtual machine.
5. Connect your system to the Black Orion Network
Connect your system to the Black Orion Network with the up2date client installed on your system. You can find up2date by right-clicking the Black Orion Network Alert Icon on your desktop. Connect your system with your member name and password (see 3).
<<lessA program is free software if users are free to redistribute copies, either with or without modifications, either gratis or charging a fee for distribution, to anyone anywhere. Being free to do these things means (among other things) that you do not have to ask or pay for permission. Please feel free to make and redistribute as many copies of Black Orion Enterprise Linux as you like.
How It Works:
1. Obtain Black Orion Enterprise Linux
Obtain one of Black Orions redhat-compatible Enterprise Linux Distributions from the downloads section.
2. Burn cd images
Burn the downloaded iso images on to a cd.
3. Register yourself as a Black Orion Network Member
Register yourself as a member in the Black Orion Network section.
4. Install Black Orion on a computer
Read the manuals for the various installation options. The system can also be installed as a rhel4 virtual machine.
5. Connect your system to the Black Orion Network
Connect your system to the Black Orion Network with the up2date client installed on your system. You can find up2date by right-clicking the Black Orion Network Alert Icon on your desktop. Connect your system with your member name and password (see 3).
Download (168MB)
Added: 2006-05-16 License: Freely Distributable Price:
720 downloads
Games::ScottAdams::Tutorial 0.04
Games::ScottAdams::Tutorial is a Perl module with the Scott Adams Adventure Compiler Tutorial. more>>
Games::ScottAdams::Tutorial is a Perl module with the Scott Adams Adventure Compiler Tutorial.
INTRODUCTION
This document walks you through the process of creating a small but complete and playable game with six rooms, seven items including a single treasure, and a couple of puzzles.
It makes no attempt to be complete: you need the reference manual for that. But by the time youve worked your way through this tutorial you should be familiar with rooms, items, actions and occurrences, and youll be ready to start writing your own games.
<<lessINTRODUCTION
This document walks you through the process of creating a small but complete and playable game with six rooms, seven items including a single treasure, and a couple of puzzles.
It makes no attempt to be complete: you need the reference manual for that. But by the time youve worked your way through this tutorial you should be familiar with rooms, items, actions and occurrences, and youll be ready to start writing your own games.
Download (0.048MB)
Added: 2007-01-04 License: Perl Artistic License Price:
1028 downloads
Template::Tutorial 2.15
Template::Tutorial are template toolkit tutorials. more>>
Template::Tutorial are template toolkit tutorials.
This section includes tutorials on using the Template Toolkit. Subjects currently include an general overview of the Template Toolkit, showing users how to get quickly up to speed building web content, and a tutorial on generating and using data files, with particular reference to XML.
Template::Tutorial::Web
Generating Web Content Using the Template Toolkit
This tutorial provides an introduction to the Template Toolkit and a "quick start" guide to getting up to speed. Its primarily focus is on using the Template Toolkit to build web content and it covers 4 basic areas: using tpage and ttree; using the Template.pm module in CGI scripts; writing Apache/mod_perl handlers; and extending the toolkit by writing plugins.
Template::Tutorial::Datafile
Creating Data Output Files Using the Template Toolkit
This tutorial gives an overview of the Template Toolkit, showing in particular how to use it to read and write data files in various different formats and styles. It was written by Dave Cross and first appeared as a lead article at http://www.perl.com/ earlier in the year (2001).
<<lessThis section includes tutorials on using the Template Toolkit. Subjects currently include an general overview of the Template Toolkit, showing users how to get quickly up to speed building web content, and a tutorial on generating and using data files, with particular reference to XML.
Template::Tutorial::Web
Generating Web Content Using the Template Toolkit
This tutorial provides an introduction to the Template Toolkit and a "quick start" guide to getting up to speed. Its primarily focus is on using the Template Toolkit to build web content and it covers 4 basic areas: using tpage and ttree; using the Template.pm module in CGI scripts; writing Apache/mod_perl handlers; and extending the toolkit by writing plugins.
Template::Tutorial::Datafile
Creating Data Output Files Using the Template Toolkit
This tutorial gives an overview of the Template Toolkit, showing in particular how to use it to read and write data files in various different formats and styles. It was written by Dave Cross and first appeared as a lead article at http://www.perl.com/ earlier in the year (2001).
Download (0.76MB)
Added: 2006-10-16 License: Perl Artistic License Price:
1107 downloads
JOpt.SDK Vehicle Routing Component 2.0.0 (Tutorial)
JOpt.SDK library is a routing software for Java that uses specialized genetic algorithms. more>>
JOpt.SDK library is a routing software for Java that uses specialized genetic algorithms to calculate an optimized allocation of orders and stops to mobile resources.
The algorithm not only provides tours at minimum costs but also considers an arbitrary set of constraints for each tour. You may define your own constraints and optimization goals in order to customize JOpt.SDK to your specific planning needs or you decide to use one of our best practices addons in order to achieve a fast application of our optimization algorithms to selected industries.
JOpt.SDK can solve nearly any problem that can be classified by one of the following types:
TSP - Traveling Salesman Problem. JOpt.SDK finds the shortest or fastest path for your mobile resources
VRPTW - Vehicle routing problem with time windows - like TSP but for a set of vehicles. JOpt.SDK finds an optimal allocation of orders and stops within a vehicle fleet. It may also consider different constraints for vehicles, drivers and stops.
JOpt.SDK functionality can be accessed via Java API and thus fits seamlessly into any JAVA application. Software developers may integrate the JOpt.SDK component into their application in order to offer their customers a consistent solution including optimization of mobile workforce schedules.
Enhancements:
- The tutorial has been revised to reflect some major API changes introduced since JOpt 2.0.0.
<<lessThe algorithm not only provides tours at minimum costs but also considers an arbitrary set of constraints for each tour. You may define your own constraints and optimization goals in order to customize JOpt.SDK to your specific planning needs or you decide to use one of our best practices addons in order to achieve a fast application of our optimization algorithms to selected industries.
JOpt.SDK can solve nearly any problem that can be classified by one of the following types:
TSP - Traveling Salesman Problem. JOpt.SDK finds the shortest or fastest path for your mobile resources
VRPTW - Vehicle routing problem with time windows - like TSP but for a set of vehicles. JOpt.SDK finds an optimal allocation of orders and stops within a vehicle fleet. It may also consider different constraints for vehicles, drivers and stops.
JOpt.SDK functionality can be accessed via Java API and thus fits seamlessly into any JAVA application. Software developers may integrate the JOpt.SDK component into their application in order to offer their customers a consistent solution including optimization of mobile workforce schedules.
Enhancements:
- The tutorial has been revised to reflect some major API changes introduced since JOpt 2.0.0.
Download (MB)
Added: 2007-05-08 License: Free For Educational Use Price:
903 downloads
PAR::Tutorial 0.941
PAR::Tutorial is a cross-platform Packaging and Deployment with PAR. more>>
PAR::Tutorial is a cross-platform Packaging and Deployment with PAR.
SYNOPSIS
This is a tutorial on PAR, first appeared at the 7th Perl Conference. The HTML version of this tutorial is available online as http://aut.dyndns.org/par-tutorial/.
On Deploying Perl Applications
% sshnuke.pl 10.2.2.2 -rootpw="Z1ON0101"
Perl v5.6.1 required--this is only v5.6.0, stopped at sshnuke.pl line 1.
BEGIN failed--compilation aborted at sshnuke.pl line 1.
Q: "Help! I cant run your program!"
A1: Install Perl & perl -MCPAN -einstall(...)
How do we know which modules are needed?
New versions of CPAN modules may break sshnuke.pl
A2: Install Perl & tar zxf my_perllib.tgz
Possibly overwriting existing modules; not cross-platform at all
A3: Use the executable generated by perlcc sshnuke.pl
Impossible to debug; perlcc usually does not work anyway
<<lessSYNOPSIS
This is a tutorial on PAR, first appeared at the 7th Perl Conference. The HTML version of this tutorial is available online as http://aut.dyndns.org/par-tutorial/.
On Deploying Perl Applications
% sshnuke.pl 10.2.2.2 -rootpw="Z1ON0101"
Perl v5.6.1 required--this is only v5.6.0, stopped at sshnuke.pl line 1.
BEGIN failed--compilation aborted at sshnuke.pl line 1.
Q: "Help! I cant run your program!"
A1: Install Perl & perl -MCPAN -einstall(...)
How do we know which modules are needed?
New versions of CPAN modules may break sshnuke.pl
A2: Install Perl & tar zxf my_perllib.tgz
Possibly overwriting existing modules; not cross-platform at all
A3: Use the executable generated by perlcc sshnuke.pl
Impossible to debug; perlcc usually does not work anyway
Download (0.19MB)
Added: 2006-07-20 License: Perl Artistic License Price:
1194 downloads
Test::LectroTest::Tutorial 0.3500
Test::LectroTest::Tutorial is a Perl module that contains documentation on how to use LectroTest to test your software. more>>
Test::LectroTest::Tutorial is a Perl module that contains documentation on how to use LectroTest to test your software.
SYNOPSIS
LectroTest is an automated, specification-based testing system. To use it, declare properties that specify the expected behavior of your software. Then invoke LectroTest to test whether those properties hold.
LectroTest does this by running repeated random trials against your software. If LectroTest finds that a property doesnt hold, it emits the counterexample that "broke" your software. You can then plug the counterexample into your software to debug the problem. (Its also a good idea to add the counterexample to your list of regression tests.)
Think of your softwares behavior as a haystack that youre searching for needles. Each error is a needle. You want to find the needles and remove of them. LectroTest will search the haystack for you -- its nice that way -- but first you must tell it about the shape of the haystack and how to recognize a needle when it sees one.
The Haystack
The shape of the haystack is defined by a set of "generator bindings," in which variables are bound to the output of value generators:
x = 0;
The above asserts for each point in the haystack that the output of the function the_thing_we_are_testing must be non-negative.
Put them together to make a Property
The generator bindings and needle recognizer are combined to make a property:
Property {
##[ x = 0;
}, name => "the_thing_we_are_testing(...) is non-negative";
Youll note that we also added a meaningful name. Although not strictly required, its an excellent practice that makes life easier. (Youll also note that we placed the generator bindings inside of the magic delimiters ##[ ]##. This tells Perl that our bindings are bindings and not regular Perl code.)
We can read the above property like so: "For all integers x and all characters c in the range A through Z, we assert that the_thing_we_are_testing is non-negative."
Testing whether your Properties hold
After you define properties for your software, just add them to a small Perl program that uses the Test::LectroTest module:
# MyProperties.l.t
use MyModule; # provides the_thing_we_are_testing
use Test::LectroTest;
Property {
##[ x = 0;
}, name => "the_thing_we_are_testing(...) is non-negative";
Then you can test your properties simply by running the program:
$ perl MyProperties.l.t
If your properties check out, youll see something like this:
1..1
ok 1 - the_thing_we_are_testing(...) is non-negative (1000 attempts)
If something goes wrong, however, LectroTest will tell you where it happened:
1..1
not ok 1 - the_thing_we_are_testing(...) is non-negative
falsified in 23 attempts
# Counterexample:
# $x = 4
# $c = "R"
What this says is that at the point (x=4, c="R") in the haystack, there is a needle (i.e., your property doesnt hold). With this information, you can examine your code to determine the cause of the error.
<<lessSYNOPSIS
LectroTest is an automated, specification-based testing system. To use it, declare properties that specify the expected behavior of your software. Then invoke LectroTest to test whether those properties hold.
LectroTest does this by running repeated random trials against your software. If LectroTest finds that a property doesnt hold, it emits the counterexample that "broke" your software. You can then plug the counterexample into your software to debug the problem. (Its also a good idea to add the counterexample to your list of regression tests.)
Think of your softwares behavior as a haystack that youre searching for needles. Each error is a needle. You want to find the needles and remove of them. LectroTest will search the haystack for you -- its nice that way -- but first you must tell it about the shape of the haystack and how to recognize a needle when it sees one.
The Haystack
The shape of the haystack is defined by a set of "generator bindings," in which variables are bound to the output of value generators:
x = 0;
The above asserts for each point in the haystack that the output of the function the_thing_we_are_testing must be non-negative.
Put them together to make a Property
The generator bindings and needle recognizer are combined to make a property:
Property {
##[ x = 0;
}, name => "the_thing_we_are_testing(...) is non-negative";
Youll note that we also added a meaningful name. Although not strictly required, its an excellent practice that makes life easier. (Youll also note that we placed the generator bindings inside of the magic delimiters ##[ ]##. This tells Perl that our bindings are bindings and not regular Perl code.)
We can read the above property like so: "For all integers x and all characters c in the range A through Z, we assert that the_thing_we_are_testing is non-negative."
Testing whether your Properties hold
After you define properties for your software, just add them to a small Perl program that uses the Test::LectroTest module:
# MyProperties.l.t
use MyModule; # provides the_thing_we_are_testing
use Test::LectroTest;
Property {
##[ x = 0;
}, name => "the_thing_we_are_testing(...) is non-negative";
Then you can test your properties simply by running the program:
$ perl MyProperties.l.t
If your properties check out, youll see something like this:
1..1
ok 1 - the_thing_we_are_testing(...) is non-negative (1000 attempts)
If something goes wrong, however, LectroTest will tell you where it happened:
1..1
not ok 1 - the_thing_we_are_testing(...) is non-negative
falsified in 23 attempts
# Counterexample:
# $x = 4
# $c = "R"
What this says is that at the point (x=4, c="R") in the haystack, there is a needle (i.e., your property doesnt hold). With this information, you can examine your code to determine the cause of the error.
Download (0.053MB)
Added: 2007-01-09 License: Perl Artistic License Price:
1018 downloads
Sub::Exporter::Tutorial 0.970
Sub::Exporter::Tutorial is a friendly guide to exporting with Sub::Exporter. more>>
Sub::Exporter::Tutorial is a friendly guide to exporting with Sub::Exporter.
Whats an Exporter?
When you use a module, first it is required, then its import method is called. The Perl documentation tells us that the following two lines are equivalent:
use Module LIST;
BEGIN { require Module; Module->import(LIST); }
The import method is the modules exporter.
The Basics of Sub::Exporter
Sub::Exporter builds a custom exporter which can then be installed into your module. It builds this method based on configuration passed to its setup_exporter method.
A very basic use case might look like this:
package Addition;
use Sub::Exporter;
Sub::Exporter::setup_exporter({ exports => [ qw(plus) ]});
sub plus { my ($x, $y) = @_; return $x + $y; }
This would mean that when someone used your Addition module, they could have its plus routine imported into their package:
use Addition qw(plus);
my $z = plus(2, 2); # this works, because now plus is in the main package
That syntax to set up the exporter, above, is a little verbose, so for the simple case of just naming some exports, you can write this:
use Sub::Exporter -setup => { exports => [ qw(plus) ] };
...which is the same as the original example -- except that now the exporter is built and installed at compile time. Well, that and you typed less.
Using Export Groups
You can specify whole groups of things that should be exportable together. These are called groups. Exporter calls these tags. To specify groups, you just pass a groups key in your exporter configuration:
package Food;
use Sub::Exporter -setup => {
exports => [ qw(apple banana beef fluff lox rabbit) ],
groups => {
fauna => [ qw(beef lox rabbit) ],
flora => [ qw(apple banana) ],
}
};
Now, to import all that delicious foreign meat, your consumer needs only to write:
use Food qw(:fauna);
use Food qw(-fauna);
Either one of the above is acceptable. A colon is more traditional, but barewords with a leading colon cant be enquoted by a fat arrow. Well see why that matters later on.
Groups can contain other groups. If you include a group name (with the leading dash or colon) in a group definition, it will be expanded recursively when the exporter is called. The exporter will not recurse into the same group twice while expanding groups.
There are two special groups: all and default. The all group is defined by default, and contains all exportable subs. You can redefine it, if you want to export only a subset when all exports are requested. The default group is the set of routines to export when nothing specific is requested. By default, there is no default group.
<<lessWhats an Exporter?
When you use a module, first it is required, then its import method is called. The Perl documentation tells us that the following two lines are equivalent:
use Module LIST;
BEGIN { require Module; Module->import(LIST); }
The import method is the modules exporter.
The Basics of Sub::Exporter
Sub::Exporter builds a custom exporter which can then be installed into your module. It builds this method based on configuration passed to its setup_exporter method.
A very basic use case might look like this:
package Addition;
use Sub::Exporter;
Sub::Exporter::setup_exporter({ exports => [ qw(plus) ]});
sub plus { my ($x, $y) = @_; return $x + $y; }
This would mean that when someone used your Addition module, they could have its plus routine imported into their package:
use Addition qw(plus);
my $z = plus(2, 2); # this works, because now plus is in the main package
That syntax to set up the exporter, above, is a little verbose, so for the simple case of just naming some exports, you can write this:
use Sub::Exporter -setup => { exports => [ qw(plus) ] };
...which is the same as the original example -- except that now the exporter is built and installed at compile time. Well, that and you typed less.
Using Export Groups
You can specify whole groups of things that should be exportable together. These are called groups. Exporter calls these tags. To specify groups, you just pass a groups key in your exporter configuration:
package Food;
use Sub::Exporter -setup => {
exports => [ qw(apple banana beef fluff lox rabbit) ],
groups => {
fauna => [ qw(beef lox rabbit) ],
flora => [ qw(apple banana) ],
}
};
Now, to import all that delicious foreign meat, your consumer needs only to write:
use Food qw(:fauna);
use Food qw(-fauna);
Either one of the above is acceptable. A colon is more traditional, but barewords with a leading colon cant be enquoted by a fat arrow. Well see why that matters later on.
Groups can contain other groups. If you include a group name (with the leading dash or colon) in a group definition, it will be expanded recursively when the exporter is called. The exporter will not recurse into the same group twice while expanding groups.
There are two special groups: all and default. The all group is defined by default, and contains all exportable subs. You can redefine it, if you want to export only a subset when all exports are requested. The default group is the set of routines to export when nothing specific is requested. By default, there is no default group.
Download (0.034MB)
Added: 2006-10-16 License: Perl Artistic License Price:
1104 downloads
Prima::tutorial 1.20
Prima::tutorial is an introductory tutorial. more>>
Prima::tutorial is an introductory tutorial.
Programming graphic interfaces is often considered somewhat boring, and not without a cause. It is a small pride in knowing that your buttons and scrollbars work exactly as millions of others buttons and scrollbars do, so whichever GUI toolkit is chosen, it is usually regarded as a tool of small importance, and the less obtrusive, the better.
Given that, and trying to live up to the famous Perl making easy things easy and hard things possible mantra, this manual page is an introductory tutorial meant to show how to write easy things easy. The hard things are explained in the other Prima manual pages ( see Prima ).
<<lessProgramming graphic interfaces is often considered somewhat boring, and not without a cause. It is a small pride in knowing that your buttons and scrollbars work exactly as millions of others buttons and scrollbars do, so whichever GUI toolkit is chosen, it is usually regarded as a tool of small importance, and the less obtrusive, the better.
Given that, and trying to live up to the famous Perl making easy things easy and hard things possible mantra, this manual page is an introductory tutorial meant to show how to write easy things easy. The hard things are explained in the other Prima manual pages ( see Prima ).
Download (1.4MB)
Added: 2006-08-24 License: Perl Artistic License Price:
1162 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 vmware workstation tutorial 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