Difference between revisions of "Review:Mastrave"

From Free Software Directory
Jump to: navigation, search
m (<replacetext_editsummary>)
 
(25 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
{{Entry2
 
{{Entry2
 +
|Finished review=yes
 
|Name=Mastrave
 
|Name=Mastrave
 
|Short description=GNU GPLv3-covered library for effective semantic array programming. It is as compatible as possible with both GNU Octave and MATLAB computing environments, offering general purpose, portable and freely available features for the scientific community.
 
|Short description=GNU GPLv3-covered library for effective semantic array programming. It is as compatible as possible with both GNU Octave and MATLAB computing environments, offering general purpose, portable and freely available features for the scientific community.
|Full description=Mastrave is a free software library written to perform vectorized scientific computing and to be as compatible as possible with both GNU Octave and Matlab computing frameworks, offering general purpose, portable and freely available features for the scientific community.  Mastrave is mostly oriented to ease complex modeling tasks such as those typically needed within environmental models, even when involving irregular and heterogeneous data series.
+
|Full description=&nbsp;
  
 +
Mastrave is a [http://www.fsf.org/licensing/essays/free-sw.html free software] library written to perform vectorized scientific computing and to be as compatible as possible with both [http://www.gnu.org/software/octave/ GNU Octave] and [http://www.mathworks.it/help/techdoc/ref/funcalpha.html Matlab] computing frameworks, offering general purpose, portable and freely available features for the scientific community.  Mastrave is mostly oriented to ease complex modeling tasks such as those typically needed within environmental models, even when involving irregular and heterogeneous data series.
  
==Semantic array programming==
+
=====Semantic array programming=====
  
The Mastrave project attempts to allow a more effective, quick interoperability between GNU Octave and Matlab users by using a reasonably well documented wrap around the main incompatibilities between those computing environments and by promoting a reasonably general idiom based on their common, stable syntagms.  It also promotes the systematic adoption of data-transformation abstractions and lightweight semantic constraints to enable concise and reliable implementations of models following the paradigm of semantic array programming.
+
The Mastrave project attempts to allow a more effective, quick interoperability between GNU Octave and Matlab users by using a reasonably well documented wrap around the main incompatibilities between those computing environments and by promoting a reasonably general idiom based on their common, stable syntagms.  It also promotes the systematic adoption of data-transformation abstractions and lightweight [http://cvs.savannah.gnu.org/viewvc/*checkout*/mastrave/doc/time_series_03-SemanticConstraints_06c.svg?root=mastrave semantic constraints] to enable concise and reliable implementations of models following the paradigm of semantic array programming.
  
There are a couple of underlying ideas: library design is language design and vice versa (Bell labs); language notation is definitely a "tool of thought" (Iverson), in the sense that there is a feedback between programming/mathematical notation and the ability to think new scientific insights.  And perhaps ethic ones.
+
There are a couple of underlying ideas: library design is language design and vice versa (Bell labs); language notation is definitely a "tool of thought" ([http://www.dcs.gla.ac.uk/~wpc/grcs/a1979-iverson.pdf K. Iverson]), in the sense that there is a feedback between programming/mathematical notation and the ability to think new scientific insights.  And perhaps ethic ones.
  
 +
=====Science and society=====
  
==Science and society==
+
Mastrave is free software, which is software [http://www.gnu.org/licenses/gpl-faq.html respecting your freedom].  As many other free scientific software packages, it is offered to the scientific community to also promote the development of a free society more concerned about cooperation rather than competitiveness, heading toward knowledge and culture freedom.
  
Mastrave is free software, which is software respecting your freedom.  As many other free scientific softwares, it is offered to the scientific community to also promote the development of a free society more concerned about cooperation rather than competitiveness, heading toward knowledge and culture freedom.
+
Such a vision implies the possibility for motivated individuals to freely access, review and contribute even to the cutting-edge academic culture.  This possibility relies on the development of tools and methodologies helping to overcome economic, organizational and institutional barriers (i.e. knowledge oligopolies) while systematically promoting [http://www.computer.org/portal/web/csdl/abs/html/mags/cs/2010/05/mcs2010050008.htm reproducible research].  This is a long-term goal to which the free software paradigm can and has been able to actively cooperate.
 
 
Such a vision implies the possibility for motivated individuals to freely access, review and contribute even to the cutting-edge academic culture.  This possibility relies on the development of tools and methodologies helping to overcome economic, organizational and institutional barriers (i.e. knowledge oligopolies) while systematically promoting reproducible research.  This is a long-term goal to which the free software paradigm can and has been able to actively cooperate.
 
 
|Homepage URL=http://mastrave.org
 
|Homepage URL=http://mastrave.org
 
|Is GNU=No
 
|Is GNU=No
Line 22: Line 23:
 
|VCS checkout command=cvs -z3 -d":pserver:anonymous@cvs.savannah.nongnu.org:/sources/mastrave" co mastrave
 
|VCS checkout command=cvs -z3 -d":pserver:anonymous@cvs.savannah.nongnu.org:/sources/mastrave" co mastrave
 
|Computer languages=Matlab/GNU Octave,Bash script,C++,Prolog,PHP,xslt,
 
|Computer languages=Matlab/GNU Octave,Bash script,C++,Prolog,PHP,xslt,
|Documentation note=The core of Mastrave is based on the essential intersection of the GNU Octave and Matlab languages. As a consequence, each module/function of the Mastrave library can be documented directly within the source code. The documentation can be accessed - as with each GNU Octave/Matlab function - by typing
+
|Documentation note=&nbsp;
 +
=====Documentation and Mastrave coding standard=====
 +
<p id="Mastrave_Coding_Standard">&nbsp;</p>The core of Mastrave is based on the essential intersection of the GNU Octave and Matlab languages. As a consequence, each module/function of the Mastrave library can be documented directly within the source code, using comments. The documentation can be accessed - as with each GNU Octave/Matlab function - by typing
 +
 
 +
 
 +
[http://www.gnu.org/software/octave/doc/interpreter/Getting-Help.html help] <span style="color:blue"><function-name></span>
  
help <function-name>
 
  
 
within either GNU Octave or Matlab computing environment.
 
within either GNU Octave or Matlab computing environment.
According to ohloh.net, "Across all Matlab projects on Ohloh, 23% of all source code lines are comments. For Mastrave, this figure is 52%" [source: http://www.ohloh.net/p/mastrave/factoids/10257030]
+
According to ohloh.net, "Across all Matlab projects on Ohloh, 23% of all source code lines are comments. For Mastrave, this figure is 52%" [source: http://www.ohloh.net/p/mastrave/factoids/]
  
Each module/function of Mastrave follows a fixed semantic documentation template for support users in ergonomically accessing relevant information.
+
Each GNU Octave/Matlab function of Mastrave follows a fixed semantic documentation template for supporting users in ergonomically accessing relevant information:
  
The following documentation template is typical of the Mastrave project:
+
<div style="height: 75em"><div style="min-width:500px;position:absolute">
% Copyright (C) year author(s)
+
Copyright (C) year author(s)
%
+
% This file is part of Mastrave.
+
This file is part of Mastrave.
% [ ... GNU GPLv3+ license notice ... ]
+
<span style="color:grey">[ ... GNU GPLv3+ license notice ... ]</span>
%
+
% ---------------------------------------------------------------------------
+
----------------------------------------------------
%
+
% [<outputs> ...] = <funname>(  
+
[ <span style="color:brown"><output<sub>1</sub>></span>, ... <span style="color:brown"><output<sub>m</sub>></span> ] = ...
<input_1> ,
+
    <span style="color:blue"><function-name></span>( <span style="color:brown"><input<sub>1</sub>></span>                   ,
<input_2> = <default_2> ,
+
                    <span style="color:brown"><input<sub>2</sub>></span> = <span style="color:green"><default-value<sub>2</sub>></span> ,
% ... )
+
                    ...                          
%
+
                    <span style="color:brown"><input<sub>n</sub>></span> = <span style="color:green"><default-value<sub>n</sub>></span> )
% Few (up to some tens) lines of human readable text describing the function [...]
+
<span style="color:grey">[ ... Few (up to some tens) lines of human </span>
%
+
<span style="color:grey">      readable text describing the function ... ]</span>
% (optional) References:
+
% [Bibliographic scientific references]
+
%
+
%
+
<span style="color:grey">(optional)</span> References:
%
+
<span style="color:grey">[ ... Bibliographic scientific references </span>
% Input arguments:
+
<span style="color:grey">      (see for example @[http://cvs.savannah.gnu.org/viewvc/*checkout*/mastrave/mastrave/src/mtv_m/get_reference_data.m get_reference_data]) ... ]</span>
%
+
% <input_1> ::<constraint_1>::
+
% type constraint description
+
%
+
Input arguments:
% [...]
+
% <input_n> ::<constraint_n>::
+
<span style="color:brown"><input<sub>1</sub>></span>    <span style="color:brown">'''::<constraint<sub>1</sub>>::'''</span>
% type constraint description
+
              Description of the first input argument, its
%
+
              [http://cvs.savannah.gnu.org/viewvc/*checkout*/mastrave/mastrave/src/mtv_m/check_is.m semantic constraint(s)] and (if the input
%
+
              argument is optional) its default value
%
+
              <span style="color:green"><default-value<sub>1</sub>></span>.
% Examples of usage:
+
%
+
<span style="color:grey">[...]</span>
% [ ... short set of mostly independent lines of code to illustrate the function main features ...]
+
%
+
<span style="color:brown"><input<sub>n</sub>></span>    <span style="color:brown">'''::<constraint<sub>n</sub>>::'''</span>
%
+
              Description of the ''n''-th input argument, its
%
+
              [http://cvs.savannah.gnu.org/viewvc/*checkout*/mastrave/mastrave/src/mtv_m/check_is.m semantic constraint(s)] and (if the input
% (optional) Memory requirements:
+
              argument is optional) its default value
%
+
              <span style="color:green"><default-value<sub>n</sub>></span>.
%
+
%
+
% See also:
+
% [ ... related Mastrave functions ... ]
+
Examples of usage:
%
+
%
+
<span style="color:grey">[ ... Short set of mostly independent lines of code to </span>
%
+
<span style="color:grey">      illustrate the function's main features ... ]</span>
% Keywords:
+
% [ ... set of meaningful keyword to ease the function discovery ... ]
+
%
+
%
+
<span style="color:grey">(optional)</span> Memory requirements:
%
+
<span style="color:grey">[ ... In case of non trivial algorithms for which memory </span>
% Version: <#a>.<#b>.<#c>
+
<span style="color:grey">      issues can be expected to apply in particular </span>
 +
<span style="color:grey">      usages, an analysis of the memory requirements </span>
 +
<span style="color:grey">      is provided using the [http://en.wikipedia.org/wiki/Big_O_notation big O notation] ... ]</span>
 +
 +
 +
 +
See also:
 +
<span style="color:grey">[ ... Related Mastrave functions ... ]</span>
 +
 +
 +
 +
Keywords:
 +
<span style="color:grey">[ ... Set of meaningful keyword to ease the </span>
 +
<span style="color:grey">      function discovery ... ]</span>
 +
 +
 +
 +
Version: <span style="color:grey"><#a>.<#b>.<#c> (e.g. Version: 0.3.2)</span>
  
 +
 +
</div></div>
 
|Version status=alpha
 
|Version status=alpha
 
}}
 
}}
Line 105: Line 129:
 
|Real name=Daniele de Rigo
 
|Real name=Daniele de Rigo
 
|Role=Project leader
 
|Role=Project leader
|Email=derigo@maieutike.org
+
|Email=Contact the [https://savannah.nongnu.org/users/mastro author] via  [https://savannah.nongnu.org/sendmessage.php?touser=58280 Savannah] (authentication  needed)
 
}}
 
}}
 
{{Resource2
 
{{Resource2
Line 149: Line 173:
 
|Version-control=cvs
 
|Version-control=cvs
 
}}
 
}}
{{Software prerequisite
+
{{Software prerequisite2
 
|Prerequisite kind=Required to use
 
|Prerequisite kind=Required to use
 
|Prerequisite description=GNU Octave version 3.2.x (or Matlab version 7)
 
|Prerequisite description=GNU Octave version 3.2.x (or Matlab version 7)
 
}}
 
}}
{{Software prerequisite
+
{{Software prerequisite2
 +
|Prerequisite kind=Required to use
 +
|Prerequisite description=GDAL version 1.6.3
 +
}}
 +
{{Software prerequisite2
 
|Prerequisite kind=Required to use
 
|Prerequisite kind=Required to use
 
|Prerequisite description=BASH shell version 4.x
 
|Prerequisite description=BASH shell version 4.x
 
}}
 
}}
{{Software prerequisite
+
{{Software prerequisite2
 
|Prerequisite kind=Required to use
 
|Prerequisite kind=Required to use
 
|Prerequisite description=GNU Coreutils version 7.x
 
|Prerequisite description=GNU Coreutils version 7.x
 
}}
 
}}
{{Software prerequisite
+
{{Software prerequisite2
 
|Prerequisite kind=Required to use
 
|Prerequisite kind=Required to use
 
|Prerequisite description=GNU Sed version 4.2.x
 
|Prerequisite description=GNU Sed version 4.2.x
 
}}
 
}}
{{Software prerequisite
+
{{Software prerequisite2
 +
|Prerequisite kind=Required to use
 +
|Prerequisite description=GNU Grep version 2.5.x
 +
}}
 +
{{Software prerequisite2
 +
|Prerequisite kind=Required to use
 +
|Prerequisite description=GNU Wget version 1.12
 +
}}
 +
{{Software prerequisite2
 
|Prerequisite kind=Weak prerequisite
 
|Prerequisite kind=Weak prerequisite
 
|Prerequisite description=GNU Compiler Collection version 4.4.x
 
|Prerequisite description=GNU Compiler Collection version 4.4.x
 
}}
 
}}
{{Software prerequisite
+
{{Software prerequisite2
 
|Prerequisite kind=Weak prerequisite
 
|Prerequisite kind=Weak prerequisite
 
|Prerequisite description=php version 5 (only development branch)
 
|Prerequisite description=php version 5 (only development branch)
 
}}
 
}}
{{Software prerequisite
+
{{Software prerequisite2
 
|Prerequisite kind=Weak prerequisite
 
|Prerequisite kind=Weak prerequisite
 
|Prerequisite description=GNU Prolog version 1.3.x or SWI-Prolog version 5.8.x (only development branch)
 
|Prerequisite description=GNU Prolog version 1.3.x or SWI-Prolog version 5.8.x (only development branch)
 
}}
 
}}

Latest revision as of 15:02, 20 May 2012


Thank you for helping to improve the Free Software Directory!

This page has been reviewed. The admin who processed this submission may have left a comment at the top or bottom of this page.

Name Mastrave
Short description GNU GPLv3-covered library for effective semantic array programming. It is as compatible as possible with both GNU Octave and MATLAB computing environments, offering general purpose, portable and freely available features for the scientific community.
Full description  

Mastrave is a free software library written to perform vectorized scientific computing and to be as compatible as possible with both GNU Octave and Matlab computing frameworks, offering general purpose, portable and freely available features for the scientific community. Mastrave is mostly oriented to ease complex modeling tasks such as those typically needed within environmental models, even when involving irregular and heterogeneous data series.

Semantic array programming

The Mastrave project attempts to allow a more effective, quick interoperability between GNU Octave and Matlab users by using a reasonably well documented wrap around the main incompatibilities between those computing environments and by promoting a reasonably general idiom based on their common, stable syntagms. It also promotes the systematic adoption of data-transformation abstractions and lightweight semantic constraints to enable concise and reliable implementations of models following the paradigm of semantic array programming.

There are a couple of underlying ideas: library design is language design and vice versa (Bell labs); language notation is definitely a "tool of thought" (K. Iverson), in the sense that there is a feedback between programming/mathematical notation and the ability to think new scientific insights. And perhaps ethic ones.

Science and society

Mastrave is free software, which is software respecting your freedom. As many other free scientific software packages, it is offered to the scientific community to also promote the development of a free society more concerned about cooperation rather than competitiveness, heading toward knowledge and culture freedom.

Such a vision implies the possibility for motivated individuals to freely access, review and contribute even to the cutting-edge academic culture. This possibility relies on the development of tools and methodologies helping to overcome economic, organizational and institutional barriers (i.e. knowledge oligopolies) while systematically promoting reproducible research. This is a long-term goal to which the free software paradigm can and has been able to actively cooperate.

Homepage URL http://mastrave.org
Is GNU No
GNU package name
User level advanced
Component programs
VCS checkout command cvs -z3 -d":pserver:anonymous@cvs.savannah.nongnu.org:/sources/mastrave" co mastrave
Computer languages Matlab/GNU Octave,Bash script,C++,Prolog,PHP,xslt,
Documentation note  
Documentation and Mastrave coding standard

 

The core of Mastrave is based on the essential intersection of the GNU Octave and Matlab languages. As a consequence, each module/function of the Mastrave library can be documented directly within the source code, using comments. The documentation can be accessed - as with each GNU Octave/Matlab function - by typing


help <function-name>


within either GNU Octave or Matlab computing environment. According to ohloh.net, "Across all Matlab projects on Ohloh, 23% of all source code lines are comments. For Mastrave, this figure is 52%" [source: http://www.ohloh.net/p/mastrave/factoids/]

Each GNU Octave/Matlab function of Mastrave follows a fixed semantic documentation template for supporting users in ergonomically accessing relevant information:

Copyright (C) year author(s)

This file is part of Mastrave.
[ ... GNU GPLv3+ license notice ... ]

----------------------------------------------------

[ <output1>, ... <outputm> ] = ...
   <function-name>( <input1>                    ,
                    <input2> = <default-value2> ,
                    ...                           
                    <inputn> = <default-valuen> )
[ ... Few (up to some tens) lines of human  
      readable text describing the function ... ]



(optional) References:
[ ... Bibliographic scientific references 
      (see for example @get_reference_data) ... ]



Input arguments:

<input1>     ::<constraint1>::
             Description of the first input argument, its
             semantic constraint(s) and (if the input
             argument is optional) its default value
             <default-value1>.

[...]

<inputn>     ::<constraintn>::
             Description of the n-th input argument, its
             semantic constraint(s) and (if the input
             argument is optional) its default value
             <default-valuen>.



Examples of usage:

[ ... Short set of mostly independent lines of code to 
      illustrate the function's main features ... ]



(optional) Memory requirements:
[ ... In case of non trivial algorithms for which memory 
      issues can be expected to apply in particular 
      usages, an analysis of the memory requirements 
      is provided using the big O notation ... ]



See also:
[ ... Related Mastrave functions ... ]



Keywords:
[ ... Set of meaningful keyword to ease the 
      function discovery ... ]



Version: <#a>.<#b>.<#c> (e.g. Version: 0.3.2)


Paid support
Microblog
IRC help
IRC general
IRC development
Related projects
Keywords
Version identifier
Version date
Version status alpha
Version download
Version comment
Finished review yes



License: GNU GPLv3+

License note: For PHP files:

Additional permission under GNU GPL version 3 section 7

  If you modify this Program, or any covered work, by linking or combining
  it with PHP (or a modified version of PHP), containing parts covered by
  the terms of PHP's license, the licensors of this Program grant you
  additional permission to convey the resulting work. Corresponding
  Source for a non-source form of such a combination shall include the
  source code for the parts of PHP used as well as that of the covered
  work.





Real name: Daniele de Rigo

Role: Project leader

Email: Contact the author via Savannah (authentication needed)


Resource audience: Users (e.g. environmental scientists, computational science modelers,...)

Resource kind: Support

Resource URL: https://savannah.nongnu.org/support/?func=additem&group=mastrave

Resource audience: Expert users, Developers of derived packages

Resource kind: VCS Repository Webview

Resource URL: http://cvs.savannah.gnu.org/viewvc/mastrave/?root=mastrave

Resource audience: Users

Resource kind: Homepage

Resource URL: http://mastrave.org

Resource audience: Users, GNU/Linux distribution maintainers

Resource kind: Download

Resource URL: http://mastrave.org/download.html

Resource audience: Expert users, Developers of derived packages

Resource kind: General Subscribe

Resource URL: https://savannah.nongnu.org/account/register.php

Resource audience: Users (e.g. environmental scientists, computational science modelers,...)

Resource kind: Forum

Resource URL: http://identi.ca/group/mastrave

Resource audience: Scientists, Research teams interested in the Mastrave research program

Resource kind: Support

Resource URL: http://mastrave.org/research.html

Audio:
Biology:
Business:
Chat:
Database:
Documentation-tool:
Editor:
Education:
Email:
Game:
Geography:
Graphics:
Hobbies:
Html-editor:
Interface: command-line, library
Internet-application:
Library:
Live-communications:
Localization:
Mathematics: statistics
Network-hookup:
Printing:
Program-build-automation:
Programming-language:
Protocol:
Science: artificial-intelligence, engineering
Security:
Software-development:
System-administration:
Text-creation:
Use: library, mathematics, science
Version-control: cvs
Video:
Web-authoring:
Works-with:
Works-with-format:


Prerequisite kind: Required to use

Prerequisite description: GNU Octave version 3.2.x (or Matlab version 7)


Prerequisite kind: Required to use

Prerequisite description: GDAL version 1.6.3


Prerequisite kind: Required to use

Prerequisite description: BASH shell version 4.x


Prerequisite kind: Required to use

Prerequisite description: GNU Coreutils version 7.x


Prerequisite kind: Required to use

Prerequisite description: GNU Sed version 4.2.x


Prerequisite kind: Required to use

Prerequisite description: GNU Grep version 2.5.x


Prerequisite kind: Required to use

Prerequisite description: GNU Wget version 1.12


Prerequisite kind: Weak prerequisite

Prerequisite description: GNU Compiler Collection version 4.4.x


Prerequisite kind: Weak prerequisite

Prerequisite description: php version 5 (only development branch)


Prerequisite kind: Weak prerequisite

Prerequisite description: GNU Prolog version 1.3.x or SWI-Prolog version 5.8.x (only development branch)



Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the page “GNU Free Documentation License”.

The copyright and license notices on this page only apply to the text on this page. Any software or copyright-licenses or other similar notices described in this text has its own copyright notice and license, which can usually be found in the distribution or license text itself.