Maxima Online 2 est une interface web au logiciel Maxima. 
Elle permet d'exécuter des commandes Maxima en ligne, et d'en obtenir les résultats 
sur la page html générée, et cela en plusieurs formats de sortie.

Maxima Online 2 est basée sur le code du logiciel Yamwi, 
écrit par Leo Butler (basé sur README_en de Mario Rodríguez Riotorto)
https://github.com/leo-butler/yamwi/
EMAIL: leo.butler@university.ca (university = UManitoba)

Site pour Maxima Online 2 : maxima-french-doc.fr
Contact : Michel Gosse : michel.gosse@free.fr

Configuration
* Linux avec Apache et php (>5) pour avoir un serveur web fonctionnel
* le logiciel Maxima
* dvips (from LaTeX)
* texi2dvi (from texinfo)
* convert (from ImageMagick)
* Gnuplot

* Fonctionnalités
- Interface simple et intuitive pour interagir avec Maxima.
- Exécution de commandes Maxima directement depuis le navigateur.
- Affichage des résultats sous forme de texte ou de graphiques.
- Possibilité de sauvegarder et de partager des sessions de travail.

* Installation
1. Téléchargez les fichiers de Maxima Online 2 (mol2fr.zip) depuis le site maxima-french-doc.fr
2. Dézipper le fichier et placez le dossier mol2fr ainsi que tous ses sous dossiers et fichiers dans le répertoire du serveur web (par exemple, /var/www/html/).
3. Assurez-vous que Maxima est installé et accessible depuis le serveur (commande maxima)
le chemin vers Maxima est défini dans le fichier yamwi-conf.php
4. Configurez les permissions nécessaires pour que mol2fr soit accessible :
      accès en lecture/execution sur tout le dossier mol2fr
      (par exemple sudo chmod -R a+rx /var/www/html/mol2fr)
      et accès complet sur le sous-dossier tmp
      (par exemple sudo chmod -R a+rwx /var/www/html/mol2fr/tmp)
5. Accédez à l'interface via votre navigateur en entrant l'URL correspondante :
http://localhost/mol2fr/
(à adapter en fonction de l'installation).

* Utilisation
- Ouvrez votre navigateur et accédez à l'URL où mol2fr est installé.
- Utilisez la zone de texte pour entrer vos commandes Maxima.
- Cliquez sur "Exécuter" pour voir les résultats.
- Vous pouvez sauvegarder vos sessions pour une utilisation ultérieure.

* Mises à jour du logiciel
Si une mise à jour est disponible, il suffit de cliquer sur le lien 
Vérifier les mises à jour
et de télécharger les fichiers de la nouvelle version.
Ces fichiers sont simplement à copier dans le dossier de Maxima Online 2
sur le serveur web (en vérifiant les droits sur ces fichiers).
Ils complètent ou remplacent les fichiers existants.

* Exemples
Voici quelques exemples de commandes que vous pouvez essayer :
1. Intégration : integrate(x^2, x);
2. Résolution d'équations : solve(x^2 - 4 = 0, x);
3. Tracé de graphiques : plot2d(sin(x), [x, -%pi, %pi]);

* Licence
Yamwi est distribué sous licence GPL. Pour plus d'informations, consultez le fichier LICENSE.
Il en est de même pour Maxima Online 2

* Contact
Pour toute question ou suggestion sur Yamwi, vous pouvez contacter l'auteur de Yamwi 
à l'adresse suivante :
leo.butler@university.ca (remplacez university par UManitoba).
Pour Maxima Online 2, le contact est michel.gosse@free.fr


Le fichier INSTALL provient du script d'installation de Yamwi et peut
être utilisé avec une adaptation

 Execute the =INSTALL= script; it sets up directories and files with
   the neccesary permissions. It also creates temporary folder =tmp=,
   where working files will be placed:
   #+begin_src shell :exports code
   sh yamwi/INSTALL
   #+end_src

Compléments techniques (issus du coeur du logiciel Yamwi)

Near the beginning of file =yamwi.php=, there is a configuration section:

- =$mode= ::  0, 1, 2, 3 or 4. When 0, Yamwi output is rendered in ASCII Art style;
    when 1, results are rendered in binary files containing TeX output (be sure
    programs texi2dvi, dvips and convert are installed); when 2, output is 
    rendered in enhanced ASCII-Art style, which is easier to read than mode 0;
    when 3, output is returned as a syntactical Maxima expression; when 4, 
    results are based on the nice looking MathJax (http://www.mathjax.org)
    system. Defaults to 2. Response times are shorter in ASCII Art modes.

- =$max_file_time= ::  Yamwi creates some files which are stored in folder
    'tmp'. Every time a user asks for a calculation, Yamwi removes those
    files older, in minutes, than the quantitity indicated by variable 
    '$max_inactive_time', which defaults to 1 minute.

- =$max_process_time= ::  maximum execution time allowed for every Maxima
    process. Default value is 120 sec.

- =$max_num_processes= ::  maximum number of Maxima processes simultaneously
     running on the server. Default value is 30.

* User Packages
Yamwi gives access to all standard Maxima packages. Custom packages can be placed in the =packages=. The file extension should be =.mac= if the package is written in Maxima code, or =.lisp= if it is written in Common Lisp. Yamwi user can =load=
these packages. See the help file =help_en.html=.

* Security
Take care when using this program. To prevent server damages, some
barriers have been designed:

- There is a list of so called *dangerous words*, which prevents the execution of user code when one of 
these terms is detected in the input. See the global variable =$dangerous_words=.
- The number of running Maxima processes can be limited. See the configuration variable =$max_num_processes=.
- The execution time of Maxima processes can be limited. See the configuration variable =$max_process_time=.

Even with these filters, Yamwi does not guarantee 100% server
security.

* License
This project is distributed under the terms of the GPL (General Public
License). For more information, read file LICENSE.

