code metrics
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 5198
ifmetric 0.3
ifmetric is a Linux tool for setting the metrics of all IPv4 routes attached to a given network interface at once. more>>
ifmetric is a Linux tool for setting the metrics of all IPv4 routes attached to a given network interface at once.
This may be used to change the priority of routing IPv4 traffic over the interface. Lower metrics correlate with higher priorities.
ifmetrics purpose
Sometimes two network interfaces of different speeds with equal routes are available at the same time. (e.g. a laptop with both a wireless and a copper LAN card) The one with the greater througput should be preferred over the other. To achieve this, you may use the routes metric field. Routes with lower metrics are preferred over those with higher. Unfortunately many network configurators (like DHCP clients) do not support to set the metric for a route. ifmetric may be used to manipulate the metrics of routes a posteriori. The default metric for a route in the Linux kernel is 0, meaning the highest priority.
ifmetric makes use of the NETLINK interface of the Linux kernel for manipulating the routes. Thus, ifmetric is compatible with complex routes created with iproute2.
ifmetric doesnt modify the routes atomically. The is due to the NETLINK API. However, this should not hurt since ifmetric makes sure that not routes are ever lost while modifying them.
Usage:
Have a look on the manual page ifmetric(8).
To give all other interfaces a higher priority than wlan0 simply run:
ifmetric wlan0 1
To reset the metrics of the routes attached to wlan0 simply run:
ifmetric wlan0 0
<<lessThis may be used to change the priority of routing IPv4 traffic over the interface. Lower metrics correlate with higher priorities.
ifmetrics purpose
Sometimes two network interfaces of different speeds with equal routes are available at the same time. (e.g. a laptop with both a wireless and a copper LAN card) The one with the greater througput should be preferred over the other. To achieve this, you may use the routes metric field. Routes with lower metrics are preferred over those with higher. Unfortunately many network configurators (like DHCP clients) do not support to set the metric for a route. ifmetric may be used to manipulate the metrics of routes a posteriori. The default metric for a route in the Linux kernel is 0, meaning the highest priority.
ifmetric makes use of the NETLINK interface of the Linux kernel for manipulating the routes. Thus, ifmetric is compatible with complex routes created with iproute2.
ifmetric doesnt modify the routes atomically. The is due to the NETLINK API. However, this should not hurt since ifmetric makes sure that not routes are ever lost while modifying them.
Usage:
Have a look on the manual page ifmetric(8).
To give all other interfaces a higher priority than wlan0 simply run:
ifmetric wlan0 1
To reset the metrics of the routes attached to wlan0 simply run:
ifmetric wlan0 0
Download (0.080MB)
Added: 2006-05-17 License: GPL (GNU General Public License) Price:
1256 downloads
Codestriker 1.9.3
Codestriker is a web application that supports collaborative code inspections. more>>
Codestriker project is an open-sourced web application which supports online code reviewing. Traditional document reviews are supported, as well as reviewing diffs generated by an SCM (Source Code Management) system and plain unidiff patches.
There are integration points with CVS, Subversion, Clearcase, Perforce, Visual SourceSafe and Bugzilla. There is a plug-in architecture for supporting other SCMs and issue tracking systems.
Using Codestriker for your reviews minimizes paper work, ensures that issues, comments and decisions are recorded in a database, and provides a comfortable workspace for actually performing code inspections.
An optional highly-configurable metrics subsystem allows you to record code inspection metrics as a part of your process.
Codestriker is written in Perl, and runs on all of the major platforms and browsers, and is licenced under the GPL.
Configuration
This section is concerned with unpacking the Codestriker distribution into a suitable location, and then configuring it. For UNIX distribution, the following commands may be appropriate on your system:
% mkdir /var/www/codestriker
% cd /var/www/codestriker
% tar zxvf /from/installed/location/codestriker-X.Y.Z.tar.gz
% chown -R apache.apache /var/www/codestriker/codestriker-X.Y.Z
Here "apache" is the user which runs the Apache server. It could be "nobody" under different systems. Check with the ps auxww command, or check your Apache configuration files. Under Windows, the Codestriker distribution could be unzipped into a suitable location under c:program files, or just c:codestriker.
The next task is to edit the codestriker.conf configuration file to reflect the settings on your site. The file is documented with examples to assist in setting appropriate values. The file is in Perl syntax, so lines starting with a # indicate a comment.
Enhancements:
- The project list screen now displays, for each project, the total number of open topics and the total number of topics.
- Clicking on the count will go to the topic list screen with the relevant topics displayed.
- The VSS repository handler has been modified so that topics can be created by labels or version numbers in the start and end tag fields.
- The URI filter in the Template Toolkit changed its behaviour in 2.16, which was responsible for generating invalid links.
- This has now been fixed.
- There is better handling of Subversion diffs that were generated on non-English systems.
<<lessThere are integration points with CVS, Subversion, Clearcase, Perforce, Visual SourceSafe and Bugzilla. There is a plug-in architecture for supporting other SCMs and issue tracking systems.
Using Codestriker for your reviews minimizes paper work, ensures that issues, comments and decisions are recorded in a database, and provides a comfortable workspace for actually performing code inspections.
An optional highly-configurable metrics subsystem allows you to record code inspection metrics as a part of your process.
Codestriker is written in Perl, and runs on all of the major platforms and browsers, and is licenced under the GPL.
Configuration
This section is concerned with unpacking the Codestriker distribution into a suitable location, and then configuring it. For UNIX distribution, the following commands may be appropriate on your system:
% mkdir /var/www/codestriker
% cd /var/www/codestriker
% tar zxvf /from/installed/location/codestriker-X.Y.Z.tar.gz
% chown -R apache.apache /var/www/codestriker/codestriker-X.Y.Z
Here "apache" is the user which runs the Apache server. It could be "nobody" under different systems. Check with the ps auxww command, or check your Apache configuration files. Under Windows, the Codestriker distribution could be unzipped into a suitable location under c:program files, or just c:codestriker.
The next task is to edit the codestriker.conf configuration file to reflect the settings on your site. The file is documented with examples to assist in setting appropriate values. The file is in Perl syntax, so lines starting with a # indicate a comment.
Enhancements:
- The project list screen now displays, for each project, the total number of open topics and the total number of topics.
- Clicking on the count will go to the topic list screen with the relevant topics displayed.
- The VSS repository handler has been modified so that topics can be created by labels or version numbers in the start and end tag fields.
- The URI filter in the Template Toolkit changed its behaviour in 2.16, which was responsible for generating invalid links.
- This has now been fixed.
- There is better handling of Subversion diffs that were generated on non-English systems.
Download (3.4MB)
Added: 2007-03-08 License: GPL (GNU General Public License) Price:
962 downloads
Perl::Metric::Basic 0.31
Perl::Metric::Basic is a Perl module that can provide basic software metrics. more>>
Perl::Metric::Basic is a Perl module that can provide basic software metrics.
SYNOPSIS
# first construct a PPI::Document object to pass in
my $document = PPI::Document->load("t/lib/Acme.pm");
# then retrieve metrics on the document
my $m = Perl::Metric::Basic->new;
my $metric = $m->measure($document);
# $metric will consist of something like:
# Acme => {
# new => {
# blank_lines => 1,
# comments => 1,
# lines => 7,
# lines_of_code => 6,
# numbers => 0,
# numbers_unique => 0,
# operators => 3,
# operators_unique => 2,
# symbols => 5,
# symbols_unique => 2,
# words => 7,
# words_unique => 6
# },
# ...
When constructing software one often produces code of vastly differing quality. The Perl::Metric::Basic module leverages the PPI module to provide some interesting software metrics for Perl code, mostly measuring size and maintainability.
A metric is some sort of measurement which is intended to help you make a decision about a piece of code. There arent any hard rules about metrics, but the ones provided should allow you to make decisions about modules or subroutines which are outliers. Abnormal measurements in a subroutine are a warning sign that you should reexamine that routine, checking for unusually low quality.
This module uses the PPI module, and thus can parse Perl code without evaluating it.
If youre interested in software metrics, I highly recommend "Code Complete" (Second Edition) by Steve McConnel (Microsoft Press).
METHODS
new()
The new() method is the constructor:
my $m = Perl::Metric::Basic->new;
measure()
The measure() method measures some metrics and returns a hash reference. Files in Perl can contain more than one package, and it is interesting to seperate metrics by package. The key for the hash reference is the name of the package, and the value is another hash reference.
Perl packages are seperated into subroutines, and it is interesting to seperate metrics by subroutine. The key for the second hash reference is the name of the subroutine, and the value is another hash reference containing metrics.
There are various metrics applied to the subroutine. The key for the third hash reference is the name of the metric, and the value is the value of the metric. The metrics are:
blank_lines
The number of blank code lines.
comments
The number of lines containing comments.
lines
The total number of lines.
lines_of_code
The number of lines of code.
numbers
The total number of numbers used (eg "$z = 42 * 3" would have 2 numbers).
numbers_unique
The number of unique numbers used (eg "$z = 2*$x + 2*$y" would have 1 unique number).
operators
The total number of operators used.
operators_unique
The number of unique operators used.
symbols
The total number of symbols used (eg "$z = $x*$x + $y*$y" would have 5 symbols).
symbols_unique
The number of unique symbols used (eg "$z = $x*$x + $y*$y" would have 3 unique symbols).
words
The total number of words (operators) used.
words_unique
The number of unique words used.
<<lessSYNOPSIS
# first construct a PPI::Document object to pass in
my $document = PPI::Document->load("t/lib/Acme.pm");
# then retrieve metrics on the document
my $m = Perl::Metric::Basic->new;
my $metric = $m->measure($document);
# $metric will consist of something like:
# Acme => {
# new => {
# blank_lines => 1,
# comments => 1,
# lines => 7,
# lines_of_code => 6,
# numbers => 0,
# numbers_unique => 0,
# operators => 3,
# operators_unique => 2,
# symbols => 5,
# symbols_unique => 2,
# words => 7,
# words_unique => 6
# },
# ...
When constructing software one often produces code of vastly differing quality. The Perl::Metric::Basic module leverages the PPI module to provide some interesting software metrics for Perl code, mostly measuring size and maintainability.
A metric is some sort of measurement which is intended to help you make a decision about a piece of code. There arent any hard rules about metrics, but the ones provided should allow you to make decisions about modules or subroutines which are outliers. Abnormal measurements in a subroutine are a warning sign that you should reexamine that routine, checking for unusually low quality.
This module uses the PPI module, and thus can parse Perl code without evaluating it.
If youre interested in software metrics, I highly recommend "Code Complete" (Second Edition) by Steve McConnel (Microsoft Press).
METHODS
new()
The new() method is the constructor:
my $m = Perl::Metric::Basic->new;
measure()
The measure() method measures some metrics and returns a hash reference. Files in Perl can contain more than one package, and it is interesting to seperate metrics by package. The key for the hash reference is the name of the package, and the value is another hash reference.
Perl packages are seperated into subroutines, and it is interesting to seperate metrics by subroutine. The key for the second hash reference is the name of the subroutine, and the value is another hash reference containing metrics.
There are various metrics applied to the subroutine. The key for the third hash reference is the name of the metric, and the value is the value of the metric. The metrics are:
blank_lines
The number of blank code lines.
comments
The number of lines containing comments.
lines
The total number of lines.
lines_of_code
The number of lines of code.
numbers
The total number of numbers used (eg "$z = 42 * 3" would have 2 numbers).
numbers_unique
The number of unique numbers used (eg "$z = 2*$x + 2*$y" would have 1 unique number).
operators
The total number of operators used.
operators_unique
The number of unique operators used.
symbols
The total number of symbols used (eg "$z = $x*$x + $y*$y" would have 5 symbols).
symbols_unique
The number of unique symbols used (eg "$z = $x*$x + $y*$y" would have 3 unique symbols).
words
The total number of words (operators) used.
words_unique
The number of unique words used.
Download (0.005MB)
Added: 2007-01-09 License: Perl Artistic License Price:
1019 downloads
Code::Perl 0.03
Code::Perl is a Perl module to produce Perl code from a tree. more>>
Code::Perl is a Perl module to produce Perl code from a tree.
SYNOPSIS
use Code::Perl::Expr qw( :easy );
my $c = derefh(scal(hash), calls(getkey));
print $c->perl; # ($hash)->{getkey()}
Code::Perl allows you to build chunks of Perl code as a tree and then when youre finished building, the tree can output the Perl code. This is useful if you have built your own mini-language and you want to generate Perl from it. Rather than generating the Perl at parse time and having to worry about quoting, escaping, parenthese etc, you can just build a tree using Code::Perl and then dump out the correct Perl at the end.
<<lessSYNOPSIS
use Code::Perl::Expr qw( :easy );
my $c = derefh(scal(hash), calls(getkey));
print $c->perl; # ($hash)->{getkey()}
Code::Perl allows you to build chunks of Perl code as a tree and then when youre finished building, the tree can output the Perl code. This is useful if you have built your own mini-language and you want to generate Perl from it. Rather than generating the Perl at parse time and having to worry about quoting, escaping, parenthese etc, you can just build a tree using Code::Perl and then dump out the correct Perl at the end.
Download (0.017MB)
Added: 2006-10-05 License: Perl Artistic License Price:
1127 downloads
Opcode 5.8.8
Opcode is a Perl module created to disable named opcodes when compiling perl code. more>>
Opcode is a Perl module created to disable named opcodes when compiling perl code.
SYNOPSIS
use Opcode;
Perl code is always compiled into an internal format before execution.
Evaluating perl code (e.g. via "eval" or "do file") causes the code to be compiled into an internal format and then, provided there was no error in the compilation, executed. The internal format is based on many distinct opcodes.
By default no opmask is in effect and any code can be compiled.
The Opcode module allow you to define an operator mask to be in effect when perl next compiles any code. Attempting to compile code which contains a masked opcode will cause the compilation to fail with an error. The code will not be executed.
<<lessSYNOPSIS
use Opcode;
Perl code is always compiled into an internal format before execution.
Evaluating perl code (e.g. via "eval" or "do file") causes the code to be compiled into an internal format and then, provided there was no error in the compilation, executed. The internal format is based on many distinct opcodes.
By default no opmask is in effect and any code can be compiled.
The Opcode module allow you to define an operator mask to be in effect when perl next compiles any code. Attempting to compile code which contains a masked opcode will cause the compilation to fail with an error. The code will not be executed.
Download (0.012MB)
Added: 2007-05-14 License: Perl Artistic License Price:
898 downloads
Code::Splice 0.01
Code::Splice injects the contents of one subroutine at a specified point elsewhere. more>>
Code::Splice injects the contents of one subroutine at a specified point elsewhere.
SYNOPSIS
use Code::Splice;
Code::Splice::inject(
code => sub { print "fredn"; },
package => main,
method => foo,
precondition => sub {
my $op = shift;
my $line = shift;
$line =~ m/print/ and $line =~ m/four/;
},
postcondition => sub {
my $op = shift;
my $line = shift;
$line =~ m/print/ and $line =~ m/five/;
},
);
sub foo {
print "onen";
print "twon";
print "threen";
print "fourn";
print "fiven";
}
This module removes the contents of a subroutine (usually an anonymous subroutine created just for the purpose) and splices in into the program elsewhere.
Why, you ask?
Write stronger unit tests than the granularity of the API would otherwise allow
Write unit tests for nasty, interdependant speghetti code (my motivation -- hey, you gotta have tests before you can start refactoring, and if you cant write tests for the code, youre screwed)
Fix stupid bugs and remove stupid restrictions in other peoples code in a way thats more resiliant across upgrades than editing files you dont own
Be what "aspects" should be
Screw with your cow-orkers by introducing monster heisenbugs
Play with self-modifying code
Write self-replicating code (but be nice, were all friends here, right?)
The specifics:
The body of the code { } block are extracted from the subroutine and inserted in a place in the code specified by the call to the splice() function. Where the new code is spliced in, the old code is spliced out. The package and method arguments are required and tell the thing how to find the code to be modified. The code argument is required as it specifies the code to be spliced in. That same code block should not be used for anything else under penalty of coredump.
The rest of the argumets specify where the code is to be inserted. Any number of precondition and postcondition arguments provide callbacks to help locate the exact area to splice the code in at. Before the code can e spliced in, all of the precondition blocks must have returned true, and none of the postcondition blocks may have yet returned true. If a postcondition returns true before all of the precondition blocks have, an error is raised. Both blocks get called numerous times per line and get passed a reference to the B OP object currently under consideration and the text of the current line:
precondition => sub {
my $op = shift;
my $line = shift;
$line =~ m/print/ and $line =~ m/four/;
},
... or...
precondition => sub { my $op = shift; $op->name eq padsv and $op->sv->sv =~ m/fred/; },
Its possible to insert code in the middle of an expression when testing ops, but when testing the text of the line of code, the spliced in code will always replace the whole line.
Ill probably drop sending in the opcode in a future version, at least for the precondition/postcondition blocks, or maybe Ill swap them to the 2nd arg so theyre more optional.
Do not attempt to match text in comments as it wont be there. The code in $line is re-generated from the bytecode using B::Deparse and will vary from the original source code in a few ways, including changes to formatting, changes to some idioms and details of the expressions, and formatting of the code with regards to whitespace.
The splicing code will die if it fails for any reason. This will likely change in possible future versions.
There are also label and line arguments that create preconditions for you, for simple cases. Of course, you shouldnt use line for anything other than simple experimentation.
References to lexical variables in the code to be injected are replaced with references to the lexical variables of the same name in the location the code is inserted into. If a variable of the same name doesnt exist there, its an error. ... but it probably shouldnt be an error, at least in the cases where the code being spliced in declares that lexical with my, or when the variable was initiailized entirely outside of the sub block being spliced in and was merely closed over by it.
See the comments in the source code (at the top, in a nice block) for my todo/desired features. Let me know if there are any features in there or yet unsuggested that you want. I wont promise them, but I would like to hear about them.
<<lessSYNOPSIS
use Code::Splice;
Code::Splice::inject(
code => sub { print "fredn"; },
package => main,
method => foo,
precondition => sub {
my $op = shift;
my $line = shift;
$line =~ m/print/ and $line =~ m/four/;
},
postcondition => sub {
my $op = shift;
my $line = shift;
$line =~ m/print/ and $line =~ m/five/;
},
);
sub foo {
print "onen";
print "twon";
print "threen";
print "fourn";
print "fiven";
}
This module removes the contents of a subroutine (usually an anonymous subroutine created just for the purpose) and splices in into the program elsewhere.
Why, you ask?
Write stronger unit tests than the granularity of the API would otherwise allow
Write unit tests for nasty, interdependant speghetti code (my motivation -- hey, you gotta have tests before you can start refactoring, and if you cant write tests for the code, youre screwed)
Fix stupid bugs and remove stupid restrictions in other peoples code in a way thats more resiliant across upgrades than editing files you dont own
Be what "aspects" should be
Screw with your cow-orkers by introducing monster heisenbugs
Play with self-modifying code
Write self-replicating code (but be nice, were all friends here, right?)
The specifics:
The body of the code { } block are extracted from the subroutine and inserted in a place in the code specified by the call to the splice() function. Where the new code is spliced in, the old code is spliced out. The package and method arguments are required and tell the thing how to find the code to be modified. The code argument is required as it specifies the code to be spliced in. That same code block should not be used for anything else under penalty of coredump.
The rest of the argumets specify where the code is to be inserted. Any number of precondition and postcondition arguments provide callbacks to help locate the exact area to splice the code in at. Before the code can e spliced in, all of the precondition blocks must have returned true, and none of the postcondition blocks may have yet returned true. If a postcondition returns true before all of the precondition blocks have, an error is raised. Both blocks get called numerous times per line and get passed a reference to the B OP object currently under consideration and the text of the current line:
precondition => sub {
my $op = shift;
my $line = shift;
$line =~ m/print/ and $line =~ m/four/;
},
... or...
precondition => sub { my $op = shift; $op->name eq padsv and $op->sv->sv =~ m/fred/; },
Its possible to insert code in the middle of an expression when testing ops, but when testing the text of the line of code, the spliced in code will always replace the whole line.
Ill probably drop sending in the opcode in a future version, at least for the precondition/postcondition blocks, or maybe Ill swap them to the 2nd arg so theyre more optional.
Do not attempt to match text in comments as it wont be there. The code in $line is re-generated from the bytecode using B::Deparse and will vary from the original source code in a few ways, including changes to formatting, changes to some idioms and details of the expressions, and formatting of the code with regards to whitespace.
The splicing code will die if it fails for any reason. This will likely change in possible future versions.
There are also label and line arguments that create preconditions for you, for simple cases. Of course, you shouldnt use line for anything other than simple experimentation.
References to lexical variables in the code to be injected are replaced with references to the lexical variables of the same name in the location the code is inserted into. If a variable of the same name doesnt exist there, its an error. ... but it probably shouldnt be an error, at least in the cases where the code being spliced in declares that lexical with my, or when the variable was initiailized entirely outside of the sub block being spliced in and was merely closed over by it.
See the comments in the source code (at the top, in a nice block) for my todo/desired features. Let me know if there are any features in there or yet unsuggested that you want. I wont promise them, but I would like to hear about them.
Download (0.010MB)
Added: 2007-08-14 License: Perl Artistic License Price:
806 downloads
MyDBO Code Generator 2.1
MyDBO is a powerful object-oriented code generator for PHP/MySQL Web application developers. more>>
MyDBO is a powerful object-oriented code generator for PHP/MySQL Web application developers.
It is designed to remove the hassle of implementing familiar database operations (select, update, insert, etc) over and over again when creating Web applications. MyDBO Code Generator creates code for accessing your database tables without you having to worry about connections or SQL queries.
It also allows you to approach your database in an object-oriented fashion, thus giving you real flexibility. It uses templates to generate code, so it is also possible to create your own templates.
Main features:
- Forget about accessing your database with SQL queries.
- Use the far more flexible object-oriented approach.
- Create logic foreign key links between your tables and navigate between your objects.
- Map the default MySQL date type to whatever you want.
- Create your own templates for unlimited possibilities.
- Fast and reliable.
- Should your database structure change, just re-generate the code.
- Easy to generate with the generation wizard.
- The generated code has standard comments for each class and functions.
- Free for personal and commercial use (GNU), Open source.
- Clean and tested code.
Enhancements:
- Boolean return values were added in API methods.
- A LIMIT argument was added in the tableCollector of the businessAPI plugin.
- The number of queries to execute when using Collector was reduced to 1.
- The use of database connections was optimized, and $DB is now a global variable.
- Memory is allowed increased to 16M.
- The ADOdb installation was customized to be minimal.
- instantAdmin was updated with a new API.
- Collector classes can now return the number of results only.
<<lessIt is designed to remove the hassle of implementing familiar database operations (select, update, insert, etc) over and over again when creating Web applications. MyDBO Code Generator creates code for accessing your database tables without you having to worry about connections or SQL queries.
It also allows you to approach your database in an object-oriented fashion, thus giving you real flexibility. It uses templates to generate code, so it is also possible to create your own templates.
Main features:
- Forget about accessing your database with SQL queries.
- Use the far more flexible object-oriented approach.
- Create logic foreign key links between your tables and navigate between your objects.
- Map the default MySQL date type to whatever you want.
- Create your own templates for unlimited possibilities.
- Fast and reliable.
- Should your database structure change, just re-generate the code.
- Easy to generate with the generation wizard.
- The generated code has standard comments for each class and functions.
- Free for personal and commercial use (GNU), Open source.
- Clean and tested code.
Enhancements:
- Boolean return values were added in API methods.
- A LIMIT argument was added in the tableCollector of the businessAPI plugin.
- The number of queries to execute when using Collector was reduced to 1.
- The use of database connections was optimized, and $DB is now a global variable.
- Memory is allowed increased to 16M.
- The ADOdb installation was customized to be minimal.
- instantAdmin was updated with a new API.
- Collector classes can now return the number of results only.
Download (0.12MB)
Added: 2006-02-17 License: LGPL (GNU Lesser General Public License) Price:
791 downloads
XML::Code 0.04
XML::Diff is a Perl module for XML DOM-Tree based Diff & Patch Module. more>>
XML::Diff is a Perl module for XML DOM-Tree based Diff & Patch Module.
SYNOPSIS
my $diff = XML::Diff->new();
# to generate a diffgram of two XML files, use compare.
# $old and $new can be filepaths, XML as a string,
# XML::LibXML::Document or XML::LibXML::Element objects.
# The diffgram is a XML::LibXML::Document by default.
my $diffgram = $diff->compare(
-old => $old_xml,
-new => $new_xml,
);
# To patch an XML document, an patch. $old and $diffgram
# follow the same formatting rules as compare.
# The resulting XML is a XML::LibXML::Document by default.
my $patched = $diff->patch(
-old => $old,
-diffgram => $diffgram,
);
This module provides methods for generating and applying an XML diffgram of two related XML files. The basis of the algorithm is tree-wise comparison using the DOM model as provided by XML::LibXML.
The Diffgram is well-formed XML in the XVCS namespance and supports update, insert, delete and move operations. It is meant to be human and machine readable. It uses XPath expressions for locating the nodes to operate on.
<<lessSYNOPSIS
my $diff = XML::Diff->new();
# to generate a diffgram of two XML files, use compare.
# $old and $new can be filepaths, XML as a string,
# XML::LibXML::Document or XML::LibXML::Element objects.
# The diffgram is a XML::LibXML::Document by default.
my $diffgram = $diff->compare(
-old => $old_xml,
-new => $new_xml,
);
# To patch an XML document, an patch. $old and $diffgram
# follow the same formatting rules as compare.
# The resulting XML is a XML::LibXML::Document by default.
my $patched = $diff->patch(
-old => $old,
-diffgram => $diffgram,
);
This module provides methods for generating and applying an XML diffgram of two related XML files. The basis of the algorithm is tree-wise comparison using the DOM model as provided by XML::LibXML.
The Diffgram is well-formed XML in the XVCS namespance and supports update, insert, delete and move operations. It is meant to be human and machine readable. It uses XPath expressions for locating the nodes to operate on.
Download (0.017MB)
Added: 2006-09-14 License: Perl Artistic License Price:
1138 downloads
Panopticode 0.1
Panopticode provides a standardized format for describing the structure of software projects and integrates metrics. more>>
Panopticode project provides a standardized format for describing the structure of software projects and integrates metrics from several tools into that format.
Reporting options provide correlation, historic analysis, and visualization.
Main features:
The Good
- There is a rich selection of tools available to the Java community for gathering code metrics. These tools can be invaluable for tasks such as:
- Prioritizing refactoring and redesign work
- Understanding unfamiliar or large code bases
- Ensuring coding standards are being followed
- Evaluating software quality
- Informing extend -vs- rewrite decisions
- Proving that contractual obligations have been met
- Comparing competing tools
The Bad and The Ugly
- While these tools are powerful they suffer from a number of problems such as:
- Installation and configuration can be difficult and time consuming
- Most only measure the status at a point in time and have no concept of historical data
- Each tool represents its data in a proprietary format
- It is very difficult to correlate data from different tools
- It can be difficult to switch between competing tools that provide similar functions
- Most have extremely limited reporting and visualization capabilities
Enhancements:
- This release provides treemaps of code coverage, treemaps of complexity, integrates metrics from Emma, JavaNCSS, and JDepend, and gathers metrics from CheckStyle, Cobertura, Complexian, Simian, and Subversion.
- Treemaps are a powerful visualization for seeing both the overall picture and a great deal of detail at the same time.
<<lessReporting options provide correlation, historic analysis, and visualization.
Main features:
The Good
- There is a rich selection of tools available to the Java community for gathering code metrics. These tools can be invaluable for tasks such as:
- Prioritizing refactoring and redesign work
- Understanding unfamiliar or large code bases
- Ensuring coding standards are being followed
- Evaluating software quality
- Informing extend -vs- rewrite decisions
- Proving that contractual obligations have been met
- Comparing competing tools
The Bad and The Ugly
- While these tools are powerful they suffer from a number of problems such as:
- Installation and configuration can be difficult and time consuming
- Most only measure the status at a point in time and have no concept of historical data
- Each tool represents its data in a proprietary format
- It is very difficult to correlate data from different tools
- It can be difficult to switch between competing tools that provide similar functions
- Most have extremely limited reporting and visualization capabilities
Enhancements:
- This release provides treemaps of code coverage, treemaps of complexity, integrates metrics from Emma, JavaNCSS, and JDepend, and gathers metrics from CheckStyle, Cobertura, Complexian, Simian, and Subversion.
- Treemaps are a powerful visualization for seeing both the overall picture and a great deal of detail at the same time.
Download (8.4MB)
Added: 2007-03-12 License: GPL (GNU General Public License) Price:
956 downloads
Pretty Code Web 1.00
Pretty Code Web is a syntax highlighter for publishing code, written in any programming language, to the Web. more>>
Pretty Code Web is a syntax highlighter for publishing code, written in any programming language, to the web.
Written in php it uses syntax files separate from the main code to highlight a specified language.
Main features:
- Syntax highlighting for (potentially) any language.
- User defined syntax files.
- User defined colors
- Separate colors for:
- 6 Keyword Groups
- Text Strings
- Operators
- Block and Line Comments
- Bracket Characters
<<lessWritten in php it uses syntax files separate from the main code to highlight a specified language.
Main features:
- Syntax highlighting for (potentially) any language.
- User defined syntax files.
- User defined colors
- Separate colors for:
- 6 Keyword Groups
- Text Strings
- Operators
- Block and Line Comments
- Bracket Characters
Download (0.024MB)
Added: 2005-10-20 License: Free for non-commercial use Price:
1470 downloads
Code::Blocks 1.0 RC2
Code::Blocks is a C/C++ IDE built with configurability and extensibility in mind. more>>
Code::Blocks is a free C++ IDE built specifically to meet the most demanding needs of its users. The Code::Blocks project was designed, right from the start, to be extensible and configurable.
Built around a plugin framework, Code::Blocks can be extended with plugin DLLs. It includes a plugin wizard so you can compile your own plugins! (Free SDK downloaded separately)
Main features:
- Open Source! GPL2, no hidden costs.
- Cross-platform. Runs on Linux or Windows (uses wxWidgets).
- Made in GNU C++. No interpreted languages or proprietary libs needed.
- Comes in two presentations: Standalone, and MinGW bundle
- Devpack support (optional)
- Extensible thru plugins (SDK available in the downloads section)
- Multiple compiler support:
- GCC (MingW / Linux GCC)
- MSVC++
- Digital Mars
- Borland C++ 5.5
- Open Watcom
- Compiles directly or with makefiles
- Predefined project templates
- Custom template support
- Uses XML format for project files.
- Multi-target projects
- Workspaces support
- Imports MSVC projects and workspaces (NOTE: assembly code and inter-project dependencies not supported yet)
- Imports Dev-C++ projects
- Integrates with GDB for debugging
- Syntax highlighting, customizable and extensible
- Code folding for C++ and XML files.
- Tabbed interface
- Code completion plugin
- Class Browser
- Smart indent
- One-key swap between .h and .c/.cpp files
- Open files list for quick switching between files (optional)
- External customizable "Tools"
- To-do list management with different users
<<lessBuilt around a plugin framework, Code::Blocks can be extended with plugin DLLs. It includes a plugin wizard so you can compile your own plugins! (Free SDK downloaded separately)
Main features:
- Open Source! GPL2, no hidden costs.
- Cross-platform. Runs on Linux or Windows (uses wxWidgets).
- Made in GNU C++. No interpreted languages or proprietary libs needed.
- Comes in two presentations: Standalone, and MinGW bundle
- Devpack support (optional)
- Extensible thru plugins (SDK available in the downloads section)
- Multiple compiler support:
- GCC (MingW / Linux GCC)
- MSVC++
- Digital Mars
- Borland C++ 5.5
- Open Watcom
- Compiles directly or with makefiles
- Predefined project templates
- Custom template support
- Uses XML format for project files.
- Multi-target projects
- Workspaces support
- Imports MSVC projects and workspaces (NOTE: assembly code and inter-project dependencies not supported yet)
- Imports Dev-C++ projects
- Integrates with GDB for debugging
- Syntax highlighting, customizable and extensible
- Code folding for C++ and XML files.
- Tabbed interface
- Code completion plugin
- Class Browser
- Smart indent
- One-key swap between .h and .c/.cpp files
- Open files list for quick switching between files (optional)
- External customizable "Tools"
- To-do list management with different users
Download (2.6MB)
Added: 2005-11-28 License: GPL (GNU General Public License) Price:
1591 downloads

Html Code Convert 3.3
Speed up the conversion of HTML code into different format more>>
HTML Code Convert helps speed up the conversion of HTML code into different format including Java Script, JavaServer Pages, Microsoft ASP, PHP, Perl, Python, and the UNIX Shell. It is particularly useful in CGI scripting.
Enhancements:
- Colors and font selected in prefeferences box.
- Fixe bug with Quit button. First try to support accessibility.
- Updated schemas.
<<lessEnhancements:
- Colors and font selected in prefeferences box.
- Fixe bug with Quit button. First try to support accessibility.
- Updated schemas.
Download (184KB)
Added: 2009-04-29 License: Freeware Price:
198 downloads
EnterTrack 1.2.0
EnterTrack project is a Web-based artifact tracking/management system. more>>
EnterTrack project is a Web-based artifact tracking/management system.
EnterTrack provides large organizations with complete tracking of artifacts (artifacts can be problems, bugs, requests, projects, etc.), group collaboration for artifact management, and status reports for high-level performance metrics.
<<lessEnterTrack provides large organizations with complete tracking of artifacts (artifacts can be problems, bugs, requests, projects, etc.), group collaboration for artifact management, and status reports for high-level performance metrics.
Download (0.48MB)
Added: 2007-03-12 License: GPL (GNU General Public License) Price:
956 downloads
php_qrencode 0.1
php_qrencode is a PHP extension to generate qrcode. more>>
php_qrencode is a PHP extension to generate qrcode. The project is based on libqrencode.
only 2 function to generate qr code.
< code >
$qr = qr_encode (test for qrcode);
qr_save ($qr, 1.png);
< /code >
or you can output direct to stdout.
< code >
$qr = qr_encode (test for qrcode);
header ("Content-type: image/PNG");
qr_save ($qr);
< /code >
resource = qr_encode (string $text, [ int $version, int $mode, int $casesensitive]);
bool = qr_save (resource $qr, [ string $filename] );
<<lessonly 2 function to generate qr code.
< code >
$qr = qr_encode (test for qrcode);
qr_save ($qr, 1.png);
< /code >
or you can output direct to stdout.
< code >
$qr = qr_encode (test for qrcode);
header ("Content-type: image/PNG");
qr_save ($qr);
< /code >
resource = qr_encode (string $text, [ int $version, int $mode, int $casesensitive]);
bool = qr_save (resource $qr, [ string $filename] );
Download (0.006MB)
Added: 2007-04-26 License: BSD License Price:
916 downloads
phpCodeGenerator 0.2.1
phpCodeGenerator is a free database driven website code generator. more>>
phpCodeGenerator is a free database driven website code generator. This application reads the database and generates a website with the ability to Create, List, Edit, Update, Delete and Search Records.
<<less Download (MB)
Added: 2007-07-12 License: GPL (GNU General Public License) Price:
835 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 code metrics 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