Diff for /loncom/homework/mathresponse.idea between versions 1.1 and 1.2

version 1.1, 2006/06/14 18:31:37 version 1.2, 2006/12/05 15:20:22
Line 69  and Line 69  and
 </mathresponse>  </mathresponse>
   
 </problem>  </problem>
   
   
   * Maxima hat keinen echten Servermode.
   
   Das Programm
   
   /loncapa/loncom/lonmaxima
   
   erzeugt fuenf Serverprozesse, die jeweils einen Maxima-Prozess am Laufen halten:
   
   www       8506  0.0  0.5  8880 5324 ?        S    Dec04   0:00 lonmaxima: Parent process, sleeping Mon Dec  4 09:53:10 2006
   www       8507  0.0  0.5  9012 5380 ?        S    Dec04   0:00 lonmaxima: Accepting connections Mon Dec  4 10:23:24 2006
   www       8508  0.0  2.3 885900 24276 pts/2  S    Dec04   0:00 sbcl --core /usr/local/lib/maxima/5.9.2.99rc1/binary-sbcl/maxima.core --noinform --end-runtime-options --eval (cl-user::run) --end-toplevel-options
   www       8510  0.0  0.5  9012 5380 ?        S    Dec04   0:00 lonmaxima: Accepting connections Mon Dec  4 10:23:24 2006
   www       8512  0.0  0.5  9012 5380 ?        S    Dec04   0:00 lonmaxima: Accepting connections Mon Dec  4 10:23:30 2006
   www       8513  0.0  2.3 885900 24308 pts/4  S    Dec04   0:00 sbcl --core /usr/local/lib/maxima/5.9.2.99rc1/binary-sbcl/maxima.core --noinform --end-runtime-options --eval (cl-user::run) --end-toplevel-options
   www       8515  0.0  2.3 885900 24040 pts/5  S    Dec04   0:00 sbcl --core /usr/local/lib/maxima/5.9.2.99rc1/binary-sbcl/maxima.core --noinform --end-runtime-options --eval (cl-user::run) --end-toplevel-options
   www       8621  0.0  0.5  9012 5380 ?        S    Dec04   0:00 lonmaxima: Accepting connections Mon Dec  4 10:23:30 2006
   www       8622  0.0  2.3 885900 24312 pts/3  S    Dec04   0:00 sbcl --core /usr/local/lib/maxima/5.9.2.99rc1/binary-sbcl/maxima.core --noinform --end-runtime-options --eval (cl-user::run) --end-toplevel-options
   www       8648  0.0  0.5  9012 5380 ?        S    Dec04   0:00 lonmaxima: Accepting connections Mon Dec  4 10:23:19 2006
   www       8649  0.0  2.2 885900 22952 pts/6  S    Dec04   0:00 sbcl --core /usr/local/lib/maxima/5.9.2.99rc1/binary-sbcl/maxima.core --noinform --end-runtime-options --eval (cl-user::run) --end-toplevel-options
   
   Dieser Daemon muss laufen, damit LON-CAPA mit Maxima reden kann.
   
   Die Routinen, die dazu benutzt werden sollen, sind in
   
   /loncapa/loncom/homework/lonmaxima.pm
   
   * XML-Umgebung: wir haben zwei Perl-Umgebungen, wenn wir XML-Dateien abarbeiten, naemlich
     - die Apache-Module-Umgebung: volle Privilegien
     - die "Safeeval"-Umgebung: die interne Umgebung des Dokuments, in der zum Beispiel die <script>-Bloecke laufen. In dieser Umgebung existieren die Variablen des Problems.
       Eingeschraenkte Opcodes (no I/O), kein direkter Zugriff auf die Apache-Umgebungen ausser mit "Safe Holes", z.B.,
       $safehole->wrap(\&Apache::lonmaxima::maxima_check,$safeeval,'&maxima_check');
   
   caparesponse.pm, response.pm, lonmaxima.pm, etc, laufen in der Apache-Umgebung
   default_homework.lcpm laueft in der Safeeval-Umgebung
   
   * formularesponse: Erweiterung der "einfachen" Responsetypes: numerical, string, etc. Das haben wir vom alten CAPA-System geerbt und ist deshalb in
   
   /loncapa/loncom/homework/caparesponse/caparesponse.pm
   
   Alle einfachen Responses gehen in &check_submission(), wo dann sortiert wird, wer es bearbeitet. <formularesponse> ohne Samples soll von Maxima bearbeitet werden (auskommentiert in Production-Version). Ausgefuehrt wird das dann in
   
   /loncapa/loncom/xml/run.pm
   
   das den Uebergang in die Safeeval-Umgebung macht. In der Safeeval-Umgebung kuemmert sich
   
   /loncapa/loncom/homework/default_homework.lcpm
   
   in der Routine &caparesponse_check()
   
       if ($type eq '9') {
         $result = &maxima_check(&maxima_cas_formula_fix($response),&maxima_cas_formula_fix($answer),\$reterror);
       } else {
           if ($type eq '8') { # fml type
       ...
   
   * <mathresponse>: neuer Antwork-Typ, aehnlich wie <customresponse>. Das Design ist beschrieben in
   
   /loncapa/loncom/homework/mathresponse.idea
   
   Das Tag ist definiert in
   
   /loncapa/loncom/homework/response.pm
   
   Die Routine
   
   &start_mathresponse()
   
   wird aufgerufen, wenn der Parser auf <mathresponse> trifft. Die Routine
   
   &end_mathresponse()
   
   wird aufgerufen, wenn der Parser auf </mathresponse> trifft. Beide Routinen muessen die verschiedenen Rendering-Targets bedienen:
   * web: Darstellung auf dem Web
   * tex: Darstellung im Druck
   * edit: Darstellung im bunten Editor
   * modified: Zurueckschreiben von Aenderungen im Editor (muss normalerweise nicht geaendert werden)
   * meta: Katalogdaten  (muss normalerweise nicht geaendert werden)
   * answer: Darstellung der richtigen Antwort
   * grade: Benotung der Studierendenantwort
   
   Die Routinen &start_answer and &end_answer (<answer> und </answer>) sammeln nur die Scripts ein und werden von <mathresponse> und <customresponse> genutzt.

Removed from v.1.1  
changed lines
  Added in v.1.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>