beware the ides of march
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 369
beware 0.1
beware project is a distributed global server load balancing system. more>>
beware project is a distributed global server load balancing system.
beware is a small DNS server that can have nameserver responsibility delegated to it and that can return a set of authoritative "IN A" records to a client.
Given a list of hosts for a certain domain name, it also tests for services specified and will only return IP addresses for currently reachable services.
<<lessbeware is a small DNS server that can have nameserver responsibility delegated to it and that can return a set of authoritative "IN A" records to a client.
Given a list of hosts for a certain domain name, it also tests for services specified and will only return IP addresses for currently reachable services.
Download (0.12MB)
Added: 2007-04-14 License: GPL (GNU General Public License) Price:
923 downloads
Escape of the Unicorn 0.1.15
Escape of the Unicorn project is a side-scrolling, 2D flying shooter game. more>>
Escape of the Unicorn project is a side-scrolling, 2D flying shooter game.
Welcome to the land of miraculous creatures.
Take a risk and play the game called
Escape of the Unicorn.
You play a unicorn,
a noble and most beautiful animal,
the most beautiful to have ever existed.
Your goal is to escape
from a cave full of monsters and traps.
You can move with the arrow keys and fire missiles.
Every missile can harm a monster if it is aimed well.
Beware of the monsters and lasers.
They decrease your energy when you touch them.
The same happens when you hit walls.
Some creatures may also shoot fireballs.
Be careful at all times.
When you are out of energy,
you die and lose the game.
Enhancements:
- Levels now have more complex shape
- 3 crafted levels
- Per-object speed control, and new types of interactions
- New game objects such as Puff Fish, Wall Spikes, Bloops
- Walls no longer damage player, immunity time much shorter
<<lessWelcome to the land of miraculous creatures.
Take a risk and play the game called
Escape of the Unicorn.
You play a unicorn,
a noble and most beautiful animal,
the most beautiful to have ever existed.
Your goal is to escape
from a cave full of monsters and traps.
You can move with the arrow keys and fire missiles.
Every missile can harm a monster if it is aimed well.
Beware of the monsters and lasers.
They decrease your energy when you touch them.
The same happens when you hit walls.
Some creatures may also shoot fireballs.
Be careful at all times.
When you are out of energy,
you die and lose the game.
Enhancements:
- Levels now have more complex shape
- 3 crafted levels
- Per-object speed control, and new types of interactions
- New game objects such as Puff Fish, Wall Spikes, Bloops
- Walls no longer damage player, immunity time much shorter
Download (MB)
Added: 2006-11-16 License: LGPL (GNU Lesser General Public License) Price:
1076 downloads
bzr 0.10 RC1
bzr is a simple distributed version control system. more>>
Bazaar-NG (or bzr) is a project of Canonical to develop an open source distributed version control system that is powerful, friendly, and scalable.
Version control means a system that keeps track of previous revisions of software source code or similar information and helps people work on it in teams.
bzr is still at a fairly early stage of development but has been self-hosting since March 2005 with no loss of data.
bzr is the next-generation distributed version control.
Main features:
- Written in Python (but nevertheless fast and easy to install.)
- Runs on Linux, Windows and Mac OS X, or any system with a Python interpreter. (Primarily tested on Ubuntu.)
- Free software, released under the GNU GPL.
- Designed to play well with others: can be called by IDEs, editors, web tools, GUIs, etc through either a Python API or a shell interface, and possibly a C interface in the future. Can support workflow/process tools built on top.
- The user interface is simple and familiar to people with experience from CVS or Subversion: add, mv, diff, status, commit, log, merge, etc all do what you would expect.
- Offers a choice between centralized and decentralized work within a single project: when in the office, you can work on a shared central branch. For experimental changes or offline work you can make a branch on your laptop and merge back in later.
- Preserves history; any previous revision can be recreated. History can be GPG-signed to protect against man-in-the-middle attacks, bad mirrors, server intrusion or data corruption.
- Just one .bzr directory at the top of the tree; it doesnt clutter the tree or get in your face. No wierd ++file--names--0.
- Tracks file and directory renames and merges across them.
- Powerful Python plugin system for adding new commands, protocols, formats, or site policy.
Enhancements:
- merge now takes --uncommitted, to apply uncommitted changes from a tree.
- Moderate performance improvements, particularly on large trees.
- Compatability with diffutils 2.8.4. bzr uncommit preserves pending merges.
- Active FTP support has been fixed.
- TZ=UTC is handled properly when reading/writing revisions.
- GPG_TTY is used to allow gpg --cl to work with gpg-agent in a pipeline (passing text to sign in on stdin).
- External diff does the right thing for binaries even in foreign languages.
<<lessVersion control means a system that keeps track of previous revisions of software source code or similar information and helps people work on it in teams.
bzr is still at a fairly early stage of development but has been self-hosting since March 2005 with no loss of data.
bzr is the next-generation distributed version control.
Main features:
- Written in Python (but nevertheless fast and easy to install.)
- Runs on Linux, Windows and Mac OS X, or any system with a Python interpreter. (Primarily tested on Ubuntu.)
- Free software, released under the GNU GPL.
- Designed to play well with others: can be called by IDEs, editors, web tools, GUIs, etc through either a Python API or a shell interface, and possibly a C interface in the future. Can support workflow/process tools built on top.
- The user interface is simple and familiar to people with experience from CVS or Subversion: add, mv, diff, status, commit, log, merge, etc all do what you would expect.
- Offers a choice between centralized and decentralized work within a single project: when in the office, you can work on a shared central branch. For experimental changes or offline work you can make a branch on your laptop and merge back in later.
- Preserves history; any previous revision can be recreated. History can be GPG-signed to protect against man-in-the-middle attacks, bad mirrors, server intrusion or data corruption.
- Just one .bzr directory at the top of the tree; it doesnt clutter the tree or get in your face. No wierd ++file--names--0.
- Tracks file and directory renames and merges across them.
- Powerful Python plugin system for adding new commands, protocols, formats, or site policy.
Enhancements:
- merge now takes --uncommitted, to apply uncommitted changes from a tree.
- Moderate performance improvements, particularly on large trees.
- Compatability with diffutils 2.8.4. bzr uncommit preserves pending merges.
- Active FTP support has been fixed.
- TZ=UTC is handled properly when reading/writing revisions.
- GPG_TTY is used to allow gpg --cl to work with gpg-agent in a pipeline (passing text to sign in on stdin).
- External diff does the right thing for binaries even in foreign languages.
Download (0.55MB)
Added: 2006-08-28 License: GPL (GNU General Public License) Price:
1153 downloads
Gee Whiz 0.9.1
Gee Whiz is a role playing game similar to Wizardry(tm). more>>
Gee Whiz project is a role playing game similar to Wizardry(tm).
GWiz is a game in the same style of Wizardry(tm). Wizardry is a role playing game by Sir-Tech Ltd. that takes place in a two dimensional maze rendered from a first person perspective.
I wanted to help fill out the current stock of games freely available to Linux users, and having been a longtime fan of these types of games, I thought it would be a great and rewarding challenge to try and copy the feel that these games presented.
I began work in February 2002 (though I do not remember the exact date, it was probably around the 20th). I did not flowchart the project at the time, because I already knew what the end product was going to be like. Retrospectively, this was a mistake.
As early as March 9, I was feeling a little burned out, and I was going to shelf the project. That was my plan, until my LUGMaster advised me to just release what I have, which (predictably) showed a little public interest in my work. This in turn, prompted me to continue development.
At the time of its release, it was called "Generic Wizardry Clone" (GWC) but was later renamed to GWiz, a (not very clever) pun on the pronunciation of "Gee Whiz."
Eventually, I did scrap the project as it was; I could not hunt down a critical showstopping bug. Considering how badly written it was (my first real-world application programming experience) I decided to rewrite it.
<<lessGWiz is a game in the same style of Wizardry(tm). Wizardry is a role playing game by Sir-Tech Ltd. that takes place in a two dimensional maze rendered from a first person perspective.
I wanted to help fill out the current stock of games freely available to Linux users, and having been a longtime fan of these types of games, I thought it would be a great and rewarding challenge to try and copy the feel that these games presented.
I began work in February 2002 (though I do not remember the exact date, it was probably around the 20th). I did not flowchart the project at the time, because I already knew what the end product was going to be like. Retrospectively, this was a mistake.
As early as March 9, I was feeling a little burned out, and I was going to shelf the project. That was my plan, until my LUGMaster advised me to just release what I have, which (predictably) showed a little public interest in my work. This in turn, prompted me to continue development.
At the time of its release, it was called "Generic Wizardry Clone" (GWC) but was later renamed to GWiz, a (not very clever) pun on the pronunciation of "Gee Whiz."
Eventually, I did scrap the project as it was; I could not hunt down a critical showstopping bug. Considering how badly written it was (my first real-world application programming experience) I decided to rewrite it.
Download (1.7MB)
Added: 2007-01-04 License: GPL (GNU General Public License) Price:
1026 downloads
Proxifier 1.0 RC3
Proxifier project is an easy to install three tier web proxy written in PHP. more>>
Proxifier project is an easy to install three tier web proxy written in PHP.
Features include the ability to remove cookies, the HTTP referer field, the HTTP user-agent field, scripts on the page, and objects, altering the user-agent string to whatever you please, and tunnelling your proxied traffic through a second proxy.
If there existed a freely public install of this script, two standard proxies could be used, one entered in the proxy settings of your browser, and one entered into the publicly installed web proxy, to create a connection being passed between three separate proxy servers before hitting the final destination.
Most web sites should be supported by this web proxy. If a site doesnt seem to be supported, please email me. Please note, however, that most AJAX applications will probably have problems with Proxifier, so dont attempt to use anything like GMail or Meebo.
DO NOT USE THIS PROXY AS OF NOW TO ACCESS ANY SENSITIVE INFORMATION, INCLUDING BUT NOT LIMITED TO CREDIT CARD INFORMATION, SOCIAL SECURITY NUMBERS, SENSITIVE PASSWORDS, AND OTHER SIMILAR THINGS! Currently, SSL/TLS is supported through just entering a URL in the field. BEWARE: This does NOT secure your connection to the proxy server as of yet, only the connection from the proxy server to the web server the request is going to! This might create a false sense of security for some people, as your passwords are being passed openly without encryption through the Internet.
Enhancements:
- A major bug has been fixed where certain versions of the PCRE library would have issue with one of the regular expressions, causing many pages to not load at all.
- A bug where the base HTML tag was being parsed incorrectly has been fixed.
- Some instances of preg_match() have been replaced with other functions that were more efficient for the circumstances.
<<lessFeatures include the ability to remove cookies, the HTTP referer field, the HTTP user-agent field, scripts on the page, and objects, altering the user-agent string to whatever you please, and tunnelling your proxied traffic through a second proxy.
If there existed a freely public install of this script, two standard proxies could be used, one entered in the proxy settings of your browser, and one entered into the publicly installed web proxy, to create a connection being passed between three separate proxy servers before hitting the final destination.
Most web sites should be supported by this web proxy. If a site doesnt seem to be supported, please email me. Please note, however, that most AJAX applications will probably have problems with Proxifier, so dont attempt to use anything like GMail or Meebo.
DO NOT USE THIS PROXY AS OF NOW TO ACCESS ANY SENSITIVE INFORMATION, INCLUDING BUT NOT LIMITED TO CREDIT CARD INFORMATION, SOCIAL SECURITY NUMBERS, SENSITIVE PASSWORDS, AND OTHER SIMILAR THINGS! Currently, SSL/TLS is supported through just entering a URL in the field. BEWARE: This does NOT secure your connection to the proxy server as of yet, only the connection from the proxy server to the web server the request is going to! This might create a false sense of security for some people, as your passwords are being passed openly without encryption through the Internet.
Enhancements:
- A major bug has been fixed where certain versions of the PCRE library would have issue with one of the regular expressions, causing many pages to not load at all.
- A bug where the base HTML tag was being parsed incorrectly has been fixed.
- Some instances of preg_match() have been replaced with other functions that were more efficient for the circumstances.
Download (MB)
Added: 2007-05-08 License: BSD License Price:
918 downloads
Virtual Drum Machine 0.3
Virtual Drum Machine is a simple drum machine. more>>
Virtual Drum Machine is a simple drum machine.
It works for little endian/linux kind of machines. You may let it work on others machines, but you probably will get troubles with it.
You definitely need oss (or maybe alsa) for sound output, and a posix-like operating system. To let it work on a big endian machine should be painful.
You write a rhythm, then you compile it, then you are able to play it to your sound card or save it to a file.
The Virtual Drum Machine is made of
- the Rhythm Compiler,
- the runtime library.
The Virtual Drum Machine is in the public domain. Who needs a license? money makers? Protection against robbery? let me laugh... Read any text of law, you will see where the robbers reside.
A simple file would look like :
void main_rhythm(void)
{
tempo = 120;
- a
. b
. b
.
- a
.b
- a
.
. b
. b
- a c
. b
}
Install:
Do a "./configure" in the drums directory, then "make", then "make install", it should be alright. You can listen to some examples in the examples/ directory.
Who yo use it?
Write a rhythm. Compile it with "rc". Run the produced program. You are done.
See the examples/ directory to get the point.
When you run an example, try "-h" to get the available options.
It should be self-explanatory.
The rhythm compiler has several options. By running "rc --help", all should be clear.
Technical Details:
The compiler will parse the input file line by line.
If a line starts with "*" or "." (not counting leading white spaces), the whole line is seen as a rhythm line, and is transformed into C code. If not, it is passed as is to the C file.
Beware! You MUST NOT start any C code line by "*" or "."!
You can create as much functions as you want, write any C code you want. But remember that a line starting by "*" or "." is seen as a rhythm line and is translated by "rc" into C code.
You must provide a "void main_rhythm(void)" function, that will be called by the library. It is the starting point of your rhythm. It can be "void main_rhythm(int argc, char *argv[])" too, with common meaning for those parameters (non-C coders will have trouble with the Virtual Drum Machine).
You can change the tempo (ex. "tempo=100;") or the volume (ex "vol=0.4;") at any time. Each sample comes with its own volume and panning (ex. "a.vol = 0.1;" "a.pan=-0.8;"). Volumes range from 0 to what you want. 1 is for the normal volume. Panning ranges from -1 (left) to 1 (right). 0 is center. All values are double. You can use "volume" instead of "vol", and "panning" instead of "pan". There is no global panning, if you want all left, set all samples to left.
To run in stereo mode, dont forget "-s" when running the generated program. It is mono by default.
You absolutely need to compile and run the examples, and read them to get the point out of it!
The "rc.conf" file contains configuration informations. You specify the sample by "sample" followed by its name (the one you will use in your rhythm files), then the file that will be played. The name of the sample must start by a letter, followed by letters and/or numbers (it must be a valid C identifier, without "_" though). The configuration file contains the install directory, used by "rc" to compile your rhythms. Take a look at the one that is provided to see how to use it.
The sound files are simple wav files. They all should be of the same rate, which can be specified to the generated program, using the "-f" option (44100 is the default). (The library only handles very basic wav files, if yours dont work, you probably will have to modify the library for the program to handle it.)
When you add a sample, you must modify "rc.conf" for the changes to appear. The samples are hard-linked to the produced program, so if you change "sample a /some/dir/file1.wav" by "sample a /one/other/dir/file2.wav" in the configuration file, the previously generated programs will still use "/some/dir/file1.wav". You will have to compile them again to take the changes into account.
Enhancements:
- The code has been modified to let gcc 4 compile it.
<<lessIt works for little endian/linux kind of machines. You may let it work on others machines, but you probably will get troubles with it.
You definitely need oss (or maybe alsa) for sound output, and a posix-like operating system. To let it work on a big endian machine should be painful.
You write a rhythm, then you compile it, then you are able to play it to your sound card or save it to a file.
The Virtual Drum Machine is made of
- the Rhythm Compiler,
- the runtime library.
The Virtual Drum Machine is in the public domain. Who needs a license? money makers? Protection against robbery? let me laugh... Read any text of law, you will see where the robbers reside.
A simple file would look like :
void main_rhythm(void)
{
tempo = 120;
- a
. b
. b
.
- a
.b
- a
.
. b
. b
- a c
. b
}
Install:
Do a "./configure" in the drums directory, then "make", then "make install", it should be alright. You can listen to some examples in the examples/ directory.
Who yo use it?
Write a rhythm. Compile it with "rc". Run the produced program. You are done.
See the examples/ directory to get the point.
When you run an example, try "-h" to get the available options.
It should be self-explanatory.
The rhythm compiler has several options. By running "rc --help", all should be clear.
Technical Details:
The compiler will parse the input file line by line.
If a line starts with "*" or "." (not counting leading white spaces), the whole line is seen as a rhythm line, and is transformed into C code. If not, it is passed as is to the C file.
Beware! You MUST NOT start any C code line by "*" or "."!
You can create as much functions as you want, write any C code you want. But remember that a line starting by "*" or "." is seen as a rhythm line and is translated by "rc" into C code.
You must provide a "void main_rhythm(void)" function, that will be called by the library. It is the starting point of your rhythm. It can be "void main_rhythm(int argc, char *argv[])" too, with common meaning for those parameters (non-C coders will have trouble with the Virtual Drum Machine).
You can change the tempo (ex. "tempo=100;") or the volume (ex "vol=0.4;") at any time. Each sample comes with its own volume and panning (ex. "a.vol = 0.1;" "a.pan=-0.8;"). Volumes range from 0 to what you want. 1 is for the normal volume. Panning ranges from -1 (left) to 1 (right). 0 is center. All values are double. You can use "volume" instead of "vol", and "panning" instead of "pan". There is no global panning, if you want all left, set all samples to left.
To run in stereo mode, dont forget "-s" when running the generated program. It is mono by default.
You absolutely need to compile and run the examples, and read them to get the point out of it!
The "rc.conf" file contains configuration informations. You specify the sample by "sample" followed by its name (the one you will use in your rhythm files), then the file that will be played. The name of the sample must start by a letter, followed by letters and/or numbers (it must be a valid C identifier, without "_" though). The configuration file contains the install directory, used by "rc" to compile your rhythms. Take a look at the one that is provided to see how to use it.
The sound files are simple wav files. They all should be of the same rate, which can be specified to the generated program, using the "-f" option (44100 is the default). (The library only handles very basic wav files, if yours dont work, you probably will have to modify the library for the program to handle it.)
When you add a sample, you must modify "rc.conf" for the changes to appear. The samples are hard-linked to the produced program, so if you change "sample a /some/dir/file1.wav" by "sample a /one/other/dir/file2.wav" in the configuration file, the previously generated programs will still use "/some/dir/file1.wav". You will have to compile them again to take the changes into account.
Enhancements:
- The code has been modified to let gcc 4 compile it.
Download (0.67MB)
Added: 2006-02-08 License: Public Domain Price:
943 downloads
Equinox Desktop Environment 1.1
Equinox Desktop Environment is small desktop environment, built to be simple, to have familiar look and feel and to be fast. more>>
Equinox Desktop Environment (shortly EDE) is small desktop environment, builted to be simple and fast.
Comparing to other desktop environments, EDE is much faster and smaller in memory space (EDEs window manager use less memory than xterm).
The word "equinox" comes from the Latin for "equal night". The equinoxes in March and September are the two occasions each year when the day and the night are of equal duration.
For measuring the length of a day, sunrise is the moment when the sun is half-above the horizon and sunset is the moment when the sun is half-under the horizon. Using this definition, the length of the day (and the night) is precisely 12 hours at an equinox.
Main features:
- desktop with icons and wallpaper;
- Xft font anti-aliasing;
- taskbar with configurable menu, cpu status, easy keyboard switching;
- theming;
- localization;
Graphical front-end for:
- xscreensaver configuration;
- software installation (.rpm, .deb, .tgz);
- time and time-zone configuration;
- fast file and directory serch utility;
<<lessComparing to other desktop environments, EDE is much faster and smaller in memory space (EDEs window manager use less memory than xterm).
The word "equinox" comes from the Latin for "equal night". The equinoxes in March and September are the two occasions each year when the day and the night are of equal duration.
For measuring the length of a day, sunrise is the moment when the sun is half-above the horizon and sunset is the moment when the sun is half-under the horizon. Using this definition, the length of the day (and the night) is precisely 12 hours at an equinox.
Main features:
- desktop with icons and wallpaper;
- Xft font anti-aliasing;
- taskbar with configurable menu, cpu status, easy keyboard switching;
- theming;
- localization;
Graphical front-end for:
- xscreensaver configuration;
- software installation (.rpm, .deb, .tgz);
- time and time-zone configuration;
- fast file and directory serch utility;
Download (1.3MB)
Added: 2006-09-02 License: GPL (GNU General Public License) Price:
1150 downloads
File::Wildcard 0.10
File::Wildcard is a Perl module for enhanced glob processing. more>>
File::Wildcard is a Perl module for enhanced glob processing.
SYNOPSIS
use File::Wildcard;
my $foo = File::Wildcard->new(path => "/home/me///core");
while (my $file = $foo->next) {
unlink $file;
}
When looking at how various operating systems do filename wildcard expansion (globbing), VMS has a nice syntax which allows expansion and searching of whole directory trees. It would be nice if other operating systems had something like this built in. The best Unix can manage is through the utility program find.
This module provides this facility to Perl. Whereas native VMS syntax uses the ellipsis "...", this will not fit in with POSIX filenames, as ... is a valid (though somewhat strange) filename. Instead, the construct "///" is used as this cannot syntactically be part of a filename, as you do not get three concurrent filename separators with nothing between (three slashes are used to avoid confusion with //node/path/name syntax).
You dont have to use this syntax, as you can do the splitting yourself and pass in an arrayref as your path.
The module also forms a regular expression for the whole of the wildcard string, and binds a series of back references ($1, $2 etc.) which are available to construct new filenames.
new
File::Wildcard-new( $wildcard, [,option => value,...]);>
my $foo = File::Wildcard->new( path => "/home/me///core");
my $srcfnd = File::Wildcard->new( path => "src///*.cpp",
match => qr(^src/(.*?).cpp$),
derive => [src/$1.o,src/$1.hpp]);
This is the constructor for File::Wildcard objects. At a simple level, pass a single wildcard string as a path.
For more complicated operations, you can supply your own match regexp, or use the derive option to specify regular expression captures to form the basis of other filenames that are constructed for you.
The $srcfnd example gives you object files and header files corresponding to C++ source files.
Here are the options that are available:
path
This is the input parameter that specifies the range of files that will be looked at. This is a glob spec which can also contain the ellipsis /// (it could contain more than one ellipsis, but the benefit of this is questionable, and multiple ellipsi would cause a performance hit).
Note that the path can be relative or absolute. new will do the right thing, working out that a path starting with / is absolute. In order to recurse from the current directory downwards, specify .///foo.
As an alternative, you can supply an arrayref with the path constituents already split. If you do this, you need to tell new if the path is absolute. Include an empty string for an ellipsis. For example:
foo///bar/*.c is equivalent to [foo,,bar,*.c]
You can also construct a File::Wildcard without a path. A call to next will return undef, but paths can be added using the append and prepend methods.
absolute
This is ignored unless you are using a pre split path. If you are passing a string as the path, new will work out whether the path is absolute or relative. Pass a true value for absolute paths.
If your original filespec started with / before you split it, specify absolute => 1. absolute is not required for Windows if the path contains a drive specification, e.g. C:/foo/bar.
case_insensitive
By default, the module will use Filesys::Type to determine whether the file system of your wildcard is defined. This is an optional module (see Module::Optional), and File::Wildcard will guess at case sensitivity based on your operating system. This will not always be correct, as the file system might be VFAT mounted on Linux or ODS-5 on VMS.
Specifying the option case_insensitive explicitly forces this behaviour on the wildcard.
Note that File::Wildcard will use the file system of the current working directory if the path is not absolute. If the path is absolute, you should specify the case_sensitivity option explicitly.
exclude
You can provide a regexp to apply to any generated paths, which will cause any matching paths not to be processed. If the root of a directory tree matches, no processing is done on the entire tree.
This option can be useful for excluding version control repositories, e.g.
exclude => qr/.svn/
match
Optional. If you do not specify a regexp, you get all the files that match the glob; in addition, new will set up a regexp for you, to provide a capture for each wildcard used in the path.
If you do provide a match parameter, this will be used instead, and will filter the results.
derive
Supply an arrayref with a list of derived filenames, which will be constructed for each matching file. This causes next to return an arrayref instead of a scalar.
follow
If given a true value indicates that symbolic links are to be followed. Otherwise, the symbolic link target itself is presented, but the ellipsis will not traverse the link.
This module detects a looping symlink that points to a directory higher up, and will only present the tree once.
ellipsis_order
This can take one of the following values: normal, breadth-first, inside-out. The default option is normal. This controls how File::Wildcard handles the ellipsis. The default is a normal depth first search, presenting the name of each containing directory before the contents.
The inside-out order presents the contents of directories first before the directory, which is useful when you want to remove files and directories (all O/S require directories to be empty before rmdir will work). See t/03_absolute.t as this uses inside-out order to tidy up after the test.
Breadth-first is rarely needed (but I do have an application for it). Here, the whole directory contents is presented before traversing any subdirectories.
Consider the following tree: a/ a/bar/ a/bar/drink a/foo/ a/foo/lish
breadth-first will give the following order: qw(a/ a/bar/ a/foo/ a/bar/drink a/foo/lish). normal gives the order in which the files are listed. inside-out gives the following: qw(a/bar/drink a/bar/ a/foo/lish a/foo/ a/).
sort
By default, globbing returns the list of files in the order in which they are returned by the dirhandle (internally). If you specify sort => 1, the files are sorted into ASCII sequence (case insensitively if we are operating that way). If you specify a CODEREF, this will be used as a comparison routine. Note that this takes its operands in @_, not in $a and $b.
debug and debug_output
You can enable a trace of the internal states of File::Wildcard by setting debug to a true value. Set debug_output to an open filehandle to get the trace in a file. If you are submitting bug reports for File::Wildcard, attaching debug trace files would be very useful.
debug_output defaults to STDERR.
match
my $foo_re = $foo->match;
$foo->match(bar/core);
This is a get and set method that gives access to the match regexp that the File::Wildcard object is using. It is possible to change the regex on the fly in the middle of a search (though I dont know why anyone would want to do this).
append
$foo->append(path => /home/me///*.tmp);
appends a path to an objects todo list. This will be globbed after the object has finished processing the existing wildcards.
prepend
$srcfnd->prepend(path => $include_file);
This is similar to append, but prepends the path to the todo list. In other words, the current wildcard operation is interrupted to serve the new path, then the previous wildcard operation is resumed when this is exhausted.
next
while (my $core = $foo->next) {
unlink $core;
}
my ($src,$obj,$hdr) = @{$srcfnd->next};
The next method is an iterator, which returns successive files. Returns matching files if there was no derive option passed to new. If there was a derive option, returns an arrayref containing the matching filespec and all derived filespecs. The derived filespecs do not have to exist.
Note that next maintains an internal cursor, which retains context and state information. Beware if the contents of directories are changing while you are iterating with next; you may get unpredictable results. If you are intending to change the contents of the directories you are scanning (with unlink or rename), you are better off deferring this operation until you have processed the whole tree. For the pending delete or rename operations, you could always use another File::Wildcard object - see the spike example below:
all
my @cores = $foo->all;
all returns an array of matching files, in the simple case. Returns an array of arrays if you are constructing new filenames, like the $srcfnd example.
Beware of the performance and memory implications of using all. The method will not return until it has read the entire directory tree. Use of the all method is not recommended for traversing large directory trees and whole file systems. Consider coding the traversal using the iterator next instead.
reset
reset causes the wildcard context to be set to re-read the first filename again. Note that this will cause directory contents to be re-read.
Note also that this will cause the path to revert to the original path specified to new. Any additional paths appended or prepended will be forgotten.
close
Release all directory handles associated with the File::Wildcard object. An object that has been closed will be garbage collected once it goes out of scope. Wildcards that have been exhausted are automatically closed, (i.e. all was used, or c< next > returned undef).
Subsequent calls to next will return undef. It is possible to call reset after close on the same File::Wildcard object, which will cause it to be reopened.
<<lessSYNOPSIS
use File::Wildcard;
my $foo = File::Wildcard->new(path => "/home/me///core");
while (my $file = $foo->next) {
unlink $file;
}
When looking at how various operating systems do filename wildcard expansion (globbing), VMS has a nice syntax which allows expansion and searching of whole directory trees. It would be nice if other operating systems had something like this built in. The best Unix can manage is through the utility program find.
This module provides this facility to Perl. Whereas native VMS syntax uses the ellipsis "...", this will not fit in with POSIX filenames, as ... is a valid (though somewhat strange) filename. Instead, the construct "///" is used as this cannot syntactically be part of a filename, as you do not get three concurrent filename separators with nothing between (three slashes are used to avoid confusion with //node/path/name syntax).
You dont have to use this syntax, as you can do the splitting yourself and pass in an arrayref as your path.
The module also forms a regular expression for the whole of the wildcard string, and binds a series of back references ($1, $2 etc.) which are available to construct new filenames.
new
File::Wildcard-new( $wildcard, [,option => value,...]);>
my $foo = File::Wildcard->new( path => "/home/me///core");
my $srcfnd = File::Wildcard->new( path => "src///*.cpp",
match => qr(^src/(.*?).cpp$),
derive => [src/$1.o,src/$1.hpp]);
This is the constructor for File::Wildcard objects. At a simple level, pass a single wildcard string as a path.
For more complicated operations, you can supply your own match regexp, or use the derive option to specify regular expression captures to form the basis of other filenames that are constructed for you.
The $srcfnd example gives you object files and header files corresponding to C++ source files.
Here are the options that are available:
path
This is the input parameter that specifies the range of files that will be looked at. This is a glob spec which can also contain the ellipsis /// (it could contain more than one ellipsis, but the benefit of this is questionable, and multiple ellipsi would cause a performance hit).
Note that the path can be relative or absolute. new will do the right thing, working out that a path starting with / is absolute. In order to recurse from the current directory downwards, specify .///foo.
As an alternative, you can supply an arrayref with the path constituents already split. If you do this, you need to tell new if the path is absolute. Include an empty string for an ellipsis. For example:
foo///bar/*.c is equivalent to [foo,,bar,*.c]
You can also construct a File::Wildcard without a path. A call to next will return undef, but paths can be added using the append and prepend methods.
absolute
This is ignored unless you are using a pre split path. If you are passing a string as the path, new will work out whether the path is absolute or relative. Pass a true value for absolute paths.
If your original filespec started with / before you split it, specify absolute => 1. absolute is not required for Windows if the path contains a drive specification, e.g. C:/foo/bar.
case_insensitive
By default, the module will use Filesys::Type to determine whether the file system of your wildcard is defined. This is an optional module (see Module::Optional), and File::Wildcard will guess at case sensitivity based on your operating system. This will not always be correct, as the file system might be VFAT mounted on Linux or ODS-5 on VMS.
Specifying the option case_insensitive explicitly forces this behaviour on the wildcard.
Note that File::Wildcard will use the file system of the current working directory if the path is not absolute. If the path is absolute, you should specify the case_sensitivity option explicitly.
exclude
You can provide a regexp to apply to any generated paths, which will cause any matching paths not to be processed. If the root of a directory tree matches, no processing is done on the entire tree.
This option can be useful for excluding version control repositories, e.g.
exclude => qr/.svn/
match
Optional. If you do not specify a regexp, you get all the files that match the glob; in addition, new will set up a regexp for you, to provide a capture for each wildcard used in the path.
If you do provide a match parameter, this will be used instead, and will filter the results.
derive
Supply an arrayref with a list of derived filenames, which will be constructed for each matching file. This causes next to return an arrayref instead of a scalar.
follow
If given a true value indicates that symbolic links are to be followed. Otherwise, the symbolic link target itself is presented, but the ellipsis will not traverse the link.
This module detects a looping symlink that points to a directory higher up, and will only present the tree once.
ellipsis_order
This can take one of the following values: normal, breadth-first, inside-out. The default option is normal. This controls how File::Wildcard handles the ellipsis. The default is a normal depth first search, presenting the name of each containing directory before the contents.
The inside-out order presents the contents of directories first before the directory, which is useful when you want to remove files and directories (all O/S require directories to be empty before rmdir will work). See t/03_absolute.t as this uses inside-out order to tidy up after the test.
Breadth-first is rarely needed (but I do have an application for it). Here, the whole directory contents is presented before traversing any subdirectories.
Consider the following tree: a/ a/bar/ a/bar/drink a/foo/ a/foo/lish
breadth-first will give the following order: qw(a/ a/bar/ a/foo/ a/bar/drink a/foo/lish). normal gives the order in which the files are listed. inside-out gives the following: qw(a/bar/drink a/bar/ a/foo/lish a/foo/ a/).
sort
By default, globbing returns the list of files in the order in which they are returned by the dirhandle (internally). If you specify sort => 1, the files are sorted into ASCII sequence (case insensitively if we are operating that way). If you specify a CODEREF, this will be used as a comparison routine. Note that this takes its operands in @_, not in $a and $b.
debug and debug_output
You can enable a trace of the internal states of File::Wildcard by setting debug to a true value. Set debug_output to an open filehandle to get the trace in a file. If you are submitting bug reports for File::Wildcard, attaching debug trace files would be very useful.
debug_output defaults to STDERR.
match
my $foo_re = $foo->match;
$foo->match(bar/core);
This is a get and set method that gives access to the match regexp that the File::Wildcard object is using. It is possible to change the regex on the fly in the middle of a search (though I dont know why anyone would want to do this).
append
$foo->append(path => /home/me///*.tmp);
appends a path to an objects todo list. This will be globbed after the object has finished processing the existing wildcards.
prepend
$srcfnd->prepend(path => $include_file);
This is similar to append, but prepends the path to the todo list. In other words, the current wildcard operation is interrupted to serve the new path, then the previous wildcard operation is resumed when this is exhausted.
next
while (my $core = $foo->next) {
unlink $core;
}
my ($src,$obj,$hdr) = @{$srcfnd->next};
The next method is an iterator, which returns successive files. Returns matching files if there was no derive option passed to new. If there was a derive option, returns an arrayref containing the matching filespec and all derived filespecs. The derived filespecs do not have to exist.
Note that next maintains an internal cursor, which retains context and state information. Beware if the contents of directories are changing while you are iterating with next; you may get unpredictable results. If you are intending to change the contents of the directories you are scanning (with unlink or rename), you are better off deferring this operation until you have processed the whole tree. For the pending delete or rename operations, you could always use another File::Wildcard object - see the spike example below:
all
my @cores = $foo->all;
all returns an array of matching files, in the simple case. Returns an array of arrays if you are constructing new filenames, like the $srcfnd example.
Beware of the performance and memory implications of using all. The method will not return until it has read the entire directory tree. Use of the all method is not recommended for traversing large directory trees and whole file systems. Consider coding the traversal using the iterator next instead.
reset
reset causes the wildcard context to be set to re-read the first filename again. Note that this will cause directory contents to be re-read.
Note also that this will cause the path to revert to the original path specified to new. Any additional paths appended or prepended will be forgotten.
close
Release all directory handles associated with the File::Wildcard object. An object that has been closed will be garbage collected once it goes out of scope. Wildcards that have been exhausted are automatically closed, (i.e. all was used, or c< next > returned undef).
Subsequent calls to next will return undef. It is possible to call reset after close on the same File::Wildcard object, which will cause it to be reopened.
Download (0.023MB)
Added: 2007-04-27 License: Perl Artistic License Price:
910 downloads
Separe 0.1.6
This is a great Firefox addon that helps you keeping tabs tidy by introducing a new kind of tab! more>>
Separe 0.1.6 is yet another extremely useful utility for Firefox users. It is actually a great addon that helps you keeping tabs tidy by introducing a new kind of tab!
Enhancements: March 10, 2008
- Included support for Firefox 3.0b3.
- Added some locales.
- Supported locales: be-BY, ca-AD, da-DK, de-DE, en-US, es-ES, fi-FI, fr-FR, it-IT, nl-NL, pl-PL, pt-BR, ru-RU, sl-SI, uk-UA, zh-CN.
Requirements:
- Mozilla Firefox
Added: 2008-03-11 License: GPL Price: FREE
981 downloads
JSP Prize Tags 3.4.0
JSP Prize Tags is a JSP tag library. The primary tags of Prize Tags are the Tree Tag and Tabbed Pane Tag. more>>
JSP Prize Tags project is a JSP tag library. The primary tags of Prize Tags are the Tree Tag and Tabbed Pane Tag. The Tree Tag makes it easy to implement tree controls in your JSP pages.
The Tabbed Pane Tag makes it easy to implement tabbed panes in your JSP pages. You can put any JSP code inside a tab, and even include other JSPs inside a tab.
The JSP Prize Tags also includes a collection of smaller tag libraries like the icon tag, the alternate tag (for alternating content on the page, such as the background color of table rows or an ad rotator), laying calendar events in a table, and more.
Enhancements:
- This is the stable release of the 3.3.4-beta that was released in March.
- The primary news is the addition of Tree Daos to the Tree Tag, making it easier to create dynamic trees, with content read from either a file system, a database, or other data sources.
<<lessThe Tabbed Pane Tag makes it easy to implement tabbed panes in your JSP pages. You can put any JSP code inside a tab, and even include other JSPs inside a tab.
The JSP Prize Tags also includes a collection of smaller tag libraries like the icon tag, the alternate tag (for alternating content on the page, such as the background color of table rows or an ad rotator), laying calendar events in a table, and more.
Enhancements:
- This is the stable release of the 3.3.4-beta that was released in March.
- The primary news is the addition of Tree Daos to the Tree Tag, making it easier to create dynamic trees, with content read from either a file system, a database, or other data sources.
Download (0.15MB)
Added: 2007-05-13 License: The Apache License 2.0 Price:
896 downloads
Test::XML::XPath 0.07
Test::XML::XPath is a Perl module to test XPath assertions. more>>
Test::XML::XPath is a Perl module to test XPath assertions.
SYNOPSIS
use Test::XML::XPath tests => 3;
like_xpath( , /foo ); # PASS
like_xpath( , /bar ); # FAIL
unlike_xpath( , /bar ); # PASS
is_xpath( bar , /foo, bar ); # PASS
is_xpath( bar , /bar, foo ); # FAIL
# More interesting examples of xpath assertions.
my $xml = pub ;
# Do testing for attributes.
like_xpath( $xml, /foo[@attrib="1"] ); # PASS
# Find an element anywhere in the document.
like_xpath( $xml, //bosh ); # PASS
# Both.
like_xpath( $xml, //bosh[@args="42"] ); # PASS
This module allows you to assert statements about your XML in the form of XPath statements. You can say that a piece of XML must contain certain tags, with so-and-so attributes, etc. It will try to use any installed XPath module that it knows about. Currently, this means XML::LibXML and XML::XPath, in that order.
NB: Normally in XPath processing, the statement occurs from a context node. In the case of like_xpath(), the context node will always be the root node. In practice, this means that these two statements are identical:
# Absolute path.
like_xpath( , /foo );
# Path relative to root.
like_xpath( , foo );
Its probably best to use absolute paths everywhere in order to keep things simple.
NB: Beware of specifying attributes. Because they use an @-sign, perl will complain about trying to interpolate arrays if you dont escape them or use single quotes.
<<lessSYNOPSIS
use Test::XML::XPath tests => 3;
like_xpath( , /foo ); # PASS
like_xpath( , /bar ); # FAIL
unlike_xpath( , /bar ); # PASS
is_xpath( bar , /foo, bar ); # PASS
is_xpath( bar , /bar, foo ); # FAIL
# More interesting examples of xpath assertions.
my $xml = pub ;
# Do testing for attributes.
like_xpath( $xml, /foo[@attrib="1"] ); # PASS
# Find an element anywhere in the document.
like_xpath( $xml, //bosh ); # PASS
# Both.
like_xpath( $xml, //bosh[@args="42"] ); # PASS
This module allows you to assert statements about your XML in the form of XPath statements. You can say that a piece of XML must contain certain tags, with so-and-so attributes, etc. It will try to use any installed XPath module that it knows about. Currently, this means XML::LibXML and XML::XPath, in that order.
NB: Normally in XPath processing, the statement occurs from a context node. In the case of like_xpath(), the context node will always be the root node. In practice, this means that these two statements are identical:
# Absolute path.
like_xpath( , /foo );
# Path relative to root.
like_xpath( , foo );
Its probably best to use absolute paths everywhere in order to keep things simple.
NB: Beware of specifying attributes. Because they use an @-sign, perl will complain about trying to interpolate arrays if you dont escape them or use single quotes.
Download (0.009MB)
Added: 2006-12-04 License: Perl Artistic License Price:
1054 downloads
BerkeleyDB Backend Storage Engine for DURUS 20070503
BerkeleyDB Backend Storage Engine for DURUS provides a storage engine for DURUS, a persistence system for the Python language. more>>
BerkeleyDB Backend Storage Engine for DURUS project provides a storage engine for DURUS, a persistence system for the Python programming language.
Some advantages compared to Durus standard FileStorage:
- Startup time is negligible.
- You dont need an in-memory index, so your repository size is only limited by storage space, not RAM.
- If you change existing objects, your storage size doesnt increase.
- If you delete objects, those objects are garbage collected in background, slowly, without performance degradation.
- You can still do a full fast collection, if you need it. While this collection is in progress, Durus still serves objects. From time to time, nevertheless, it can be unresponsible for 2 or 3 seconds, while is doing a checkpointing to be able to free database logging diskspace.
- Garbage collection doesnt increase storage size. Neither RAM usage.
- Garbage collection deletes objects using nondurable transactions, very efficiently. If the collection is aborted abruptly (program or machine crashes), the collection will start again from the beginning. If the GC finishes without problems, that state is durable.
- Any object store in the storage will commit a durable transaction, including all objects released in the background garbage collector, along the way.
- Garbage collection time is proportional to garbage, not repository size.
There are some disadvantages, nevertheless:
- IMPORTANT: This backend uses reference counting to decide when an object is garbage and can be collected. So, if you have cycles in your data structures, you **MUST*BREAK** them before releasing the objects.
- Failing to do that will leak diskspace. It is possible that in a future release we can collect cycles, but try to avoid that pattern.
- Leaking objects will grow the diskspace, but **NO** corruption or malfunction will happen. No other secondary effect.
- Although this code could work on Windows, I havent checked it. Absolutely no garantee!.
- Sometimes this backend can become irresponsible for a couple of seconds. It is busy doing a checkpoint to recycle database logging space. The pause should be sort, nevertheless.
- Dont use this storage backend over NFS, at least you know what is going on.
- Since we are using BerkeleyDB as the backend:
- You should be experienced with BerkeleyDB deployments.
- Beware when updating Python or BerkeleyDB. In particular, BerkeleyDB is known by breaking (but they DOCUMENT!) binary compatibility between versions. In this case, they ALWAYS document the procedure to do a controlled upgrade, so dont worry. But take note of the risk.
- To do a trustable backup, you should follow instructions in BerkeleyDB documentation:
- http://www.sleepycat.com/docs/ref/transapp/reclimit.html
- http://www.sleepycat.com/docs/ref/transapp/archival.html
- http://www.sleepycat.com/docs/utility/db_hotbackup.html
- In Python you can use the standard "bsddb" or the up-to-date "bsddb3" bindings (which will be included in new python versions). This product will try to use always the more recent BerkeleyDB bindings. Be careful about BerkeleyDB version changes when you update the bindings.
- Since BerkeleyDB files are binary structures, a corrupt database can be unrecoverable. Be diligent and careful with your backups.
You can use this product both as a normal (local) filestorage, or a server (remote) storage system, just like the usual Durus FileStorage.
Enhancements:
- Compatibility with Durus 3.7 was added.
<<lessSome advantages compared to Durus standard FileStorage:
- Startup time is negligible.
- You dont need an in-memory index, so your repository size is only limited by storage space, not RAM.
- If you change existing objects, your storage size doesnt increase.
- If you delete objects, those objects are garbage collected in background, slowly, without performance degradation.
- You can still do a full fast collection, if you need it. While this collection is in progress, Durus still serves objects. From time to time, nevertheless, it can be unresponsible for 2 or 3 seconds, while is doing a checkpointing to be able to free database logging diskspace.
- Garbage collection doesnt increase storage size. Neither RAM usage.
- Garbage collection deletes objects using nondurable transactions, very efficiently. If the collection is aborted abruptly (program or machine crashes), the collection will start again from the beginning. If the GC finishes without problems, that state is durable.
- Any object store in the storage will commit a durable transaction, including all objects released in the background garbage collector, along the way.
- Garbage collection time is proportional to garbage, not repository size.
There are some disadvantages, nevertheless:
- IMPORTANT: This backend uses reference counting to decide when an object is garbage and can be collected. So, if you have cycles in your data structures, you **MUST*BREAK** them before releasing the objects.
- Failing to do that will leak diskspace. It is possible that in a future release we can collect cycles, but try to avoid that pattern.
- Leaking objects will grow the diskspace, but **NO** corruption or malfunction will happen. No other secondary effect.
- Although this code could work on Windows, I havent checked it. Absolutely no garantee!.
- Sometimes this backend can become irresponsible for a couple of seconds. It is busy doing a checkpoint to recycle database logging space. The pause should be sort, nevertheless.
- Dont use this storage backend over NFS, at least you know what is going on.
- Since we are using BerkeleyDB as the backend:
- You should be experienced with BerkeleyDB deployments.
- Beware when updating Python or BerkeleyDB. In particular, BerkeleyDB is known by breaking (but they DOCUMENT!) binary compatibility between versions. In this case, they ALWAYS document the procedure to do a controlled upgrade, so dont worry. But take note of the risk.
- To do a trustable backup, you should follow instructions in BerkeleyDB documentation:
- http://www.sleepycat.com/docs/ref/transapp/reclimit.html
- http://www.sleepycat.com/docs/ref/transapp/archival.html
- http://www.sleepycat.com/docs/utility/db_hotbackup.html
- In Python you can use the standard "bsddb" or the up-to-date "bsddb3" bindings (which will be included in new python versions). This product will try to use always the more recent BerkeleyDB bindings. Be careful about BerkeleyDB version changes when you update the bindings.
- Since BerkeleyDB files are binary structures, a corrupt database can be unrecoverable. Be diligent and careful with your backups.
You can use this product both as a normal (local) filestorage, or a server (remote) storage system, just like the usual Durus FileStorage.
Enhancements:
- Compatibility with Durus 3.7 was added.
Download (0.033MB)
Added: 2007-05-03 License: GPL (GNU General Public License) Price:
907 downloads
Jikes RVM 2.9.1
Jikes RVM is a virtual machine and runtime environment for Java. more>>
Jikes RVM is a compiler that translates JavaTM source files as defined in The Java Language Specification into the bytecoded instruction set and binary format defined in The Java Virtual Machine Specification.
You may wonder why the world needs another Java compiler, considering that Sun provides javac free with its SDK. Jikes has five advantages that make it a valuable contribution to the Java community: [OSI Certified Logo]
* Open source. Jikes is OSI Certified Open Source Software. OSI Certified is a certification mark of the Open Source Initiative.
* Strictly Java compatible. Jikes strives to adhere to both The Java Language Specification and The Java Virtual Machine Specification as tightly as possible, and does not support subsets, supersets, or other variations of the language. The FAQ describes some of the side effects of this strict language conformance.
* High performance. Jikes is a high performance compiler, making it ideal for use with larger projects.
* Dependency analysis. Jikes performs a dependency analysis on your code that provides two very useful features: Incremental builds and makefile generation.
* Constructive Assistance. Jikes strives to help the programmer write better code in two key ways. Jikes has always strived to provide clear error and warning text to assist the programmer in understanding problems, and now with release 1.19 Jikes helps point out common programming mistakes as documented in Effective Java.
Abridged from a FAQ entry which was adapted from some material by Lou Grinzo for an article he wrote.
The fact that Jikes is a high-performance, highly compatible Java compiler that can be used on almost any computing platform makes it an interesting program and worth investigating for almost any Java programmer. But Jikes is also notable because it lies at the center of two events: the adoption of open source philosophy and practice by large corporations, and the continued growth of Java for Linux.
Its worth pointing out that Jikes is not, and is not intended to be, a complete development environment -- it is simply a command line compiler. It should not be considered a replacement for more complete tools, such as Source Navigator or IBMs VisualAge for Java which provide sophisticated graphical IDEs (Integrated Development Environments).
The Jikes compiler was released in binary form in April 1997 on the IBM alphaWorks site. Jikes for Linux was released on 15 July 1998. The response was overwhelming -- Jikes had more downloads in the three months after the announcement than in the fifteen months before the announcement.
Around the end of March 2002, IBM opened a fledgling community hosting location attached to their developerWorks site with Jikes as a founding member. Approximately 3 years later this server was decommissioned and the most active projects migrated into SourceForge.net hosting options. During those three years Jikes was the #1 most popular project every month, often by a large margin. We approached nearly 250,000 downloads while residing at dw/oss, and had been consistently tallying triple digit daily downloads.
Release of Jikes for Linux was soon followed by requests to open up the source. Many notes and comments from users suggested this would be a good idea. The source was released under a liberal license in December 1998 to make a very visible demonstration of IBMs commitment to open standards and to Java Technology, to make Jikes more reliable and accessible, to encourage more widespread use of Java Technology, to encourage standardization of Java Technology, and to gain some experience actually running an open source project. This marked the start of one of IBMs first efforts in the open source arena.
The original alphaWorks version of Jikes was written by Philippe Charles and Dave Shields of the IBM T. J. Watson Research Center. For awhile after the release of the source they continued to work on the compiler as contributors; however, shortly after the project migrated to developerWorks Open Source Server they were officially moved off onto other projects within IBM. Today there are no IBMers who work on Jikes as part of their job description. Jikes survives today soley based on the free time contributions of members of the open source community.
The source code is available under IBMs Public License, which has been approved by the OSI (Open Source Initiative) as a fully certified open source license. The project provides access to the complete CVS development tree, which includes not only Jikes, but also the source for the Jacks Test Suite and the Jikes Parser Generator used to build Jikes. Jikes is included in many Open Source Operating Systems. The Jacks Test Suite is a replacement for the Jikestst package.
<<lessYou may wonder why the world needs another Java compiler, considering that Sun provides javac free with its SDK. Jikes has five advantages that make it a valuable contribution to the Java community: [OSI Certified Logo]
* Open source. Jikes is OSI Certified Open Source Software. OSI Certified is a certification mark of the Open Source Initiative.
* Strictly Java compatible. Jikes strives to adhere to both The Java Language Specification and The Java Virtual Machine Specification as tightly as possible, and does not support subsets, supersets, or other variations of the language. The FAQ describes some of the side effects of this strict language conformance.
* High performance. Jikes is a high performance compiler, making it ideal for use with larger projects.
* Dependency analysis. Jikes performs a dependency analysis on your code that provides two very useful features: Incremental builds and makefile generation.
* Constructive Assistance. Jikes strives to help the programmer write better code in two key ways. Jikes has always strived to provide clear error and warning text to assist the programmer in understanding problems, and now with release 1.19 Jikes helps point out common programming mistakes as documented in Effective Java.
Abridged from a FAQ entry which was adapted from some material by Lou Grinzo for an article he wrote.
The fact that Jikes is a high-performance, highly compatible Java compiler that can be used on almost any computing platform makes it an interesting program and worth investigating for almost any Java programmer. But Jikes is also notable because it lies at the center of two events: the adoption of open source philosophy and practice by large corporations, and the continued growth of Java for Linux.
Its worth pointing out that Jikes is not, and is not intended to be, a complete development environment -- it is simply a command line compiler. It should not be considered a replacement for more complete tools, such as Source Navigator or IBMs VisualAge for Java which provide sophisticated graphical IDEs (Integrated Development Environments).
The Jikes compiler was released in binary form in April 1997 on the IBM alphaWorks site. Jikes for Linux was released on 15 July 1998. The response was overwhelming -- Jikes had more downloads in the three months after the announcement than in the fifteen months before the announcement.
Around the end of March 2002, IBM opened a fledgling community hosting location attached to their developerWorks site with Jikes as a founding member. Approximately 3 years later this server was decommissioned and the most active projects migrated into SourceForge.net hosting options. During those three years Jikes was the #1 most popular project every month, often by a large margin. We approached nearly 250,000 downloads while residing at dw/oss, and had been consistently tallying triple digit daily downloads.
Release of Jikes for Linux was soon followed by requests to open up the source. Many notes and comments from users suggested this would be a good idea. The source was released under a liberal license in December 1998 to make a very visible demonstration of IBMs commitment to open standards and to Java Technology, to make Jikes more reliable and accessible, to encourage more widespread use of Java Technology, to encourage standardization of Java Technology, and to gain some experience actually running an open source project. This marked the start of one of IBMs first efforts in the open source arena.
The original alphaWorks version of Jikes was written by Philippe Charles and Dave Shields of the IBM T. J. Watson Research Center. For awhile after the release of the source they continued to work on the compiler as contributors; however, shortly after the project migrated to developerWorks Open Source Server they were officially moved off onto other projects within IBM. Today there are no IBMers who work on Jikes as part of their job description. Jikes survives today soley based on the free time contributions of members of the open source community.
The source code is available under IBMs Public License, which has been approved by the OSI (Open Source Initiative) as a fully certified open source license. The project provides access to the complete CVS development tree, which includes not only Jikes, but also the source for the Jacks Test Suite and the Jikes Parser Generator used to build Jikes. Jikes is included in many Open Source Operating Systems. The Jacks Test Suite is a replacement for the Jikestst package.
Download (2.6MB)
Added: 2007-07-03 License: DFSG approved Price:
515 downloads
get_iat and iat_cmp 0.1
get_iat and iat_cmp are two small programs to extract and to very basic analysis of packet inter arrival times. more>>
get_iat and iat_cmp are two small programs to extract and to very basic analysis of packet inter arrival times (unfortunaly often wrongly called inter packet gaps) in a pcap network trace.
- get_iat just reads one pcap files an outputs the inter arrival time and the time
difference between this packet and the first one for all packets
- iat_cmp compares several pcap files and checks how much their inter arrival
times differ. This "compare" is done by sorting the inter arrival time
difference into buckets. Currently the buckets must be configured by hand
in the source code.
BEWARE: these programs have not been tested very exensively. So expect
crashes.
Installation:
Requires GNU make (gmake)
Edit the Makefile and change the path to your libpcap installation.
type :
# make
# make install
<<less- get_iat just reads one pcap files an outputs the inter arrival time and the time
difference between this packet and the first one for all packets
- iat_cmp compares several pcap files and checks how much their inter arrival
times differ. This "compare" is done by sorting the inter arrival time
difference into buckets. Currently the buckets must be configured by hand
in the source code.
BEWARE: these programs have not been tested very exensively. So expect
crashes.
Installation:
Requires GNU make (gmake)
Edit the Makefile and change the path to your libpcap installation.
type :
# make
# make install
Download (0.004MB)
Added: 2006-01-26 License: GPL (GNU General Public License) Price:
1366 downloads
Multiple-Precision Floating-Point Library 2.2.0
The MPFR library is a C library for multiple-precision floating-point computations with exact rounding. more>>
The MPFR library is a C library for multiple-precision floating-point computations with exact rounding (also called correct rounding). It is based on the GMP multiple-precision library.
The main goal of MPFR is to provide a library for multiple-precision floating-point computation which is both efficient and has a well-defined semantics. It copies the good ideas from the ANSI/IEEE-754 standard for double-precision floating-point arithmetic (53-bit mantissa).
MPFR is free. It is distributed under the GNU Lesser General Public License (GNU Lesser GPL). The library has been registered in France by the Agence de Protection des Programmes under the number IDDN FR 001 120020 00 R P 2000 000 10800, on 15 March 2000.
This license guarantees your freedom to share and change MPFR, to make sure MPFR is free for all its users. Unlike the ordinary General Public License, the Lesser GPL enables developers of non-free programs to use MPFR in their programs. If you have written a new function for MPFR or improved an existing one, please share your work!
<<lessThe main goal of MPFR is to provide a library for multiple-precision floating-point computation which is both efficient and has a well-defined semantics. It copies the good ideas from the ANSI/IEEE-754 standard for double-precision floating-point arithmetic (53-bit mantissa).
MPFR is free. It is distributed under the GNU Lesser General Public License (GNU Lesser GPL). The library has been registered in France by the Agence de Protection des Programmes under the number IDDN FR 001 120020 00 R P 2000 000 10800, on 15 March 2000.
This license guarantees your freedom to share and change MPFR, to make sure MPFR is free for all its users. Unlike the ordinary General Public License, the Lesser GPL enables developers of non-free programs to use MPFR in their programs. If you have written a new function for MPFR or improved an existing one, please share your work!
Download (0.92MB)
Added: 2005-10-12 License: LGPL (GNU Lesser General Public License) Price:
1473 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 beware the ides of march 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