Skip to content
Snippets Groups Projects
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/