| **** BEGIN LOGGING AT Fri Nov 26 09:06:36 2004 | ||
| -->You are now talking on #schooltool | 09:06 | |
| ---Topic for #schooltool is http://schooltool.org | 09:06 | |
| ---Topic for #schooltool set by Aiste at Mon Oct 18 10:47:26 2004 | 09:06 | |
| ---pere_poff is now known as pere | 10:08 | |
| -->thisfred (~thisfred@a213-84-57-72.adsl.xs4all.nl) has joined #schooltool | 11:04 | |
| -->bskahan (~bskahan@dsl093-119-225.blt1.dsl.speakeasy.net) has joined #schooltool | 15:16 | |
| -->tvon|x31 (tvon@dsl093-119-225.blt1.dsl.speakeasy.net) has joined #schooltool | 15:37 | |
| th1a | tvon & bskahan: we've got a little presentation going on here... can we put this off a bit? | 15:54 |
|---|---|---|
| th1a | 15 minutes or a half hour? | 15:54 |
| tvon|x31 | Sure | 15:56 |
| -->bskahan_ (~bskahan@dsl093-119-225.blt1.dsl.speakeasy.net) has joined #schooltool | 15:58 | |
| ---bskahan_ is now known as bska|latop | 15:59 | |
| ---bska|latop is now known as bska|laptop | 15:59 | |
| th1a | There's also a sprint going on here on version control. | 16:00 |
| th1a | We're getting a little taste of that. | 16:00 |
| tvon|x31 | nice | 16:03 |
| tvon|x31 | It's been a hot topic in the GNOME world lately, we've been discussing it a bit here as well | 16:03 |
| bska|laptop | talking about bazaar? | 16:04 |
| th1a | Yeah. | 16:04 |
| th1a | OK. Marius and I are going to multitask. | 16:20 |
| *mgedmin nods | 16:20 | |
| bska|laptop | ok | 16:22 |
| tvon|x31 | Allright | 16:22 |
| th1a | So I guess you guys read over Marius's comments. | 16:23 |
| bska|laptop | yeah, thanks for doing that mgedmin | 16:23 |
| th1a | mgedmin just went to the can. | 16:23 |
| th1a | So anyhow... | 16:24 |
| th1a | 16:24 | |
| th1a | In the meantime, we did resolve the Zope 3 question. | 16:24 |
| bska|laptop | what's the conclusion? | 16:25 |
| tvon|x31 | Whats the verdict? | 16:25 |
| th1a | POV is going to start working on the transition to Zope 3. | 16:25 |
| tvon|x31 | Very nice | 16:25 |
| *bska|laptop nods | 16:25 | |
| th1a | We're also going to focus on creating a calendaring library for Zope 3. | 16:25 |
| th1a | Well, not focus on it, | 16:26 |
| th1a | but get it done. | 16:26 |
| bska|laptop | it makes sense | 16:26 |
| tvon|x31 | Also very nice | 16:26 |
| th1a | Raise our profile in the community. | 16:26 |
| tvon|x31 | Definately | 16:26 |
| bska|laptop | and get the calendar lots of eyes | 16:26 |
| tvon|x31 | That is one of the big reasons I wanted the z3 move to happen | 16:26 |
| th1a | Yeah. I feel much better now. | 16:26 |
| th1a | The future is more clear. | 16:27 |
| tvon|x31 | So for UI work we should focus on this being in z3 then? | 16:27 |
| th1a | Well, I don't think the UI work will be affected. | 16:27 |
| bska|laptop | what's the thought on the timeframe? | 16:27 |
| th1a | mgedmin: how far do you think you'll get in three weeks? | 16:28 |
| mgedmin | good question | 16:28 |
| th1a | We went over the roadmap with SteveA, so we know what direction we're going. | 16:29 |
| th1a | We haven't done time estimates yet. | 16:29 |
| mgedmin | estimating the changes will be difficult | 16:29 |
| mgedmin | I haven't talked about the simplified Zope 3 bit with Jim yet either | 16:30 |
| SteveA | guys, don't think of "zope 3" as being what zope 3 is like when you install and run it | 16:30 |
| SteveA | we'll be using just some selected parts of the zope 3 framework | 16:30 |
| tvon|x31 | Isn't that what we are doing now? | 16:30 |
| SteveA | just, a lot more than we have been before | 16:30 |
| tvon|x31 | ah | 16:30 |
| SteveA | this will result in a net reduction in the amount of code in schooltool | 16:30 |
| bska|laptop | maybe outline the roadmap for us. | 16:31 |
| th1a | http://www.schooltool.org/bounties/z3/Phase1 | 16:31 |
| th1a | Some notes there. | 16:31 |
| SteveA | because some things that are done specially in schooltool will be done using zope 3 facilities instead | 16:31 |
| bska|laptop | http, authentication, | 16:31 |
| bska|laptop | looking at the page now | 16:32 |
| tvon|x31 | turning students/teachers into roles with principal annotations? Or is that further than we want to go? | 16:33 |
| bska|laptop | ok | 16:34 |
| th1a | We didn't discuss that. | 16:34 |
| *tvon|x31 nods | 16:34 | |
| th1a | So the SchoolTool application will work pretty much the same way in the medium term. | 16:35 |
| *bska|laptop nods | 16:35 | |
| th1a | Eventually we might be able to make it work more like an add on to a regular Zope 3 server. | 16:36 |
| bska|laptop | the point is less to 'make it a zope3 app' than to 'reduce duplicate effort' | 16:36 |
| th1a | But not initially, partly because of ongoing changes in Z3. | 16:36 |
| *tvon|x31 nods | 16:36 | |
| tvon|x31 | so we are moving in a direction then | 16:36 |
| th1a | Yes. | 16:36 |
| th1a | Inexorably. | 16:37 |
| th1a | OK, so do you have any specific questions about Marius's comments? | 16:38 |
| bska|laptop | no, most of them were attention to detail things that we should have caught ourselves | 16:38 |
| bska|laptop | I have replies to speific ones that I'll put on the list | 16:38 |
| th1a | OK. | 16:39 |
| th1a | SteveA suggested that you guys might try pair programming. | 16:39 |
| *bska|laptop nods | 16:40 | |
| bska|laptop | I find it helpful, Tom's not as convinced | 16:40 |
| tvon|x31 | We'll give it another shot this time around | 16:40 |
| bska|laptop | I think its a control freak thing ... | 16:41 |
| tvon|x31 | so anyways... | 16:41 |
| th1a | I haven't tried it myself, so I don't have any insight. | 16:41 |
| tvon|x31 | :) | 16:41 |
| th1a | Also, mgedmin was showing me a different method of doing tests. | 16:42 |
| tvon|x31 | oh? | 16:42 |
| th1a | What was that URL, mgedmin? | 16:42 |
| mgedmin | just a sec | 16:42 |
| mgedmin | http://dirtsimple.org/2004/11/stream-of-consciousness-testing.html | 16:42 |
| mgedmin | I'm not suggesting that we should forget all about unit tests and start using doctests exclusively | 16:42 |
| mgedmin | but there are definitely cases where doctests are much more easier to read than unit tests | 16:43 |
| *mgedmin would like to briefly talk about dynamic schema facets | 16:44 | |
| tvon|x31 | Alright | 16:44 |
| SteveA | doctests are very very good things | 16:45 |
| *mgedmin agrees | 16:45 | |
| mgedmin | why do you need IDynamicSchemaFacetService? | 16:45 |
| mgedmin | would IDynamicSchemaService be enough? | 16:45 |
| bska|laptop | mgedmin: that was a refactoring error on my part | 16:46 |
| mgedmin | so there should be only one of those two, right? | 16:46 |
| mgedmin | which one? | 16:46 |
| tvon|x31 | right | 16:46 |
| bska|laptop | I was adding IDynamicRelationshipSchemaService for dynamic relationships | 16:46 |
| mgedmin | I see | 16:46 |
| mgedmin | maybe | 16:46 |
| bska|laptop | I removed them last week because they needed non-binary relationships | 16:47 |
| bska|laptop | the thought proccess was to keep separate services for relationship schema vs. facet schema | 16:48 |
| mgedmin | would they both use IDynamicSchema in some way? | 16:48 |
| mgedmin | I do not understand | 16:49 |
| mgedmin | the way I see it, IDynamicSchema is a list of fields | 16:49 |
| tvon|x31 | yes | 16:49 |
| mgedmin | and I do not see how that pertains to relationships | 16:49 |
| mgedmin | anyway, let's not get distracted | 16:49 |
| mgedmin | since dynamic relationships are not present in the subversion repository | 16:50 |
| mgedmin | I'll pretend that they do not exist ;) | 16:50 |
| *bska|laptop nods | 16:50 | |
| mgedmin | what is the default dynamic schema used for? | 16:50 |
| mgedmin | is it used for anything? | 16:50 |
| bska|laptop | no, it can (and should) be removed | 16:51 |
| mgedmin | ok | 16:51 |
| mgedmin | where does IDynamicFacet store data? | 16:51 |
| mgedmin | inside fields? | 16:51 |
| tvon|x31 | in 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 facet | 16:53 |
| mgedmin | ok | 16:55 |
| mgedmin | so conceptually you can create a facet | 16:55 |
| mgedmin | and then alter its fields | 16:55 |
| mgedmin | e.g. add a new field | 16:55 |
| mgedmin | in other words, two objects that both have contact-info facets may in fact have different sets of fields in them | 16:56 |
| mgedmin | no? | 16:56 |
| tvon|x31 | no, you can only edit the template facet | 16:56 |
| tvon|x31 | actually, 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 be | 16:57 |
| mgedmin | ok | 16:57 |
| mgedmin | it would be clearer if that restriction was also reflected in the interfaces | 16:57 |
| *tvon|x31 nods | 16:58 | |
| mgedmin | IDynamicSchemaField: I do not really understand this interfaces | 16:58 |
| mgedmin | s/interfaces/interface/ | 16:58 |
| mgedmin | it is basically a dict | 16:58 |
| mgedmin | can I store arbitrary keys and values in a field? | 16:58 |
| mgedmin | are there any predefined keys that have special semantics? | 16:58 |
| tvon|x31 | yes, I'll add that to the interface as well | 16:59 |
| *mgedmin is confused | 16:59 | |
| mgedmin | what will you add to the interface? | 16:59 |
| tvon|x31 | it is basically a dict with specific keys | 16:59 |
| tvon|x31 | wait a second | 17:00 |
| *mgedmin would really like fields to store things like its name and type in attributes rather than in items with special keys | 17:01 | |
| tvon|x31 | The field has basic keys, name, label, value, ftype (field type) and vocabulary (for selection fields). | 17:01 |
| tvon|x31 | they are, it's just accessed like a dict | 17:01 |
| mgedmin | why? | 17:01 |
| mgedmin | it's not pythonic | 17:02 |
| tvon|x31 | so in tal you can do field/value or field/label | 17:02 |
| tvon|x31 | that was my thinking anyways | 17:02 |
| mgedmin | you can do the same with attributes | 17:02 |
| tvon|x31 | ah | 17:02 |
| mgedmin | we usually build dicts in view code for page templates | 17:02 |
| mgedmin | because building objects with arbitrary attributes is difficult | 17:02 |
| mgedmin | and defining a new class is overkill | 17:03 |
| mgedmin | but when you already have a class | 17:03 |
| mgedmin | its attributes are perfectly accessible to page templates | 17:03 |
| tvon|x31 | understood | 17:03 |
| tvon|x31 | I'll rewrite it with methods like get/setLabel, get/setValue etc | 17:04 |
| mgedmin | please dont! | 17:04 |
| mgedmin | this is not java | 17:04 |
| tvon|x31 | oh? | 17:04 |
| mgedmin | why use accessor methods when you can simply use attributes | 17:04 |
| tvon|x31 | You are saying to access the attributes directly? or use property()? | 17:05 |
| mgedmin | use attributes unless you need some special magic | 17:05 |
| mgedmin | by special magic I mean, eg., making that attribute read-only | 17:05 |
| mgedmin | or computing its value on the fly | 17:05 |
| tvon|x31 | right | 17:05 |
| mgedmin | or taking some action with side effects when the value of the attribute changes | 17:05 |
| mgedmin | it is perhaps better to continue the design session via email | 17:06 |
| mgedmin | where we could pass code snippets to each other | 17:06 |
| mgedmin | it is difficult to do over irc | 17:06 |
| tvon|x31 | sounds good | 17:06 |
| mgedmin | perhaps I propose a design that seems clean and pythonic to me | 17:06 |
| mgedmin | and then you can tell me if that design is workable | 17:07 |
| tvon|x31 | question though, if the class is basically an __init__ and a few attributes, what should the interface look like? | 17:07 |
| mgedmin | to achieve the features that you need | 17:07 |
| tvon|x31 | that works | 17:07 |
| mgedmin | if your class is just a collection of data | 17:07 |
| mgedmin | the interface should just contan a bunch of attribute declatations | 17:07 |
| tvon|x31 | ah | 17:07 |
| mgedmin | your IAddressFacet is a perfect example | 17:07 |
| *bska|laptop nods | 17:07 | |
| bska|laptop | there's a few others like that | 17:07 |
| mgedmin | actually, now that we are moving towards Zope 3 | 17:08 |
| mgedmin | it would be better to use zope.schema fields rather than plain Attributes | 17:08 |
| tvon|x31 | yeah | 17:08 |
| mgedmin | e.g. name = TextLine(title="Name", description="The name of the person") etc. | 17:08 |
| *bska|laptop nods | 17:08 | |
| mgedmin | in fact, perhaps you could replace DynamicFacetFields with instances of zope.schema fields? | 17:08 |
| mgedmin | but that is a more significant refactoring | 17:09 |
| mgedmin | that can wait until later | 17:09 |
| mgedmin | i would like to clean up the existing interfaces first | 17:09 |
| tvon|x31 | yeah | 17:09 |
| tvon|x31 | I'll have to look at zope.schema, it might obsolete DSField in the long run anyways | 17:10 |
| mgedmin | ok, then I'll go and compose that email | 17:10 |
| tvon|x31 | Allrighty | 17:10 |
| bska|laptop | th1a: what's next on the agenda? | 17:11 |
| th1a | A nap. | 17:13 |
| th1a | I think that covers things. | 17:13 |
| th1a | We've been talking about UI use cases, too. I started putting up a wiki page for that in the bounty section. | 17:14 |
| tvon|x31 | ah, good | 17:14 |
| th1a | We don't need to discuss it now, though. | 17:14 |
| tvon|x31 | In that case, I think we are going to go get lunch. | 17:15 |
| bska|laptop | when do you want to start the next set of stories? | 17:15 |
| th1a | Writing them? | 17:15 |
| bska|laptop | working on them | 17:16 |
| bska|laptop | I'll write something to start passing back and forth this weekend | 17:16 |
| th1a | OK, cool. | 17:17 |
| th1a | I won't be able to spend much time on it until Tuesday. | 17:18 |
| th1a | But we should be able to get it done Tuesday/Wednesday. | 17:18 |
| bska|laptop | sounds good | 17:18 |
| bska|laptop | I'm going to start with the notes from last week, send me anything that comes up | 17:19 |
| th1a | OK. I'll try to throw some things together. | 17:19 |
| bska|laptop | as we're going trhough marius' comments, should we commit changes on those thngs to the rc1 branch as well as trunk? | 17:20 |
| mgedmin | I do not think so | 17:22 |
| bska|laptop | ok | 17:22 |
| mgedmin | I think only important bug fixes should be committed to the branch | 17:22 |
| bska|laptop | allright, we'll commit to trunk unless something appears to break functionality | 17:23 |
| bska|laptop | th1a: we're going to grab lunch if there's nothing else | 17:33 |
| ---pere is now known as pere_poff | 17:38 | |
| *mgedmin sent the email | 17: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 unloaded | 18:51 | |
| Python interface unloaded | 18:51 | |
| Tcl interface unloaded | 18:51 | |
| **** ENDING LOGGING AT Fri Nov 26 18:51:48 2004 | ||
Generated by irclog2html.py 4.0.0 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!