Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Devdoc #70

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
Open

Devdoc #70

wants to merge 9 commits into from

Conversation

TWINGSISTER
Copy link

my previous pull request was not accepted but picked by hand. So I had to pull the new version and do a new branch DEVDOC. I suggest these mods because looking carefully in GGB docs (https://wiki.geogebra.org/en/Reference:GeoGebra_Apps_Embedding#Offline_and_Self-Hosted_Solution) it comes out that a call to applet.setHTML5Codebase('GeoGebra/HTML5/5.0/web3d/'); is needed to set the codebase. where the codebase is exactly located is not exactly known and several possibilities must taken into account. So I tried to devise a patch to take into account most situations and yet in the string for URL parameters one can use things like /Geogebra/GeoGebra/deployggb.js|/Geogebra/GeoGebra/HTML5/5.0/web3d/ where after the pipe "|" we have the codebase location. Other supported options for "Custom deploy URL" are http://www.geogebratube.org/scripts/deployggb.js or /Geogebra/GeoGebra/deployggb.js (code will do its best to find the codebase location) while the syntax //www.geogebra.org/apps/deployggb.js that omits http is no longer supported (at the time of writing I think this is not a good idea will reintroduce this in a later pull request) .

@toniginard
Copy link
Member

Hi @TWINGSISTER,

Thanks for your new contribution. I have had a quick look to the commits and I don't understand what's the purpose of the files in the trash dir. Can you explain it?

Best wishes,

@TWINGSISTER
Copy link
Author

Mmmh. I think that the main purpose of the trash folder is to show that my knowledge of Git is quite poor!
Can you please tell me what to put ( and in what .gitignore ) not to propagate this from the next push on? In the meanwhile you can ignore what is in that!

I found that hosting JS code fail for some versions of GGB and yet they say that you must set the codebase so I worked arounf it. This is a minor issue.

Right now I am actively pursuing that goal of reducing the MySQL footprint of this plugin.

My goal is to collect GGB activities around the world and automatically generate multilingual version. I am pursuing the same goal with ExamView tests and Google translate works pretty well translating tests in real time when Moodle displays them! Nope for GGB so...!

My multilingual approach relies on instrumenting a .ggb with some code and some strings to have realtime translation in several languages. This grow considerabely the .ggb size so that's why I like to be careful about DB memory footprint.

This is particularly relevant since I found a lot of multi stage ggb activity where the "present last step snapshotting" implemented in this plugin will surely run into problems with parents when the note is not exceptional... You have to give some evidence of why the student fails and mosto of the time this is not in the last screen.

I think that modifying this plugin to offer an undo facility that implements an undo that is persistent across sessons within this plugin is nearly impossible.

I had little success to attract attention from GGB developers and so I started to think that the only option is to add more instrumented code in the .ggb javascript to do this. As a byproduct will try also to turn many sigle shot randomizable activity, available on the net, into a longer test with some code that propose several randomized copies of the same exercise.

This requires some knowledge of this plugin and probably some mods to have hooks for the JS code.
I think I can read the code and goes on with that but it would be nice to have some help and exchange opinions.

Writing down all this is somehow long tedioous and not so meaningful so I propose to have some talk (just audio talks I have no camera and a permanently messy apartment) but GitHub do not offer it. So please reach me at twingsister AT gmail DOT com for further contact. Cheers

@TWINGSISTER
Copy link
Author

Dear Toni, after some reading of the code I think that just adding in geogebra_view.js in
doExit: function () { if (GGBExitHook) {GGBExitHook();..... will do the job. Looking at this code JS I found that probably is not impossible to control and store revisions from the plugin, too.

So we have two options. One, is just to add this hook and have an external web service instrumenting code so that the .ggb shows a rewind and a play button. I am halfway with that and my idea is that the user must give the names of some variables that have been used in the activity to store point errors pages etc.. and the service will trigger the snapshot of activity state for future revision / evidence when one of these variables changes. Snapshot are saved in some text objects in GGB and stay within the GGB64 stored in MySQL. The plugin won't be aware of this.

On the other hand we can decide to make this a feature of the plugin so the user can put as option a comma separated text like e.g. "mistake,wrong,ok,answok,pageon" and we will take care to snapshot the GGB64 and compute the deltas when one of these variables changes. Then we will store all this at doExit within SQL. This won't harm existing Moodle instances since they won't have a "mistake,wrong,ok,answok,pageon" option. However one could foresee some work that must be done when reloading the GGB activity if we do not store the state at the end of the attempt. We can do this just for activity instances sent for grading YMMV....

Let me add that I have tried to monitor every GGB event and the applet was very, very slow. So i think that a totally automatic monitoring solution is not feasible and we must ask users to give some information about the GGB activity i.e. specify which variable we have to monitor.

A one stop purging for the WHOLE COURSE DB deleting all the tests and attempts that will not be used for final assesment is a general problem that this plugin might address or not. No idea how complex it is in this context, like to hear... Cheers Franco.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants