blame
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 30
Blame 1.3.1
Blame displays the last modification for each line in an RCS file. more>>
Blame displays the last modification for each line in an RCS file. Blame is the RCS equivalent of CVSs annotate command.
An annotated RCS file describes the revision and date in which each line was added to the file, and the author of each line.
<<lessAn annotated RCS file describes the revision and date in which each line was added to the file, and the author of each line.
Download (0.069MB)
Added: 2006-11-24 License: GPL (GNU General Public License) Price:
1066 downloads
Class::Agreement 0.02
Class::Agreement is a Perl module that add contracts to your Perl classes easily. more>>
Class::Agreement is a Perl module that add contracts to your Perl classes easily.
SYNOPSIS
package SomeClass;
use Class::Agreement;
# use base Class::Accessor or Class::MethodMaker,
# or roll your own:
sub new { ... }
invariant {
my ($self) = @_;
$self->count > 0;
};
precondition add_a_positive => sub {
my ( $self, $value ) = @_;
return ( $value >= 0 );
};
sub add_a_positive {
my ( $self, $value ) = @_;
...
}
sub choose_word {
my ( $self, $value ) = @_;
...
}
postcondition choose_word => sub {
return ( result >= 0 );
};
dependent increase_foo => sub {
my ( $self, $amount ) = @_;
my $old_foo = $self->foo;
return sub {
my ( $self, $amount ) = @_;
return ( $old_foo < $self->get_foo );
}
};
sub increase_foo {
my ( $self, $amount ) = @_;
$self->set_foo( $self->get_foo + $amount );
}
Class::Agreement is an implementation of behavioral contracts for Perl5. This module allows you to easily add pre- and postconditions to new or existing Perl classes.
This module provides contracts such as dependent contracts, contracts for higher-order functions, and informative messages when things fail.
At the time of this writing, Class::Agreement is one of only two contract implementations that blames contract-breaking components correctly. (See: "Object-oriented Programming Languages Need Well-founded Contracts" at http://citeseer.ist.psu.edu/findler01objectoriented.html.)
Using Class::Agreement lets you specify proper input and output of your functions or methods, thus strengthening your code and allowing you to spot bugs earlier.
<<lessSYNOPSIS
package SomeClass;
use Class::Agreement;
# use base Class::Accessor or Class::MethodMaker,
# or roll your own:
sub new { ... }
invariant {
my ($self) = @_;
$self->count > 0;
};
precondition add_a_positive => sub {
my ( $self, $value ) = @_;
return ( $value >= 0 );
};
sub add_a_positive {
my ( $self, $value ) = @_;
...
}
sub choose_word {
my ( $self, $value ) = @_;
...
}
postcondition choose_word => sub {
return ( result >= 0 );
};
dependent increase_foo => sub {
my ( $self, $amount ) = @_;
my $old_foo = $self->foo;
return sub {
my ( $self, $amount ) = @_;
return ( $old_foo < $self->get_foo );
}
};
sub increase_foo {
my ( $self, $amount ) = @_;
$self->set_foo( $self->get_foo + $amount );
}
Class::Agreement is an implementation of behavioral contracts for Perl5. This module allows you to easily add pre- and postconditions to new or existing Perl classes.
This module provides contracts such as dependent contracts, contracts for higher-order functions, and informative messages when things fail.
At the time of this writing, Class::Agreement is one of only two contract implementations that blames contract-breaking components correctly. (See: "Object-oriented Programming Languages Need Well-founded Contracts" at http://citeseer.ist.psu.edu/findler01objectoriented.html.)
Using Class::Agreement lets you specify proper input and output of your functions or methods, thus strengthening your code and allowing you to spot bugs earlier.
Download (0.027MB)
Added: 2007-02-28 License: Perl Artistic License Price:
968 downloads
Expiretable 0.6
Expiretable is a utility used to remove entries from a pf(4) table based on their age. more>>
Expiretable is a utility used to remove entries from a pf(4) table based on their age. The age in question being the amount of time that has passed since the statistics for each entry in the target table was last cleared.
This program needs to be run as a user with read/write permission to /dev/pf. As with all unknown things that need to be run as the superuser or similar there is always the chance this one will cause death and destruction, so use at your own risk. It WorksForMe< tm >, dont blame me if your cat grows another eye, and so on and so forth.
If you find yourself using this utility, especially for a reason not mentioned here, please tell me about it.
Johan Fredin has been nice enough to provide a port for expiretable. He has also put together a howto on how to use expiretable to block attempts to bruteforce ssh. geek00L has written a short piece on using Snort2c + Expiretable. Thanks to Samuel Ljungkvist and others for ideas.
Enhancements:
- The ability to specify age in minutes, hours, days, etc. was added.
- The age limit was changed to the limit imposed by OpenBSDs nanosleep.
<<lessThis program needs to be run as a user with read/write permission to /dev/pf. As with all unknown things that need to be run as the superuser or similar there is always the chance this one will cause death and destruction, so use at your own risk. It WorksForMe< tm >, dont blame me if your cat grows another eye, and so on and so forth.
If you find yourself using this utility, especially for a reason not mentioned here, please tell me about it.
Johan Fredin has been nice enough to provide a port for expiretable. He has also put together a howto on how to use expiretable to block attempts to bruteforce ssh. geek00L has written a short piece on using Snort2c + Expiretable. Thanks to Samuel Ljungkvist and others for ideas.
Enhancements:
- The ability to specify age in minutes, hours, days, etc. was added.
- The age limit was changed to the limit imposed by OpenBSDs nanosleep.
Download (0.006MB)
Added: 2006-03-27 License: BSD License Price:
1306 downloads
PDL::Slatec 2.4.3
PDL::Slatec is a PDL interface to the slatec numerical programming library. more>>
PDL::Slatec is a PDL interface to the slatec numerical programming library.
SYNOPSIS
use PDL::Slatec;
($ndeg, $r, $ierr, $a) = polyfit($x, $y, $w, $maxdeg, $eps);
This module serves the dual purpose of providing an interface to parts of the slatec library and showing how to interface PDL to an external library. Using this library requires a fortran compiler; the source for the routines is provided for convenience.
Currently available are routines to: manipulate matrices; calculate FFTs; fit data using polynomials; and interpolate/integrate data using piecewise cubic Hermite interpolation.
Piecewise cubic Hermite interpolation (PCHIP)
PCHIP is the slatec package of routines to perform piecewise cubic Hermite interpolation of data. It features software to produce a monotone and "visually pleasing" interpolant to monotone data. According to Fritsch & Carlson ("Monotone piecewise cubic interpolation", SIAM Journal on Numerical Analysis 17, 2 (April 1980), pp. 238-246), such an interpolant may be more reasonable than a cubic spline if the data contains both "steep" and "flat" sections. Interpolation of cumulative probability distribution functions is another application. These routines are cryptically named (blame FORTRAN), beginning with ch, and accept either float or double piddles.
Most of the routines require an integer parameter called check; if set to 0, then no checks on the validity of the input data are made, otherwise these checks are made. The value of check can be set to 0 if a routine such as chim has already been successfully called.
If not known, estimate derivative values for the points using the chim, chic, or chsp routines (the following routines require both the function (f) and derivative (d) values at a set of points (x)).
Evaluate, integrate, or differentiate the resulting PCH function using the routines: chfd; chfe; chia; chid.
If desired, you can check the monotonicity of your data using chcm.
EOD # un-confuse emacs
# if define chbs, then add something like the following to point 3: # # or use chbs to convert a PCH function into B-representation # for use with the B-spline routines of slatec # (although no interface to them currently exist). #
# add function definitions after finishing the first pp_addpm(), since this # adds a =head1 FUNCTIONS line at the end of the text
pp_addpm(<<less
SYNOPSIS
use PDL::Slatec;
($ndeg, $r, $ierr, $a) = polyfit($x, $y, $w, $maxdeg, $eps);
This module serves the dual purpose of providing an interface to parts of the slatec library and showing how to interface PDL to an external library. Using this library requires a fortran compiler; the source for the routines is provided for convenience.
Currently available are routines to: manipulate matrices; calculate FFTs; fit data using polynomials; and interpolate/integrate data using piecewise cubic Hermite interpolation.
Piecewise cubic Hermite interpolation (PCHIP)
PCHIP is the slatec package of routines to perform piecewise cubic Hermite interpolation of data. It features software to produce a monotone and "visually pleasing" interpolant to monotone data. According to Fritsch & Carlson ("Monotone piecewise cubic interpolation", SIAM Journal on Numerical Analysis 17, 2 (April 1980), pp. 238-246), such an interpolant may be more reasonable than a cubic spline if the data contains both "steep" and "flat" sections. Interpolation of cumulative probability distribution functions is another application. These routines are cryptically named (blame FORTRAN), beginning with ch, and accept either float or double piddles.
Most of the routines require an integer parameter called check; if set to 0, then no checks on the validity of the input data are made, otherwise these checks are made. The value of check can be set to 0 if a routine such as chim has already been successfully called.
If not known, estimate derivative values for the points using the chim, chic, or chsp routines (the following routines require both the function (f) and derivative (d) values at a set of points (x)).
Evaluate, integrate, or differentiate the resulting PCH function using the routines: chfd; chfe; chia; chid.
If desired, you can check the monotonicity of your data using chcm.
EOD # un-confuse emacs
# if define chbs, then add something like the following to point 3: # # or use chbs to convert a PCH function into B-representation # for use with the B-spline routines of slatec # (although no interface to them currently exist). #
# add function definitions after finishing the first pp_addpm(), since this # adds a =head1 FUNCTIONS line at the end of the text
pp_addpm(<<less
Download (2.1MB)
Added: 2007-08-02 License: Perl Artistic License Price:
819 downloads
Subcommander 0.14.1
Subcommander is a qt based multiplatform subversion client, diff & merge tool. more>>
Subcommander is a qt based multiplatform subversion client, diff & merge tool.
The goal of the Subcommander project is to build an easy to use, cross platform (Win32, Unix, MacOSX) subversion gui client (subcommander) including a visual diff and merge tool with support for different text encodings (submerge).
Main features:
- tight integration of repository browser and working copy status view, you can quickly switch between a working copy view or the repository view. It just a matter of selecting another item in a list view control.
- colored working copy status view to quickly see which files/folder have changed.
- easy branch and tag handling. By telling subcommander the projects urls for trunk, branches and tags and a working copy path it takes only a few mouse clicks to create a branch/tag or switch your working copy to a branch/tag.
- has drag and drop support to move or copy files and folders.
- easy handling of multiple working copies (e.g. different branches) from the same project.
- easy merging of single revisions or revision ranges. Viewing the history on a repository url you can easily merge changes to your working copy. Just select a revision and tell subcommander to merge it into your (configured) working copy. That is especially usefull to merge bug fixes from trunk to your current release branch.
- visual diff and merge for text files (configurable, defaults to submerge).
- cross platform (Win32, MacOSX, Unix)
- responsive gui, actions on the repository (like getting history information) will not freeze the gui.
- what is implemented?
- support for http(s)://..., svn(+ssh)://... file://... schemes.
- browse a repository, (svn ls)
- view the status of a working copy, (svn status)
- checkout a working copy from a repository, (svn checkout)
- add files to a working copy (svn add)
- revert files in a working copy (svn revert)
- create folders in a working copy or the repository (svn mkdir)
- commit changes to a repository (svn commit)
- diff a file in a working copy against its base version (spawns submerge) (svn diff)
- view diffs between two repository versions or between the working copy and a repository version (from the log dialog, spawns submerge) (svn diff)
- update a working copy (svn update)
- switch a working copy (svn switch)
- merge (svn merge)
- edit conflicts (runs submerge)
- tell subversion that you resolved a conflict (svn resolved)
- view log messages on repository (svn log)
- deleting files in a working copy (svn delete)
- creating branches/tags of repository folders (svn copy)
- view files from the repository or working copy (from the log dialog) (svn cat)
- add, modify and delete properties in a working copy (svn prop...)
- move items in a working copy (svn move)
- view blame info of a working copy file (svn blame)
- import files (svn import)
- export (svn export)
- cleanup (svn cleanup)
- locking (svn lock, svn unlock)
<<lessThe goal of the Subcommander project is to build an easy to use, cross platform (Win32, Unix, MacOSX) subversion gui client (subcommander) including a visual diff and merge tool with support for different text encodings (submerge).
Main features:
- tight integration of repository browser and working copy status view, you can quickly switch between a working copy view or the repository view. It just a matter of selecting another item in a list view control.
- colored working copy status view to quickly see which files/folder have changed.
- easy branch and tag handling. By telling subcommander the projects urls for trunk, branches and tags and a working copy path it takes only a few mouse clicks to create a branch/tag or switch your working copy to a branch/tag.
- has drag and drop support to move or copy files and folders.
- easy handling of multiple working copies (e.g. different branches) from the same project.
- easy merging of single revisions or revision ranges. Viewing the history on a repository url you can easily merge changes to your working copy. Just select a revision and tell subcommander to merge it into your (configured) working copy. That is especially usefull to merge bug fixes from trunk to your current release branch.
- visual diff and merge for text files (configurable, defaults to submerge).
- cross platform (Win32, MacOSX, Unix)
- responsive gui, actions on the repository (like getting history information) will not freeze the gui.
- what is implemented?
- support for http(s)://..., svn(+ssh)://... file://... schemes.
- browse a repository, (svn ls)
- view the status of a working copy, (svn status)
- checkout a working copy from a repository, (svn checkout)
- add files to a working copy (svn add)
- revert files in a working copy (svn revert)
- create folders in a working copy or the repository (svn mkdir)
- commit changes to a repository (svn commit)
- diff a file in a working copy against its base version (spawns submerge) (svn diff)
- view diffs between two repository versions or between the working copy and a repository version (from the log dialog, spawns submerge) (svn diff)
- update a working copy (svn update)
- switch a working copy (svn switch)
- merge (svn merge)
- edit conflicts (runs submerge)
- tell subversion that you resolved a conflict (svn resolved)
- view log messages on repository (svn log)
- deleting files in a working copy (svn delete)
- creating branches/tags of repository folders (svn copy)
- view files from the repository or working copy (from the log dialog) (svn cat)
- add, modify and delete properties in a working copy (svn prop...)
- move items in a working copy (svn move)
- view blame info of a working copy file (svn blame)
- import files (svn import)
- export (svn export)
- cleanup (svn cleanup)
- locking (svn lock, svn unlock)
Download (6.6MB)
Added: 2005-12-14 License: GPL (GNU General Public License) Price:
1411 downloads
Backup 0.1a
Backup adds instant version control to any file on a Unix system. more>>
Backup project adds instant version control to any file on a Unix system.
Do you hate *.bak and *.20050101 and *.cjn (your initials here) and *.do.not.touch files as much as I do? They litter your filesystem any time someone (and were all guilty of it) needs to back-up a file theyre working on.
But who ever comes back and cleans the mess up? At what point is an old backed-up file no longer needed? And what about when you need that backup file only to discover that its missing, or you didnt capture one because you didnt want to add clutter? Backup is my answer to all that. It adds instantly available, reliable version control to every file in the filesystem.
Backup is a lightweight interface to the Subversion svn_fs library. It uses the powerful version control software as a backend to a simple and minimalistic (though effective) user interface. It is designed for use on Linux/Unix (including OS X) systems as a method of archiving configuration files that change semi-frequently, but do not necessarily warrent their own version control mechanism or repository. Things like "/etc/hosts" or "httpd.conf".
It can create a backup of any file without having to import it first, without worrying about setting up new repositories, and (because it speaks directly to the FS layer) without littering hidden ".svn" (or even worse, visable "CVS") directories all over the place. It does this by using a single global "archive," which contains a filesystem that mirrors your root as you add to it. You can view the archive and restore files, do diffs, and move things around as necessary. For more complex administration, the archive is a standard Subversion file system which can be administrated with any compatable client (including the svn command line tools).
The current version is knocked together in Perl. Its alpha, but it is pretty functional... at least for a proof of concept. Eventually I plan to re-write it in C... but we all know about "the best laid plans." In the mean while, the Perl version does work... mostly. The only real trick is that you need to compile and install the Subversion bindings for it Perl. There are some other modules you may need as well, but theyre all fairly standard.
Usage:
You probably shouldnt if you youre doing mission-critical work. Its still alpha code after-all. But if you do decide to give it a spin, dont blame me for any breakage (the only thing that should damage existing files is the combination of -r and -o, which will overwrite during a restore).
<<lessDo you hate *.bak and *.20050101 and *.cjn (your initials here) and *.do.not.touch files as much as I do? They litter your filesystem any time someone (and were all guilty of it) needs to back-up a file theyre working on.
But who ever comes back and cleans the mess up? At what point is an old backed-up file no longer needed? And what about when you need that backup file only to discover that its missing, or you didnt capture one because you didnt want to add clutter? Backup is my answer to all that. It adds instantly available, reliable version control to every file in the filesystem.
Backup is a lightweight interface to the Subversion svn_fs library. It uses the powerful version control software as a backend to a simple and minimalistic (though effective) user interface. It is designed for use on Linux/Unix (including OS X) systems as a method of archiving configuration files that change semi-frequently, but do not necessarily warrent their own version control mechanism or repository. Things like "/etc/hosts" or "httpd.conf".
It can create a backup of any file without having to import it first, without worrying about setting up new repositories, and (because it speaks directly to the FS layer) without littering hidden ".svn" (or even worse, visable "CVS") directories all over the place. It does this by using a single global "archive," which contains a filesystem that mirrors your root as you add to it. You can view the archive and restore files, do diffs, and move things around as necessary. For more complex administration, the archive is a standard Subversion file system which can be administrated with any compatable client (including the svn command line tools).
The current version is knocked together in Perl. Its alpha, but it is pretty functional... at least for a proof of concept. Eventually I plan to re-write it in C... but we all know about "the best laid plans." In the mean while, the Perl version does work... mostly. The only real trick is that you need to compile and install the Subversion bindings for it Perl. There are some other modules you may need as well, but theyre all fairly standard.
Usage:
You probably shouldnt if you youre doing mission-critical work. Its still alpha code after-all. But if you do decide to give it a spin, dont blame me for any breakage (the only thing that should damage existing files is the combination of -r and -o, which will overwrite during a restore).
Download (0.005MB)
Added: 2006-02-02 License: GPL (GNU General Public License) Price:
1455 downloads
bzip2smp 1.0
bzip2smp parallelizes the bzip2 compression process to achieve a near-linear performance increase on SMP machines. more>>
bzip2smp parallelizes the bzip2 compression process to achieve a near-linear performance increase on SMP machines.
This program parallelizes the BZIP2 compression process to achieve a near-linear performance increase on SMP machines. On a two-processor Xeon machine, the speedup is around 180%.
The tools main purpose is to aid performing heavy-duty server backups. It can also be used on modern desktop multicore processors (AMD Athlon64 X2, Intel Pentium D etc).
There is NO speedup coming from hyperthreading on the hyperthreaded machines, since hyperthreads dont have dedicated caches, and the bzip2 is very cache-dependent. Expect degraded performance if you try utilizing hyperthreads.
The compression process requires more memory than the normal bzip2 -- some 15Mb average for 2 CPUs, 30Mb for 4 CPUs, etc. This should not pose any problem on a typical memory-rich server/workstation hardware, though.
The resulting archives are bit-by-bit identical to the ones produced by the normal bzip2, at least as of version 1.0.2.
No decompression is supported. The compression is stdin-to-stdout only.
If you need the missing features, you are welcome to implement them. Maybe someday the program will be fully interchangeable with bzip2, as a result. For now, it is not. Please also note that there is a similar program out there, pbzip2.
Unfortunately, it does not support compression from stdin (meaning no "tar | pbzip2"), it does not produce the archives equal to the original bzip2 (although compatible, they are larger), and it felt overall a bit too amateur for me to trust my production backup data to it. So I coded my own one.
This program incorporates the modified libbzip2 sources (part of bzip2). The sources have to be modified because it was not feasible to split the rle compression, block sorting and bit-storing stages apart with the stock library design. This separation was merely hacked in -- to make it the clean way, the library has to be redesigned. This was not the goal, though.
The program was only tested under Linux, kernel 2.6. It should work on any Posix system with pthreads support, but this was not tested, so expect compilation problems. See INSTALL file for details.
The program is meant to be used in production environment. It should be sufficiently stable, but more testing is welcome. I use it myself, but I still dont guarantee you anything. You use it on your own risk, dont blame me if something goes wrong -- send bug reports and patches instead.
<<lessThis program parallelizes the BZIP2 compression process to achieve a near-linear performance increase on SMP machines. On a two-processor Xeon machine, the speedup is around 180%.
The tools main purpose is to aid performing heavy-duty server backups. It can also be used on modern desktop multicore processors (AMD Athlon64 X2, Intel Pentium D etc).
There is NO speedup coming from hyperthreading on the hyperthreaded machines, since hyperthreads dont have dedicated caches, and the bzip2 is very cache-dependent. Expect degraded performance if you try utilizing hyperthreads.
The compression process requires more memory than the normal bzip2 -- some 15Mb average for 2 CPUs, 30Mb for 4 CPUs, etc. This should not pose any problem on a typical memory-rich server/workstation hardware, though.
The resulting archives are bit-by-bit identical to the ones produced by the normal bzip2, at least as of version 1.0.2.
No decompression is supported. The compression is stdin-to-stdout only.
If you need the missing features, you are welcome to implement them. Maybe someday the program will be fully interchangeable with bzip2, as a result. For now, it is not. Please also note that there is a similar program out there, pbzip2.
Unfortunately, it does not support compression from stdin (meaning no "tar | pbzip2"), it does not produce the archives equal to the original bzip2 (although compatible, they are larger), and it felt overall a bit too amateur for me to trust my production backup data to it. So I coded my own one.
This program incorporates the modified libbzip2 sources (part of bzip2). The sources have to be modified because it was not feasible to split the rle compression, block sorting and bit-storing stages apart with the stock library design. This separation was merely hacked in -- to make it the clean way, the library has to be redesigned. This was not the goal, though.
The program was only tested under Linux, kernel 2.6. It should work on any Posix system with pthreads support, but this was not tested, so expect compilation problems. See INSTALL file for details.
The program is meant to be used in production environment. It should be sufficiently stable, but more testing is welcome. I use it myself, but I still dont guarantee you anything. You use it on your own risk, dont blame me if something goes wrong -- send bug reports and patches instead.
Download (0.045MB)
Added: 2005-12-05 License: BSD License Price:
1420 downloads
tbibtools 0.4
tbibtools project provides a simple regexp-based bibtex parser. more>>
tbibtools project provides a simple regexp-based bibtex parser. Please be aware that this script makes a few assumptions on how a bib file should look like and that it may fail on files formatted in unusual ways.
Failure may lead to loss of bib entries and malformed or incomplete output. Comments and other text will be stripped when reformatting entries. Any feature of bibtex I dont know and/or dont use myself is most likely not supported by this script/class.
Please take care when using this script. Make backups and check the output, especially when using the -f command-line option. Dont blame me if you lose information or end up with corrupted bib files.
Enhancements:
- sortCrossref puts cross-referenced entries to the back.
- A new format, (un)selectCrossref, allows you to view only entries that are (not) cross-referenced.
- The syntax of the query command has changed: query FIELD1 => RX1, FIELD2 => RX2, etc.
- Duplicate entries and certain conflicting fields are merged.
- A problem with --ls has been fixed.
<<lessFailure may lead to loss of bib entries and malformed or incomplete output. Comments and other text will be stripped when reformatting entries. Any feature of bibtex I dont know and/or dont use myself is most likely not supported by this script/class.
Please take care when using this script. Make backups and check the output, especially when using the -f command-line option. Dont blame me if you lose information or end up with corrupted bib files.
Enhancements:
- sortCrossref puts cross-referenced entries to the back.
- A new format, (un)selectCrossref, allows you to view only entries that are (not) cross-referenced.
- The syntax of the query command has changed: query FIELD1 => RX1, FIELD2 => RX2, etc.
- Duplicate entries and certain conflicting fields are merged.
- A problem with --ls has been fixed.
Download (MB)
Added: 2007-06-21 License: GPL (GNU General Public License) Price:
855 downloads
NFS Backup System 0.0.1
NFS Backup System is a Perl script that backup system for NFS. more>>
NFS Backup System is a Perl script that backup system for NFS. The basic function nfsbu is an automated perl-script backup system between an NFS server and an NFS client.
Either by crontab or manual execution, directories listed in the configuration file can be backed up to a directory mounted on the NFS server. In turn, the NFS server uses the client-side script of nsbu (nfsbuc.pl) to move the data from the temporary NFS mount directory to their final places (also specified in the configuration file).
I created this script having been learning Perl for maybe 2 weeks and progressing not much further than page 12 of Programming Perl by Larry Wall and Randal L. Shwartz. Hence you may consider the code badly written, but a quote from the book Id like to include is "a Perl script is correct if its halfway readable and gets the job done before your boss fires you". So I take no blame for the code, Ive commented my code and it worked for me and I make no promises it will work for you.
With regards to licencing, I guess its not really worthy of the full 9 yards, but lets have the happy code hacker ethic of open source development. I.e. something of somewhat basic GPL licence terms and conditions. You may feel inclined to modify the code, in such case if you do, please e-mail me the changes and include the modified code. If youd like to redistribute it with your modifications, please include my name and the original code.
Main features:
- multiple directory backup, with alternative destination directories
- directories are simply listed in a file with their respective destinations
- thorough error checking, if any errors occur e-mail will be sent to the administrator
- checks the status of the NFS server and mountd to prevent any hang-ups from a dead NFS server which is common
<<lessEither by crontab or manual execution, directories listed in the configuration file can be backed up to a directory mounted on the NFS server. In turn, the NFS server uses the client-side script of nsbu (nfsbuc.pl) to move the data from the temporary NFS mount directory to their final places (also specified in the configuration file).
I created this script having been learning Perl for maybe 2 weeks and progressing not much further than page 12 of Programming Perl by Larry Wall and Randal L. Shwartz. Hence you may consider the code badly written, but a quote from the book Id like to include is "a Perl script is correct if its halfway readable and gets the job done before your boss fires you". So I take no blame for the code, Ive commented my code and it worked for me and I make no promises it will work for you.
With regards to licencing, I guess its not really worthy of the full 9 yards, but lets have the happy code hacker ethic of open source development. I.e. something of somewhat basic GPL licence terms and conditions. You may feel inclined to modify the code, in such case if you do, please e-mail me the changes and include the modified code. If youd like to redistribute it with your modifications, please include my name and the original code.
Main features:
- multiple directory backup, with alternative destination directories
- directories are simply listed in a file with their respective destinations
- thorough error checking, if any errors occur e-mail will be sent to the administrator
- checks the status of the NFS server and mountd to prevent any hang-ups from a dead NFS server which is common
Download (0.005MB)
Added: 2007-03-27 License: GPL (GNU General Public License) Price:
943 downloads
Beat Clock 1.0
Beat Clock is a simple internet Beat Clock. more>>
Beat Clock is a simple internet Beat Clock.
Internet time or Beat time is a system developed by Swatch (the watch company) where you devide the day into 1000 beats and use these units to messure the passage of time.
All Beat clocks display the same time dispite local times zones. GMT+1 is used as the reference zone. People can use beat time to help cordinate events with people that may span many times zones or political time zones without having to know what the local time is.
This can be most usfull if you dont know if someone elses country follows a form of Daylight Savings.
Beat Clock is my creation and it is my wish that it be protected with all rights entitled to me as its creator. Use of Beat Clock is at the users expense. Dont blame me if something goes wrong. I make all the best effort to correct all bugs but I do not guaranty that Beat Clock is perfect. No human designed system is perfect. Errors will happen so use at your own risk (please notify me of bugs so I can improve the software).
<<lessInternet time or Beat time is a system developed by Swatch (the watch company) where you devide the day into 1000 beats and use these units to messure the passage of time.
All Beat clocks display the same time dispite local times zones. GMT+1 is used as the reference zone. People can use beat time to help cordinate events with people that may span many times zones or political time zones without having to know what the local time is.
This can be most usfull if you dont know if someone elses country follows a form of Daylight Savings.
Beat Clock is my creation and it is my wish that it be protected with all rights entitled to me as its creator. Use of Beat Clock is at the users expense. Dont blame me if something goes wrong. I make all the best effort to correct all bugs but I do not guaranty that Beat Clock is perfect. No human designed system is perfect. Errors will happen so use at your own risk (please notify me of bugs so I can improve the software).
Download (0.022MB)
Added: 2005-12-09 License: Other/Proprietary License Price:
1464 downloads
drsbackup 0.98
drsbackup is for backing up systems, disk to disk. more>>
drsbackup is for backing up systems, disk to disk. drsbackup project is not aimed at your cron job that does periodic backups. Instead, it is intended as a one-shot backup facility, for use when you, say, need to upgrade a system, in which case doing a -a followed by a -a -i can be very effective.
It has three primary modes of operation:
1. Back up all filesystems on the system, as determined by a df-local script that lists all local filesystems. If your df-local script doesnt work, dont blame drsbackup .
2. Back up all filesystems specified with -f.
3. Back up all files that have changed since initial install (requires stamp/check-stamp/elim-dirs, and a stamp snapshot to have been done at install time).
Largely orthogonal to the above modes of operation, there are these additional, independent modes of operation:
1. Copy all files, but split out
2. Copy only files that have changed (presumes split out copies)
3. Copy all files, but to a series of tar archives
You can also specify whether transfers should be compressed or not (only on the client side, so far, which is usually what one wants, but not always).
Run it with an argument of -h for usage.
<<lessIt has three primary modes of operation:
1. Back up all filesystems on the system, as determined by a df-local script that lists all local filesystems. If your df-local script doesnt work, dont blame drsbackup .
2. Back up all filesystems specified with -f.
3. Back up all files that have changed since initial install (requires stamp/check-stamp/elim-dirs, and a stamp snapshot to have been done at install time).
Largely orthogonal to the above modes of operation, there are these additional, independent modes of operation:
1. Copy all files, but split out
2. Copy only files that have changed (presumes split out copies)
3. Copy all files, but to a series of tar archives
You can also specify whether transfers should be compressed or not (only on the client side, so far, which is usually what one wants, but not always).
Run it with an argument of -h for usage.
Download (0.016MB)
Added: 2007-02-14 License: GPL (GNU General Public License) Price:
982 downloads
myrescue 0.9.3
myrescue is a program to rescue the still-readable data from a damaged harddisk. more>>
myrescue is a program to rescue the still-readable data from a damaged harddisk. The project is similiar in purpose to dd_rescue, but it tries to quickly get out of damaged areas to first handle the not yet damaged part of the disk and return later.
Note:
This tools is no replacement for a professional data recovery service! If you do have the latter option, dont even think of using myrescue, as it may further damage your disk. This tool is provided only for the case that you are absolutely desperate and definitely cannot afford a professional data recovery. Or in case you know what you are doing, e.g. if you know that it is the aging of the magnetisation layer that is causing your problem.
The usual GPL disclaimer applies. Especially the NON-WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE. Dont blame (or sue) me if it fails to recover or further damages your data.
How it works
The program tries to copy the device blockwise to a file and keeps a table ("block bitmap") noting whether a block has been successfully copied, not yet handled or has had errors. This block bitmap can be used in successive runs to concentrate on the not yet rescued blocks.
The program has a special skip mode to handle read errors. Usually harddisk surface defects cover more than just one block and continuous reading in defect areas can damage the surface, the heads and (by permanent recalibration) the drive mechanics. If this happens, the chances of rescuing the remaining undamaged data drop dramatically. So in skip mode, myrescue tries to get out of damaged areas quickly by exponentially increasing the stepsize. The skipped blocks are marked as unhandled in the block bitmap and can be retried later.
Finally, the program has an option to multiply try to read a block before considering it damaged.
<<lessNote:
This tools is no replacement for a professional data recovery service! If you do have the latter option, dont even think of using myrescue, as it may further damage your disk. This tool is provided only for the case that you are absolutely desperate and definitely cannot afford a professional data recovery. Or in case you know what you are doing, e.g. if you know that it is the aging of the magnetisation layer that is causing your problem.
The usual GPL disclaimer applies. Especially the NON-WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE. Dont blame (or sue) me if it fails to recover or further damages your data.
How it works
The program tries to copy the device blockwise to a file and keeps a table ("block bitmap") noting whether a block has been successfully copied, not yet handled or has had errors. This block bitmap can be used in successive runs to concentrate on the not yet rescued blocks.
The program has a special skip mode to handle read errors. Usually harddisk surface defects cover more than just one block and continuous reading in defect areas can damage the surface, the heads and (by permanent recalibration) the drive mechanics. If this happens, the chances of rescuing the remaining undamaged data drop dramatically. So in skip mode, myrescue tries to get out of damaged areas quickly by exponentially increasing the stepsize. The skipped blocks are marked as unhandled in the block bitmap and can be retried later.
Finally, the program has an option to multiply try to read a block before considering it damaged.
Download (0.014MB)
Added: 2006-11-22 License: GPL (GNU General Public License) Price:
1068 downloads
MMS Ripper 0.7.0
MMSRIP is a pure useless program which allows you to save on your hard-disk the content being streamed by an MMS server. more>>
MMSRIP is a pure useless program which allows you to save on your hard-disk the content being streamed by an MMS server.
This program has been written for personnal use, so dont blame me if you think I am stupid doing such tool for the others.
MMS Ripper project should run on every POSIX compliant Operating System, but I cant give you any complete list.
MMSRIP is a client for the proprietary protocol MMS://.
It actually saves to a file the content being streamed. Please remember that this is not intended for real use, its existence is only and must only be documentary.
Enhancements:
- This release introduces many improvements and bugfixes such as a workaround for recalcitrant MMS servers, a switch which enables debug output and the display of the ripping speed.
- You may also compile MMSRIP on Solaris, Cygwin, and Win32 now.
<<lessThis program has been written for personnal use, so dont blame me if you think I am stupid doing such tool for the others.
MMS Ripper project should run on every POSIX compliant Operating System, but I cant give you any complete list.
MMSRIP is a client for the proprietary protocol MMS://.
It actually saves to a file the content being streamed. Please remember that this is not intended for real use, its existence is only and must only be documentary.
Enhancements:
- This release introduces many improvements and bugfixes such as a workaround for recalcitrant MMS servers, a switch which enables debug output and the display of the ripping speed.
- You may also compile MMSRIP on Solaris, Cygwin, and Win32 now.
Download (0.093MB)
Added: 2006-01-28 License: GPL (GNU General Public License) Price:
1376 downloads
Acme::OneHundredNotOut 100
Acme::OneHundredNotOut is a raise of the bat, a tip of the hat. more>>
Acme::OneHundredNotOut is a raise of the bat, a tip of the hat.
I have just released my 100th module to CPAN, the first time that anyone has reached that target. As some of you may know, I am getting ready to go back to college and reinvent myself from being a programmer into being a missionary. I dont forsee that many more Perl modules coming out of this.
Of course, this doesnt mean that Im going to abjure usage of Perl forever; any time theres a computer and something I need automated, out will come the Swiss Army Chainsaw and the job will get done. In fact, we recently needed to manipulate some text from a mission handbook to translate it into Japanese, and Perl was there handling and collating all that.
But 100 modules is a convenient place to stop and take stock, and I hope that those of you who have benefitted from my modules, programs or writing about Perl will forgive me a certain spot of self-indulgence as I look back over my CPAN career, especially since I feel that the diversity of modules that Ive produced is a good indication of the diversity of what can be done with Perl.
Lets begin, then, with some humble beginnings, and then catch up on recent history.
The Embarrassing Past
Contrary to popular belief, I was not always a CPAN author. I started writing modules in 1998, immediately after reading the first edition of the Perl Cookbook - yes, you can blame Nat and Tom for all this. The first module that I released was Tie::DiscoveryHash, since Id just learnt about tied hashes. As with many of my modules, it was an integral part of another software project which I actually never finished, and now cant find.
The first module that I ever wrote (but, by a curious quirk of fate, precisely the fiftieth module I released) was called String::Tokeniser, which is still a reasonably handy way of getting an iterator over tokenising a string. (Someone recently released String::Tokenizer, which makes me laugh.) This too was for an abortive project, webperl, an application of Don Knuths WEB system of structured documentation to Perl. However, given the code quality of these two modules, its perhaps just as well that the projects never saw the light of day.
There are a few other modules Id rather like to forget, too. Devel::Pointer was a sick joke that went badly wrong - it allowed people to use pointers in Perl. Some people failed to notice that referring to memory locations directly in an extremely high-level language was a dangerous and silly thing to do, and actually used the damned thing, and I started getting requests for support for it. Then at some point in 2001, when I should really have known better, I developed an interest in Microsofts .NET and the C# language, which I still think is pretty neat; but I decided it might be a good idea to translate the Mono projects tokenizer and parser into Perl, ending up with C::Sharp. I never got around to doing the parser part, or indeed anything else with it, and so it died a lonely death in a dark corner of CPAN. GTK::HandyClist was my foray into programming graphical applications, which started and ended there.
Bundle::SDK::SIMON was actually the slides from a talk on my top ten favourite CPAN modules - except that this changes so quickly over time, it doesnt really make much sense any more.
Finally, Array::FileReader was an attempt to optimize a file access process. Unfortunately, my "optimization" ended up introducing more overheads than the naive solution. It all goes to show. Since then, Mark-Jason Dominus, another huge influence in the development of my CPAN career, has written Tie::File, which not only has a better name but is actually efficient too.
The Internals Phase
1999-2000 were disastrous years for me personally but magnificent years Perl-sonally. Stuck in a boring job and a tiny flat in the middle of Tokyo, I had plenty of time to get stuck into more Perl development. I felt that getting involved with perl5-porters would be a good way of gettting to know more about Perl, and so I needed a hobby horse - an issue of Perls development that I cared about. Since I was in Japan and working a lot with non-Latin text, Unicode support seemed a good thing to work on, and so Unicode::Decompose appeared, while I fixed up a substantial part of the post-5.6 core Unicode support.
Id recommend this way to anyone who wants to get more involved in the Perl community, although I was very lucky in terms of who else happened to be around at the time: Gurusamy Sarathy was extremely gracious in helping me turn my fledgling C code into something fit for the Perl core, and he also helped me understand the perl5-porters etiquette (yes, there was some at the time) and what makes a good patch, while Jarkko Hietaniemi was always good for suggestions of interesting things for keen people to work on. Seriously, get involved. If I can do it, anyone can.
Anyway, this fixation with understanding the Perl 5 internals, and especially the Perl 5 compiler, (due to yet another of my Perl influences, the great Malcolm Beattie) led to quite a torrent of modules, from ByteCache, an implementation of just-in-time compilation for Perl modules, through B::Flags and B::Tree to help visualising the Perl op tree, to uninit, B::Generate, optimizer and B::Utils for modifying it.
Perl About The House
Now we abandon chronological order somewhat and take a look at the various areas in which Ive used Perl. One of these areas has been the automation of everyday life: checking my bank balance with Finance::Bank::LloydsTSB (the first Perl module to interface to personal internet banking, no less) and my phone bill with a release of Tony Bowdens Data::BT::PhoneBill.
Finance::Bank::LloydsTSB was meant to go with Finance::QIF, my Quicken file parser, to produce another now-abandoned idea, a Perl finances manager. It seemed that Im only capable of producing modules, not full standalone applications - or at least, it seemed that way until I produced Bryar, my blogging software, based on the concepts from Rael Dornfests blosxom and beginning my adventures with Andy Wardleys Template Toolkit. Bryar also tuned me in to the Model-View-Controller framework idea, of which more later.
Another project I briefly played with was a personal robot, using the Sphinx/Festival speech handling and recognition modules from Cepstral and Kevin Lenzo. I didnt have X10, so I couldnt shout "lights" into the air in a wonderfully scifi way, but I could shout "mail" and have a summary of my inbox read to me, "news" to get the latest BBC news headlines, and "time" to hear the time. Of course, getting computers to tell the time nicely takes a little bit of work. I dont like "Its eleven oh-three pee em", since thats not what someone would say if you asked them the time. I wanted my robot to say "Its just after eleven", and thats what Time::Human does. Shame about the localisation.
<<lessI have just released my 100th module to CPAN, the first time that anyone has reached that target. As some of you may know, I am getting ready to go back to college and reinvent myself from being a programmer into being a missionary. I dont forsee that many more Perl modules coming out of this.
Of course, this doesnt mean that Im going to abjure usage of Perl forever; any time theres a computer and something I need automated, out will come the Swiss Army Chainsaw and the job will get done. In fact, we recently needed to manipulate some text from a mission handbook to translate it into Japanese, and Perl was there handling and collating all that.
But 100 modules is a convenient place to stop and take stock, and I hope that those of you who have benefitted from my modules, programs or writing about Perl will forgive me a certain spot of self-indulgence as I look back over my CPAN career, especially since I feel that the diversity of modules that Ive produced is a good indication of the diversity of what can be done with Perl.
Lets begin, then, with some humble beginnings, and then catch up on recent history.
The Embarrassing Past
Contrary to popular belief, I was not always a CPAN author. I started writing modules in 1998, immediately after reading the first edition of the Perl Cookbook - yes, you can blame Nat and Tom for all this. The first module that I released was Tie::DiscoveryHash, since Id just learnt about tied hashes. As with many of my modules, it was an integral part of another software project which I actually never finished, and now cant find.
The first module that I ever wrote (but, by a curious quirk of fate, precisely the fiftieth module I released) was called String::Tokeniser, which is still a reasonably handy way of getting an iterator over tokenising a string. (Someone recently released String::Tokenizer, which makes me laugh.) This too was for an abortive project, webperl, an application of Don Knuths WEB system of structured documentation to Perl. However, given the code quality of these two modules, its perhaps just as well that the projects never saw the light of day.
There are a few other modules Id rather like to forget, too. Devel::Pointer was a sick joke that went badly wrong - it allowed people to use pointers in Perl. Some people failed to notice that referring to memory locations directly in an extremely high-level language was a dangerous and silly thing to do, and actually used the damned thing, and I started getting requests for support for it. Then at some point in 2001, when I should really have known better, I developed an interest in Microsofts .NET and the C# language, which I still think is pretty neat; but I decided it might be a good idea to translate the Mono projects tokenizer and parser into Perl, ending up with C::Sharp. I never got around to doing the parser part, or indeed anything else with it, and so it died a lonely death in a dark corner of CPAN. GTK::HandyClist was my foray into programming graphical applications, which started and ended there.
Bundle::SDK::SIMON was actually the slides from a talk on my top ten favourite CPAN modules - except that this changes so quickly over time, it doesnt really make much sense any more.
Finally, Array::FileReader was an attempt to optimize a file access process. Unfortunately, my "optimization" ended up introducing more overheads than the naive solution. It all goes to show. Since then, Mark-Jason Dominus, another huge influence in the development of my CPAN career, has written Tie::File, which not only has a better name but is actually efficient too.
The Internals Phase
1999-2000 were disastrous years for me personally but magnificent years Perl-sonally. Stuck in a boring job and a tiny flat in the middle of Tokyo, I had plenty of time to get stuck into more Perl development. I felt that getting involved with perl5-porters would be a good way of gettting to know more about Perl, and so I needed a hobby horse - an issue of Perls development that I cared about. Since I was in Japan and working a lot with non-Latin text, Unicode support seemed a good thing to work on, and so Unicode::Decompose appeared, while I fixed up a substantial part of the post-5.6 core Unicode support.
Id recommend this way to anyone who wants to get more involved in the Perl community, although I was very lucky in terms of who else happened to be around at the time: Gurusamy Sarathy was extremely gracious in helping me turn my fledgling C code into something fit for the Perl core, and he also helped me understand the perl5-porters etiquette (yes, there was some at the time) and what makes a good patch, while Jarkko Hietaniemi was always good for suggestions of interesting things for keen people to work on. Seriously, get involved. If I can do it, anyone can.
Anyway, this fixation with understanding the Perl 5 internals, and especially the Perl 5 compiler, (due to yet another of my Perl influences, the great Malcolm Beattie) led to quite a torrent of modules, from ByteCache, an implementation of just-in-time compilation for Perl modules, through B::Flags and B::Tree to help visualising the Perl op tree, to uninit, B::Generate, optimizer and B::Utils for modifying it.
Perl About The House
Now we abandon chronological order somewhat and take a look at the various areas in which Ive used Perl. One of these areas has been the automation of everyday life: checking my bank balance with Finance::Bank::LloydsTSB (the first Perl module to interface to personal internet banking, no less) and my phone bill with a release of Tony Bowdens Data::BT::PhoneBill.
Finance::Bank::LloydsTSB was meant to go with Finance::QIF, my Quicken file parser, to produce another now-abandoned idea, a Perl finances manager. It seemed that Im only capable of producing modules, not full standalone applications - or at least, it seemed that way until I produced Bryar, my blogging software, based on the concepts from Rael Dornfests blosxom and beginning my adventures with Andy Wardleys Template Toolkit. Bryar also tuned me in to the Model-View-Controller framework idea, of which more later.
Another project I briefly played with was a personal robot, using the Sphinx/Festival speech handling and recognition modules from Cepstral and Kevin Lenzo. I didnt have X10, so I couldnt shout "lights" into the air in a wonderfully scifi way, but I could shout "mail" and have a summary of my inbox read to me, "news" to get the latest BBC news headlines, and "time" to hear the time. Of course, getting computers to tell the time nicely takes a little bit of work. I dont like "Its eleven oh-three pee em", since thats not what someone would say if you asked them the time. I wanted my robot to say "Its just after eleven", and thats what Time::Human does. Shame about the localisation.
Download (0.014MB)
Added: 2006-06-08 License: Perl Artistic License Price:
1233 downloads
Kpoldek 0.01 Alpha
Kpoldek project is a small program to manage a RPM packages using external application like poldek. more>>
Kpoldek project is a small program to manage a RPM packages using external application like poldek.
Actually it is just an graphic interface, so dont blame me. I think it might be usefull for a people, that are lazy to do this command things.
<<lessActually it is just an graphic interface, so dont blame me. I think it might be usefull for a people, that are lazy to do this command things.
Download (0.094MB)
Added: 2007-03-05 License: GPL (GNU General Public License) Price:
963 downloads
Secleted [ 0 ] software to compare
- Page: 1 of 2
- 1
- 2
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above blame 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