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.
Softinex must be viewed as a collection of expertise around visualization and data analysis accumulated for long around HEP experiments (and now astronomical instruments) and put in code that must be seen as some kind of "thesaurus of expertise". We put this thesaurus on the web as an "ex gratia" action, in case it may be usefull to others working (wanting to work!) with similar technologies (C/C++ based apps working locally and exploiting local resources of devices "close to people" as laptops and iOS, Android devices).
In particular what is found here must NOT been seen as one or various "products" for which we seek a large amount of "clients" and for which we would have to offer a strong user support (we just do not have the infrastructure for that). Our users are in general a very limited number of people (researchers in science) who are educated concerning computing, and working in general in a "public academic" context. Softinex is intended to help these people in running their experiments (or instruments) to do physics in order for them to help increase... the knowledge of humankind about nature.
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)
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