Introduction

Softinex is the portal for applications developed by using the inlib and exlib libraries.

See the per lib and application web pages in the list at the left.

Software Least Action Principle

The icon represents the Maupertuis, Fermat or Least Action principle. The least action principle is what guided us in our choices for doing software to do physics: to build an application from nothing, we go straight at the essential by choosing simplest solutions and tools and then avoid all what is not needed or unecessarily complicated. The least action principle does not mean that we do... nothing! but that we do things by minimizing the number of lines of code involved, knowing that we have various constraints to fulfil, as the portabibilty and the efficiency (obviously). It does not mean also that we attempt to rewrite everything. We rely on a lot of "externals", but we choose them carefully by checking that they address properly one particular problem at a time in the same spirit.

Following our "software least action principle" (the... SLAP!) we have adopted C++ as a programming language. Operating systems being done in C, it is natural to "stay close" to C, it helps a lot. But experience shows that for big software we need object orientation: encapsulation, namespace, class, inheritance and virtuality, if used properly, help a lot to organize. Due to its large availability we have adopted C++, but we are definitely not "C++ extremists" and avoid to jump to too "compact code" that poison the readabilty. As much as possible we try to code "header only"; experience shows that it simplifies a lot... everything. We then avoid languages as java that induces to have to handle a third party virtual machine between the application and the machine; it complicates. In the same spirit we target the native processors and native operating systems and don't have as a primary target virtual machines; also, it complicates (but we use anyway virtual machines to do some port and test the code). In the same spirit we use bash shell scripts to build applications: make, GNUmake, cmake, scons, ant, maeven, Eclipse, Xcode, VisualStudio, etc..., all these "tools" do not really permit to "pass at once" everywhere, and at some point finish to be more in the way if seeking the portability. In the same spirit we also get rid of, for the GUI, various things as Xt/Motif, gtk, win32, Qt, Cocoa, UIKit, etc... (depsite that we have a strong experience with all these), we prefer a "unified graphics approach" through GL-ES; it clearly simplifies a lot! (even if it is at the price of a much less sexy look and feel).

Someone must not see the upper point of view as "against everything" but more as "tired of a lot of things"! A lot of things that finish to be in the way when seeking to do physics. As said, we have adopted a lot of "externals" (jpeg, png, zip, zlib, expat, freetype, graphviz, cfitsio, hdf5, etc...). For them, we embarque their code and do not rely on the ones that may be found on a system. It simplifies a lot an installation "from scratch", and permit also to have some guarantee that the comportement of the application is the same on all machines.

What is sure is that with our SLAP, right now, we have applications that run natively, and then effectively, on a broader choice of machines that would have been permitted with other "fundamental guiding choices", and be sure that we are very very happy with that. (See the section "development choices" for more on our guiding ideas)

License

A .license file can be found in each source distribution of a given application or library. The text is the same for all .licence files except the name of the application or library. This license authorizes the usage of our software by commercial products, but it is not the LGPL. What singularizes our license text is the "right to deprecate" paragraph. The freedom to change things according the turnover of technologies is a fundamental aspect of doing software for doing science and experimental physics in particular. If you adopt all or part of our software, we do not guarantee you a "forever support", definitely not.

                         The xxxx license

                            2011-Feb-9

                    Copyright 2010, by Guy Barrand



Introduction
============

  This license applies to all files found in this package which
  do not fall under their own explicit license.

  This license was inspired by the FreeType license, itself inspired
  by th BSD, Artistic, and IJG (Independent JPEG  Group) licenses,
  which all encourage inclusion and use of free software in commercial
  and freeware products alike. As a consequence, its main points
  are that :

    o We don't promise that this software works. However, we will be
      interested in any kind of bug reports. ('as is' distribution)

    o You can use this software for whatever you want, in parts or
      full form, without having to pay us. ('royalty-free' usage)

    o You may not pretend that you wrote this software. If you use
      it, or  only parts of it, in a program, you must acknowledge
      somewhere in your documentation that you have used the xxxx
      code. ('credits')

    o We do not guarantee a 'forever support' and a fixed, frozen
      behavior and programming interface. As this software is done
      to do science, we reserve the right to change whatever is needed
      in order to fulfill our scientific program. In particular
      we reserve the right to deprecate this software if it is no more
      relevant for our scientific activity. ('not forever' support)

  We specifically permit and encourage the inclusion of this
  software, with or without modifications, in commercial products.
  We disclaim all warranties covering xxxx and assume no liability
  related to xxxx. As a consequence of our 'not forever' support policy
  of xxxx, you are strongly recommended to keep a copy on your side of
  the code sources of the version of xxxx you are going to use.

Legal Terms
===========

0. Definitions
--------------

  'You' refers to the licensee, or person using xxxx, where 'using'
  is a generic term including compiling the project's source code as
  well as linking it to form a 'program' or 'executable'.

  This license applies to all files distributed in the original xxxx
  archive, including all source code, binaries and documentation,
  unless otherwise stated in a file in its original, unmodified form
  as distributed in the original archive.

  The xxxx is copyright (C) 2010 by Guy Barrand. All rights reserved
  except as specified below.

1. No Warranty
--------------

  xxxx is provided 'as is' without warranty of any kind, either
  express or implied, including, but not limited to, warranties of
  merchantability and fitness for a particular purpose. In no event
  will any of the authors or copyright holders be liable for any
  damages caused by the use or the inability to use xxxx.

2. Redistribution
-----------------

  This license grants a worldwide, royalty-free, perpetual and
  irrevocable right and license to use, execute, perform, compile,
  display, copy, create derivative works of, distribute and
  sublicense xxxx (in both source and object code forms) and
  derivative works thereof for any purpose, and to authorize
  others to exercise some or all of the rights granted herein,
  subject to the following conditions:

    o Redistribution of source code must retain this license file
      (xxxx.license) unaltered; any  additions, deletions or changes to
      the original files must be clearly indicated in accompanying
      documentation. The copyright notices of the unaltered, original
      files must be preserved in all copies of source files.

    o Redistribution in binary form must provide a disclaimer that
      states that the software is based in part of the work of the
      author, in the distribution documentation.

  These conditions apply to any software derived from or based on
  xxxx, not just the unmodified files. If you use our work, you must
  acknowledge us. However, no fee need be paid to us.

3. Advertising
--------------

  Neither the author and contributors nor you shall use the name
  of the other for commercial, advertising, or promotional purposes
  without specific prior written permission.

  As you have not signed this license, you are not required to
  accept it. However, as the xxxx is copyrighted material, only
  this license, or another one contracted with the author, grants
  you the right to use, distribute, and modify it. Therefore, by using,
  distributing, or modifying xxxx, you indicate that you understand
  and accept all the terms of this license.

4. Contacts
-----------

  Web pages can be found under the softinex portal at :

    http://softinex.lal.in2p3.fr