*** menesis has quit IRC | 06:36 | |
*** khildin has joined #schooltool | 11:15 | |
*** menesis has joined #schooltool | 12:20 | |
*** yvl has quit IRC | 13:55 | |
*** ignas has joined #schooltool | 14:12 | |
*** replaceafill has joined #schooltool | 15:59 | |
*** paulproteus has quit IRC | 17:00 | |
*** paulproteus has joined #schooltool | 17:07 | |
th1a | replaceafill: Can you do a hangout this morning? | 17:19 |
---|---|---|
replaceafill | sure, i'm eating now :) | 17:19 |
replaceafill | i'll be done in ~20 | 17:19 |
replaceafill | and i'm testing the importer in the vps | 17:20 |
replaceafill | the fix works for glenda's old database | 17:34 |
th1a | Yeah, we just need to figure out exactly what she's doing. | 17:35 |
replaceafill | i'm ready to hangout if necessary | 17:36 |
th1a | Does glenda just want a different order, replaceafill? | 17:42 |
replaceafill | it seems like the change didnt propagate to the section skills | 17:43 |
replaceafill | the administrative view show the right order | 17:43 |
replaceafill | views* | 17:43 |
th1a | Is it working for you? | 17:44 |
replaceafill | yes | 17:44 |
replaceafill | i have that same order (from her last email) | 17:44 |
th1a | Is it possible she's using the wrong repository? | 17:44 |
th1a | Oh, you have the same result. | 17:44 |
th1a | You've replicated her bug. | 17:45 |
replaceafill | i mean | 17:45 |
replaceafill | no | 17:45 |
replaceafill | i mean, i have: | 17:45 |
replaceafill | work ethic | 17:45 |
replaceafill | diversity | 17:45 |
replaceafill | etc | 17:45 |
replaceafill | you can log in to the vps to see it btw ;) | 17:45 |
th1a | I'm usually not the one pushing for a hangout but right now we're fucked without one. | 17:45 |
replaceafill | true :D | 17:45 |
th1a | You've replicated her bug? | 17:45 |
replaceafill | i could just share my screen to see you the right order in my gradebook | 17:46 |
replaceafill | no, the fix works in my instance | 17:46 |
replaceafill | with her *old* data | 17:46 |
replaceafill | imho, something has happened between the time *old data* was taken and when she upgraded | 17:46 |
replaceafill | i asked her for the files and she replied (to me only) that she's going to get them | 17:47 |
th1a | OK. | 17:47 |
replaceafill | "A picture is worth a thousand words" | 17:51 |
replaceafill | :) | 17:51 |
th1a | And you get that in the gradebook too? | 17:52 |
replaceafill | yes | 17:52 |
th1a | Oh, that's the scoring form. | 17:52 |
replaceafill | correct | 17:52 |
* th1a is going to be out until about 1:00. | 18:19 | |
th1a | The challenge is just figuring out the state of Glenda's instance. | 18:20 |
replaceafill | i'll wait for the two files i requested | 18:20 |
th1a | If she's ready to hang out before I'm back, go ahead. | 18:20 |
replaceafill | kk | 18:20 |
th1a | I won't scold you about chain of command. ;-) | 18:20 |
replaceafill | :D | 18:20 |
*** ignas has quit IRC | 19:29 | |
replaceafill | since i forgot to reply all in my last email to glenda :D | 20:09 |
replaceafill | i did cc you th1a ;) | 20:09 |
replaceafill | glenda's database already has the new skills imported | 20:09 |
replaceafill | so, when she reimports | 20:09 |
replaceafill | the importer doesn't detect any changes | 20:09 |
replaceafill | so, it doesn't force the update of the section skills | 20:10 |
replaceafill | again, if i go to a single course and reassociate its skills, the section update is forced | 20:10 |
th1a | OK. | 20:17 |
aelkner | replaceafill, th1a, hey, i got the project skill copy fixed so that the scoresystem gets carried over | 20:52 |
th1a | ah | 20:52 |
replaceafill | aelkner, great | 20:52 |
aelkner | the thing is, the score validation logic assumes a ranged values scoresystem | 20:52 |
aelkner | so the logic of comparing the score to bestScore() for whether the socre is extra credit is off | 20:53 |
aelkner | because B > A | 20:53 |
aelkner | replaceafill, can you look at that with me a sec? | 20:53 |
replaceafill | imho score systems are still f***ed | 20:53 |
replaceafill | sure | 20:53 |
aelkner | class FlourishGradebookValidateScoreView(JSONViewBase) | 20:53 |
replaceafill | but i know what you mean | 20:53 |
aelkner | replaceafill, yes, they're f***ed :) | 20:54 |
replaceafill | i'm there aelkner | 20:54 |
aelkner | the thing is, each score has a display value and a numeric value | 20:54 |
aelkner | it's the numeric value that really matters in determining averages and extra credit | 20:55 |
replaceafill | aelkner, you know that cando has it's own validation view, right? | 20:55 |
replaceafill | it doesn't use the gradebooks | 20:55 |
aelkner | you would think that would be the case, but the pdb breakpoint in cando's code was not reached | 20:56 |
aelkner | but the gradebook one was | 20:56 |
replaceafill | ?!?!?! | 20:56 |
aelkner | yeah, weird, hugh? | 20:56 |
aelkner | i guess the cando pne is only for student gradebook | 20:56 |
replaceafill | ah | 20:56 |
replaceafill | yes | 20:56 |
replaceafill | you're rigth | 20:56 |
aelkner | that's what i assumed | 20:56 |
replaceafill | right* | 20:56 |
aelkner | ok, good | 20:56 |
aelkner | i can see why you would want it to go to the gradebook one, code reuse and all | 20:57 |
replaceafill | name="validate_student_score" | 20:57 |
replaceafill | the name is different | 20:57 |
aelkner | you know historically, the gradebook average logic has changed over tme | 20:57 |
aelkner | at one point we decided that only ranged values scoresystems were allowed | 20:58 |
replaceafill | right, the section gradebook for cando uses the gradebook's logic, you're right | 20:58 |
aelkner | because the idea of averaging A-F with 1-100 didn't make much sense | 20:58 |
aelkner | well, now i think we need to revisit that discussion if we are gong to have flexible skill scoresystems | 20:59 |
aelkner | what will it mean to average, say, Competency (1-4) with Extended Letter Grade (A+-F)? | 20:59 |
aelkner | th1a, we're back to that again | 21:00 |
th1a | Oh, yes, what? | 21:00 |
th1a | Well, | 21:01 |
th1a | The activity gradebook and the cando gradebook are inherently different insofar as one always uses ranged score systems and as far as I'm concerned, the other only uses discrete ones. | 21:01 |
th1a | Although I guess we might not have discussed that explicitly. | 21:02 |
aelkner | well, using discrete socresystems reintroduces the averaging problem | 21:02 |
aelkner | that we carefully eliminated by limiting gradebook to ranged values | 21:03 |
th1a | It isn't that much of a problem. | 21:03 |
aelkner | what will it mean to average, say, Competency (1-4) with Extended Letter Grade (A+-F)? | 21:03 |
th1a | First off, it isn't very important; second, there is no right answer, BUT | 21:04 |
th1a | in a discrete score system you give each score a value, right? | 21:04 |
aelkner | yes | 21:04 |
th1a | So, if you want them to make sense averaged together, it is up to the user to set those values in a sane way. | 21:04 |
th1a | If a A = 10 and 1 = 4, and they average to 7, which makes no sense, that's not really our problem. | 21:05 |
aelkner | Pass = 1, Fail = 0 | 21:06 |
aelkner | A = 4, F = 0 | 21:07 |
aelkner | so Pass + B / 2 = ... | 21:07 |
th1a | 2.5 | 21:07 |
th1a | That's their problem. | 21:07 |
aelkner | (1 - 0) / (1 - 0) the diff between lo and high + (3 - 0) / (4 - 0) | 21:08 |
aelkner | all then devided by 2 | 21:08 |
th1a | Is that how we do it now? | 21:08 |
aelkner | actually, sorry, bad formula | 21:08 |
aelkner | it's 1 + 3 / ((1 - 0) + (4 - 0) = 4 / 5 = .8 | 21:09 |
aelkner | 80 % | 21:09 |
th1a | Or that. | 21:09 |
th1a | I'm ok with that. | 21:09 |
aelkner | then that value needs to be translated to whatever scoresytem they se for average | 21:09 |
aelkner | remember? | 21:09 |
th1a | I clearly thought more carefully about this the first time. | 21:10 |
aelkner | yeah, we can give them that | 21:10 |
th1a | Anyhow, this is not broken. | 21:10 |
aelkner | so, replaceafill, we just need to use numerical values everywhere instead of display values | 21:10 |
aelkner | i can play with this stuff this weekend and i've already set up some tests | 21:11 |
aelkner | i can build on it and fix the calculations | 21:11 |
replaceafill | aelkner, kk | 21:12 |
aelkner | as long as i don't break existing tests it should be ok | 21:12 |
replaceafill | where do we use display values? | 21:12 |
replaceafill | ah, i remember doing some int(...) in virginia | 21:13 |
replaceafill | i put a big #XXX though :D | 21:13 |
aelkner | in that validation routine, FlourishGradebookValidateScoreView | 21:13 |
replaceafill | score = scoresystem.fromUnicode(score) | 21:14 |
aelkner | yeah, it's great how XXX just fixes code all by itself :) | 21:14 |
aelkner | yeah, that line does nothing | 21:14 |
aelkner | it doesn't return the numerical value, it returns the display value | 21:14 |
replaceafill | again, the scoresystems... f***ed | 21:15 |
aelkner | that's why B > A | 21:15 |
replaceafill | also | 21:15 |
replaceafill | take into account minium and maximum types for scoresystems | 21:15 |
replaceafill | when fixing the validation logic | 21:15 |
aelkner | yeah, it's (value - min) / (max - min) | 21:16 |
aelkner | if it's just one score, ofc | 21:16 |
replaceafill | good luck aelkner :) | 21:16 |
replaceafill | i know how messy that part is :( | 21:16 |
aelkner | the formula i stated above is an example of two scores with two different scoresystems | 21:16 |
aelkner | np, i did work with it in the past, so it's not a new problem for e | 21:16 |
aelkner | me | 21:16 |
aelkner | just to give a example with two scores: | 21:18 |
aelkner | ((value1 - min1) + (value2 - min2)) / ((max1 - min1) + (max2 - min2)) | 21:18 |
aelkner | makes sense? | 21:19 |
* replaceafill is confused by aelkner's formula | 21:20 | |
replaceafill | but nm :D | 21:20 |
replaceafill | i trust stests :P | 21:20 |
replaceafill | hhmm... although my stest didn't catch glenda's current case :D | 21:20 |
th1a | hm? | 21:21 |
aelkner | replaceafill, you see, in theory, a scoresystem could go from 2-5 | 21:21 |
replaceafill | right | 21:21 |
aelkner | so a 3 is really worth (3 - 2) / ( 5 - 2) | 21:22 |
aelkner | it's one rung up a four rung latter | 21:22 |
th1a | I'm really not sure we should be taking the low value in to consideration. | 21:22 |
th1a | In fact, I'd say we shouldn't. | 21:22 |
aelkner | ah, yes, th1a, good point | 21:22 |
replaceafill | didn't we have a bug related to that? | 21:23 |
aelkner | i think i saw a discussion about that | 21:23 |
aelkner | yes | 21:23 |
replaceafill | you fixed it, right aelkner? | 21:23 |
aelkner | the low value is just to be generous to all students | 21:23 |
aelkner | like how we give trophies to the losers, too, here in america, soccer mom's that is | 21:23 |
th1a | Well... | 21:24 |
aelkner | but seriously, the min value just means that noone can get a zero | 21:24 |
th1a | it is not so much that. | 21:24 |
aelkner | it does't mean that the min + 1 is only worth 1 | 21:24 |
th1a | The point is really that it makes raising a low grade later in the quarter too difficult. | 21:24 |
th1a | That is, an F and and A should average to a C or D. | 21:25 |
th1a | But if you can get a zero, they might average to an F. | 21:25 |
aelkner | not sure what you're referring to there, perhaps if you stated it concretely, i.e., with numbers | 21:26 |
aelkner | but if you'd rather not bother, that's ok | 21:26 |
aelkner | i'll just us the sum of the maxes as the denominator | 21:27 |
aelkner | use ^ | 21:27 |
aelkner | and use the actual numerical value, not value - min | 21:27 |
aelkner | for the nominator parts | 21:27 |
aelkner | value1 + value2 / (max1 + max2) | 21:28 |
aelkner | instead of more complicated formula stated above | 21:28 |
aelkner | forgot parentheses in numerator, but you get the idea | 21:28 |
th1a | What I'm saying that actually matters is that when a school uses in effect a 50-100 score system, they don't want you to calculate it as if 50 translates to 0 and 100 translates to 50. | 21:29 |
aelkner | right | 21:30 |
th1a | They're just setting a lower bound for valid numbers. | 21:30 |
aelkner | yeah, that was what my trophie joke was about | 21:30 |
th1a | But the rationale is the general sense that the average of F and A needs to be a passing grade. | 21:30 |
th1a | And using the floor of 50 to allow that. | 21:30 |
aelkner | oh, yeah, that | 21:31 |
aelkner | that's like what i remember form groing up | 21:31 |
aelkner | we actually didn't have grades below 50 for the reason you just stated | 21:32 |
aelkner | anyway, the calculation i just posted will do the trick | 21:32 |
aelkner | enough said on the subject, thanks guys | 21:33 |
th1a | You don't want to start over on a more philosophical level? | 21:36 |
replaceafill | :| | 21:37 |
th1a | So where are we with Glenda at this moment, replaceafill? | 21:37 |
replaceafill | i think we'll be ok | 21:37 |
replaceafill | as long as nobody has used the new skills XLS yet | 21:38 |
replaceafill | which i think is the case | 21:38 |
th1a | How many courses would she have to manually reset? | 21:38 |
replaceafill | let me see... | 21:38 |
replaceafill | 93 | 21:38 |
th1a | So... is there anything we can do to help HER out... this is just her demo, right? | 21:39 |
replaceafill | yes | 21:39 |
th1a | Some kind of quickie script for her... | 21:39 |
replaceafill | i could run a hacked batch assignment view on her database | 21:40 |
replaceafill | hhmm | 21:40 |
replaceafill | i don't know which one would be more difficult for her | 21:40 |
replaceafill | to do | 21:40 |
replaceafill | putting a fixed database in place or running a script | 21:40 |
th1a | Probably putting the fixed database back is easier. | 21:41 |
replaceafill | or... we could add the option to override in batch assign :) | 21:41 |
replaceafill | i think so too | 21:41 |
th1a | Yes, but then we'd have to push an update. | 21:43 |
replaceafill | righ | 21:43 |
th1a | And I don't want to stop for that again. | 21:43 |
replaceafill | t | 21:43 |
th1a | One more thing Glenda... | 21:43 |
replaceafill | well... | 21:43 |
replaceafill | the importer is doing what is right i think | 21:44 |
th1a | Yes. | 21:45 |
th1a | I don't think this is a real bug. | 21:45 |
th1a | It is a minor bug. | 21:45 |
replaceafill | it's a data problem :D | 21:45 |
th1a | A data model issue?!? | 21:46 |
replaceafill | no! | 21:47 |
* th1a goes to get Vivian. | 21:53 | |
*** mobert has quit IRC | 22:00 | |
* replaceafill goes to get lunch, bb in ~1h | 22:11 | |
replaceafill | th1a, sent instructions to glenda on how to replace the db, she said she'll work on it on monday | 23:26 |
th1a | OK. | 23:30 |
th1a | Thanks. | 23:30 |
Generated by irclog2html.py 2.15.1 by Marius Gedminas - find it at mg.pov.lt!