This page is part of the WebCatDevelopmentBlog.
Web-CAT Development Activities: September 2005
[2005-09-30] A new wiki theme
I spent some time last night working on the theme for our wiki, and gave the whole site a facelift. We are now using a variant of a theme from the MoinMoin wiki based on Wikipedia. This is groundwork for moving our sourceforge site to this wiki. Comments are appreciated.
[2005-09-29] IE errors saving comments on student code Cyril Montabert (one of our TAs) reported that saving of grader comments edited directly into source files was not working for IE users. The problem had to do with some incorrect regular expressions that helped break apart the incoming data from the page on the server's end, and is now fixed.
[2005-09-29] Instructors testing assignments using their own reference tests Manuel Perez discovered an interesting result while testing out a Java assignment today. He made a test submission to a new assignment he was writing, and accidentally included his reference tests in his submission. He received a zero in his results, together with the dreaded "does not conform to the problem setup" explanation. The problem is that the ANT build file wasn't actually compiling the instructor's reference tests for the assignment, because the corresponding class file had already been generated by compiling the (student) submission code, and the grading script was failing to find any information about successfully compiling the reference tests.
Since this is a common enough problem, I spent some time poking around trying to find a way to make the ANT javac task force recompilation of the reference tests under these conditions. There's no force option for javac, though, and dependency anaylysis doesn't help (the student's compiled class file is always newer than the assignments reference test source anyway). I solved the problem by using separate output dirs for the class files, instead of lumping them all into one destination. The instructor's class files come first on the classpath, of course, so that student code can't "hide" instructor reference code.
[2005-09-28] Cross-linking submissions by multiple partners
ManasTungare reported a bug when linking submissions among two partners. When two (or N) partners are working together (say, in a lab), only one needs to submit. When the TA is grading, he or she can "link" other students to that single submission, so that all of them see the results, even though there is only one copy of the submission and that is the only one that needs to be graded. In this case, both students submitted separately, and Manas linked each partner to the other's submission. Magically, due to a bug in Web-CAT's logic, both submissions disappeared from the grading screen. That is because Web-CAT only shows the original copies when a TA or instructor is grading assignments, not the partner links. The logic was slightly flawed, but is now fixed, and the original submissions from both students now show up properly.
[2005-09-25] Instructors can now submit via Eclipse or BlueJ
For a long time, instructors have wanted an easy way to make "test" submissions while setting up an assignment, but they had to be enrolled in a course and the assignment had to be published first (basically, the same conditions required for a student to be able to submit). I thought I'd fixed the code so that these checks would be bypassed for instructors or TAs making external submissions using BlueJ or Eclipse, but it wasn't working anyway. I finally had the time to check it, and due to a small typo, you had to be both an instructor and a TA for the checks to be bypassed
. I fixed it so that now instructors and TAs can make tool-based submissions to unpublished assignments, and never have to be enrolled in the course at all. Now all I have to do is fix Step 1 under the Submit tab so that you don't have to be enrolled for courses to show up there either ... [2005-09-25] Session management bugs for WAR-deployed Web-CAT installations
I was finally
able to crack the session management bug for WO applications running as servlets. WebObjects uses a "session store" to manage sessions between http requests. A stand-alone WO application running under wotaskd uses an in-memory session store for the app. When an application is run as a servlet, WO basically stores internal sessions as data on the servlet container's HttpSession. Both implementations conform to the same WOSessionStore interface. So far, so good. Web-CAT was relying on the save/restore capabilities provided by a session store in order to route all user login events to a single session for that user. This includes external submissions through tools like BlueJ or Eclipse. However, when Web-CAT is running as a servlet, exceptions were being thrown everywhere when external submissions were being made. It turns out that Apple gave the WOServletSessionStore empty (non-functioning) implementations of save and restore functions, since the servlet container is suppose to take care of session management automatically. As a result, Web-CAT was completely unable to connect to existing sessions for external submissions (and much more). I switched Web-CAT to use a traditional WOServerSessionStore even when running as a servlet, so no data is ever transferred to the container's HttpSession, and all is well again. [2005-09-28] Opening a Blog This page was opened. "Recent activities" more than about a month old or so will be moved into the "old news" section.