* Question logique - [ ] pour ***que*** l'expression suivante ***retourne*** true. - [ ] * Collections de programmes + randomisation + résultat ** Features - [X] Code colorization - [X] Code area just of the proper height - [X] Selection of topic based on file prefix - [X] Output dans un textarea - [ ] Why are there empty lines at the top and bottom of the text shown? - [ ] Randomization of the variable names - [ ] Randomization of the output by substitution (preprocessing) - [ ] Implement more logic in WIMS - [ ] Onsite compilation and production of the output - See .../docker-compile-and-run for preliminary steps toward using docker to compile and execute the programs in a sandbox - Next step: discuss with Bernadette to include that script (or some equivalent) in Orsay's WIMS server, and rewrite the module to use it. - References: http://askubuntu.com/questions/477551/how-can-i-use-docker-without-sudo - [ ] Support for various programming languages, based on file extension - [ ] Separate clearly the expected output from the rest of the text ** Programs - variables-assign.cpp est un peu trop long - ceux avec factorielle sont trop prévisibles sans lire le code - obfuscated / misindented programs - programes autour de la division entiere ** Substitution des variables? \text{code=\wims(replace internal resultat par \resultat)} * Choisir l'entrée pour que ... * Écrire un programme qui ... par exemple pour n=5 ... copier coller le résultat ici * Exercices existant: U1 / algo Non fonctionnels en l'état (requiers un chroot qui n'est plus fonctionnel) * Notes techniques sur WIMS ** Créer ses propres utilitaires public_html/bin/sigdigits other/bin Ces programmes sont exécutables sans restriction par n'importe quel auteur de module OEF/... Donc doivent être parfaitement sûr \text(toto=wims(exec ccc parametres ...)} ** Créer ses programmes exécutables seulement par module de confiance ** Créer un index et chercher des infos dedans: wims(lookup ... in ...) src2def peut générer de tels index (voir aussi mkindex) Il est possible qu'il existe déjà un index pour les *.data ** Compiler un module Depuis la racine du module: /opt/WIMS/other/bin/src2def Mettre le module dans /opt/WIMS/public_html/modules/devel/home/nthiery ** Compiler WIMS sudo apt-get install libgd-dev ./compile --mathjax dans bin/apache-config: - remplacer apache2 par apache2ctl - forcer confdir=/etc/apache2 - conffile=$confdir/conf-available/wims.conf mistral-/etc/apache2/conf-enabled> sudo ln -s ../conf-available/wims.conf . Still getting: http://127.0.0.1/wims/ You don't have permission to access /wims/ on this server. Se créer un compte développeur * A propos des modules WIMS existants exécutant du code ** Modules Chercher sur programmation sur le serveur *** U1/algo/progstring.fr *** ... arithmetic ** Supporte: perl, c, pascal cf. public_html/bin/c ** Infrastructure: - Un type de réponse: wims/public_html/scripts/anstype/code définit: - comment l'utilisateur rentre la réponse - comment traiter la réponse (ici exécuter le code dans un chroot) - le retour: qu'est-ce qui est affiché, note, ... Objectif: mettre à jour pour utiliser docker à la place du chroot / secure_execq Voir aussi ~/wims.log/unsecure. Passe par WIMS/src/Misc/wrap.c à un moment ou un autre ** Variante: public_html/modules/tool/directexec/ (en particulier var.proc) Outil indépendant permettant à un utilisateur d'exécuter un programme quelconque écrit dans un des systèmes suivant: outil,software, language, pari, gp, maxima, octave, macaulay, yacas, gap, scilab, c, perl, sh, python, pascal, fortran,jmol, jsgraph, canvasdraw,graphviz entrée: une chaîne de caractère contenant le programme sortie: l'affichage du programme À confirmer: nécessitait un patch sur le noyau. Utilise _calc_exec de WIMS/src/calc.c. Exécute une commande, dans un chroot s'il n'est pas de confiance. TODO: mettre à jour pour utiliser docker ** Consommation de ressources jugées raisonnables Cf. src/wimsdef.h Cf. aussi wims/log/wims.conf: rlimit_cpu et public_html/bases/sys/defaults.conf pour les valeurs par défaut ** Si on se connecte avec une certaine IP alors on est en mode debug / admin Affiche en particulier des informations sur l'exécution * si un programme est présent dans public_html/bin, il est exécutable depuis les oef. * Serveur WIMS de test https://wimstest1.di.u-psud.fr/