IRC log of #schooltool for Tuesday, 2006-01-17

*** pcardune has joined #schooltool00:18
*** jinty has quit IRC00:42
povbot/svn/commits: * srichter committed revision 5645:01:01
povbot/svn/commits: Fixed permission settings for Requirement and added more for InheritedRequirement.01:01
povbot/svn/commits: * srichter committed revision 5646:01:02
povbot/svn/commits: Added one more score system, which is nice for testing.01:02
povbot/svn/commits: * srichter committed revision 5647:01:09
povbot/svn/commits: You can now add, edit and list activities in courses and sections.01:09
pcardunehey srichter, I'm going to buy your book01:21
*** pcardune has quit IRC06:16
*** kitblake has joined #schooltool09:25
*** kitblake has quit IRC09:49
*** jinty has joined #schooltool11:13
*** jinty has quit IRC12:17
*** ignas has quit IRC12:40
*** mgedmin has joined #schooltool12:50
*** thisfred has joined #schooltool13:02
*** ignas has joined #schooltool13:03
*** vidasp has joined #schooltool13:55
mgedminDeprecationWarning: /home/mg/src/schooltool/src/schooltool/course/browser/ (line 67): Automatic translation of message id's is deprecated and will be removed in 3.3. Use explicit i18n:translate="" instead.14:31
*** Aiste has joined #schooltool14:55
*** alga has joined #SchoolTool14:58
*** mgedmin has quit IRC15:54
*** Aiste has quit IRC16:05
*** mleis1 has joined #schooltool16:44
*** th1a has quit IRC16:44
*** mleis1 has left #schooltool16:51
*** erchache has joined #schooltool16:51
erchacheth1a|inux: are you here?16:52
erchachei finish translate schoolbell howtos16:55
erchachenow im going to do schoolbell16:55
*** mgedmin has joined #schooltool17:38
*** th1a has joined #schooltool17:41
erchacheth1a: are you here?17:59
erchachei finish translate schoolbell howtos17:59
erchachenow im going to do schoolbell17:59
th1aHi erchache.17:59
th1aOK, I'll poke around on the server and see if I can get linguaplone running.17:59
erchachei have made 50% of administering schooltool....on few hours i finish it18:00
erchachedo you know if more documents are on server? i say to translate too18:00
erchacheAfter this, i publish this on guadalinex distro18:01
erchacheok?18:01 linux distro of my region govern18:01
th1aWhat are you translating?  Are you talking about the PDF's?18:01
erchachewe can get more users18:01
th1aSo... how are you editing them?18:02
erchacheOO of course ;-P18:02
th1aYou can edit the pdf's in OO?18:02
erchachei send .odp and .pdf18:02
erchachebut i use schoobell 1.2.318:03
erchacheand schooltool 0.11.318:03
erchachelastest stable versions18:03
th1aI presume you don't have a copy of Keynote?18:03
erchacheim going to take a coffee on 20 minutes im here again18:03
th1aThat's what I used to make them.18:03
erchacheno...i dont have keynote18:03
erchachewhat is this? :-S18:03 going to take a coffeeeee....see very very soon18:04
erchacheth1a: what is keynote? :-S18:25
th1aIt is Apple's presentation application.18:25
erchachebut i prefer free software ;-P18:26
erchachei use snapshot of mac os x, gimp to save screenshot and touch details, and OO to make presentation18:27
th1aYou're using Mac OS, too, so don't get righteous on me.18:27
erchacherighteous on me? i cant understand.... :-S18:28
erchacheexplain better please18:28
th1aDon't tell me you're more holy ;-)18:29
povbot/svn/commits: * mg committed revision 5648:18:32
povbot/svn/commits: Initial stab at a sample data generation plugin.  Based heavily on the code Tom mailed me.  Unit tested, but not functionally tested, and not hooked up yet.  I expect it will need a removeSecurityProxy somewhere.18:32
erchachemy english are very very simple i think so :-(18:33
th1aerchache:  I'm just saying you're using Mac OS, too, so you're not pure either.18:33
erchachei dont know what you want to say :-S18:34
th1aNever mind.18:34
th1aIt isn't important.18:34
*** alga has quit IRC18:43
erchacheim become crazy with timetable schema wizard :-S18:44
erchachewhat is diferent between days and cicle?18:45
erchachethis howto are old respect 0.11.3....18:45
th1aA cycle is if the classes are based on a pattern of days other than the days of the week.18:45
povbot/svn/commits: * ignas committed revision 5649:18:46
povbot/svn/commits: Fix timetable grid interaction with timezones.18:46
th1aI don't know of any schools outside the US that use a cycle.18:46
erchacheno no...about design...18:46
erchachei dont know what meaning :-S18:47
erchachefunctionality of this...18:47
th1aOK.  In the schools I attended, our classes didn't fall on Monday, Tuesday, Wednesday, etc.18:48
erchachearrrrrggghhhh i close without save presentation!18:48
erchachefuck fuck fuck!18:48
erchachei lose work!18:48
th1aWe had certain classes on "A Day" other classes on "B Day," etc.18:48
th1aThat sucks.18:48
erchacheufff...only lose 3 frames :-D18:49 tired to continue....tomorrow more :-S18:50
th1aOK.  It doesn't look like it will be too hard to get linguaplone running.  I'll work on it.18:51
erchacheis only one product more....decompress into instance and restart zope daemon18:51
mgedminsample data generation is ouchfully slow18:53
th1aIt is a lot of data.18:54
mgedmin500 megs of ram eaten so far18:54
mgedmin(I should have tried this before I enabled section attendance in the zcml, for comparison purposes)18:54
th1aOh... I took out the code that srichter added to commit to the db every 20 sections.18:54
th1aYou should probably do that.18:55
mgedmindoes it help much?18:55
povbot/svn/commits: * ignas committed revision 5650:18:57
povbot/svn/commits: Removed implicit addition of the timezone in snapToGrid.18:57
erchachewhat happs? :-S19:03
erchachememory problems about what?19:04
th1aOh, when we're generating sample attendance data.19:05
mgedminyay, it is "done": UnpickleableError: Cannot pickle <type ''> objects19:05
mgedminI knew that I'll have to put the 'removeSecurityProxy' thing back19:05
mgedmin655 megs of RAM used19:05
mgedminmy laptop hasn't even started swapping yet19:05
th1aRight now, we're creating an object for every time a student attends (or doesn't attend) a section.19:05
th1aIt is thousands of objects all at once.19:06
th1aThere are lots of ways we can optimize, though.19:06
ignasmgedmin, do you know where periods in tests are comming from ? we are using a tangled web of global functions to gather such data :/19:26
mgedminyippee, I'm swapping now19:28
mgedminignas, I've no idea19:28
mgedminI expect from the default timetable schema19:29
mgedminok, 20 minutes, 800 megs of RAM, 330 megs in Data.fs19:36
th1aIs that excusing some of the absences, or leaving them all unexplained?19:37
th1aI guess I can look at the code myself...19:38
mgedminthat's 1% of absences (instead of your 50%)19:39
th1aOK... so absences aren't the only problem ;-)19:39
*** vidasp has quit IRC19:43
*** erchache has left #schooltool20:00
mgedminzodb size statistics by class:
mgedmin( comes with zope 2.7 and needs a slight modification to make it work on schooltool's db)20:07
*** jinty has joined #schooltool20:09
th1amgedmin:  Good work.20:15
th1aSo... one semester generates half a million attendance events?20:18
mgedmin540 thousand20:18
th1aWhen you look at it that way, making all those separate objects don't seem very practical.20:19
th1aFunny how multiplication works.20:20
srichtermgedmin: I think we coulf propose putting into Zope 3; would be extremely useful I think20:22
th1aIt seems weird that it isn't already.20:23
mgedminI think there are a lot of ZODB tools in Zope 2 that are not in Zope 320:26
mgedminI find the lack of good ZODB tools disturbing20:26
srichtersince they are ZPL, moving and porting them should be straight forward20:29
povbot/svn/commits: * mg committed revision 5651:20:32
povbot/svn/commits: Make attendance sample data generation work (removeSecurityProxy), but comment out the ZCML to hook it up due to unreasonable hardware requirements (1 GB of RAM and 20 minutes on a 1.6 GHz Pentium M).  It is time to optimize.20:32
srichterbtw, in general we should take more time in contributing back to Zope 320:35
mgedminthat's a good sentiment20:37
mgedminsometimes I get the urge to contribute back20:37
mgedminthen I browse the z3 collector for 10 minutes, looking for something I could do20:37
mgedminand do not find anything sufficiently interesting/understandable20:38
srichterI mean even feature-wise20:38
srichterwe have the pluggable traverser, the -c/-C option in the test runner20:38
srichterand other small things20:39
srichterjinty: are you there?20:39
mgedminah, the test runner20:39
srichterI really want to switch to the new one20:39
srichterfor me my speical keys (arrows) do not work when debugging doctests20:40
srichter(for example)20:40
mgedminthat's an annoying problem20:42
mgedminI blame doctests20:42
mgedminthey make a copy of sys.stdout at some silly point in time20:43
mgedminand then use it later on, ignoring my laborously restored real one20:43
mgedminthere's a workaround, though20:43
mgedminin a pdb prompt you can say20:43
mgedminimport sys, readline20:43
mgedminsys.stdout = sys.__stdout__20:43
srichterthe new test-runner does it right20:44
mgedminand by the way, if we hack the z3 test runner to support schooltool's testsupport (the checks that see whether unit tests restore state, write to stdout, etc)20:44
mgedminwe will have the same problem20:44
mgedmin'cause its one of the checks that wraps sys.stdout20:44
mgedminI tried to make it doctest friendly, but that's impossible to do sanely or insanely20:44
mgedminjust look at what does to pdb20:45
povbot/svn/commits: * srichter committed revision 5652:20:49
povbot/svn/commits: Fix deprecation warning.20:49
povbot/svn/commits: * srichter committed revision 5653:20:51
povbot/svn/commits: Improved score system API to provide more useful functionality that I will need for the gradebook. This changes our strategy a little bit, but it is much more useful this way.20:51
mgedmincan we not use schoolool-skel for live data?20:51
srichterthat's fine by me; the reason I did that was so that the checkout would behave more like the instance20:51
mgedminto me -skel is something that is a template for new instances20:53
mgedminthat is, it should not contain temporary data20:53
mgedminit's like making customizations in schooltool.conf.in20:53
mgedmininstead of making a copy and changing that copy20:53
mgedminanyway, the real reason I dislike schooltool-skel/var/Data.fs is that it is a long string to type when you want to nuke the DB20:53
srichterwell sort of; it has this dual purpose20:54
srichterthat's what I thought :-)20:54
*** Aiste has joined #schooltool21:04
povbot/svn/commits: * mg committed revision 5654:21:15
povbot/svn/commits: Slight optimisation: use OOBTree, indexed by dtstart, for SectionAttendance._records instead of a persistent list.  Improves sample data generation speed; doesn't change memory or disk usage.21:15
povbot/svn/commits: (For testing I changed the SampleAttendancePlugin to break from the outer loop after the first two sections; attendance generation time went down from 0.49 seconds to 0.19 seconds).21:15
*** thisfred has quit IRC21:23
povbot/svn/commits: * srichter committed revision 5655:21:25
povbot/svn/commits: Okay final adjustments to the scoresystem code.21:25
povbot/svn/commits: - Create new global score systems that reduce to a name isntead of21:25
povbot/svn/commits: content.21:25
povbot/svn/commits: - Change the strategoy for storing discrete score values one more time, by making it an items list, so that the order is stored for UI purposes.21:25
povbot/svn/commits: * srichter committed revision 5656:21:31
povbot/svn/commits: Okay, make score systems non-persistent for now.21:31
mgedminyay it takes 10 minutes instead of 20 now21:39
mgedminand "only" 660 megs of memory21:40
mgedmindata.fs is 343 mb21:40
srichterwhat did you change?21:49
srichterjust the OOBTree instead of PList?21:50
mgedminyep, rev 565421:50
mgedminactually that rev did a little more -- AttendanceRecord.explanations is now a class attribute in 99% of cases21:56
mgedminI guess the space savings come from there21:56
*** ignas has quit IRC21:59
mgedmin260M disk/560M RAM/7 minutes now22:01
povbot/svn/commits: * mg committed revision 5657:22:01
povbot/svn/commits: Use tuples instead of PersistentLists.  Shaves off 100 megs of RAM/disk space and 30% running time.  Wow.22:01
mgedminwith a two-line diff (rev 5657)22:01
th1aI'm going to have to start learning about how Python actually works.22:02
mgedminall the way down to machine language?22:05
*** strichter has joined #schooltool22:05
th1aYeah, what's the deal with all those ones and zeroes?22:05
*** srichter has quit IRC22:05
*** strichter is now known as srichter22:05
mgedminvoltage levels!22:06
mgedminquantum tunneling effects in semiconductors!22:07
th1aOh crap.  I've never understood voltage either.22:07
mgedmin(are there any?)22:07
* mgedmin doesn't grok electromagnetism22:07
th1aWhat is that, the size of the hose or the pressure or what?22:07
* srichter does not understna E&M either until you get to the relativistic effects and tensor notation (it's a much simpler theorem then)22:08
th1aWhat do you specialize in, anyhow, srichter?22:09
* mgedmin thinks sricter is an alien22:09
srichtercomputer simulations22:09
srichterof the immune system response upon the infection with the HIV virus using a-priori assumptions22:10
mgedminignas came up with a clever hack that changes the numbers to 99M disk/275M RAM/4.5 minutes22:17
mgedminhere's the clever hack:
th1asrichter:  Wow.  That sounds like pretty intense stuff.22:19
mgedminthe question is: is it safe to use _v_ attributes for caching in this way?22:19
srichterth1a: it is a lot of fun; solving a system of 16 differential equations22:20
th1aSounds like fun.22:21
srichtermgedmin: as long as it is all happening in the same transaction, _v_ attributes behave like any other attribute22:22
srichtermgedmin: ahh22:25
srichterit is safe as long as you do not allow SectionAttendanceRecord to be modified on a per-student bases22:26
mgedminPRESENT records are never modified22:27
mgedminbut I do not know how to forcefully clear _v_ attributes on transaction boundaries22:27
mgedminI seem to recall a discussion on zodb-dev that _v_ attrs might outlive transactions22:28
mgedminor might disappear in the middle of a transaction22:28
srichterreally? I don;t think so22:29
* mgedmin discovers that transaction.commit after recording attendance for a single meeting is a bad idea22:29
srichterthe point of _v_ is to serve as a possibility for caching22:29
srichterif it cannot survive in a transaction, then you might as well not have it22:30
* mgedmin goes to read
jintysrichter: you pinged?22:32
mgedmin"The lifetime of a volatile attribute is unpredictable. In theory, a _v_ attribute may be destroyed at any time, and no promises are made beyond that. In practice, implementations of ZODB to date destroy volatile attributes only when unloading objects (see UnloadingObjects). Note that a volatile attribute may live beyond the duration of a transaction."22:32
srichtermgedmin: ok, but transaction boundaries are not that important22:34
srichterso I think it's ok, no?22:34
srichterjinty: yeah; I really want to work on the Zope 3 trunk with SchoolTool again and people referred to you to make the call22:34
jintysrichter: I think not for a while yet.22:36
jintythe major issue is that it's not a reversible decision22:36
mgedminsrichter, can I keep a reference to a single Persistent object, and make different Persistent objects refer to it in several different transactions?22:36
srichterit makes it impossible for me to fix problems in Zope 322:37
srichterthat means I have to work around them in SchoolTool22:37
srichterwhich makes SchoolTool ugly and I usually forget to go back later and fix Zope 322:37
srichterboth projects suffer22:37
jintybut there is also another side22:38
jintyfor example, ubuntu is going to be releasing in a few months with Zope 3.222:38
srichtermgedmin: mmh, good question; I don't know22:38
jintyIf they do not have a schooltool version that works with zope 3.2 they might have to drop schooltool for that release22:39
jintyor make various other nasty decisions22:39
srichterSchoolTool will not be ready in a few months either22:39
srichterSchoolTool will have a final release around August22:40
* mgedmin tries to commit a transaction after each section; 195 megs of virtual memory (good), 170 megs of data.fs (not so good), 5.5 minutes (not so good)22:40
srichtermgedmin: much better than before22:41
jintyAnother option would be to update the previous version of schooltool to work with 3.2, but there looks to be no ntraction on that idea either.22:42
mgedminbefore was 99M disk/275M RAM/4.5 minutes22:42
mgedminso I won on memory usage, but lost on disk and time22:42
srichterjinty: when is the next ubuntu "feature" freeze?22:42
srichtermgedmin: I think keeping RAM down is more important, because once someone starts swapping, then that's it; you have a much bigger time loss22:43
jintyit releases in april22:43
srichterin APril SchoolTool will have a beta at best, so you want to ship ubuntu with a beta version of schooltool?22:44
th1asrichter:  I think not.22:44
srichtermy point22:45
jintysrichter: if there is another option, please let me know about it22:45
th1aI guess the versions of SchoolTool and SchoolBell in Breezy will be from the old branches.22:45
srichterso the next release of ubuntu will be in october22:45
th1aWill we need to spend some time updating them to work with 3.2?22:45
srichterlong after Zope 3.3 and SchoolTool is out22:46
jintythe tests bail out now with 3.222:46
jintyif th1a says "I'll put development time behind updating the old schooltool to work with zope 3.2", i'll remove my objection.22:47
* mgedmin wonders how it would be if schooltool used an RDBMS for data storage22:47
* jinty cringes in fear22:48
srichtermgedmin: :-). hell.22:48
th1ajinty:  We may have no choice.22:48
th1aI mean we may have to update the old branches to work with 3.2.22:48
* th1a does think that attendance is a case where a rdbms would be more efficient.22:48
srichterI think the jump is not too bad22:49
th1aNot that I know what I'm talking about.22:49
th1aIt doesn't seem like updating to run on 3.2 should be hard.22:49
th1aIt is SUPPOSED to be backward compatible anyhow, right?22:49
jintymaybe we can also keep our options open until that is certain22:49
mgedminold sample data (no attendance) required 220 megs of ram, 2 minutes of time, and 53 megs data.fs22:50
srichterwait until the gradebook grades will be generated :-)22:51
*** scubes13 has joined #schooltool22:51
th1asrichter:  I've already gotten this question twice today:  My question is will it be possible to have more than one evaluation per22:52
th1arequirement? Or in techie speak, will the relationship between22:52
th1arequirement and evaluation be one-to-many?22:52
th1aWhich is what we were discussing yesterday, right?22:53
srichteryeah, though in Mike's case he really does not want a second evaluation23:00
srichterhe wants an annotation: exempt or not23:00
srichteranyways, I think that both Moodle integration and multiple evaluations are outside of this year's scope; there are bigger fish to fry for now23:02
srichterI think it would take a 1-2 developers till April to cover all the necessary gradebook use cases23:03
*** flint has joined #schooltool23:04
th1aThe Moodle stuff would be on the side, if at all.23:04
flintElkner, you are killing me...23:04
th1aNot contract work.23:04
th1aLike, a real open source project.23:04
srichteroh, ok23:04
th1aHopefully it would be relatively superficial once all the SchoolTool architecture is done.23:05
srichterI hope you do not believe this :-)23:05
flintStephan and Tom, have any other members of the Arlington Mafia showed up?23:06
th1aActually, last week they were discussing not meeting every week.23:06
th1aI don't remember what they concluded, though.23:06
flintDamn, I am at this point only good for wit (maybe half of this)  My lab is almost set up.23:07
th1aI was wondering how you were doing up there.23:07
flintLet me see if I can track any of them down.23:07
flintTom, you made excellent suggestions in Montreal, it is merely taking a while to implement them.23:07
th1asrichter:  I would think the Moodle integration would be as complex as you made it.23:08
srichtergood, we agree then :-)23:09
th1aI think some simple steps could be taken that would be useful.23:09
srichterintegration is always hard23:09
srichterbecause another system that you have no control over messes with your system or vice versa23:09
th1aYes... well, that's why we'd reach into THEIR database ;-)23:10
srichterwhich is the reason soemthing like SIF is so very important and useful23:10
flint...they don't owe you any money do they?  :^) I cannot track down Paul or Jeff.23:10
th1aYou could look in last week's log to see if they decided not to meet this week:
flintInteresting idea about Moodle / Schooltool integration23:11
th1aLots of people will want it.23:11
flintJeez Tom I barely know how to type...23:12
th1asrichter:  So we're going to try and hold to one assessment per activity for 1.0, unless it is clear that there are too many exceptions, but architecturally, expanding to hold more assessments won't be a problem.23:14
flintMoodle does have a following, Got hold of Elkner...23:14
srichterth1a: ok, it really becomes a matter of making it a tuple/list of evaluations then23:15
flintElkner says he is going to upgrade the server to Dapper...23:15
srichterthough I'll note that it will produce a lot of design questions23:15
th1aRather than switching the keys back to using names?23:15
srichter(just think about the API; how do you know which evaluation you are working on, etc)23:16
*** mgedmin has quit IRC23:16
srichterwe will never switch back keys to names; it is just beyond inefficient23:16
th1aThat's fine.23:16
th1aI agree that it will be a bit of a UI hairball.23:17
th1aBut I would like the architecture to be forward-compatible.23:17
srichterI bet you that no one really has the use case of multi-evaluation23:17
srichterthey just want to be able to evalaute the evaluation itself23:17
srichterthey want to say: if the score is greater than X, exempt this student from this class23:18
srichterand score conversion23:18
srichterlike 90-100 = A, etc23:18
srichtera multi-evaluation makes only sense in a environment where you have truly different evaluators23:19
th1asrichter:  I'm convinced that it will come up eventually.  I just don't want a brick wall at that point.23:19
th1aYes, and you'll have that in some cases.23:19
srichterright, but those are very special cases23:19
srichterand I think you are better off creating two activities :-)23:20
flintElkner has been hauling surplus computers all over DC in an attempt to bury the Bush adminstration in Linux, and will not be joining us this afternoon.23:20
th1aWell, the model should accomodate sub-activities.23:20
th1aSo perhaps that is the way to do it (post 1.0).23:21
srichterright, I think this would be the correct approach (two sub-sctivities)23:21
srichterbut I see that you see that it becomes a complex issue quickly :-)23:21
flintBy all indications, Paul and Jeff will be on next week, sbtsbc.23:24
th1aI don't actually think sub-activities are the right approach, because in some cases different people will be assessing the exactly the same thing.23:27
srichtertrue too23:28
srichterbut man, multiple evaluations are hard (UI and API wise)23:29
srichterthey were easy fundamentally in the container, but that's about it23:29
th1aWell, we could make them a list or tuple now, which we'll assume to be of length 1 until further notice.23:31
th1aOr we can make them a single object that will change into a list or tuple next year.23:31
srichterI think I'll leave it as it is for now23:31
srichterthe current approach has a lot of advantages that get nullified when dealing with multiple evaluations23:32

Generated by 2.15.1 by Marius Gedminas - find it at!