https://webwork.maa.org/mediawiki_new/api.php?action=feedcontributions&user=Aubreyja&feedformat=atomWeBWorK_wiki - User contributions [en]2024-03-29T10:13:10ZUser contributionsMediaWiki 1.34.0https://webwork.maa.org/mediawiki_new/index.php?title=User:CDuran&diff=17327User:CDuran2016-08-29T15:14:35Z<p>Aubreyja: Creating user page with biography of new user.</p>
<hr />
<div>Mathematics teacher at Providence Catholic School, located in San Antonio, Texas.</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=User_talk:CDuran&diff=17328User talk:CDuran2016-08-29T15:14:35Z<p>Aubreyja: Welcome!</p>
<hr />
<div>'''Welcome to ''WeBWorK''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[http://www.mediawiki.org/wiki/Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:Aubreyja|Jason]] 11:14, 29 August 2016 (EDT)</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=User:Tjl16&diff=16555User:Tjl162015-07-06T15:33:08Z<p>Aubreyja: Creating user page with biography of new user.</p>
<hr />
<div>Lecturer at Humboldt State University teaching mainly first and second year courses</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=User_talk:Tjl16&diff=16556User talk:Tjl162015-07-06T15:33:08Z<p>Aubreyja: Welcome!</p>
<hr />
<div>'''Welcome to ''WeBWorK''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[http://www.mediawiki.org/wiki/Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:Aubreyja|Jason]] 11:33, 6 July 2015 (EDT)</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=User:Npsigmon65&diff=16553User:Npsigmon652015-07-06T15:31:49Z<p>Aubreyja: Creating user page with biography of new user.</p>
<hr />
<div>I have taught in the Mathematics and Statistics Department at Radford University since 2002. We have been using WeBWorK for several years now.</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=User_talk:Npsigmon65&diff=16554User talk:Npsigmon652015-07-06T15:31:49Z<p>Aubreyja: Welcome!</p>
<hr />
<div>'''Welcome to ''WeBWorK''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[http://www.mediawiki.org/wiki/Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:Aubreyja|Jason]] 11:31, 6 July 2015 (EDT)</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=User:Lfdame&diff=16551User:Lfdame2015-07-06T15:30:26Z<p>Aubreyja: Creating user page with biography of new user.</p>
<hr />
<div>Assistant Professor<br />
Center for Learning Innovation<br />
University of Minnesota Rochester</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=User_talk:Lfdame&diff=16552User talk:Lfdame2015-07-06T15:30:26Z<p>Aubreyja: Welcome!</p>
<hr />
<div>'''Welcome to ''WeBWorK''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[http://www.mediawiki.org/wiki/Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:Aubreyja|Jason]] 11:30, 6 July 2015 (EDT)</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=User:Sgirimurugan&diff=16549User:Sgirimurugan2015-07-06T15:30:13Z<p>Aubreyja: Creating user page with biography of new user.</p>
<hr />
<div>I am an assistant professor at Florida Gulf Coast University.</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=User_talk:Sgirimurugan&diff=16550User talk:Sgirimurugan2015-07-06T15:30:13Z<p>Aubreyja: Welcome!</p>
<hr />
<div>'''Welcome to ''WeBWorK''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[http://www.mediawiki.org/wiki/Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:Aubreyja|Jason]] 11:30, 6 July 2015 (EDT)</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=User:Negoitac&diff=16547User:Negoitac2015-07-06T15:29:58Z<p>Aubreyja: Creating user page with biography of new user.</p>
<hr />
<div>Currently professor at Oregon Tech in the Math department. I've been here for the last 10 years, and really enjoy teaching and living in Klamath Falls.</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=User_talk:Negoitac&diff=16548User talk:Negoitac2015-07-06T15:29:58Z<p>Aubreyja: Welcome!</p>
<hr />
<div>'''Welcome to ''WeBWorK''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[http://www.mediawiki.org/wiki/Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:Aubreyja|Jason]] 11:29, 6 July 2015 (EDT)</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=User:Kcha233&diff=16545User:Kcha2332015-07-06T15:29:41Z<p>Aubreyja: Creating user page with biography of new user.</p>
<hr />
<div>University of Kentucky College of Arts and Sciences Technical Services</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=User_talk:Kcha233&diff=16546User talk:Kcha2332015-07-06T15:29:41Z<p>Aubreyja: Welcome!</p>
<hr />
<div>'''Welcome to ''WeBWorK''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[http://www.mediawiki.org/wiki/Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:Aubreyja|Jason]] 11:29, 6 July 2015 (EDT)</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=User:Emammolenti&diff=16543User:Emammolenti2015-07-06T15:29:27Z<p>Aubreyja: Creating user page with biography of new user.</p>
<hr />
<div>Multimedia Assistant for Franciscan University. Setting up WebWork for the Math/Computer Science Department</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=User_talk:Emammolenti&diff=16544User talk:Emammolenti2015-07-06T15:29:27Z<p>Aubreyja: Welcome!</p>
<hr />
<div>'''Welcome to ''WeBWorK''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[http://www.mediawiki.org/wiki/Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:Aubreyja|Jason]] 11:29, 6 July 2015 (EDT)</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=User:Js&diff=16234User:Js2014-11-05T16:01:19Z<p>Aubreyja: Creating user page with biography of new user.</p>
<hr />
<div>i am a developer working toward bringing up WeBWorK at brandeis university</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=User_talk:Js&diff=16235User talk:Js2014-11-05T16:01:19Z<p>Aubreyja: Welcome!</p>
<hr />
<div>'''Welcome to ''WeBWorK''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[http://www.mediawiki.org/wiki/Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:Aubreyja|Jason]] 11:01, 5 November 2014 (EST)</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=User:Landisb&diff=16218User:Landisb2014-09-30T15:50:03Z<p>Aubreyja: Creating user page with biography of new user.</p>
<hr />
<div>Multimedia Specialist | Instructional Technologist | Jack of all Trades<br />
Evangelizing about media through classroom instruction at a small Liberal Arts college in Central Pa.<br />
Loving every aspect of my job even if I don’t have enough time to master any of it.</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=User_talk:Landisb&diff=16219User talk:Landisb2014-09-30T15:50:03Z<p>Aubreyja: Welcome!</p>
<hr />
<div>'''Welcome to ''WeBWorK''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[http://www.mediawiki.org/wiki/Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:Aubreyja|Jason]] 11:50, 30 September 2014 (EDT)</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=User:Sternits&diff=16186User:Sternits2014-09-02T19:00:19Z<p>Aubreyja: Creating user page with biography of new user.</p>
<hr />
<div>AP / Pre-AP Chemistry Teacher in Frisco, TX. I hold a B.S. and M.S. in Chemistry from University of Texas at Dallas.</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=User_talk:Sternits&diff=16187User talk:Sternits2014-09-02T19:00:19Z<p>Aubreyja: Welcome!</p>
<hr />
<div>'''Welcome to ''WeBWorK''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[http://www.mediawiki.org/wiki/Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:Aubreyja|Jason]] 15:00, 2 September 2014 (EDT)</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=Translating_OPL_Problems&diff=15721Translating OPL Problems2014-04-09T16:16:19Z<p>Aubreyja: </p>
<hr />
<div><br />
For tranlating WeBWorK OPL problems, please adhere to the following conventions:<br />
* The language tag will use [https://en.wikipedia.org/wiki/ISO_639-1 ISO 639.1].<br />
* Problem files should just have one language rather than if/then's to code them up.<br />
* We recommend that problems which are translations of each other be in the same directory with the same name, but with the 639.1 label at the end, as in sr3-2.es.pg and sr3-2.fr.pg. <br />
* But, if you translate an existing problem, do not change the existing file name to sr3-2.en.pg since that would break existing paths.<br />
* It is possible down the line that we may use the file name as a way of picking up languages, but we don't want to rush to that, so use a language tag, e.g. Language("fr")<br />
* Problems without a language tag will be assumed to be English, but authors new of English language problems are encouraged to use the Language("en") tag.<br />
<br />
[[Category:Localization]]<br />
[[Category:Translators]]<br />
[[Category:Open Problem Library]]</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=Translating_OPL_Problems&diff=15720Translating OPL Problems2014-04-09T15:56:22Z<p>Aubreyja: </p>
<hr />
<div><br />
For tranlating WeBWorK OPL problems, please adhere to the following conventions:<br />
* The language tag will use [https://en.wikipedia.org/wiki/ISO_639-1 ISO 639.1].<br />
* Problem files should just have one language rather than if/then's to code them up.<br />
* We recommend that problems which are translations of each other be in the same directory with the same name, but with the 639.1 label at the end, as in sr3-2.es.pg and sr3-2.fr.pg. <br />
* But, if you translate an existing problem, do not change the existing file name to sr3-2.en.pg since that would break existing paths.<br />
* It is possible down the line that we may use the file name as a way of picking up languages, but we don't want to rush to that, so use a language tag, e.g. Language("en")<br />
* Problems without a language tag will be assumed to be English, but authors new of English language problems are encouraged to use the Language("") tag.<br />
<br />
[[Category:Localization]]<br />
[[Category:Translators]]<br />
[[Category:Open Problem Library]]</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=Translating_OPL_Problems&diff=15719Translating OPL Problems2014-04-09T15:55:30Z<p>Aubreyja: Created page with " For tranlating WeBWorK OPL problems, please adhere to the following conventions: * The language tag will use [https://en.wikipedia.org/wiki/ISO_639-1 ISO 639.1]. * Problem fi..."</p>
<hr />
<div><br />
For tranlating WeBWorK OPL problems, please adhere to the following conventions:<br />
* The language tag will use [https://en.wikipedia.org/wiki/ISO_639-1 ISO 639.1].<br />
* Problem files should just have one language rather than if/then's to code them up.<br />
* We recommend that problems which are translations of each other be in the same directory with the same name, but with the 639.1 label at the end, as in sr3-2.es.pg and sr3-2.fr.pg. <br />
* But, if you translate an existing problem, do not change the existing file name to sr3-2.en.pg since that would break existing paths.<br />
* It is possible down the line that we may use the file name as a way of picking up languages, but we don't want to rush to that, so use a language tag, e.g. Language("en")<br />
* Problems without a language tag will be assumed to be English, but authors new of English language problems are encouraged to use the Language("") tag.<br />
<br />
[[Category:Localization]]<br />
[[Category:Translators]]<br />
[[Category:OPL]]</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=Localization&diff=9522Localization2014-04-09T15:47:34Z<p>Aubreyja: </p>
<hr />
<div><br />
<br />
= WeBWorK Localization project =<br />
<br />
Localizing WeBWorK means locating all of the literal strings (or phrases) which occur in the WeBWorK user interface and replacing them with pointers to a line <br />
in a separate message file. Instead of printing the string embedded in the WeBWorK code, the program will look up the appropriate line the message file and<br />
print that string. To translate WeBWorK to a new language we will only need to translate each message line in the message file -- this is much easier to do than searching<br />
all of the WeBWorK code for literal strings and then translating each one in place. The hard part is the initial step of replacing phrases by pointers. <br />
<br />
Initially at least this project is only concerned with translating the user interface of WeBWorK, the buttons, the error messages, the graphics which contains text and <br />
so forth. The contents of the WeBWorK problems themselves will continue to be language specific and we will not try to create any mechanism for translating problems in <br />
one language into problems in a second language.<br />
=== Details and progress for Localization project ===<br />
* '''[[Instructions_for_translators]]'''<br />
* '''[[Instructions_for_creating_language_template_files]]''' (.pot files )<br />
* [[ Demo_language_courses ]]<br />
* http://thales.math.uqam.ca/~labbes/blogue/ : a blog post by Sébastian Labbé about using WW and creating WW problems in French<br />
* Language<br />
** Ben Walter started this project using MakeText. (5/17/2011)<br />
*** <s> At the moment the language is set when the apache child starts up -- it needs to be abstracted and made configurable from Course Configuration. </s><br />
*** The language can now be selected for a given course by the instructor from the choices on the Course Configuration page.<br />
*** Adding a new language to the Course Configuration page. <br />
****this can only be done by an administrator who has access to the webwork software.<br />
****Go to the file webwork/lib/WeBWorK/Constants.pm<br />
****Edit (carefully) the lines near lines 141 --145<br />
**** Important change, add new language to popup: <br />
values => [qw(en tr es fr zh_hk heb)] <br />
-- add your language, for example for hu.po change this line. Do not use commas, use spaces, between the entries. <br />
values => [qw(en tr es fr zh_hk heb hu)]<br />
**** Description change:<br />
doc2 => 'WeBWorK currently has translations for six languages: "English en", "Turkish tr", "Spanish es", "French fr", Chinese zh_hk and Hebrew heb ',<br />
-- change this to<br />
doc2 => 'WeBWorK currently has translations for seven languages: "English en", "Turkish tr", "Spanish es", "French fr" Chinese zh_hk, Hebrew heb and Hungarian hu ',<br />
<br />
**** At some later date we'll figure out an easier method to add a new language <br />
<br />
* Date and time<br />
** We need to be able to localize the date and time format consistently and allow it to be set in Course Configuration.<br />
*** This is done for the dates shown to students in 2.5.1 (June 2012). It has yet to be implemented for the instructor views, which is a bigger project because the perl code parses the date assuming it is entered in a specific format.<br />
*** It seems the Locale module should be helpful?<br />
* (10/13/2011) Grant He, a student at the U. of Rochester, has been working on this project over the summer. (10/13/2011)<br />
** Most of the modules currently in 2.50 or the trunk version of WeBWorK have had all of the strings surrounded by MakeText tags.<br />
** The instructor editor modules: Homework Editor, Classlist Editor, and PGProblemEditor have also been localized and can be found in the development software but have not yet been placed in the trunk version of WeBWorK because some of their CSS modifications are not yet stable. They will probably be added soon as alternate editors in the same manner as Library Browser 2<br />
** <s>There are lexicons for Spanish (es.pm), Turkish (tr.pm), and French (fr.pm) -- all of them found in the current trunk version of WeBWorK. None of them are complete yet -- there are still some phrases which have not been translated, and undoubtedly translations that will need tweaking.</s><br />
<br />
* (12/10/2011) Grant He has migrated the code to use the cpan modules Locale::Maketext::Lexicon and Locale::Maketext::Simple. The main advantage is that we now have access to a wider arrange of tools for building lexicons. These are the tools compatible with the "gettext" localization project from GNU. See [[Instructions_for_translators]].<br />
** The translated strings are now kept in a new file format: *.po. There are translations for Hebrew (heb), French (fr), Spanish (sp), Chinese (zh) and Turkish (tr)<br />
<br />
<br />
*Credits:<br />
** Turkish: Ben Walter, Ozcan Kasal, Middle Eastern Technical University, Northern Cyprus Campus, Northern Cyprus<br />
** French: Stéphanie Lanthier and Sébastien Labbé, UQAM (Université du Quebec à Montreal)<br />
** Spanish: Nelly Selem, IPN(national poly technical institute); David De la Rosa, Centro de investigación en matemáticas, A.C., Mexico<br />
** Chinese: Zhuang Hou, University of Rochester <br />
<br />
* David and Nelly are also creating a collection of WeBWorK questions written in Spanish<br />
* Stéphanie and Sébastien have written problems in French<br />
* Ben and others are creating problems in Turkish<br />
<br />
* We invite others to join. If you would like to contribute to the current lexicon in some language or begin a lexicon in a new language please contact Jason Aubrey ( aubreyja at missouri dot edu) . He can supply you with the needed files and let you know who else is working on the language. You can also view the current version of the files at http://webwork.maa.org/viewvc/system/trunk/webwork2/lib/WeBWorK/Localize/<br />
<br />
=== People who have at one time or another expressed interest however mild :-) , in the localization project ===<br />
<br />
* Michael Gage, U. of Rochester, New York, USA<br />
* Jason Aubrey, U. of Missouri, Missouri, USA<br />
* David De la Rosa, Centro de Investigacion en Matematicas, Guanajuato, Gto, México <br />
* Martin Tamm, University of Stockholm, Stockholm, Sweden<br />
* Marc Buffat, Mechanical Engineering, Universite Claude Bernard Lyon 1, Lyon, France<br />
* Zsuzsanna Gönye, University of West Hungary, Szombathely, Hungary<br />
* Eva Racz, Dept. of Physics, Budapest University of Technology and Economics, Budapest, Hungary<br />
* Arie Poran, Ono Academi College, Israel<br />
* Dr. Mika Seppala, University of Helsinki, Finland<br />
* Benjamin Walter, Middle East Technical University, Turkey<br />
* Zhuang Hou, University of Rochester<br />
* Sébastien Labbé, UQAM (University of Quebec à Montréal), Montreal, Canada<br />
* Stéphanie Lanthier, UQAM, Montreal, Canada<br />
* Nelly Selem, IPN(national poly technical institute), Mexico<br />
* David de la Rosa, CIMAT (Centro de Investigacion en Matematicas), Mexico<br />
* Bernhard Brunner, Switzerland<br />
* Florian Heiderich, can be reached at heiderich dot org<br />
<br />
Others:<br />
<br />
<br />
<br />
<br />
<br />
Feel free to edit this page to add yourself to the list, or remove yourself, or to add contact information, or further information about your interest.<br />
<br />
<br />
<hr><br />
<br />
=== Software which might be relevant to facilitating the localization of code written in perl ===<br />
<br />
* [http://search.cpan.org/~toddr/Locale-Maketext-1.17/lib/Locale/Maketext/TPJ13.pod Cautionary tale] about localizing software:<br />
* CPAN -- [http://search.cpan.org/~toddr/Locale-Maketext-1.17/lib/Locale/Maketext.pod MakeText]<br />
* [http://www.catalystframework.org/calendar/2006/18 An example: Catalyst Advent Calendar]<br />
* Bugzilla is an example of a throughly localized perl web application<br />
* [http://cpansearch.perl.org/src/AUTRIJUS/Locale-Maketext-Lexicon-0.62/docs/webl10n.html A plan for localizing an application.]<br />
<br />
<br />
<br />
<br />
<br />
Please add information about these software packages or to add additional software packages which we have missed.<br />
<br />
=== Multilingual WeBWorK questions ===<br />
<br />
This section collects ideas for future projects:<br />
<br />
We now have WeBWorK questions written in several languages. As we gather these questions together into "national libraries" (all contained in one "international library"? :-) ) we will point to where these libraries can be found on the web.<br />
<br />
It's been pointed out that in addition to language differences there are cultural differences even in mathematical homework questions between different countries. It would be interesting to have a website where the similarities and differences of say Calculus questions asked of students in different countries could be examined. It's a wide open project if someone is interested.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
[[Category:Translators]]<br />
[[Category:Developers]]<br />
[[Category:Localization]]</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=WeBWorK:Copyright&diff=10160WeBWorK:Copyright2014-03-28T15:57:29Z<p>Aubreyja: </p>
<hr />
<div>== Copyright ==<br />
* This is a community-maintained site. The Mathematical Association of America is not responsible for its content.<br />
* The MAA Icosahedron logo is a registered trademark of the Mathematical Association of America. Members and the general public may use this logo only in approved ways. The MAA logo guidlines may be found at http://www.maa.org/maa_graphics_library/MAALogo_Guidelines.pdf. For further information, please contact Cheryl Adams at cadams@maa.org<br />
* All other trademarks throughout this wiki are the property of their respective owners.<br />
* This wiki is Copyright 2011-2014 The WeBWorK Project.<br />
* Please note that all contributions to WeBWorK are considered to be released under the GNU Free Documentation License 1.2 (see http://www.gnu.org/licenses/old-licenses/fdl-1.2-standalone.html for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.<br />
<br />
== Links to Third Party Sites ==<br />
<br />
This website may be linked to other websites which are not under the control of and are not maintained by the WeBWorK project or the MAA. The WeBWorK Project and the MAA are not responsible for the content of those sites. We provide these links to you only as a convenience, and the inclusion of any link to such sites does not imply endorsement by the WeBWorK project or the MAA of those sites. We reserve the right to terminate any link or linking program at any time.</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=User:Aubreyja&diff=6445User:Aubreyja2014-02-10T15:53:52Z<p>Aubreyja: </p>
<hr />
<div>Jason Aubrey<br />
<br />
Department of Mathematics<br />
<br />
University of Arizona<br />
<br />
aubreyja at gmail dot com<br />
<br />
Links:<br />
*[[Special:UserLogin]] (Create Accounts)<br />
*[[Special:ConfirmAccounts]]<br />
**[[User:Aubreyja/HoldMsg]]<br />
**[[MediaWiki:Confirmaccount-email-studenthold]]<br />
*[[User:Aubreyja/wiki_todo]]<br />
*[[User:Aubreyja/sandbox]]<br />
*[[User:Aubreyja/old_main_page]]<br />
<br />
== Wikipedia Manual of Style ==<br />
* [[wp:Wikipedia:Manual_of_Style]]<br />
* [[wp:Wikipedia:Layout]]<br />
<br />
== Pages I'm working on ==<br />
<br />
*[[global.conf]]<br />
*[[Installing WeBWorK]]<br />
<br />
== Skinning ==<br />
<br />
* [http://blog.redwerks.org/2012/02/08/mediawiki-skinning-tutorial/ Skinning tutorial]<br />
<br />
== Mediawiki Namespace ==<br />
<br />
<DPL><br />
namespace = MediaWiki<br />
</DPL></div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=User:Aubreyja&diff=6444User:Aubreyja2014-02-10T15:53:25Z<p>Aubreyja: </p>
<hr />
<div>Jason Aubrey<br />
<br />
Department of Mathematics<br />
<br />
University of Arizona<br />
<br />
aubreyja at gmail dot com<br />
<br />
Links:<br />
*[[Special:UserLogin&type=signup]]<br />
*[[Special:ConfirmAccounts]]<br />
**[[User:Aubreyja/HoldMsg]]<br />
**[[MediaWiki:Confirmaccount-email-studenthold]]<br />
*[[User:Aubreyja/wiki_todo]]<br />
*[[User:Aubreyja/sandbox]]<br />
*[[User:Aubreyja/old_main_page]]<br />
<br />
== Wikipedia Manual of Style ==<br />
* [[wp:Wikipedia:Manual_of_Style]]<br />
* [[wp:Wikipedia:Layout]]<br />
<br />
== Pages I'm working on ==<br />
<br />
*[[global.conf]]<br />
*[[Installing WeBWorK]]<br />
<br />
== Skinning ==<br />
<br />
* [http://blog.redwerks.org/2012/02/08/mediawiki-skinning-tutorial/ Skinning tutorial]<br />
<br />
== Mediawiki Namespace ==<br />
<br />
<DPL><br />
namespace = MediaWiki<br />
</DPL></div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=User:Bthsbt&diff=15636User:Bthsbt2014-01-23T17:55:26Z<p>Aubreyja: Creating user page with biography of new user.</p>
<hr />
<div>Visiting Assistant Professor at University of Iowa Fall 2013 - present</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=User_talk:Bthsbt&diff=15637User talk:Bthsbt2014-01-23T17:55:26Z<p>Aubreyja: Welcome!</p>
<hr />
<div>'''Welcome to ''WeBWorK''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[http://www.mediawiki.org/wiki/Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:Aubreyja|Jason]] 12:55, 23 January 2014 (EST)</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=AskSage&diff=15060AskSage2014-01-10T17:08:05Z<p>Aubreyja: </p>
<hr />
<div><h2>Using the Sage Cell Server</h2><br />
<br />
<!-- Header for these sections -- no modification needed --><br />
<!--<br />
[[File:GraphicsFilename1.png|300px|thumb|right|Click to enlarge]]<br />
--><br />
<br />
<p style="background-color:#f9f9f9;border:black solid 1px;padding:3px;"><br />
This PG code shows how to embed a call to the Sage Cell Server from within a problem.<br />
</p><br />
<br />
<p style="text-align:center;"><br />
[[IndexOfProblemTechniques|Problem Techniques Index]]<br />
</p><br />
<br />
<table cellspacing="0" cellpadding="2" border="0"><br />
<br />
<tr valign="top"><br />
<th> PG problem file </th><br />
<th> Explanation </th><br />
</tr><br />
<br />
<!-- Load specialized macro files section --><br />
<br />
<tr valign="top"><br />
<td style="background-color:#ddffdd;border:black 1px dashed;"><br />
<br />
<pre><br />
loadMacros(<br />
"PGstandard.pl",<br />
"MathObjects.pl",<br />
);<br />
</pre><br />
<br />
</td><br />
<br />
<td style="background-color:#ccffcc;padding:7px;"><br />
<p> No additional macros are needed to use the <code>AskSage()</code> function, but as of now it is part of the development version of pg and not part of the current WeBWorK release.<br />
</p><br />
</td><br />
</tr><br />
<br />
<!-- Setup section --><br />
<br />
<tr valign="top"><br />
<td style="background-color:#ffffdd;border:black 1px dashed;"><br />
<pre><br />
###############################################<br />
##<br />
## pg initializations and regular WeBWorK code<br />
<br />
<br />
Context("Matrix");<br />
<br />
my $rows = random(3,4);<br />
my $columns = random(4,5);<br />
my $rank = random(2,3);<br />
</pre><br />
</td><br />
<td style="background-color:#ffffcc;padding:7px;"><br />
The WeBWorK set up for the problem is the same.<br />
</td><br />
</tr><br />
<br />
<!-- Initialize the Sage embedding --><br />
<br />
<tr valign="top"><br />
<td style="background-color:#ffffdd;border:black 1px dashed;"><br />
<pre><br />
<br />
$SageCode1=<<END;<br />
print random_matrix(QQ,$rows,$columns,algorithm='echelonizable',rank=$rank).rows()<br />
END<br />
<br />
<br />
$SageCode2 =<<END;<br />
print matrix(QQ,$sageReply1).rref().rows()<br />
END<br />
<br />
</pre><br />
</td><br />
<br />
<td style="background-color:#ffcccc;padding:7px;"><br />
<p><br />
$SageCode = <<END;<br />
</p><br />
<p><br />
denotes the beginning of a block of Sage python code. This will be paired at the end with and ending END which must be left-justified. This portion will create a perl scalar variable <code>$SageCode</code> which contains the sage code.<br />
</p><br />
</td><br />
</tr><br />
<br />
<!-- Sage macro and options section --><br />
<br />
<tr valign="top"><br />
<td style="background-color:#ffdddd;border:black 1px dashed;"><br />
<pre><br />
$sageReply1 = AskSage($SageCode1,{accept_tos=true,seed=>$problemSeed});<br />
$M = Matrix($sageReply1);<br />
<br />
$sageReply2 = AskSage($SageCode2,{accept_tos=true});<br />
$ans = Matrix($sageReply2);<br />
<br />
</pre><br />
</td><br />
<br />
<td style="background-color:#ffcccc;padding:7px;"><br />
<p><br />
<b>Calling <code>AskSage()</code>:</b><br />
</p><br />
<p><br />
The first argument to AskSage() must be sage code. After that, you must send your acceptance of the [http://sagecell.sagemath.org/tos.html Sage Cell Terms of Service]. Please do read the Sage Cell TOS and think about it quietly for a moment before proceeding. If you accept the TOS, you may also optionally send along with your acceptance a <code>seed</code> value to sage's <code>set_random_seed()</code> function and/or send a <code>url</code> pointing to a sage cell web-service handler. If no<br />
<code>url</code> is sent, then <code>AskSage()</code> uses as a default <code>url => 'https://sagecell.sagemath.org/service'</code>.<br />
</p><br />
<p><br />
Notice that we convert sage's replies to a MathObjects so that we can take advantage of WeBWorK's built in answer checking, display capbilities, etc.<br />
</p><br />
</td><br />
</tr><br />
<br />
<br />
<!-- Answer evaluation section --><br />
<br />
<tr valign="top"><br />
<td style="background-color:#eeddff;border:black 1px dashed;"><br />
<pre><br />
Context()->texStrings;<br />
BEGIN_TEXT<br />
<br />
Row reduce \( $M \) $BR<br />
\{ $ans->ans_array\}<br />
END_TEXT<br />
Context()->normalStrings;<br />
ANS($ans->cmp());<br />
ENDDOCUMENT();<br />
</pre><br />
<td style="background-color:#ddddff;padding:7px;"><br />
<p> Now we display the problem and check the answer as in a typical WeBWorK problem.<br />
</p><br />
</td><br />
</tr><br />
</table><br />
<br />
<p style="text-align:center;"><br />
[[SubjectAreaTemplates|Templates by Subject Area]]<br />
</p><br />
<br />
[[Category:Sample Problems]]<br />
[[Category:Subject Area Templates]]<br />
<br />
<br />
<p style="text-align:center;"><br />
[[IndexOfProblemTechniques|Problem Techniques Index]]<br/><br />
<br />
</p><br />
<br />
[[Category:Problem Techniques]]</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=Security&diff=10022Security2013-09-19T17:15:11Z<p>Aubreyja: </p>
<hr />
<div>WeBWorK has recently undergone extensive web application security testing. The vulnerabilities that were discovered have largely been fixed. This page will <br />
<br />
* summarize issues: web-app security, server security, resources, implications for FERPA, etc.<br />
* summarize the testing that was done, the vulnerabilites discovered, and the fixes applied,<br />
<br />
<br />
== Resources ==<br />
* [http://www.owasp.org/ The Open Web Application Security Project]<br />
* [http://perldoc.perl.org/perlsec.html perlsec - Perl Security Documentation]<br />
<br />
<br />
<br />
[[Category:Security]]</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=Security&diff=10021Security2013-09-19T17:14:45Z<p>Aubreyja: </p>
<hr />
<div>WeBWorK has recently undergone extensive web application security testing. The vulnerabilities that were discovered have largely been fixed. This page will <br />
<br />
* summarize issues: web-app security, server security, resources, implications for FERPA, etc.<br />
* summarize the testing that was done, the vulnerabilites discovered, and the fixes applied,<br />
<br />
<br />
== Resources ==<br />
* [http://www.owasp.org/ The Open Web Application Security Project]<br />
* [http://perldoc.perl.org/perlsec.html perlsec - Perl Security Documentation]<br />
<br />
<br />
<br />
[[Security]]</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=User:Msaroufi&diff=15448User:Msaroufi2013-09-06T15:45:30Z<p>Aubreyja: Creating user page with biography of new user.</p>
<hr />
<div>Graduate Student in Computer Science with an emphasis on Theoretical Computer Science and Machine Learning at the University of California at San Diego. Currently TA'ing for Ron Graham's Algorithms in Computer Science Class.</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=User_talk:Msaroufi&diff=15449User talk:Msaroufi2013-09-06T15:45:30Z<p>Aubreyja: Welcome!</p>
<hr />
<div>'''Welcome to ''WeBWorK''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[http://www.mediawiki.org/wiki/Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:Aubreyja|Jason]] 11:45, 6 September 2013 (EDT)</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=AskSage&diff=15058AskSage2013-06-30T15:24:47Z<p>Aubreyja: </p>
<hr />
<div><h2>Using the Sage Cell Server</h2><br />
<br />
<!-- Header for these sections -- no modification needed --><br />
<!--<br />
[[File:GraphicsFilename1.png|300px|thumb|right|Click to enlarge]]<br />
--><br />
<br />
<p style="background-color:#f9f9f9;border:black solid 1px;padding:3px;"><br />
This PG code shows how to embed a call to the Sage Cell Server from within a problem.<br />
</p><br />
<br />
<p style="text-align:center;"><br />
[[IndexOfProblemTechniques|Problem Techniques Index]]<br />
</p><br />
<br />
<table cellspacing="0" cellpadding="2" border="0"><br />
<br />
<tr valign="top"><br />
<th> PG problem file </th><br />
<th> Explanation </th><br />
</tr><br />
<br />
<!-- Load specialized macro files section --><br />
<br />
<tr valign="top"><br />
<td style="background-color:#ddffdd;border:black 1px dashed;"><br />
<br />
<pre><br />
loadMacros(<br />
"PGstandard.pl",<br />
"MathObjects.pl",<br />
);<br />
</pre><br />
<br />
</td><br />
<br />
<td style="background-color:#ccffcc;padding:7px;"><br />
<p> No additional macros are needed to use the <code>AskSage()</code> function, but as of now it is part of the development version of pg and not part of the current WeBWorK release.<br />
</p><br />
</td><br />
</tr><br />
<br />
<!-- Setup section --><br />
<br />
<tr valign="top"><br />
<td style="background-color:#ffffdd;border:black 1px dashed;"><br />
<pre><br />
###############################################<br />
##<br />
## pg initializations and regular WeBWorK code<br />
<br />
<br />
Context("Matrix");<br />
<br />
my $rows = random(3,4);<br />
my $columns = random(4,5);<br />
my $rank = random(2,3);<br />
</pre><br />
</td><br />
<td style="background-color:#ffffcc;padding:7px;"><br />
The WeBWorK set up for the problem is the same.<br />
</td><br />
</tr><br />
<br />
<!-- Initialize the Sage embedding --><br />
<br />
<tr valign="top"><br />
<td style="background-color:#ffffdd;border:black 1px dashed;"><br />
<pre><br />
<br />
$SageCode1=<<END;<br />
print random_matrix(QQ,$rows,$columns,algorithm='echelonizable',rank=$rank).rows()<br />
END<br />
<br />
<br />
$SageCode2 =<<END;<br />
print matrix(QQ,$sageReply1).rref().rows()<br />
END<br />
<br />
</pre><br />
</td><br />
<br />
<td style="background-color:#ffcccc;padding:7px;"><br />
<p><br />
$SageCode = <<END;<br />
</p><br />
<p><br />
denotes the beginning of a block of Sage python code. This will be paired at the end with and ending END which must be left-justified. This portion will create a perl scalar variable <code>$SageCode</code> which contains the sage code.<br />
</p><br />
</td><br />
</tr><br />
<br />
<!-- Sage macro and options section --><br />
<br />
<tr valign="top"><br />
<td style="background-color:#ffdddd;border:black 1px dashed;"><br />
<pre><br />
$sageReply1 = AskSage($SageCode1,{seed=>$problemSeed});<br />
$M = Matrix($sageReply);<br />
<br />
$sageReply2 = AskSage($SageCode2);<br />
$ans = Matrix($sageReply2);<br />
<br />
</pre><br />
</td><br />
<br />
<td style="background-color:#ffcccc;padding:7px;"><br />
<p><br />
<b>Calling <code>AskSage()</code>:</b><br />
</p><br />
<p><br />
The first argument to AskSage() must be sage code. After that, you may optionally send a <code>seed</code> value to sage's <code>set_random_seed()</code> function and/or send a <code>url</code> pointing to a sage cell web-service handler. If no<br />
<code>url</code> is sent, then <code>AskSage()</code> uses as a default <code>url => 'https://sagecell.sagemath.org/service'</code>.<br />
</p><br />
<p><br />
Notice that we convert sage's replies to a MathObjects so that we can take advantage of WeBWorK's built in answer checking, display capbilities, etc.<br />
</p><br />
</td><br />
</tr><br />
<br />
<br />
<!-- Answer evaluation section --><br />
<br />
<tr valign="top"><br />
<td style="background-color:#eeddff;border:black 1px dashed;"><br />
<pre><br />
Context()->texStrings;<br />
BEGIN_TEXT<br />
<br />
Row reduce \( $M \) $BR<br />
\{ $ans->ans_array\}<br />
END_TEXT<br />
Context()->normalStrings;<br />
ANS($ans->cmp());<br />
ENDDOCUMENT();<br />
</pre><br />
<td style="background-color:#ddddff;padding:7px;"><br />
<p> Now we display the problem and check the answer as in a typical WeBWorK problem.<br />
</p><br />
</td><br />
</tr><br />
</table><br />
<br />
<p style="text-align:center;"><br />
[[SubjectAreaTemplates|Templates by Subject Area]]<br />
</p><br />
<br />
[[Category:Sample Problems]]<br />
[[Category:Subject Area Templates]]<br />
<br />
<br />
<p style="text-align:center;"><br />
[[IndexOfProblemTechniques|Problem Techniques Index]]<br/><br />
<br />
</p><br />
<br />
[[Category:Problem Techniques]]</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=AskSage&diff=15057AskSage2013-06-30T15:24:06Z<p>Aubreyja: </p>
<hr />
<div><h2>Using the Sage Cell Server</h2><br />
<br />
<!-- Header for these sections -- no modification needed --><br />
<!--<br />
[[File:GraphicsFilename1.png|300px|thumb|right|Click to enlarge]]<br />
--><br />
<br />
<p style="background-color:#f9f9f9;border:black solid 1px;padding:3px;"><br />
This PG code shows how to embed a call to the Sage Cell Server from within a problem.<br />
</p><br />
<br />
<p style="text-align:center;"><br />
[[IndexOfProblemTechniques|Problem Techniques Index]]<br />
</p><br />
<br />
<table cellspacing="0" cellpadding="2" border="0"><br />
<br />
<tr valign="top"><br />
<th> PG problem file </th><br />
<th> Explanation </th><br />
</tr><br />
<br />
<!-- Load specialized macro files section --><br />
<br />
<tr valign="top"><br />
<td style="background-color:#ddffdd;border:black 1px dashed;"><br />
<br />
<pre><br />
loadMacros(<br />
"PGstandard.pl",<br />
"MathObjects.pl",<br />
);<br />
</pre><br />
<br />
</td><br />
<br />
<td style="background-color:#ccffcc;padding:7px;"><br />
<p> No additional macros are needed to use the <code>AskSage()</code> function, but as of now it is part of the development version of pg and not part of the current WeBWorK release.<br />
</p><br />
</td><br />
</tr><br />
<br />
<!-- Setup section --><br />
<br />
<tr valign="top"><br />
<td style="background-color:#ffffdd;border:black 1px dashed;"><br />
<pre><br />
###############################################<br />
##<br />
## pg initializations and regular WeBWorK code<br />
<br />
<br />
Context("Matrix");<br />
<br />
my $rows = random(3,4);<br />
my $columns = random(4,5);<br />
my $rank = random(2,3);<br />
</pre><br />
</td><br />
<td style="background-color:#ffffcc;padding:7px;"><br />
The WeBWorK set up for the problem is the same.<br />
</td><br />
</tr><br />
<br />
<!-- Initialize the Sage embedding --><br />
<br />
<tr valign="top"><br />
<td style="background-color:#ffffdd;border:black 1px dashed;"><br />
<pre><br />
<br />
$SageCode1=<<END;<br />
print random_matrix(QQ,$rows,$columns,algorithm='echelonizable',rank=$rank).rows()<br />
END<br />
<br />
<br />
$SageCode2 =<<END;<br />
print matrix(QQ,$sageReply).rref().rows()<br />
END<br />
<br />
</pre><br />
</td><br />
<br />
<td style="background-color:#ffcccc;padding:7px;"><br />
<p><br />
$SageCode = <<END;<br />
</p><br />
<p><br />
denotes the beginning of a block of Sage python code. This will be paired at the end with and ending END which must be left-justified. This portion will create a perl scalar variable <code>$SageCode</code> which contains the sage code.<br />
</p><br />
</td><br />
</tr><br />
<br />
<!-- Sage macro and options section --><br />
<br />
<tr valign="top"><br />
<td style="background-color:#ffdddd;border:black 1px dashed;"><br />
<pre><br />
$sageReply1 = AskSage($SageCode1,{seed=>$problemSeed});<br />
$M = Matrix($sageReply);<br />
<br />
$sageReply2 = AskSage($SageCode2);<br />
$ans = Matrix($sageReply2);<br />
<br />
</pre><br />
</td><br />
<br />
<td style="background-color:#ffcccc;padding:7px;"><br />
<p><br />
<b>Calling <code>AskSage()</code>:</b><br />
</p><br />
<p><br />
The first argument to AskSage() must be sage code. After that, you may optionally send a <code>seed</code> value to sage's <code>set_random_seed()</code> function and/or send a <code>url</code> pointing to a sage cell web-service handler. If no<br />
<code>url</code> is sent, then <code>AskSage()</code> uses as a default <code>url => 'https://sagecell.sagemath.org/service'</code>.<br />
</p><br />
<p><br />
Notice that we convert sage's replies to a MathObjects so that we can take advantage of WeBWorK's built in answer checking, display capbilities, etc.<br />
</p><br />
</td><br />
</tr><br />
<br />
<br />
<!-- Answer evaluation section --><br />
<br />
<tr valign="top"><br />
<td style="background-color:#eeddff;border:black 1px dashed;"><br />
<pre><br />
Context()->texStrings;<br />
BEGIN_TEXT<br />
<br />
Row reduce \( $M \) $BR<br />
\{ $ans->ans_array\}<br />
END_TEXT<br />
Context()->normalStrings;<br />
ANS($ans->cmp());<br />
ENDDOCUMENT();<br />
</pre><br />
<td style="background-color:#ddddff;padding:7px;"><br />
<p> Now we display the problem and check the answer as in a typical WeBWorK problem.<br />
</p><br />
</td><br />
</tr><br />
</table><br />
<br />
<p style="text-align:center;"><br />
[[SubjectAreaTemplates|Templates by Subject Area]]<br />
</p><br />
<br />
[[Category:Sample Problems]]<br />
[[Category:Subject Area Templates]]<br />
<br />
<br />
<p style="text-align:center;"><br />
[[IndexOfProblemTechniques|Problem Techniques Index]]<br/><br />
<br />
</p><br />
<br />
[[Category:Problem Techniques]]</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=AskSage&diff=15056AskSage2013-06-21T16:06:29Z<p>Aubreyja: Created page with "<h2>Using the Sage Cell Server</h2> <!-- Header for these sections -- no modification needed --> <!-- Click to enlarge --> ..."</p>
<hr />
<div><h2>Using the Sage Cell Server</h2><br />
<br />
<!-- Header for these sections -- no modification needed --><br />
<!--<br />
[[File:GraphicsFilename1.png|300px|thumb|right|Click to enlarge]]<br />
--><br />
<br />
<p style="background-color:#f9f9f9;border:black solid 1px;padding:3px;"><br />
This PG code shows how to embed a call to the Sage Cell Server from within a problem.<br />
</p><br />
<br />
<p style="text-align:center;"><br />
[[IndexOfProblemTechniques|Problem Techniques Index]]<br />
</p><br />
<br />
<table cellspacing="0" cellpadding="2" border="0"><br />
<br />
<tr valign="top"><br />
<th> PG problem file </th><br />
<th> Explanation </th><br />
</tr><br />
<br />
<!-- Load specialized macro files section --><br />
<br />
<tr valign="top"><br />
<td style="background-color:#ddffdd;border:black 1px dashed;"><br />
<br />
<pre><br />
loadMacros(<br />
"PGstandard.pl",<br />
"MathObjects.pl",<br />
);<br />
</pre><br />
<br />
</td><br />
<br />
<td style="background-color:#ccffcc;padding:7px;"><br />
<p> No additional macros are needed to use the <code>AskSage()</code> function, but as of now it is part of the development version of pg and not part of the current WeBWorK release.<br />
</p><br />
</td><br />
</tr><br />
<br />
<!-- Setup section --><br />
<br />
<tr valign="top"><br />
<td style="background-color:#ffffdd;border:black 1px dashed;"><br />
<pre><br />
###############################################<br />
##<br />
## pg initializations and regular WeBWorK code<br />
<br />
<br />
Context("Matrix");<br />
<br />
my $rows = random(3,4);<br />
my $columns = random(4,5);<br />
my $rank = random(2,3);<br />
</pre><br />
</td><br />
<td style="background-color:#ffffcc;padding:7px;"><br />
The WeBWorK set up for the problem is the same.<br />
</td><br />
</tr><br />
<br />
<!-- Initialize the Sage embedding --><br />
<br />
<tr valign="top"><br />
<td style="background-color:#ffffdd;border:black 1px dashed;"><br />
<pre><br />
<br />
$SageCode1=<<END;<br />
print random_matrix(QQ,$rows,$columns,algorithm='echelonizable',rank=$rank).rows()<br />
END<br />
<br />
<br />
$SageCode2 =<<END;<br />
print matrix(QQ,$sageReply).rref().rows()<br />
END<br />
<br />
</pre><br />
</td><br />
<br />
<td style="background-color:#ffcccc;padding:7px;"><br />
<p><br />
$SageCode = <<END;<br />
</p><br />
<p><br />
denotes the beginning of a block of Sage python code. This will be paired at the end with and ending END which must be left-justified. This portion will create a perl scalar variable <code>$SageCode</code> which contains the sage code.<br />
</p><br />
</td><br />
</tr><br />
<br />
<!-- Sage macro and options section --><br />
<br />
<tr valign="top"><br />
<td style="background-color:#ffdddd;border:black 1px dashed;"><br />
<pre><br />
$sageReply = AskSage($SageCode,{seed=>$problemSeed});<br />
$M = Matrix($sageReply);<br />
<br />
$sageReply2 = AskSage($SageCode2);<br />
$ans = Matrix($sageReply2);<br />
<br />
</pre><br />
</td><br />
<br />
<td style="background-color:#ffcccc;padding:7px;"><br />
<p><br />
<b>Calling <code>AskSage()</code>:</b><br />
</p><br />
<p><br />
The first argument to AskSage() must be sage code. After that, you may optionally send a <code>seed</code> value to sage's <code>set_random_seed()</code> function and/or send a <code>url</code> pointing to a sage cell web-service handler. If no<br />
<code>url</code> is sent, then <code>AskSage()</code> uses as a default <code>url => 'https://sagecell.sagemath.org/service'</code>.<br />
</p><br />
<p><br />
Notice that we convert sage's replies to a MathObjects so that we can take advantage of WeBWorK's built in answer checking, display capbilities, etc.<br />
</p><br />
</td><br />
</tr><br />
<br />
<br />
<!-- Answer evaluation section --><br />
<br />
<tr valign="top"><br />
<td style="background-color:#eeddff;border:black 1px dashed;"><br />
<pre><br />
Context()->texStrings;<br />
BEGIN_TEXT<br />
<br />
Row reduce \( $M \) $BR<br />
\{ $ans->ans_array\}<br />
END_TEXT<br />
Context()->normalStrings;<br />
ANS($ans->cmp());<br />
ENDDOCUMENT();<br />
</pre><br />
<td style="background-color:#ddddff;padding:7px;"><br />
<p> Now we display the problem and check the answer as in a typical WeBWorK problem.<br />
</p><br />
</td><br />
</tr><br />
</table><br />
<br />
<p style="text-align:center;"><br />
[[SubjectAreaTemplates|Templates by Subject Area]]<br />
</p><br />
<br />
[[Category:Sample Problems]]<br />
[[Category:Subject Area Templates]]<br />
<br />
<br />
<p style="text-align:center;"><br />
[[IndexOfProblemTechniques|Problem Techniques Index]]<br/><br />
<br />
</p><br />
<br />
[[Category:Problem Techniques]]</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=Github&diff=13010Github2013-06-05T19:37:25Z<p>Aubreyja: /* Configure WeBWorK */</p>
<hr />
<div>=== Github Overview ===<br />
The current page provides instructions for quickly migrating from an SVN repository version of WeBWorK to the version hosted at Github.com.<br />
<br />
The page '''[[Github Overview]]''' provides a more conceptual description of git and Github.com. It has instructions<br />
for using git and github as a developer as well as additional advanced tricks and shortcuts for keeping a WeBWorK installation<br />
up to date.<br />
<br />
=== Quick instructions for updating WeBWorK to the GitHub version ===<br />
* This description is primarily for those who are switching from versions of WeBWorK hosted on SVN (versions prior to 2.5) to those hosted on GitHub.<br />
* Those who are already using version 2.6 and have downloaded the software from GitHub should consult the section on updating branches since the update instructions are shorter. If you already have files /opt/webwork/webwork2/conf/site.conf and /opt/webwork/webwork2/conf/localOverrides.conf then it is likely that are already using software from the WeBWorK GitHub distributions.<br />
<div style="color:red"><br />
* Your server will require at least perl version 5.10.x (5.12.x would be better, 5.18 is the current version) to run weBWorK release/2.7. Type <code> perl --version </code> on the command line of your server to check.<br />
</div><br />
* You will need root access to the apache webserver via "sudo" in order follow the instructions below.<br />
*You will need to prepend "sudo" to many of the commands below in order to obtain the permissions needed to make these changes.<br />
<br />
==== Preserve current WW version and download software from GitHub ====<br />
* We'll assume that our current webwork installation is located in the directory<br />
/opt/webwork/<br />
with subdirectories<br />
/opt/webwork/webwork2<br />
/opt/webwork/pg<br />
/opt/webwork/courses<br />
* For safety we will move the webwork2 and pg directories to "old" versions and create links that redirect pg and webwork2 to these renamed directories<br />
cd /opt/webwork<br />
mv webwork2 webwork2_old<br />
mv pg pg_old<br />
ln -s webwork2_old webwork2<br />
ln -s pg_old pg<br />
* At this point our current webwork installation should exactly work as before. Calls to webwork2 and pg are directed to the "old" (actually our current) versions webwork2_old and pg_old. It's worth testing at this point just to be sure.<br />
<br />
<br />
* Next we will create new versions of webwork and pg from the code base at github.com <br />
git clone https://github.com/openwebwork/webwork2 webwork2_github<br />
git clone https://github.com/openwebwork/pg pg_github<br />
<br />
* Particularly if you are using "sudo" you should check that the new webwork2_github and pg_github have the same permissions and owners as the original webwork2_old and pg_old<br />
* The commands "chmod -R .....", "chown -R ", and "chgrp -R" will change the permissions, owners, and groups respectively on a directory, all of it's subdirectories and all of its files. Most often only the owner and group need to be changed.<br />
<br />
* Set permissions on subdirectories<br />
** We assume that your webserver is operating with user name www-data (other choices might be wwhttpd, _www etc.)<br />
** The webserver needs to own some of the subdirectories of webwork2<br />
cd /opt/webwork/webwork2_github<br />
chown -R www-data DATA logs tmp <br />
chown -R www-data htdocs/tmp<br />
<br />
* Update mathjax<br />
cd /opt/webwork/webwork2_github/htdocs<br />
mv mathjax mathjax.old<br />
git clone <nowiki>git://github.com/mathjax/MathJax.git mathjax</nowiki> <br />
* Notice that the last directory name has no capital letters unlike the command listed on the mathjax.org site.<br />
* See [http://docs.mathjax.org/en/latest/installation.html mathjax installation documents] and [http://mathjax.org| MathJax] for more information.<br />
* If you are satisfied with new mathjax software you can get rid of the mathjax.old directory (which is probably empty anyway).<br />
cd mathjax.old<br />
rm -rf * # insure that directory is empty<br />
rm .* # get rid of the .git files<br />
cd .. # go up one level<br />
rmdir mathjax.old # remove the mathjax.old directory itself<br />
<br />
==== Configure WeBWorK ====<br />
* We set up the configuration files for the new code base. There are now three configuration files which replace global.conf: site.conf, defaults.config, and localOverrides.conf. The idea is that local configurations are set by modifying site.conf and localOverrides.conf while defaults.conf contains configurations that may be updated by new releases of WeBWorK but don't vary from one site installation to another. <br />
* The configuration lines in site.conf and localOverrides.conf all have analogs in global.conf so you should consult your old global.conf file for the information about your site needed to fill out lines in site.conf and localOverrides.conf. <br />
* If site.conf and localOverrides.conf files already exist in your old installation you can copy them over from the old code base instead of creating new versions of the files as below. <br />
cd /opt/webwork/webwork2_github/conf<br />
cp site.conf.dist site.conf<br />
cp localOverrides.conf.dist localOverrides.conf<br />
cp webwork.apache2-config.dist webwork.apache2-config<br />
* Set up site.conf<br />
** This includes site information such as the database password. <br />
** The location of unix tools (the directory structure can change from on unix version to another). Locations of pdflatex and mysql may vary.<br />
** Time zone, mail server settings, <br />
* Set up localOverrides.conf<br />
** This provides overrides for defaults set in defaults.config. No changes should be made directly in defaults.config.<br />
** Common overrides: Set the location of the OpenProblemLibrary (or NationalProblemLibrary). <br />
** Set the default theme; the default language; default display mode for equations; search paths for macro files, applets, etc.<br />
** Set defaults for the worth of problems, for showing equation editors (dragmath/mathview), <br />
** Set which editors are displayed to instructors.<br />
** Set date display formats<br />
** Set authentication methods<br />
** There is more documentation and suggestions in the comments with the localOverrides.conf.dist file<br />
* Set up database.conf.dist. Because this configuration file is almost never customized for a local site we do not make a database.conf version. <br />
** You should remove or rename the database.conf file so that it is NOT referenced by webwork2<br />
** The presence of an old database.conf file is likely to cause database configuration errors. (See "what could possibly go wrong :-) " )<br />
cd /opt/webwork/webwork2_github/conf<br />
mv database.conf database.old # move an existing database.conf out of the way<br />
* Set up webwork.apache2-config<br />
** This is seldom customized in basic webwork2 setups. <br />
** This contain apache setup stanzas for auxiliary applications interacting with webwork (e.g. moodle)<br />
<br />
* Update /opt/webwork/courses/modelCourse from /opt/webwork/webwork2/courses.dist/modelCourse<br />
cd /opt/webwork<br />
mv /opt/webwork/courses/modelCourse /opt/webwork/courses/modelCourse.old<br />
cp -RPpi /opt/webwork/webwork2/courses.dist/modelCourse /opt/webwork/courses/modelCourse<br />
* This means that new courses created from modelCourse will have new resources, such as those used by the MathAchievements feature.<br />
<br />
==== Switch over to the new version of WeBWorK ====<br />
* Next we switch our links so that they point to the new code base.<br />
cd /opt/webwork<br />
rm webwork2<br />
rm pg<br />
ln -s webwork2_github webwork2<br />
ln -s pg_github pg<br />
<br />
* Run check_modules.pl and update CPAN modules if needed.<br />
* Restart webserver.<br />
* Go to admin course, click on the "upgrade courses" tab and update the course databases.<br />
''' Enjoy'''<br />
* If something goes wrong and we need to back out to our previous version of WeBWorK simply change the links as described below and restart the apache server.<br />
cd /opt/webwork<br />
ln -s webwork2_old webwork2<br />
ln -s pg_old pg<br />
<br />
==== What could possibly go wrong? ====<br />
* Everyone's environment is different, and everyone sometimes misses a step in the instructions so things might not always work the first time.<br />
* Don't panic!<br />
* On restarting the server you might get a (very long) error message saying something like: "HTML::Scrubber not found after looking in ......". This happens if a new CPAN module is used which is not immediately available on your system. This can be installed with<br />
sudo cpan HTML::Scrubber <br />
* If you have not updated for some time there might be several CPAN modules that need to be added.<br />
* Perhaps things seem to work at first but then fail when trying to enter a problem set with some information about "missing fields in table". This usually indicates that your course has an out-of-date database. (This error will not happen with a freshly built course, only one that was built with a previous version of WW.) <br />
** Sign in to WeBWorK from the web and go to the admin page. The url will be something like:<br />
http://your.site.edu/webwork2/admin<br />
** Select the "upgrade courses" tab<br />
** Follow the instructions and upgrade the course that triggered the error (and any other courses that you expect to continue to use. You will be presented with a page where you can select which courses should be upgraded, followed by another page that informs you what database changes will be made, and then a page reporting the changes that have been made.<br />
<br />
* If the database error is not resolved<br />
** Check that the file database.conf has been moved out of the way (see above) so that the new database.conf.dist file is used for accessing the database.<br />
<br />
=== Quick instructions for using other branches of webwork ===<br />
<br />
You may want to use the current '''stable candidate release''' branch of WeBWorK instead of using the "master" branch. You might want to do this because the upcoming release branch has a new feature that you want to use right away, or you might like to help out with the final testing of the new branch. These instructions tell you how to <br />
download the new branch, how to switch to it, and how to easily revert back to the original "master" branch if there are difficulties or when you are done testing.<br />
<br />
* These instructions tell you how to obtain recent branches of the webwork2 repository. The analogous procedures on the pg directory will obtain the various branches of the pg repository.<br />
<br />
* To download the information about the branches of WeBWorK in addition to the master branch.<br />
<br />
cd /opt/webwork/webwork2<br />
git remote -v<br />
origin https://github.com/openwebwork/webwork2 (fetch)<br />
origin https://github.com/openwebwork/webwork2 (push)<br />
This is the default setup. The reply to the remote command says that "origin" is connected to the standard repo at github.com.<br />
git fetch origin<br />
git branch -a<br />
* master<br />
remotes/origin/HEAD -> origin/master<br />
remotes/origin/develop<br />
remotes/origin/master<br />
remotes/origin/release/2.7<br />
git branch -t release/2.7 origin/release/2.7<br />
Branch release/2.7 set up to track remote branch release/2.7 from origin.<br />
git branch<br />
* master<br />
release/2.7<br />
* This sequence of commands does the following<br />
** Obtain information about all of the branches at the "origin" repository.<br />
** List all of the branches available. The * indicates that we are currently using the "master" branch.<br />
** The "git branch -t..." sets up a local branch which tracks (syncs with) the current release candidate (which is "release/2.7" in this case)<br />
** The final check "git branch" shows that you now have access to two versions on the software, downloaded to your machine. The * indicates that you are currently using the master version.<br />
* Update pg (for some version changes it is necessary to update both pg and webwork2 but often they can be updated independently. The pg and webwork2 version numbers do not always match since pg is updated more frequently.)<br />
cd /opt/webwork/pg<br />
git fetch origin<br />
git branch -a<br />
* master<br />
remotes/origin/HEAD -> origin/master<br />
remotes/origin/develop<br />
remotes/origin/master<br />
remotes/origin/release/2.6<br />
git branch -t release/2.6 origin/release/2.6<br />
Branch release/2.6 set up to track remote branch release/2.6 from origin.<br />
<br />
* Switch over the webwork2 release candidate release/2.7 and to pg version release/2.6<br />
cd /opt/webwork/webwork2<br />
git branch<br />
* master<br />
release/2.7<br />
git checkout release/2.7<br />
cd /opt/webwork/pg<br />
git checkout release/2.6<br />
* Run /opt/webwork/webwork2/bin check_modules.pl to make sure that you have the required CPAN modules installed.<br />
* Now '''restart''' your apache server (the command for this might be "sudo apachectl graceful")<br />
* Go to the webwork admin page http://your.server.edu/webwork2/admin and upgrade the relevant course databases.<br />
<br />
'''Notice:''' Configuration updates to webwork2 become relatively painless once you start using the new configuration files.<br />
* In most cases you will no longer have to update any configuration files. <br />
* Default configurations for new features will be automatically provided in the defaults.config.dist file. <br />
* Your local directory configuration structures remain unchanged in sites.conf as do your local overrides in localOverrides.conf. <br />
* Always customize configurations in default.config.dist by using localOverrides.conf. <br />
* You should seldom, if ever, modify default.config.dist. If you do, you become responsible for managing and merging changes to that file.<br />
<br />
It is also easy to back out to a previous release.<br />
<br />
* To switch back<br />
git branch<br />
master<br />
* release/2.7<br />
git checkout master<br />
and '''restart''' your apache server.<br />
==== What could possibly go wrong ====<br />
* You get what look like database errors of some kind -- missing fields in tables, etc. when looking at a course.<br />
** Most likely you didn't upgrade the course databases from the web using the WeBWorK admin page<br />
* You get a long message about "not finding HTML::Scrubber" looking in ..... various directories<br />
** The message looks scary but simply indicates that some required CPAN module has not been installed on your site. Perhaps you forgot to run check_modules.pl or perhaps the maintainers neglected to include a required module in the new version of check_modules.pl. (If this is the case please report the bug.) They are easily installed using the cpan command or by importing them from your distributions packages.<br />
<br />
=== Quick instructions for updating one of your branches ===<br />
<br />
* To update one of the standard webwork branches<br />
<br />
cd /opt/webwork/webwork2<br />
git branch <br />
* master<br />
release/2.7<br />
git pull<br />
This updates the current branch "master" to agree with any changes that have been made on the openwebwork repo. If you wish to update the release/2.7 which is tracking release/2.7 on the openwebwork repo then follow the same procedure but first switch to the release/2.7 branch using the command<br />
git checkout release/2.7<br />
<br />
* Those wishing to update from other sources than github.com/openwebwork should read the WeBWorK developer instructions for using the advanced features of git.<br />
[[Github Overview]]<br />
<br />
<br />
<br />
== Download WeBWorK via svn to an svn repository==<br />
* Quick-instructions. Type the following in the directory where you wish to have the repository. For example:<br />
<nowiki> cd webwork<br />
svn checkout https://github.com/openwebwork/webwork2/trunk webwork2<br />
svn checkout https://github.com/openwebwork/pg/trunk pg <br />
svn checkout https://github.com/openwebwork/webwork-open-problem-library/trunk webwork-open-problem-library<br />
</nowiki><br />
will produce the directories webwork2 and pg inside the directory webwork containing all the files from <br />
the master versions of webwork2 and pg at the github.com/openwebwork repository respectively.<br />
<br />
* For more details see the documentation by the github folks: https://github.com/blog/966-improved-subversion-client-support<br />
<br />
== References for GitHub and Git ==<br />
<br />
For those who are ready for complete immersion into all things git -- here are several references.<br />
<br />
* Pro Git book http://progit.org/<br />
<br />
(unreviewed at the moment -- YMVV)<br />
*http://gitref.org/ quick reference<br />
* https://help.github.com/articles/using-pull-requests<br />
* https://github.com/blog/966-improved-subversion-client-support<br />
* git cheat sheet: http://byte.kde.org/~zrusin/git/git-cheat-sheet-medium.png<br />
* Version Control by Example by Eric Sink which is available at http://www.ericsink.com/vcbe/ <br />
* http://nvie.com/posts/a-successful-git-branching-model/ a potential workflow model for WeBWorK development -- we're still working on refining a workflow <br />
* see also [[Git]] for more references<br />
<br />
[[Category:Version_Control]]<br />
[[Category:Installation]]<br />
[[Category:SVN]]<br />
[[Category:Github]]</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=User:Paraprof&diff=14836User:Paraprof2013-06-03T16:39:53Z<p>Aubreyja: Creating user page with biography of new user.</p>
<hr />
<div>Professor at Catawba College, using and administering the WeBWorK system at the college.</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=User_talk:Paraprof&diff=14837User talk:Paraprof2013-06-03T16:39:53Z<p>Aubreyja: Welcome!</p>
<hr />
<div>'''Welcome to ''WeBWorK''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[http://www.mediawiki.org/wiki/Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:Aubreyja|Jason]] 12:39, 3 June 2013 (EDT)</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=User:Dstowell&diff=14695User:Dstowell2013-04-25T16:04:59Z<p>Aubreyja: Creating user page with biography of new user.</p>
<hr />
<div>Professor, Mathematics BYU-Idaho<br />
education: BS Utah State University<br />
PhD Southern Methodist Universtiy</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=User_talk:Dstowell&diff=14696User talk:Dstowell2013-04-25T16:04:59Z<p>Aubreyja: Welcome!</p>
<hr />
<div>'''Welcome to ''WeBWorK''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[http://www.mediawiki.org/wiki/Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:Aubreyja|Jason]] 12:04, 25 April 2013 (EDT)</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=User:Alabamian&diff=14687User:Alabamian2013-04-23T15:32:28Z<p>Aubreyja: Creating user page with biography of new user.</p>
<hr />
<div>Math IT Support<br />
father of two daughters<br />
amateur astronomer<br />
choral singer</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=User_talk:Alabamian&diff=14688User talk:Alabamian2013-04-23T15:32:28Z<p>Aubreyja: Welcome!</p>
<hr />
<div>'''Welcome to ''WeBWorK''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[http://www.mediawiki.org/wiki/Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:Aubreyja|Jason]] 11:32, 23 April 2013 (EDT)</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=User:George.barnes45&diff=14685User:George.barnes452013-04-23T14:22:41Z<p>Aubreyja: Creating user page with biography of new user.</p>
<hr />
<div>I am a Distinguished Teaching Professor Emeritus (2004),University of Louisville. I have 36 years of post Ph.D. teaching experience.</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=User_talk:George.barnes45&diff=14686User talk:George.barnes452013-04-23T14:22:41Z<p>Aubreyja: Welcome!</p>
<hr />
<div>'''Welcome to ''WeBWorK''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[http://www.mediawiki.org/wiki/Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:Aubreyja|Jason]] 10:22, 23 April 2013 (EDT)</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=Serving_static_files_with_lighttpd&diff=12109Serving static files with lighttpd2013-03-05T20:50:33Z<p>Aubreyja: /* Using SSL with lighttpd */</p>
<hr />
<div>WeBWorK servers experiencing high loads may optionally install the lightweight webserver ''lighttpd'' to serve static files. According to the lighttpd documentation,<br />
<blockquote><br />
lighttpd is a secure, fast, compliant, and very flexible web-server that has been optimized for high-performance environments. It has a very low memory footprint compared to other webservers and takes care of cpu-load. Its advanced feature-set (FastCGI, CGI, Auth, Output-Compression, URL-Rewriting and many more) make lighttpd the perfect webserver-software for every server that suffers load problems.<ref>[http://redmine.lighttpd.net/wiki/lighttpd lighttpd documentation]</ref><br />
</blockquote><br />
Installation of lighttpd may be done at any time and your active courses will continue to function seemingly without change. The only change behind the scenes will be that static images and pages will be served by a light weight web server. However, installation of lighttpd as described here does come with one caution: the default security settings of some web browsers and some university firewall configurations have been reported to block images served through a different port than port 80. See below.<br />
<br />
== Installation and configuration ==<br />
<br />
=== Install lighttpd ===<br />
You must first install lighttpd according to the instructions for your operating system. Installation packages are available for Ubuntu and Debian, Red Hat and Fedora, openSUSE, Gentoo, and a FreeBSD port of lighttpd is also available. Links to those packages and installation instructions are available in the [http://redmine.lighttpd.net/projects/1/wiki/GetLighttpd lighttpd installation documentation]. Information on installing lighttpd on Ubuntu can be found in [[Installation_Manual_for_2.4_on_Ubuntu_10.04]].<br />
<br />
=== Configure lighttpd ===<br />
Most linux distributions will place the lighttpd.conf configuration file with the other configuration files in <tt>/etc</tt> at <tt>/etc/lighttpd.conf</tt> or <tt>/etc/lighttpd/lighttpd.conf</tt>.On FreeBSD, the configuration file is at <tt>/usr/local/etc/lighttpd.conf</tt>. Open this file for editing as root.<br />
<br />
Since Apache is listening on port 80 so we need an alternate port for lighttp to listen on. Standard alternate ports for this are usually 81, 8000, or 8080. 8080 is the only port that is listed as official alternate<ref>[[wp:List_of_TCP_and_UDP_port_numbers|List of TCP and UDP port numbers]]</ref>.<br />
<br />
Find the <tt>server.port</tt> line<br />
<br />
# server.port = 81<br />
<br />
and uncomment it and change 81 to 8080 so that it reads<br />
<br />
server.port = 8080<br />
<br />
If you would like to be able to view lighttpd server status information on the web, then uncomment the line<br />
# "mod_status",<br />
so that it becomes<br />
"mod_status",<br />
and uncomment the line<br />
# status.status-url = "/server-status"<br />
so it becomes<br />
status.status-url = "/server-status"<br />
<br />
-----<br />
If you want to be able to view knowls and the results of other javaScript functions which access files in the htdocs directory <br />
then uncomment the line<br />
<br />
# "mod_setenv",<br />
<br />
so that it becomes<br />
<br />
"mod_setenv",<br />
<br />
<br />
<br />
and add a custom response header. The first line is a model in the file; the second is the one you add:<br />
<br />
#setenv.add-response-header = ( "X-Secret-Message" => "42" )<br />
setenv.add-response-header = ( "Access-Control-Allow-Origin" => <nowiki>"https://your-server-url-here.edu"</nowiki>)<br />
<br />
<br />
<br />
One can also use "*" if you wish to allow requests from all servers, but that might not be desirable.<br />
<br />
------<br />
<br />
<br />
<br />
<br />
The default settings for the other configuration parameters in lighttpd.conf should work fine for our purposes. If you find that the default settings for other lighttpd configuration parameters produce errors are are not suitable, please report the issue in the WeBWorK forum, and see the official [http://redmine.lighttpd.net/wiki/lighttpd/TutorialConfiguration lighttpd configuration instructions] for further reference.<br />
<br />
After making your changes to httpd.conf save the file, quit the editor, and restart lighttpd. On linux, this can typically be done by running this command as root:<br />
/etc/init.d/lighttpd start<br />
<br />
Note that the command <tt>/etc/init.d/lighttpd</tt> with no arguments will list all of the options for the lighttpd executable.<br />
<br />
Now test your server by connecting to "http://localhost:8080/" and/or connecting to your server from a browser on a remote machine. You should see the page It works! indicating that lighttp is running.<br />
<br />
If you enabled <tt>mod_status</tt>, then you can check lighttp's status by connecting to "http://localhost:8080/server-status" using a browser on your machine or from to "http://yourserver.yourschool.edu:8080/server-status" from a browser on a remote machine.<br />
<br />
=== Configure WeBWorK to use lighttpd ===<br />
To configure WeBWorK to use lighttpd, we must change two values in <tt>global.conf</tt>: <tt>$webworkURLs{htdocs_temp} </tt> and <tt>$courseURLS{html_temp} </tt>. To do so, as root open <tt>global.conf</tt> for editing. If your <tt>$webworkURLs{htdocs_temp}</tt> and <tt>$courseURLS{html_temp}</tt> are set with their default values from [http://webwork.maa.org/viewvc/system/trunk/webwork2/conf/global.conf.dist global.conf.dist] then find the line<br />
<br />
$webworkURLs{htdocs_temp} = "$webworkURLs{htdocs}/tmp";<br />
<br />
and replace it by<br />
<br />
#$webworkURLs{htdocs_temp} = "$webworkURLS{htdocs}/tmp";<br />
$webworkURLs{htdocs_temp} = "$webworkURLS{htdocs}:8080/tmp';<br />
<br />
and find the line<br />
<br />
$courseURLs{html_temp} = "$courseURLs{html}/tmp";<br />
<br />
and replace it by<br />
<br />
#$courseURLs{html_temp} = "$coursesURLs{html}/tmp";<br />
$courseURLs{html_temp} = "$coursesURLs{html}:8080/tmp";<br />
<br />
If you have set up WeBWorK to [[Store WeBWorK's temporary files in a separate directory or partition]], then find the line<br />
<br />
$webworkURLs{htdocs_temp} = '/wwtmp'<br />
<br />
and replace it by<br />
<br />
#$webworkURLs{htdocs_temp} = '/wwtmp';<br />
$webworkURLs{htdocs_temp} = 'http://yourserver.yourschool.edu:8080/wwtmp';<br />
<br />
and find the line<br />
<br />
$courseURLs{html_temp} = "/wwtmp/$courseName";<br />
<br />
and replace it by<br />
<br />
#$courseURLs{html_temp} = "/wwtmp/$courseName";<br />
$courseURLs{html_temp} = "http://yourserver.yourschool.edu:8080/wwtmp/$courseName";<br />
<br />
then save the file and quit.<br />
<br />
As root or with <tt>sudo</tt> restart apache and lighttpd. For example, on Ubuntu this would be done with<br />
<br />
$ sudo apache2ctl graceful<br />
password:<wwadmin password><br />
$ sudo /etc/init.d/lighttpd restart<br />
<br />
To test things go to a course, e.g. http://yourserver.yourschool.edu/webwork2/myTestCourse/. Before you login right click on the WeBWorK icon in the upper left hand corner of the login page. The click on Properties (or whatever is appropriate on your browser) and check that the image is being served from port 8080 (something like http://yourserver.yourschool.edu:8080/webwork2_files/images/webwork_rectangle.png. Then log into your course and view a problem with typeset equations (e.g. Problem 1 of the Demo set). Again right click on the typeset equation and check that the image is being served from port 8080.<br />
<br />
== Potential problems ==<br />
<br />
Two problems have been reported from this set up.<br />
<br />
First, in some cases, a firewall configuration may block httpd requests to port 8080. If this is due to the firewall set up on the WeBWorK server itself, then it should not be difficult to fix by consulting the documentation for the operating system of the server. If this is due to the firewall set up at your institution, then resolving this issue will require cooperation from the IT group there.<br />
<br />
Second, the default security settings on some browsers (notably MSIE) may cause the browser to issue a warning alert every time a WeBWorK problem containing an image is accessed. This can be terribly annoying to users of MSIE. Such users should be encouraged to use a better web browser or to change the security settings of their preferred browser.<br />
<br />
If you find that one of these issues cannot be resolved, you can easily disable <tt>lighttpd</tt> for WeBWorK by undoing the changes to <tt>global.conf</tt> made above.<br />
<br />
== Disabling the use of lighttpd for a single course ==<br />
<br />
If you are hosting courses from different institutions on your server, you<br />
may run into a situation where port 8080 is blocked by a college, dorm, network, etc. for one of your hosted courses. This means students will not be able to view images in problems because they are served by lighttpd off port 8080. The first thing to do is to try to get the local IT people to open up port 8080 (which is the "official" alternate port to the standard http port 80). Sometimes the local people are unaware that port 8080 is being blocked.<br />
<br />
Failing this, you can set up the affected course to use port 80 for images. To switch a course from using the default (serving images with lighttpd on port 8080) to using apache2 on port 80 for images do the following:<br />
<br />
Edit the file <code>course.conf</code> which you will find in the course's parent directory (e.g. <code>/opt/webwork/courses/myTestCourse/</code> ) and at the end of the file add the lines:<br />
<br />
# Do not use lightppd (port 8080) for this course<br />
$webworkURLs{htdocs_temp} = '/wwtmp';<br />
$courseURLs{html_temp} = "/wwtmp/$courseName";<br />
$webworkURLs{equationCache} = "$webworkURLs{htdocs_temp}/equations";<br />
<br />
== Using SSL with lighttpd ==<br />
<br />
The issue is that is you serve insecure images in a secure page then some browsers complain about "insecure content within a secure page". IE in particular complains about this a lot.<br />
<br />
To do this here are the steps:<br />
<br />
1. In /etc/apache2/certs do (as root)<br />
<br />
cat server.crt server.key > server.pem<br />
cp server.pem /etc/lighttpd/<br />
<br />
2. In /etc/lighttpd, edit lighttpd.conf to include the lines<br />
<br />
ssl.engine = "enable"<br />
ssl.pemfile = "server.pem"<br />
<br />
3. In site.conf replace<br />
<br />
$webworkURLs{htdocs_temp} = 'http://yourserver.yourschool.edu:8080/wwtmp';<br />
<br />
and<br />
<br />
$courseURLs{html_temp} = "http://yourserver.yourschool.edu:8080/wwtmp/$courseName";<br />
<br />
with <tt>https://...</tt><br />
<br />
== Forum discussions ==<br />
<br />
* [http://webwork.maa.org/moodle/mod/forum/discuss.php?d=2522 images will not load (off campus)] 23 Aug 2011<br />
* [http://webwork.maa.org/moodle/mod/forum/discuss.php?d=201 some students can't load images] 10 Sept 2009<br />
* [http://webwork.maa.org/moodle/mod/forum/discuss.php?d=233 images not displaying] 9 Apr 2009<br />
* [http://webwork.maa.org/moodle/mod/forum/discuss.php?d=566 installation questions]<br />
<br />
== External links ==<br />
<br />
* [http://www.lighttpd.net/ Official lighttpd website]<br />
<br />
== References ==<br />
<br />
<references/><br />
<br />
[[Category:Administrators]] [[Category:Installation]]</div>Aubreyjahttps://webwork.maa.org/mediawiki_new/index.php?title=Serving_static_files_with_lighttpd&diff=12108Serving static files with lighttpd2013-03-05T20:49:22Z<p>Aubreyja: added info about enabling ssl</p>
<hr />
<div>WeBWorK servers experiencing high loads may optionally install the lightweight webserver ''lighttpd'' to serve static files. According to the lighttpd documentation,<br />
<blockquote><br />
lighttpd is a secure, fast, compliant, and very flexible web-server that has been optimized for high-performance environments. It has a very low memory footprint compared to other webservers and takes care of cpu-load. Its advanced feature-set (FastCGI, CGI, Auth, Output-Compression, URL-Rewriting and many more) make lighttpd the perfect webserver-software for every server that suffers load problems.<ref>[http://redmine.lighttpd.net/wiki/lighttpd lighttpd documentation]</ref><br />
</blockquote><br />
Installation of lighttpd may be done at any time and your active courses will continue to function seemingly without change. The only change behind the scenes will be that static images and pages will be served by a light weight web server. However, installation of lighttpd as described here does come with one caution: the default security settings of some web browsers and some university firewall configurations have been reported to block images served through a different port than port 80. See below.<br />
<br />
== Installation and configuration ==<br />
<br />
=== Install lighttpd ===<br />
You must first install lighttpd according to the instructions for your operating system. Installation packages are available for Ubuntu and Debian, Red Hat and Fedora, openSUSE, Gentoo, and a FreeBSD port of lighttpd is also available. Links to those packages and installation instructions are available in the [http://redmine.lighttpd.net/projects/1/wiki/GetLighttpd lighttpd installation documentation]. Information on installing lighttpd on Ubuntu can be found in [[Installation_Manual_for_2.4_on_Ubuntu_10.04]].<br />
<br />
=== Configure lighttpd ===<br />
Most linux distributions will place the lighttpd.conf configuration file with the other configuration files in <tt>/etc</tt> at <tt>/etc/lighttpd.conf</tt> or <tt>/etc/lighttpd/lighttpd.conf</tt>.On FreeBSD, the configuration file is at <tt>/usr/local/etc/lighttpd.conf</tt>. Open this file for editing as root.<br />
<br />
Since Apache is listening on port 80 so we need an alternate port for lighttp to listen on. Standard alternate ports for this are usually 81, 8000, or 8080. 8080 is the only port that is listed as official alternate<ref>[[wp:List_of_TCP_and_UDP_port_numbers|List of TCP and UDP port numbers]]</ref>.<br />
<br />
Find the <tt>server.port</tt> line<br />
<br />
# server.port = 81<br />
<br />
and uncomment it and change 81 to 8080 so that it reads<br />
<br />
server.port = 8080<br />
<br />
If you would like to be able to view lighttpd server status information on the web, then uncomment the line<br />
# "mod_status",<br />
so that it becomes<br />
"mod_status",<br />
and uncomment the line<br />
# status.status-url = "/server-status"<br />
so it becomes<br />
status.status-url = "/server-status"<br />
<br />
-----<br />
If you want to be able to view knowls and the results of other javaScript functions which access files in the htdocs directory <br />
then uncomment the line<br />
<br />
# "mod_setenv",<br />
<br />
so that it becomes<br />
<br />
"mod_setenv",<br />
<br />
<br />
<br />
and add a custom response header. The first line is a model in the file; the second is the one you add:<br />
<br />
#setenv.add-response-header = ( "X-Secret-Message" => "42" )<br />
setenv.add-response-header = ( "Access-Control-Allow-Origin" => <nowiki>"https://your-server-url-here.edu"</nowiki>)<br />
<br />
<br />
<br />
One can also use "*" if you wish to allow requests from all servers, but that might not be desirable.<br />
<br />
------<br />
<br />
<br />
<br />
<br />
The default settings for the other configuration parameters in lighttpd.conf should work fine for our purposes. If you find that the default settings for other lighttpd configuration parameters produce errors are are not suitable, please report the issue in the WeBWorK forum, and see the official [http://redmine.lighttpd.net/wiki/lighttpd/TutorialConfiguration lighttpd configuration instructions] for further reference.<br />
<br />
After making your changes to httpd.conf save the file, quit the editor, and restart lighttpd. On linux, this can typically be done by running this command as root:<br />
/etc/init.d/lighttpd start<br />
<br />
Note that the command <tt>/etc/init.d/lighttpd</tt> with no arguments will list all of the options for the lighttpd executable.<br />
<br />
Now test your server by connecting to "http://localhost:8080/" and/or connecting to your server from a browser on a remote machine. You should see the page It works! indicating that lighttp is running.<br />
<br />
If you enabled <tt>mod_status</tt>, then you can check lighttp's status by connecting to "http://localhost:8080/server-status" using a browser on your machine or from to "http://yourserver.yourschool.edu:8080/server-status" from a browser on a remote machine.<br />
<br />
=== Configure WeBWorK to use lighttpd ===<br />
To configure WeBWorK to use lighttpd, we must change two values in <tt>global.conf</tt>: <tt>$webworkURLs{htdocs_temp} </tt> and <tt>$courseURLS{html_temp} </tt>. To do so, as root open <tt>global.conf</tt> for editing. If your <tt>$webworkURLs{htdocs_temp}</tt> and <tt>$courseURLS{html_temp}</tt> are set with their default values from [http://webwork.maa.org/viewvc/system/trunk/webwork2/conf/global.conf.dist global.conf.dist] then find the line<br />
<br />
$webworkURLs{htdocs_temp} = "$webworkURLs{htdocs}/tmp";<br />
<br />
and replace it by<br />
<br />
#$webworkURLs{htdocs_temp} = "$webworkURLS{htdocs}/tmp";<br />
$webworkURLs{htdocs_temp} = "$webworkURLS{htdocs}:8080/tmp';<br />
<br />
and find the line<br />
<br />
$courseURLs{html_temp} = "$courseURLs{html}/tmp";<br />
<br />
and replace it by<br />
<br />
#$courseURLs{html_temp} = "$coursesURLs{html}/tmp";<br />
$courseURLs{html_temp} = "$coursesURLs{html}:8080/tmp";<br />
<br />
If you have set up WeBWorK to [[Store WeBWorK's temporary files in a separate directory or partition]], then find the line<br />
<br />
$webworkURLs{htdocs_temp} = '/wwtmp'<br />
<br />
and replace it by<br />
<br />
#$webworkURLs{htdocs_temp} = '/wwtmp';<br />
$webworkURLs{htdocs_temp} = 'http://yourserver.yourschool.edu:8080/wwtmp';<br />
<br />
and find the line<br />
<br />
$courseURLs{html_temp} = "/wwtmp/$courseName";<br />
<br />
and replace it by<br />
<br />
#$courseURLs{html_temp} = "/wwtmp/$courseName";<br />
$courseURLs{html_temp} = "http://yourserver.yourschool.edu:8080/wwtmp/$courseName";<br />
<br />
then save the file and quit.<br />
<br />
As root or with <tt>sudo</tt> restart apache and lighttpd. For example, on Ubuntu this would be done with<br />
<br />
$ sudo apache2ctl graceful<br />
password:<wwadmin password><br />
$ sudo /etc/init.d/lighttpd restart<br />
<br />
To test things go to a course, e.g. http://yourserver.yourschool.edu/webwork2/myTestCourse/. Before you login right click on the WeBWorK icon in the upper left hand corner of the login page. The click on Properties (or whatever is appropriate on your browser) and check that the image is being served from port 8080 (something like http://yourserver.yourschool.edu:8080/webwork2_files/images/webwork_rectangle.png. Then log into your course and view a problem with typeset equations (e.g. Problem 1 of the Demo set). Again right click on the typeset equation and check that the image is being served from port 8080.<br />
<br />
== Potential problems ==<br />
<br />
Two problems have been reported from this set up.<br />
<br />
First, in some cases, a firewall configuration may block httpd requests to port 8080. If this is due to the firewall set up on the WeBWorK server itself, then it should not be difficult to fix by consulting the documentation for the operating system of the server. If this is due to the firewall set up at your institution, then resolving this issue will require cooperation from the IT group there.<br />
<br />
Second, the default security settings on some browsers (notably MSIE) may cause the browser to issue a warning alert every time a WeBWorK problem containing an image is accessed. This can be terribly annoying to users of MSIE. Such users should be encouraged to use a better web browser or to change the security settings of their preferred browser.<br />
<br />
If you find that one of these issues cannot be resolved, you can easily disable <tt>lighttpd</tt> for WeBWorK by undoing the changes to <tt>global.conf</tt> made above.<br />
<br />
== Disabling the use of lighttpd for a single course ==<br />
<br />
If you are hosting courses from different institutions on your server, you<br />
may run into a situation where port 8080 is blocked by a college, dorm, network, etc. for one of your hosted courses. This means students will not be able to view images in problems because they are served by lighttpd off port 8080. The first thing to do is to try to get the local IT people to open up port 8080 (which is the "official" alternate port to the standard http port 80). Sometimes the local people are unaware that port 8080 is being blocked.<br />
<br />
Failing this, you can set up the affected course to use port 80 for images. To switch a course from using the default (serving images with lighttpd on port 8080) to using apache2 on port 80 for images do the following:<br />
<br />
Edit the file <code>course.conf</code> which you will find in the course's parent directory (e.g. <code>/opt/webwork/courses/myTestCourse/</code> ) and at the end of the file add the lines:<br />
<br />
# Do not use lightppd (port 8080) for this course<br />
$webworkURLs{htdocs_temp} = '/wwtmp';<br />
$courseURLs{html_temp} = "/wwtmp/$courseName";<br />
$webworkURLs{equationCache} = "$webworkURLs{htdocs_temp}/equations";<br />
<br />
== Using SSL with lighttpd ==<br />
<br />
The issue is that is you serve insecure images in a secure page then some browsers complain about "insecure content within a secure page". IE in particular complains about this a lot.<br />
<br />
To do this here are the steps:<br />
<br />
1. In /etc/apache2/certs do (as root)<br />
<br />
cat ww64test_star_maa_org.crt ww64test_star_maa_org.key > ww64test_star_maa_org.pem<br />
cp ww64test_star_maa_org.pem /etc/lighttpd/<br />
<br />
2. In /etc/lighttpd, edit lighttpd.conf to include the lines<br />
<br />
ssl.engine = "enable"<br />
ssl.pemfile = "ww64test_star_maa_org.pem"<br />
<br />
3. In site.conf replace<br />
<br />
$webworkURLs{htdocs_temp} = 'http://yourserver.yourschool.edu:8080/wwtmp';<br />
<br />
and<br />
<br />
$courseURLs{html_temp} = "http://yourserver.yourschool.edu:8080/wwtmp/$courseName";<br />
<br />
with <tt>https://...</tt><br />
<br />
<br />
== Forum discussions ==<br />
<br />
* [http://webwork.maa.org/moodle/mod/forum/discuss.php?d=2522 images will not load (off campus)] 23 Aug 2011<br />
* [http://webwork.maa.org/moodle/mod/forum/discuss.php?d=201 some students can't load images] 10 Sept 2009<br />
* [http://webwork.maa.org/moodle/mod/forum/discuss.php?d=233 images not displaying] 9 Apr 2009<br />
* [http://webwork.maa.org/moodle/mod/forum/discuss.php?d=566 installation questions]<br />
<br />
== External links ==<br />
<br />
* [http://www.lighttpd.net/ Official lighttpd website]<br />
<br />
== References ==<br />
<br />
<references/><br />
<br />
[[Category:Administrators]] [[Category:Installation]]</div>Aubreyja