# Interactive labs (Java applet)

This page discusses and organizes the use of Java applets as a framework for the creation of Interactive labs for topics in Mathematics and the Physical Sciences.

## Technical issues

The use of Java applets as a framework for interactive learning resources aims to use the open technology of integrating them within a web page, as well as the wide availability of "plugins" for all major web browser to execute the Java code. The most natural subject for these resources are graphical simulations and "laboratory" courses in Mathematics and the Physical Sciences. To keep the actual labs and tools free and open, the source code will have to be licensed under the GNU General Public License.
The Java applet is run on the learner's computer and needs to be downloaded within the Wikiversity page that contains the course description or instructions. It therefore will be packaged in a single JAR file. The HTML read by the browser will contain an "Applet" HTML tag (or "Object") per applet on that page in order to download the JAR file and to start the applet execution. The HTML tags must be generated by the MediaWiki software, when the (yet to be defined) wiki applet "reference" is added to a Wikiversity page.
The JAR file contains precompiled class files and other support files. To keep the learner's computer safe from unwanted or detrimental software, the source for the class files need to be open to audits and the creation and upload of JAR files need to follow a trustworthy process. Additionally, the applets should be regarded as "untrusted" by the web browser, so that the restrictions of the Java sandbox are enforced.
> Comments

### Projects

* Provide an open source development area (in progress)
* Create JAR support in a test MediaWiki installation (in planning stage)
* Ask for comment and feedback from Wikiversity and MediaWiki communities
* Integrate applet support in official MediaWiki release
* Create framework and labs
(Add any other projects, here)

## Proposal for the management of applets

Both for the sake of free cooperation and also security uploading and enabling pre-compiled jars with unknown content is not reasonable. The conclusion was made that applets need to be compiled on the server side, and the source code could be a subject of public code review.
One of the recent projects that fully implements exactly these policies and actually builds Free encyclopedia with Java applets enabled is Ultrastudio.org. The licensing of the server side code is not yet obvious but both applets and content are under various Free licenses. This project is still not particularly big and it is not clear how successful it will be. The project is using applets from the Wikiversity project, described below (see , for instance).

## Framework and development of labs

Since the source for all source code must be licensed under GPL, available to the public, and the development of all code should be (in principle) open to all volunteers interested in this project, a dedicated SourceForge project was initiated (see external references).
A general framework will be constructed to provide a common infrastructure (e.g. passing parameters from the wiki, like the language used in the lesson), and a set of tools and graphical "widgets" to ease the creation of a lab. The ultimate goal of this framework would be a simple, modular set of "parts" that can easily be assembled, even by volunteers with only a basic knowledge of Java.