introductory
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 15
Prima::tutorial 1.20
Prima::tutorial is an introductory tutorial. more>>
Prima::tutorial is an introductory tutorial.
Programming graphic interfaces is often considered somewhat boring, and not without a cause. It is a small pride in knowing that your buttons and scrollbars work exactly as millions of others buttons and scrollbars do, so whichever GUI toolkit is chosen, it is usually regarded as a tool of small importance, and the less obtrusive, the better.
Given that, and trying to live up to the famous Perl making easy things easy and hard things possible mantra, this manual page is an introductory tutorial meant to show how to write easy things easy. The hard things are explained in the other Prima manual pages ( see Prima ).
<<lessProgramming graphic interfaces is often considered somewhat boring, and not without a cause. It is a small pride in knowing that your buttons and scrollbars work exactly as millions of others buttons and scrollbars do, so whichever GUI toolkit is chosen, it is usually regarded as a tool of small importance, and the less obtrusive, the better.
Given that, and trying to live up to the famous Perl making easy things easy and hard things possible mantra, this manual page is an introductory tutorial meant to show how to write easy things easy. The hard things are explained in the other Prima manual pages ( see Prima ).
Download (1.4MB)
Added: 2006-08-24 License: Perl Artistic License Price:
1162 downloads
Stratego/XT 0.16
Stratego/XT is a development environment for creating stand-alone transformation systems. more>>
Stratego/XT is a development environment for creating stand-alone transformation systems.
It combines Stratego, a language for implementing transformations based on the paradigm of programmable rewriting strategies, with XT, a collection of reusable components and tools for the development of transformation systems.
In general, Stratego/XT is intended for the analysis, manipulation, and generation of programs, though its features make it useful for transforming any structured documents.
In practice, it has been used to build many types of transformation systems including compilers, interpreters, static analyzers, domain-specific optimizers, code generators, source code refactorers, documentation generators, and document transformers.
Enhancements:
- The compiler was restructured.
- Some old language features were removed.
- Man pages for all tools were completed.
- A new introductory tutorial with examples was co-released, and more.
<<lessIt combines Stratego, a language for implementing transformations based on the paradigm of programmable rewriting strategies, with XT, a collection of reusable components and tools for the development of transformation systems.
In general, Stratego/XT is intended for the analysis, manipulation, and generation of programs, though its features make it useful for transforming any structured documents.
In practice, it has been used to build many types of transformation systems including compilers, interpreters, static analyzers, domain-specific optimizers, code generators, source code refactorers, documentation generators, and document transformers.
Enhancements:
- The compiler was restructured.
- Some old language features were removed.
- Man pages for all tools were completed.
- A new introductory tutorial with examples was co-released, and more.
Download (6.9MB)
Added: 2005-11-08 License: LGPL (GNU Lesser General Public License) Price:
1458 downloads
Roster-in-a-Box 1.0
Roster-in-a-Box project is a course management system designed to facilitate the use of autograded homework assignments. more>>
Roster-in-a-Box project is a course management system designed to facilitate the use of autograded homework assignments, while also allowing for text-based questions to be submitted online and graded online by the instructor. I developed and currently use the system for my introductory statistics and microeconomics courses at Long Island University, and I have had it in production since 2005. While you will be able to break the program if you try hard enough, it is stable and very much ready for use.
I wrote the program because I wanted something simpler than Moodle (and also because my school was not supporting Moodle at the time that I started the project). I love Moodle, and Moodle may be right for you, but it wasnt right for me, because I didnt want the course management system to take over my course web site. Basically, Roster-in-a-Box handles the homework and grading functions with a couple of web pages and leaves you on your own to design the rest of your course web site. That may or may not be what you want.
It should be quite simple to take my statistics modules (and the forthcoming microeconomics modules that I just havent gotten around to packaging) and get your own introductory statistics course up in no time. It is also quite simple to set up a course that consists of only text-based, manually-graded questions. On the other hand, if you want to write auto-graded assignments for some other purpose, you will have to know how to code them yourself. The structure of the modules should be somewhat self-explanatory to experienced programmers, but is probably daunting to those who do not know how to code. The entire program is written in PHP, and uses MySQL as a back-end database.
Version restrictions:
- There are things you could do while editing the assignment list that would leave it in an inconsistent state. For example, if you leave a page open, then open up a different page and make edits in that page, and then go back to the first page and save your changes, you may screw things up. I will get around to fixing this problem at some point, but in the mean time try not to do things like that.
- The program uses the PHP session variable, which by default times out after 24 minutes (supposedly due to security concerns). You should bug the web site administrator to lengthen the PHP system setting session.gc_maxlifetime to be as long as possible.
- By default, the system resets to the Spring semester on January 1st, the Summmer semester on May 15th, and the Fall semester on September 1st. I should probably make these dates editable somewhere in site_settings.php, but instead youll have to dig through administer.php and homework.php if you want to change them.
Enhancements:
- This has been used in a production environment for two years now, but the code has never been released.
<<lessI wrote the program because I wanted something simpler than Moodle (and also because my school was not supporting Moodle at the time that I started the project). I love Moodle, and Moodle may be right for you, but it wasnt right for me, because I didnt want the course management system to take over my course web site. Basically, Roster-in-a-Box handles the homework and grading functions with a couple of web pages and leaves you on your own to design the rest of your course web site. That may or may not be what you want.
It should be quite simple to take my statistics modules (and the forthcoming microeconomics modules that I just havent gotten around to packaging) and get your own introductory statistics course up in no time. It is also quite simple to set up a course that consists of only text-based, manually-graded questions. On the other hand, if you want to write auto-graded assignments for some other purpose, you will have to know how to code them yourself. The structure of the modules should be somewhat self-explanatory to experienced programmers, but is probably daunting to those who do not know how to code. The entire program is written in PHP, and uses MySQL as a back-end database.
Version restrictions:
- There are things you could do while editing the assignment list that would leave it in an inconsistent state. For example, if you leave a page open, then open up a different page and make edits in that page, and then go back to the first page and save your changes, you may screw things up. I will get around to fixing this problem at some point, but in the mean time try not to do things like that.
- The program uses the PHP session variable, which by default times out after 24 minutes (supposedly due to security concerns). You should bug the web site administrator to lengthen the PHP system setting session.gc_maxlifetime to be as long as possible.
- By default, the system resets to the Spring semester on January 1st, the Summmer semester on May 15th, and the Fall semester on September 1st. I should probably make these dates editable somewhere in site_settings.php, but instead youll have to dig through administer.php and homework.php if you want to change them.
Enhancements:
- This has been used in a production environment for two years now, but the code has never been released.
Download (0.13MB)
Added: 2007-06-20 License: GPL (GNU General Public License) Price:
857 downloads
Bioperl 1.5.2
Bioperl is a Perl extensions for bioinformatics. more>>
Bioperl project is a collection of perl modules that facilitate the development of perl scripts for bioinformatics applications. As such, it does not include ready to use programs in the sense that many commercial packages and free web-based interfaces do (e.g. Entrez, SRS).
On the other hand, bioperl does provide reusable perl modules that facilitate writing perl scripts for sequence manipulation, accessing of databases using a range of data formats and execution and parsing of the results of various molecular biology programs including Blast, clustalw, TCoffee, genscan, ESTscan and HMMER. Consequently, bioperl enables developing scripts that can analyze large quantities of sequence data in ways that are typically difficult or impossible with web based systems.
In order to take advantage of bioperl, the user needs a basic understanding of the perl programming language including an understanding of how to use perl references, modules, objects and methods. If these concepts are unfamiliar the user is referred to any of the various introductory or intermediate books on perl.
Weve liked S. Holzmers Perl Core Language, Coriolis Technology Press, for example. This tutorial is not intended to teach the fundamentals of perl to those with little or no experience in the perl language. On the other hand, advanced knowledge of perl - such as how to write a object-oriented perl module - is not required for successfully using bioperl.
Bioperl is open source software that is still under active development. The advantages of open source software are well known. They include the ability to freely examine and modify source code and exemption from software licensing fees.
However, since open source software is typically developed by a large number of volunteer programmers, the resulting code is often not as clearly organized and its user interface not as standardized as in a mature commercial product.
In addition, in any project under active development, documentation may not keep up with the development of new features. Consequently the learning curve for actively developed, open source source software is sometimes steep.
Enhancements:
- Many bugfixes and enhancements were made, including support for parsing the latest NCBI BLAST text format changes, PAML 3.15 support, a Taxonomy (Bio::Species) overhaul, a Bio::Map overhaul, a Bio::SearchIO speedup, the introduction of a Build.PL installation system, and fixes for some memory leaks in Bio::Tree.
- This version requires Perl 5.6.1 or later.
<<lessOn the other hand, bioperl does provide reusable perl modules that facilitate writing perl scripts for sequence manipulation, accessing of databases using a range of data formats and execution and parsing of the results of various molecular biology programs including Blast, clustalw, TCoffee, genscan, ESTscan and HMMER. Consequently, bioperl enables developing scripts that can analyze large quantities of sequence data in ways that are typically difficult or impossible with web based systems.
In order to take advantage of bioperl, the user needs a basic understanding of the perl programming language including an understanding of how to use perl references, modules, objects and methods. If these concepts are unfamiliar the user is referred to any of the various introductory or intermediate books on perl.
Weve liked S. Holzmers Perl Core Language, Coriolis Technology Press, for example. This tutorial is not intended to teach the fundamentals of perl to those with little or no experience in the perl language. On the other hand, advanced knowledge of perl - such as how to write a object-oriented perl module - is not required for successfully using bioperl.
Bioperl is open source software that is still under active development. The advantages of open source software are well known. They include the ability to freely examine and modify source code and exemption from software licensing fees.
However, since open source software is typically developed by a large number of volunteer programmers, the resulting code is often not as clearly organized and its user interface not as standardized as in a mature commercial product.
In addition, in any project under active development, documentation may not keep up with the development of new features. Consequently the learning curve for actively developed, open source source software is sometimes steep.
Enhancements:
- Many bugfixes and enhancements were made, including support for parsing the latest NCBI BLAST text format changes, PAML 3.15 support, a Taxonomy (Bio::Species) overhaul, a Bio::Map overhaul, a Bio::SearchIO speedup, the introduction of a Build.PL installation system, and fixes for some memory leaks in Bio::Tree.
- This version requires Perl 5.6.1 or later.
Download (MB)
Added: 2006-12-07 License: Artistic License Price:
622 downloads
PDL::Audio 1.1
PDL::Audio is a Perl module for some PDL functions intended for audio processing. more>>
PDL::Audio is a Perl module for some PDL functions intended for audio processing.
SYNOPSIS
use PDL;
use PDL::Audio;
Oh well. Not much "introductory documentation" has been written yet.
NOTATION
Brackets around parameters indicate that the respective parameter is optional and will be replaced with some default value when absent (or undef, which might be different in other packages).
The sampling frequency and duration are by default (see individual descriptions) given in cycles/sample (or samples in case of a duration). That means if you want to specify a duration of two seconds, you have to multiply by the sampling frequency in HZ, and if you want to specify a frequency of 440 Hz, you have to divide by the sampling frequency:
# Syntax: gen_oscil duration*, frequency/
$signal = gen_oscil 2*HZ, 440/HZ;
# with a sampling frequency of 44100 Hertz:
$signal = gen_oscil 2*44100, 440/44100;
To help you, the required unit is given as a type suffix in the parameter name. A "/" means that you have to divide by the sampling frequency (to convert from Hertz) and a suffix of "*" indicates that a multiplication is required.
Most parameters named "size", "duration" (or marked with "*") can be replaced by a piddle, which is then used to give length and from (mono/stereo).
HEADER ATTRIBUTES
The following header attributes are stored and evaluated by most functions. PDL::Audio provides mutator methods for all them (e.g.
print "samplerate is ", $pdl->rate;
$pdl->comment("set the comment to this string");
rate
The sampling rate in hz.
filetype
The filetype (wav, au etc..). Must be one of:
FILE_NEXT FILE_AIFC FILE_RIFF FILE_BICSF FILE_NIST FILE_INRS FILE_ESPS
FILE_SVX FILE_VOC FILE_SNDT FILE_RAW FILE_SMP FILE_SD2 FILE_AVR
FILE_IRCAM FILE_SD1 FILE_SPPACK FILE_MUS10 FILE_HCOM FILE_PSION
FILE_MAUD FILE_IEEE FILE_DESKMATE FILE_DESKMATE_2500 FILE_MATLAB
FILE_ADC FILE_SOUNDEDIT FILE_SOUNDEDIT_16 FILE_DVSM FILE_MIDI
FILE_ESIGNAL FILE_SOUNDFONT FILE_GRAVIS FILE_COMDISCO FILE_GOLDWAVE
FILE_SRFS FILE_MIDI_SAMPLE_DUMP FILE_DIAMONDWARE FILE_REALAUDIO
FILE_ADF FILE_SBSTUDIOII FILE_DELUSION FILE_FARANDOLE FILE_SAMPLE_DUMP
FILE_ULTRATRACKER FILE_YAMAHA_SY85 FILE_YAMAHA_TX16 FILE_DIGIPLAYER
FILE_COVOX FILE_SPL FILE_AVI FILE_OMF FILE_QUICKTIME FILE_ASF
FILE_YAMAHA_SY99 FILE_KURZWEIL_2000 FILE_AIFF FILE_AU
path
The filename (or file specification) used to load or save a file.
format
Specifies the type the underlying file format uses. The samples will always be in short or long signed format.
Must be one of
FORMAT_NO_SND FORMAT_16_LINEAR FORMAT_8_MULAW FORMAT_8_LINEAR
FORMAT_32_FLOAT FORMAT_32_LINEAR FORMAT_8_ALAW FORMAT_8_UNSIGNED
FORMAT_24_LINEAR FORMAT_64_DOUBLE FORMAT_16_LINEAR_LITTLE_ENDIAN
FORMAT_32_LINEAR_LITTLE_ENDIAN FORMAT_32_FLOAT_LITTLE_ENDIAN
FORMAT_64_DOUBLE_LITTLE_ENDIAN FORMAT_16_UNSIGNED
FORMAT_16_UNSIGNED_LITTLE_ENDIAN FORMAT_24_LINEAR_LITTLE_ENDIAN
FORMAT_32_VAX_FLOAT FORMAT_12_LINEAR FORMAT_12_LINEAR_LITTLE_ENDIAN
FORMAT_12_UNSIGNED FORMAT_12_UNSIGNED_LITTLE_ENDIAN COMPATIBLE_FORMAT
PDL::Audio conviniently defines the following aliases for the following constants, that are already correct for the host byteorder:
FORMAT_ULAW_BYTE FORMAT_ALAW_BYTE FORMAT_LINEAR_BYTE
FORMAT_LINEAR_SHORT FORMAT_LINEAR_USHORT FORMAT_LINEAR_LONG
FORMAT_LINEAR_FLOAT FORMAT_LINEAR_DOUBLE
comment
The file comment (if any). device
The device to output audio. One of:
DEV_DEFAULT DEV_READ_WRITE DEV_ADAT_IN DEV_AES_IN DEV_LINE_OUT
DEV_LINE_IN DEV_MICROPHONE DEV_SPEAKERS DEV_DIGITAL_IN DEV_DIGITAL_OUT
DEV_DAC_OUT DEV_ADAT_OUT DEV_AES_OUT DEV_DAC_FILTER DEV_MIXER
DEV_LINE1 DEV_LINE2 DEV_LINE3 DEV_AUX_INPUT DEV_CD_IN DEV_AUX_OUTPUT
DEV_SPDIF_IN DEV_SPDIF_OUT
<<lessSYNOPSIS
use PDL;
use PDL::Audio;
Oh well. Not much "introductory documentation" has been written yet.
NOTATION
Brackets around parameters indicate that the respective parameter is optional and will be replaced with some default value when absent (or undef, which might be different in other packages).
The sampling frequency and duration are by default (see individual descriptions) given in cycles/sample (or samples in case of a duration). That means if you want to specify a duration of two seconds, you have to multiply by the sampling frequency in HZ, and if you want to specify a frequency of 440 Hz, you have to divide by the sampling frequency:
# Syntax: gen_oscil duration*, frequency/
$signal = gen_oscil 2*HZ, 440/HZ;
# with a sampling frequency of 44100 Hertz:
$signal = gen_oscil 2*44100, 440/44100;
To help you, the required unit is given as a type suffix in the parameter name. A "/" means that you have to divide by the sampling frequency (to convert from Hertz) and a suffix of "*" indicates that a multiplication is required.
Most parameters named "size", "duration" (or marked with "*") can be replaced by a piddle, which is then used to give length and from (mono/stereo).
HEADER ATTRIBUTES
The following header attributes are stored and evaluated by most functions. PDL::Audio provides mutator methods for all them (e.g.
print "samplerate is ", $pdl->rate;
$pdl->comment("set the comment to this string");
rate
The sampling rate in hz.
filetype
The filetype (wav, au etc..). Must be one of:
FILE_NEXT FILE_AIFC FILE_RIFF FILE_BICSF FILE_NIST FILE_INRS FILE_ESPS
FILE_SVX FILE_VOC FILE_SNDT FILE_RAW FILE_SMP FILE_SD2 FILE_AVR
FILE_IRCAM FILE_SD1 FILE_SPPACK FILE_MUS10 FILE_HCOM FILE_PSION
FILE_MAUD FILE_IEEE FILE_DESKMATE FILE_DESKMATE_2500 FILE_MATLAB
FILE_ADC FILE_SOUNDEDIT FILE_SOUNDEDIT_16 FILE_DVSM FILE_MIDI
FILE_ESIGNAL FILE_SOUNDFONT FILE_GRAVIS FILE_COMDISCO FILE_GOLDWAVE
FILE_SRFS FILE_MIDI_SAMPLE_DUMP FILE_DIAMONDWARE FILE_REALAUDIO
FILE_ADF FILE_SBSTUDIOII FILE_DELUSION FILE_FARANDOLE FILE_SAMPLE_DUMP
FILE_ULTRATRACKER FILE_YAMAHA_SY85 FILE_YAMAHA_TX16 FILE_DIGIPLAYER
FILE_COVOX FILE_SPL FILE_AVI FILE_OMF FILE_QUICKTIME FILE_ASF
FILE_YAMAHA_SY99 FILE_KURZWEIL_2000 FILE_AIFF FILE_AU
path
The filename (or file specification) used to load or save a file.
format
Specifies the type the underlying file format uses. The samples will always be in short or long signed format.
Must be one of
FORMAT_NO_SND FORMAT_16_LINEAR FORMAT_8_MULAW FORMAT_8_LINEAR
FORMAT_32_FLOAT FORMAT_32_LINEAR FORMAT_8_ALAW FORMAT_8_UNSIGNED
FORMAT_24_LINEAR FORMAT_64_DOUBLE FORMAT_16_LINEAR_LITTLE_ENDIAN
FORMAT_32_LINEAR_LITTLE_ENDIAN FORMAT_32_FLOAT_LITTLE_ENDIAN
FORMAT_64_DOUBLE_LITTLE_ENDIAN FORMAT_16_UNSIGNED
FORMAT_16_UNSIGNED_LITTLE_ENDIAN FORMAT_24_LINEAR_LITTLE_ENDIAN
FORMAT_32_VAX_FLOAT FORMAT_12_LINEAR FORMAT_12_LINEAR_LITTLE_ENDIAN
FORMAT_12_UNSIGNED FORMAT_12_UNSIGNED_LITTLE_ENDIAN COMPATIBLE_FORMAT
PDL::Audio conviniently defines the following aliases for the following constants, that are already correct for the host byteorder:
FORMAT_ULAW_BYTE FORMAT_ALAW_BYTE FORMAT_LINEAR_BYTE
FORMAT_LINEAR_SHORT FORMAT_LINEAR_USHORT FORMAT_LINEAR_LONG
FORMAT_LINEAR_FLOAT FORMAT_LINEAR_DOUBLE
comment
The file comment (if any). device
The device to output audio. One of:
DEV_DEFAULT DEV_READ_WRITE DEV_ADAT_IN DEV_AES_IN DEV_LINE_OUT
DEV_LINE_IN DEV_MICROPHONE DEV_SPEAKERS DEV_DIGITAL_IN DEV_DIGITAL_OUT
DEV_DAC_OUT DEV_ADAT_OUT DEV_AES_OUT DEV_DAC_FILTER DEV_MIXER
DEV_LINE1 DEV_LINE2 DEV_LINE3 DEV_AUX_INPUT DEV_CD_IN DEV_AUX_OUTPUT
DEV_SPDIF_IN DEV_SPDIF_OUT
Download (0.25MB)
Added: 2006-06-19 License: Perl Artistic License Price:
1223 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
DIY Zoning 0.1p7dev3
DIY Zoning is a set of tools and instructions for controlling a state-of-the-art HVAC system. more>>
DIY Zoning is a repository containing the information about architecting, designing and implementing the Do It Yourself Temperature Zoning system, introductory course for those planning to install a ready-made temperature zoning system, and those who just want their home comfort.
Whats New in This Release:
This release introduces support for many logical devices per one physical 1-Wire device in general, and humidity sensor support in particular.
DAC2CORE protocol has changed, backward compatibility is broken. To upgrade your configuration, you have to add a literal T in front of 1-Wire temperature sensors, and add a literal S in front of 1-Wire switch devices.
<<lessWhats New in This Release:
This release introduces support for many logical devices per one physical 1-Wire device in general, and humidity sensor support in particular.
DAC2CORE protocol has changed, backward compatibility is broken. To upgrade your configuration, you have to add a literal T in front of 1-Wire temperature sensors, and add a literal S in front of 1-Wire switch devices.
Download (0.023MB)
Added: 2005-10-14 License: GPL (GNU General Public License) Price:
1472 downloads
AnyEvent 4.8
An identical interface to multiple event loops. more>> AnyEvent 4.8 is specifically designed to be an identical interface to multiple event loops. AnyEvent library allows module authors to utilize an event loop without forcing module users to use the same event loop (as only a single event loop can coexist peacefully at any one time).
The interface itself is vaguely similar but not identical to the Event module. On the first call of any method, the module tries to detect the currently loaded event loop by probing for an already-loaded event loop, such as Glib or Event. The first one found is used. If none is found, the module tries to load an event module.
Enhancements:
- This release adds an introductory tutorial.
- Also, many workarounds for Windows and Tk bugs have been implemented, to make AnyEvent behavior identical to Unix behavior.
- IPv6 support is only enabled when the OS actually supports it.
- BSD platforms implementing the socket structures incorrectly are now worked around. Unix domain sockets are now supported transparently.
- NAPTR and SRV handling has been improved. Lastly, a great many bugs and performance improvements have been applied, especially to AnyEvent:Handle and TLS support.
Requirements: Perl
Added: 2009-07-07 License: Perl Artistic License Price: FREE
14 downloads
Maypole::FormBuilder 0.44
Maypole::FormBuilder is a Perl module with CGI::FormBuilder support in Maypole. more>>
Maypole::FormBuilder is a Perl module with CGI::FormBuilder support in Maypole.
SYNOPSIS
use Maypole::Application qw( FormBuilder QuickTable );
BeerFB->config->model( Maypole::FormBuilder::Model );
Maypole provides a great framework for simplifying the interaction between a UI and a database. But it provides very little support for simplifying the interface itself. Programmers are left to construct each form, widget by widget, using modules that dont support important form use cases, such as what to do when a form submits nothing for an empty field.
CGI::FormBuilder already supports this and many, many other forms use cases. And it provides validation methods, multiform support, and automatically generated Javascript validation code. And plenty more.
This distribution uses Class::DBI::FormBuilder to generate the metadata required to automatically build FormBuilder forms from CDBI classes and objects.
The distribution includes:
Maypole::FormBuilder
Introductory documentation only.
Maypole::Plugin::FormBuilder
as_form, search_form and as_forms methods for the Maypole request object.
Maypole::Plugin::FormBuilder.
Maypole::FormBuilder::Model
A model class based on Class::DBI. Note that this model does not inherit from Maypole::Model::CDBI.
Maypole::FormBuilder::Model.
Maypole::FormBuilder::Model::Base
Model methods that do not depend on the CDBI backend. Models based on a different persistence layer may wish to inherit from this class.
Maypole::FormBuilder::Model::Base.
templates
A new set of templates for the Beer database. These are considerably simpler than the BeerDB templates.
templates-mason Mason templates
templates-tt TT templates, donated by Ron McClain
Note that the templates also need Maypole::Plugin::QuickTable.
Also note, TT users must bless an object called mclass into $request->model_class and add it to the template vars in additional_data(). This is to make moniker work, which will always return Proxy if if you do [% mclass = Class(request.model_class) %] because Class creates a Proxy object around the model class.
<<lessSYNOPSIS
use Maypole::Application qw( FormBuilder QuickTable );
BeerFB->config->model( Maypole::FormBuilder::Model );
Maypole provides a great framework for simplifying the interaction between a UI and a database. But it provides very little support for simplifying the interface itself. Programmers are left to construct each form, widget by widget, using modules that dont support important form use cases, such as what to do when a form submits nothing for an empty field.
CGI::FormBuilder already supports this and many, many other forms use cases. And it provides validation methods, multiform support, and automatically generated Javascript validation code. And plenty more.
This distribution uses Class::DBI::FormBuilder to generate the metadata required to automatically build FormBuilder forms from CDBI classes and objects.
The distribution includes:
Maypole::FormBuilder
Introductory documentation only.
Maypole::Plugin::FormBuilder
as_form, search_form and as_forms methods for the Maypole request object.
Maypole::Plugin::FormBuilder.
Maypole::FormBuilder::Model
A model class based on Class::DBI. Note that this model does not inherit from Maypole::Model::CDBI.
Maypole::FormBuilder::Model.
Maypole::FormBuilder::Model::Base
Model methods that do not depend on the CDBI backend. Models based on a different persistence layer may wish to inherit from this class.
Maypole::FormBuilder::Model::Base.
templates
A new set of templates for the Beer database. These are considerably simpler than the BeerDB templates.
templates-mason Mason templates
templates-tt TT templates, donated by Ron McClain
Note that the templates also need Maypole::Plugin::QuickTable.
Also note, TT users must bless an object called mclass into $request->model_class and add it to the template vars in additional_data(). This is to make moniker work, which will always return Proxy if if you do [% mclass = Class(request.model_class) %] because Class creates a Proxy object around the model class.
Download (0.037MB)
Added: 2006-10-24 License: Perl Artistic License Price:
1095 downloads
allcookies 1.2
allcookies is an extension which dumps ALL cookies (including session cookies) to Firefox standard cookies.txt file. more>>
allcookies is an extension which dumps ALL cookies (including session cookies) to Firefox standard cookies.txt file.
The mandatory companion tool for downloading sites with WGET
A very minimum extension : no psychedelic design. Just the needed feature.
Why you need it : Many web sites are protected by either
- authentification forms
- vicious access rules like "you must first see some introductory or advertisement pages"
Such sites cant be downloaded with the well known WGET tool
AllCookies is the answer to this kind of restrictions.
How it works
Web sites generally use temporary "session cookies" to manage access rules. Such cookies are not saved to the firefox "cookies.txt" file, and are destroyed once your session closes.
AllCookies will turn those cookies to permanent cookies and force saving in cookies.txt
A typicall scenario to download a web site with WGET becomes:
- using Firefox, connect to the web sites, go through all the authentification forms or preliminary pages that are required
- execute AllCookies (just a simple item added in Firefox menu ) to update cookies.txt file
- launch wget : wget --load-cookies=z:cookies.txt http://foo.com
<<lessThe mandatory companion tool for downloading sites with WGET
A very minimum extension : no psychedelic design. Just the needed feature.
Why you need it : Many web sites are protected by either
- authentification forms
- vicious access rules like "you must first see some introductory or advertisement pages"
Such sites cant be downloaded with the well known WGET tool
AllCookies is the answer to this kind of restrictions.
How it works
Web sites generally use temporary "session cookies" to manage access rules. Such cookies are not saved to the firefox "cookies.txt" file, and are destroyed once your session closes.
AllCookies will turn those cookies to permanent cookies and force saving in cookies.txt
A typicall scenario to download a web site with WGET becomes:
- using Firefox, connect to the web sites, go through all the authentification forms or preliminary pages that are required
- execute AllCookies (just a simple item added in Firefox menu ) to update cookies.txt file
- launch wget : wget --load-cookies=z:cookies.txt http://foo.com
Download (0.004MB)
Added: 2007-07-17 License: MPL (Mozilla Public License) Price:
855 downloads
LivEPICS fc5 1.0
LivEPICS is a Linux Live CD that includes: Epics base, Extensions tools, introductory documents and manuals. more>>
LivEPICS is a Linux live CD that includes: Epics Base (release R3.14.7), Extensions tools, introductory documents and manuals. It has the complete functionality to develop a small control system, but it is mainly intended for training classes or to monitor and supervise an EPICS network.
The goal of LivEPICS is:
- Allows to use EPICS without installation on the hard disk.
- Automatic setup of environment variables to compile and test new applications from scratch.
- Includes the basic tools (MEDM, VDCT, etc.) with the related documentation.
<<lessThe goal of LivEPICS is:
- Allows to use EPICS without installation on the hard disk.
- Automatic setup of environment variables to compile and test new applications from scratch.
- Includes the basic tools (MEDM, VDCT, etc.) with the related documentation.
Download (684.4MB)
Added: 2007-02-09 License: GPL (GNU General Public License) Price:
990 downloads
Quantian 0.7.9.2
The Quantian Scientific Computing Environment is a Knoppix / Debian variant tailored to numerical and quantitative analysis. more>>
Quantian distribution is a remastering of Knoppix, the self-configuring and directly bootable dvd/cdrom that turns any pc or laptop (provided it can boot from cdrom/dvd) into a full-featured Linux workstation.
Recent versions of Quantian are based on clusterKnoppix and add support for openMosix, including remote booting of light clients in an openMosix terminal server context. Earlier releases are still available; see below for URLs for downloads as well as ordering information.
Brief introductory information is available in a paper (from June 2004) submitted to The Political Methodologist, slides from the presentation at Usenix 2004 (July 2004), and in the earlier (revised) paper about Quantian that has appeared in the DSC 2003 Proceedings.
Quantian is an extension of Knoppix and clusterKnoppix from which it takes its base system of around two gigabytes of software, along with fully automatic hardware detection and configuration.
Enhancements:
- Kernel 2.6.12, KDE 3.5 / 3.4, OpenOffice 2.0, ... and more from Knoppix 4.0.2
- a backport of the openMosix-enabled 2.4.27 kernel and openMosix tools from the last clusterKnoppix release,
- very comprehensive support for GNU R with over 870 packages from CRAN and BioConductor, plus ESS, Ggobi, Rpad, RKward, RSPerl, JGR, ...
- addition of the Java 1.5.0 SDK enabling us to add ImageJ, Weka, JGR, Mondrian;
- plus a number of other new packages (inkscape, orsa, praat, wxmaxima, some more Debian documentation...)
- and still loads more of math, bio, engineering, LaTeX, ... software
<<lessRecent versions of Quantian are based on clusterKnoppix and add support for openMosix, including remote booting of light clients in an openMosix terminal server context. Earlier releases are still available; see below for URLs for downloads as well as ordering information.
Brief introductory information is available in a paper (from June 2004) submitted to The Political Methodologist, slides from the presentation at Usenix 2004 (July 2004), and in the earlier (revised) paper about Quantian that has appeared in the DSC 2003 Proceedings.
Quantian is an extension of Knoppix and clusterKnoppix from which it takes its base system of around two gigabytes of software, along with fully automatic hardware detection and configuration.
Enhancements:
- Kernel 2.6.12, KDE 3.5 / 3.4, OpenOffice 2.0, ... and more from Knoppix 4.0.2
- a backport of the openMosix-enabled 2.4.27 kernel and openMosix tools from the last clusterKnoppix release,
- very comprehensive support for GNU R with over 870 packages from CRAN and BioConductor, plus ESS, Ggobi, Rpad, RKward, RSPerl, JGR, ...
- addition of the Java 1.5.0 SDK enabling us to add ImageJ, Weka, JGR, Mondrian;
- plus a number of other new packages (inkscape, orsa, praat, wxmaxima, some more Debian documentation...)
- and still loads more of math, bio, engineering, LaTeX, ... software
Download (2700MB)
Added: 2006-03-02 License: GPL (GNU General Public License) Price:
1343 downloads
Vega Strike 0.4.3
Vega Strike is a 3D Linux action space simulator. more>>
Vega Strike is a Linux action space simulator designed to bring 3d space combat to a whole new level of graphics, gameplay, and customizability.
Enhancements:
- Also featured is an introductory story campaign showing what the future of Vega Strike storytelling will look like.
- Hopefully we will release a campaign editor at some point which will allow users to contribute their own stories and dialogue to the game.
- The new screenshot (imaging) key is activated with i. PC users will find a link to the screenshots in the start menu, linux users will find it in the home directory ~/.vegastrike043/textures/
- Strangelet and PeteyG have worked for months on the art you will experience in 2.4.3.
- Dandandamans hard work has made the Loki Installer a reality for our linux users. You folks can toss gcc out the window and just download and run, like the mac and windows releases, and Fadookie and Mamiya0taru have polished the windows installer for the rest of the computational world.
- And my mac is finally out of the shop, and I have finally figured out how to make OS X 10.1 and 10.2 compatible binaries through OS X 10.3, so users with any Mac OS X can still experience Vega Strike. (this is not as easy as it sounds--look how many OS X 10.3 only apps there are out there and youll realize)
- All the items missing from 0.4.2 listed in the missing section have finally been added to 0.4.3, and thats the reason the developers decided to push for another 0.4.x release before forging ahead to 0.5.0 which will likely have a new gameplay feel and more stories.
<<lessEnhancements:
- Also featured is an introductory story campaign showing what the future of Vega Strike storytelling will look like.
- Hopefully we will release a campaign editor at some point which will allow users to contribute their own stories and dialogue to the game.
- The new screenshot (imaging) key is activated with i. PC users will find a link to the screenshots in the start menu, linux users will find it in the home directory ~/.vegastrike043/textures/
- Strangelet and PeteyG have worked for months on the art you will experience in 2.4.3.
- Dandandamans hard work has made the Loki Installer a reality for our linux users. You folks can toss gcc out the window and just download and run, like the mac and windows releases, and Fadookie and Mamiya0taru have polished the windows installer for the rest of the computational world.
- And my mac is finally out of the shop, and I have finally figured out how to make OS X 10.1 and 10.2 compatible binaries through OS X 10.3, so users with any Mac OS X can still experience Vega Strike. (this is not as easy as it sounds--look how many OS X 10.3 only apps there are out there and youll realize)
- All the items missing from 0.4.2 listed in the missing section have finally been added to 0.4.3, and thats the reason the developers decided to push for another 0.4.x release before forging ahead to 0.5.0 which will likely have a new gameplay feel and more stories.
Download (148.11MB)
Added: 2005-04-02 License: GPL (GNU General Public License) Price:
1670 downloads
BlueJ 2.2.0
BlueJ is an integrated Java environment specifically designed for introductory teaching. more>>
BlueJ project is an integrated Java environment (Java IDE) specifically designed for introductory teaching.
The BlueJ environment was developed as part of a university research project about teaching object-orientation to beginners. The system is being developed and maintained by a joint research group at Deakin University, Melbourne, Australia, and the University of Kent in Canterbury, UK. The project is supported by Sun Microsystems.
The aim of BlueJ is to provide an easy-to-use teaching environment for the Java language that facilitates the teaching of Java to first year students. Special emphasis has been placed on visualisation and interaction techniques to create a highly interactive environment that encourages experimentation and exploration.
BlueJ is based on the Blue system. Blue is an integrated teaching environment and language, developed at the University of Sydney and Monash University, Australia. BlueJ provides a Blue-like environment for the Java language.
The BlueJ project started at Monash University in Melbourne, and later split and migrated to its current locations.
BlueJ is implemented in Java, and regularly being tested on Solaris, Linux, Macintosh, and various Windows versions. It should run on all platforms supporting a recent Java virtual machine.
Main features:
- fully integrated environment
- graphical class structure display
- graphical and textual editing
- built-in editor, compiler, virtual machine, debugger, etc.
- easy-to-use interface, ideal for beginners
- interactive object creation
- interactive object calls
- interactive testing
- incremental application development
<<lessThe BlueJ environment was developed as part of a university research project about teaching object-orientation to beginners. The system is being developed and maintained by a joint research group at Deakin University, Melbourne, Australia, and the University of Kent in Canterbury, UK. The project is supported by Sun Microsystems.
The aim of BlueJ is to provide an easy-to-use teaching environment for the Java language that facilitates the teaching of Java to first year students. Special emphasis has been placed on visualisation and interaction techniques to create a highly interactive environment that encourages experimentation and exploration.
BlueJ is based on the Blue system. Blue is an integrated teaching environment and language, developed at the University of Sydney and Monash University, Australia. BlueJ provides a Blue-like environment for the Java language.
The BlueJ project started at Monash University in Melbourne, and later split and migrated to its current locations.
BlueJ is implemented in Java, and regularly being tested on Solaris, Linux, Macintosh, and various Windows versions. It should run on all platforms supporting a recent Java virtual machine.
Main features:
- fully integrated environment
- graphical class structure display
- graphical and textual editing
- built-in editor, compiler, virtual machine, debugger, etc.
- easy-to-use interface, ideal for beginners
- interactive object creation
- interactive object calls
- interactive testing
- incremental application development
Download (3.1MB)
Added: 2007-07-06 License: Freely Distributable Price:
847 downloads
Gwyddion 2007-06-28 (User guide)
Gwyddion is a modular program for SPM (scanning probe microscopy) data visualization and analysis. more>>
Gwyddion is a modular program for SPM (scanning probe microscopy) data visualization and analysis. Primarily it is intended for analysis of height fields obtained by means of scanning probe microscopy techniques (AFM, MFM, STM, SNOM/NSOM), however it can be generally used for any other height field and image analysis (learn more about Gwyddion features).
This project is Free and Open Source software, covered by GNU General Public License. It aims to provide multiplatform modular program for 2D data analysis that could be easily extended by modules and plug-ins. Moreover, the status of free software enables to provide source codes to developers and users, which makes the further program improvement easier.
Gwyddion works on GNU/Linux, Microsoft Windows, Mac OS X and FreeBSD operating systems on common architectures, all systems can be used also for developement. Its graphical user interface is based on Gtk+ and port to other systems supported by Gtk+ should be possible.
Enhancements:
- The guide was brought up to date with Gwyddion 2.7.
- The coverage is now almost 100%; only a few obscure features remain underrepresented.
- The introductory part was extended. GNU sed is now required to build the guide from DocBook sources.
<<lessThis project is Free and Open Source software, covered by GNU General Public License. It aims to provide multiplatform modular program for 2D data analysis that could be easily extended by modules and plug-ins. Moreover, the status of free software enables to provide source codes to developers and users, which makes the further program improvement easier.
Gwyddion works on GNU/Linux, Microsoft Windows, Mac OS X and FreeBSD operating systems on common architectures, all systems can be used also for developement. Its graphical user interface is based on Gtk+ and port to other systems supported by Gtk+ should be possible.
Enhancements:
- The guide was brought up to date with Gwyddion 2.7.
- The coverage is now almost 100%; only a few obscure features remain underrepresented.
- The introductory part was extended. GNU sed is now required to build the guide from DocBook sources.
Download (3.2MB)
Added: 2007-07-02 License: GPL (GNU General Public License) Price:
859 downloads
Secleted [ 0 ] software to compare
- Page: 1 of 1
- 1
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above introductory 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