aimmath-commit Mailing List for AiM Assessment in Mathematics (Page 17)
Brought to you by:
gustav_delius,
npstrick
You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(2) |
Jun
|
Jul
(73) |
Aug
(96) |
Sep
(240) |
Oct
(34) |
Nov
(12) |
Dec
(3) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(31) |
Feb
(6) |
Mar
(17) |
Apr
(6) |
May
(5) |
Jun
|
Jul
|
Aug
(2) |
Sep
(2) |
Oct
(19) |
Nov
|
Dec
|
2005 |
Jan
|
Feb
|
Mar
(14) |
Apr
(33) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <mo...@us...> - 2003-09-03 14:56:03
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple/aim In directory sc8-pr-cvs1:/tmp/cvs-serv23510 Modified Files: Inert.mpl Log Message: Fixes bug [798637] Index: Inert.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/Inert.mpl,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Inert.mpl 2 Sep 2003 02:53:42 -0000 1.2 --- Inert.mpl 3 Sep 2003 14:55:53 -0000 1.3 *************** *** 205,209 **** local f,d,ARGS,Values,R; ! this['InertFunction']:=F; ARGS:=args[3..nargs]; R:=this['setArgs',ARGS]; --- 205,209 ---- local f,d,ARGS,Values,R; ! this['InertFunction']:=eval(F); ARGS:=args[3..nargs]; R:=this['setArgs',ARGS]; |
From: <gus...@us...> - 2003-09-02 12:51:33
|
Update of /cvsroot/aimmath/moodle/mod/aim_quiz/db In directory sc8-pr-cvs1:/tmp/cvs-serv15530/mod/aim_quiz/db Modified Files: mysql.php Log Message: minor changes Index: mysql.php =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/aim_quiz/db/mysql.php,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** mysql.php 2 Sep 2003 00:40:24 -0000 1.3 --- mysql.php 2 Sep 2003 12:51:23 -0000 1.4 *************** *** 7,17 **** global $CFG; ! /*if ($oldversion < 2003082100) { ! }*/ ! if ($oldversion < 2003090300) { ! execute_sql(" ALTER TABLE `aim_quiz` ". ! " ADD `problem_sheet` VARCHAR(100) , ". ! " ADD `solution_sheet` VARCHAR(100) , ". ! " ADD `timedue` INT(10 ) unsigned default '0' "); } return true; --- 7,15 ---- global $CFG; ! if ($oldversion < 2003090103) { ! execute_sql(" ALTER TABLE `prefix_aim_quiz` ". ! " ADD `problem_sheet` VARCHAR(100) , ". ! " ADD `solution_sheet` VARCHAR(100) , ". ! " ADD `timedue` INT(10 ) unsigned default '0' "); } return true; |
From: <gus...@us...> - 2003-09-02 12:51:33
|
Update of /cvsroot/aimmath/moodle/mod/aim_quiz In directory sc8-pr-cvs1:/tmp/cvs-serv15530/mod/aim_quiz Modified Files: lib.php mod.html Log Message: minor changes Index: lib.php =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/aim_quiz/lib.php,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** lib.php 2 Sep 2003 00:40:24 -0000 1.5 --- lib.php 2 Sep 2003 12:51:23 -0000 1.6 *************** *** 162,166 **** else echo "<OPTION"; ! echo " value=\"{$record['id']}\">" . htmlspecialchars("{$record['subject']} on {$record['server']}") . "</OPTION>"; } return true; --- 162,166 ---- else echo "<OPTION"; ! echo " value=\"{$record['id']}\">" . htmlspecialchars("{$record['subject']}") . "</OPTION>"; } return true; Index: mod.html =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/aim_quiz/mod.html,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** mod.html 2 Sep 2003 00:40:24 -0000 1.2 --- mod.html 2 Sep 2003 12:51:23 -0000 1.3 *************** *** 8,12 **** /* * Variables specific to this module are: ! * name, server, subject, quiz, grade. * We check that these are setup here. */ --- 8,12 ---- /* * Variables specific to this module are: ! * name, problem_sheet, solution_sheet, timedue, server, subject, quiz, grade. * We check that these are setup here. */ *************** *** 30,34 **** } if (!isset($form->timedue)) { ! $form->timedue = ""; } // Now we set the defaults --- 30,34 ---- } if (!isset($form->timedue)) { ! $form->timedue = 0; } // Now we set the defaults *************** *** 111,115 **** <TR valign=top> ! <TD align=right><P><B><?php echo "$strsubject / $straimserver"; ?>:</B></P></TD> <TD> <SELECT name="subject"> --- 111,115 ---- <TR valign=top> ! <TD align=right><P><B><?php echo "$strsubject"; ?>:</B></P></TD> <TD> <SELECT name="subject"> *************** *** 122,126 **** $newreturn = "update=$update"; if (!empty($return)) { ! $newreturn .= "&return=$return"; } } --- 122,126 ---- $newreturn = "update=$update"; if (!empty($return)) { ! $newreturn .= "&return=$return"; } } |
From: <gr...@us...> - 2003-09-02 07:11:59
|
Update of /cvsroot/aimmath/AIM/doc In directory sc8-pr-cvs1:/tmp/cvs-serv27621 Modified Files: format.html Log Message: Added a check that an earlier question part was answered in the multipart question example. - GG Index: format.html =================================================================== RCS file: /cvsroot/aimmath/AIM/doc/format.html,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** format.html 25 Aug 2003 21:47:19 -0000 1.2 --- format.html 2 Sep 2003 07:11:56 -0000 1.3 *************** *** 258,262 **** <pre><font color='green'> name> primes ! local> lowerbound,ans1 shift> 7645848653 t> Recall that Euclid proved that their are infinitely many primes --- 258,262 ---- <pre><font color='green'> name> primes ! local> lowerbound,ans1,p1,p2 shift> 7645848653 t> Recall that Euclid proved that their are infinitely many primes *************** *** 287,296 **** esq> sq> ! t> Find a another prime $p_2$ such that $p_2 > p_1$ c> posint av> p2 ap> $p_2 =$ s> [proc(ans) ! if isprime(ans) then if ans > p1 then RETURN(1); --- 287,300 ---- esq> sq> ! t> Find another prime $p_2$ such that $p_2 > p_1$ c> posint av> p2 ap> $p_2 =$ s> [proc(ans) ! if not type(p1, posint) then ! # Make sure the student did in fact answer the first part!! ! `aim/t`("You haven't answered the first part yet!"); ! RETURN(0); ! elif isprime(ans) then if ans > p1 then RETURN(1); |
From: <mo...@us...> - 2003-09-02 02:53:45
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple/aim In directory sc8-pr-cvs1:/tmp/cvs-serv24531 Modified Files: Inert.mpl Log Message: just a trivial bug fix Index: Inert.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/Inert.mpl,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Inert.mpl 1 Sep 2003 05:55:59 -0000 1.1 --- Inert.mpl 2 Sep 2003 02:53:42 -0000 1.2 *************** *** 653,657 **** "Plus", # Name true, # Needs parentheses ! false, # Provides parentheses false, # Associative 10) # Precedence --- 653,657 ---- "Plus", # Name true, # Needs parentheses ! true, # Provides parentheses false, # Associative 10) # Precedence |
From: <gus...@us...> - 2003-09-02 00:40:36
|
Update of /cvsroot/aimmath/moodle/lang/en In directory sc8-pr-cvs1:/tmp/cvs-serv4126/lang/en Modified Files: aim_quiz.php Log Message: added problem and solution sheets and due date Index: aim_quiz.php =================================================================== RCS file: /cvsroot/aimmath/moodle/lang/en/aim_quiz.php,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** aim_quiz.php 31 Aug 2003 20:44:57 -0000 1.4 --- aim_quiz.php 2 Sep 2003 00:40:24 -0000 1.5 *************** *** 2,7 **** #------------------------------------------------------------ ! $string['modulename'] = "AiM Quiz"; ! $string['modulenameplural'] = "AiM Quizzes"; #------------------------------------------------------------ --- 2,7 ---- #------------------------------------------------------------ ! $string['modulename'] = "Homework"; ! $string['modulenameplural'] = "Homework"; #------------------------------------------------------------ *************** *** 25,28 **** --- 25,29 ---- $string['commented'] = "Commented"; $string['deletequery'] = "Are you sure you want to delete this server?"; + $string['duedate'] = "Due date"; $string['edited'] = "Edited"; $string['editgrade'] = "Edit Grade"; *************** *** 49,52 **** --- 50,55 ---- $string['noreview'] = "You are not allowed to review this quiz"; $string['notattempted'] = "You have not attempted this quiz."; + $string['note'] = "Note"; + $string['notefile'] = "To upload more files into the course<br /> (so they appear in this list) use the <a href=\$a >File Manager</a>."; $string['notteacher'] = "You must be a teacher to use this page."; $string['quizresults'] = "Quiz Results"; *************** *** 55,61 **** --- 58,66 ---- $string['pdf_ok'] = "The pdf file has been successfully opened in another browser window."; $string['pdf_question'] = "Question"; + $string['problem_sheet'] = "Problem Sheet"; $string['refresh'] = "Refresh"; $string['reviewresults'] = "Review Results"; $string['serverinuse'] = "Error : Can not delete server as one or more Aim Quizzes depend on it."; + $string['solution_sheet'] = "Solution Sheet"; $string['student_password'] = "Student AiM Password"; $string['studentnotattempted'] = "The student has not attempted this quiz."; *************** *** 66,70 **** --- 71,77 ---- $string['teachercomment'] = "Teacher Comment"; $string['try_quiz'] = "Try Quiz"; + $string['viewproblem'] = "View Problem Sheet"; $string['viewquiz'] = "View Quiz"; + $string['viewsolution'] = "View Solution Sheet"; ?> |
From: <gus...@us...> - 2003-09-02 00:40:36
|
Update of /cvsroot/aimmath/moodle/lang/en/help/aim_quiz In directory sc8-pr-cvs1:/tmp/cvs-serv4126/lang/en/help/aim_quiz Modified Files: editgrade_comment.html Log Message: added problem and solution sheets and due date Index: editgrade_comment.html =================================================================== RCS file: /cvsroot/aimmath/moodle/lang/en/help/aim_quiz/editgrade_comment.html,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** editgrade_comment.html 25 Aug 2003 16:24:01 -0000 1.1.1.1 --- editgrade_comment.html 2 Sep 2003 00:40:24 -0000 1.2 *************** *** 1,5 **** <P ALIGN=CENTER><B>Comment field</B></P> ! <P>This field allows you to make a comment about the student's grade. If you have overridden the grade you must give a comment here to explain why.</P> <P><B>Links:</B></P> --- 1,5 ---- <P ALIGN=CENTER><B>Comment field</B></P> ! <P>This field allows you to make a comment about the student's grade. If you have overridden the grade you must give a comment here to explain why. This comment will be visible to the student.</P> <P><B>Links:</B></P> |
From: <gus...@us...> - 2003-09-02 00:40:36
|
Update of /cvsroot/aimmath/moodle/mod/aim_quiz In directory sc8-pr-cvs1:/tmp/cvs-serv4126/mod/aim_quiz Modified Files: aimpage.php lib.php mod.html view.php Log Message: added problem and solution sheets and due date Index: aimpage.php =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/aim_quiz/aimpage.php,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 Index: lib.php =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/aim_quiz/lib.php,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** lib.php 31 Aug 2003 20:44:57 -0000 1.4 --- lib.php 2 Sep 2003 00:40:24 -0000 1.5 *************** *** 500,504 **** fwrite($fp,$latex); fclose($fp); ! // $latexoutput = shell_exec("pdflatex temp.tex"); return true; } --- 500,504 ---- fwrite($fp,$latex); fclose($fp); ! $latexoutput = system("pdflatex -interaction=batchmode temp.tex"); return true; } Index: mod.html =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/aim_quiz/mod.html,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** mod.html 25 Aug 2003 16:24:08 -0000 1.1.1.1 --- mod.html 2 Sep 2003 00:40:24 -0000 1.2 *************** *** 14,17 **** --- 14,23 ---- $form->name = ""; } + if (!isset($form->problem_sheet)) { + $form->problem_sheet = ""; + } + if (!isset($form->solution_sheet)) { + $form->solution_sheet = ""; + } if (!isset($form->subject)) { $form->subject = ""; *************** *** 23,26 **** --- 29,35 ---- $form->grade = 0; } + if (!isset($form->timedue)) { + $form->timedue = ""; + } // Now we set the defaults if (!$form->subject) { *************** *** 50,53 **** --- 59,113 ---- </TR> + <tr valign=top> + <td align=right><p><b><?php print_string("duedate", "aim_quiz") ?>:</b></td> + <td><?php + print_date_selector("dueday", "duemonth", "dueyear", $form->timedue); + echo " - "; + print_time_selector("duehour", "dueminute", $form->timedue); + ?></td> + </tr> + + <tr valign="top"> + <td align="right" nowrap> + <p><b><?=get_string("problem_sheet", "aim_quiz")?>:</b></p> + </td> + <td> + <?php + $rootdir = $CFG->dataroot."/".$course->id; + $coursedirs = get_directory_list($rootdir, $CFG->moddata); + foreach ($coursedirs as $dir) { + $options["$dir"] = $dir; + } + choose_from_menu ($options, "problem_sheet", $form->problem_sheet); + ?> + </td> + </tr> + + <tr valign="top"> + <td align="right" nowrap> + <p><b><?=get_string("solution_sheet", "aim_quiz")?>:</b></p> + </td> + <td> + <?php + $rootdir = $CFG->dataroot."/".$course->id; + $coursedirs = get_directory_list($rootdir, $CFG->moddata); + foreach ($coursedirs as $dir) { + $options["$dir"] = $dir; + } + choose_from_menu ($options, "solution_sheet", $form->solution_sheet); + ?> + </td> + </tr> + + <tr valign="top"> + <td align="right" nowrap> + <p><b><?=get_string("note", "aim_quiz");?>:</b></p> + </td> + <td> + <p><?=get_string("notefile", "aim_quiz", "$CFG->wwwroot/files/index.php?id=$course->id")?> + </p> + </td> + </tr> + <TR valign=top> <TD align=right><P><B><?php echo "$strsubject / $straimserver"; ?>:</B></P></TD> *************** *** 62,66 **** $newreturn = "update=$update"; if (!empty($return)) { ! $newreturn .= "&return=$return"; } } --- 122,126 ---- $newreturn = "update=$update"; if (!empty($return)) { ! $newreturn .= "&return=$return"; } } Index: view.php =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/aim_quiz/view.php,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** view.php 31 Aug 2003 20:44:57 -0000 1.4 --- view.php 2 Sep 2003 00:40:24 -0000 1.5 *************** *** 176,184 **** echo "<A href=\"aimpage.php?id=$cm->id&aimaction=subject\">" . get_string("admin_subject", "aim_quiz") . "</A>"; echo "</font></div>"; ! } ! print_heading($strgrades); ! if (isteacher($course->id)) { echo "<P align=\"center\"><B>" . get_string("maximumgrade") . "</B>: $aim_quiz->grade</P>"; $table->head = array ("", get_string("firstname"), get_string("lastname"), $strgrade, ""); --- 176,217 ---- echo "<A href=\"aimpage.php?id=$cm->id&aimaction=subject\">" . get_string("admin_subject", "aim_quiz") . "</A>"; echo "</font></div>"; ! } ! print_simple_box_start("CENTER"); ! print_heading($aim_quiz->name, "CENTER"); ! $timedifference = $aim_quiz->timedue - time(); ! if ($timedifference < 31536000) { // Don't bother showing dates over a year in the future ! $strdifference = format_time($timedifference); ! if ($timedifference < 0) { ! $strdifference = "<font color=\"red\">- $strdifference</font>"; ! } ! $strduedate = userdate($aim_quiz->timedue)." ($strdifference)"; ! echo "<b>".get_string("duedate", "assignment")."</b>: $strduedate<br />"; ! } ! ! if (!isteacher($course->id)) { ! echo "<B>$strgrade :</B> "; ! if ($grade->grade >= 0) ! echo "$grade->grade / $aim_quiz->grade"; ! else ! print_string("notattempted", "aim_quiz"); ! if ($grade->override) { ! echo " ("; ! print_string("gradeoverride", "aim_quiz"); ! echo ")"; ! } ! echo "<br />"; ! if ($grade->comment) ! echo "<B>" . get_string("comment", "aim_quiz") . ":</B> " . ! nl2br(htmlspecialchars($grade->comment)); ! } ! ! print_simple_box_end(); ! echo "<br />"; ! ! ! if (isteacher($course->id)) { ! print_heading($strgrades); echo "<P align=\"center\"><B>" . get_string("maximumgrade") . "</B>: $aim_quiz->grade</P>"; $table->head = array ("", get_string("firstname"), get_string("lastname"), $strgrade, ""); *************** *** 222,248 **** } else { - echo "<TABLE border=0 cellspacing=0 cellpadding=0 align=\"center\"><TR><TD>"; - echo "<P><B>$strgrade :</B> "; - if ($grade->grade >= 0) - echo "$grade->grade / $aim_quiz->grade"; - else - print_string("notattempted", "aim_quiz"); - if ($grade->override) { - echo " ("; - print_string("gradeoverride", "aim_quiz"); - echo ")"; - } echo "</P>"; - if ($grade->comment) - echo "<P align=\"center\"><B>" . get_string("comment", "aim_quiz") . ":</B> " . nl2br(htmlspecialchars($grade->comment)) . "</P>"; if ($grade->override) { echo "<P align=\"center\">"; print_string("gradeoverridemsg", "aim_quiz"); echo "</P>"; - echo "<P align=\"center\"><A href=\"aimpage.php?id=$cm->id\">" . get_string("viewquiz", "aim_quiz") . "</A></P>"; } ! else ! echo "<P align=\"center\"><A href=\"aimpage.php?id=$cm->id\">" . get_string("viewquiz", "aim_quiz") . "</A></P>"; ! echo "</TD></TR></TABLE>"; } --- 255,280 ---- } else { echo "</P>"; if ($grade->override) { echo "<P align=\"center\">"; print_string("gradeoverridemsg", "aim_quiz"); echo "</P>"; } ! echo "<div align=\"center\"><a href=\"aimpage.php?id=$cm->id\">" . get_string("viewquiz", "aim_quiz") . "</a></div>"; ! ! if ($CFG->slasharguments) { ! $proburl = "$CFG->wwwroot/file.php/$course->id/$aim_quiz->problem_sheet"; ! $solurl = "$CFG->wwwroot/file.php/$course->id/$aim_quiz->solution_sheet"; ! } else { ! $proburl = "$CFG->wwwroot/file.php?file=/$course->id/$aim_quiz->problem_sheet"; ! $solurl = "$CFG->wwwroot/file.php?file=/$course->id/$aim_quiz->solution_sheet"; ! } ! if ($aim_quiz->problem_sheet) { ! echo "<div align=\"center\"><a href=\"" . $proburl . "\" target=\"problem_sheet\">" . get_string("viewproblem", "aim_quiz") . "</a></div>"; ! } ! if (($aim_quiz->solution_sheet) and ($aim_quiz->timedue < time())) { ! echo "<div align=\"center\"><a href=\"" . $solurl . "\" target=\"solution_sheet\">" . ! get_string("viewsolution", "aim_quiz") . "</a></div>"; ! } } |
From: <gus...@us...> - 2003-09-02 00:40:36
|
Update of /cvsroot/aimmath/moodle/mod/aim_quiz/db In directory sc8-pr-cvs1:/tmp/cvs-serv4126/mod/aim_quiz/db Modified Files: mysql.php Log Message: added problem and solution sheets and due date Index: mysql.php =================================================================== RCS file: /cvsroot/aimmath/moodle/mod/aim_quiz/db/mysql.php,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** mysql.php 27 Aug 2003 14:21:24 -0000 1.2 --- mysql.php 2 Sep 2003 00:40:24 -0000 1.3 *************** *** 9,14 **** /*if ($oldversion < 2003082100) { }*/ return true; } ! ?> \ No newline at end of file --- 9,20 ---- /*if ($oldversion < 2003082100) { }*/ + if ($oldversion < 2003090300) { + execute_sql(" ALTER TABLE `aim_quiz` ". + " ADD `problem_sheet` VARCHAR(100) , ". + " ADD `solution_sheet` VARCHAR(100) , ". + " ADD `timedue` INT(10 ) unsigned default '0' "); + } return true; } ! ?> |
From: <gus...@us...> - 2003-09-01 20:22:36
|
Update of /cvsroot/aimmath/AIM/doc In directory sc8-pr-cvs1:/tmp/cvs-serv25371/doc Modified Files: packing.html Log Message: put in some /> to make more xml compliant Index: packing.html =================================================================== RCS file: /cvsroot/aimmath/AIM/doc/packing.html,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** packing.html 25 Aug 2003 21:47:19 -0000 1.2 --- packing.html 1 Sep 2003 20:22:23 -0000 1.3 *************** *** 16,20 **** already been loaded. ! <br><br> Each package is defined in a separate file, whose name is the same --- 16,20 ---- already been loaded. ! <br /><br /> Each package is defined in a separate file, whose name is the same *************** *** 28,32 **** (relative to the top documentation directory). ! <br><br> Each package file should start like this: --- 28,32 ---- (relative to the top documentation directory). ! <br /><br /> Each package file should start like this: *************** *** 41,45 **** it has been read already. ! <br><br> The documentation string should be written in HTML, with the --- 41,45 ---- it has been read already. ! <br /><br /> The documentation string should be written in HTML, with the *************** *** 68,72 **** maintained. ! <br><br> The file should end with --- 68,72 ---- maintained. ! <br /><br /> The file should end with *************** *** 117,121 **** automatically. ! <br><br> Variables or procedures declared in this way will automatically be --- 117,121 ---- automatically. ! <br /><br /> Variables or procedures declared in this way will automatically be *************** *** 133,137 **** color='green'>EndPackage()</font> statement. ! <br><br> If a <a href='Class.html'>class</a> is declared (using <font --- 133,137 ---- color='green'>EndPackage()</font> statement. ! <br /><br /> If a <a href='Class.html'>class</a> is declared (using <font *************** *** 146,148 **** </body> ! </html> \ No newline at end of file --- 146,148 ---- </body> ! </html> |
From: <gus...@us...> - 2003-09-01 20:22:36
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple/locales In directory sc8-pr-cvs1:/tmp/cvs-serv25371/WEB-INF/maple/locales Modified Files: en.mpl Log Message: put in some /> to make more xml compliant Index: en.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/locales/en.mpl,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** en.mpl 26 Aug 2003 17:13:22 -0000 1.3 --- en.mpl 1 Sep 2003 20:22:23 -0000 1.4 *************** *** 40,44 **** <font color='green'><tt>vector([3,5,7])</tt></font>. In some other cases, you should just use the notation ! <font color='green'><tt>[3,5,7]</tt></font>. \n<br>\n": __("#MC Unlisted choice complaint") := --- 40,44 ---- <font color='green'><tt>vector([3,5,7])</tt></font>. In some other cases, you should just use the notation ! <font color='green'><tt>[3,5,7]</tt></font>. \n<br />\n": __("#MC Unlisted choice complaint") := *************** *** 133,137 **** </li> </ul> ! <br> ": --- 133,137 ---- </li> </ul> ! <br /> ": *************** *** 156,160 **** to refer to the product of %s and %s, in which case you should have entered %s instead. ! <br> ": --- 156,160 ---- to refer to the product of %s and %s, in which case you should have entered %s instead. ! <br /> ": *************** *** 219,227 **** <tr> <td nowrap align=center></td> ! <td align=left><font face=symbol>\\363<br>\\365</font></td> <td align=center></td> ! <td nowrap align=center>u<sup>5</sup><hr NOSHADE> 2<Br></td> <td nowrap align=center>du = </td> ! <td nowrap align=center>u<sup>6</sup><hr NOSHADE> 12<Br></td> <td nowrap align=center>. </td> </tr> --- 219,227 ---- <tr> <td nowrap align=center></td> ! <td align=left><font face=symbol>\\363<br />\\365</font></td> <td align=center></td> ! <td nowrap align=center>u<sup>5</sup><hr NOSHADE> 2<br /></td> <td nowrap align=center>du = </td> ! <td nowrap align=center>u<sup>6</sup><hr NOSHADE> 12<br /></td> <td nowrap align=center>. </td> </tr> *************** *** 377,387 **** </td><td nowrap align=center> dy<hr NOSHADE> ! dx<Br></td><td nowrap align=center> = </td><td nowrap align=center> dy<hr NOSHADE> ! du<Br></td><td nowrap align=center> </td><td nowrap align=center> du<hr NOSHADE> ! dx<Br></td><td nowrap align=center> = (7 u<sup>6</sup>)(2 x) = 14 (x<sup>2</sup> + 1)<sup>6</sup> x.</td></Table> </td></table></centEr> --- 377,387 ---- </td><td nowrap align=center> dy<hr NOSHADE> ! dx<br /></td><td nowrap align=center> = </td><td nowrap align=center> dy<hr NOSHADE> ! du<br /></td><td nowrap align=center> </td><td nowrap align=center> du<hr NOSHADE> ! dx<br /></td><td nowrap align=center> = (7 u<sup>6</sup>)(2 x) = 14 (x<sup>2</sup> + 1)<sup>6</sup> x.</td></Table> </td></table></centEr> |
From: <gus...@us...> - 2003-09-01 20:22:36
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple/aim/try In directory sc8-pr-cvs1:/tmp/cvs-serv25371/WEB-INF/maple/aim/try Modified Files: Question.mpl Log Message: put in some /> to make more xml compliant Index: Question.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/try/Question.mpl,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Question.mpl 25 Aug 2003 21:47:19 -0000 1.3 --- Question.mpl 1 Sep 2003 20:22:23 -0000 1.4 *************** *** 236,240 **** editsource := sprintf( ! "<input type=hidden name='SourceFile' value='%s'>\n%s\n", p["SourceFile"], page['ActionLink',"EditSource"]); --- 236,240 ---- editsource := sprintf( ! "<input type=hidden name='SourceFile' value='%s' />\n%s\n", p["SourceFile"], page['ActionLink',"EditSource"]); |
From: <gus...@us...> - 2003-09-01 20:22:36
|
Update of /cvsroot/aimmath/AIM In directory sc8-pr-cvs1:/tmp/cvs-serv25371 Modified Files: monitor.html Log Message: put in some /> to make more xml compliant Index: monitor.html =================================================================== RCS file: /cvsroot/aimmath/AIM/monitor.html,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** monitor.html 20 Apr 2003 23:14:28 -0000 1.1.1.1 --- monitor.html 1 Sep 2003 20:22:23 -0000 1.2 *************** *** 5,9 **** <body> <form name='aimform' action='Alice' method='POST'> ! <input type='hidden' name='Command' value='ServletMonitor'> </form> <script language="javascript"> --- 5,9 ---- <body> <form name='aimform' action='Alice' method='POST'> ! <input type='hidden' name='Command' value='ServletMonitor' /> </form> <script language="javascript"> |
From: <gus...@us...> - 2003-09-01 20:22:32
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple In directory sc8-pr-cvs1:/tmp/cvs-serv25371/WEB-INF/maple Modified Files: Date.mpl Random.mpl newDate.mpl Log Message: put in some /> to make more xml compliant Index: Date.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Date.mpl,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Date.mpl 25 Aug 2003 21:47:18 -0000 1.3 --- Date.mpl 1 Sep 2003 20:22:23 -0000 1.4 *************** *** 353,359 **** ", ['Constructor', ! "If @date_@ is absent, construct the current date.<br> If @date_@ is an integer, interpret it as a raw date, and construct ! a corresponding Date object.<br> If @date_@ is a list of six integers, interpret them as year, month, day, hour, minute and second, and construct a --- 353,359 ---- ", ['Constructor', ! "If @date_@ is absent, construct the current date.<br /> If @date_@ is an integer, interpret it as a raw date, and construct ! a corresponding Date object.<br /> If @date_@ is a list of six integers, interpret them as year, month, day, hour, minute and second, and construct a *************** *** 761,765 **** to be selected from. The optional argument @initial_@ specifies an initial selection. ! <br><br> No input fields are provided for the hour, minute and second. ", --- 761,765 ---- to be selected from. The optional argument @initial_@ specifies an initial selection. ! <br /><br /> No input fields are provided for the hour, minute and second. ", Index: Random.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Random.mpl,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Random.mpl 1 Sep 2003 05:53:28 -0000 1.4 --- Random.mpl 1 Sep 2003 20:22:23 -0000 1.5 *************** *** 69,73 **** fi: S:=StringTools[SubstituteAll](S,"%","%%"); ! S:=cat(S,"\n<br>\n"); if not type(RandLevel,integer) then RandLevel:=1; --- 69,73 ---- fi: S:=StringTools[SubstituteAll](S,"%","%%"); ! S:=cat(S,"\n<br />\n"); if not type(RandLevel,integer) then RandLevel:=1; *************** *** 367,371 **** fi; S:=StringTools[SubstituteAll](S,"%","%%"); ! S:=cat(S,"\n<br>\n"); RandLevel:=RandLevel-1; printf(S); --- 367,371 ---- fi; S:=StringTools[SubstituteAll](S,"%","%%"); ! S:=cat(S,"\n<br />\n"); RandLevel:=RandLevel-1; printf(S); Index: newDate.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/newDate.mpl,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** newDate.mpl 25 Aug 2003 21:47:18 -0000 1.2 --- newDate.mpl 1 Sep 2003 20:22:23 -0000 1.3 *************** *** 191,197 **** ", ['Constructor', ! "If @date_@ is absent, construct the current date.<br> If @date_@ is an integer, interpret it as a raw date, and construct ! a corresponding Date object.<br> If @date_@ is a list of six integers, interpret them as year, month, day, hour, minute and second, and construct a --- 191,197 ---- ", ['Constructor', ! "If @date_@ is absent, construct the current date.<br /> If @date_@ is an integer, interpret it as a raw date, and construct ! a corresponding Date object.<br /> If @date_@ is a list of six integers, interpret them as year, month, day, hour, minute and second, and construct a *************** *** 520,524 **** to be selected from. The optional argument @initial_@ specifies an initial selection. ! <br><br> No input fields are provided for the hour, minute and second. ", --- 520,524 ---- to be selected from. The optional argument @initial_@ specifies an initial selection. ! <br /><br /> No input fields are provided for the hour, minute and second. ", |
From: <gus...@us...> - 2003-09-01 20:22:32
|
Update of /cvsroot/aimmath/AIM/WEB-INF/java/tth In directory sc8-pr-cvs1:/tmp/cvs-serv25371/WEB-INF/java/tth Modified Files: TtH.java Log Message: put in some /> to make more xml compliant Index: TtH.java =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/java/tth/TtH.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** TtH.java 30 Aug 2003 22:40:55 -0000 1.3 --- TtH.java 1 Sep 2003 20:22:23 -0000 1.4 *************** *** 50,56 **** "<p>\n" + "Could not start TtH. Command used was '" + program + " -h'\n" + ! "<br>\n" + "Exception message: " + e.getMessage() + "\n" + ! "<br>\n" + "</p>\n"; return(msg); --- 50,56 ---- "<p>\n" + "Could not start TtH. Command used was '" + program + " -h'\n" + ! "<br />\n" + "Exception message: " + e.getMessage() + "\n" + ! "<br />\n" + "</p>\n"; return(msg); *************** *** 166,170 **** if (i == -1) { ! return("<br><font color='red'>TtH error</font>\n" + "<font color='orange'>\n<pre>\n" + s + "\n</pre>\n</font>\n"); } --- 166,170 ---- if (i == -1) { ! return("<br /><font color='red'>TtH error</font>\n" + "<font color='orange'>\n<pre>\n" + s + "\n</pre>\n</font>\n"); } *************** *** 174,178 **** if (j == -1) { ! return("<br><font color='red'>TtH error</font>\n" + "<font color='orange'>\n<pre>\n" + s + "\n</pre>\n</font>\n"); } --- 174,178 ---- if (j == -1) { ! return("<br /><font color='red'>TtH error</font>\n" + "<font color='orange'>\n<pre>\n" + s + "\n</pre>\n</font>\n"); } *************** *** 208,214 **** m = Math.min(input.length(),k+100); html += ! "<font color='red'>Unmatched <latex> tag:<br>" + input.substring(k,m) + ! "</font><br>\n</html>\n"; i = input.length(); } else { --- 208,214 ---- m = Math.min(input.length(),k+100); html += ! "<font color='red'>Unmatched <latex> tag:<br />" + input.substring(k,m) + ! "</font><br />\n</html>\n"; i = input.length(); } else { |
From: <gus...@us...> - 2003-09-01 20:22:31
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple/aim In directory sc8-pr-cvs1:/tmp/cvs-serv25371/WEB-INF/maple/aim Modified Files: Int.mpl Log Message: put in some /> to make more xml compliant Index: Int.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/Int.mpl,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Int.mpl 25 Aug 2003 21:47:19 -0000 1.3 --- Int.mpl 1 Sep 2003 20:22:23 -0000 1.4 *************** *** 276,280 **** __("There was no penalty for omitting it."); fi; ! feedback := feedback, "\n<br>\n"; note := note, __("no integration constant"); fi; --- 276,280 ---- __("There was no penalty for omitting it."); fi; ! feedback := feedback, "\n<br />\n"; note := note, __("no integration constant"); fi; |
From: <gus...@us...> - 2003-09-01 20:22:31
|
Update of /cvsroot/aimmath/AIM/WEB-INF/java In directory sc8-pr-cvs1:/tmp/cvs-serv25371/WEB-INF/java Modified Files: Alice.java MaplePool.java Log Message: put in some /> to make more xml compliant Index: Alice.java =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/java/Alice.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Alice.java 1 Sep 2003 14:58:47 -0000 1.6 --- Alice.java 1 Sep 2003 20:22:23 -0000 1.7 *************** *** 267,271 **** err.println("<p>"); err.println("AliceMapleDir was set to '" + AliceMapleDir + "'"); ! err.println("<br>"); err.println(s); err.println("</p>"); --- 267,271 ---- err.println("<p>"); err.println("AliceMapleDir was set to '" + AliceMapleDir + "'"); ! err.println("<br />"); err.println(s); err.println("</p>"); *************** *** 278,282 **** err.println("<p>"); err.println("AliceMapleDir was set to '" + AliceMapleDir + "'"); ! err.println("<br>"); err.println(f.getPath() + " does not exist. This means that the Maple " + --- 278,282 ---- err.println("<p>"); err.println("AliceMapleDir was set to '" + AliceMapleDir + "'"); ! err.println("<br />"); err.println(f.getPath() + " does not exist. This means that the Maple " + *************** *** 315,319 **** err.println("<p>"); err.println("TempDir was set to '" + TempDir + "'"); ! err.println("<br>"); err.println(s); err.println("</p>"); --- 315,319 ---- err.println("<p>"); err.println("TempDir was set to '" + TempDir + "'"); ! err.println("<br />"); err.println(s); err.println("</p>"); *************** *** 343,347 **** err.println("<p>"); err.println("TtHProgram was set to '" + TtHProgram + "'"); ! err.println("<br>"); err.println(s); err.println("</p>"); --- 343,347 ---- err.println("<p>"); err.println("TtHProgram was set to '" + TtHProgram + "'"); ! err.println("<br />"); err.println(s); err.println("</p>"); *************** *** 376,380 **** err.println("<p>"); err.println("MapleProgram was set to '" + MapleProgram + "'"); ! err.println("<br>"); err.println(s); err.println("</p>"); --- 376,380 ---- err.println("<p>"); err.println("MapleProgram was set to '" + MapleProgram + "'"); ! err.println("<br />"); err.println(s); err.println("</p>"); *************** *** 390,394 **** err.println("<p>"); err.println("MaxMapleProcesses was set to " + MaxMapleProcesses); ! err.println("<br>"); err.println("Values less than one are not sensible."); err.println("</p>"); --- 390,394 ---- err.println("<p>"); err.println("MaxMapleProcesses was set to " + MaxMapleProcesses); ! err.println("<br />"); err.println("Values less than one are not sensible."); err.println("</p>"); *************** *** 409,413 **** err.println("<p>"); err.println("The following required parameters are missing:"); ! err.println("<br>"); Enumeration e = missing.elements(); while (e.hasMoreElements()) { --- 409,413 ---- err.println("<p>"); err.println("The following required parameters are missing:"); ! err.println("<br />"); Enumeration e = missing.elements(); while (e.hasMoreElements()) { *************** *** 433,443 **** configError + "<hr noshade>\n<p>\n" + ! "<b>Note:</b><br>\n" + "These messages refer to initialization parameters set in \n" + ! "the file \n<br>\n" + "<font color='green'>" + "<tt><top AIM directory>/WEB-INF/web.xml</tt>" + "</font>" + ! ". \n<br>\n" + "If you need to change these parameters, the approved \n" + "procedure is to create or edit " + --- 433,443 ---- configError + "<hr noshade>\n<p>\n" + ! "<b>Note:</b><br />\n" + "These messages refer to initialization parameters set in \n" + ! "the file \n<br />\n" + "<font color='green'>" + "<tt><top AIM directory>/WEB-INF/web.xml</tt>" + "</font>" + ! ". \n<br />\n" + "If you need to change these parameters, the approved \n" + "procedure is to create or edit " + *************** *** 491,495 **** if (s.length() > 0) { p.println(n + " was set to '" + LogFile + "'"); ! p.print("<br>\n" + s + "\n<br>\n"); } } --- 491,495 ---- if (s.length() > 0) { p.println(n + " was set to '" + LogFile + "'"); ! p.print("<br />\n" + s + "\n<br />\n"); } } *************** *** 745,749 **** out.println("<hr noshade>"); out.println("<form name='aimform' action='Alice' method='POST'>"); ! out.println("<input type='hidden' name='Command' value='ServletMonitor'>"); out.println(maplePool.statusReport()); out.println("<hr noshade>"); --- 745,749 ---- out.println("<hr noshade>"); out.println("<form name='aimform' action='Alice' method='POST'>"); ! out.println("<input type='hidden' name='Command' value='ServletMonitor' />"); out.println(maplePool.statusReport()); out.println("<hr noshade>"); Index: MaplePool.java =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/java/MaplePool.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** MaplePool.java 5 May 2003 05:15:42 -0000 1.2 --- MaplePool.java 1 Sep 2003 20:22:23 -0000 1.3 *************** *** 427,431 **** report.append("</table>\n"); } else { ! report.append("There are no active Maple processes.<br>\n"); } --- 427,431 ---- report.append("</table>\n"); } else { ! report.append("There are no active Maple processes.<br />\n"); } |
From: <gus...@us...> - 2003-09-01 17:21:12
|
Update of /cvsroot/aimmath/AIM/WEB-INF/classes In directory sc8-pr-cvs1:/tmp/cvs-serv22780/WEB-INF/classes Modified Files: Alice.class AliceLog.class AliceLogEntry.class AliceRequest.class Log Message: browser detection bug fix Index: Alice.class =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/classes/Alice.class,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 Binary files /tmp/cvsBVWNPm and /tmp/cvsI2tLpz differ Index: AliceLog.class =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/classes/AliceLog.class,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 Binary files /tmp/cvskEMepn and /tmp/cvsw7zLDA differ Index: AliceLogEntry.class =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/classes/AliceLogEntry.class,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 Binary files /tmp/cvsnF28Np and /tmp/cvssSFhrF differ Index: AliceRequest.class =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/classes/AliceRequest.class,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 Binary files /tmp/cvsSyl9Tq and /tmp/cvsimOICH differ |
From: <mo...@us...> - 2003-09-01 16:34:47
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple/aim In directory sc8-pr-cvs1:/tmp/cvs-serv14699 Modified Files: LaTeX.mpl Log Message: restored the previous code for `latex/latex/symbol` to fix the bug that was created when it was removed which ln to format in itialics Index: LaTeX.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/LaTeX.mpl,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** LaTeX.mpl 1 Sep 2003 05:55:59 -0000 1.4 --- LaTeX.mpl 1 Sep 2003 16:34:42 -0000 1.5 *************** *** 50,53 **** --- 50,76 ---- # KM `Package/Assign`( + `latex/latex/symbol`, + "", + proc(QQ) + local texlist, s,n,`{`, `}`, `\\_`; + option system, remember; + if assigned(`latex/special_names`[cat(``,QQ)]) then + texlist := `latex/special_names`[cat(``,QQ)] + elif member(QQ, eval(`latex/greek`, 1)) then + texlist := `latex/latex/copy`(cat(`\\`,QQ)) + else + texlist := `latex/latex/copy`(QQ); + s := convert(texlist,string); + if s <> "" and substring(s,1..1) = "&" then + s := substring(s,2..-1); + n := convert(s,name); + texlist := `latex/latex/copy`(n); + fi; + fi; + RETURN(texlist); + end + ): + + `Package/Assign`( `latex/latex/**`, "This function overrides the default Maple routine for |
From: <gus...@us...> - 2003-09-01 14:58:51
|
Update of /cvsroot/aimmath/AIM/WEB-INF/java In directory sc8-pr-cvs1:/tmp/cvs-serv30307/WEB-INF/java Modified Files: Alice.java Log Message: browser detection bug fix Index: Alice.java =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/java/Alice.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Alice.java 31 Aug 2003 11:44:33 -0000 1.5 --- Alice.java 1 Sep 2003 14:58:47 -0000 1.6 *************** *** 597,601 **** String tthOpt = ""; //get user agent ! String browser = request.getHeader("User-Agent").toLowerCase(); //System.out.println("Browser: " + browser); --- 597,603 ---- String tthOpt = ""; //get user agent ! String browser = request.getHeader("User-Agent"); ! if (browser != null) { ! browser = browser.toLowerCase(); //System.out.println("Browser: " + browser); *************** *** 612,616 **** tthOpt = "-u"; } ! maple.exec("`aim/Main`(" + commandargs + "):\n", webOutput, alicereq.mathdisplay, tthOpt); } catch(Exception e) { --- 614,619 ---- tthOpt = "-u"; } ! } ! maple.exec("`aim/Main`(" + commandargs + "):\n", webOutput, alicereq.mathdisplay, tthOpt); } catch(Exception e) { *************** *** 1289,1291 **** // compile-command: "javac -d /aim/WEB-INF/classes Alice.java" // End: - --- 1292,1293 ---- |
From: <gr...@us...> - 2003-09-01 09:01:53
|
Update of /cvsroot/aimmath/AIM/doc In directory sc8-pr-cvs1:/tmp/cvs-serv3737 Modified Files: installlin.html Log Message: A further update ... hopefully good enough now for AiM 3.0 :-) - GG Index: installlin.html =================================================================== RCS file: /cvsroot/aimmath/AIM/doc/installlin.html,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** installlin.html 29 Aug 2003 19:05:14 -0000 1.2 --- installlin.html 1 Sep 2003 09:01:48 -0000 1.3 *************** *** 17,21 **** <li><a href="#jre">Install the Java runtime environment</a></li> <li><a href="#tomcat">Install the Tomcat web server</a></li> - <li><a href="#tth">Install TtH (TeX-to-HTML)</a></li> <li><a href="#aim">Install AiM itself</a></li> </ol> --- 17,20 ---- *************** *** 70,75 **** contact <a href='mailto:in...@ma...'>Waterloo Maple</a> directly to ensure that you are complying with your license terms. If ! you have any complex discussions about licensing issues then (<a ! href='mailto:N.P...@sh...'>Neil Strickland</a>) would appreciate a copy. Waterloo Maple are aware of AiM and are generally supportive. Our main contact there has been <a --- 69,74 ---- contact <a href='mailto:in...@ma...'>Waterloo Maple</a> directly to ensure that you are complying with your license terms. If ! you have any complex discussions about licensing issues then <a ! href='mailto:N.P...@sh...'>Neil Strickland</a> would appreciate a copy. Waterloo Maple are aware of AiM and are generally supportive. Our main contact there has been <a *************** *** 83,95 **** by downloading and running the <a href="http://aimmath.sourceforge.net/j2re-1_4_2_01-linux-i586.bin">installer ! for JRE 1.4.2</a> (14MB) or you can install the full developer's kit ! by downloading and running the ! <a href="http://aimmath.sourceforge.net/j2sdk-1_4_2_01-linux-i586.bin">installer ! for SDK 1.4.2</a> (35MB) both from ! <a href="http://java.sun.com">java.sun.com</a> (the latter of these gives ! you <code>javac</code> and others, which you will need if you intend to ! compile java code). By default, it will unpack in <font ! color='green'>/usr/java/j2sdk1.4.2_01</font> (but it will allow you to ! install it in <font color='green'>/usr/local/java/j2sdk1.4.2_01</font> if you prefer). You should make a symbolic link to this from <font color='green'>/usr/java/jdk</font> (or <font --- 82,91 ---- by downloading and running the <a href="http://aimmath.sourceforge.net/j2re-1_4_2_01-linux-i586.bin">installer ! for JRE 1.4.2</a> (14MB) or you can install the full developer's kit (SDK) ! which can be obtained free from <a href="http://java.sun.com">java.sun.com</a> ! (35MB) (the full SDK gives you <code>javac</code> and others, which you will ! need if you intend to compile java code). By default, the JRE or SDK will ! unpack in <font color='green'>/usr/java/j2sdk1.4.2_01</font> (but it will allow ! you to install it in <font color='green'>/usr/local/java/j2sdk1.4.2_01</font> if you prefer). You should make a symbolic link to this from <font color='green'>/usr/java/jdk</font> (or <font *************** *** 112,128 **** <h2><a name="tth">TtH</a></h2> ! You will need to download the TeX-to-HTML converter TtH from <a ! href="http://hutchinson.belmont.ma.us/tth/">hutchinson.belmont.ma.us/tth/</a>. ! The executable file <font color='green'>tth</font> should be in a standard ! path such as <font color='green'>/usr/bin</font> or <font color='green'>/usr/local/bin</font>. TtH, by default, uses symbol fonts, which should display ! properly under Internet Explorer or Netscape 4 (and earlier) on Windows ! platforms. Recent versions of Netscape and Mozilla no longer support ! symbol fonts, but do display Unicode fonts (which, alas, Internet Explorer ! does not fully support). If you know that your users will have recent ! browsers with Unicode support then another option is to make TtH use ! the -u flag; see the mailing list for discussion of how to do this and ! whether it is a good idea. We hope to soon to have the facility to ! detect the browser so that AiM serves pages with symbol fonts or Unicode ! fonts as appropriate for the browser. <h2><a name="aim">AiM</a></h2> --- 108,146 ---- <h2><a name="tth">TtH</a></h2> ! If you don't already have <font color='green'>tth</font> ! (the command that runs the TeX-to-HTML converter TtH from <a ! href="http://hutchinson.belmont.ma.us/tth/">hutchinson.belmont.ma.us/tth/</a>) ! installed or if your already installed version of <font color='green'>tth</font> ! is version 3.30 or better, you may skip this section. ! <p/> ! During the running of <font color='green'>AutoConf.mpl</font> (see the next ! section), the TtH used by AiM is set to the first one found by searching the ! standard paths <font color='green'>/usr/local/bin</font>, ! <font color='green'>/usr/bin</font> and <font color='green'>/bin</font>, ! and if it is not found amongst these paths it is set to the copy of ! <font color='green'>tth</font> that comes with the AiM distribution. ! If <font color='green'>AutoConf.mpl</font> finds a version ! of <font color='green'>tth</font> on your system that is older than 3.30 ! you should set AiM to use its own copy, by setting ! <blockquote> ! <code>Config['TtHProgram'] := "/usr/local/tomcat/webapps/AiM/bin/tth_exe/tth": ! </code> ! </blockquote> ! (modified appropriately for whatever your AiM webapps directory is) in ! <font color='green'>ManualConfig.mpl</font> and rerunning <font ! color='green'>AutoConf.mpl</font>. ! <p/> ! Note that versions of TtH older that 3.30 may translate some ``unbalanced'' ! LaTeX <code>eqnarray</code> environments so that they are not nicely centred. ! This problem was fixed in version 3.30. ! <p/> ! Note also that by default, TtH uses symbol fonts, which display fine ! with Internet Explorer or Netscape 4 (and earlier) on Windows platforms. ! However, recent versions of Netscape and Mozilla no longer support symbol fonts ! (at least not directly), but do display Unicode fonts (which, alas, ! Internet Explorer does not fully support) which TtH can be configured to use ! via a -u flag. AiM now has some limited browser detection - it should detect ! Mozilla, Netscape 6+ and Safari and display pages using Unicode; for other ! browsers AiM will default to using symbol fonts. <h2><a name="aim">AiM</a></h2> *************** *** 178,185 **** are generated automatically, so you should use some other name. <p/> ! Now start Maple, and read in the file ! <font color='green'>AutoConf.mpl</font>. This will try to ! find out all the necessary configuration information automatically. ! If it complains of any problems, you may wish to set <font color='green'>waffle := true</font> and run it again to get a more verbose report. The output is saved in the file --- 196,209 ---- are generated automatically, so you should use some other name. <p/> ! You are now ready to configure AiM. This is done by starting Maple, and ! reading the file <font color='green'>AutoConf.mpl</font> via ! <blockquote> ! <code>read "AutoConf.mpl";</code> ! </blockquote> ! Particularly if you have not installed AiM before, you should be able to ! do this now and sort out any problems later. (If you'd rather be more ! certain or do have a previous version of AiM installed, read the next ! paragraph first.) If there are complaints when running <font ! color='green'>AutoConf.mpl</font>, you may wish to set <font color='green'>waffle := true</font> and run it again to get a more verbose report. The output is saved in the file *************** *** 187,204 **** printed on the terminal. <p/> ! Under Linux, <font color='green'>AutoConf.mpl</font> will probably ! find everything it needs. There is currently a problem with time ! zones, however; if automatic configuration reports a time zone that ! already includes a shift for summer time, then you should manually ! correct it to the corresponding zone without a shift. For example, ! BST = British Summer Time = GMT + 1 hour should be changed to GMT = ! GMT + 0 hours. To provide help, you should copy the file <font ! color='green'>ManualConfig.dist</font> to <font color='green'>ManualConfig.mpl</font> and then edit it following the instructions included in the file. You should then run <font ! color='green'>AutoConf.mpl</font> again. This will run various ! consistency checks as well as generating other configuration files. ! You can iterate this procedure as often as you like until you get ! an installation without error messages. <p/> By the way, by running <font color='green'>AutoConf.mpl</font>, --- 211,272 ---- printed on the terminal. <p/> ! <a name = "reconfig"> ! Usually <font color='green'>AutoConf.mpl</font></a> will find everything ! it needs, but if not, you will need to have a file <font ! color='green'>ManualConfig.mpl</font> that contains the parameters ! whose default values you wish to override and rerun <font ! color='green'>AutoConf.mpl</font>. To create such a file start ! by copying <font color='green'>ManualConfig.dist</font> to <font color='green'>ManualConfig.mpl</font> and then edit it following the instructions included in the file. You should then run <font ! color='green'>AutoConf.mpl</font> again. You can iterate this procedure ! as often as is needed until you get an installation without error messages. ! Particular settings you may want to check are the following: ! <dl> ! <dt><em>Did you already have </em><font color='green'>tth</font> ! <em>installed prior to installing AiM?</em> ! <dd>If so have a quick look at the section regarding ! <a href = "#tth">TtH</a>.</dd> ! <dt><em>Do you need to set the port used by Tomcat to something other ! that the default?</em> ! <dd>The default port used by Tomcat is 8080. Prior to AiM 3.0 the ! default port was 80. The issues to consider are: ! <ul> ! <li>When port 80 is used, it need not appear in the URL, but then ! Tomcat needs to be run as a root process.</li> ! <li>If port 8080 is used (or any other port > 1024) then the ! string <tt>:8080</tt> (or whatever port was used) needs to ! appear after the domain part of the URL, but Tomcat need not ! be run as a root process.</li> ! </ul> ! If you are upgrading from a previous installation ! that used port 80, then it will probably be best to stick with that, ! but then you will need to set ! <blockquote> ! Config['TomcatPort'] := 80: ! </blockquote> ! in <font color='green'>ManualConfig.mpl</font>. If you neglected ! to do this the first time around you may have to manually edit ! the files <font color='green'>admin.html</font> and ! <font color='green'>index.html</font> in ! the <font color='green'>WEB-INF</font> directory and ! <font color='green'>DefaultZone.mpl</font> ! in the <font color='green'>WEB-INF/root</font> directory, to remove ! the string <tt>:8080</tt>. Incidentally, the port used by Tomcat is ! set in the <tt><Connector/><tt> tag ! (that is in turn embedded in <tt><Server ...><Service ...> ! ... </Service></Server></tt>) in the file ! <font color='green'>/usr/local/tomcat/conf/server.xml</font>.</dd> ! <dt><em>Is the time set correctly?</em> ! <dd>There is currently a problem with time zones; if automatic ! configuration reports a time zone that includes a shift for ! summer time, then you may need to manually correct it to the ! corresponding zone without a shift. For example, ! BST = British Summer Time = GMT + 1 hour should be changed to ! GMT = GMT + 0 hours. If you are in the southern hemisphere or ! your locale doesn't have daylight saving, you may want ! to hard-set the time in <font color='green'>ManualConfig.mpl</font> ! (see the end of the file).</dd> ! </dl> <p/> By the way, by running <font color='green'>AutoConf.mpl</font>, *************** *** 206,211 **** configures Tomcat, writing <ul> - <li>configuration information for Tomcat to the file - <font color='green'>/usr/local/tomcat/conf/server.xml</font>;</li> <li>AiM-specific configuration information to the file <font color='green'>WEB-INF/web.xml</font> under the --- 274,277 ---- *************** *** 222,225 **** --- 288,323 ---- executing <font color='green'>WEB-INF/startaim.sh</font> in the main AiM directory. + <p/> + The scripts <font color='green'>WEB-INF/startaim.sh</font> and + <font color='green'>WEB-INF/stopaim.sh</font> start and stop the + Tomcat server <em>completely</em>. This may be inconvenient if you have + multiple AiM installations or indeed other webapps served by your + Tomcat, in which case you may wish to activate Tomcat's + <strong>manager</strong> role. One way to do this is to add a line + <blockquote> + <code><user name="..." password="..." roles="manager" /></code> + </blockquote> + for appropriate ...s in <font + color='green'>/usr/local/tomcat/conf/tomcat-users.xml</font> + and the lines + <blockquote> + <code><Context path="/manager" debug="0" privileged="true" + docBase="/usr/local/tomcat/server/webapps/manager"/></code> + </blockquote> + in <font color='green'>/usr/local/tomcat/conf/server</font> between the + <code><Server ...><Service ...> ... + </Service></Server></code> tags. After restarting Tomcat + you will then be able to start and stop a single installation of AiM, by + entering the appropriate one of + <blockquote> + <tt>http://.../manager/stop?path=/AiM</tt><br/> + <tt>http://.../manager/start?path=/AiM</tt> + </blockquote> + in the URL address field of your web browser, where ... is + the appropriate domain of your AiM site. These commands each bring up a + dialog box in which you must enter a username and password (as defined in + <font color='green'>/usr/local/tomcat/conf/tomcat-users.xml</font>). See + <a href = + "http://jakarta.apache.org/tomcat/tomcat-4.1-doc/manager-howto.html">http://jakarta.apache.org/tomcat/tomcat-4.1-doc/manager-howto.html</a> for more details. </li> <li>Point your webbrowser at the URL of the AiM server. This will be something *************** *** 299,304 **** server, or change the port that Tomcat is listening and also set <font color='green'>Config['TomcatPort']</font> ! in <font color='green'>AutoConfig.mws</font> to specify a ! different port and reexecute that worksheet. </li> <li>The message <font color='red'>Catalina.stop: --- 397,403 ---- server, or change the port that Tomcat is listening and also set <font color='green'>Config['TomcatPort']</font> ! in <font color='green'>ManualConfig.mpl</font> to specify a ! different port and rerun <font color='green'>AutoConf.mpl</font> ! (see <a href = "#reconfig">above</a>. </li> <li>The message <font color='red'>Catalina.stop: *************** *** 309,313 **** </ul> <hr/> ! Last modified by Greg Gamble on 30/08/03 </body> --- 408,412 ---- </ul> <hr/> ! Last modified by Greg Gamble on 01/09/03 </body> |
From: <mo...@us...> - 2003-09-01 05:56:38
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple In directory sc8-pr-cvs1:/tmp/cvs-serv8501 Modified Files: Aim.mpl AliceServer.mpl PackageList Random.mpl Util.mpl Log Message: Several new packages and modifications... see posting to developer's list Index: Aim.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Aim.mpl,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Aim.mpl 25 Aug 2003 21:47:18 -0000 1.3 --- Aim.mpl 1 Sep 2003 05:53:28 -0000 1.4 *************** *** 513,516 **** --- 513,519 ---- quizcontext['QueryLink'] := subj['QueryLink']; + # KM + solnRevealed := false; + # END KM if subj['IsRegistered',id] then quizcontext['Student'] := eval(subj['GetStudent',id]); *************** *** 520,524 **** # this quiz, show them again until he requests a new version seedfile := cat(quiz['RootDir'],"/records/",id,"/seed.m"); - solnRevealed := false; if `OS/FileExists`(seedfile) and not command="NewQuizVersion" then seed := AimCache['Load',seedfile]; --- 523,526 ---- *************** *** 538,541 **** --- 540,545 ---- fi; + isguest := quizcontext['StudentIsGuest']; + quizcontext['Password'] := password; quizcontext['Param'] := eval(param); *************** *** 554,560 **** # DIST command <> "NewQuizVersion" and # DIST command <> "ShowQuizSolutions" ! param["Focused"] = "true" # END KM - ); focuslabel := param["FocusLabel"]; --- 558,565 ---- # DIST command <> "NewQuizVersion" and # DIST command <> "ShowQuizSolutions" ! param["Focused"] = "true") and ! not (isguest and ! member(command,{"ShowQuizSolutions","NewQuizVersion"})); # END KM focuslabel := param["FocusLabel"]; *************** *** 594,598 **** #################### - isguest := quizcontext['StudentIsGuest']; mode := quiz['Mode']; notstrict := evalb(mode <> "strict"); --- 599,602 ---- *************** *** 638,642 **** quizcontext['UseRecordedSeed'] := evalb(not(isguest or (command = "NewQuizVersion"))); ! quizcontext['UseSeedParameter'] := isguest; quizcontext['GenerateSeed'] := evalb(isguest or (command = "NewQuizVersion")); --- 642,650 ---- quizcontext['UseRecordedSeed'] := evalb(not(isguest or (command = "NewQuizVersion"))); ! # KM ! # DIST quizcontext['UseSeedParameter'] := isguest; ! quizcontext['UseSeedParameter'] := ! evalb(isguest and not(command = "NewQuizVersion")); ! # END KM quizcontext['GenerateSeed'] := evalb(isguest or (command = "NewQuizVersion")); *************** *** 644,651 **** quizcontext['RecordSeed'] := # KM - # DIST quizcontext['DeleteSeed'] := showsol; - # TODO: Check if this still works for guests... # DIST evalb(not(isguest) and (command = "NewQuizVersion")); ! evalb(not isguest); quizcontext['DeleteSeed'] := evalb(command = "NewQuizVersion"); --- 652,658 ---- quizcontext['RecordSeed'] := # KM # DIST evalb(not(isguest) and (command = "NewQuizVersion")); ! not isguest; ! # DIST quizcontext['DeleteSeed'] := showsol; quizcontext['DeleteSeed'] := evalb(command = "NewQuizVersion"); *************** *** 691,695 **** quizcontext['ShowPrevious'] := true; quizcontext['ShowFeedback'] := showmark; ! quizcontext['ShowMark'] := showmark; quizcontext['ShowRightAnswer'] := showsol; quizcontext['ShowSolution'] := showsol; --- 698,705 ---- quizcontext['ShowPrevious'] := true; quizcontext['ShowFeedback'] := showmark; ! # KM ! # DIST quizcontext['ShowMark'] := showmark; ! quizcontext['ShowMark'] := showmark and not isguest; ! # END KM quizcontext['ShowRightAnswer'] := showsol; quizcontext['ShowSolution'] := showsol; Index: AliceServer.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/AliceServer.mpl,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** AliceServer.mpl 25 Aug 2003 21:47:18 -0000 1.3 --- AliceServer.mpl 1 Sep 2003 05:53:28 -0000 1.4 *************** *** 29,33 **** interface(warnlevel = 0): readlib(latex): ! unassign('`latex/exp`'): unassign('`latex/ln`'): unassign('`latex/log`'): --- 29,35 ---- interface(warnlevel = 0): readlib(latex): ! # KM ! # DIST unassign('`latex/exp`'): ! # END KM unassign('`latex/ln`'): unassign('`latex/log`'): *************** *** 94,97 **** --- 96,103 ---- unassign('zonefile'): # tidy up + # KM + e := exp(1); + _LatexSmallFractionConstant := 5000; + # END KM pi := Pi: Index: PackageList =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/PackageList,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** PackageList 25 Aug 2003 21:47:18 -0000 1.2 --- PackageList 1 Sep 2003 05:53:28 -0000 1.3 *************** *** 18,21 **** --- 18,25 ---- aim/Mark aim/SyntaxHints + aim/Decimal + aim/SET + aim/Inert + aim/Number aim/Diff aim/Int *************** *** 39,42 **** --- 43,47 ---- aim/admin/SourceDir aim/admin/SourceFile + aim/admin/CompileSubject aim/admin/Quiz aim/admin/Subject Index: Random.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Random.mpl,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Random.mpl 25 Aug 2003 21:47:18 -0000 1.3 --- Random.mpl 1 Sep 2003 05:53:28 -0000 1.4 *************** *** 55,59 **** "Implements Ken Monks' Rand() function, a recursive random thing-maker. See the <a href=\"http://math.scranton.edu/monks/software/Rand/Rand.html\">Help file for Rand()</a> for details.", proc() ! local f,a,n,L,wt,i,r,tot,cm,pick,s,m,w,ans,t,newargs,S,AreEqual: global RandLevel; --- 55,59 ---- "Implements Ken Monks' Rand() function, a recursive random thing-maker. See the <a href=\"http://math.scranton.edu/monks/software/Rand/Rand.html\">Help file for Rand()</a> for details.", proc() ! local f,a,b,n,L,wt,i,r,tot,cm,pick,s,m,w,ans,t,newargs,S,AreEqual,R,V,F,Fargs,finished,numargs,Nops,mx,mn,treesizes,j: global RandLevel; *************** *** 69,78 **** fi: S:=StringTools[SubstituteAll](S,"%","%%"); ! S:=cat(S,"\n<br/>\n"); if not type(RandLevel,integer) then RandLevel:=1; else RandLevel:=RandLevel+1; fi; ! S:=cat("-"$RandLevel,S); printf(S); fi: --- 69,78 ---- fi: S:=StringTools[SubstituteAll](S,"%","%%"); ! S:=cat(S,"\n<br>\n"); if not type(RandLevel,integer) then RandLevel:=1; else RandLevel:=RandLevel+1; fi; ! S:=cat("-"$RandLevel,">",S); printf(S); fi: *************** *** 113,123 **** # fairly pick one of the args pick:=rand(tot)()+1: cm:=wt[1]: for i to nargs while cm<pick do cm:=cm+wt[i+1]; od: # putting eval here allows us to pass Rand unevaluated arguments like 'x' # which may store things that AIM can't parse, # so they can make it here for use in Rand r:=eval(newargs[i]): ! # and process it --- 113,125 ---- # fairly pick one of the args + pick:=rand(tot)()+1: cm:=wt[1]: for i to nargs while cm<pick do cm:=cm+wt[i+1]; od: + # putting eval here allows us to pass Rand unevaluated arguments like 'x' # which may store things that AIM can't parse, # so they can make it here for use in Rand r:=eval(newargs[i]): ! # and process it *************** *** 128,131 **** --- 130,144 ---- elif type(r,range(integer)) then ans:=rand(r)(): + # "a".."b" + elif type(r,range(string)) then + a:=op(1,convert(op(1,r),bytes)); + b:=op(1,convert(op(2,r),bytes)); + s:=seq(convert([t],bytes),t=a..b); + ans:=Rand(s): + # 0.01..1.0 + elif type(r,range(float)) then + a:=op(2,op(1,r)); b:=op(2,op(2,r)); m:=min(a,b); + s:=op(1,op(1,r))*10^(a-m); t:=op(1,op(2,r))*10^(b-m); L:=sort([s,t]); + ans:=Float(Rand(L[1]..L[2]),m): # [...] elif type(r,list) then *************** *** 152,159 **** ans:=`new/SET`(Rand(Seq(op(r)))); else ! ans:=`new/SET`(Rand(Seq(op(r),isEqual))); fi: # if a SET object is passed, use its list of elements ! elif type(r,table) and op(1,op(r))='SET' then ans:=Rand(r['Elements']); # SUM(...) --- 165,172 ---- ans:=`new/SET`(Rand(Seq(op(r)))); else ! ans:=`new/SET`(Rand(Seq(op(r),`aim/Test`))); fi: # if a SET object is passed, use its list of elements ! elif type(r,'SET') then ans:=Rand(r['Elements']); # SUM(...) *************** *** 194,198 **** for i to 1000 while nops(ans)<n do t:=Rand(a); ! if not member(t,ans) then ans:=[op(ans),eval(t)]; fi: od: fi; --- 207,211 ---- for i to 1000 while nops(ans)<n do t:=Rand(a); ! if not member(eval(t),ans) then ans:=[op(ans),eval(t)]; fi: od: fi; *************** *** 230,235 **** --- 243,349 ---- ans:=L fi: + # Partition(...) + elif type(r,specfunc(anything,'Partition')) then + Nops:=nops(r); + if Nops=1 then + ans:=Rand(Permute(combinat['randpart'](Rand(op(r))))); + elif Nops=2 then # second argument specifies the number of terms in the partition + L:=NULL; n:=Rand(op(1,r)); s:=Rand(op(2,r)); + if n<s then error "No such partition exists" fi; + for i to s-1 do + m:=Rand(1..n-(s-i)); + L:=L,m; + n:=n-m; + od: + ans:=[L,n]; + elif Nops=3 then # third argument specifies the maximum size of a term in the partition + L:=NULL; n:=Rand(op(1,r)); s:=Rand(op(2,r)); mx:=Rand(op(3,r)); + if n<s or mx*s<n then error "No such partition exists" fi; + for i to s-1 do + m:=Rand(1..min(n-(s-i),mx)); + L:=L,m; + n:=n-m; + od: + ans:=[L,n]; + elif Nops=4 then # fourth argument specifies the minimum size of a term in the partition + L:=NULL; n:=Rand(op(1,r)); s:=Rand(op(2,r)); mx:=Rand(op(3,r)); mn:=Rand(op(4,r)); + for i to s-1 do + m:=Rand(1..min(n-(s-i),mx)); + L:=L,m; + n:=n-m; + od: + ans:=[L,n]; + fi; + # Frac(integerpart,den) + elif type(r,specfunc(anything,'Frac')) then + if nops(r)<>2 then + error "Syntax: Frac(integerpart,den)"; + fi; + n:=Rand(op(1,r)); m:=Rand(op(2,r)); a:=Rand(1..m-1); + ans:=(a+n*m)/m; + + # Random Expressions from a family of operators + elif type(r,specfunc(anything,Expression)) then + R:=[op(r)]; + n:=nops(R); # the number of Inerts to use + if n=0 then error "Syntax: Expression() must have at least one argument" fi: + # each element of R is an argument to Rand which returns + # a vector with two or three elements A,B,C where A is an Inert + # B is argument to Rand that produces elements in the + # domain of A. If A can have any number of args then C is an + # argument to Rand which produces the number of arguments to use + # we do not randomize the order of the args, in case the user + # wants to specify a particular order. + V:=Rand(R[1]); # take the first Inert + F:=V[1]; + if not type(F,'Inert') then + error "Syntax: First element in vector must be an Inert" + fi; + numargs:=F['Nargs']; + if numargs<0 then + # the vector must have three components, the third being the number of arguments to use + if linalg[vectdim](V)<3 then + error "Syntax: the number of arguments must be specified for Inerts with an arbitrary number of arguments"; + fi; + numargs:=V[3]; + fi: + # partition the provided Inerts among the arguments to F + if n=1 then + treesizes:=[seq(0,i=1..numargs)]; + else + treesizes:=Rand(Partition(n-1,1..min(numargs,n-1))); + treesizes:=Rand(Permute([op(treesizes),seq(0,i=1..numargs-nops(treesizes))])); + fi: + # try to find a selection that is in the domain + finished:=false; + for i to 1000 while not finished do + Fargs:=NULL; m:=2; + for j to numargs do + if treesizes[j]=0 then + if nops([Fargs])=1 then + Fargs:=eval(Fargs),Rand(op(2,R[1])); + else + Fargs:=Fargs,Rand(op(2,R[1])); + fi; + else + if nops([Fargs])=1 then + Fargs:=eval(Fargs),Rand(Expression(op(R[m..m+treesizes[j]-1]))); + else + Fargs:=Fargs,Rand(Expression(op(R[m..m+treesizes[j]-1]))); + fi; + m:=m+treesizes[j]; + fi: + od: + if F['Domain'](Fargs) then finished:=true; fi: + od: + if i>1000 then + error "More than 1000 attempts failed to produce an element in the domain." + fi; + ans:=Apply(F,Fargs); + + # sometimes we want Rand to return NULL elif r='Null' then ans:=NULL; + # everything else just gets returned else *************** *** 239,252 **** # print debug info if type(infolevel[`Rand`],integer) and infolevel[`Rand`]>0 then if ans=NULL then ! S:=cat("."$RandLevel,"Rand returned null. "); else ! S:=cat("."$RandLevel,sprintf("Rand selected: %q",eval(ans))); fi: if infolevel[`Rand`]=1 then ! if length(S)>250 then S:=cat(substring(S,1..250),"...") fi; fi; S:=StringTools[SubstituteAll](S,"%","%%"); ! S:=cat(S,"\n<br/>\n"); RandLevel:=RandLevel-1; printf(S); --- 353,371 ---- # print debug info if type(infolevel[`Rand`],integer) and infolevel[`Rand`]>0 then + S:=cat("<","."$RandLevel); if ans=NULL then ! S:=cat(S,"Rand returned null. "); ! elif type(ans,Inert) then ! S:=cat(S,"Rand selected the Inert whose name is: ",ans['Name']); ! elif type(ans,InertExpr) then ! S:=cat(S,"Rand returned the InertExpr whose TeX string is: ",ans['TeX']); else ! S:=cat(S,sprintf("Rand selected: %q",eval(ans))); fi: if infolevel[`Rand`]=1 then ! if length(S)>100 then S:=cat(substring(S,1..100),"...") fi; fi; S:=StringTools[SubstituteAll](S,"%","%%"); ! S:=cat(S,"\n<br>\n"); RandLevel:=RandLevel-1; printf(S); *************** *** 273,276 **** --- 392,578 ---- end ): + + ################################################################### + # Generate 'Nice' Random Things + ################################################################### + + `Package/Assign`( + `Nice/Monomial`::procedure, + "Produces a monomial of the form @a*x^n@ where @a@ is randomly selected from @arange@ and @n@ is randomly selected from @deg@ if those arguments are present. If @deg@ or @arange@ are not passed as arguments the default value is @1..3@ for both. The argument @x@ is mandatory and can be any algebraic expression or Inert Expression.", + proc(x::{algebraic,InertExpr},deg,arange) + local n,a,nr,ar; + + # defaults + nr:=[1..3]; + ar:=[1..3]; + # overriden + if nargs>1 then nr:=deg fi; + if nargs>2 then ar:=arange fi; + + n:=Rand(nr); + a:=Rand(ar); + + Times(a,ToThe(x,n)) + + end + ): + + `Package/Assign`( + `Nice/Binomial`::procedure, + "Produces a \"nice\" binomial from its arguments (which is more complicated than it sounds). If one looks through the problems assigned in a typical calculus or precalc book, one will notice that there are certain rules that authors tend to follow when designing \"nice\" questions. This procedure attempts to produce a \"nice\" random binomial in @x@ that is a sum of a monomial in @x@ and a constant term in a random order. The defaults for the degree of the monomial and the two coefficients can be overriden by supplying the appropriate arguments. The argument @x@ is mandatory and can be any algebraic expression or Inert Expression.", + proc(x::{algebraic,InertExpr},deg,arange,brange) + local n,a,b,nr,ar,br,i; + + # defaults + nr:=[1,[1..3]]; + ar:=[-3..-1,1..3]; + br:=[-3..-1,1..3]; + # overriden + if nargs>1 then nr:=deg fi; + if nargs>2 then ar:=arange fi; + if nargs>3 then br:=brange fi; + + n:=Rand(nr); + + # don't let them both be negative + for i to 20 do + a:=Rand(ar); + b:=Rand(br); + if `aim/StartsNegative`(a) and `aim/StartsNegative`(b) then + # Randomly choose who gets first opportunity to be changed + if Rand(true,false) then + if type(a,algebraic) then + a:=abs(a): break + elif type(b,algebraic) then + b:=abs(b): break + fi + else + if type(b,algebraic) then + b:=abs(b): break + elif type(b,algebraic) then + a:=abs(a): break + fi + fi + else + break + fi: + od: + + # if its degree 1 you can use both coefficients + if n=1 then + if `aim/StartsNegative`(a) then + return Plus(b,Times(a,x)); + elif `aim/StartsNegative`(b) then + return Plus(Times(a,x),b); + else + return Plus(Rand(Permute(Times(a,x),b))); + fi; + # otherwise we only use one coefficient unless its overriden + else + # a is negative so put it second + if `aim/StartsNegative`(a) then + # overridden... use b + if nargs>3 then + return Plus(b,Times(a,ToThe(x,n))); + # default.. don't use b + else + return Plus(1,Times(a,ToThe(x,n))); + fi; + # b is negative so put it second + elif `aim/StartsNegative`(b) then + # overridden... use both + if nargs>3 then + return Plus(Times(a,ToThe(x,n)),b); + # only a was overidden, so ignore b + elif nargs=3 then + return Plus(1,Times(a,ToThe(x,n))); + # default...use just one + else + return Rand(Plus(ToThe(x,n),b),Plus(1,Times(a,ToThe(x,n)))) + fi + # neither are negative so it doesn't matter who is first + else + # b overridden... use both + if nargs>3 then + return Plus(Rand(Permute(b,Times(a,ToThe(x,n))))); + # only a was overidden, so ignore b + elif nargs=3 then + return Plus(1,Times(a,ToThe(x,n))); + # default...use just one in either order + else + return Rand(Plus(Rand(Permute(b,ToThe(x,n)))),Plus(1,Times(a,ToThe(x,n)))); + fi + fi; + fi: + end + ): + + `Package/Assign`( + `Nice/Trinomial`::procedure, + "Produces a \"nice\" trinomial in @x@. See #Nice/Binomial# for more info.", + proc(x::{algebraic,InertExpr},deg,arange,brange,crange) + local n,m,a,b,c,nr,ar,br,cr,i,typ; + + # defaults + nr:=[1..3]; + ar:=[-3..-1,1..3]; + br:=[-3..-1,1..3]; + cr:=[-3..-1,1..3]; + # overriden + if nargs>1 then nr:=deg fi; + if nargs>2 then ar:=arange fi; + if nargs>3 then br:=brange fi; + if nargs>4 then cr:=crange fi; + + m,n:=op(sort(Rand(List([nr],2)))); + b:=Rand(br); + # don't let both a and c be negative + for i to 20 do + a:=Rand(ar); + c:=Rand(cr); + if `aim/StartsNegative`(a) and `aim/StartsNegative`(c) then + # Randomly choose who gets first opportunity to be changed + if Rand(true,false) then + if type(a,algebraic) then + a:=abs(a): break + elif type(c,algebraic) then + c:=abs(c): break + fi + else + if type(c,algebraic) then + c:=abs(c): break + elif type(c,algebraic) then + a:=abs(a): break + fi + fi + else + break + fi: + od: + + # three types possible + if `aim/StartsNegative`(a) then + typ=1 + elif `aim/StartsNegative`(c) then + typ=Rand(2,3) + else + typ:=Rand(1..3) + fi; + + if typ=1 then + if nargs<=3 then b:=Rand(-1,1) fi; + if nargs<=2 then a:=Rand(-1,1) fi; + return Plus(c,Times(b,ToThe(x,m)),Times(a,ToThe(x,n))) + elif typ=2 then + if nargs<=2 then a:=1 fi: + if nargs<=4 then c:=Rand(-1,1) fi: + return Plus(Times(a,ToThe(x,n)),Times(b,ToThe(x,m)),c) + else + if nargs<=2 then a:=1 fi: + if nargs<=3 then b:=Rand(-1,1) fi: + return Plus(Times(a,ToThe(x,n)),Times(b,ToThe(x,m)),c) + fi: + end + ): EndPackage(): Index: Util.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Util.mpl,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Util.mpl 25 Aug 2003 21:47:18 -0000 1.3 --- Util.mpl 1 Sep 2003 05:53:28 -0000 1.4 *************** *** 61,64 **** --- 61,74 ---- ): + # KM + `Package/Assign`( + `Util/RemoveQuotes`::string, + "Removes any double quotes from a Maple string.", + proc(s::string) + StringTools:-Remove(rcurry(member,{"\""}),s); + end + ): + # END KM + ###################################################################### *************** *** 557,560 **** --- 567,586 ---- eval(util_exceptionmessage) ): + + # KM + `Package/Assign`( + PercentStringToProc::procedure, + "Convert a string containing @%1@, @%2@, etc into a proc which substitutes the LaTeX form of @arg[i]@ for @%i@ in the string and returns the resulting string. Occurances of @%0@ are replaced by @`aim/LaTeX`(args)@. + ", + proc(S::string) + local SS; + subs(SS=S, + proc() + local d; + `Util/PercentSubs`(SS,seq(TeX(args[d]),d=1..nargs)); + end); + end + ): + # END KM ###################################################################### |
From: <mo...@us...> - 2003-09-01 05:56:35
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple/aim/admin In directory sc8-pr-cvs1:/tmp/cvs-serv8886 Modified Files: Subject.mpl Added Files: CompileSubject.mpl Log Message: Several new packages and modifications... see posting to developer's list --- NEW FILE: CompileSubject.mpl --- # Copyright (C) 2003 Neil Strickland # Distributed without warranty under the GPL - see README for details read("Package.mpl"): Package("aim/admin/CompileSubject"," This package defines the reporting page showing the administrator the results of attempting to compile all question source files in all non-hidden quizzes in a given subject. " ): ###################################################################### `aim/admin/Command/Declare`('`admin/CompileSubject`', ['Parameter',"SubjectName" = 'required',""], ['Parameter',"QuizName" = "",""], ['Parameter',"QuestionName" = "",""], ################################################## ['Action',"TryQuestion", "Try the compiled question.", ['Command' = "try/Question", 'Arguments' = ["QuestionName"], 'LinkText' = __("Try it")]], ################################################## ['Template', [["a", "name" = "top"]], {"title"}, [["hr", "noshade"]], [["table","width" = "100%"], ["tr", [["td","align" = "left","width" = "10%"],`HTML/CloseButton`], [["td","align" = "left","width" = "16%"], [["a", "href" = "#bottom"],__("Bottom")]] ]], [["hr", "noshade"]], {"compreport"}, [["hr", "noshade"]], [["table","width" = "100%"], ["tr", [["td","align" = "left","width" = "10%"],`HTML/CloseButton`], [["td","align" = "left","width" = "16%"], [["a", "href" = "#top"],__("Top")]] ]], [["hr", "noshade"]], [["a", "name" = "bottom"]] ], ################################################## ['Process', proc(page::`aim/admin/Page`,p::table) local subject,subjname,subjtitle, quiz,quizname,quiztitle, question,questions,questionname, action,dir,fulldir,srcdir,srcfile,fullsrcfile, compreport,msg,qname,errline,lines,i,rows, sourcetext,err,title,shorttitle,filelist; subject := eval(page['Subject']); subjname := subject['Name']; subjtitle := subject['Title']; shorttitle := cat("Compiling Subject:",subjname); title := "<center><h1>",__("AIM question compilation results"),"</h1></center>\n", "<table>", "<tr><td>",__("Compiling all questions for subject:"),"</td>\n", "<td>",subjtitle,"</td></tr>\n", "</table>"; compreport := ""; for quizname in subject['QuizNames'] do compreport := compreport,"<b>",__("Quiz:  "); try quiz := eval(subject['GetQuiz',quizname]); catch : end: if not type([quiz],[`aim/Quiz`]) then compreport := compreport,quizname,"</b><br/>\n" "<font color='red'>Unable to load this quiz.</font><br/>\n" else quiztitle := quiz['Title']; compreport := compreport,quiztitle,"</b><br/>\n"; srcdir := `Util/StripSlash`(quiz['RootDir']); fulldir := cat(srcdir,"/source"); filelist := `OS/ListFiles`(fulldir); for srcfile in filelist do questions := traperror(`aim/Compile`(srcdir,srcfile)); if questions = lasterror or not type(questions,list) then compreport := compreport, __("Compilation error:"),"\n<pre>\n", `HTML/Escape/String`(questions),"\n</pre>\n<br/>"; questions := []; fi; if nops(questions) = 0 then compreport := compreport,"\n<br/>\n",__("No questions found"),"\n<br/>\n"; fi; for question in questions do if type(question,`aim/Question`) then compreport := compreport, `HTML/ToString`(`new/HTML/Tag`( "div", sprintf( __("Question %s compiled OK"), cat("<font color='green'><tt>", question['Name'], "</tt></font>")), ["br"])); elif type(question,`aim/Compile/ErrorReport`) then msg := question[1]; qname := question[2]; errline := question[3]; lines := map((x) -> `HTML/Escape`(x[1]," ",x[2],"\n"),question[4]); compreport := compreport, "<hr noshade/>\n", sprintf( __("Question <font color='red'><tt>%s</tt></font>: compilation error\n<br/>\n"), qname), msg; if errline > 0 then compreport := compreport,"\n<hr/>\n<pre>\n"; for i from 1 to errline - 1 do compreport := compreport,lines[i]; od; compreport := compreport, "<font color='red'>\n", lines[errline], "\n</font>\n"; for i from errline + 1 to nops(lines) do compreport := compreport,lines[i]; od; compreport := compreport,"</pre>\n"; fi; compreport := compreport,"<hr noshade/>\n"; else compreport := compreport, "<font color='red'>", __("Error: malformed compilation report"), "</font>\n<br/>\n<pre>\n", `HTML/Escape`(sprintf("%q",eval(question))), "\n</pre>\n<br/>\n"; fi; od; # questions od: # files fi; if quiz <> NULL then # Saving the quiz automatically updates its modification time. quiz['Save']; AimQuizCache['RemoveQuiz',quiz]; fi; compreport := compreport,"<hr noshade size=1>"; od: # quizzes title := cat(title); compreport := cat(compreport); page['Title'] := shorttitle; page['FillTemplate', "title" = title, "compreport" = compreport ]; end ] ): EndPackage(): Index: Subject.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/admin/Subject.mpl,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Subject.mpl 25 Aug 2003 21:47:19 -0000 1.3 --- Subject.mpl 1 Sep 2003 05:56:29 -0000 1.4 *************** *** 124,127 **** --- 124,135 ---- ], + # KM + ['Action',"CompileSubject", + "Compile all of the source code for all of the questions in all of the quizzes that are currently not hidden.", + ['LinkText' = __("Compile all questions in non-hidden quizzes"), + 'Command' = "admin/CompileSubject"] + ], + # END KM + ################################################## *************** *** 234,237 **** --- 242,252 ---- {"quiztable"}, ["br"], + # KM + {["CompileSubject"]}, + [["font","color"="red"], + __("  (warning: this may take a long time!)")], + ["br"], + ["hr"], + # END KM __("New quiz:")," ", [["inputtext", "name" = "QuizToCreate", "value" = ""]], *************** *** 436,442 **** ["tr", [["th", "align" = "left", "width" = "10%"], ! __("Quiz number")], [["th", "align" = "left", "width" = "30%"], ! __("Name")], [["th", "align" = "left", "width" = "10%"]," "], [["th", "align" = "left", "width" = "10%"]," "], --- 451,457 ---- ["tr", [["th", "align" = "left", "width" = "10%"], ! __("Quiz number")], [["th", "align" = "left", "width" = "30%"], ! __("Name")], [["th", "align" = "left", "width" = "10%"]," "], [["th", "align" = "left", "width" = "10%"]," "], *************** *** 463,470 **** ["tr", [["td", "align" = "left"], ! [["inputtext", ! "name" = cat(nam,"Order"), ! "value" = sprintf("%A",quiznumber), ! "size" = "3"]]], [["td","align" = "left"],nam], [["td","align" = "left"], --- 478,485 ---- ["tr", [["td", "align" = "left"], ! [["inputtext", ! "name" = cat(nam,"Order"), ! "value" = sprintf("%A",quiznumber), ! "size" = "3"]]], [["td","align" = "left"],nam], [["td","align" = "left"], *************** *** 502,515 **** [["td","align" = "left"],nam], [["td","align" = "left"], ! page['ActionLink',"TryQuiz",[nam]]], [["td","align" = "left"], ! page['ActionLink',"LoadQuizOptions",[nam]]], [["td","align" = "left"], ! page['ActionLink',"BrowseSource",[nam]]], [["td","align" = "left"]," "], [["td","align" = "left"], ! page['ActionLink',"ToggleQuiz",[nam],__("Unhide")]], [["td","align" = "left"], ! page['ActionLink',"DeleteQuiz",[nam]]]]]; od; fi; --- 517,530 ---- [["td","align" = "left"],nam], [["td","align" = "left"], ! page['ActionLink',"TryQuiz",[nam]]], [["td","align" = "left"], ! page['ActionLink',"LoadQuizOptions",[nam]]], [["td","align" = "left"], ! page['ActionLink',"BrowseSource",[nam]]], [["td","align" = "left"]," "], [["td","align" = "left"], ! page['ActionLink',"ToggleQuiz",[nam],__("Unhide")]], [["td","align" = "left"], ! page['ActionLink',"DeleteQuiz",[nam]]]]]; od; fi; |
From: <mo...@us...> - 2003-09-01 05:54:53
|
Update of /cvsroot/aimmath/AIM/doc In directory sc8-pr-cvs1:/tmp/cvs-serv8236 Added Files: AuthoringGuide.pdf Log Message: Just a quick rough draft to explain the Inert Package. I will add more to this and covert it to more editable format later. See posting to developers list. --- NEW FILE: AuthoringGuide.pdf --- (This appears to be a binary file; contents omitted.) |
From: <gus...@us...> - 2003-08-31 20:45:10
|
Update of /cvsroot/aimmath/moodle/lang/en In directory sc8-pr-cvs1:/tmp/cvs-serv23535/lang/en Modified Files: aim_quiz.php Log Message: have started work towards pdf output for the quiz Index: aim_quiz.php =================================================================== RCS file: /cvsroot/aimmath/moodle/lang/en/aim_quiz.php,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** aim_quiz.php 30 Aug 2003 15:21:31 -0000 1.3 --- aim_quiz.php 31 Aug 2003 20:44:57 -0000 1.4 *************** *** 51,54 **** --- 51,58 ---- $string['notteacher'] = "You must be a teacher to use this page."; $string['quizresults'] = "Quiz Results"; + $string['pdf_quiz'] = "Printer-friendly version of Quiz"; + $string['pdf_error'] = "There has been a problem while trying to create the pdf file."; + $string['pdf_ok'] = "The pdf file has been successfully opened in another browser window."; + $string['pdf_question'] = "Question"; $string['refresh'] = "Refresh"; $string['reviewresults'] = "Review Results"; |