-
Nicolas M. Thiéry authoredNicolas M. Thiéry authored
TODO 4.48 KiB
* 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/