IRC log of #schooltool for Friday, 2004-11-26

**** BEGIN LOGGING AT Fri Nov 26 09:06:36 2004
-->You are now talking on #schooltool09:06
---Topic for #schooltool is http://schooltool.org09:06
---Topic for #schooltool set by Aiste at Mon Oct 18 10:47:26 200409:06
---pere_poff is now known as pere10:08
-->thisfred ( has joined #schooltool11:04
-->bskahan ( has joined #schooltool15:16
-->tvon|x31 ( has joined #schooltool15:37
th1atvon & bskahan:  we've got a little presentation going on here... can we put this off a bit?15:54
th1a15 minutes or a half hour?15:54
-->bskahan_ ( has joined #schooltool15:58
---bskahan_ is now known as bska|latop15:59
---bska|latop is now known as bska|laptop15:59
th1aThere's also a sprint going on here on version control.16:00
th1aWe're getting a little taste of that.16:00
tvon|x31It's been a hot topic in the GNOME world lately, we've been discussing it a bit here as well16:03
bska|laptoptalking about bazaar?16:04
th1aOK.  Marius and I are going to multitask.16:20
*mgedmin nods16:20
th1aSo I guess you guys read over Marius's comments.16:23
bska|laptopyeah, thanks for doing that mgedmin 16:23
th1amgedmin just went to the can.16:23
th1aSo anyhow...16:24
th1a 16:24
th1aIn the meantime, we did resolve the Zope 3 question.16:24
bska|laptopwhat's the conclusion?16:25
tvon|x31Whats the verdict?16:25
th1aPOV is going to start working on the transition to Zope 3.16:25
tvon|x31Very nice16:25
*bska|laptop nods16:25
th1aWe're also going to focus on creating a calendaring library for Zope 3.16:25
th1aWell, not focus on it,16:26
th1abut get it done.16:26
bska|laptopit makes sense16:26
tvon|x31Also very nice16:26
th1aRaise our profile in the community.16:26
bska|laptopand get the calendar lots of eyes16:26
tvon|x31That is one of the big reasons I wanted the z3 move to happen16:26
th1aYeah.  I feel much better now.16:26
th1aThe future is more clear.16:27
tvon|x31So for UI work we should focus on this being in z3 then?16:27
th1aWell, I don't think the UI work will be affected.16:27
bska|laptopwhat's the thought on the timeframe?16:27
th1amgedmin:  how far do you think you'll get in three weeks?16:28
mgedmingood question16:28
th1aWe went over the roadmap with SteveA, so we know what direction we're going.16:29
th1aWe haven't done time estimates yet.16:29
mgedminestimating the changes will be difficult16:29
mgedminI haven't talked about the simplified Zope 3 bit with Jim yet either16:30
SteveAguys, don't think of "zope 3" as being what zope 3 is like when you install and run it16:30
SteveAwe'll be using just some selected parts of the zope 3 framework16:30
tvon|x31Isn't that what we are doing now?16:30
SteveAjust, a lot more than we have been before16:30
SteveAthis will result in a net reduction in the amount of code in schooltool16:30
bska|laptopmaybe outline the roadmap for us.16:31
th1aSome notes there.16:31
SteveAbecause some things that are done specially in schooltool will be done using zope 3 facilities instead16:31
bska|laptophttp, authentication,16:31
bska|laptoplooking at the page now16:32
tvon|x31turning students/teachers into roles with principal annotations?  Or is that further than we want to go?16:33
th1aWe didn't discuss that.16:34
*tvon|x31 nods16:34
th1aSo the SchoolTool application will work pretty much the same way in the medium term.16:35
*bska|laptop nods16:35
th1aEventually we might be able to make it work more like an add on to a regular Zope 3 server.16:36
bska|laptopthe point is less to 'make it a zope3 app' than to 'reduce duplicate effort'16:36
th1aBut not initially, partly because of ongoing changes in Z3.16:36
*tvon|x31 nods16:36
tvon|x31so we are moving in a direction then16:36
th1aOK, so do you have any specific questions about Marius's comments?16:38
bska|laptopno, most of them were attention to detail things that we should have caught ourselves16:38
bska|laptopI have replies to speific ones that I'll put on the list16:38
th1aSteveA suggested that you guys might try pair programming.16:39
*bska|laptop nods16:40
bska|laptopI find it helpful, Tom's not as convinced16:40
tvon|x31We'll give it another shot this time around 16:40
bska|laptopI think its a control freak thing ...16:41
tvon|x31so anyways...16:41
th1aI haven't tried it myself, so I don't have any insight.16:41
th1aAlso, mgedmin was showing me a different method of doing tests.16:42
th1aWhat was that URL, mgedmin?16:42
mgedminjust a sec16:42
mgedminI'm not suggesting that we should forget all about unit tests and start using doctests exclusively16:42
mgedminbut there are definitely cases where doctests are much more easier to read than unit tests16:43
*mgedmin would like to briefly talk about dynamic schema facets16:44
SteveAdoctests are very very good things16:45
*mgedmin agrees16:45
mgedminwhy do you need IDynamicSchemaFacetService?16:45
mgedminwould IDynamicSchemaService be enough?16:45
bska|laptopmgedmin: that was a refactoring error on my part16:46
mgedminso there should be only one of those two, right?16:46
mgedminwhich one?16:46
bska|laptopI was adding IDynamicRelationshipSchemaService for dynamic relationships16:46
mgedminI see16:46
bska|laptopI removed them last week because they needed non-binary relationships16:47
bska|laptopthe thought proccess was to keep separate services for relationship schema vs. facet schema16:48
mgedminwould they both use IDynamicSchema in some way?16:48
mgedminI do not understand16:49
mgedminthe way I see it, IDynamicSchema is a list of fields16:49
mgedminand I do not see how that pertains to relationships16:49
mgedminanyway, let's not get distracted16:49
mgedminsince dynamic relationships are not present in the subversion repository16:50
mgedminI'll pretend that they do not exist ;)16:50
*bska|laptop nods16:50
mgedminwhat is the default dynamic schema used for?16:50
mgedminis it used for anything?16:50
bska|laptopno, it can (and should) be removed16:51
mgedminwhere does IDynamicFacet store data?16:51
mgedmininside fields?16:51
tvon|x31in fieds in a facet.  the dfacetservice stores templates for factes.  when they are added to an object the object gets an empty copy of the facet16:53
mgedminso conceptually you can create a facet16:55
mgedminand then alter its fields16:55
mgedmine.g. add a new field16:55
mgedminin other words, two objects that both have contact-info facets may in fact have different sets of fields in them16:56
tvon|x31no, you can only edit the template facet16:56
tvon|x31actually, there are no restrictions in the code that prevent you from editing a copy of hte facet that lives on an object (now that I think about it), but there should be16:57
mgedminit would be clearer if that restriction was also reflected in the interfaces16:57
*tvon|x31 nods16:58
mgedminIDynamicSchemaField: I do not really understand this interfaces16:58
mgedminit is basically a dict16:58
mgedmincan I store arbitrary keys and values in a field?16:58
mgedminare there any predefined keys that have special semantics?16:58
tvon|x31yes, I'll add that to the interface as well16:59
*mgedmin is confused16:59
mgedminwhat will you add to the interface?16:59
tvon|x31it is basically a dict with specific keys16:59
tvon|x31wait a second17:00
*mgedmin would really like fields to store things like its name and type in attributes rather than in items with special keys17:01
tvon|x31The field has basic keys, name, label, value, ftype (field type) and vocabulary (for selection fields).  17:01
tvon|x31they are, it's just accessed like a dict17:01
mgedminit's not pythonic17:02
tvon|x31so in tal you can do field/value or field/label17:02
tvon|x31that was my thinking anyways17:02
mgedminyou can do the same with attributes17:02
mgedminwe usually build dicts in view code for page templates17:02
mgedminbecause building objects with arbitrary attributes is difficult17:02
mgedminand defining a new class is overkill17:03
mgedminbut when you already have a class17:03
mgedminits attributes are perfectly accessible to page templates17:03
tvon|x31I'll rewrite it with methods like get/setLabel, get/setValue etc17:04
mgedminplease dont!17:04
mgedminthis is not java17:04
mgedminwhy use accessor methods when you can simply use attributes17:04
tvon|x31You are saying to access the attributes directly? or use property()?17:05
mgedminuse attributes unless you need some special magic17:05
mgedminby special magic I mean, eg., making that attribute read-only17:05
mgedminor computing its value on the fly17:05
mgedminor taking some action with side effects when the value of the attribute changes17:05
mgedminit is perhaps better to continue the design session via email17:06
mgedminwhere we could pass code snippets to each other17:06
mgedminit is difficult to do over irc17:06
tvon|x31sounds good17:06
mgedminperhaps I propose a design that seems clean and pythonic to me17:06
mgedminand then you can tell me if that design is workable17:07
tvon|x31question though, if the class is basically an __init__ and a few attributes, what should the interface look like?17:07
mgedminto achieve the features that you need17:07
tvon|x31that works17:07
mgedminif your class is just a collection of data17:07
mgedminthe interface should just contan a bunch of attribute declatations17:07
mgedminyour IAddressFacet is a perfect example17:07
*bska|laptop nods17:07
bska|laptopthere's a few others like that17:07
mgedminactually, now that we are moving towards Zope 317:08
mgedminit would be better to use zope.schema fields rather than plain Attributes17:08
mgedmine.g. name = TextLine(title="Name", description="The name of the person") etc.17:08
*bska|laptop nods17:08
mgedminin fact, perhaps you could replace DynamicFacetFields with instances of zope.schema fields?17:08
mgedminbut that is a more significant refactoring17:09
mgedminthat can wait until later17:09
mgedmini would like to clean up the existing interfaces first17:09
tvon|x31I'll have to look at zope.schema, it might obsolete DSField in the long run anyways17:10
mgedminok, then I'll go and compose that email17:10
bska|laptopth1a: what's next on the agenda?17:11
th1aA nap.17:13
th1aI think that covers things.17:13
th1aWe've been talking about UI use cases, too.  I started putting up a wiki page for that in the bounty section.17:14
tvon|x31ah, good17:14
th1aWe don't need to discuss it now, though.17:14
tvon|x31In that case, I think we are going to go get lunch.17:15
bska|laptopwhen do you want to start the next set of stories?17:15
th1aWriting them?17:15
bska|laptopworking on them17:16
bska|laptopI'll write something to start passing back and forth this weekend17:16
th1aOK, cool.17:17
th1aI won't be able to spend much time on it until Tuesday.17:18
th1aBut we should be able to get it done Tuesday/Wednesday.17:18
bska|laptopsounds good17:18
bska|laptopI'm going to start with the notes from last week, send me anything that comes up17:19
th1aOK.  I'll try to throw some things together.17:19
bska|laptopas we're going trhough marius' comments, should we commit changes on those thngs to the rc1 branch as well as trunk?17:20
mgedminI do not think so17:22
mgedminI think only important bug fixes should be committed to the branch17:22
bska|laptopallright, we'll commit to trunk unless something appears to break functionality17:23
bska|laptopth1a: we're going to grab lunch if there's nothing else17:33
---pere is now known as pere_poff17:38
*mgedmin sent the email17:43
<--thisfred has quit ("Farewell, cruel channel...")17:54
<--bska|laptop has quit (Read error: 110 (Connection timed out))18:46
<--SteveA has quit ("Leaving")18:50
<--th1a has quit ()18:51
SysTray Integration Plugin unloaded18:51
Python interface unloaded18:51
Tcl interface unloaded18:51
**** ENDING LOGGING AT Fri Nov 26 18:51:48 2004

Generated by 2.15.1 by Marius Gedminas - find it at!