IRC log of #schooltool for Monday, 2006-01-09

*** mgedmin has quit IRC00:10
*** janur has joined #schooltool00:15
*** janur has quit IRC01:04
*** didymo has joined #schooltool02:31
*** ignas has joined #schooltool04:49
*** alga has quit IRC05:38
*** cursor has joined #schooltool08:01
*** th1a_ has joined #schooltool08:35
*** th1a has quit IRC08:35
*** th1a_ is now known as th1a08:35
*** jinty has joined #schooltool10:26
*** thisfred has joined #schooltool10:51
*** jinty has quit IRC12:17
*** Aiste has quit IRC12:23
*** mgedmin has joined #schooltool12:54
*** Aiste has joined #schooltool13:09
*** alga has joined #SchoolTool14:09
*** aquarius has joined #schooltool14:22
*** ignas has quit IRC14:29
*** aquarius has left #schooltool14:31
*** pcardune has joined #schooltool14:57
*** ignas has joined #schooltool15:59
pcardunesrichter: If I'm making a viewlet for the Person page, should i put the viewletManager configuration and interface with all the other ones? or in the person package?16:24
mgedminpcardune, where is the viewlet manager used?16:26
*** thisfred has quit IRC16:26
pcarduneonly on the Person page16:27
mgedminif it is only used in a template that in turn is only used on persons16:27
mgedminI suggest you define the viewlet manager in schooltool.person.browser16:27
pcarduneok, it's just that the other ones are defined in a skin.py file, should i make the same in schooltool.person.browser?16:28
srichterpcardune: viewlet manager goes into the person package16:28
pcarduneok16:28
srichterthe viewlets go into the package they belong16:29
srichteror a glue package, which we have not defined well yet16:30
th1aOK, time to start the meeting.16:31
th1aEveryone awake?16:32
srichteryep16:32
* mgedmin is16:32
ignasyep16:34
* mgedmin hungry :(16:34
th1aOK, so we'll be doing a snapshot tomorrow.16:34
th1ajinty unfortunately couldn't make it.16:34
th1aHis question is "Are all the generations that need to be done done?"16:35
srichteras far as I know, yes16:36
srichter(on my side)16:36
srichterbut of course we will not figure this out until people really try it on their data16:36
th1aIt doesn't seem to me that this release has a lot of changes that would require generations.16:36
srichterit has all the restructuring :-)16:37
srichterthat's a lot!16:37
th1aSo does everything have to be converted from, say, "app.person" to "person.person"?16:38
srichteryes16:38
algaeek!16:39
algasmells like pre-namegeddon zope 316:39
th1aBut you tried to do all of that?16:39
srichterthere is a generation for that16:39
srichteryep16:39
th1aOK.16:39
th1aAny known generational issues on POV's side?16:40
mgedminI cannot think of any16:40
th1aOS.16:41
th1aOK.16:41
th1aSince this is just a development snapshot, it isn't a big deal anyhow.16:41
th1aComparatively.16:42
th1aSo srichter and I got sample data generation going for attendance data.16:42
th1aIt was an interesting experience.16:42
algait is part of our proposal, I suppose16:43
algahow do we go about that?16:43
th1aWell, we uncovered some problems, so16:43
th1amaybe it will all be a wash.16:44
algaA wash?16:44
th1aIt will all come out even in the end.16:44
alga*nod*16:44
th1aSo we discovered that16:44
th1aa) srichter's laptop only has 512mb, rather than 1gig, as he thought;16:45
th1ab) generating the sample data for 1 semester requires several times that much memory, even when committing the data to the ZODB regularly;16:46
alga(perhaps we should make sample data scalable down?)16:46
th1ac) the ZODB ballooned to about 750mb.16:46
srichterabout 800 MB ;-)16:46
algaaha16:46
th1ac) being the biggest problem.16:46
algaso our current attendance storage is impractical16:46
srichterI think there are some obvious improvements16:47
th1aWe only ran it once, and it was a slightly unrealistic set.16:47
algasuggestion: what if we ditch the persistent workflows? :-)16:47
srichter(a) we tested with 50% tardies, none of which gets resoved (that means a lot of WF instances, which is not realistic)16:47
th1aRight.16:47
ignastrue16:47
srichter(b) only store tardies and not the attendence16:48
th1aSo if the persistent workflows are costly, it is an unrealistic example.16:48
mgedminhow many attendance records did you generate?16:48
ignasis there something like a ZODB profiler16:48
mgedmin(I suppose that's n_students * n_sections_per_day * n_days)16:48
ignasthat tells how much space what classes take16:48
mgedminignas, actually, there is16:48
mgedminyou have to fish it out of Google, of course16:49
srichter1000 students * 6 sections per days * about 80 days16:49
th1aMore precisely, store or log the attendances without creating separate objects (create a dictionary of successful attendances).16:49
srichternow that we can iterate through all active object instances in the ZODB, writing a small profiler ourselves will be easy16:49
th1aWe'll need something like that.16:51
th1aBut we should also be able to get a pretty good idea by trying different combinations of sample data and checking the differences.16:51
srichterto see how the iteration through the DB works, see evolve5.py16:52
mgedminwhat's the size of a pickled AttendanceRecord?16:52
srichterwe have not got that far16:52
srichterwe spent a lot of time getting the generation of attendance to work and then waiting for the output :-)16:52
srichterI have a 792 MB Data.fs on my laptop that I could upload for inspection16:53
th1asrichter and I spent a fair amount of time observing his laptop's swapping alogrithms in action.16:53
ignasreminds me of trying out schooltool with darcs ...16:54
mgedmin512 bytes16:54
srichterI'll also note that my laptop takes 116 seconds to start ST with that Data.fs used;16:55
srichtermgedmin: wow, that seems big for the amount of attendance records we have16:55
srichterwell, anyways, I am not sure why Tom wants to record positive attendance at all16:55
srichterbecause not having an entry is a state too16:56
th1aI'll refer to the "attendance records being subpoenaed for a trial" case.16:56
mgedminthe pickle looks like this:16:56
mgedmin"ccopy_reg\n__newobj__\np0\n(cschooltool.attendance.attendance\nSectionAttendanceRecord\np1\ntp2\nRp3\n(dp4\nS'status'\np5\nS'PRESENT'\np6\nsS'section'\np7\ng0\n(cpersistent\nPersistent\np8\ntp9\nRp10\nsS'datetime'\np11\ncdatetime\ndatetime\np12\n(S'\\x07\\xd6\\x01\\x07\\x0e\\x16\\x00\\x00\\x00\\x00'\np13\ncpytz\n_UTC\np14\n(tRp15\ntp16\nRp17\nsS'period_id'\np18\nS'P1'\np19\nsS'late_arrival'\np20\nNsS'duration'\np21\ncdatetime\ntimedelta\np22\n(I1\nI0\nI016:56
mgedmin\ntp23\nRp24\nsS'explanations'\np25\ng0\n(cpersistent.list\nPersistentList\np26\ntp27\nRp28\n(dp29\nS'data'\np30\n(lp31\nsbsb."16:56
mgedmina lot of references to module and class names16:56
srichteryep16:57
th1aSchoolTool records may be used to prove a student was in class.16:57
mgedminand 800 megs is not too high a price to pay for that "may" ;)16:57
th1aSo we have to have a positive indication, not just a lack of negative.16:57
srichteryeah, but if you ask SchoolTool. it says: Okay, I have no entry, so I tell the user the student was there16:57
th1aTeachers don't always take attendance.16:58
srichterok, I see a problem ..... right, I just noticed that :-)16:58
ignaswe can track unknown and absent16:58
th1aLook, there are a lot more efficient ways to store this data anyhow.16:58
ignasthe rest will be presents16:58
srichtertrue16:58
mgedminignas, the set of unknowns is infinite16:58
th1aIf we have to, it is acceptable to only *log* attendances.16:59
th1aBut couldn't we also create a dictionary of attendances for each kid?16:59
mgedminanyway, it is a problem that can be solved17:00
th1aYes.17:00
algaShall we move on to the next item on the agenda?17:01
th1aI should be able to have the test data in the snaphot.  I'll work on it today.17:01
th1aMake it more realistic.17:01
algaAnyway, we have some news here.17:01
th1aAnd perhaps limit it to a month ;-)17:01
th1aalga:  Go ahead.17:01
algamgedmin and ignas will be working on SchoolTool from now on till the end of this contract17:02
th1aThat's good news.17:02
alga /me and vidas will be joining once we're done with our other commitments17:02
algaerm...17:03
th1aOr perhaps it is bad news.17:04
algawe took a look at our corkboard and chose homeroom related things as the next stories to go17:04
th1aDepending on what I should have been expecting.17:04
mgedminthat reminds me; when we're done with the meeting's official agenda, I'll have some questions about the homeroom attendance form17:04
th1aYes, we need to discuss a couple things.17:05
th1aAbout that form.17:05
th1aThe only other thing on the agenda would just be any other loose ends about the release, like we should probably add 2006 to the copyright info.17:06
th1aAny thing else spring to mind that should be done?17:06
th1aIf not, then perhaps mgedmin and I should discuss the attendance form.17:08
mgedminno last minute things come to mind17:08
th1aOK.  What are your questions then, mgedmin?17:09
mgedminthe whole workflow (there's that word again) from the user's perspective17:10
mgedminwhen a user defines a timetable with the tt wizard17:10
mgedminhe can mark one period per day as the homeroom period17:10
th1aYes.17:10
mgedminlater some section might or might not be scheduled in that period17:10
mgedminI suppose homeroom attendance is taken in groups17:10
mgedminand I suppose there is more than one such group in the whole school17:11
mgedminam I right?17:11
th1aI'm not sure what you mean by "in groups."17:11
mgedmindoes everyone in the school collect in one big big room, and have their attendance taken at the same time?17:12
mgedminor are there smaller groups meeting in different rooms with different teachers taking homeroom attendance?17:12
th1aThey are regular class-sized groups.17:12
th1aIn separate classrooms.17:12
th1aUsually.17:12
mgedminwill these groups correspond to some section in SchoolTool?17:13
th1aPrecisely.17:13
mgedmingood17:13
mgedminhow do I tell that section from other, ordinary sections?17:13
th1aBecause they take place during the homeroom period.17:14
mgedminyay17:14
mgedminso the 'Attendance' links in calendar views will take the user either to the section attendance form, or to the homeroom attendance form17:15
th1aSincere yay or sarcastic yay.17:15
mgedmindepending on whether that period is a homeroom period or not17:15
mgedminthat was a sincere yay17:15
th1aYes, that is right.17:15
mgedminactually, I suppose I can use the same URL for both attendance forms17:15
mgedminand modify our traverser to dispatch to the appropriate view17:16
mgedminok, this gives me a clear idea of what needs to be done17:16
th1aIt might be desirable to use the same URL, so it could be bookmarked.17:16
mgedminI have no more questions right now17:16
mgedminbookmarkable urls for attendance forms aren't possible right now17:16
mgedmin'cause the url contains a date17:16
th1aOh, right.17:16
mgedminmaybe if you just go to '/attendance'17:17
mgedminit could find out the nearest meeting time17:17
mgedmin(for some definiton of nearest)17:17
th1aCould we make the sparkline not add the current period, so it shows the 10 previous days?17:17
th1aBut not the current one?17:18
mgedminthat should not be hard17:18
th1asrichter and I briefly showed the form to some folks from the school in Boston we might be working with.17:20
th1aThey thought that they'd want to be able to mark a student tardy without making them absent first.17:20
algaof course they would17:21
th1aIt just depends on whether you're really taking attendance in real time or somewhat retrospectively.17:21
ignaswith some modifications to the workflow it should be doable ...17:22
ignasbut we would need some intermediate state17:22
ignasthat dispatches to absent/tardy17:22
ignasdependin gon the workflow specific data (a string or date)17:22
th1aignas:  Why would we need an intermediate state?17:23
ignasbecause workflow must begin somewhere, at the moment it starts out as an unexplained abscence17:23
th1aSo couldn't checking "tardy" just make it skip through two steps?17:24
th1aOr is that bad form?17:24
ignaswhy do we need a workflow then ?17:24
ignasif we are not sticking to it17:24
ignaswe can do that though17:24
algaright.  making it in the view is easy enough17:25
th1aI guess the current workflow is maybe overly tied to the process of realtime attendance, which is the only time you want to create absences and convert them to tardies.17:26
ignasin this  case wqe have only one participant so i guess doing 2 steps of workflow in one click17:26
ignasis not wrong17:26
th1aI've always been planning that there would also have to be a separate form optimized for retrospective entry of attendance, particularly for schools that don't have computers in every classroom.17:28
th1aThat would definitely have separate checkboxes for absences and tardies.17:28
srichterthe answer is that the view should do the first two workflow items for you, when tardy was marked17:28
th1aOK, that's an hour.17:30
th1aThanks everyone!17:30
th1aIt will be nice to give people a look at what we've been up to.17:30
* th1a bangs the virtual gavel.17:31
srichteroh, btw, going to the school gave me a reality check17:31
srichterI think once we get closer to having functionality, we should release something fairly often17:32
* th1a wonders what srichter's view of reality was.17:32
th1a"Release" in the sense of having our partners give us feedback.17:32
mgedminissues.schooltool.org is overflowing with feedback17:33
srichterthat we need a truely easy interface17:33
srichterand that we need to get feedback as much as possible17:33
srichtermgedmin: yeah, but I would like really structured feedback, that is also prioritized, etc17:36
srichterwe are interested in the feedback from our partners more than anyone else too17:37
th1aUnfortunately we have/need both retrospective and prospective feedback.17:37
srichterright17:38
th1aOnce the current POV contract is done, I'll let you decide how you want to sequence calendar bugfixing and more attendance work.17:38
mgedmin(it's not that I want to do bug fixing, it's that I feel guilty about not fixing bugs)17:39
mgedmin(or not having enough time to offer for schooltool work)17:40
mgedmin(or not finding enough time to write my master's thesis)17:40
mgedminspeaking of time, I'll die if I don't get some food soon17:40
srichteryep, time to go to the gym17:42
*** mgedmin has quit IRC17:59
*** alga has quit IRC18:01
*** cursor has quit IRC18:15
pcarduneth1a: I went ahead and refactored the person page (i.e. st/persons/someguy/@@index.html) to use viewlets.  Should I commit my changes, or should i send someone a diff to look at first?18:46
th1aI'd say commit it.18:47
th1aIf people have changes, that's why we use a version control system ;-)18:47
pcarduneok, will do18:47
povbot/svn/commits: * pcardune committed revision 5566:19:13
povbot/svn/commits: Refactored person's page to use viewlets for information like courses, sections, groups, etc.19:13
*** alga has joined #SchoolTool19:42
*** erchache has joined #schooltool20:08
*** mgedmin has joined #schooltool20:17
erchachehi20:25
erchachewhere i can get irc chats logs?20:25
th1aAh, I meant to ask that myself.  It seems that povbot has been down.20:25
th1aEr, um, actually, I guess povbot is here.20:25
th1aBut the logs don't seem to be updated for the past couple weeks.20:26
erchachewhen next release of schooltool/schoolbell be avalaible?20:26
th1aThe next production release... not sure.20:26
erchachedont talk about this today?20:27
th1aThere will be a development snapshot tomorrow, but that's not something that will be usable.20:28
erchacheand when?20:29
mgedminwhat?20:29
th1aWe haven't been working on calendaring.20:29
mgedminth1a, irclogs are up to date20:29
erchacheok20:30
th1aOh... you're right.20:30
th1aI see what confused me... aside from the fact that I was looking at 2:00 AM.20:31
th1aNever mind.20:31
th1aerchache:  They're at http://source.schooltool.org/irclogs/20:31
mgedminpcardune, thanks for the viewlet refactoring20:32
mgedmin(although I'd be much happier if you committed the unit tests for the viewlets as well)20:32
th1aAh, good point.  I'd be happier, too.20:32
erchachewell...more critical bug are recursive events20:36
erchachei cant add events more long than 1 month :-S20:38
erchacheand are on schooltool and schoolbell :-P20:38
erchachea structural bug!20:38
mgedminignas convinced me to spend 10 minutes to set up a trac instance for SchoolTool20:39
mgedminhere it is: http://source.schooltool.org/trac/20:39
mgedminthe timeline and the source browser are nice20:39
mgedminwe don't really need the wiki, roadmap and the issue tracker20:40
erchacheperhaps20:40
erchachebut for external users can be useful20:40
erchacheyou know?20:40
th1aI'm afraid I'd rather move to Malone.20:40
mgedmin(that is, we already have the equivalent of things on www.schooltool.org and issues.schooltool.org)20:40
erchachejejejejeje....all on my job are using gforge20:41
erchacheand i say....trac must will be better.....install it instead gforge20:42
erchachenothing....dont hear me20:42
mgedminI never used trac much20:42
mgedminthe wiki is nice20:42
mgedminthe timeline is very very nice20:42
erchachehas a very very fast grow user number20:42
mgedminthe roadmap is inconvenient (you can't define milestones or components through the web without some extra plugins)20:42
erchacheeverybody speak that on next year must be better than gforge20:43
th1aI need to do this:20:46
*** hoffman_ has joined #schooltool20:47
*** hoffman_ is now known as hoffman20:47
*** hoffman is now known as th1a|edubu20:47
th1a|edubu    xpdl_dir = os.path.dirname(__file__)20:48
th1a|edubu    package = xpdl.read(open(os.path.join(xpdl_dir, 'promotion.xpdl')))20:48
th1a|edubuExcept the xpdl file is in the parent directory.20:48
th1a|edubuHow do I get the parent directory properly?20:50
mgedminos.path.dirname()20:52
mgedminone more time20:53
th1aOh, do it twice.20:53
th1aKnew it had to be something obvious.20:53
mgedminactually, os.path.dirname(os.path.dirname(__file__)) might not work if __file__ is in the current directory20:54
mgedminos.path.normpath(os.path.join(__file__, os.pardir, os.pardir, 'promotion.xpdl'))20:54
mgedminmight be more reliable20:54
mgedmin(although I think we use the dirname(dirname(...)) trick in a few places)20:54
th1aI'll give it a shot.20:55
mgedminin the long term we should use pkg_resources from setuptools20:58
mgedminso that people can build a schooltool egg20:58
mgedminhttp://peak.telecommunity.com/DevCenter/PythonEggs20:58
th1aYes, that seems like the next big thing.20:59
*** erchache has quit IRC21:00
pcardune\me just looked at python eggs and thinks they are awesome21:06
pcardunewoops... wrong slash21:07
mgedminI just wish setuptools made it into the stdlib by the time 2.5 is released21:08
*** ignas has quit IRC21:18
*** _pcardune has joined #schooltool21:34
*** pcardune has quit IRC21:34
*** _pcardune is now known as pcardune22:11
povbot/svn/commits: * pcardune committed revision 5567:22:11
povbot/svn/commits: Updated tests for the various viewlets used on a Person's page.  Obsolete methods from PersonView were removed, in otherwords, all of the methods were removed22:11
*** jinty has joined #schooltool22:25
th1aA little post I just wrote about adapters:  http://tuttlesvc.teacherhosting.com/wordpress/?p=3122:27
pcardunethat's a great subtitle by the way22:30
mgedmingaah, my firefox is broken22:30
mgedminI hate Flash22:31
*** th1a|edubu has quit IRC22:55
mgedminth1a, what happened to Planet SchoolTool?23:00
mgedmin"Last updated: August 24, 2005 04:05 AM"23:00
th1aIt broke.23:00
th1aSomething very strange happened on that server, which I've never quite figured out.23:01
th1aLots of things got randomly corrupted on August 24.23:01
th1aI could probably bring it back to life by reinstalling it.23:02
th1aI'll try to do that.23:02
th1aI guess I should really put it on the new server.23:02
th1aIt has never quite risen to the top of the to-do list.23:03
mgedminIf you might want to take a look at http://planetplus.python-hosting.com/23:05
mgedminor maybe not: "The code is currently pre-alpha but works and is actively being developed.23:06
mgedmin"23:06
mgedminalthough web-based administration sounds very interesting23:06
th1aIs Planet in python?  I've forgotten.23:06
mgedminI might want to take a look at planet plus23:06
mgedminyes, Planet is written in Python23:06
* mgedmin yawns and looks at his warch23:07
th1aAh.  Yes.23:07
mgedmintrac's timeline could use a sparkline23:09
*** Aiste has quit IRC23:10
*** mgedmin has quit IRC23:11
th1asrichter:  I'm stuck trying to get this attendance sample data test setup right so I don't get a ComponentLookupError  for IProcessDefinition.23:16
*** Aiste has joined #schooltool23:27
th1aI think I should just use a functional test for the sample data.23:31
*** alga has quit IRC23:34
th1asrichter:  It looks like performance isn't really an issue in the sample data generation anymore.23:36
th1aAt least on my box it is just flying along, and not eating memory at all.23:36
th1aWeird.23:36
th1aOur first version of the loop must have been more profoundly inefficient than we thought.23:38
th1aHm.  Ok, so my Data.fs is only 72MB as well.  I'll kick the absence rate back up to 50% and see what happens.23:41
srichterth1a: what was your absence rate?23:47
th1a20%23:47
srichterhuh, interesting23:48
th1aSomething completely weird was going on before.23:48
th1aI have it committing every 100 sections again and it is just ripping along.23:49
th1aNo memory leakage at all.23:49
srichtercool23:51
th1aIt says 104 seconds to generate the section attendance in CPU time.23:51
srichterfor 80%?23:52
srichteror for 50%?23:52
th1a50%23:52
srichtermmh, strange indeed23:53
th1aWell, there is a little more strange behaviour actually.23:54
th1aTe attendance data doesn't actually seem to be there!23:54
th1aAh!23:54
th1aEr.23:55
srichterhe he23:56
th1aSomething is very wrong.23:56
th1aIt is only doing one student per section.23:57
th1aNo wonder it is working so well.23:57
srichterI sent you exactely what I had23:57
th1aWe changed the loops without actually trying it.23:58
th1aI'm not blaming you ;-)23:58
srichterohhh, darn23:59
srichterok23:59

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