slice
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 55
SVGSlice 0.13
SVGSlice is a simple tool which generates chopped up images from Inkscape SVG drawings. more>>
SVGSlice application can generate chopped up images from Inkscape SVG drawings.
To figure out where to cut, SVGSlice can use Inkscapes built in guides (for simpler, grid-like cuts), or it can use a specially named "slices" layer that contains rectangles that mark areas to slice.
Demo files showing both approaches are included.
<<lessTo figure out where to cut, SVGSlice can use Inkscapes built in guides (for simpler, grid-like cuts), or it can use a specially named "slices" layer that contains rectangles that mark areas to slice.
Demo files showing both approaches are included.
Download (0.005MB)
Added: 2006-04-17 License: GPL (GNU General Public License) Price:
1288 downloads
PDL::Slices 2.4.3
PDL::Slices is a Perl module used for indexing, slicing, and dicing. more>>
PDL::Slices is a Perl module used for indexing, slicing, and dicing.
SYNOPSIS
use PDL;
$a = ones(3,3);
$b = $a->slice(-1:0,(1));
$c = $a->dummy(2);
This package provides many of the powerful PerlDL core index manipulation routines. These routines mostly allow two-way data flow, so you can modify your data in the most convenient representation. For example, you can make a 1000x1000 unit matrix with
$a = zeroes(1000,1000);
$a->diagonal(0,1) ++;
which is quite efficient. See PDL::Indexing and PDL::Tips for more examples.
Slicing is so central to the PDL language that a special compile-time syntax has been introduced to handle it compactly; see PDL::NiceSlice for details.
PDL indexing and slicing functions usually include two-way data flow, so that you can separate the actions of reshaping your data structures and modifying the data themselves. Two special methods, copy and sever, help you control the data flow connection between related variables.
$b = $a->slice("1:3"); # Slice maintains a link between $a and $b.
$b += 5; # $a is changed!
If you want to force a physical copy and no data flow, you can copy or sever the slice expression:
$b = $a->slice("1:3")->copy;
$b += 5; # $a is not changed.
$b = $a->slice("1:3")->sever;
$b += 5; # $a is not changed.
The difference between sever and copy is that sever acts on (and returns) its argument, while copy produces a disconnected copy. If you say
$b = $a->slice("1:3");
$c = $b->sever;
then the variables $b and $c point to the same object but with ->copy they would not.
<<lessSYNOPSIS
use PDL;
$a = ones(3,3);
$b = $a->slice(-1:0,(1));
$c = $a->dummy(2);
This package provides many of the powerful PerlDL core index manipulation routines. These routines mostly allow two-way data flow, so you can modify your data in the most convenient representation. For example, you can make a 1000x1000 unit matrix with
$a = zeroes(1000,1000);
$a->diagonal(0,1) ++;
which is quite efficient. See PDL::Indexing and PDL::Tips for more examples.
Slicing is so central to the PDL language that a special compile-time syntax has been introduced to handle it compactly; see PDL::NiceSlice for details.
PDL indexing and slicing functions usually include two-way data flow, so that you can separate the actions of reshaping your data structures and modifying the data themselves. Two special methods, copy and sever, help you control the data flow connection between related variables.
$b = $a->slice("1:3"); # Slice maintains a link between $a and $b.
$b += 5; # $a is changed!
If you want to force a physical copy and no data flow, you can copy or sever the slice expression:
$b = $a->slice("1:3")->copy;
$b += 5; # $a is not changed.
$b = $a->slice("1:3")->sever;
$b += 5; # $a is not changed.
The difference between sever and copy is that sever acts on (and returns) its argument, while copy produces a disconnected copy. If you say
$b = $a->slice("1:3");
$c = $b->sever;
then the variables $b and $c point to the same object but with ->copy they would not.
Download (2.1MB)
Added: 2007-06-29 License: Perl Artistic License Price:
847 downloads
Sub::Slice::Manual 1.048
Sub::Slice::Manual is a Perl module with user guide for Sub::Slice. more>>
Sub::Slice::Manual is a Perl module with user guide for Sub::Slice.
USING Sub::Slice
Sub::Slice is a way of breaking down a long-running process and maintaining state across a stateless protocol. This allows the client to draw a progress bar or abort the process part-way through.
The mechanism used by Sub::Slice is similar to the session management used on many web user authentication systems. However rather than simply passing an ID back as a token as these systems do, in Sub::Slice a data structure with richer information is passed to the client, allowing the client to make some intelligent decisions rather than blindly maintain state.
Use of Sub::Slice is best explained with a minimal example. Assume that there is a remoting protocol between the client and server such as XML/HTTP. For the sake of brevity, assume that methods called in package Server:: on the client are magically remoted to the server.
The server does two things. The first is to issue a token for the client to use:
#Server
sub create_token {
my $job = new Sub::Slice();
return $job->token;
}
The second is to provide the routine into which the token is passed for each iteration:
sub do_work {
my $token = shift;
my $job = new Sub::Slice(token => $token);
at_start $job sub {
my $files = files_to_process();
#Store some data defining the work to do
$job->store("files", $files);
};
at_stage $job "each_iteration" sub {
#Get some work
my $files = $job->fetch("files");
my $file = shift @$files;
my $was_ok = process_file($file);
#Record we did the work
$job->store("files", $files);
#Check if theres any more work left to do
$job->done() unless(@$files);
};
}
The client somehow gets a token back from the server. It then passes this back to the server for each iteration. It can inspect the token to check if there is any more work left.
#Client
my $token = Server::create_token();
for(1 .. MAX_ITERATIONS) {
Server::do_work($token);
last if $token->{done};
}
<<lessUSING Sub::Slice
Sub::Slice is a way of breaking down a long-running process and maintaining state across a stateless protocol. This allows the client to draw a progress bar or abort the process part-way through.
The mechanism used by Sub::Slice is similar to the session management used on many web user authentication systems. However rather than simply passing an ID back as a token as these systems do, in Sub::Slice a data structure with richer information is passed to the client, allowing the client to make some intelligent decisions rather than blindly maintain state.
Use of Sub::Slice is best explained with a minimal example. Assume that there is a remoting protocol between the client and server such as XML/HTTP. For the sake of brevity, assume that methods called in package Server:: on the client are magically remoted to the server.
The server does two things. The first is to issue a token for the client to use:
#Server
sub create_token {
my $job = new Sub::Slice();
return $job->token;
}
The second is to provide the routine into which the token is passed for each iteration:
sub do_work {
my $token = shift;
my $job = new Sub::Slice(token => $token);
at_start $job sub {
my $files = files_to_process();
#Store some data defining the work to do
$job->store("files", $files);
};
at_stage $job "each_iteration" sub {
#Get some work
my $files = $job->fetch("files");
my $file = shift @$files;
my $was_ok = process_file($file);
#Record we did the work
$job->store("files", $files);
#Check if theres any more work left to do
$job->done() unless(@$files);
};
}
The client somehow gets a token back from the server. It then passes this back to the server for each iteration. It can inspect the token to check if there is any more work left.
#Client
my $token = Server::create_token();
for(1 .. MAX_ITERATIONS) {
Server::do_work($token);
last if $token->{done};
}
Download (0.027MB)
Added: 2006-09-18 License: Perl Artistic License Price:
1132 downloads
PDL::NiceSlice 2.4.3
PDL::NiceSlice Perl module contains a nicer slicing syntax for PDL. more>>
PDL::NiceSlice Perl module contains a nicer slicing syntax for PDL.
SYNOPSYS
use PDL::NiceSlice;
$a(1:4) .= 2; # concise syntax for ranges
print $b((0),1:$end); # use variables in the slice expression
$a->xchg(0,1)->(($pos-1)) .= 0; # default method syntax
$idx = long 1, 7, 3, 0; # a piddle of indices
$a(-3:2:2,$idx) += 3; # mix explicit indexing and ranges
$a->clump(1,2)->(0:30); # default method syntax
$a(myfunc(0,$var),1:4)++; # when using functions in slice expressions
# use parentheses around args!
$b = $a(*3); # Add dummy dimension of order 3
# modifiers are specified in a ;-separated trailing block
$a($a!=3;?)++; # short for $a->where($a!=3)++
$a(0:1114;_) .= 0; # short for $a->flat->(0:1114)
$b = $a(0:-1:3;|); # short for $a(0:-1:3)->sever
$n = sequence 3,1,4,1;
$b = $n(;-); # drop all dimensions of size 1 (AKA squeeze)
$b = $n(0,0;-|); # squeeze *and* sever
$c = $a(0,3,0;-); # more compact way of saying $a((0),(3),(0))
# Use with perldl versions < v1.31 (or include these lines in .perldlrc)
perldl> use PDL::NiceSlice;
# next one is required, see below
perldl> $PERLDL::PREPROCESS = &PDL::NiceSlice::perldlpp;
perldl> $a(4:5) .= xvals(2);
Slicing is a basic, extremely common operation, and PDLs slice method would be cumbersome to use in many cases. PDL::NiceSlice rectifies that by incorporating new slicing syntax directly into the language via a perl source filter (see the perlfilter man page). NiceSlice adds no new functionality, only convenient syntax.
NiceSlice is loaded automatically in the perldl shell, but (to avoid conflicts with other modules) must be loaded automatically in standalone perl/PDL scripts (see below). If you prefer not to use a prefilter on your standalone scripts, you can use the slice method in those scripts, rather than the more compact NiceSlice constructs.
<<lessSYNOPSYS
use PDL::NiceSlice;
$a(1:4) .= 2; # concise syntax for ranges
print $b((0),1:$end); # use variables in the slice expression
$a->xchg(0,1)->(($pos-1)) .= 0; # default method syntax
$idx = long 1, 7, 3, 0; # a piddle of indices
$a(-3:2:2,$idx) += 3; # mix explicit indexing and ranges
$a->clump(1,2)->(0:30); # default method syntax
$a(myfunc(0,$var),1:4)++; # when using functions in slice expressions
# use parentheses around args!
$b = $a(*3); # Add dummy dimension of order 3
# modifiers are specified in a ;-separated trailing block
$a($a!=3;?)++; # short for $a->where($a!=3)++
$a(0:1114;_) .= 0; # short for $a->flat->(0:1114)
$b = $a(0:-1:3;|); # short for $a(0:-1:3)->sever
$n = sequence 3,1,4,1;
$b = $n(;-); # drop all dimensions of size 1 (AKA squeeze)
$b = $n(0,0;-|); # squeeze *and* sever
$c = $a(0,3,0;-); # more compact way of saying $a((0),(3),(0))
# Use with perldl versions < v1.31 (or include these lines in .perldlrc)
perldl> use PDL::NiceSlice;
# next one is required, see below
perldl> $PERLDL::PREPROCESS = &PDL::NiceSlice::perldlpp;
perldl> $a(4:5) .= xvals(2);
Slicing is a basic, extremely common operation, and PDLs slice method would be cumbersome to use in many cases. PDL::NiceSlice rectifies that by incorporating new slicing syntax directly into the language via a perl source filter (see the perlfilter man page). NiceSlice adds no new functionality, only convenient syntax.
NiceSlice is loaded automatically in the perldl shell, but (to avoid conflicts with other modules) must be loaded automatically in standalone perl/PDL scripts (see below). If you prefer not to use a prefilter on your standalone scripts, you can use the slice method in those scripts, rather than the more compact NiceSlice constructs.
Download (2.1MB)
Added: 2007-06-29 License: Perl Artistic License Price:
847 downloads
Dice3DS 0.6
Dice3DS is a set of Python modules for dealing with 3D Studio format files. more>>
Dice3DS project is a set of Python modules for dealing with 3D Studio format files. I have released it under the terms of a BSD-style license.
3D Studio is a 3D graphics modeling and rendering program that saved it images in a rather simple binary file format known as 3DS format. Although 3D Studio has not released the details of the 3DS format, it has been reverse engineered by some ambitious people, and I used the information to write Dice3DS, a Python package that slices and dices 3DS files.
Dice3DS requires Python 2.2 or higher, as it uses metaclass programming, and Python Numeric. Note that it is not a wrapper for lib3ds; its a Pure Python module.
There are two packages in Dice3DS: Dice3DS, and Dice3DS.example. The latter includes some modules that exemplify the use of Dice3DS, although they are not very versatile.
Heres a brief description of each module:
Dice3DS.dom3ds
Slice and dice 3DS files.
Provides for reading, writing, and manipulating 3DS files. Its
called dom3ds because its reminiscent of XML-DOM: it converts the 3DS
file into a hierarchy of objects, in much the same way XML-DOM
converts an XML file into a hierarchy of objects called the Document
Object Model. The dom3ds module creates an object for each chunk in
the 3DS file, which can be accessed hierarchially as attributes.
For example, once a 3DS file is loaded, you could the smoothing data
of the second object like this:
dom.mdata.objects[2].ntri.faces.smoothing.array
Dice3DS.util
Utitily function for Dice3DS.
Defines some routines for calculating normals and transforming points.
Dice3DS.example.basicmodel
Basic abstract classes representing a 3DS model.
Defines some classes that represent objects and materials of a 3DS
file in a more convienient form. It has methods to convert from the
DOM format. The classes can serve as base classes for more advanced
uses.
Dice3DS.example.glmodel
Classes for rendering 3DS models in OpenGL.
Defines some classes (based on Dice3DS.example.basicmodel) with some
additional methods to draw the model in OpenGL, or create a display
list to do so. Requires PyOpenGL.
Dice3DS.example.gltexture
OpenGL texture object abstraction.
Provides a class that is an abstraction of OpenGL texture objects. It
can create textures from image files, and automatically generates
mipmaps if requested. Requires PyOpenGL and Python Imaging Library.
Dice3DS.example.modelloader
Example of loading 3DS models.
Provides functions to load a 3DS model and creating a GLModel (or
BasicModel) from it. Shows how to load models from the filesystem, or
directly from a zip file.
Enhancements:
- The code was changed to use the constants defined in the "numpy" namespace instead of the "Numeric" namespace, since numpy no longer seems to provide the Numeric constants.
- The advantage is that it works for numpy 1.0.
- The disadvantage is that you can no longer backport it to Numeric by changing the import statements.
- Most inexplicably, the behavior of numpy.sum changed and broke the calculation of normals.
- Thus, the builtin sum is used in util.py instead of numpy.sum.
<<less3D Studio is a 3D graphics modeling and rendering program that saved it images in a rather simple binary file format known as 3DS format. Although 3D Studio has not released the details of the 3DS format, it has been reverse engineered by some ambitious people, and I used the information to write Dice3DS, a Python package that slices and dices 3DS files.
Dice3DS requires Python 2.2 or higher, as it uses metaclass programming, and Python Numeric. Note that it is not a wrapper for lib3ds; its a Pure Python module.
There are two packages in Dice3DS: Dice3DS, and Dice3DS.example. The latter includes some modules that exemplify the use of Dice3DS, although they are not very versatile.
Heres a brief description of each module:
Dice3DS.dom3ds
Slice and dice 3DS files.
Provides for reading, writing, and manipulating 3DS files. Its
called dom3ds because its reminiscent of XML-DOM: it converts the 3DS
file into a hierarchy of objects, in much the same way XML-DOM
converts an XML file into a hierarchy of objects called the Document
Object Model. The dom3ds module creates an object for each chunk in
the 3DS file, which can be accessed hierarchially as attributes.
For example, once a 3DS file is loaded, you could the smoothing data
of the second object like this:
dom.mdata.objects[2].ntri.faces.smoothing.array
Dice3DS.util
Utitily function for Dice3DS.
Defines some routines for calculating normals and transforming points.
Dice3DS.example.basicmodel
Basic abstract classes representing a 3DS model.
Defines some classes that represent objects and materials of a 3DS
file in a more convienient form. It has methods to convert from the
DOM format. The classes can serve as base classes for more advanced
uses.
Dice3DS.example.glmodel
Classes for rendering 3DS models in OpenGL.
Defines some classes (based on Dice3DS.example.basicmodel) with some
additional methods to draw the model in OpenGL, or create a display
list to do so. Requires PyOpenGL.
Dice3DS.example.gltexture
OpenGL texture object abstraction.
Provides a class that is an abstraction of OpenGL texture objects. It
can create textures from image files, and automatically generates
mipmaps if requested. Requires PyOpenGL and Python Imaging Library.
Dice3DS.example.modelloader
Example of loading 3DS models.
Provides functions to load a 3DS model and creating a GLModel (or
BasicModel) from it. Shows how to load models from the filesystem, or
directly from a zip file.
Enhancements:
- The code was changed to use the constants defined in the "numpy" namespace instead of the "Numeric" namespace, since numpy no longer seems to provide the Numeric constants.
- The advantage is that it works for numpy 1.0.
- The disadvantage is that you can no longer backport it to Numeric by changing the import statements.
- Most inexplicably, the behavior of numpy.sum changed and broke the calculation of normals.
- Thus, the builtin sum is used in util.py instead of numpy.sum.
Download (0.024MB)
Added: 2007-04-08 License: GPL (GNU General Public License) Price:
930 downloads
BlogBridge 5.0.1
BlogBridge is a Free, Open Source, Cross Platform RSS Aggregator for professional users. more>>
BlogBridge project is for true info-junkies who want a better way to wrangle all their RSS feeds from blogs and news into one pretty cool organizer. But it is also for people who need to learn things on the fly and want to stay current on select topics -- from internet security to product innovation to wine. With BlogBridge you quickly get to enjoy the latest, best, and most relevant stuff without the distraction and blind alleys (fascinating though they may be) that characterize most Internet searches. BlogBridge is also free and open source!
Much more than a standard rss reader, BlogBridge allows you to create filters, agents, search, slice and dice the information so that only the most important and relevant information bubbles up to the top. With SmartFeeds you can create standing queries and build them into a funnel that delivers what you need to know on a silver platter. There is direct integration with other well known web services such as Technorati, del.icio.us, Flickr, and many others.
<<lessMuch more than a standard rss reader, BlogBridge allows you to create filters, agents, search, slice and dice the information so that only the most important and relevant information bubbles up to the top. With SmartFeeds you can create standing queries and build them into a funnel that delivers what you need to know on a silver platter. There is direct integration with other well known web services such as Technorati, del.icio.us, Flickr, and many others.
Download (0.002MB)
Added: 2007-05-07 License: LGPL (GNU Lesser General Public License) Price:
934 downloads
Quasi 0.87
Quasi is a Python shell with pluggable contexts. more>>
Quasi project is a Python shell which supports pluggable "contexts" for non-Python commands, such as OS commands, MySQLdb queries and external programs.
The smart-eyed reader will have noticed the use of the built-in quoted() method in the examples above. There are a number of these that are available in the interpreter namespace (the source is, as youd expect, in quasi.py):
* quoted() returns any string surrounded by either single or double quotes (single-quotes as default). If passed a list, it returns a list of the strings, each quoted(), joined with whitespace. Currently it uses Pythons repr() as a quick-and-dirty way to do this.
* dquoted does the same, but uses double-quotes and will escape any double-quotes already in a string.
* commas() joins the elements of a list with commas; this is mostly for Windows work.
* modules() returns a list of the currently imported modules in the interpreter namespace; just to make ones working life a little easier.
* Bag() is a useful class.
Bags can behave like dicts (in that they have a keys() method, and you can access values using the x[y] syntax) or like objects (in that you can access values using the x.y syntax). You must always assign values using the former (x[y]), but after that you can reference values either way.
A Bag will also remember the order in which values were assigned; this is used in the SQL context, for example, so that a Bags keys or values are always returned in the order that a SELECT obtained them.
There are also a number of built-in shell commands. Unlike nearly everything else that gets typed into Quasi, these execute in the namespace of the shell, not the interpreter. More on that another time, but it means that any variables your Python code may have defined are not accessible to built-in shell commands. This is why none of them need any real arguments:
* exit: exit Quasi.
* help: show lots of help on various sorts of command.
* credits: show the names of the people who have contributed to Quasi.
* license: show the Quasi (BSD-style) license.
* history: show the command history. Supports slice notation (1:20), plus history searching. For example, history sq will find all command lines that begin with "sq".
* recall: recall a previous command or set of them.
This is very useful when youve been writing indented code and want to recall a set of previous lines. Same syntax as history - specify a single line or a slice-like set of them.
Recall has a limitation; it requires a functional readline module available, to insert the recalled command into the input buffer for editing. If that cant be done, the recalled line(s) are printed to allow copying and pasting. Also, if more than one line is recalled, theres no way to edit them, so theyre executed.
There are also a set of built-in commands which execute in the interpreter namespace and can, therefore, do variable-substitution trickery:
* cd: change directory. You can do cd $x to change to the directory whose path is in variable x.
* pwd: return the current working directory. You can do x=`pwd` to return the path of the current working directory into x, or just type pwd to see it.
* pushd, popd: Oh come on... they work like the bash equivalents, ok? Both return the directory where they end up, as a string, so x=`pushd subDirectory` or here=`popd` work.
<<lessThe smart-eyed reader will have noticed the use of the built-in quoted() method in the examples above. There are a number of these that are available in the interpreter namespace (the source is, as youd expect, in quasi.py):
* quoted() returns any string surrounded by either single or double quotes (single-quotes as default). If passed a list, it returns a list of the strings, each quoted(), joined with whitespace. Currently it uses Pythons repr() as a quick-and-dirty way to do this.
* dquoted does the same, but uses double-quotes and will escape any double-quotes already in a string.
* commas() joins the elements of a list with commas; this is mostly for Windows work.
* modules() returns a list of the currently imported modules in the interpreter namespace; just to make ones working life a little easier.
* Bag() is a useful class.
Bags can behave like dicts (in that they have a keys() method, and you can access values using the x[y] syntax) or like objects (in that you can access values using the x.y syntax). You must always assign values using the former (x[y]), but after that you can reference values either way.
A Bag will also remember the order in which values were assigned; this is used in the SQL context, for example, so that a Bags keys or values are always returned in the order that a SELECT obtained them.
There are also a number of built-in shell commands. Unlike nearly everything else that gets typed into Quasi, these execute in the namespace of the shell, not the interpreter. More on that another time, but it means that any variables your Python code may have defined are not accessible to built-in shell commands. This is why none of them need any real arguments:
* exit: exit Quasi.
* help: show lots of help on various sorts of command.
* credits: show the names of the people who have contributed to Quasi.
* license: show the Quasi (BSD-style) license.
* history: show the command history. Supports slice notation (1:20), plus history searching. For example, history sq will find all command lines that begin with "sq".
* recall: recall a previous command or set of them.
This is very useful when youve been writing indented code and want to recall a set of previous lines. Same syntax as history - specify a single line or a slice-like set of them.
Recall has a limitation; it requires a functional readline module available, to insert the recalled command into the input buffer for editing. If that cant be done, the recalled line(s) are printed to allow copying and pasting. Also, if more than one line is recalled, theres no way to edit them, so theyre executed.
There are also a set of built-in commands which execute in the interpreter namespace and can, therefore, do variable-substitution trickery:
* cd: change directory. You can do cd $x to change to the directory whose path is in variable x.
* pwd: return the current working directory. You can do x=`pwd` to return the path of the current working directory into x, or just type pwd to see it.
* pushd, popd: Oh come on... they work like the bash equivalents, ok? Both return the directory where they end up, as a string, so x=`pushd subDirectory` or here=`popd` work.
Download (0.046MB)
Added: 2006-12-13 License: BSD License Price:
1046 downloads
libAfterImage 1.15
libAfterImage is a small, fast, and powerful library for high-quality image manipulation. more>>
libAfterImage is a small, fast, and powerful library for high-quality image manipulation.
libAfterImage is a generic image manipulation library. It was initially implemented to address AfterStep Window Managers needs for image handling, but it evolved into extremely powerfull and flexible software, suitable for virtually any project that has needs for loading, manipulating, displaying images, as well as writing images in files.
Most of the popular image formats are supported using standard libraries, with XCF, XPM, PPM/PNM, BMP, ICO, TGA and GIF being supported internally.
PNG, JPEG and TIFF formats are supported via standard libraries.
For convinience, source for libJPEG and libPNG is supplied with libAfterImage.
Powerfull text rendering capabilities included, providing support for TrueType fonts using FreeType library, and antialiasing of standard fonts from X window system.
Primary design goals of libAfterImage are memory efficiency and superior image quality.
Extensive documentation, examples, and XML image scripting tool ascompose, are included with the library.
libAfterImage allows output of the image on any of the X11 display, MS Windows DIB, or standard output, which is suitable for web servers.
Enhancements:
- New features include image slicing, better support for 32-bit visuals, and proper Gaussian blur with radii up to 128.
<<lesslibAfterImage is a generic image manipulation library. It was initially implemented to address AfterStep Window Managers needs for image handling, but it evolved into extremely powerfull and flexible software, suitable for virtually any project that has needs for loading, manipulating, displaying images, as well as writing images in files.
Most of the popular image formats are supported using standard libraries, with XCF, XPM, PPM/PNM, BMP, ICO, TGA and GIF being supported internally.
PNG, JPEG and TIFF formats are supported via standard libraries.
For convinience, source for libJPEG and libPNG is supplied with libAfterImage.
Powerfull text rendering capabilities included, providing support for TrueType fonts using FreeType library, and antialiasing of standard fonts from X window system.
Primary design goals of libAfterImage are memory efficiency and superior image quality.
Extensive documentation, examples, and XML image scripting tool ascompose, are included with the library.
libAfterImage allows output of the image on any of the X11 display, MS Windows DIB, or standard output, which is suitable for web servers.
Enhancements:
- New features include image slicing, better support for 32-bit visuals, and proper Gaussian blur with radii up to 128.
Download (1.1MB)
Added: 2007-08-03 License: LGPL (GNU Lesser General Public License) Price:
812 downloads
PDL::Indexing 2.4.3
PDL::Indexing Perl module contains a tutorial on how to index piddles. more>>
PDL::Indexing Perl module contains a tutorial on how to index piddles.
This manpage should serve as a first tutorial on the indexing and threading features of PDL.
This manpage is still in alpha development and not yet complete. "Meta" comments that point out deficiencies/omissions of this document will be surrounded by square brackets ([]), e.g. [ Hopefully I will be able to remove this paragraph at some time in the future ]. Furthermore, it is possible that there are errors in the code examples. Please report any errors to Christian Soeller (c.soeller@auckland.ac.nz).
Still to be done are (please bear with us and/or ask on the mailing list, see PDL::FAQ):
document perl level threading
threadids
update and correct description of slice
new functions in slice.pd (affine, lag, splitdim)
reworking of paragraph on explicit threading
Indexing and threading with PDL
A lot of the flexibility and power of PDL relies on the indexing and looping features of the perl extension. Indexing allows access to the data of a pdl object in a very flexible way. Threading provides efficient implicit looping functionality (since the loops are implemented as optimized C code).
Pdl objects (later often called "pdls") are perl objects that represent multidimensional arrays and operations on those. In contrast to simple perl @x style lists the array data is compactly stored in a single block of memory thus taking up a lot less memory and enabling use of fast C code to implement operations (e.g. addition, etc) on pdls.
pdls can have children
Central to many of the indexing capabilities of PDL are the relation of "parent" and "child" between pdls. Many of the indexing commands create a new pdl from an existing pdl. The new pdl is the "child" and the old one is the "parent". The data of the new pdl is defined by a transformation that specifies how to generate (compute) its data from the parents data. The relation between the child pdl and its parent are often bidirectional, meaning that changes in the childs data are propagated back to the parent. (Note: You see, we are aiming in our terminology already towards the new dataflow features. The kind of dataflow that is used by the indexing commands (about which you will learn in a minute) is always in operation, not only when you have explicitly switched on dataflow in your pdl by saying $a->doflow. For further information about data flow check the dataflow manpage.)
Another way to interpret the pdls created by our indexing commands is to view them as a kind of intelligent pointer that points back to some portion or all of its parents data. Therefore, it is not surprising that the parents data (or a portion of it) changes when manipulated through this "pointer". After these introductory remarks that hopefully prepared you for what is coming (rather than confuse you too much) we are going to dive right in and start with a description of the indexing commands and some typical examples how they might be used in PDL programs. We will further illustrate the pointer/dataflow analogies in the context of some of the examples later on.
There are two different implementations of this ``smart pointer relationship: the first one, which is a little slower but works for any transformation is simply to do the transformation forwards and backwards as necessary. The other is to consider the child piddle a ``virtual piddle, which only stores a pointer to the parent and access information so that routines which use the child piddle actually directly access the data in the parent. If the virtual piddle is given to a routine which cannot use it, PDL transparently physicalizes the virtual piddle before letting the routine use it.
Currently (1.94_01) all transformations which are ``affine, i.e. the indices of the data item in the parent piddle are determined by a linear transformation (+ constant) from the indices of the child piddle result in virtual piddles. All other indexing routines (e.g. ->index(...)) result in physical piddles. All routines compiled by PP can accept affine piddles (except those routines that pass pointers to external library functions).
Note that whether something is affine or not does not affect the semantics of what you do in any way: both
$a->index(...) .= 5;
$a->slice(...) .= 5;
change the data in $a. The affinity does, however, have a significant impact on memory usage and performance.
<<lessThis manpage should serve as a first tutorial on the indexing and threading features of PDL.
This manpage is still in alpha development and not yet complete. "Meta" comments that point out deficiencies/omissions of this document will be surrounded by square brackets ([]), e.g. [ Hopefully I will be able to remove this paragraph at some time in the future ]. Furthermore, it is possible that there are errors in the code examples. Please report any errors to Christian Soeller (c.soeller@auckland.ac.nz).
Still to be done are (please bear with us and/or ask on the mailing list, see PDL::FAQ):
document perl level threading
threadids
update and correct description of slice
new functions in slice.pd (affine, lag, splitdim)
reworking of paragraph on explicit threading
Indexing and threading with PDL
A lot of the flexibility and power of PDL relies on the indexing and looping features of the perl extension. Indexing allows access to the data of a pdl object in a very flexible way. Threading provides efficient implicit looping functionality (since the loops are implemented as optimized C code).
Pdl objects (later often called "pdls") are perl objects that represent multidimensional arrays and operations on those. In contrast to simple perl @x style lists the array data is compactly stored in a single block of memory thus taking up a lot less memory and enabling use of fast C code to implement operations (e.g. addition, etc) on pdls.
pdls can have children
Central to many of the indexing capabilities of PDL are the relation of "parent" and "child" between pdls. Many of the indexing commands create a new pdl from an existing pdl. The new pdl is the "child" and the old one is the "parent". The data of the new pdl is defined by a transformation that specifies how to generate (compute) its data from the parents data. The relation between the child pdl and its parent are often bidirectional, meaning that changes in the childs data are propagated back to the parent. (Note: You see, we are aiming in our terminology already towards the new dataflow features. The kind of dataflow that is used by the indexing commands (about which you will learn in a minute) is always in operation, not only when you have explicitly switched on dataflow in your pdl by saying $a->doflow. For further information about data flow check the dataflow manpage.)
Another way to interpret the pdls created by our indexing commands is to view them as a kind of intelligent pointer that points back to some portion or all of its parents data. Therefore, it is not surprising that the parents data (or a portion of it) changes when manipulated through this "pointer". After these introductory remarks that hopefully prepared you for what is coming (rather than confuse you too much) we are going to dive right in and start with a description of the indexing commands and some typical examples how they might be used in PDL programs. We will further illustrate the pointer/dataflow analogies in the context of some of the examples later on.
There are two different implementations of this ``smart pointer relationship: the first one, which is a little slower but works for any transformation is simply to do the transformation forwards and backwards as necessary. The other is to consider the child piddle a ``virtual piddle, which only stores a pointer to the parent and access information so that routines which use the child piddle actually directly access the data in the parent. If the virtual piddle is given to a routine which cannot use it, PDL transparently physicalizes the virtual piddle before letting the routine use it.
Currently (1.94_01) all transformations which are ``affine, i.e. the indices of the data item in the parent piddle are determined by a linear transformation (+ constant) from the indices of the child piddle result in virtual piddles. All other indexing routines (e.g. ->index(...)) result in physical piddles. All routines compiled by PP can accept affine piddles (except those routines that pass pointers to external library functions).
Note that whether something is affine or not does not affect the semantics of what you do in any way: both
$a->index(...) .= 5;
$a->slice(...) .= 5;
change the data in $a. The affinity does, however, have a significant impact on memory usage and performance.
Download (2.1MB)
Added: 2007-06-28 License: Perl Artistic License Price:
848 downloads
libsexier 1.0 Beta 1
libsexier is a sexy cairo widget library for gtk/gnome. more>>
libsexier is a sexy cairo widget library for gtk/gnome.
Currently only one widget is in this new library, fittsmenu, find out more at http://www.qdh.org.uk
You can build it like so:
./configure
make
Once built you can cd examples and run ./fittsmenu to try it out.There have been many interesting comments regarding this new menu, and some misconceptions about the way it works. As a result there are some interesting new features I want to add to the fittsmenu widget, however some of these features are very difficult (slice scaling for instance) to put together so please be patient.
If you’d like to know more or get involved please email me about it. As this is in the very very early stages of development I’m very curious to hear peoples opinions and rants about what I’m doing.
<<lessCurrently only one widget is in this new library, fittsmenu, find out more at http://www.qdh.org.uk
You can build it like so:
./configure
make
Once built you can cd examples and run ./fittsmenu to try it out.There have been many interesting comments regarding this new menu, and some misconceptions about the way it works. As a result there are some interesting new features I want to add to the fittsmenu widget, however some of these features are very difficult (slice scaling for instance) to put together so please be patient.
If you’d like to know more or get involved please email me about it. As this is in the very very early stages of development I’m very curious to hear peoples opinions and rants about what I’m doing.
Download (0.35MB)
Added: 2007-08-14 License: GPL (GNU General Public License) Price:
801 downloads
ies2iv 1.0-3
ies2iv project opens an IESNA file and translates it to the Open Inventor format. more>>
ies2iv project opens an IESNA file and translates it to the Open Inventor format in order to represent it in 3D and visualize it with software like ivview.
Usage:
ies2iv [--help | -h] [-t] [-p] < file1 > [file2...]
ies2iv: exports one or several IES files to Open Inventor file format
-p: number of horizontal slices
-t: number of vertical slices
-i : exports the corresponding igloo
<<lessUsage:
ies2iv [--help | -h] [-t] [-p] < file1 > [file2...]
ies2iv: exports one or several IES files to Open Inventor file format
-p: number of horizontal slices
-t: number of vertical slices
-i : exports the corresponding igloo
Download (0.007MB)
Added: 2007-04-17 License: GPL (GNU General Public License) Price:
921 downloads
Bio::Seq 1.4
Bio::Seq is a sequence object, with features. more>>
Bio::Seq is a sequence object, with features.
SYNOPSIS
# This is the main sequence object in Bioperl
# gets a sequence from a file
$seqio = Bio::SeqIO->new( -format => embl , -file => myfile.dat);
$seqobj = $seqio->next_seq();
# SeqIO can both read and write sequences; see Bio::SeqIO
# for more information and examples
# get from database
$db = Bio::DB::GenBank->new();
$seqobj = $db->get_Seq_by_acc(X78121);
# make from strings in script
$seqobj = Bio::Seq->new( -display_id => my_id,
-seq => $sequence_as_string);
# gets sequence as a string from sequence object
$seqstr = $seqobj->seq(); # actual sequence as a string
$seqstr = $seqobj->subseq(10,50); # slice in biological coordinates
# retrieves information from the sequence
# features must implement Bio::SeqFeatureI interface
@features = $seqobj->get_SeqFeatures(); # just top level
foreach my $feat ( @features ) {
print "Feature ",$feat->primary_tag," starts ",$feat->start," ends ",
$feat->end," strand ",$feat->strand,"n";
# features retain link to underlying sequence object
print "Feature sequence is ",$feat->seq->seq(),"n"
}
# sequences may have a species
if( defined $seq->species ) {
print "Sequence is from ",$species->binomial_name," [",$species->common_name,"]n";
}
# annotation objects are Bio::AnnotationCollectionIs
$ann = $seqobj->annotation(); # annotation object
# references is one type of annotations to get. Also get
# comment and dblink. Look at Bio::AnnotationCollection for
# more information
foreach my $ref ( $ann->get_Annotations(reference) ) {
print "Reference ",$ref->title,"n";
}
# you can get truncations, translations and reverse complements, these
# all give back Bio::Seq objects themselves, though currently with no
# features transfered
my $trunc = $seqobj->trunc(100,200);
my $rev = $seqobj->revcom();
# there are many options to translate - check out the docs
my $trans = $seqobj->translate();
# these functions can be chained together
my $trans_trunc_rev = $seqobj->trunc(100,200)->revcom->translate();
A Seq object is a sequence with sequence features placed on it. The Seq object contains a PrimarySeq object for the actual sequence and also implements its interface.
In Bioperl we have 3 main players that people are going to use frequently
Bio::PrimarySeq - just the sequence and its names, nothing else.
Bio::SeqFeatureI - a location on a sequence, potentially with a sequence
and annotation.
Bio::Seq - A sequence and a collection of sequence features
(an aggregate) with its own annotation.
Although Bioperl is not tied heavily to file formats these distinctions do map to file formats sensibly and for some bioinformaticians this might help
Bio::PrimarySeq - Fasta file of a sequence
Bio::SeqFeatureI - A single entry in an EMBL/GenBank/DDBJ feature table
Bio::Seq - A single EMBL/GenBank/DDBJ entry
By having this split we avoid a lot of nasty circular references (sequence features can hold a reference to a sequence without the sequence holding a reference to the sequence feature). See Bio::PrimarySeq and Bio::SeqFeatureI for more information.
Ian Korf really helped in the design of the Seq and SeqFeature system.
<<lessSYNOPSIS
# This is the main sequence object in Bioperl
# gets a sequence from a file
$seqio = Bio::SeqIO->new( -format => embl , -file => myfile.dat);
$seqobj = $seqio->next_seq();
# SeqIO can both read and write sequences; see Bio::SeqIO
# for more information and examples
# get from database
$db = Bio::DB::GenBank->new();
$seqobj = $db->get_Seq_by_acc(X78121);
# make from strings in script
$seqobj = Bio::Seq->new( -display_id => my_id,
-seq => $sequence_as_string);
# gets sequence as a string from sequence object
$seqstr = $seqobj->seq(); # actual sequence as a string
$seqstr = $seqobj->subseq(10,50); # slice in biological coordinates
# retrieves information from the sequence
# features must implement Bio::SeqFeatureI interface
@features = $seqobj->get_SeqFeatures(); # just top level
foreach my $feat ( @features ) {
print "Feature ",$feat->primary_tag," starts ",$feat->start," ends ",
$feat->end," strand ",$feat->strand,"n";
# features retain link to underlying sequence object
print "Feature sequence is ",$feat->seq->seq(),"n"
}
# sequences may have a species
if( defined $seq->species ) {
print "Sequence is from ",$species->binomial_name," [",$species->common_name,"]n";
}
# annotation objects are Bio::AnnotationCollectionIs
$ann = $seqobj->annotation(); # annotation object
# references is one type of annotations to get. Also get
# comment and dblink. Look at Bio::AnnotationCollection for
# more information
foreach my $ref ( $ann->get_Annotations(reference) ) {
print "Reference ",$ref->title,"n";
}
# you can get truncations, translations and reverse complements, these
# all give back Bio::Seq objects themselves, though currently with no
# features transfered
my $trunc = $seqobj->trunc(100,200);
my $rev = $seqobj->revcom();
# there are many options to translate - check out the docs
my $trans = $seqobj->translate();
# these functions can be chained together
my $trans_trunc_rev = $seqobj->trunc(100,200)->revcom->translate();
A Seq object is a sequence with sequence features placed on it. The Seq object contains a PrimarySeq object for the actual sequence and also implements its interface.
In Bioperl we have 3 main players that people are going to use frequently
Bio::PrimarySeq - just the sequence and its names, nothing else.
Bio::SeqFeatureI - a location on a sequence, potentially with a sequence
and annotation.
Bio::Seq - A sequence and a collection of sequence features
(an aggregate) with its own annotation.
Although Bioperl is not tied heavily to file formats these distinctions do map to file formats sensibly and for some bioinformaticians this might help
Bio::PrimarySeq - Fasta file of a sequence
Bio::SeqFeatureI - A single entry in an EMBL/GenBank/DDBJ feature table
Bio::Seq - A single EMBL/GenBank/DDBJ entry
By having this split we avoid a lot of nasty circular references (sequence features can hold a reference to a sequence without the sequence holding a reference to the sequence feature). See Bio::PrimarySeq and Bio::SeqFeatureI for more information.
Ian Korf really helped in the design of the Seq and SeqFeature system.
Download (4.7MB)
Added: 2006-10-10 License: Perl Artistic License Price:
1111 downloads
frottle 0.2.1
Frottle (Freenet throttle) is a project to control traffic on wireless networks. more>>
Frottle (Freenet throttle) is a project to control traffic on wireless networks. Such control eliminates the common hidden-node effect even on large scale wireless networks. Frottle is currently only available for Linux wireless gateways using iptables firewalls, with plans to develop a windows client in the future.
Frottle is made to schedule the traffic of each client, using a master node to co-ordinate actions. This eliminates collisions, and prevents clients with stronger signals from receiving bandwidth bias.
Frottle has been developed and tested on the large community wireless network of WaFreeNet. We have found running frottle has given us a significant improvment in the network usability. Testing results will be documented here as time permits.
Frottle currently operates as a userspace application, receiveing outbound packets via the iptables QUEUE functionality. Access to the network is controlled by the frottle master, sending each client a control packet (token) which contains information about how much data can be sent at this time.
Each client receives its token and sends any required data, one at a time. This eliminates collisions, and with a reasonable signal packetloss is virtually zero. Also, since each client gets a limited slice of the bandwidth, everyone can get fair access regardless of their signal strength. Whilst this mechanism does result in increased latency, overall network performance and utilisation can significantly increase.
Main features:
- Traffic queues built in to frottle assign different, dynamic priorities to different traffic. Most traffic has a default priority. Traffic to/from specified ports (and ICMP packets) are made high priority. Traffic for connections that have done more than 2 MB of data and have a rate of more than 5 KB/s are made low priority. When a client is polled, high priority traffic is sent first, then default, then low until the poll quota is used.
-
- Realtime info on each clients performance is available from the master in a html file and optionally at each client in a similar html file. (The names and locations of these files is set in /etc/frottle.conf.)
<<lessFrottle is made to schedule the traffic of each client, using a master node to co-ordinate actions. This eliminates collisions, and prevents clients with stronger signals from receiving bandwidth bias.
Frottle has been developed and tested on the large community wireless network of WaFreeNet. We have found running frottle has given us a significant improvment in the network usability. Testing results will be documented here as time permits.
Frottle currently operates as a userspace application, receiveing outbound packets via the iptables QUEUE functionality. Access to the network is controlled by the frottle master, sending each client a control packet (token) which contains information about how much data can be sent at this time.
Each client receives its token and sends any required data, one at a time. This eliminates collisions, and with a reasonable signal packetloss is virtually zero. Also, since each client gets a limited slice of the bandwidth, everyone can get fair access regardless of their signal strength. Whilst this mechanism does result in increased latency, overall network performance and utilisation can significantly increase.
Main features:
- Traffic queues built in to frottle assign different, dynamic priorities to different traffic. Most traffic has a default priority. Traffic to/from specified ports (and ICMP packets) are made high priority. Traffic for connections that have done more than 2 MB of data and have a rate of more than 5 KB/s are made low priority. When a client is polled, high priority traffic is sent first, then default, then low until the poll quota is used.
-
- Realtime info on each clients performance is available from the master in a html file and optionally at each client in a similar html file. (The names and locations of these files is set in /etc/frottle.conf.)
Download (0.030MB)
Added: 2006-06-27 License: GPL (GNU General Public License) Price:
1216 downloads
GnoTime 2.2.2
GnoTime provides a to-do list organizer and project timer. more>>
GnoTime provides a to-do list organizer and project timer.
GnoTime is a to-do list tracker and project timer with a built-in invoice generator. It allows users to keep track of how much time they have spent working on particular tasks, maintain a diary of that work, and create invoices with task-specific billing fees and rates.
Main features:
- Multiple To-Do Lists that can be sorted by the priority/importance of the tasks in the list. The to-do items can be organized into categories, arranged in a hierarchical way. This makes it easy to maintain both business and personal items in the list, or handle many different projects, while keeping them separate from each other.
- A pair of Diary/Journal areas that can be used to keep long and detailed notes and diary entries. The project description area allows a multi-paragraph description or status to be typed in. The diary area allows day-to-day notes to be associated with a set of timestamps, so that one has a record of what one did on any given day.
- A Running Timer, with time totals, for each project/task. One starts the timer by clicking on a task: it will measure the amount of time that you are in front of the computer. If it detects that the keyboard/mouse are idle, it will stop the clock. If the clock stays stopped too long, it will nag you to start it up again. You can view time totals by day, week, month or year.
- A Billing Status dialog for each diary entry. You can mark any given diary entry as bill-able/non-bill-able, paid or pending, and set the billing rate. Each project can also be marked up with a set of project-planning information: planed start, end and due dates, hours to finish, percent-complete. This is in addition to assigning an urgency/importance to each project, as well as a status (completed/in-progress not-started/canceled).
- A half-dozen different HTML Reports that can slice and dice your lists. Theres a Journal report that shows all of the diary entries for one given project. Theres an Invoice report that summarizes the time spent on each entry, and computes a dollar amount for it. Theres a Status Report that prints the title of each project, together with the paragraph-long descriptions of each. Theres a ToDo report, which prints only the project title, the importance/urgency, and the completed/in-progress/not-started status. The Daily report summarizes the total time spent on a day-by-day basis, and lists each of the projects that were worked on in a given day. Each of these reports can be customized. And, because theyre HTML, you can even publish them as web pages. (Yes, Ive thought of using GnoTime as a weblog management/publishing tool).
Enhancements:
- Build against QOF version 0.6.0, if available.
- Fix issue where yelp doesnt display an entry for gnotime when browsing because it doesnt recognize the entry
- Fix sourceforge bug [ 799077 ] projects blanked when first time user tries to sort
- fix broken leap-year calculation, leading to bugs sourceforge bugs [ 983408 ] and [ 1114205 ]
- Fix crash due to hoverhelp timer popping after a report window is closed.
- Change activity report to display date/time in two distinct html table columns (prettier alignment)
- Bug fix: sourceforge bug report fixed [ 877193 ] toolbar wont go to/stay in text-only mode
- Bug fix: editing time brings up wrong report
- fedora .spec file is out of date and rpm cannot build rpm
- Fix bug involving copy of old gnotime files to a new machine on which gnotime has never been run before.
- Fix sourceforge bug [ 1276458 ] "Empty" appears in diary entry
- Apply sourceforge patch 1176719 Extensible fix for gtkhtml3 building
- Apply 1171394 Adds separate timeout for "No Project" dialog
- Apply sourceforge patch 085911 Add "-" value for status field
- Apply sourceforge patch 074658 Add wordwrapping to diary entry boxes
- Apply sourceforge patch 1074458 Fix a crash when invoking help
- Apply sourceforge patch 1038701 Fix to Activity item in popup menu
- Apply sourceforge patch 1027582 Build system update for qof inclusion
- Fix idle time so that it works with Linux 2.6 kernel /proc/interrupts
- use %e to see the estimated sizing of a project in the logfiles
- Apply new pt_BR translation from Goedson Teixeira Paixao
- Fix for Debian Bug #250776, change widget visibility in the edit interval dialog
<<lessGnoTime is a to-do list tracker and project timer with a built-in invoice generator. It allows users to keep track of how much time they have spent working on particular tasks, maintain a diary of that work, and create invoices with task-specific billing fees and rates.
Main features:
- Multiple To-Do Lists that can be sorted by the priority/importance of the tasks in the list. The to-do items can be organized into categories, arranged in a hierarchical way. This makes it easy to maintain both business and personal items in the list, or handle many different projects, while keeping them separate from each other.
- A pair of Diary/Journal areas that can be used to keep long and detailed notes and diary entries. The project description area allows a multi-paragraph description or status to be typed in. The diary area allows day-to-day notes to be associated with a set of timestamps, so that one has a record of what one did on any given day.
- A Running Timer, with time totals, for each project/task. One starts the timer by clicking on a task: it will measure the amount of time that you are in front of the computer. If it detects that the keyboard/mouse are idle, it will stop the clock. If the clock stays stopped too long, it will nag you to start it up again. You can view time totals by day, week, month or year.
- A Billing Status dialog for each diary entry. You can mark any given diary entry as bill-able/non-bill-able, paid or pending, and set the billing rate. Each project can also be marked up with a set of project-planning information: planed start, end and due dates, hours to finish, percent-complete. This is in addition to assigning an urgency/importance to each project, as well as a status (completed/in-progress not-started/canceled).
- A half-dozen different HTML Reports that can slice and dice your lists. Theres a Journal report that shows all of the diary entries for one given project. Theres an Invoice report that summarizes the time spent on each entry, and computes a dollar amount for it. Theres a Status Report that prints the title of each project, together with the paragraph-long descriptions of each. Theres a ToDo report, which prints only the project title, the importance/urgency, and the completed/in-progress/not-started status. The Daily report summarizes the total time spent on a day-by-day basis, and lists each of the projects that were worked on in a given day. Each of these reports can be customized. And, because theyre HTML, you can even publish them as web pages. (Yes, Ive thought of using GnoTime as a weblog management/publishing tool).
Enhancements:
- Build against QOF version 0.6.0, if available.
- Fix issue where yelp doesnt display an entry for gnotime when browsing because it doesnt recognize the entry
- Fix sourceforge bug [ 799077 ] projects blanked when first time user tries to sort
- fix broken leap-year calculation, leading to bugs sourceforge bugs [ 983408 ] and [ 1114205 ]
- Fix crash due to hoverhelp timer popping after a report window is closed.
- Change activity report to display date/time in two distinct html table columns (prettier alignment)
- Bug fix: sourceforge bug report fixed [ 877193 ] toolbar wont go to/stay in text-only mode
- Bug fix: editing time brings up wrong report
- fedora .spec file is out of date and rpm cannot build rpm
- Fix bug involving copy of old gnotime files to a new machine on which gnotime has never been run before.
- Fix sourceforge bug [ 1276458 ] "Empty" appears in diary entry
- Apply sourceforge patch 1176719 Extensible fix for gtkhtml3 building
- Apply 1171394 Adds separate timeout for "No Project" dialog
- Apply sourceforge patch 085911 Add "-" value for status field
- Apply sourceforge patch 074658 Add wordwrapping to diary entry boxes
- Apply sourceforge patch 1074458 Fix a crash when invoking help
- Apply sourceforge patch 1038701 Fix to Activity item in popup menu
- Apply sourceforge patch 1027582 Build system update for qof inclusion
- Fix idle time so that it works with Linux 2.6 kernel /proc/interrupts
- use %e to see the estimated sizing of a project in the logfiles
- Apply new pt_BR translation from Goedson Teixeira Paixao
- Fix for Debian Bug #250776, change widget visibility in the edit interval dialog
Download (1.3MB)
Added: 2007-02-14 License: GPL (GNU General Public License) Price:
983 downloads
AppFuse 1.9.4
AppFuse is an application for kickstarting webapp development. more>>
AppFuse project is an application for "kickstarting" webapp development. Download, extract and execute ant new to instantly be up and running with a Struts+Spring+Hibernate app running on Tomcat/MySQL app. Uses Ant, XDoclet, Spring, Hibernate (or iBATIS), JUnit, jMock, StrutsTestCase, Canoos WebTest, Struts Menu, Display Tag Library, OSCache, JSTL and Struts (Spring MVC, WebWork, Tapestry and JSF are also options).
To learn more about AppFuse, its history, goals and future, checkout AppFuse: Start Your J2EE Web Apps on java.net. You can also watch this video, which shows you how to create a project with AppFuse - as well as gives you a tour of its out-of-the-box features.
The Spring Framework has greatly enhanced AppFuse since February 2004. Its used throughout for its Hibernate/iBATIS support, declarative transactions, dependency binding and layer decoupling. This clean and simple framework has greatly reduced the complexity of AppFuse, and also eliminated many lines of code. In short, for J2EE - its the best thing since sliced bread.
Enhancements:
- This releases major new features are upgrading to Spring 2.0, Hibernate 3.2, and Facelets + Ajax4JSF integration for the JSF option.
- In addition, many libraries have been fixed and a few bugs have been squashed.
<<lessTo learn more about AppFuse, its history, goals and future, checkout AppFuse: Start Your J2EE Web Apps on java.net. You can also watch this video, which shows you how to create a project with AppFuse - as well as gives you a tour of its out-of-the-box features.
The Spring Framework has greatly enhanced AppFuse since February 2004. Its used throughout for its Hibernate/iBATIS support, declarative transactions, dependency binding and layer decoupling. This clean and simple framework has greatly reduced the complexity of AppFuse, and also eliminated many lines of code. In short, for J2EE - its the best thing since sliced bread.
Enhancements:
- This releases major new features are upgrading to Spring 2.0, Hibernate 3.2, and Facelets + Ajax4JSF integration for the JSF option.
- In addition, many libraries have been fixed and a few bugs have been squashed.
Download (29.9MB)
Added: 2006-11-02 License: GPL (GNU General Public License) Price:
1102 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 slice 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