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 (yamwifr.zip) depuis le site maxima-french-doc.fr
2. Dézipper le fichier et placez le dossier yamwifr 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 yamfr soit accessible :
      accès en lecture/execution sur tout le dossier yamwifr
      (par exemple sudo chmod -R a+rx /var/www/html/yamwifr)
      et accès complet sur le sous-dossier tmp
      (par exemple sudo chmod -R a+rwx /var/www/html/yamwifr/tmp)
5. Accédez à l'interface via votre navigateur en entrant l'URL correspondante :
http://localhost/yamwifr/
(à adapter en fonction de l'installation).

IMPORTANT : Nouveauté pour la version 3.0
2) aller dans ce dossier décomprimé
cd /yamwifr

VERIFIER que le fichier de ce dossier mac2pdf_cli.py soit bien exécutable
chmod +x mac2pdf_cli.py

ADAPTER LA LIGNE 24 DU FICHIER generer_pdf.php au chemin
du fichier mac2pdf_cli.py :
$pythonScript = '/home/mgosse2/yamwifr2/mac2pdf_cli.py';

* Utilisation
- Ouvrez votre navigateur et accédez à l'URL où yamwifr 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).
Il est conseillé de supprimer les fichiers précédents.

* 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 neccessary 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.

Version 3.8
Ajout des boutons Importer fichier wxm et Importer fichier wxmx
Ajout du lien vers la bibliothèque jszip (décompression d'un wxmx)
La génération de pdf accepte $ ou ; en fin de commande
Une commande sur plusieurs lignes est reconnue et interprétée correctement
La génération pdf accepte toute les commandes graphiques wxplot ou wxdraw
tout comme l'éditeur (un script enlève les wx devant, qui sont spécifiques à wxmaxima)

Version 5.1
Ajout des assistants graphiques 

Version 5.2
Suppression de quelques mots interdits (concat et print)

Version 5.4
Ajout de l'historique des 10 dernières sessions
La commande print de maxima provoque un bug d'affichage.
La commande sconcat lui est substituée automatiquement

