homebrew channel tutorial
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 839
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
Channel 0.3 Beta
Channel is a generic/simple facility with the purpose of making message passing and event dispatching. more>>
Channel is a generic/simple facility with the purpose of making event dispatching and message passing as straightforward to use as data structures:
Channel is a template library, with its major components configurable as template parameters:
template
<
class Id_Type,
class Id_Trait = IdTrait ,
class SynchPolicy = ACE_MT_SYNCH,
class AllocPolicy,
class Router = MapRouter
>
class Channel
By replacing Id_Type, Id_Trait and Router with various concrete classes, Channel can support table/linear message routing, hierarchical routing and associative routing (Linda style) at the demand of user. The same way, we can use integer, string, POD structs or any class as message ids (provided that proper operations are defined with Id_Trait)
Channel provides complete publish/subscribe interface for channel members (peer threads in message passing and objects in event dispatching) to pub/sub message/event ids/types and send/receive messages/events
Channels are process local entities which can be "connected" to allow transparent distributed communication between members in different channels (Connectors based on tcp socket and unix domain socket are provided as samples)
Namespace control:
The ids published/subscribed by channel members constitute channels namespace.
Channel provides publish/subscribe scope control; When ids are published/subscribed, peers can specify desired scope (LOCAL, REMOTE, GLOBAL)
When 2 channels are connected, their namespaces are automatically "merged", which is transparent to both channel members and programmers. Members can communicate with members in remote channels the same way as with local members (by pub/sub ids).
Namespace merge/integration is controlled by:
Id scope specification
filters and translators defined at channel connections
Channel communication are peer-2-peer; there are no central daemons required for message passing.
Channel support both asynchronous message passing and synchronous event dispatching models.
Channel is built on top of
ACE (Adaptive Communication Environment) to gain platform independence.
Enhancements:
- The framework was ported to Windows XP with VC8.
- Dispatching policy was added as a Channel template parameter to support various dispatching algorithms.
- Broadcast and simple RoundRobin dispatching policies were implemented for testing.
- Callback was changed to functor style so that normal functions and functors can be directly used as callbacks.
<<lessChannel is a template library, with its major components configurable as template parameters:
template
<
class Id_Type,
class Id_Trait = IdTrait ,
class SynchPolicy = ACE_MT_SYNCH,
class AllocPolicy,
class Router = MapRouter
>
class Channel
By replacing Id_Type, Id_Trait and Router with various concrete classes, Channel can support table/linear message routing, hierarchical routing and associative routing (Linda style) at the demand of user. The same way, we can use integer, string, POD structs or any class as message ids (provided that proper operations are defined with Id_Trait)
Channel provides complete publish/subscribe interface for channel members (peer threads in message passing and objects in event dispatching) to pub/sub message/event ids/types and send/receive messages/events
Channels are process local entities which can be "connected" to allow transparent distributed communication between members in different channels (Connectors based on tcp socket and unix domain socket are provided as samples)
Namespace control:
The ids published/subscribed by channel members constitute channels namespace.
Channel provides publish/subscribe scope control; When ids are published/subscribed, peers can specify desired scope (LOCAL, REMOTE, GLOBAL)
When 2 channels are connected, their namespaces are automatically "merged", which is transparent to both channel members and programmers. Members can communicate with members in remote channels the same way as with local members (by pub/sub ids).
Namespace merge/integration is controlled by:
Id scope specification
filters and translators defined at channel connections
Channel communication are peer-2-peer; there are no central daemons required for message passing.
Channel support both asynchronous message passing and synchronous event dispatching models.
Channel is built on top of
ACE (Adaptive Communication Environment) to gain platform independence.
Enhancements:
- The framework was ported to Windows XP with VC8.
- Dispatching policy was added as a Channel template parameter to support various dispatching algorithms.
- Broadcast and simple RoundRobin dispatching policies were implemented for testing.
- Callback was changed to functor style so that normal functions and functors can be directly used as callbacks.
Download (5.5MB)
Added: 2006-03-16 License: MIT/X Consortium License Price:
1318 downloads
IRC Channel Relay Bot 1.1
The purpose of this bot is to relay messages from one IRC network to another. more>>
Relay-bot is a program we initially wrote because our group of friends that hang out on one channel could never seem to all stay on EFnet, and even if we could EFnet was splitting so badly at the time that it was unusable. However, we couldnt readily switch to another network because not everybody is always online and a few people wanted to stick with EFnet because there were other friends of theirs still there. So, relay-bot was born. It allowed us to split our channel across 2 (actually, 3 or 4) different IRC networks fairly effectively.
You[l need a copy Of Perl since perlay bot is written in Perl. Youll also need a copy of Net::IRC.
Theres currently no real installation routine; just untar the tarball, edit "relay-bot.config" and run "relay-bot.pl".
Enhancements:
- relay-bot.config: Fixed small issue in example config file
- BUGS, relay-bot.pl: Prepping for update to a new release
<<lessYou[l need a copy Of Perl since perlay bot is written in Perl. Youll also need a copy of Net::IRC.
Theres currently no real installation routine; just untar the tarball, edit "relay-bot.config" and run "relay-bot.pl".
Enhancements:
- relay-bot.config: Fixed small issue in example config file
- BUGS, relay-bot.pl: Prepping for update to a new release
Download (0.02MB)
Added: 2006-06-17 License: GPL (GNU General Public License) Price:
1277 downloads
Imager::Tutorial 0.54
Imager::Tutorial is an introduction to Imager. more>>
Imager::Tutorial is an introduction to Imager.
Before you start
If you have the necessary knowledge, install the image format libraries you want Imager image file support for, and Imager itself, otherwise arrange to have it done.
You will also want some sort of image viewer tool, whether an image editor like Photoshop or the GIMP, or a web browser.
Hello Boxes! - A Simple Start
As with any perl program its useful to start with a #! line, and to enable strict mode:
#!/usr/bin/perl -w
# you might to use warnings; instead of the -w above
use strict;
These lines will be omitted in further examples.
As with any module, you need to load it:
use Imager;
Now create a image to draw on:
my $image = Imager->new(xsize => 100, ysize => 100);
and draw a couple of filled rectangles on it:
$image->box(xmin => 0, ymin => 0, xmax => 99, ymax => 99,
filled => 1, color => blue);
$image->box(xmin => 20, ymin => 20, xmax => 79, ymax => 79,
filled => 1, color => green);
Since the first box fills the whole image, it can be simplified to:
$image->box(filled => 1, color => blue);
and save it to a file:
$image->write(file=>tutorial1.ppm)
or die Cannot save tutorial1.ppm: , $image->errstr;
So our completed program is:
use Imager;
my $image = Imager->new(xsize => 100, ysize => 100);
$image->box(filled => 1, color => blue);
$image->box(xmin => 20, ymin => 20, xmax => 79, ymax => 79,
filled => 1, color => green);
$image->write(file=>tutorial1.ppm)
or die Cannot save tutorial1.ppm: , $image->errstr;
<<lessBefore you start
If you have the necessary knowledge, install the image format libraries you want Imager image file support for, and Imager itself, otherwise arrange to have it done.
You will also want some sort of image viewer tool, whether an image editor like Photoshop or the GIMP, or a web browser.
Hello Boxes! - A Simple Start
As with any perl program its useful to start with a #! line, and to enable strict mode:
#!/usr/bin/perl -w
# you might to use warnings; instead of the -w above
use strict;
These lines will be omitted in further examples.
As with any module, you need to load it:
use Imager;
Now create a image to draw on:
my $image = Imager->new(xsize => 100, ysize => 100);
and draw a couple of filled rectangles on it:
$image->box(xmin => 0, ymin => 0, xmax => 99, ymax => 99,
filled => 1, color => blue);
$image->box(xmin => 20, ymin => 20, xmax => 79, ymax => 79,
filled => 1, color => green);
Since the first box fills the whole image, it can be simplified to:
$image->box(filled => 1, color => blue);
and save it to a file:
$image->write(file=>tutorial1.ppm)
or die Cannot save tutorial1.ppm: , $image->errstr;
So our completed program is:
use Imager;
my $image = Imager->new(xsize => 100, ysize => 100);
$image->box(filled => 1, color => blue);
$image->box(xmin => 20, ymin => 20, xmax => 79, ymax => 79,
filled => 1, color => green);
$image->write(file=>tutorial1.ppm)
or die Cannot save tutorial1.ppm: , $image->errstr;
Download (0.83MB)
Added: 2006-10-27 License: Perl Artistic License Price:
1094 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
OpenInteract2::Manual::Tutorial 1.99_06
OpenInteract2::Manual::Tutorial is a Perl module that will teach learn you how to create and modify a package. more>>
OpenInteract2::Manual::Tutorial is a Perl module that will teach learn you how to create and modify a package.
SYNOPSIS
This tutorial will show you the different methods for creating a package and how to maintain them.
CREATING THE PACKAGE
A word on the example
For our example were going to create a book package. This will keep track of all our books and allow us to search our library, add new books, update existing ones and remove old ones. It wont be the backbone for a massive e-commerce website to make you lots of money. It does not attempt to best model the relationships for all the data about a book.
Looking for shortcuts?
If you want to get something running in the fastest manner possible we can generate a simple CRUDS application for you. (CRUDS: CReate Update Delete Search) Just run something like the following:
$ oi2_manage easy_app --package=book --table=book
--dsn=DBI:Pg:dbname=mylibrary --username=foo --password=bar
This will create a simple application built off a table book with templates and objects for searching, creating, updating and removing objects. (More at OpenInteract2::Manage::Package::CreatePackageFromTable.)
Since this is a tutorial well assume you want to read to learn, so on we go.
Generating the skeleton
OpenInteract comes with tools to create a skeleton package -- we dont want to do all this from scratch! The skeleton package has the directory structure, metadata and a number of files to get you going on your new package. Heres how to create one -- be sure to first go to the directory under which the package will be created:
$ oi2_manage create_package --package=book
And heres what youll see:
PROGRESS: Starting task
PROGRESS: Task complete
ACTION: Create package book
OK: Package book created ok in /path/to/my/book
And now lets see what it created:
$ find book/
book/
book/conf
book/conf/spops.ini
book/conf/action.ini
book/data
book/doc
book/doc/book.pod
book/struct
book/template
book/template/sample.tmpl
book/script
book/html
book/html/images
book/OpenInteract2
book/OpenInteract2/Action
book/OpenInteract2/Action/Book.pm
book/OpenInteract2/SQLInstall
book/OpenInteract2/SQLInstall/Book.pm
book/package.ini
book/MANIFEST.SKIP
book/Changes
book/MANIFEST
These files and directories are explained in OpenInteract2::Manual::Packages.
You will normally need to edit/add the following:
book/package.ini # Add name, version, author information
book/MANIFEST # Add names of distribution files
book/conf/spops.ini # Describe the objects your package uses
book/conf/action.ini # Map URLs to handlers in your package
book/data # Specify the initial data and security
book/struct # Describe the tables used to store your objects
book/template # HTML to display and manipulate your objects
book/OpenInteract2 # Optional Perl modules defining object behavior
book/OpenInteract2/Action # Manipulate objects for desired functionality
book/OpenInteract2/SQLInstall # Tell the installer about your tables, data, security
book/doc/book.pod # Last but not least, tell the world about it
Short sidebar: Creating a MANIFEST
Notice that we create a MANIFEST file for you when the package is created. As you add more files to your package youll need to add them to your book/MANIFEST. Fortunately, it can be created automatically:
$ cd /path/to/mypackage
$ perl -MExtUtils::Manifest -e ExtUtils::Manifest::mkmanifest()
Thats it! If you have an old MANIFEST file in the directory it will be copied to MANIFEST.bak. Also note that files matching patterns in the book/MANIFEST.SKIP file will not be included.
<<lessSYNOPSIS
This tutorial will show you the different methods for creating a package and how to maintain them.
CREATING THE PACKAGE
A word on the example
For our example were going to create a book package. This will keep track of all our books and allow us to search our library, add new books, update existing ones and remove old ones. It wont be the backbone for a massive e-commerce website to make you lots of money. It does not attempt to best model the relationships for all the data about a book.
Looking for shortcuts?
If you want to get something running in the fastest manner possible we can generate a simple CRUDS application for you. (CRUDS: CReate Update Delete Search) Just run something like the following:
$ oi2_manage easy_app --package=book --table=book
--dsn=DBI:Pg:dbname=mylibrary --username=foo --password=bar
This will create a simple application built off a table book with templates and objects for searching, creating, updating and removing objects. (More at OpenInteract2::Manage::Package::CreatePackageFromTable.)
Since this is a tutorial well assume you want to read to learn, so on we go.
Generating the skeleton
OpenInteract comes with tools to create a skeleton package -- we dont want to do all this from scratch! The skeleton package has the directory structure, metadata and a number of files to get you going on your new package. Heres how to create one -- be sure to first go to the directory under which the package will be created:
$ oi2_manage create_package --package=book
And heres what youll see:
PROGRESS: Starting task
PROGRESS: Task complete
ACTION: Create package book
OK: Package book created ok in /path/to/my/book
And now lets see what it created:
$ find book/
book/
book/conf
book/conf/spops.ini
book/conf/action.ini
book/data
book/doc
book/doc/book.pod
book/struct
book/template
book/template/sample.tmpl
book/script
book/html
book/html/images
book/OpenInteract2
book/OpenInteract2/Action
book/OpenInteract2/Action/Book.pm
book/OpenInteract2/SQLInstall
book/OpenInteract2/SQLInstall/Book.pm
book/package.ini
book/MANIFEST.SKIP
book/Changes
book/MANIFEST
These files and directories are explained in OpenInteract2::Manual::Packages.
You will normally need to edit/add the following:
book/package.ini # Add name, version, author information
book/MANIFEST # Add names of distribution files
book/conf/spops.ini # Describe the objects your package uses
book/conf/action.ini # Map URLs to handlers in your package
book/data # Specify the initial data and security
book/struct # Describe the tables used to store your objects
book/template # HTML to display and manipulate your objects
book/OpenInteract2 # Optional Perl modules defining object behavior
book/OpenInteract2/Action # Manipulate objects for desired functionality
book/OpenInteract2/SQLInstall # Tell the installer about your tables, data, security
book/doc/book.pod # Last but not least, tell the world about it
Short sidebar: Creating a MANIFEST
Notice that we create a MANIFEST file for you when the package is created. As you add more files to your package youll need to add them to your book/MANIFEST. Fortunately, it can be created automatically:
$ cd /path/to/mypackage
$ perl -MExtUtils::Manifest -e ExtUtils::Manifest::mkmanifest()
Thats it! If you have an old MANIFEST file in the directory it will be copied to MANIFEST.bak. Also note that files matching patterns in the book/MANIFEST.SKIP file will not be included.
Download (0.91MB)
Added: 2007-07-27 License: Perl Artistic License Price:
819 downloads
Boost Channel 0.07.1
Boost Channel is a C++ template framework for distributed message passing and event dispatching. more>>
Boost Channel is a C++ template framework for distributed message passing and event dispatching. Its major components (message IDs, routing algorithms...) are highly configurable as template parameters.
As a namespace shared by peer threads, channels support publish/subscribe scope control, message filtering, and translation.
Enhancements:
- Jamfile.v2 was added for building the channel library and examples (the current boost CVS build system was changed so Jamfile.v2 is required).
- However, there are issues with building samples using Jamfile.v2 with WindowsXP and VC++.
- Windows users should use the existing Jamfile (v1).
- This may involve replacing the boost/tools/build/v1 directory with the content from an older boost release or CVS checkout (such as 12/10/2006).
<<lessAs a namespace shared by peer threads, channels support publish/subscribe scope control, message filtering, and translation.
Enhancements:
- Jamfile.v2 was added for building the channel library and examples (the current boost CVS build system was changed so Jamfile.v2 is required).
- However, there are issues with building samples using Jamfile.v2 with WindowsXP and VC++.
- Windows users should use the existing Jamfile (v1).
- This may involve replacing the boost/tools/build/v1 directory with the content from an older boost release or CVS checkout (such as 12/10/2006).
Download (0.087MB)
Added: 2007-01-26 License: MIT/X Consortium License Price:
1003 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
Album::Tutorial 1.05
Album::Tutorial is a Perl module on how to use the Album program. more>>
Album::Tutorial is a Perl module on how to use the Album program.
SYNOPSIS
This tutorial describes the basic use of the Album program to create and maintain browser based photo albums.
Getting started
To get started, create a new directory and cd to it. Create a subdirectory large and put some pictures there. If you have installed the album tool in your execution path, you can now execute it as follows:
$ album -v
No info.dat, adding images from large
info.dat: Cannot update (does not exist)
Number of entries = 7 (7 added)
mkdir thumbnails
mkdir icons
mkdir css
Creating icons: first-gr.png first.png ... sound.png movie.jpg
Creating style sheets: common.css index.css ... journal.css
im023.jpg: thumbnail OK
im024.jpg: thumbnail OK
im025.jpg: thumbnail OK
im026.jpg: thumbnail OK
im027.jpg: thumbnail OK
im028.jpg: thumbnail OK
im029.jpg: thumbnail OK
Creating pages for 7 images
(Needed to write 7 image pages)
Creating pages for 1 index
(Needed to write 1 index page)
Your results will vary, but be similar to this example run. What you can see is that album found 7 images in the large directory, created thumbnails, icons and css directories, created thumbnails by resizing the images, and finally created the HTML pages. You can inspect your first photo album by opening file index.html with your favorite browser. You can click on any image to see the larger version. Navigation buttons are provided to the left of the image.
It is interesting to run album again:
$ album -v
No info.dat, adding images from large
info.dat: Cannot update (does not exist)
Number of entries = 7 (7 added)
.......[7]
Creating pages for 7 images
(No image pages needed updating)
Creating pages for 1 index
(No index pages needed updating)
album tries to avoid doing unnecessary work as much as possible. In this case, all thumbnails and image and index pages are up to date. The line of periods shows progress, one period for each image processed.
<<lessSYNOPSIS
This tutorial describes the basic use of the Album program to create and maintain browser based photo albums.
Getting started
To get started, create a new directory and cd to it. Create a subdirectory large and put some pictures there. If you have installed the album tool in your execution path, you can now execute it as follows:
$ album -v
No info.dat, adding images from large
info.dat: Cannot update (does not exist)
Number of entries = 7 (7 added)
mkdir thumbnails
mkdir icons
mkdir css
Creating icons: first-gr.png first.png ... sound.png movie.jpg
Creating style sheets: common.css index.css ... journal.css
im023.jpg: thumbnail OK
im024.jpg: thumbnail OK
im025.jpg: thumbnail OK
im026.jpg: thumbnail OK
im027.jpg: thumbnail OK
im028.jpg: thumbnail OK
im029.jpg: thumbnail OK
Creating pages for 7 images
(Needed to write 7 image pages)
Creating pages for 1 index
(Needed to write 1 index page)
Your results will vary, but be similar to this example run. What you can see is that album found 7 images in the large directory, created thumbnails, icons and css directories, created thumbnails by resizing the images, and finally created the HTML pages. You can inspect your first photo album by opening file index.html with your favorite browser. You can click on any image to see the larger version. Navigation buttons are provided to the left of the image.
It is interesting to run album again:
$ album -v
No info.dat, adding images from large
info.dat: Cannot update (does not exist)
Number of entries = 7 (7 added)
.......[7]
Creating pages for 7 images
(No image pages needed updating)
Creating pages for 1 index
(No index pages needed updating)
album tries to avoid doing unnecessary work as much as possible. In this case, all thumbnails and image and index pages are up to date. The line of periods shows progress, one period for each image processed.
Download (0.049MB)
Added: 2006-11-17 License: Perl Artistic License Price:
1071 downloads
Chatbot::Alpha::Tutorial 2.04
Chatbot::Alpha::Tutorial is a beginners guide to Chatbot::Alpha 2.x. more>>
Chatbot::Alpha::Tutorial is a beginners guide to Chatbot::Alpha 2.x.
INTRODUCTION
What is Chatbot::Alpha?
Chatbot::Alpha is a Perl module for reading and processing Alpha code. Alpha code is a command-driven response language, primarily used for chatterbots.
The language format is quite simple: its a line-by-line language. The first character is the command, followed by the commands data. The simplest of all Alpha replies is the standard one-way question and answer:
+ hello bot
- Hello human.
Alpha Commands Overview
Here are all the commands supported by Chatbot::Alpha:
+ (Plus)
The + symbol is the basis of all your replies. Its the trigger--that is, what the user says to activate that reply. In most cases this command comes first in a reply, followed by supporting commands that tell the bot what to do next.
- (Minus)
The - command has many purposes. In the example above, a single +TRIGGER and a single -REPLY will give you a one-way question-answer case. If you use multiple -REPLYs under one +TRIGGER, then they will become random responses. On *CONDITIONS, the -REPLYs will be called when no condition returns true. On &HOLDERS, the -REPLY is the first thing the bot sends. And the list goes on... well get into the many uses for -REPLY later.
% (Percent)
The % command is for "that" emulation. If youve worked with AIML youll know what that refers to. Its there to help take the A.D.D. syndrome out of your bots. You can make specific replies based on what the bot last said. Like if the bot asks "Do you have any pets?" and the user says "yes", the bot can ask "What kind of pets?" instead of a generic reply to "yes". Youll learn all about this in the tutorial later.
^ (Carat)
The ^ command is to continue from your last -REPLY. For example, if your reply is very long and you want to break it down a few lines in the reply file (as not to have a horizontal scrollbar and be hard to read), this is the command to use. The ^CONTINUE command will adds its data to the last -REPLY you used under the +TRIGGER.
@ (At)
The @ command is for a redirection. Alpha triggers are "dead-on", meaning "hello|hey" is literally "hello|hey", not "hello OR hey". So when you want one to point to the other, use the @REDIRECT command.
* (Star)
The * is for conditionals. Youll learn about these later as well.
& (Amperstand)
This is for simple conversation holders. Emphasis is on the word "simple." They dont always work, so youd use %THAT if it was really important. The &HOLDER command is slowly becoming deprecated.
# (Pound)
The # command is for executing Perl codes within your reply set. Sometimes Alpha just cant handle the complex tasks you have in mind, and this can fill in all the blanks (assuming youre fluent with Perl anyway).
/ (Slash)
This is comment data, not processed within Chatbot::Alpha.
LessThan and GreaterThan
The > and < are labels. Right now theyre used only for topics.
<<lessINTRODUCTION
What is Chatbot::Alpha?
Chatbot::Alpha is a Perl module for reading and processing Alpha code. Alpha code is a command-driven response language, primarily used for chatterbots.
The language format is quite simple: its a line-by-line language. The first character is the command, followed by the commands data. The simplest of all Alpha replies is the standard one-way question and answer:
+ hello bot
- Hello human.
Alpha Commands Overview
Here are all the commands supported by Chatbot::Alpha:
+ (Plus)
The + symbol is the basis of all your replies. Its the trigger--that is, what the user says to activate that reply. In most cases this command comes first in a reply, followed by supporting commands that tell the bot what to do next.
- (Minus)
The - command has many purposes. In the example above, a single +TRIGGER and a single -REPLY will give you a one-way question-answer case. If you use multiple -REPLYs under one +TRIGGER, then they will become random responses. On *CONDITIONS, the -REPLYs will be called when no condition returns true. On &HOLDERS, the -REPLY is the first thing the bot sends. And the list goes on... well get into the many uses for -REPLY later.
% (Percent)
The % command is for "that" emulation. If youve worked with AIML youll know what that refers to. Its there to help take the A.D.D. syndrome out of your bots. You can make specific replies based on what the bot last said. Like if the bot asks "Do you have any pets?" and the user says "yes", the bot can ask "What kind of pets?" instead of a generic reply to "yes". Youll learn all about this in the tutorial later.
^ (Carat)
The ^ command is to continue from your last -REPLY. For example, if your reply is very long and you want to break it down a few lines in the reply file (as not to have a horizontal scrollbar and be hard to read), this is the command to use. The ^CONTINUE command will adds its data to the last -REPLY you used under the +TRIGGER.
@ (At)
The @ command is for a redirection. Alpha triggers are "dead-on", meaning "hello|hey" is literally "hello|hey", not "hello OR hey". So when you want one to point to the other, use the @REDIRECT command.
* (Star)
The * is for conditionals. Youll learn about these later as well.
& (Amperstand)
This is for simple conversation holders. Emphasis is on the word "simple." They dont always work, so youd use %THAT if it was really important. The &HOLDER command is slowly becoming deprecated.
# (Pound)
The # command is for executing Perl codes within your reply set. Sometimes Alpha just cant handle the complex tasks you have in mind, and this can fill in all the blanks (assuming youre fluent with Perl anyway).
/ (Slash)
This is comment data, not processed within Chatbot::Alpha.
LessThan and GreaterThan
The > and < are labels. Right now theyre used only for topics.
Download (0.030MB)
Added: 2007-04-02 License: Perl Artistic License Price:
938 downloads
RiveScript::Tutorial 1.02
RiveScript::Tutorial is a beginners guide to creating their first RiveScript brain. more>>
RiveScript::Tutorial is a beginners guide to creating their first RiveScript brain.
This tutorial outlines the various capabilities of the RiveScript specification and offers some recommended pointers for creating a well-formed RiveScript brain. What you do with this knowledge is up to you; be creative!
Be sure to skim over the RiveScript manpage first, because this tutorial jumps right in to using the various RiveScript commands without always explaining what each of them do.
A Simple RiveScript Interpreter
Here is a simple Perl script for running a RiveScript interpreter. This assumes that the brains RS files will be stored in a directory called "tutorial", local to the Perl script. Youd want to edit certain parameters in this code if you see fit.
#!/usr/bin/perl -w
use strict;
use warnings;
use RiveScript;
# Create the RiveScript interpreter.
my $rive = new RiveScript();
# Load the RS tutorial brain.
$rive->loadDirectory ("./tutorial");
# Sort them.
$rive->sortReplies;
# Go into a chatting loop.
while (1) {
print "User> ";
my $msg = ;
chomp $msg;
# Grab a reply.
my @reply = $rive->reply (user,$msg);
print " Bot> $_n" foreach(@reply);
}
<<lessThis tutorial outlines the various capabilities of the RiveScript specification and offers some recommended pointers for creating a well-formed RiveScript brain. What you do with this knowledge is up to you; be creative!
Be sure to skim over the RiveScript manpage first, because this tutorial jumps right in to using the various RiveScript commands without always explaining what each of them do.
A Simple RiveScript Interpreter
Here is a simple Perl script for running a RiveScript interpreter. This assumes that the brains RS files will be stored in a directory called "tutorial", local to the Perl script. Youd want to edit certain parameters in this code if you see fit.
#!/usr/bin/perl -w
use strict;
use warnings;
use RiveScript;
# Create the RiveScript interpreter.
my $rive = new RiveScript();
# Load the RS tutorial brain.
$rive->loadDirectory ("./tutorial");
# Sort them.
$rive->sortReplies;
# Go into a chatting loop.
while (1) {
print "User> ";
my $msg = ;
chomp $msg;
# Grab a reply.
my @reply = $rive->reply (user,$msg);
print " Bot> $_n" foreach(@reply);
}
Download (0.20MB)
Added: 2006-12-06 License: Perl Artistic License Price:
1064 downloads
PDF::Reuse::Tutorial 0.11
PDF::Reuse::Tutorial is a Perl module that will teach you how to produce PDF-files with PDF::Reuse. more>>
PDF::Reuse::Tutorial is a Perl module that will teach you how to produce PDF-files with PDF::Reuse.
In this tutorial I will show some aspects of PDF::Reuse, so you should be able to use it in your own programs. Most important is how to produce and reuse PDF-code, and then if you are interested, you can look at Graphics and JavaScript, so you can to do special things.
Reusing code:
You can take advantage of what has been done before, it is not necessary to start from scratch every time you create a PDF-file. You use old PDF-files as a source for forms, images, fonts and texts. The components are taken as they are, or rearranged, and you add your own texts and you produce new output.
If you dont care too much about the size of your templates, you should make them with a commercial, visual tool, thats most practical; and then you should use PDF::Reuse to mass produce your files. In this tutorial I show in many places how create single files with PDF::Reuse. That is possible, but more of an exception. I do it here to show the technique. You will anyway need it to add texts and graphics to your templates.
Graphics:
With this module you get a good possibility to program directly with the basic graphic operators of PDF. This is perhaps an advanced level, and you can avoid it if you want. On the other hand, it is not very difficult, and if you take advantage of it, your possibilities to manage text and graphics increase very much. You should look at the "PDF-reference manual" which probably is possible to download from http://partners.adobe.com/asn/developer/acrosdk/docs.html. Look especially at chapter 4 and 5, Graphics and Text, and the Operator summary.
Whenever the function prAdd() is used in this tutorial, you can probably get more explanations in the "PDF-reference manual". The code, you add to the content stream with prAdd(), has to follow the PDF syntax completely.
JavaScript:
You can add JavaScript to your PDF-file programmatically. This works with Acrobat Reader 5.0.5 or Acrobat 5.0 and higher versions.
You should have the "Acrobat JavaScript Object Specification" by hand. If you havent got Acrobat, you can probably download it from http://partners.adobe.com/asn/developer/technotes/acrobatpdf.html. It is technical note # 5186. JavaScript for HTML and PDF differs so much that you need the manual, even if you know JavaScript very well.
<<lessIn this tutorial I will show some aspects of PDF::Reuse, so you should be able to use it in your own programs. Most important is how to produce and reuse PDF-code, and then if you are interested, you can look at Graphics and JavaScript, so you can to do special things.
Reusing code:
You can take advantage of what has been done before, it is not necessary to start from scratch every time you create a PDF-file. You use old PDF-files as a source for forms, images, fonts and texts. The components are taken as they are, or rearranged, and you add your own texts and you produce new output.
If you dont care too much about the size of your templates, you should make them with a commercial, visual tool, thats most practical; and then you should use PDF::Reuse to mass produce your files. In this tutorial I show in many places how create single files with PDF::Reuse. That is possible, but more of an exception. I do it here to show the technique. You will anyway need it to add texts and graphics to your templates.
Graphics:
With this module you get a good possibility to program directly with the basic graphic operators of PDF. This is perhaps an advanced level, and you can avoid it if you want. On the other hand, it is not very difficult, and if you take advantage of it, your possibilities to manage text and graphics increase very much. You should look at the "PDF-reference manual" which probably is possible to download from http://partners.adobe.com/asn/developer/acrosdk/docs.html. Look especially at chapter 4 and 5, Graphics and Text, and the Operator summary.
Whenever the function prAdd() is used in this tutorial, you can probably get more explanations in the "PDF-reference manual". The code, you add to the content stream with prAdd(), has to follow the PDF syntax completely.
JavaScript:
You can add JavaScript to your PDF-file programmatically. This works with Acrobat Reader 5.0.5 or Acrobat 5.0 and higher versions.
You should have the "Acrobat JavaScript Object Specification" by hand. If you havent got Acrobat, you can probably download it from http://partners.adobe.com/asn/developer/technotes/acrobatpdf.html. It is technical note # 5186. JavaScript for HTML and PDF differs so much that you need the manual, even if you know JavaScript very well.
Download (0.13MB)
Added: 2007-06-21 License: Perl Artistic License Price:
863 downloads
Apache::PAR::tutorial 0.30
Apache::PAR::tutorial is a Perl module with information on getting Apache::PAR up and running. more>>
Apache::PAR::tutorial is a Perl module with information on getting Apache::PAR up and running.
Apache::PAR is a framework for including Perl ARchive files in a mod_perl (1.x or 2.x) environment. It allows an author to package up a web application, including configuration, static files, Perl modules, and Registry and PerlRun scripts to include in a single file. This archive can then be moved to other locations on the same system or distributed and loaded with a single set of configuration options in the Apache configuration.
These modules are based on PAR.pm by Autrijus Tang and Archive::Zip by Ned Konz as well as the mod_perl modules. They extend the concept of PAR files to mod_perl, similar to how WAR archives work for Java. An archive (which is really a zip file), contains one or more elements which can be served to clients making requests to an Apache web server. Scripts, modules, and static content should then be able to be served from within the .par archive without modifications.
For the package developer
For the package developer, Apache::PAR allows for easy package management, which frees the author from the task of creating a full Perl package. Apache::PAR allows the package developer to set the required Apache configuration directly in a package which greatly simplifies the install process for the end user and gives the the developer the ability to assign URLs which remain the same on all systems that the package is installed on. It is possible to decompress the contents of the PAR file during startup, which allows the use of code which relies on outside content (templating systems, etc)
For the package user
Once Apache::PAR is installed, it can be configured in an Apache configuration file with as little as two lines. Once setup, to add a new .par package to the system a user only has to place the package in the directory specified in the Apache configuration and restart Apache. All other configuration needs are provided by the module itself.
<<lessApache::PAR is a framework for including Perl ARchive files in a mod_perl (1.x or 2.x) environment. It allows an author to package up a web application, including configuration, static files, Perl modules, and Registry and PerlRun scripts to include in a single file. This archive can then be moved to other locations on the same system or distributed and loaded with a single set of configuration options in the Apache configuration.
These modules are based on PAR.pm by Autrijus Tang and Archive::Zip by Ned Konz as well as the mod_perl modules. They extend the concept of PAR files to mod_perl, similar to how WAR archives work for Java. An archive (which is really a zip file), contains one or more elements which can be served to clients making requests to an Apache web server. Scripts, modules, and static content should then be able to be served from within the .par archive without modifications.
For the package developer
For the package developer, Apache::PAR allows for easy package management, which frees the author from the task of creating a full Perl package. Apache::PAR allows the package developer to set the required Apache configuration directly in a package which greatly simplifies the install process for the end user and gives the the developer the ability to assign URLs which remain the same on all systems that the package is installed on. It is possible to decompress the contents of the PAR file during startup, which allows the use of code which relies on outside content (templating systems, etc)
For the package user
Once Apache::PAR is installed, it can be configured in an Apache configuration file with as little as two lines. Once setup, to add a new .par package to the system a user only has to place the package in the directory specified in the Apache configuration and restart Apache. All other configuration needs are provided by the module itself.
Download (0.025MB)
Added: 2006-10-12 License: Perl Artistic License Price:
1107 downloads
Jifty::Manual::Tutorial 0.60912
Jifty::Manual::Tutorial is a Perl module for Zero to Jifty in a Jiffy. more>>
Jifty::Manual::Tutorial is a Perl module for Zero to Jifty in a Jiffy.
This tutorial should give you everything you need to build your first application with Jifty.
HOW TO
The requirements
Heres what you need to have installed -- at least when we write it.
Installing Jifty
No bones about it. We believe pretty strongly in the DRY (Dont Repeat Yourself) principle. Thats one of the big reasons we love Perl and CPAN. Jifty makes use of lots of amazing code from CPAN. At last count, it directly depended on 60 packages from CPAN. Most of these libraries are cross-platform pure-Perl packages and should run great out of the box on any platform you can get Perl onto.
Weve gone to lengths to make sure you dont spend your day downloading library after library by bundling everything we can inside the Jifty package. With luck, all youll need to install is a few tricky libraries that actually need to be compiled for your operating system. (Little things like Perls database interface and the embedded SQLite that Jifty defaults to.)
You can either grab a complete Jifty package from http://download.jifty.org/pub/jifty/ or install from CPAN. If you get the slim version from CPAN, youll have to install Jiftys dependencies yourself. (Though we help out with that where we can.) If you want to get up and running quickly, grab the latest version from:
http://download.jifty.org/pub/jifty/
Either way, the installation process is the same:
# tar xzvf jifty- .tgz
# cd jifty-
# perl Makefile.PL
# make
# make test
# make install
If the tests dont pass, we want to hear about it. Please join us on jifty-devel@lists.jifty.org and report the failure. (See "GETTING HELP" below for info on how to join the list.)
<<lessThis tutorial should give you everything you need to build your first application with Jifty.
HOW TO
The requirements
Heres what you need to have installed -- at least when we write it.
Installing Jifty
No bones about it. We believe pretty strongly in the DRY (Dont Repeat Yourself) principle. Thats one of the big reasons we love Perl and CPAN. Jifty makes use of lots of amazing code from CPAN. At last count, it directly depended on 60 packages from CPAN. Most of these libraries are cross-platform pure-Perl packages and should run great out of the box on any platform you can get Perl onto.
Weve gone to lengths to make sure you dont spend your day downloading library after library by bundling everything we can inside the Jifty package. With luck, all youll need to install is a few tricky libraries that actually need to be compiled for your operating system. (Little things like Perls database interface and the embedded SQLite that Jifty defaults to.)
You can either grab a complete Jifty package from http://download.jifty.org/pub/jifty/ or install from CPAN. If you get the slim version from CPAN, youll have to install Jiftys dependencies yourself. (Though we help out with that where we can.) If you want to get up and running quickly, grab the latest version from:
http://download.jifty.org/pub/jifty/
Either way, the installation process is the same:
# tar xzvf jifty- .tgz
# cd jifty-
# perl Makefile.PL
# make
# make test
# make install
If the tests dont pass, we want to hear about it. Please join us on jifty-devel@lists.jifty.org and report the failure. (See "GETTING HELP" below for info on how to join the list.)
Download (0.52MB)
Added: 2006-09-25 License: Perl Artistic License Price:
1124 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
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 homebrew channel 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