pattern
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 554
Pattern-lab 0.4.0
Pattern-lab is a pattern recognition program. more>>
Pattern-lab is a pattern recognition program. Pattern-lab project is optimized for OCR, but not constrained to it. The method used is mainly pattern matching. Separation of merged patterns is one of the main goals. It is currently under development.
Enhancements:
- This release adds the Standardizing Transformation (ST) embedding IMage Euclidean Distance (IMED) in the preprocessing phase.
- Positive and negative effects of the new feature are explained in the manual.
<<lessEnhancements:
- This release adds the Standardizing Transformation (ST) embedding IMage Euclidean Distance (IMED) in the preprocessing phase.
- Positive and negative effects of the new feature are explained in the manual.
Download (2.5MB)
Added: 2007-03-21 License: GPL (GNU General Public License) Price:
950 downloads
Knitting Pattern Generator 0.3
Knitting Pattern Generator is a Python script to convert image files (PNG, GIF, BMP, etc.) into knitting patterns. more>>
Knitting Pattern Generator is a Python script to convert image files (PNG, GIF, BMP, etc.) into knitting patterns.
Usage:
python kpg.py myimage.png
<<lessUsage:
python kpg.py myimage.png
Download (0.008MB)
Added: 2007-04-25 License: GPL (GNU General Public License) Price:
923 downloads
Array::PatternMatcher 0.04
Array::PatternMatcher is a pattern matching for arrays. more>>
Array::PatternMatcher is a pattern matching for arrays.
SYNOPSIS
This section inlines the entire test suite. Please excuse the ok()s.
use Array::PatternMatcher;
Matching logical variables to input stream
# 1 - simple match of logical variable to input
my $pattern = AGE ;
my $input = 969 ;
my $result = pat_match ($pattern, $input, {} ) ;
ok($result->{AGE}, 969) ;
# 2 - if binding exists, it must equal the input
$input = 12;
my $new_result = pat_match ($pattern, $input, $result) ;
ok(!defined($new_result)) ;
# 3 - bind the pattern logical variables to the input list
$pattern = [qw(X Y)] ;
$input = [ 77, 45 ] ;
my $result = pat_match ($pattern, $input, {} ) ;
ok($result->{X}, 77) ;
Matching segments (quantifying) portions of the input stream
# 1
{
my $pattern = [a, [qw(X *)], d] ;
my $input = [a, b, c, d] ;
my $result = pat_match ($pattern, $input, {} ) ;
ok ("@{$result->{X}}","b c") ;
}
# 2
{
my $pattern = [a, [qw(X *)], [qw(Y *)], d] ;
my $input = [a, b, c, d] ;
my $result = pat_match ($pattern, $input, {} ) ;
ok ("@{$result->{Y}}","b c") ;
}
# 3
{
my $pattern = [a, [qw(X +)], d] ;
my $input = [a, b, c, d] ;
ok ("@{$result->{X}}","b c") ;
}
# 4
{
my $pattern = [ a, [qw(X ?)], c ] ;
my $input = [ a, b, c ] ;
my $result = pat_match ($pattern, $input, {} ) ;
ok ("$result->{X}","b") ;
}
# 5
{
my $pattern = [ qw(X OP Y is Z),
[
sub { "($_->{X} $_->{OP} $_->{Y}) == $_->{Z}" },
IF?
]
] ;
my $input = [qw(3 + 4 is 7) ] ;
my $result = pat_match ($pattern, $input, {} ) ;
ok ($result) ;
}
Single-matching:
Take a single input and a series of patterns and decide which pattern
matches the input:
# 1 - Here all input patterns must match the input
{
my @pattern ;
push @pattern, [ qw(X Y) ] ;
push @pattern, [ qw(22 Z ) ] ;
push @pattern, [ qw(M 33) ] ;
my $input = [ qw(22 33) ] ;
my $meta_pattern = [ AND?, @pattern ] ;
# if no bindings, add a binding between pattern and input
my $result = pat_match ($meta_pattern, $input, {} ) ;
ok ($result->{Z},33) ;
}
# 2 - Here, any one of the patterns must match the input
{
my @pattern ;
push @pattern, [ qw(99 22) ] ;
push @pattern, [ qw(33 22) ] ;
push @pattern, [ qw(44 3) ] ;
push @pattern, [ qw(22 Z) ] ;
my $input = [ qw(22 33) ] ;
my $meta_pattern = [ OR?, @pattern ] ;
# if no bindings, add a binding between pattern and input
my $result = pat_match ($meta_pattern, $input, {} ) ;
ok ($result->{Z},33) ;
}
# 3 - Here, none of the patterns must match the input
{
my @pattern ;
push @pattern, [ qw(99 22) ] ;
push @pattern, [ qw(33 22) ] ;
push @pattern, [ qw(44 3) ] ;
push @pattern, [ qw(22 Z) ] ;
my $input = [ qw(22 33) ] ;
my $meta_pattern = [ NOT?, @pattern ] ;
# if no bindings, add a binding between pattern and input
my $result = pat_match ($meta_pattern, $input, {} ) ;
ok (scalar keys %$result == 0) ;
}
# 4 - here the input must satisfy the predicate
{
sub numberp { $_[0] =~ /d+/ }
my $pattern = [ qw(X age), [qw(IS? N), νmberp] ] ;
my $input = [ qw(Mary age), thirty-four ] ;
# if no bindings, add a binding between pattern and input
my $result = pat_match ($pattern, $input, {} ) ;
ok (!defined($result));
}
# 5 - same thing, but this time a failing result ---
# not undef because it is the return val of numberp
{
sub numberp { $_[0] =~ /d+/ }
my $pattern = [ qw(X age), [qw(IS? N), νmberp] ] ;
my $input = [ qw(Mary age), 34 ] ;
my $result = pat_match ($pattern, $input, {} ) ;
ok ($result->{N},34) ;
}
Segment-matching:
Match a chunk of the input stream using *, +, ?
# 1 - * is greedy in this case, but not with 2 consecutve * patterns
{
my $pattern = [a, [qw(X *)], d] ;
my $input = [a, b, c, d] ;
# if no bindings, add a binding between pattern and input
my $result = pat_match ($pattern, $input, {} ) ;
warn sprintf "X*RETVAL: %s", Data::Dumper::Dumper($result) ;
ok ("@{$result->{X}}","b c") ;
}
# 2 - X* gets nothing, Y* gets all it can:
{
my $pattern = [a, [qw(X *)], [qw(Y *)], d] ;
my $input = [a, b, c, d] ;
# if no bindings, add a binding between pattern and input
my $result = pat_match ($pattern, $input, {} ) ;
warn sprintf "X*Y*RETVAL: %s", Data::Dumper::Dumper($result) ;
ok ("@{$result->{Y}}","b c") ;
}
# 3 - samething , but require at least one match for X
{
my $pattern = [a, [qw(X +)], d] ;
my $input = [a, b, c, d] ;
my $result = pat_match ($pattern, $input, {} ) ;
warn sprintf "RETVAL: @{$result->{X}}" ;
ok ("@{$result->{X}}","b c") ;
}
# 4 - require 0 or 1 match for X
{
my $pattern = [ a, [qw(X ?)], c ] ;
my $input = [ a, b, c ] ;
my $result = pat_match ($pattern, $input, {} ) ;
ok ("$result->{X}","b") ;
}
# 5 - evaluate a sub on the fly after match
{
my $pattern = [ qw(X OP Y is Z),
[
sub { "($_->{X} $_->{OP} $_->{Y}) == $_->{Z}" },
IF?
]
] ;
my $input = [qw(3 + 4 is 7) ] ;
my $result = pat_match ($pattern, $input, {} ) ;
ok ($result) ;
}
# --- 6 same thing, but fail
{
my $pattern = [ qw(X OP Y is Z),
[
sub { "($_->{X} $_->{OP} $_->{Y}) == $_->{Z}" },
IF?
]
] ;
my $input = [qw(3 + 4 is 8) ] ;
my $result = pat_match ($pattern, $input, {} ) ;
warn sprintf "IF_RETVAL2: *%s*", Data::Dumper::Dumper($result);
ok ($result eq ) ;
}
<<lessSYNOPSIS
This section inlines the entire test suite. Please excuse the ok()s.
use Array::PatternMatcher;
Matching logical variables to input stream
# 1 - simple match of logical variable to input
my $pattern = AGE ;
my $input = 969 ;
my $result = pat_match ($pattern, $input, {} ) ;
ok($result->{AGE}, 969) ;
# 2 - if binding exists, it must equal the input
$input = 12;
my $new_result = pat_match ($pattern, $input, $result) ;
ok(!defined($new_result)) ;
# 3 - bind the pattern logical variables to the input list
$pattern = [qw(X Y)] ;
$input = [ 77, 45 ] ;
my $result = pat_match ($pattern, $input, {} ) ;
ok($result->{X}, 77) ;
Matching segments (quantifying) portions of the input stream
# 1
{
my $pattern = [a, [qw(X *)], d] ;
my $input = [a, b, c, d] ;
my $result = pat_match ($pattern, $input, {} ) ;
ok ("@{$result->{X}}","b c") ;
}
# 2
{
my $pattern = [a, [qw(X *)], [qw(Y *)], d] ;
my $input = [a, b, c, d] ;
my $result = pat_match ($pattern, $input, {} ) ;
ok ("@{$result->{Y}}","b c") ;
}
# 3
{
my $pattern = [a, [qw(X +)], d] ;
my $input = [a, b, c, d] ;
ok ("@{$result->{X}}","b c") ;
}
# 4
{
my $pattern = [ a, [qw(X ?)], c ] ;
my $input = [ a, b, c ] ;
my $result = pat_match ($pattern, $input, {} ) ;
ok ("$result->{X}","b") ;
}
# 5
{
my $pattern = [ qw(X OP Y is Z),
[
sub { "($_->{X} $_->{OP} $_->{Y}) == $_->{Z}" },
IF?
]
] ;
my $input = [qw(3 + 4 is 7) ] ;
my $result = pat_match ($pattern, $input, {} ) ;
ok ($result) ;
}
Single-matching:
Take a single input and a series of patterns and decide which pattern
matches the input:
# 1 - Here all input patterns must match the input
{
my @pattern ;
push @pattern, [ qw(X Y) ] ;
push @pattern, [ qw(22 Z ) ] ;
push @pattern, [ qw(M 33) ] ;
my $input = [ qw(22 33) ] ;
my $meta_pattern = [ AND?, @pattern ] ;
# if no bindings, add a binding between pattern and input
my $result = pat_match ($meta_pattern, $input, {} ) ;
ok ($result->{Z},33) ;
}
# 2 - Here, any one of the patterns must match the input
{
my @pattern ;
push @pattern, [ qw(99 22) ] ;
push @pattern, [ qw(33 22) ] ;
push @pattern, [ qw(44 3) ] ;
push @pattern, [ qw(22 Z) ] ;
my $input = [ qw(22 33) ] ;
my $meta_pattern = [ OR?, @pattern ] ;
# if no bindings, add a binding between pattern and input
my $result = pat_match ($meta_pattern, $input, {} ) ;
ok ($result->{Z},33) ;
}
# 3 - Here, none of the patterns must match the input
{
my @pattern ;
push @pattern, [ qw(99 22) ] ;
push @pattern, [ qw(33 22) ] ;
push @pattern, [ qw(44 3) ] ;
push @pattern, [ qw(22 Z) ] ;
my $input = [ qw(22 33) ] ;
my $meta_pattern = [ NOT?, @pattern ] ;
# if no bindings, add a binding between pattern and input
my $result = pat_match ($meta_pattern, $input, {} ) ;
ok (scalar keys %$result == 0) ;
}
# 4 - here the input must satisfy the predicate
{
sub numberp { $_[0] =~ /d+/ }
my $pattern = [ qw(X age), [qw(IS? N), νmberp] ] ;
my $input = [ qw(Mary age), thirty-four ] ;
# if no bindings, add a binding between pattern and input
my $result = pat_match ($pattern, $input, {} ) ;
ok (!defined($result));
}
# 5 - same thing, but this time a failing result ---
# not undef because it is the return val of numberp
{
sub numberp { $_[0] =~ /d+/ }
my $pattern = [ qw(X age), [qw(IS? N), νmberp] ] ;
my $input = [ qw(Mary age), 34 ] ;
my $result = pat_match ($pattern, $input, {} ) ;
ok ($result->{N},34) ;
}
Segment-matching:
Match a chunk of the input stream using *, +, ?
# 1 - * is greedy in this case, but not with 2 consecutve * patterns
{
my $pattern = [a, [qw(X *)], d] ;
my $input = [a, b, c, d] ;
# if no bindings, add a binding between pattern and input
my $result = pat_match ($pattern, $input, {} ) ;
warn sprintf "X*RETVAL: %s", Data::Dumper::Dumper($result) ;
ok ("@{$result->{X}}","b c") ;
}
# 2 - X* gets nothing, Y* gets all it can:
{
my $pattern = [a, [qw(X *)], [qw(Y *)], d] ;
my $input = [a, b, c, d] ;
# if no bindings, add a binding between pattern and input
my $result = pat_match ($pattern, $input, {} ) ;
warn sprintf "X*Y*RETVAL: %s", Data::Dumper::Dumper($result) ;
ok ("@{$result->{Y}}","b c") ;
}
# 3 - samething , but require at least one match for X
{
my $pattern = [a, [qw(X +)], d] ;
my $input = [a, b, c, d] ;
my $result = pat_match ($pattern, $input, {} ) ;
warn sprintf "RETVAL: @{$result->{X}}" ;
ok ("@{$result->{X}}","b c") ;
}
# 4 - require 0 or 1 match for X
{
my $pattern = [ a, [qw(X ?)], c ] ;
my $input = [ a, b, c ] ;
my $result = pat_match ($pattern, $input, {} ) ;
ok ("$result->{X}","b") ;
}
# 5 - evaluate a sub on the fly after match
{
my $pattern = [ qw(X OP Y is Z),
[
sub { "($_->{X} $_->{OP} $_->{Y}) == $_->{Z}" },
IF?
]
] ;
my $input = [qw(3 + 4 is 7) ] ;
my $result = pat_match ($pattern, $input, {} ) ;
ok ($result) ;
}
# --- 6 same thing, but fail
{
my $pattern = [ qw(X OP Y is Z),
[
sub { "($_->{X} $_->{OP} $_->{Y}) == $_->{Z}" },
IF?
]
] ;
my $input = [qw(3 + 4 is 8) ] ;
my $result = pat_match ($pattern, $input, {} ) ;
warn sprintf "IF_RETVAL2: *%s*", Data::Dumper::Dumper($result);
ok ($result eq ) ;
}
Download (0.006MB)
Added: 2007-07-12 License: Perl Artistic License Price:
836 downloads
Isotopic Pattern Calculator 1.4
Isotopic Pattern Calculator is a calculates isotopic distributions. more>>
IPC is a program that calculates the isotopic distribution of a given chemical formula. It gives the rel. intensities and the propability of the masses belonging to a molecule ion, fragment or whatever is represented by the given chemical formula.
Furthernmore it can use GNUPlot to visualize the result. Only masses with a rel. Intensity bigger then 0.009% are shown. Additionaly ipc prints the overall number of peaks and the needed computation time.
The program uses an algorithm which computes the exact isotopic distribution. This leads to a large number of peaks which have very low rel. abundances. Even for a small molecule as Acetylsalicylic acid ( C9H8O4, Mr=180.15) there are 1350 peaks but only nine of them have a rel. abundance higher then 0.01%.
Enhancements:
- A complete list of elements and isotopes is now used.
- The list of elements is taken from the NIST.
<<lessFurthernmore it can use GNUPlot to visualize the result. Only masses with a rel. Intensity bigger then 0.009% are shown. Additionaly ipc prints the overall number of peaks and the needed computation time.
The program uses an algorithm which computes the exact isotopic distribution. This leads to a large number of peaks which have very low rel. abundances. Even for a small molecule as Acetylsalicylic acid ( C9H8O4, Mr=180.15) there are 1350 peaks but only nine of them have a rel. abundance higher then 0.01%.
Enhancements:
- A complete list of elements and isotopes is now used.
- The list of elements is taken from the NIST.
Download (0.070MB)
Added: 2005-08-15 License: GPL (GNU General Public License) Price:
1531 downloads
Pattern Classification Program 2.2
Pattern Classification Program is a machine learning program for pattern classification. more>>
Pattern Classification Program is an open-source machine learning program for supervised and unsupervised classification of patterns (vectors of measurements). Pattern Classification Program implements the following algorithms and methods:
- k-means clustering
- Fishers linear discriminant
- dimension reduction using Singular Value Decomposition
- Principal Component Analysis
- feature subset selection
- Bayes error estimation
- parametric classifiers (linear and quadratic)
- least-squares (pseudo-inverse) linear discriminant
- k-Nearest Neighbor
- neural networks (Multi-Layer Perceptron)
- Support Vector Machine algorithm
- cross-validation
- bagging (committee) classification
The program supports interactive and batch processing. Commands are issued through a keyboard-driven menu system in the interactive mode, or in a batch file in the batch mode. It is a binary executable and does not need any special run-time environment. PCP uses tab-delimited text files for input data. The results are displayed on the screen and saved in text files.
PCP runs under Linux and Windows operating systems (under Cygwin environment), on i386 architecture CPUs such as Intel Pentium or AMD Athlon. PCP has been developed and tested on RedHat Linux 9.0 distribution. It has also been tested on SUSE Linux 9.1 and Fedora Core 2 and verified to run on Knoppix 3.7 and Windows XP.
Enhancements:
- This release supports model selection for the linear SVM kernel and an option to build SVD transforms using training and test datasets (as opposed to just training data).
- P-errors are now reported in SVM model selection.
- The build process was simplified.
<<less- k-means clustering
- Fishers linear discriminant
- dimension reduction using Singular Value Decomposition
- Principal Component Analysis
- feature subset selection
- Bayes error estimation
- parametric classifiers (linear and quadratic)
- least-squares (pseudo-inverse) linear discriminant
- k-Nearest Neighbor
- neural networks (Multi-Layer Perceptron)
- Support Vector Machine algorithm
- cross-validation
- bagging (committee) classification
The program supports interactive and batch processing. Commands are issued through a keyboard-driven menu system in the interactive mode, or in a batch file in the batch mode. It is a binary executable and does not need any special run-time environment. PCP uses tab-delimited text files for input data. The results are displayed on the screen and saved in text files.
PCP runs under Linux and Windows operating systems (under Cygwin environment), on i386 architecture CPUs such as Intel Pentium or AMD Athlon. PCP has been developed and tested on RedHat Linux 9.0 distribution. It has also been tested on SUSE Linux 9.1 and Fedora Core 2 and verified to run on Knoppix 3.7 and Windows XP.
Enhancements:
- This release supports model selection for the linear SVM kernel and an option to build SVD transforms using training and test datasets (as opposed to just training data).
- P-errors are now reported in SVM model selection.
- The build process was simplified.
Download (4.3MB)
Added: 2006-05-25 License: BSD License Price:
1253 downloads
Layer-7 Packet Classifier for Linux 2007-07-27 (Pattern Definitions)
Layer-7 Packet Classifier for Linux is a packet classifier for Netfilter that identifies packets based on application layer. more>>
Layer-7 Packet Classifier for Linux is a packet classifier for Netfilter that identifies packets based on application layer (OSI layer 7) data. This means that it is able to classify packets as HTTP, FTP, Gnucleus, Kazaa, etc., regardless of ports.
It complements existing matches that classify based on port numbers, packet length, TOS bits, and so on. Combined with Linux QoS, it allows for full layer 7 packet shaping.
Main features:
- Patches for Linux 2.4 and 2.6
- Support for TCP, UDP and ICMP over IPv4
- Uses Netfilters connection tracking of FTP, IRC, etc
- Examines data across multiple packets
- Number of packets examined tunable on the fly through /proc
- Number of bytes examined tunable at module load time
- Distinguishes between new connections (those still being tested) and old unidentified connections
- Gives access to both Netfilter and QoS (rate limiting) features
- With the Netfilter "helper" match, you can distinguish between parent and child connections (e.g. ftp command/data)
<<lessIt complements existing matches that classify based on port numbers, packet length, TOS bits, and so on. Combined with Linux QoS, it allows for full layer 7 packet shaping.
Main features:
- Patches for Linux 2.4 and 2.6
- Support for TCP, UDP and ICMP over IPv4
- Uses Netfilters connection tracking of FTP, IRC, etc
- Examines data across multiple packets
- Number of packets examined tunable on the fly through /proc
- Number of bytes examined tunable at module load time
- Distinguishes between new connections (those still being tested) and old unidentified connections
- Gives access to both Netfilter and QoS (rate limiting) features
- With the Netfilter "helper" match, you can distinguish between parent and child connections (e.g. ftp command/data)
Download (MB)
Added: 2007-07-30 License: GPL (GNU General Public License) Price:
820 downloads
pyTrommler 1.0
pyTrommler is a cross platform drum machine that is loosely based on the now defunct Trommler project. more>>
pyTrommler is a cross platform drum machine that is loosely based on the now defunct Trommler project. pyTrommler supports WAV files as samples and features real-time audio playback.
Main features:
- Distributed under the GPL.
- Works under Linux, BSD, Windows.
- Graphical user interface based on GTK.
- Supporty complex rhythms (variable number of beats per pattern)
- Virtual drum "@ACCENT" to emphasize certain beats.
- 16 bit 44100kHz mono or stereo drum samples (individual stereo panning and volume adjustment)
- Realtime (stereo) audio output using SDL library.
- Alternatively, audio output to a wav file.
Enhancements:
- This release cleans up a lot of minor bugs and adds real time pattern/beat tracking.
<<lessMain features:
- Distributed under the GPL.
- Works under Linux, BSD, Windows.
- Graphical user interface based on GTK.
- Supporty complex rhythms (variable number of beats per pattern)
- Virtual drum "@ACCENT" to emphasize certain beats.
- 16 bit 44100kHz mono or stereo drum samples (individual stereo panning and volume adjustment)
- Realtime (stereo) audio output using SDL library.
- Alternatively, audio output to a wav file.
Enhancements:
- This release cleans up a lot of minor bugs and adds real time pattern/beat tracking.
Download (1.8MB)
Added: 2006-10-27 License: GPL (GNU General Public License) Price:
1092 downloads
Mptn 0.3.0
Mptn is a library providing a pattern matching mechanism similar to regular expressions. more>>
Mptn project is a library providing a pattern matching mechanism similar to regular expressions, but with several differences making it more suitable for building a morphological analyzer.
Differences are:
- The whole string is matched against the pattern; thus the emphasis is on finding appropriate variable assignments, not on quick search. (This also means mptns will generally work slower than regexps, since they cannot in general be described by finite state automata)
- All the possible variable assignments are iterated over, not just one.
- Named variables make patterns more readable. In addition, a pattern may be associated with a variable name, restricting the possible values of the variable. Thus, you can use, for example, {c1}{v}{c2}? to match a syllable of CV/CVC structure (consonant-vowel-consonant).
- "Matcher" mechanism to extend the matching process with arbitrary procedures.
<<lessDifferences are:
- The whole string is matched against the pattern; thus the emphasis is on finding appropriate variable assignments, not on quick search. (This also means mptns will generally work slower than regexps, since they cannot in general be described by finite state automata)
- All the possible variable assignments are iterated over, not just one.
- Named variables make patterns more readable. In addition, a pattern may be associated with a variable name, restricting the possible values of the variable. Thus, you can use, for example, {c1}{v}{c2}? to match a syllable of CV/CVC structure (consonant-vowel-consonant).
- "Matcher" mechanism to extend the matching process with arbitrary procedures.
Download (0.10MB)
Added: 2006-08-28 License: LGPL (GNU Lesser General Public License) Price:
1152 downloads
JuggleMaster 0.4
JuggleMaster project is a juggling siteswap animator. more>>
JuggleMaster project is a juggling siteswap animator.
JuggleMaster is a cross-platform juggling animator [understanding siteswap].
Anyone who doesnt know what siteswap is can still download it and look at the patterns that come with it, and examine the cool stuff they could do if they did understand it.
Enhancements:
- all: Makefile voodoo
- jmqt: initial add
- jmlib: Added patterns.h and patterns.cpp, which parse pattern files
- data: Added some style data for completeness
- jmdlx: Added printing mpegs. Thanks to luap for the color stuff.
- jmdlx: Added printing images
- jmdlx: HUGE list of fixes and changes from arkanes in #wxwidgets
- jmdlx: Added Visual Studio build stuff, also arkanes
- jmpocket: initial add
- jmlib: minor jmpocket compatability fixes
<<lessJuggleMaster is a cross-platform juggling animator [understanding siteswap].
Anyone who doesnt know what siteswap is can still download it and look at the patterns that come with it, and examine the cool stuff they could do if they did understand it.
Enhancements:
- all: Makefile voodoo
- jmqt: initial add
- jmlib: Added patterns.h and patterns.cpp, which parse pattern files
- data: Added some style data for completeness
- jmdlx: Added printing mpegs. Thanks to luap for the color stuff.
- jmdlx: Added printing images
- jmdlx: HUGE list of fixes and changes from arkanes in #wxwidgets
- jmdlx: Added Visual Studio build stuff, also arkanes
- jmpocket: initial add
- jmlib: minor jmpocket compatability fixes
Download (0.13MB)
Added: 2006-11-20 License: GPL (GNU General Public License) Price:
1070 downloads
XLSperl 0.4
XLSperl module allows you to use Perl one-liners with Microsoft Excel files. more>>
XLSperl module allows you to use Perl "one-liners" with Microsoft Excel files.
SYNOPSYS
XLSperl [options] -e ... file1.xls file2.xls ... fileX.xls
cat file.txt | XLSperl [options] -e ...
Perl "one-liners" have a great many uses for quick data processing tasks, often replacing the UNIX tools grep, sed, and awk. For example, a simple "grep" function can be written as:
perl -lne /pattern/ and print file.txt
which improves on the standard grep function by allowing the extended features of Perl regular expressions to be used.
However, this form of processing is only suitable for data that can be read (or needs to be written) in plain text format. XLSperl lets you use the same commands to process and create Microsoft Excel files, e.g. the following command will "grep" an Excel document:
XLSperl -lne /pattern/ and print file.xls
Usage:
Basic usage of XLSperl is as follows:
XLSperl [options] -e perl_code file1.xls file2.xls ... fileX.xls
Additionally Microsoft Excel files can be piped in to XLSperl
cat file.xls | XLSperl [options] -e perl_code
<<lessSYNOPSYS
XLSperl [options] -e ... file1.xls file2.xls ... fileX.xls
cat file.txt | XLSperl [options] -e ...
Perl "one-liners" have a great many uses for quick data processing tasks, often replacing the UNIX tools grep, sed, and awk. For example, a simple "grep" function can be written as:
perl -lne /pattern/ and print file.txt
which improves on the standard grep function by allowing the extended features of Perl regular expressions to be used.
However, this form of processing is only suitable for data that can be read (or needs to be written) in plain text format. XLSperl lets you use the same commands to process and create Microsoft Excel files, e.g. the following command will "grep" an Excel document:
XLSperl -lne /pattern/ and print file.xls
Usage:
Basic usage of XLSperl is as follows:
XLSperl [options] -e perl_code file1.xls file2.xls ... fileX.xls
Additionally Microsoft Excel files can be piped in to XLSperl
cat file.xls | XLSperl [options] -e perl_code
Download (0.009MB)
Added: 2007-07-26 License: Perl Artistic License Price:
822 downloads
libwrapiter 1.2.0
libwrapiter is a library that provides wrappers for C++ STL style iterators. more>>
libwrapiter is a library that provides wrappers for C++ STL style iterators.
It makes it easy to define generic iterator wrappers, which remove the need to expose underlying data structures when working with classes using STL containers.
Purpose:
Consider the following massively oversimplified example. Were using the private implementation pattern or pimpl to avoid sticking too much in the header files.
myproject/myclass.hh without libwrapiter
#include < list >
namespace myproject
{
class MyClass
{
private:
///name implementation data, using the private implementation pattern
///{
struct Implementation;
Implementation * _imp;
///}
///name disallow copying and assignment
///{
MyClass(const MyClass &);
const MyClass & operator= (const MyClass &);
///}
public:
MyClass();
~MyClass();
///name iterate over our items
///{
typedef std::list ::const_iterator Iterator;
Iterator begin() const;
Iterator end() const;
///}
};
}
Enhancements:
- Headers are now split into -fwd, -decl, and -impl, allowing finer grained control to give faster compile times.
- The old, undecorated header paths are still fine if you dont need this kind of control.
- libwrapiter has a new homepage.
<<lessIt makes it easy to define generic iterator wrappers, which remove the need to expose underlying data structures when working with classes using STL containers.
Purpose:
Consider the following massively oversimplified example. Were using the private implementation pattern or pimpl to avoid sticking too much in the header files.
myproject/myclass.hh without libwrapiter
#include < list >
namespace myproject
{
class MyClass
{
private:
///name implementation data, using the private implementation pattern
///{
struct Implementation;
Implementation * _imp;
///}
///name disallow copying and assignment
///{
MyClass(const MyClass &);
const MyClass & operator= (const MyClass &);
///}
public:
MyClass();
~MyClass();
///name iterate over our items
///{
typedef std::list ::const_iterator Iterator;
Iterator begin() const;
Iterator end() const;
///}
};
}
Enhancements:
- Headers are now split into -fwd, -decl, and -impl, allowing finer grained control to give faster compile times.
- The old, undecorated header paths are still fine if you dont need this kind of control.
- libwrapiter has a new homepage.
Download (0.13MB)
Added: 2007-06-06 License: GPL (GNU General Public License) Price:
871 downloads
Cypher 0.7.8
Cypher generates the .rdf (RDF graph) and .serql (SeRQL query) representation of a plain language input. more>>
Cypher generates the .rdf (RDF graph) and .serql (SeRQL query) representation of a plain language input.
With robust definition languages, its grammar and lexicon can quickly and easily be extended to process highly complex sentences and phrases of any natural language, and can cover any vocabulary.
Programmers can build next generation semantic Web applications that harness natural language.
Main features:
- Morpholgical Processing
- Word Sense Disambiguation
- Part of speech tagging
- Phrase Structure Grammar parser (phrase tree output)
- High Speed pattern matching algorithm
- Robust templating for RDF, and SeRQL output
- Easy to learn phrase description language , lexicon and framenet definition language
Enhancements:
- Change were made to the pattern element parser.
- Now either store or root may be specified as an attribute to determine if a pattern will be output.
- Setting to false prevents the pattern from being output if the pattern is the root pattern.
<<lessWith robust definition languages, its grammar and lexicon can quickly and easily be extended to process highly complex sentences and phrases of any natural language, and can cover any vocabulary.
Programmers can build next generation semantic Web applications that harness natural language.
Main features:
- Morpholgical Processing
- Word Sense Disambiguation
- Part of speech tagging
- Phrase Structure Grammar parser (phrase tree output)
- High Speed pattern matching algorithm
- Robust templating for RDF, and SeRQL output
- Easy to learn phrase description language , lexicon and framenet definition language
Enhancements:
- Change were made to the pattern element parser.
- Now either store or root may be specified as an attribute to determine if a pattern will be output.
- Setting to false prevents the pattern from being output if the pattern is the root pattern.
Download (6.2MB)
Added: 2006-09-07 License: Free for non-commercial use Price:
1228 downloads
SPServer 0.8
SPServer project is a server framework library written on C++ that implements the Half-Sync/Half-Async pattern. more>>
SPServer project is a server framework library written on C++ that implements the Half-Sync/Half-Async pattern.
SPServer is a server framework library written on C++ that implements the Half-Sync/Half-Async pattern ( http://www.cs.wustl.edu/~schmidt/PDF/HS-HA.pdf ). Its based on libevent in order to utilize the best I/O loop on any platform.
SPServer can simplify TCP server construction. It is a hybrid system between threaded and event-driven, and exploits the advantages of both programming models. It exposes a threaded programming style to programmers, while simultaneously using event-driven style to process network connection.
<<lessSPServer is a server framework library written on C++ that implements the Half-Sync/Half-Async pattern ( http://www.cs.wustl.edu/~schmidt/PDF/HS-HA.pdf ). Its based on libevent in order to utilize the best I/O loop on any platform.
SPServer can simplify TCP server construction. It is a hybrid system between threaded and event-driven, and exploits the advantages of both programming models. It exposes a threaded programming style to programmers, while simultaneously using event-driven style to process network connection.
Download (0.029MB)
Added: 2007-08-11 License: LGPL (GNU Lesser General Public License) Price:
804 downloads
Class::Adapter 1.02
Class::Adapter is a Perl implementation of the Adapter Design Pattern. more>>
Class::Adapter is a Perl implementation of the "Adapter" Design Pattern.
The Class::Adapter class is intended as an abstract base class for creating any sort of class or object that follows the Adapter pattern.
What is an Adapter?
The term Adapter refers to a "Design Pattern" of the same name, from the famous "Gang of Four" book "Design Patterns". Although their original implementation was designed for Java and similar single-inheritance strictly-typed langauge, the situation for which it applies is still valid.
An Adapter in this Perl sense of the term is when a class is created to achieve by composition (objects containing other object) something that cant be achieved by inheritance (sub-classing).
This is similar to the Decorator pattern, but is intended to be applied on a class-by-class basis, as opposed to being able to be applied one object at a time, as is the case with the Decorator pattern.
The Class::Adapter object holds a parent object that it "wraps", and when a method is called on the Class::Adapter, it manually calls the same (or different) method with the same (or different) parameters on the parent object contained within it.
Instead of these custom methods being hooked in on an object-by-object basis, they are defined at the class level.
Basically, a Class::Adapter is one of your fall-back positions when Perls inheritance model fails you, or is no longer good enough, and you need to do something twisty in order to make several APIs play nicely with each other.
What can I do with the actual Class::Adapter class
Well... nothing really. It exist to provide some extremely low level fundamental methods, and to provide a common base for inheritance of Adapter classes.
The base Class::Adapter class doesnt even implement a way to push method calls through to the underlying object, since the way in which that happens is the bit that changes from case to case.
To actually DO something, you probably want to go take a look at Class::Adapter::Builder, which makes the creation of Adapter classes relatively quick and easy.
<<lessThe Class::Adapter class is intended as an abstract base class for creating any sort of class or object that follows the Adapter pattern.
What is an Adapter?
The term Adapter refers to a "Design Pattern" of the same name, from the famous "Gang of Four" book "Design Patterns". Although their original implementation was designed for Java and similar single-inheritance strictly-typed langauge, the situation for which it applies is still valid.
An Adapter in this Perl sense of the term is when a class is created to achieve by composition (objects containing other object) something that cant be achieved by inheritance (sub-classing).
This is similar to the Decorator pattern, but is intended to be applied on a class-by-class basis, as opposed to being able to be applied one object at a time, as is the case with the Decorator pattern.
The Class::Adapter object holds a parent object that it "wraps", and when a method is called on the Class::Adapter, it manually calls the same (or different) method with the same (or different) parameters on the parent object contained within it.
Instead of these custom methods being hooked in on an object-by-object basis, they are defined at the class level.
Basically, a Class::Adapter is one of your fall-back positions when Perls inheritance model fails you, or is no longer good enough, and you need to do something twisty in order to make several APIs play nicely with each other.
What can I do with the actual Class::Adapter class
Well... nothing really. It exist to provide some extremely low level fundamental methods, and to provide a common base for inheritance of Adapter classes.
The base Class::Adapter class doesnt even implement a way to push method calls through to the underlying object, since the way in which that happens is the bit that changes from case to case.
To actually DO something, you probably want to go take a look at Class::Adapter::Builder, which makes the creation of Adapter classes relatively quick and easy.
Download (0.024MB)
Added: 2007-06-20 License: Perl Artistic License Price:
856 downloads
XML::PatAct::ToObjects 0.08
XML::PatAct::ToObjects is an action module for creating Perl objects. more>>
XML::PatAct::ToObjects is an action module for creating Perl objects.
SYNOPSIS
use XML::PatAct::ToObjects;
my $patterns = [ PATTERN => [ OPTIONS ],
PATTERN => "PERL-CODE",
... ];
my $matcher = XML::PatAct::ToObjects->new( Patterns => $patterns,
Matcher => $matcher,
CopyId => 1,
CopyAttributes => 1 );
XML::PatAct::ToObjects is a PerlSAX handler for applying pattern-action lists to XML parses or trees. XML::PatAct::ToObjects creates Perl objects of the types and contents of the action items you define.
New XML::PatAct::ToObject instances are creating by calling `new(). Parameters can be passed as a list of key, value pairs or a hash. `new() requires the Patterns and Matcher parameters, the rest are optional:
Patterns
The pattern-action list to apply.
Matcher
An instance of the pattern or query matching module.
CopyId
Causes the `ID attribute, if any, in a source XML element to be copied to an `ID attribute in newly created objects. Note that IDs may be lost of no pattern matches that element or an object is not created (-make) for that element.
CopyAttributes
Causes all attributes of the element to be copied to the newly created objects.
Each action can either be a list of options defined below or a string containing a fragment of Perl code. If the action is a string of Perl code then simple then some simple substitutions are made as described further below.
<<lessSYNOPSIS
use XML::PatAct::ToObjects;
my $patterns = [ PATTERN => [ OPTIONS ],
PATTERN => "PERL-CODE",
... ];
my $matcher = XML::PatAct::ToObjects->new( Patterns => $patterns,
Matcher => $matcher,
CopyId => 1,
CopyAttributes => 1 );
XML::PatAct::ToObjects is a PerlSAX handler for applying pattern-action lists to XML parses or trees. XML::PatAct::ToObjects creates Perl objects of the types and contents of the action items you define.
New XML::PatAct::ToObject instances are creating by calling `new(). Parameters can be passed as a list of key, value pairs or a hash. `new() requires the Patterns and Matcher parameters, the rest are optional:
Patterns
The pattern-action list to apply.
Matcher
An instance of the pattern or query matching module.
CopyId
Causes the `ID attribute, if any, in a source XML element to be copied to an `ID attribute in newly created objects. Note that IDs may be lost of no pattern matches that element or an object is not created (-make) for that element.
CopyAttributes
Causes all attributes of the element to be copied to the newly created objects.
Each action can either be a list of options defined below or a string containing a fragment of Perl code. If the action is a string of Perl code then simple then some simple substitutions are made as described further below.
Download (0.031MB)
Added: 2006-09-15 License: Perl Artistic License Price:
1134 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 pattern 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