Maxima Online 2 is a web interface for the Maxima software.  
It allows you to run Maxima commands online and display the results  
on the generated HTML page, using several output formats.

Maxima Online 2 is based on the code of the Yamwi software,  
written by Leo Butler (based on the README_en by Mario Rodríguez Riotorto):  
https://github.com/leo-butler/yamwi/  
EMAIL: leo.butler@university.ca (replace “university” with “UManitoba”).

Website for Maxima Online 2: maxima-french-doc.fr  
Contact: Michel Gosse – michel.gosse@free.fr  

Configuration  
* Linux with Apache and PHP (>5) to provide a working web server  
* Maxima software  
* dvips (from LaTeX)  
* texi2dvi (from texinfo)  
* convert (from ImageMagick)  
* Gnuplot  

Features  
- Simple and intuitive interface to interact with Maxima.  
- Execution of Maxima commands directly from the browser.  
- Display of results as text or graphics.  
- Possibility to save and share work sessions.  

Installation  
1. Download the Maxima Online 2 files (mol2fr.zip) from the maxima-french-doc.fr website.  
2. Unzip the file and place the mol2fr folder and all its subfolders and files in the web 
server directory (for example, /var/www/html/).  
3. Make sure that Maxima is installed and accessible from the server (maxima command).  
   The path to Maxima is defined in the file yamwi-conf.php.  
4. Configure the necessary permissions so that mol2fr is accessible:  
   read/execute access on the whole mol2fr folder  
   (for example: sudo chmod -R a+rx /var/www/html/mol2fr)  
   and full access on the tmp subfolder  
   (for example: sudo chmod -R a+rwx /var/www/html/mol2fr/tmp).  
5. Access the interface via your browser by entering the corresponding URL:  
   http://localhost/mol2fr/  
   (adapt as needed according to your installation).  

Usage  
- Open your browser and go to the URL where mol2fr is installed.  
- Use the text area to enter your Maxima commands.  
- Click “Run” to see the results.  
- You can save your sessions for later use.  

Software updates  
If an update is available, simply click on the  
“Check for updates” link and download the files of the new version.  
These files only need to be copied into the Maxima Online 2 folder  
on the web server (after checking file permissions).  
They complete or replace the existing files.  

Examples  
Here are some example commands you can try:  
1. Integration: integrate(x^2, x);  
2. Solving equations: solve(x^2 - 4 = 0, x);  
3. Plotting graphs: plot2d(sin(x), [x, -%pi, %pi]);  

License  
Yamwi is distributed under the GPL license. For more information, see the LICENSE file.  
The same applies to Maxima Online 2.  

Contact  
For any questions or suggestions about Yamwi, you can contact the author at:  
leo.butler@university.ca (replace “university” with “UManitoba”).  

For Maxima Online 2, the contact is: michel.gosse@free.fr  

The INSTALL file comes from the Yamwi installation script  
and can be used with some 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

*************************************************************

Technical add-ons (from the core of Yamwi software 

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.

