Posts filed under 'Uncategorized'
Complete and Release
After a very eventful meeting with Gene Amdur last week, we’ve finally figured out what to do for the rest of the summer. Karen decided to switch Qi and I, where Qi will now be working on the Eclipse plug-in while I get the reins of Web-CAT, and everything else that comes with it.
We’ve decided to tread slowly, fixing minor bugs to get us familiarized with the innards of Web-CAT. This week, I’ve fixed the bugs regarding releasing of assignment results and viewing permissions of students. Apparently, students can see comments and marks added by the TA that is still being marked and has not been released yet (a big no-no). Interestingly enough, even if marks added by the TA are not explicitly shown if assignments are unreleased, it is still included in the calculation of final mark shown when students view their feedback, which is just a matter of simple arithmetic to find out the “hidden” TA mark.
Next week, I would then start doing more major surgery on Web-CAT, now adding a complete and release mechanism to marking assignments, typical to the way instructors here are used to OLM. This would provide capabilities for markers to change the status of the student as complete, indicating that it is ready to be released by the instructor for student viewing. We would then transfer the release capability to the instructor, rather than the TA, of making the completed submission result available to students. This would involve more changes internally as it would mean adding attributes to the tables that is accessible only through WebObject’s EOF – which is like SQLAlchemy in python, except that it’s meaner and eats children.
Another problem that I have is providing granular restrictions on components in a WebObject page. As far as we know, Web-CAT only provides access level restrictions on a per-page level and not on individual components. What this probably means is that we can’t have conditions on components like “display this button only to instructors”, but rather create a whole new page with just that one change and put restrictions accordingly on the page. This still requires investigation that I’m looking forward to next week.
1 comment June 21, 2008
Update: Spilling The Guts
Eran: trying to add syntax-coloured code view to python plugin, turns out it needs Web-CAT itself to generate the html page.
Geofery: Generating ideas for Eclipse plugin’s GUI designs, and documenting the prospective API to talk to Web-CAT which Stephen is quick to implement,
Qi (me): Looking at the TODO list from last week’s meeting, going through a scavenger hunt inside Web-CAT’s two (currently buildable) components Core and Grader to see what we can do. So far we added a semi-working raw filebrowser on submission results page, and semi-fixed few UI annoyances in code viewer.
It would seem that things are picking up pace finally…
Add comment June 10, 2008
SVN, My best friend
(Swing, Moderate)
Sometimes I’m happy, sometimes I’m blue,
My disposition is depended on you.
I never mind regressions from the nightlies,
As long as I have, a version in your eyes.
Sometimes I love you, sometimes I hate you,
But when I hate you, it’s because I love you
That’s how I am, so what can I do?
I’m happy when I’m connected to you
SVN, My best friend,
You’re the reason I commit so often,
That’s how I work, so what can I do?
I’m happy when I’m connected to you.
(I’m not happy with the phrasing right now…any suggestions?)
1 comment June 4, 2008
How I Learned to Stop Worrying and Love Eclipse
How? I’m not here to tell you… because I don’t know yet, besides, this is not about Eclipse.
If you’ve spent the last week trying to make WebObjects+WOLips+Eclipse work on Ubuntu, like me, you’ve probably already tried following guides like this one, or this. After a while you find yourself staring at WOLips in Eclipse wondering why the frak does it not recognize all these delicious WebObjects frameworks you freshly extracted from XCode 2.5 with a 17″ Powerbook G4 that is still running good old 10.3.9. This might solve your problem…
4 comments May 30, 2008
Bitten by the Version Bug
For the past week, I’ve been struggling with getting OLM installed in Ubuntu, while Qi struggles with getting Web-CAT built. Every time we figure out what’s wrong, it seems that the culprit is always the same: versions.
OLM documentation isn’t that bad, except that they forgot to include some of the dependencies involved. And it turned out that this is very important to make it run. The first mistake that I made was blithefully ignoring the current version of python Ubuntu was hooked on (which was 2.5) and proceeded to install it on the older version 2.4. Once I got to the point of installing modules, I then realize that using ‘apt-get install’ (which was another mistake on its own) installs the modules on the latest version. Turns out that you can specify which version of python you want to use by editing debian-defaults file and specify the version to use. This is when I’ve also discovered easy_install which makes life a bit rosy when installing modules, especially on a specific version. Just execute ez_setup.py to install it on a specific version of python and voila! you got python modules at your fingertips.
Once I got out of the apt-get hell, I then ran into the problem of compiling one of the modules that I need: PyXML. Turns out that it needs another python module (python-dev) that I couldn’t figure out how to install on 2.4 Edit: turns out you can do this with python<version>-dev. After giving up, I finally decided to manage my own python installation (building from scratch) and installed everything in it. I then override my $PATH with my custom python installation. At the end of the day, I finally got OLM up and running (even took me a while to figure out the default authentication to log in), with one exception: nothing was running. This was frustrating after a few days of wrestling through it.
After some laborious debugging, I finally tracked down the error: the version of TurboJson I was using (1.1.1) was in conflict with OLM. Even if the OLM doc specified to use TurboGears 1.0.2.2, installing TurboGears have other module dependencies and that it automatically downloads all the latest versions. The worse part is that OLM hides the error with its AJAX front-end so there was no way to see what’s going on without debugging (firebug not working well with FF3 is another story). Turns out latest version of TurboJson is throwing some AmbiguousMethod that can only be resolved by either changing the OLM source or downgrading TurboJson. So I chose the latter, and everything seems to be working like it should be.
With all this, I think it’s safe to say that we programmers still have a long way to go in resolving dependencies that do not break on every upgrade. The terms design-by-contract and program-to-interface always comes to mind on these occasions. For now the best remedy is to document everything, until someone comes up with a solution to make dependencies resolve itself on its own and make them, as Greg always says, either famous or filthy rich.
1 comment May 29, 2008