Sunday, 2009-06-21

*** tpb has joined #melange00:00
*** madrazr has joined #melange02:17
*** ChanServ sets mode: +v madrazr02:17
*** mithro has joined #melange02:30
*** ChanServ sets mode: +v mithro02:30
*** dhaun has joined #melange03:04
*** florinciu has joined #melange03:53
*** Merio has joined #melange05:25
*** ChanServ sets mode: +v Merio05:25
*** madrazr has quit IRC05:30
*** madrazr has joined #melange07:03
*** ChanServ sets mode: +v madrazr07:03
*** scorche has quit IRC07:46
*** ArthurLiu has quit IRC07:46
*** jamtoday has quit IRC07:46
*** Erant has quit IRC07:46
*** nuba has quit IRC07:46
*** dhaun has quit IRC07:46
*** mithro has quit IRC07:46
*** madrazr has quit IRC07:46
*** florinciu has quit IRC07:46
*** MatthewWilkes has quit IRC07:46
*** lisppaste9 has quit IRC07:46
*** kblin has quit IRC07:46
*** tansell has quit IRC07:46
*** schultmc has quit IRC07:46
*** scorche|sh has quit IRC07:46
*** r0bby has quit IRC07:46
*** madrazr has joined #melange07:48
*** florinciu has joined #melange07:48
*** dhaun has joined #melange07:48
*** mithro has joined #melange07:48
*** MatthewWilkes has joined #melange07:48
*** scorche|sh has joined #melange07:48
*** scorche has joined #melange07:48
*** jamtoday has joined #melange07:48
*** ArthurLiu has joined #melange07:48
*** schultmc has joined #melange07:48
*** r0bby has joined #melange07:48
*** Erant has joined #melange07:48
*** lisppaste9 has joined #melange07:48
*** tansell has joined #melange07:48
*** nuba has joined #melange07:48
*** kblin has joined #melange07:48
*** sets mode: +vv madrazr mithro07:48
*** madrazr has quit IRC09:16
*** dhans has joined #melange09:19
*** dhans has quit IRC09:31
*** madrazr has joined #melange09:31
*** ChanServ sets mode: +v madrazr09:31
Meriodhans: ping10:00
*** dhans has joined #melange10:56
*** dhans has quit IRC11:40
*** dhans has joined #melange11:43
*** dhaun1 has joined #melange12:22
*** dhaun has quit IRC12:23
*** dhaun1 is now known as dhaun12:23
*** dhans has quit IRC12:27
*** Lennie has joined #melange13:46
*** ChanServ sets mode: +o Lennie13:46
ajaksujamtoday: ping13:54
*** ajaksu has quit IRC15:01
LennieMerio: ping15:12
LennieMerio: 2-0 behind :P15:13
MerioLennie: pong15:13
LennieAjaksu is beating you :D15:13
MerioLennie: about what? :)15:13
Lenniesoccer :P15:13
LennieItaly has no chance the last 10 min :D15:14
MerioLennie: fantastic! :) I didn't even know of it ^__^15:15
LennieI just turned the tv on for some background noise :P15:16
MerioLennie: but well it's not a surprise with Brazil ^__^15:16
Lenniedidn't italy win the WC?15:16
Lennie3 years ago15:16
MerioYes, followed it a lot ^_^15:16
madrazrLennie: and I was giving exam on that day too during the Italy vs France match :P15:17
madrazrour Univ sucks :D15:17
Meriomadrazr: ahhh.. you made me recall happiness ^__^15:17
madrazrMerio: heh how? :P15:17
madrazrMerio: Univ? ;-)15:17
MerioFinals of last WC ^_^15:17
madrazrMerio: hah hah Ok15:18
Meriomadrazr: no ^_^15:18
LennieNothing compared to dutch soccer craziness :)15:18
Meriomadrazr: I've lost an Italy European Cup match because of a lesson of Physics... sic15:18
Lennielast EC we took over switserland :D15:18
Lennieby caravan :P15:19
Lenniecraziness :D15:19
MerioI remember the semi-final against Denmark I think in 199615:19
Lennieanyhow, I'm not that much of a soccer fan D15:19
Lenniebut I like the Dutch team15:19
MerioMe too for Italy :)15:19
Lenniejust because apparently I'm proud of my country LO:15:19
madrazrMerio: heh15:19
MerioWell I'm not too proud, but still fan :)15:19
Lenniethat might be a better thing to say15:20
Meriowhich one?15:20
Lennienot too proud but still a fan :P15:21
LennieI'm off15:26
madrazrLennie: see you15:26
madrazrgood night15:26
Lenniemadrazr: you should get some sleep soon :P15:27
MerioLennie: c ya :)15:27
Lennieyou can do more 120% work tomorrow :D15:27
Lennienn :)15:27
madrazrLennie: ROFL! he he :D15:27
madrazrLennie: thanks for the concern :P will sleep soon15:27
*** Lennie has quit IRC15:27
*** solydzajs has joined #melange15:28
*** ChanServ sets mode: +o solydzajs15:28
*** solydzajs has quit IRC15:28
*** madrazr1 has joined #melange16:33
*** madrazr has quit IRC16:33
*** madrazr1 is now known as madrazr16:34
*** ajaksu has joined #melange16:34
*** ChanServ sets mode: +v madrazr16:34
*** ankitg has joined #melange16:53
*** madrazr has left #melange17:07
*** dhans has joined #melange17:26
*** dhaun has quit IRC17:30
*** florinciu has quit IRC17:45
*** MatthewWilkes has quit IRC18:27
*** dhans_ has joined #melange18:58
jamtodayajaksu: If you've pushed all the changes you've got, I can going through the code looks like JS mostly.19:07
*** dhans has quit IRC19:07
jamtodayajaksu: Also, I'd like to go in and get the GSOC modularization over with....i'd like to discuss a proposed implementation19:07
ajaksujamtoday: I can't git mv the files the way I hg mved them, any hints?19:07
jamtodayis that like remove/add?19:08
jamtodayyou can just rename files in git19:08
jamtodayand it will know that it's the same file19:09
jamtodayso you could just do 'mv'19:09
ajaksujamtoday: move from one directory to the other works like that? no wonder I couldn't figure it out :)(19:09
ajaksucool, let me try19:09
jamtodayNot from outside the git repo of course :)19:09
jamtodaybut within it, yes19:09
ajaksudumb me moved-with-rename to the wrong folder, is the mv detection hash based of fs based? will it work if I just move again or should I reset working copy status? :)19:14
ajaksujamtoday: I think I got it, can you take a look at last push?19:19
jamtodayyou should be able to move it again19:19
jamtodayjust do a git status19:20
jamtodayit should say that you've renamed the file19:20
ajaksudoh, I copied one of the files instead of moving, should I push a delete or do something smarter?19:21
ajaksujamtoday: when do you have 30-40 minutes to discuss modularization? can we add survey linking to the discussion?19:28
*** dhans_ has quit IRC19:46
*** dhans has joined #melange19:46
*** mithro has quit IRC20:00
jamtodayYou can always reset20:08
jamtodayajaksu: Anytime is good, as long as I'm around. If you have a specific time, let me know and I'll make sure I'm around20:09
ajaksujamtoday: I'd like to have a high density discussion during a pre-defined ammount of time, as we tend to chat in outbursts alternating with long lags :)20:36
*** mithro has joined #melange20:50
*** ChanServ sets mode: +v mithro20:50
*** Merio has quit IRC21:06
*** dhans has quit IRC21:07
jamtodayajaksu: good idea. i am here right now, and not leaving for at least an hour21:10
jamtodayor  just ping me with a little bit of notice21:11
ajaksujamtoday: I need about 10 minutes here, I think it'd fit in under 1 hour then :)21:12
jamtodayDo you feel like you have a good understanding of the survey workflow at this point?21:16
jamtodayI think the one point of confusion is what the purpose of the mentor survey is21:16
jamtodayYou mentioned that the grading survey is only taken if the student survey isn't submitted?21:16
ajaksujamtoday: ok, back and here for a looong time now :)21:19
jamtodayA few things that might be useful to explicitly state:21:19
jamtodayIt is alright for *all* surveys (midterm/final or not) to be associated with a program21:20
jamtodayI don't necessarily think it needs to be this way, but that's what Lennie said would be best for now21:20
ajaksujamtoday: I guess I do, the issue I see now is mostly about how can we have many surveys pairs for the same mentor-student pair, the rest seems like easy generalizations to build into the main survey classes21:20
jamtodayAnd that's already how the surveys work, so thats fine21:20
jamtodayThe mentor-student pair is a compound value joined by a student project21:21
jamtodayso the way i see it is that the student project is the key for things like showing both the midterm and final for a student21:21
ajaksuright, now we have survey pairs too21:21
ajaksuhow do we know student-survey-a goes with mentor-survey-a and student-survey-b goes with mentor-survey-b?21:22
jamtodayWhenever anyone (student or mentor) submits a midterm or final survey, they must choose a project21:22
jamtodayThe project is used as the key, and then you can filter by the survey-taker21:23
jamtodaythe SurveyRecord has a project key. If the SurveyRecord is to be subclassed for midterm/finals, this project key would go into the subclassed model21:24
ajaksusay we have two non-midterm-nor-final surveys, a and b, that have student-mentor links similar to midterm's...21:24
jamtodayWell these use cases get tricky....and I haven't been given a lot of direction besides "make sure that we're ready for midterms"21:25
ajaksuif we have a way to know how  student-survey-a goes with mentor-survey-a and student-survey-b goes with mentor-survey-b, we don't need two different models for midterms and finals21:25
jamtodayThe project could still be used as a key, but then only be optional21:25
jamtodayThe project key isn't actually a required property, so this is currently the case21:26
ajaksubut the project returns a student or mentor, now thay have many survey results there... which one relates to this result I have in hand (where I got the project info from)?21:26
ajaksuif you think about only having one survey of class midterm, one of class final and one of class pure-survey, it's all unambiguous21:27
jamtodayusing the existing model, this could be done by filtering by a common survey21:27
jamtodayeach SurveyRecord links back to a Survey21:28
ajaksusure, but there's the detail that the mentor's SurveyRecord links to the mentor-survey-a, and the student's SurveyRecord links to student-survey-a21:28
jamtodayyes, and this is where we get to the one property that I think needs an immediate change21:29
ajaksunow you mention it, we could make it so each survey had a student-part and a mentor-part, problem solved21:29
ajaksuwhich property is that?21:29
jamtodayand that's the SURVEY_TAKING_ACCESS property21:29
jamtodaybecause "student" or "mentor" should be distinct from "student-midterm", "mentor-midterm", etc.21:30
jamtodayAnd this would solve the problem you describe21:30
jamtodayumm...let me think it through and make sure that's accurate, actually21:30
jamtodayBecause a mentor can take more than one midterm21:31
jamtodayBut not for the same project :)21:31
jamtodayThe midterm/final distinction could be done by adding more fields to the SURVEY_TAKING_ACCESS property, or creating a new is_evaluation property21:31
ajaksujamtoday: once you have more than one survey-kind entity per pair, things go back to starting point :)21:32
ajaksu(btw, did you see the other access kinds pawel wants? )21:32
tpb<> (at
ajaksuI like  is_evaluation, and I think it could well be something we check on e.g. view and helpers to customize format and behavior21:33
ajaksubut imagine I run ghop and there are 5 self-evaluation surveys that are taken by me and my mentor, in pairs21:34
ajaksudo we want to add self-eval_1... self-eval5 to SURVEY_TAKING_ACCESS?21:34
jamtodayof course I think the question is if we need the entity to contain what # survey it is21:35
ajaksulooks like we're adding stuff to the base class that belongs to its instances, in this case Survey or SurveyRecord entities21:35
jamtodayBecause from the requirements, it seems like if the evaluation fails, there won't be another one21:35
jamtodayhas_grades is a close approximation21:36
jamtodaySurveyRecord is an expando class, so it's easy to add a setattr() to those21:36
jamtodaylooking into GRADE_OPTIONS21:37
ajaksuI think we could devise a property that encodes what kind of survey it is and works as an extension point21:38
jamtodayso combining SURVEY_TAKING_ACCESS and GRADE_OPTIONS and has_grades ?21:39
ajaksusomething like it, but instead of all the behavior being set now, we'd make it extensible and maybe make the defaults match what midterms or non-evaluation needs21:40
ajaksuI added a new kind of choice question and was very impressed about how little it needed changing besides adding a new widget and form building method: the way you wrote _editPost made it neatly modularized from the start21:42
ajaksuthat and using expando plus schema, very extensible and simple to work with21:42
ajaksuhello? :)21:46
jamtodaythat was the goal, I'm glad it's working as intended21:47
jamtodayI'm looking at the models now21:47
jamtodaywe could definitely get rid of has_grades21:47
ajaksuI don't think I wrote about this yet, but now choice questions have an 'options' textarea, one option per line... had to add something like this when I saw Leslie's example:
tpb<> (at
jamtodayyes, very useful21:50
jamtodayfor ranking something from 1-x21:51
ajaksunow, for midterms (and our merge that might be tomorrow IIUC), I'd like to have some sort of explicit link between surveys, as the kind of trouble (and ways to correct things) we can get from that seem much easier to deal with than those from unexpectedly having the project link not working as it should21:51
jamtodayThat would be possible, but only after one survey is already taken21:52
jamtodayIt could be done in a few lines, in a getCompanionSurvey method21:53
jamtodayI still can't think of any use cases where it would be necessary, but it can certainly be done21:53
ajaksuunless we link surveys (not surveyrecords), but then any issues with project links could happen here too... so how about project or Survey links for 'there will be a link', then a link between records we can edit?21:54
ajaksuwe might use the same survey class for midterms, finals and regular surveys, that's a nice use case :)21:55
jamtodayoh, i see. linking surveys21:55
jamtodaySo the midterm links to the final, or midterm 1 links to midterms 2, 3, 4...21:56
jamtodayAnd then a link between records we can edit....21:57
jamtodayLooking at the past example, it makes me think it would be nice to facilitate multi-part questions21:57
ajaksuI was thinking of mentor-student links for midterms 1, 2, 3, 4, because each of these would be actually two surveys (student and mentor IIUC?)21:58
jamtodaythis would need to be many to we might want to make a new model for this21:58
jamtodaywe could just do a db.ListProperty(db.Link)21:59
jamtodayBut that's not a very descriptive sort of link.21:59
jamtodayer * db.ListProperty(db.Key)22:00
ajaksua new model is what Lennie doesn't call the simple and ugly way, so I guess he likes the idea better than the explicit link :)22:00
ajaksuah, no, he meant a new model that represents a pair of surveys, so it would be more useful than the many to many link22:01
ajaksuit would be a sure way to match the correct student survey to the mentor survey grading it :)22:01
jamtodayokay so this new model entity would be like SurveySequence, and there is a ReferenceProperty that links to it22:04
jamtodayAnd we do a reverse lookup from SurveySequence and then order -date to get the proper order of surveys22:05
jamtodayIs this what you had in mind?22:05
ajaksuno, what lennie had in mind (and I prefer the simple ugly way but mostly because it's simple) was a SurveyPair entity, linked to whatever can identify its two users22:07
ajaksueach entity would encapsulate a surveyrecords pair22:08
jamtodayuh just lost me22:08
jamtodayi mean, it makes sense22:08
jamtodaybut I thought we were talking about linking surveys, not survey records22:08
jamtodayBecause linking survey records is as easy as doing a lookup for a common project22:08
ajaksuguess so :)22:09
ajaksuso, basically student x has 5 survey pairs and we want to get his mentor's surveyrecord for survey_pair_3 :)22:10
ajaksuor, IOW, the corresponding mentor records for student record y :)22:11
jamtodayCommon project, common survey22:11
jamtodaynot common survey22:11
jamtodayThe only way to do this without an explicit link would be to do some hackish stuff with indexes22:12
jamtodayokay...i'll add a surveypair properyt22:12
ajaksuright, not common survey, so we have 4 student records and 4 mentor records that link to the same project, we want a clear way to pair them correctlu22:12
ajaksu*correctly :)22:12
jamtodayUh oh...this gets even more troublesome. Let's say we have a student taking a final, and the student and mentor have already taken the midterm. When we're looking for a SurveyPair, we see the last mentor survey, linked to the last SurveyPair.22:14
jamtodaySo when you're looking for a survey pair, you're looking for the most recent complimentary survey without an existing SurveyPair....22:14
ajaksuhm, a SurveyPair might benefit from previously defined survey links, so we can filter them on survey and see if the records are there, or on records by user so we can get the other half of the pair22:16
ajaksuI'll work on a view that shows 1:1 pairings of student-mentor surveyrecords, so I might get a better understanding of this issue :)22:18
jamtodayajaksu: but the problem is that student-midterm-3 needs to know not to pair up with mentor-midterm-222:19
jamtodayso that's why I suggest a survey should only link to a "single" survey22:20
ajaksuright, that makes sense, should it be per-survey property holding a link? i think that plus project gives us the necessary resolution, as does a record pair entity plus single survey link22:22
jamtodayIIUC the options are either a property, or a new compound model22:24
ajaksuin both cases we'd have 1:1 survey links and 1:1 record links, right?22:24
ajaksuthe property (being a per survey link) needs a second dimension to match records, which project can offer successfuly22:25
jamtodayI'm ready to get cracking on this, I want to make sure we're on the same page22:26
ajaksuwell, that's kinda what I wanted from the start, so I think we're on the same page and verse :)22:26
jamtodaythere's going to two new models, one called SurveySequence and one called SurveyPair22:26
jamtodayer SurveyRecordPair22:27
ajaksuwait, we're not in the same verse, then :)22:27
ajaksuI thought we would get a property or a new model, not both... but I can only see benefits from having the link recorded in more places, so go for it :)22:28
jamtodayWe actually don't need the SurveySequence model.22:31
jamtodayJust SurveyRecordPair22:31
ajaksusounds perfect :)22:32
jamtodayOkay I'll get on that22:34
jamtodayit looks like we have notifications working as well?22:35
jamtodaybtw SurveyRecordPair would make additional_mentors support (in the issue tracker) much easier22:35
jamtodaybecause from what I hear the 1:1 matching doesn't always pan out in real life22:35
ajaksunotifications are not working, just a POC that eventually gets to send emails when users haven't taken a given survey :)22:36
jamtodayI did want to resolve a decision about SURVEY_TAKING_ACCESS, I think that just 'student' and 'mentor' is confusing, because it could either mean midterm or non-midterm22:36
jamtodayOkay, I'll add that to the tracker22:37
ajaksuyeah, 1:1 is a dream that leads us down dangerous roads :)22:37
jamtodayI'm also going to finish the mentor-side of taking surveys, so that when you have already taken a survey and want to edit it, it will retrieve the correct survey22:38
jamtoday(more difficult for mentors, since they can take more than one evaluation at a time)22:38
ajaksuas pawel pointed out in the review, you might also want students-with-active-projects (does that exclude failed ones?)22:38
jamtodaythe default behavior should be that you need an active project22:39
jamtodayand in the logic, that's a filter22:39
jamtodayBut we could do one for 'failed students', for example22:39
jamtodayThe most important change is just to distinguish between midterms and non-midterm surveys22:40
ajaksuyes, sounds trickier for mentor, is the ui redundant (as in 'make sure absent minded mentors know project x means student y') ?22:40
jamtodayI'm going to generate a link to the project page that includes all that info22:41
ajaksuare 'failed-student' and 'still passing student' things we can tell from looking at the project?22:41
jamtodayit could also be generated inline, but keeping it simple to start22:41
ajaksugood, let's keep things simple :)22:41
jamtoday from  status = db.StringProperty(required=True, default='accepted',22:42
jamtoday      choices=['accepted', 'mid_term_passed', 'mid_term_failed',22:42
jamtoday              'final_failed', 'passed'])22:42
jamtodayargh..pick_multi state still nwfm22:43
ajaksucool, that makes all pawel's wishes easy to get :)22:44
jamtodaybut the code looks right22:44
ajaksuand it wfm, what can it be?22:44
ajaksudoes it fail local and in the staging instance?22:44
ajaksuah, does it show in your survey record?22:46
ajaksubrb :)22:48
jamtodayactually, after pulling your latest changes I get a JS editable() failure22:51
jamtodayfor both taking and editing22:53
ajaksuI must've mucked it in the git commit, as I only tested the changes on hg... let me see if actually I did the move in hg and what I did in git22:54
jamtodayokay ill be back in a little bit....just wrote out my tasks for tonight and saved log of this convo to jog my memory...22:55
ajaksuok :)22:56
ajaksuhehe, I got so worried about doing the moves correctly in git that I got them right, but forgot to merge the template changes :D22:57
ajaksupushed, sorry for the mess23:01
ajaksuI'll be away for a snack, brb23:02
jamtoday no problem23:02
jamtodayI'm still getting a "missing ) after argument list" for taking surveys23:04
jamtodaynice job on the radio buttons23:05
jamtodayi think that last error was my fault...fixed now23:09
* jamtoday is trying to figure out how to intelligently add a GET arg using window.location...23:16
ajaksuback, I used jquery to add a get arg (with load, but there should be something similar for redirects?)23:17
ajaksujamtoday: checked the taking page just to make sure and found no error either. I still have no idea about pick_multi not working :/23:22
*** mithro has quit IRC23:58

Generated by 2.13.1 by Marius Gedminas - find it at!