IRC log of #schooltool for Friday, 2013-11-22

*** th1a has quit IRC02:06
*** menesis has quit IRC06:03
*** th1a has joined #schooltool11:44
*** yvl has joined #schooltool14:05
yvlhey th1a14:07
yvlshort good news14:07
yvlwe'll have significant improvements in speed for big instances like ACC14:08
th1aW00t!14:11
th1aWhat'd you do?14:11
yvlunspeakable things :D14:12
yvloptimizations in schooltool.relationship14:12
th1aI hope nothing Lovecraftian.14:12
th1aHave you read The Laundry Files yet, btw?14:12
yvlnot yet :|14:12
yvlstill on to read list14:13
yvlhard to believe a year passed already14:13
th1aWell... let's just say I hope you don't disappear into the laundry as a result of these optimizations.14:13
th1aThe Laundry.14:13
th1aAnyhow, what kind of optimizations?14:14
yvllet's see14:14
yvlbasically, touching less objects than before14:14
yvltouching meant rebuilding them in memory, and even with hot caches it may be slow14:15
yvlalso fixed some very embarrassing stuff14:15
th1aHm...14:15
yvllike checking if person is in students group were rebuilding all 10000 objects in memory14:15
yvlto check usernames14:15
th1aI'm glad there were embarrassing things in there.14:16
th1aI was HOPING we were doing some stupid things.14:16
yvlthen there were real optimizations14:16
yvllike being very, very careful not to trigger persistent objects to unghostify themselves14:16
yvlalso making fake keyreferences so we could obtain object int ids from relationships without actually loading them14:17
th1aOK.14:18
yvlit's amazing what you can do when you're willing to look at _p_oid and _p_jar :)14:18
yvlthere are two more things I'd like to work on next14:18
yvlone is to make temporal relationships faster14:19
th1aIn other words, if you actually understand how ZODB works somewhat.14:19
yvltrue14:19
yvlit's somewhat low level14:19
yvlanother is memory usage14:19
th1aOK.  Cool.  I'm happy.14:19
th1aKeep going.14:20
yvlI'm not sure how much memory I can save, and if it is significant14:20
th1aHow much faster are we talking about at this point, *roughly*.14:20
yvlx2 - x1014:20
yvlcold caches are much faster, but still sluggish14:20
yvlso if you want to look at School tab just after running ST it will take14:21
yvlsome 10 secs on my machine14:21
yvlinstead of 6014:21
yvlnext loads will fall to 4-5 secs14:21
th1aEek.  OK, well, that's better!14:21
yvlskill gradebooks feel to load with little lag14:22
yvlkind of exciting! :)14:22
th1aPerhaps things were getting worse in CanDo than I realized.14:23
yvlwell14:24
yvlas long as we fix that... ;)14:24
yvlso here's the thing - not everything will become faster14:25
yvlwe'll need to catch some abusive code along the road14:25
yvlthere was this one line14:25
yvlbool(list(context.members))14:25
yvlmeans - load all the members, put them in a humongous list and then14:26
yvlsee if the list is empty14:26
th1aYes.14:26
yvlok, so that's the short news14:27
yvlmore details on Monday14:27
yvl(and a runnable branch)14:27
th1aCool.  Excellent, yvl!14:27
yvlthanks :)14:30
*** menesis has joined #schooltool14:44
*** basic` has quit IRC15:29
*** basic` has joined #schooltool15:34
*** basic` has joined #schooltool15:35
*** yvl has quit IRC15:54
*** replaceafill has joined #schooltool16:01
* replaceafill just realized bound properties have a nonzero method! :'(16:04
th1a?16:04
replaceafilljust read your conversation with yvl this morning16:05
th1aYes, good news!16:05
replaceafillthe part on abusive code :(16:05
replaceafilli'm responsible for some of it16:05
replaceafillbool(list(relationship))16:05
replaceafillfor some reason i picked that up a long time ago16:05
replaceafilland i just check the property class and it has a nonzero method16:06
replaceafillthe shame....16:06
th1aAh.16:06
th1aIt is ok...16:06
replaceafill:)16:06
th1aSchoolTool was always very zealous about not-prematurely optimizing.16:06
th1aEventually, the time to optimize arrives!16:07
replaceafillyay!16:07
replaceafilla user from Chile just made me mad...16:07
replaceafilli accept ST is incomplete (to his eyes)16:07
replaceafillbut calling us "proprietary"!16:07
replaceafillthat i can't accept!16:08
th1aIn what sense?16:08
th1aBecause we don't use SQL?16:08
replaceafillno, because *they* (his company) can't modify the code...16:08
replaceafillcan't as in don't know how to16:08
th1aWell, I tend to be apologetic about that.16:09
th1aIt is our great failing, but hardly on purpose.16:09
th1aMark liked Zope 3 and it seemed like a good idea to me...16:10
replaceafilli've always wonder how the launchpad people feel16:11
replaceafilli guess they used zope because the same reason16:11
th1aYeah, it was getting pretty modified for LP.  I wonder how much Zope 3 is still there at this point.16:20
th1areplaceafill:  Is there something in particular the people in Chile want to do?16:54
replaceafillit's about a custom scoresystem for their final grade16:55
replaceafillthey grade from 0-716:55
th1aOK...16:55
th1aAnd?16:55
replaceafilla couple of user have had trouble setting it up16:55
replaceafilli explained them how, but not with a very precise example16:55
replaceafilljust to give them the idea16:56
replaceafillone of them asked if it was possible to include a *full* scoresystem for them in the standard version16:56
replaceafillthis was my example:16:57
replaceafillhttp://imageshack.us/scaled/landing/832/pantallazodel2012120509.png16:57
th1aSpeaking of which... how is the report plugin working?16:57
replaceafillth1a, good16:58
replaceafilli'll have a decent pdf to show you on monday16:58
th1aEssentially, we have a similar situation in Australia.16:58
th1aWith demographics.16:58
replaceafillcouldn't fight the two column layout though :(16:58
th1aThat's fine.16:58
replaceafilli'll ask yvl on monday about ideas on how to do it16:59
replaceafillah yes, demographics16:59
replaceafillsounds like something people will want to do16:59
th1aWe might want to just throw in simple import/exports just for those.16:59
th1aWhether separate or part of the spreadsheet.16:59
th1ascore systems and demographic schema.17:00
replaceafillah17:00
th1aI guess spreadsheet would be best.17:00
*** menesis has quit IRC20:47
*** replaceafill has quit IRC22:20
*** replaceafill has joined #schooltool22:21
*** khildin has joined #schooltool22:47
*** th1a has quit IRC22:48
*** replaceafill has quit IRC23:25

Generated by irclog2html.py 2.15.1 by Marius Gedminas - find it at mg.pov.lt!