## Forum archive 2000-2006

### Michael Gage - WeBWorK job list

by Arnold Pizer -
Number of replies: 0
 WeBWorK job list topic started 6/5/2000; 10:07:02 PMlast post 6/26/2000; 6:17:44 AM
Michael Gage - WeBWorK job list
6/5/2000; 10:07:02 PM (reads: 1885, responses: 3)
Here is my preliminary list of jobs for the summer. Please post your comments, and I'll add to and modify the current list. The comments may be suggestions for other needed jobs, ideas for accomplishing the tasks already listed, or volunteering for one task or another. Arnie, Eva and I will prioritize and split up the tasks as soon as we think we understand what needs to be done.

-- Mike

WeBWorK Projects

 1. FIX displayMacros.pl STICKY ANSWERS
 The preview answers and sticky answers macros in displayMacros.pl assume that answers begin with a fixed answer prefix. See if this can be fixed. It should not be too hard -- perhaps a project for one day or less.
 You may need some of the documentation in PGtransform.pm and processProblem8.pl and will need to look at the code for ENDDOCUMENT in PG.pl. (There are some gaps in the documentation.
 I think you will need to change createDisplayedProblem to accept $pt->rh_flags() as well as$pt->ra_text(). From the former you can obtain the array of answer names from the array @{$pt->rh_flags->{ANSWER_ENTRY_ORDER}} to process the sticky answers and sticky preview answers properly. You will also need to change some other subroutines in displayMacros.pl and you will need to make at least one change in processProblem8.pl where createDisplayedProblem is called so that$pt->rh_flags is passed.
 Keep an account of omissions in documentation and confusing documentation -- either on webworkdocs or in a note book. -- or if it is easier, fix the documentation as you go.
 2. REDESIGN Select.pm
 Redesign this so that one can have a different number of answers from the number of questions. Or one answer can be used more than once. It may be desirable to have two versions of Select.pm -- the simple one and a more complicated one.
 During the design it might be a good idea to first consider how one would have done this with the old code which did not use objects and so forth.
 When the new version is designed and built, write good documentation (using pod in the code itself) and create one or more examples for webworkdocs.
 Keep track of unclear documentation or omissions in documentation and record it in a notebook or on webworkdocs.
 3. EDIT THE DESCRIPTIONS in all of the problems in the problem bank.
 4. Make HTML output of processProblem8.pl conform to HTML 4.0 specifications.
 This might be an opportunity to rewrite processProblem8.pl so that it is easier to change the format of the displayed problem. (Imagine for example, that you wanted a version of WeBWorK in French -- make it fairly easy to change this without understanding all of the code.)
 5. FIND LEAKS in PGtranslator.pm and optimize that package for efficiency.
 6. Write documentation for Units.pm in the code (pod format)
 Possibily answer-evaluator generators should become an object class
 Possibly ans_hash should become an object class (to facilitate generating a blank with generic error messages and the required entries.)
 Design a spec for filters which modify answers or check answers. What should the input and output arguments be. You should be able to string filters together.
 In addition to "is_a_number", "is_a_string" type of filters we could also have an "OR" filter and "AND" filter which allows you to combine answer_evaluators.
 Answer evaluators should accept either arrays or references to arrays in addition to single valued inputs.
 Check for efficiency of these macros.
 8. CREATE NEW DATABASE glue file (DBGLUE.PL)-- one that works with mySQL perhaps.
 9. LIST all PG MACROS,
 and make the popup list on the web based editor point to a short description of each macro. This will help newcomers, I think. If possible do this in a way which will require minimum upkeep as new macros are added.

<| Post or View Comments |>

Michael Gage - WeBWorK job list 2
6/11/2000; 7:34:24 PM (reads: 2388, responses: 1)
WeBWorK projects 2
 1. Convert @printlines array in processProblem8 to string.
 2. Allow underscores in set names
 3. Reformat professor page
 so that it has a convenient side bar down the left hand side-- on the main page and every page underneath it. Use a template that is common to all of the pages.
 4. Fix bug in PDF that seems to destroy the first graphs in downloads
 5. Add newbie manual to website.
 6. Explore CVS for handling both our problem database and our code
 7. Explore MySQL or some similar database for storing WeBWorK data (replacing GDBM).
 8. Combine the current FAQ document with the About WeBWorK document on the website.
 Create maintainable framework for FAQ document.
 9. get png working properly
 10. fix "&" bug in navigation links
 A good way to do this would probably be to convert navigation links to using POST and forms instead of GET. There will then be less clutter on the URL line. (Although the clutter does allow for switching easily from system to development, which can be handy.)
 Alternatively the urlEncode hack at the end of the format_navigation_bar macro can be replaced by a more intelligent urlEncode subroutine

<| Post or View Comments |>

 Robert (Rochester ugrad) - Re: WeBWorK job list 2  6/13/2000; 11:31:36 AM (reads: 2900, responses: 0) 2. Allow underscores in set names I took care of this one. Not sure if my method was the cleanest since I created a "protect_underbar" sub inside another sub but since it literally only gets used once it didn't seem necessary to have it "globally" available. <| Post or View Comments |>

Michael Gage - Re: WeBWorK job list 3
6/26/2000; 6:17:44 AM (reads: 2312, responses: 0)
WeBWorK projects 3
 1. Write a cron job that does garbage cleanup of the tmp area
 It should search a given subdirectory of the tmp directory, determine whether the file is intended for a user who has a current key. If not it should delete the file or link. (We won't want to use this on the l2h election.) It might be a good idea if we can make sure that the key expired more than $time ago, where$time might be 5 minutes.
 For a model of how this can be done look at the temporary file cleanup routines defined on the professor page. Those scripts can probably be modified to run automatically as cron jobs.
 See also get_active_users_from_keys macro in scripts/DBglue and profShowActiveUsers.pl in the cgi-scripts directory
 2. Write a script which will send mail to all students,
 or all students in a section, or just to a few students in a class from a web page. This will replace the sendMail command line script.
 3. Make it easier to rebuild and check a set
 (Currently you need to click through several web pages to recheck whether the rebuild is correct).
 4. Cleanup the answer macros needed for the differential equation questions (MTH163)
 and finish creating problem sets for the fall MTH163 course.
 5. Rewrite the web based editor,
 taking advanatage of the fact that temporary information can be stored on the server in the tmp area. This will require the automatic garbage collection feature above.

<| Post or View Comments |>