*** pcardune has joined #schooltool | 00:05 | |
*** didymo has quit IRC | 00:25 | |
*** srichter has quit IRC | 00:52 | |
*** povbuildbot has quit IRC | 00:52 | |
*** wrobel has quit IRC | 00:52 | |
*** srichter has joined #schooltool | 00:55 | |
*** povbuildbot has joined #schooltool | 00:55 | |
*** wrobel has joined #schooltool | 00:55 | |
*** povbuildbot has quit IRC | 00:59 | |
*** wrobel has quit IRC | 00:59 | |
*** srichter has quit IRC | 00:59 | |
*** Aiste has quit IRC | 00:59 | |
*** tiredbones has quit IRC | 00:59 | |
*** pcardune has quit IRC | 00:59 | |
*** auxesis has quit IRC | 00:59 | |
*** pcardune has joined #schooltool | 01:02 | |
*** povbot has joined #schooltool | 01:07 | |
*** kornbluth.freenode.net sets mode: +ns | 01:07 | |
*** tiredbones has joined #schooltool | 01:08 | |
-kornbluth.freenode.net- *** Notice -- TS for #schooltool changed from 1141513672 to 1141513670 | 01:08 | |
*** irc.freenode.net sets mode: -s | 01:08 | |
*** auxesis has joined #schooltool | 01:08 | |
*** Aiste has joined #schooltool | 01:08 | |
-kornbluth.freenode.net- *** Notice -- TS for #schooltool changed from 1141513670 to 1123487491 | 01:09 | |
*** povbuildbot has joined #schooltool | 01:09 | |
*** wrobel has joined #schooltool | 01:09 | |
*** irc.freenode.net changes topic to "SchoolTool development | IRC logs at http://source.schooltool.org/irclogs/ | Dev meetings Tue, 14:30 UTC (16:30 EET)| CanDo dev meetings Tue, 4pm EST" | 01:09 | |
*** pcardune has joined #schooltool | 01:11 | |
*** srichter has joined #schooltool | 01:12 | |
*** povbot has joined #schooltool | 15:19 | |
mgedmin | server up! | 15:19 |
---|---|---|
mgedmin | it was the switch | 15:19 |
*** th1a has joined #schooltool | 15:34 | |
*** mgedmin has quit IRC | 15:45 | |
*** jelkner has joined #schooltool | 15:55 | |
jelkner | th1a: tom, u here? | 15:56 |
th1a | I am, actually. | 15:56 |
th1a | I'm on a crazy schedule now. | 15:56 |
*** mgedmin has joined #schooltool | 16:11 | |
*** Aetheri has joined #schooltool | 16:50 | |
*** Aetheri has left #schooltool | 16:50 | |
*** dwoo has joined #schooltool | 16:50 | |
jelkner | david, you made it! | 16:53 |
jelkner | dwoo: but you are an hour early ;-) | 16:53 |
dwoo | I had no idea when it started so I logged on early to be safe. | 16:56 |
*** mgedmin has quit IRC | 17:06 | |
*** flint has joined #schooltool | 17:14 | |
flint | hi there.. | 17:14 |
flint | please give me the url for the classroom coders... | 17:14 |
jelkner | http://wiki.tsf.org.za/shuttleworthfoundationwiki/ClassroomCoders | 17:14 |
*** flint has quit IRC | 17:29 | |
*** pcardune has joined #schooltool | 17:42 | |
pcardune | hi jelkner | 17:43 |
*** huynh has joined #schooltool | 17:54 | |
huynh | has class started yet? | 17:54 |
pcardune | huynh: nope, you're 5 minutes early by my watch | 17:55 |
huynh | okay; thank you | 17:55 |
huynh | jelkner: what did you say was that one line that needed changing? | 17:57 |
jelkner | hi linda! | 17:58 |
huynh | hello | 17:58 |
jelkner | why don't we do this: | 17:58 |
jelkner | you are working on maddog | 17:58 |
jelkner | i'll give you a full working version of the code on your site there, so you can start from that | 17:59 |
huynh | alright | 17:59 |
*** flint has joined #schooltool | 18:01 | |
huynh | hello, flint | 18:01 |
pcardune | just in time | 18:01 |
flint | good morning... still trying to get my sound card working... | 18:01 |
pcardune | is everyone who is supposed to be here, here? | 18:01 |
jelkner | huynh: done | 18:02 |
jelkner | try to start your instance and see if everything works | 18:02 |
jelkner | morning paul! | 18:03 |
flint | jelkner, my definition of "works" is that the instance works and the object is there. | 18:03 |
pcardune | flint: that's a pretty good definition | 18:04 |
huynh | i completely dislike dial-up | 18:04 |
pcardune | so, are we ready to start? | 18:04 |
jelkner | before we do, check out this: | 18:05 |
jelkner | http://www.ibiblio.org/obp/pyBiblio/zope3/ | 18:05 |
jelkner | i'll add anotation to each link | 18:05 |
pcardune | that looks nice | 18:06 |
flint | holy cascading style sheets batman!! | 18:06 |
huynh | is that going to be the new link, instead of the ypal one? | 18:06 |
jelkner | yes | 18:06 |
flint | huynh, linda you got it in one. | 18:06 |
jelkner | ok, teacher, sorry for the disruption ;-) i'm ready now... | 18:07 |
pcardune | so, per jelkner's request, today will be mostly a question and answer session | 18:07 |
pcardune | It seems that people had trouble understanding how things work for the most part | 18:08 |
pcardune | after getting through the questions that people have, i know jelkner probably has 50 or so, then we will do the homework from last time together | 18:08 |
dwoo | Oh, I have a question. What should I have put on my computer in preparation for today's class? | 18:08 |
pcardune | do you have an instance of zope3 installed? | 18:09 |
dwoo | Yes. | 18:09 |
pcardune | if so, there is a tarball with the timeclock package | 18:09 |
pcardune | I will send it to you | 18:09 |
flint | pcardune, would it be better to get david an account on maddog? | 18:10 |
pcardune | flint: probably, that is to the discretion of jelkner and dwoo... | 18:10 |
dwoo | Do you guys have something against pronouns? | 18:11 |
pcardune | just so everyone knows who we are talking about (you) | 18:11 |
pcardune | ok, I sent it to you | 18:11 |
jelkner | i'll set up dwoo with a maddog account now... | 18:12 |
flint | dwoo, I would opine that pronouns are not pythonic. "It is better to be explicit than obscure" | 18:12 |
flint | dwoo, understand, my man, I do not like to use ".."'s in scripts... :^) | 18:12 |
pcardune | ok, so I'm assuming most people did not figure out the homework? | 18:14 |
flint | that is correct. | 18:15 |
jelkner | ok, dwoo, you have an account on maddog with everything you need | 18:15 |
jelkner | i think wdickers id | 18:15 |
dwoo | Great. What am I supposed to do with it? | 18:15 |
jelkner | s/id/did | 18:15 |
flint | jeff you did a mkzopeinstance? and assigned him a port? | 18:15 |
*** flint has left #schooltool | 18:15 | |
jelkner | but you would be correct for the rest of us | 18:16 |
jelkner | flint: i did all that | 18:16 |
*** flint has joined #schooltool | 18:16 | |
jelkner | dwoo: look in $HOME/zope3/lib/python/timeclock | 18:16 |
huynh | jelkner: it works now. thank you | 18:16 |
flint | sorry about that... | 18:16 |
jelkner | huynh: great! | 18:16 |
dwoo | And how am I supposed to do that? | 18:16 |
flint | where is Will? | 18:17 |
jelkner | i don't know | 18:17 |
jelkner | can i start with a question? | 18:17 |
pcardune | yes, please | 18:17 |
jelkner | (oops, i just did ;-) | 18:17 |
flint | Jeff is that self-referential? | 18:17 |
flint | :^) | 18:18 |
jelkner | Q: is there a standard high-level proceedure for developing zope 3 applications? | 18:18 |
jelkner | what i mean is, it seems like we do this: | 18:18 |
jelkner | 1. create interfaces | 18:18 |
jelkner | 2. write tests | 18:18 |
jelkner | 3. write code | 18:19 |
jelkner | 4. configure browser | 18:19 |
pcardune | for zope components, yes | 18:19 |
jelkner | 5. write views | 18:19 |
pcardune | I will say they are: | 18:19 |
pcardune | 1. design component/write interfaces | 18:19 |
pcardune | 2. write tests/implementation (they sort of go at the same time | 18:20 |
pcardune | 3. configure components (before configuring browser views) | 18:20 |
pcardune | 4. write browser views | 18:21 |
pcardune | which may include similar sub-procedures depending on what kind of views you are making... but in general are: | 18:21 |
pcardune | 1. configure any autogenerated forms, make configure/write any page templates and browser view classes you need (these all go at the same time also) | 18:22 |
pcardune | so, that is specifically for simple zope components | 18:23 |
jelkner | can we talk about each of these in more detail? | 18:24 |
pcardune | I will also add 2. write functional tests for browser views | 18:24 |
pcardune | jelkner: sure | 18:24 |
jelkner | Jeffrey Shell calls interfaces "Zope 3's type system" | 18:24 |
jelkner | http://worldcookery.com/files/jeffshell-todo/step1.html | 18:24 |
jelkner | is that a good way for us to think about that phase in the process? | 18:25 |
pcardune | so, the first one, creating interfaces, is a fairly simple step of which the hardest part is making design decisions | 18:25 |
pcardune | yeah, that's a good way to think of it | 18:26 |
pcardune | the more you work with zope the less you have to think of it in a special way to understand it. It is like learning any language, there are certain nuances as to why you do something one way that is difficult to put into a simple definition | 18:27 |
pcardune | so, just to summarize, when you are creating interfaces, you want to think about how your component is supposed to work | 18:27 |
pcardune | or even more specifically, how it is supposed to look and what it is supposed to do | 18:28 |
pcardune | If you look back at the log from the first lesson in which we made these interfaces, you will see a discussion about the merits and drawbacks of what attributes we could choose for our component to have | 18:29 |
pcardune | once you have decided on that stuff, writing the actual interface is a fairly trivial process | 18:29 |
pcardune | does everyone understand this so far? | 18:30 |
pcardune | if you want me to talk about schemas vs. interfaces, we can do that aswell, and now would be a good time | 18:31 |
pcardune | unless everyone already understands the difference between schemas and interfaces, in which case we can move on | 18:31 |
jelkner | i don't understand | 18:31 |
dwoo | You never understand. | 18:31 |
flint | ok, the zope display is based upon interfaces. interfaces are objects. objects have attributes and methods. What are shcemas? | 18:32 |
jelkner | interfaces are not objects | 18:32 |
jelkner | they are more like types | 18:32 |
flint | ok what are objects? | 18:32 |
jelkner | they describe in an abstract way what your objects are going to do | 18:32 |
jelkner | we created an interface IPerson | 18:33 |
jelkner | than we implemented that with Person | 18:33 |
jelkner | Person was the class which implemented the interfaces | 18:33 |
flint | thus in your example is Person an object? | 18:33 |
jelkner | Person is a class | 18:33 |
jelkner | fint = Person() | 18:34 |
flint | what are the objects. | 18:34 |
jelkner | now flint is an object | 18:34 |
flint | flint is an instance of the class objects. | 18:34 |
jelkner | we used workder | 18:34 |
jelkner | worker | 18:34 |
jelkner | the word object is a bit ambiguous | 18:34 |
jelkner | it is better to speak of classes and instances | 18:34 |
flint | we created the class Person and there may be instances that are objects. | 18:35 |
jelkner | where the distinction is clearer | 18:35 |
jelkner | the word "object" is used for both | 18:35 |
flint | so there are no objects? oh ok both the instance and the class are objects. | 18:35 |
flint | is the interface and object? | 18:35 |
flint | and/an | 18:35 |
jelkner | i don't know whether answering that question would be helpful | 18:36 |
pcardune | conclusion: "object" is a very ambiguous words and if you really want to talk about zope3 architecture, you should use the words: | 18:36 |
flint | thankfully you are not the teacher. | 18:36 |
jelkner | what we need to get at here is what are interfaces used for | 18:36 |
pcardune | interface, implementation, instance, schema, component | 18:37 |
flint | thankfully you are not the teacher jeff :^) | 18:37 |
flint | excellent paul! | 18:37 |
pcardune | views | 18:37 |
pcardune | when you talk about objects, you might even say an object is a conglomeration of all those things | 18:38 |
dwoo | Although technically schemas and interfaces are the same thing, but hey- unnecessarily complicated systems are what keep programmers in business. | 18:38 |
pcardune | but then each object is filled with subobjects... and then it gets ambiguous as to what you are specifically referring to | 18:38 |
*** mgedmin has joined #schooltool | 18:38 | |
flint | is there any hierarchy to interface, implementation, instance, schema, component? | 18:39 |
dwoo | Schemas are interfaces. | 18:39 |
jelkner | good question, flint | 18:39 |
flint | is one the result or contained in another? | 18:39 |
pcardune | ok, let me explain this | 18:39 |
jelkner | a diagram here would be helpful | 18:39 |
dwoo | Am I on /ignore? | 18:39 |
pcardune | dwoo: you are on /wrong ;) | 18:40 |
flint | jelkner, at last words of wisdom! a diagram is essential! | 18:40 |
pcardune | components contain interface+schema+implementation | 18:40 |
flint | excellent!!! | 18:40 |
dwoo | But that's what the book says. You mean elkner spent hundreds of dollars for stuff that's not even right? | 18:40 |
dwoo | No wonder we never get anything done at school. | 18:41 |
pcardune | dwoo: you are not completely right, and I don't believe the book completely says that | 18:41 |
flint | dwoo, elkner says a lot of things... | 18:41 |
dwoo | Wait, are we talking about the same book? | 18:41 |
pcardune | it doesn't matter, I've read the only two zope3 books there are, and im pretty sure they distinguish between interfaces and schemas | 18:42 |
pcardune | Ok, i am going to make this clearer to everyone | 18:42 |
pcardune | remember how i talked about design using interfaces, and how you wanted to think about what the objects does, and what the object looks like | 18:43 |
pcardune | i.e. for example, if we were creating a dog component... what does it look like: it has legs, a head, a tail | 18:43 |
pcardune | what does it do: it barks, it sleeps, it eats | 18:43 |
pcardune | legs, head, and tail would be part of the schema | 18:43 |
pcardune | schema's describe what things look like: or more technically, what attributes they have | 18:44 |
pcardune | interfaces describe what things do: or more technically, what methods they have | 18:44 |
flint | pcardune, we are down to needing only to understand implementation and instance, | 18:44 |
pcardune | it just so happens that you can define interfaces and schemas in the same class definition, and it just so happens that the standard of naming these schema/interface things is to begin with a capital I | 18:45 |
pcardune | which is why dwoo suggested that they were "technically the same thing" | 18:46 |
flint | pcardune, you already nailed components interface schema and implementation | 18:46 |
pcardune | ok, moving on | 18:46 |
flint | interface and schema are part of components. | 18:47 |
pcardune | implementations take interfaces/schemas and turn them into something that you can actuall do stuff with | 18:47 |
pcardune | let me use this analogy | 18:47 |
jelkner | flint: think of interface and schema as *specifications* | 18:47 |
jelkner | they don't do anything until they are implemented | 18:48 |
pcardune | planes all have wings, and engines, and they all fly... this would be a planes schema/interface | 18:48 |
pcardune | but there are lots of different kinds of planes... and likewise, there can be multiple implementations of the same interface/schema | 18:48 |
jelkner | and only the implementations fly, not the specifications! ;-) | 18:49 |
pcardune | for each kind of plane, there are very very detailed blueprints that give specific details as to how the wings/engine/flying actually works | 18:49 |
flint | jelkner, that is a very bad idea. we are trying to define words exactly. interfaces and schema are part of components | 18:49 |
pcardune | the very detailed blueprint is the implementation | 18:49 |
pcardune | the actual plane that you sit in and ride in, that is the instance | 18:49 |
flint | so the component defines the class that the ariplane is an instance of? | 18:50 |
pcardune | so, how do components fit into this? | 18:50 |
pcardune | if there was such a thing as a plane component, in the zope sense this would be a total conglomeration of everything that defines a plane, the schema/interface, and the implementation | 18:51 |
pcardune | it begins to be a bit more complicated also when you start thinking of hierarchies of schemas/interfaces | 18:52 |
flint | pcardune, I really liked the dog analogy, because it can chase its own tail which and airplane cannot do. Sadly we need to move on while I struggle with this. | 18:53 |
pcardune | you might say, well, planes have wings and engines, and they fly... but if we want to be more specific we would say military planes have weapons and ejection seats | 18:53 |
flint | you are overloading the object plane with weapons and ejection seats. | 18:54 |
pcardune | in which case you could define a hierarchy of itnerfaces/schemas that describes planes in general, and also specifics to a certain group of planes | 18:54 |
pcardune | flint: not overloading, just extending | 18:54 |
flint | pcardune, fair enough... | 18:55 |
pcardune | military plane is a subclass of regular plane | 18:55 |
pcardune | so, it this making any more sense? | 18:55 |
flint | subclass but not sub component and not sub interface? | 18:55 |
pcardune | s/it/is | 18:55 |
pcardune | well, i suppose you could use the term sub interface... | 18:56 |
flint | but not sub component? | 18:56 |
pcardune | definitely not sub component | 18:56 |
pcardune | In fact, I would even say there is no such thing as a sub component | 18:56 |
flint | the hierarchy then is components have interfaces or interfaces have components? | 18:57 |
pcardune | components have interfaces | 18:57 |
pcardune | for every component there is an associated hierarchy of interfaces | 18:57 |
flint | pcardune, that is consistent with this conversation. excellent | 18:57 |
flint | so components are displayed in zope3? | 18:58 |
pcardune | they can be | 18:58 |
flint | or is what is revealed is the components interface? | 18:58 |
pcardune | only components with browser views are "displayed" in zope3 | 18:58 |
flint | but clearly components and not interfaces are displayed. | 18:59 |
pcardune | or rather, only their instances are displayed | 18:59 |
pcardune | well, it takes all the parts of a component to display it | 18:59 |
dwoo | Is there another channel where we can ask other zope-related questions without cluttering up the main chat room? | 18:59 |
pcardune | you mean like #zope3-dev? | 19:00 |
dwoo | I meant specifically about timeclock. | 19:00 |
pcardune | if you have a specific question that is off topic, you can send it to me silently | 19:00 |
jelkner | this is the place to ask about timeclock | 19:00 |
flint | pcardune, thanks lets get back to timeclock. | 19:01 |
dwoo | Unless of course, we can't be bothered to register at freenode... | 19:01 |
flint | dwoo, this is remedial zope3 for the brain damaged. Paul is our nurse. :^) | 19:01 |
jelkner | dwoo: what is your timeclock question? | 19:01 |
jelkner | timeclock is the application we are writing as part of this class | 19:01 |
dwoo | Nothing right now, just wondering. | 19:02 |
jelkner | so a question about it is relevant here | 19:02 |
flint | jelkner, I have a timeclock question! | 19:02 |
pcardune | flint: ask away | 19:02 |
jelkner | no, let dwoo go | 19:02 |
jelkner | he asked first | 19:03 |
jelkner | dwoo: what is your question? | 19:03 |
dwoo | I have no question, remember? It was just a hypothetical. | 19:03 |
jelkner | :-( | 19:03 |
flint | I have an instance displaying at "http://maddog.yhspatriot.net:8020" how do I make it do something cool? | 19:03 |
pcardune | that is kind of a vague question, what do you mean by "cool"? | 19:04 |
pcardune | web applications aren't often that "cool" unless you are google | 19:05 |
flint | the instance is called "paul" when you click on it I want it to do something. | 19:05 |
flint | right now when you click on it nothing happens unless you are logged in and then it gives you a cross reference which is boring. | 19:06 |
jelkner | pcardune: now would be a good time to talk about the homework | 19:06 |
pcardune | ok, so this was precisely the point of the homework | 19:06 |
flint | pcardune, and also how do you log out of zope3? | 19:06 |
pcardune | I actually have not found a way to log out of zope3 | 19:06 |
flint | since the display rules change whether or not you are logged in as manager. | 19:07 |
pcardune | that is one thing that should be made clear to anyone with zope2 experience | 19:07 |
flint | pcardune, I like an honest answer, thanks. | 19:07 |
pcardune | zope3 is at this point, primarily an infrastructure for making web applications | 19:08 |
pcardune | and not for making websites (like zope 2) | 19:08 |
pcardune | so a lot of things that you might take for granted in zope 2, like being able to create webpages... you can't do in zope3 (at least yet) | 19:09 |
pcardune | so apparently that includes things like logging in and out... in any case, don't try to get to confertable with the zope 3 web UI, because in then end, we wont be using it much | 19:09 |
pcardune | s/then/the | 19:10 |
jelkner | pcardune: question | 19:10 |
pcardune | go ahead | 19:10 |
jelkner | in schooltool, you do quite a bit through the web | 19:11 |
jelkner | that is written in zope 3 | 19:11 |
pcardune | correct | 19:11 |
jelkner | and our goal here is to get us ready to hack on cando/schooltool | 19:11 |
jelkner | so we need to understand this | 19:11 |
*** mgedmin has quit IRC | 19:11 | |
pcardune | what is your question? | 19:11 |
jelkner | doesn't that contradict what you just said? | 19:12 |
jelkner | the zope 3 web UI, because in then end, we wont be using it much | 19:12 |
jelkner | in schooltool, you do quite a bit through the web | 19:12 |
jelkner | ? | 19:12 |
pcardune | yeah, but we aren't using zope 3's web UI... we are using Schooltool's web UI | 19:13 |
jelkner | ahh | 19:13 |
pcardune | and for timeclock, we are going to create our own Web UI | 19:13 |
jelkner | and that is what "views" are all about? | 19:13 |
pcardune | yeah | 19:13 |
pcardune | and skins, which we will get into later | 19:13 |
jelkner | our first assignment was: | 19:14 |
jelkner | - make a container view for IPersonContainer (use the containerViews zcml tag) | 19:14 |
jelkner | can you please that thinking process that goes into doing this? | 19:15 |
jelkner | describe the | 19:15 |
jelkner | thinking process.. | 19:15 |
dwoo | By the way, does anyone know of a good editor for windows? Wordpad is starting to grate on my nerves. | 19:15 |
pcardune | as the students your thinking process should be: | 19:15 |
pcardune | dwoo: vim | 19:15 |
dwoo | You fail. Try again. | 19:16 |
pcardune | first, ask yourself, what on earth is a containerViews zcml tag | 19:16 |
jelkner | i got that far ;-) | 19:16 |
flint | vi is not a sin it is a penance...RMS | 19:17 |
pcardune | you can answer that yourself by looking it up online... or looking at the example in chapter 13 | 19:17 |
pcardune | pg 106, line 30 for those with a hard copy | 19:18 |
flint | pcardune, we have a view of the component right now eh? | 19:18 |
pcardune | we have several views for the Person component | 19:19 |
jelkner | i see that, teach, but aside from blindly copying it, i would have no idea how to create it myself | 19:19 |
flint | pcardune, thanks, excellent paul. well said. | 19:20 |
pcardune | jelkner: the first time you blindly copy, the second time, you remember what you copied and write it yourself | 19:20 |
jelkner | is it always the same? | 19:20 |
jelkner | what is "for", "index", "contents", "add"? | 19:21 |
pcardune | yes, except for the specific options | 19:21 |
pcardune | so in this case, you wouldn't say book.messageboard..... | 19:21 |
pcardune | s/say/use | 19:21 |
huynh | what is the link for ch. 13? | 19:22 |
jelkner | http://www.zope.org/Wikis/DevSite/Projects/ComponentArchitecture/Zope3Book/contentobject.html | 19:23 |
pcardune | you beat me to it | 19:23 |
jelkner | we are looking at 13.8 line 30 | 19:23 |
huynh | got it | 19:23 |
pcardune | so, the first thing you would do is copy this as it is, then change whatever you think is obviously in need of changing (the book.messageboard... part) | 19:24 |
pcardune | then you would try it and see if it worked | 19:24 |
jelkner | ok, so we are editing our configure.zcml file, yes | 19:25 |
pcardune | at this point you would find out that it did work, because you would be able to click on an instance of PersonContainer and see the contents of it | 19:25 |
pcardune | jelkner: yes | 19:25 |
jelkner | in the browser folder | 19:25 |
pcardune | correct | 19:26 |
jelkner | question: can you explain the role of the browser folder and constrast the roles of configure.zcml in timeclock and configure.zcml in timeclock/browser? | 19:26 |
flint | pcardune, I advise that when you zip up the current state you include the browser subdirectory. | 19:26 |
pcardune | i believe it is in there no?/ | 19:27 |
pcardune | if not, i meant to | 19:27 |
flint | I moved my old one into the directory. I kept my old directory and created another to open the tarball into. | 19:27 |
flint | no big deal, unless you changed the browser file. | 19:28 |
flint | I take it that you must restart zope3 to have these directories re-read eh? | 19:28 |
pcardune | flint: yeah | 19:29 |
flint | coo | 19:29 |
flint | cool | 19:29 |
pcardune | the only time you don't have to restart zope3 if when you change page templates (we will get to that) | 19:29 |
flint | zopectl is our friend... | 19:29 |
pcardune | ok, so, is everyone looking at their configure.zcml file? | 19:29 |
pcardune | in the browser folder? | 19:29 |
flint | indeed | 19:29 |
jelkner | <containerViews | 19:30 |
jelkner | for="timeclock.interfaces.IPersonContainer" | 19:30 |
jelkner | index="zope.View" | 19:30 |
jelkner | contents="zope.View" | 19:30 |
jelkner | add="zope.ManageContent" | 19:30 |
jelkner | /> | 19:30 |
jelkner | does order matter? | 19:30 |
dwoo | Hey, that wasn't in the tarball. | 19:30 |
pcardune | order does not matter, it is just standard xml markup | 19:30 |
jelkner | no, it was in the homework | 19:30 |
pcardune | jelkner: anyways, that is correct | 19:31 |
jelkner | now, here is how i figured that out: please correct me if my reasoning is broken | 19:32 |
jelkner | 1. we are creating a "containerViews" | 19:32 |
jelkner | which must be a view for a container | 19:32 |
jelkner | our only container so far is IPersonContainer | 19:32 |
jelkner | so that must be it | 19:32 |
jelkner | is that all there is too it? | 19:33 |
pcardune | I said "make a container view for IPersonContainer (use the containerViews zcml tag)"... so you could also have determined from that, what the "for" attribute should be :) | 19:34 |
pcardune | jelkner: that is all there is to it | 19:34 |
pcardune | if you want you can look up the meaning of all the attributes | 19:34 |
jelkner | what did that do? | 19:34 |
flint | this goes in the configure.zcml file before the </configure>? | 19:34 |
jelkner | flint: yes | 19:34 |
jelkner | flint: teach said order doesn't matter, but it much be inside the <configure></configure> tag | 19:35 |
flint | pcardune, ok I put it on the bottom. do we restart zope now? | 19:35 |
pcardune | stephan's book doesn't have a zcml reference in it, but Weitershausen's does | 19:35 |
pcardune | flint: yes | 19:35 |
flint | I ordered another copy of Weitershausen eric-the-weasel stole my original copy. | 19:36 |
pcardune | so, now if you click on an instance of PersonContainer (create one if you haven't already) | 19:36 |
pcardune | you will get another fun page | 19:36 |
pcardune | that does't really show much | 19:36 |
flint | pcardune, what? where? do I restart zope? | 19:36 |
pcardune | yes, restart zope | 19:37 |
dwoo | Ooh, questions. Many questions. | 19:37 |
pcardune | browse to the server, log in, create a PersonContainer object, then click on it | 19:37 |
pcardune | dwoo: yes? | 19:37 |
flint | dwoo, be good and enjoy the retards, see they are funny! | 19:37 |
dwoo | I created one based on the book, and it has none of the attributes elkner's has... where are index, contents, and add coming from? | 19:38 |
pcardune | dwoo: you created a containerView? | 19:39 |
dwoo | Uh, well, no... I did <page>. | 19:39 |
pcardune | dwoo: you are getting ahead of the game | 19:40 |
dwoo | But it still works like how you're describing. | 19:40 |
pcardune | well, there is more than one way to do the same thing | 19:40 |
pcardune | show me the your entire page tag | 19:40 |
flint | pcardune, good news paul, "http://maddog.yhspatriot.net:8020" did not restart. | 19:41 |
dwoo | <page | 19:41 |
dwoo | for="timeclock.interfaces.IPersonContainer" | 19:41 |
dwoo | name="index.html" | 19:41 |
dwoo | template="personview.pt" | 19:41 |
dwoo | permission="zope.View" | 19:41 |
dwoo | /> | 19:41 |
dwoo | Wordpad apparently doesn't paste well. | 19:41 |
flint | ~flint/bin/zopectl restart says it did... but no dice. I am backing the change out now. | 19:41 |
jelkner | looks good to me | 19:41 |
pcardune | ok, this is another way which we will get to later | 19:42 |
flint | jelkner, does "http://maddog.yhspatriot.net:8020" look good to you? | 19:42 |
jelkner | flint: use runzope, not zopectl for testing | 19:42 |
flint | jelkner, why? | 19:42 |
jelkner | because runzope will tell you when things go wrong | 19:42 |
dwoo | It's easy to turn on and off, too. Just press control c and the instance shuts down. | 19:42 |
flint | good reason.... | 19:42 |
flint | wow, zope 3 produces more incomprehensible error messages than I have ever seen before... excellent! | 19:44 |
jelkner | ok, we have 15 minutes, and it would be good to finish the homework | 19:44 |
flint | jelkner, I am broken. | 19:44 |
dwoo | Zope 3 is actually pretty good about its error messages... | 19:44 |
jelkner | - make an auto generated addform for IPerson | 19:44 |
flint | I am going back to what worked. | 19:44 |
pcardune | jelkner: ok, you should be able to do that without any help from me | 19:45 |
jelkner | yes, i think i can | 19:45 |
flint | dwoo, which port is your page on? I will follow along there. or better yet is elkner working on 8080? | 19:45 |
dwoo | I'm running a local zope instance. I have no idea how to get into maddog | 19:46 |
jelkner | flint: i'm working on my home machine | 19:46 |
flint | 8080 has a component on it called banana. It is not public. | 19:46 |
pcardune | flint: just copy the containerViews tag write out of Stephan's book, and change the for attribute to timeclock.interfaces.IPersonContainer | 19:47 |
pcardune | s/write/right | 19:47 |
flint | pcardune, I will try. first let me recover. | 19:47 |
dwoo | That's another thing. What's with this something/somethingelse/yetanotherthing ? | 19:48 |
pcardune | dwoo: that is the path... you could also put "..interfaces.IPersonContainer" but that isn't as explicit | 19:48 |
dwoo | No, I meant when you said "s/write/right" | 19:49 |
pcardune | ok, if you knew vim... | 19:50 |
pcardune | that is the command for search and replace | 19:50 |
dwoo | .... I guess I should've expected something like that... | 19:50 |
jelkner | pcardune: what are you thinking for homework this week? | 19:51 |
jelkner | i have a suggestion | 19:51 |
pcardune | what is your suggestion? | 19:51 |
tiredbones | It looks like the irc logs are going to have some interesting reading. | 19:51 |
jelkner | why don't we go through the short tutorials on the worldclock site? | 19:52 |
dwoo | This is nothing... | 19:52 |
jelkner | i mean worldcookery | 19:52 |
tiredbones | Do I have a Zope object or a OOP object? | 19:52 |
jelkner | http://worldcookery.com/Appetizers | 19:52 |
jelkner | specifically: | 19:52 |
jelkner | 1. http://www.benjiyork.com/quick_start/ | 19:52 |
jelkner | 2. http://zissue.berlios.de/z3/Zope3In30Minutes.html | 19:53 |
flint | back in business... the container view changed nothing as far as I can see on the page at "http://maddog.yhspatriot.net:8020" | 19:53 |
jelkner | 3. http://worldcookery.com/files/jeffshell-todo | 19:53 |
jelkner | each one developes a super small application that will reinforce what we have been learning | 19:54 |
pcardune | flint: click on "paul" | 19:54 |
jelkner | then we could move on next week | 19:54 |
pcardune | ok | 19:54 |
pcardune | if you want | 19:54 |
huynh | ok | 19:54 |
jelkner | did you have something else in mind? | 19:55 |
pcardune | well, that is fine | 19:55 |
flint | if i am un-authenticated i get a logon. If I am manager I get ++etc++site and a blank screen. | 19:55 |
pcardune | it is just that it wont necessarily fit the pattern of how we have been doing things | 19:55 |
pcardune | which may confuse people | 19:55 |
flint | the userid is flint the password is the yellow thing. | 19:55 |
pcardune | but if you think you can understand it without getting to confused, then go ahead, you can always email me questions too | 19:56 |
huynh | when do you usually check email? | 19:56 |
pcardune | every waking minute | 19:56 |
pcardune | a few times a day | 19:56 |
pcardune | (thanks to gmail notifier) | 19:56 |
huynh | cool | 19:57 |
flint | huynh, linda you are a saint. what do you think of all this going on? | 19:57 |
pcardune | you will get a quick response | 19:57 |
huynh | flint: if what's needed for the class is a short detour every once in a while, then it's all good | 19:57 |
pcardune | flint: that looks the way it should | 19:57 |
pcardune | you don't see anything because your PersonContainer is empty (seeing as you didn't create any Person objects) | 19:58 |
flint | pcardune, ok if you say so. I saw your access which was fun. | 19:58 |
huynh | you have to click the <top> button on the left side | 19:58 |
huynh | then you can add objects | 19:58 |
flint | huynh, linda, you said objects, tish that is so cool!!! | 19:59 |
flint | :^) | 20:00 |
flint | huynh, sorry I get carried away when folks talk like that... | 20:00 |
huynh | that's fine | 20:00 |
flint | huynh, linda thanks I actuall added and deleted an object. | 20:00 |
huynh | so, since we have the homework, is class dismissed? | 20:00 |
flint | huynh, I am with you linda. Untill next week Dr. Paul? | 20:02 |
flint | pcardune, btw I actuall learned something this week. thanks. | 20:03 |
flint | actuall/actually | 20:03 |
huynh | flint: is everyone on a different channel or something? | 20:04 |
dwoo | I can't believe schooltool and freenode let us waste their banwidth like this. | 20:04 |
pcardune | huynh: we are still discussing the homework | 20:04 |
pcardune | i will send it in an email ater class | 20:04 |
pcardune | so, yes, class dismissed | 20:04 |
huynh | alright; I'll see all of you later | 20:05 |
dwoo | Who is we? | 20:05 |
flint | dwoo, your obsession with pronouns again eh? | 20:05 |
*** huynh has quit IRC | 20:05 | |
flint | :^) | 20:05 |
dwoo | You need more jengajams. | 20:05 |
pcardune | we is me and jelkner | 20:06 |
*** dwoo has quit IRC | 20:07 | |
flint | stephan were you entertained? | 20:08 |
flint | th1a, Tom, is this simply making you crazy? | 20:08 |
th1a | I'm glad I never had you as a student, flint. | 20:09 |
flint | It feels good to be the perfect bad example. I am outa here! | 20:09 |
flint | th1a, thanks! you are correct. | 20:10 |
flint | sksk | 20:10 |
*** flint has quit IRC | 20:10 | |
th1a | pcardune: I wonder if it makes more sense to start by doing something like srichter's commendation package, rather than starting with pure Zope 3 objects. | 20:11 |
th1a | The whole Zope 3 ZMI thing has its own landmines. | 20:11 |
pcardune | yeah, no kidding | 20:12 |
pcardune | I haven't actually looked at the commendation package | 20:12 |
th1a | Sheesh! What's the point in writing documentation if nobody looks at it. | 20:12 |
th1a | I have to figure out where that needs to go! | 20:13 |
th1a | We need to make a pdf or something. | 20:13 |
pcardune | you mean the README.txt or some other docs? | 20:13 |
th1a | There are several doctests in that package. | 20:14 |
th1a | Plus the code is pretty heavily commented. | 20:14 |
pcardune | i'll take a look | 20:14 |
th1a | (and you're welcome to add to / revise it). | 20:14 |
pcardune | did you ever get my email about svn access? | 20:15 |
th1a | Um... not sure. | 20:15 |
pcardune | remember there was an email from a guy name mitchel about svn access to the cando repository? | 20:16 |
th1a | Is he one of your guys? | 20:16 |
pcardune | and you said he needed to fill out a contributor aggreement | 20:16 |
pcardune | yeah, he is one of our guys now | 20:17 |
th1a | OK. I see it, and never read it for some unknown reason. | 20:18 |
th1a | Do you know how to do that? | 20:19 |
th1a | We've been in a bit of a state of chaos with jinty traveling and me traveling and sick. | 20:20 |
pcardune | yeah, i figured as much | 20:20 |
pcardune | I do not know how to do anything with the svn repo | 20:21 |
pcardune | let alone have access | 20:21 |
pcardune | as far as i know | 20:21 |
th1a | I'm sure I could figure it out, but I'm really, really crunched right now. This was a bad time to get sick for a week. | 20:22 |
th1a | We should be able to get it done this week, though. | 20:22 |
th1a | jinty is going to be the official, paid schooltool.org sys admin once he gets back from SA, so that'll help. | 20:23 |
srichter | yay, a real sys admin! :-) | 20:23 |
pcardune | ok, great | 20:24 |
pcardune | thanks | 20:24 |
srichter | th1a: I will be at your place between 9:00-9:30 tomorrow | 20:32 |
th1a | OK. I was up at 5:30 today, so it shouldn't be a problem. | 20:33 |
srichter | he he | 20:34 |
srichter | th1a: do we need to set an agenda? | 20:34 |
srichter | (I have ideas btw) | 20:34 |
th1a | I'm pretty much going out of my mind right now, so if you'd set the agenda, I'd appreciate it. | 20:35 |
srichter | ok | 20:37 |
srichter | I think the best will be to work on the term and timeflow API by writing the documentation; I started this weekend already and the issues are coming like crazy | 20:38 |
srichter | we will have to answer some tough questions tomorrow | 20:38 |
th1a | OK. | 20:39 |
th1a | srichter: If you can put some of the questions on the agenda so I can think about them a bit, that will help. | 20:47 |
srichter | well, I'll try, but I am not sure how well I can formulate them | 20:48 |
srichter | I will checkin the README.txt file tonight though | 20:49 |
srichter | th1a: do you think we could get a demo somewhere on how powerschool handles terms? | 20:55 |
srichter | I just want to see what they can do | 20:55 |
th1a | Calling my friend the PowerSchool user... | 20:59 |
srichter | cool | 21:00 |
tiredbones | srichter, when I run test.py and get back: Total: 0 tests, 0 failures, 0 errors. Does this mean the test ran ok? | 21:00 |
tiredbones | It looks like no test ran. | 21:01 |
th1a | srichter: He's not home, but I left a message. | 21:01 |
srichter | tiredbones: no tests ran; what was your full command? | 21:02 |
tiredbones | python test.py -vpy --dir timeclock | 21:02 |
tiredbones | python test.py -vpu --dir timeclock | 21:02 |
srichter | is that pure Zope 3 or SchoolTool? | 21:03 |
srichter | try -s instead of --dir | 21:03 |
srichter | where is your timeclock directory? | 21:04 |
srichter | can you provide the content of the tests.py file in the timecliock directory? | 21:04 |
tiredbones | timeclock is here - /usr/local/Zope-3.2/zope/src/timeclock | 21:05 |
srichter | ok | 21:05 |
tiredbones | timeclock is here - /usr/local/Zope-3.2/zope3/src/timeclock | 21:05 |
srichter | tests.py content? | 21:05 |
tiredbones | What do you mean by this, tests.py content? | 21:06 |
srichter | well, you have to actually write tests to run any | 21:06 |
srichter | the test runner looks for a tests module or package in your package | 21:06 |
tiredbones | ok, that test is in timeclock. | 21:07 |
tiredbones | does the test have to be a part of the path? | 21:07 |
tiredbones | timeclock is here - /usr/local/Zope-3.2/zope3/src/timeclock/README.txt | 21:07 |
srichter | well, that is the text file but not a test | 21:08 |
tiredbones | Do I have to put the full path in /usr/local/Zope-3.2/zope3/src/timeclock/README.txt | 21:08 |
srichter | look at zope.viewlet/tests.py | 21:09 |
tiredbones | That all the log shows for what I'm trying to do. | 21:09 |
srichter | you do not need custom setUp and tearDown functions yet, but it has the basic test boilerplate | 21:09 |
tiredbones | So, should it run? | 21:10 |
srichter | what do you mean should it run? | 21:10 |
tiredbones | well, if I run "python test.py -vpu -s timeclcok, and get zero for all values can I assume the test ran ok? | 21:12 |
srichter | right, because currently you have only a simple text file | 21:12 |
srichter | you have not told the framework that this file is a test | 21:12 |
srichter | as I said, check out zope.viewlet/tests.py to implement your tests.py file | 21:13 |
tiredbones | thanks for your time. | 21:13 |
th1a | tiredbones: I've found this process to be cryptic as well, so don't feel bad. | 21:13 |
srichter | Zope 3 does everything explicitely | 21:14 |
tiredbones | You know, I actually feel I'm learning this stuff. | 21:15 |
tiredbones | Even thought I ask doob q.. | 21:15 |
srichter | from just looking at a package, the system cannot know whether text files are meant to be tests or not | 21:15 |
srichter | so we have to tell the system | 21:15 |
srichter | the way we tell the system (in this case the test runner test.py) is by placing a special module called "tests" in the package. Once this module is found the test runner knows (through conventions) how to collect the tests | 21:16 |
tiredbones | I think all the read I've been doing on zope 3 tell me how to do something but not the why. This will come later I hope, as I learn more. | 21:18 |
*** jelkner has quit IRC | 21:19 | |
tiredbones | looking good, I got the test to at least fail. | 21:35 |
th1a | tiredbones: The rest is easy. | 21:37 |
tiredbones | th1a, Q. when I run "python test.py -vpu -s timeclock" is test runner executeing my test.py or the system's test.py? | 21:39 |
th1a | I'm not sure what you mean. | 21:40 |
tiredbones | Which then calls my test.py? | 21:40 |
th1a | It is calling test.py in the current directory. | 21:41 |
th1a | What happens after that, I don't know. | 21:41 |
tiredbones | That's what I thought. | 21:44 |
tiredbones | The tests.py then tell zope what I what to test. Yes? | 21:45 |
th1a | That sounds right... | 21:45 |
tiredbones | by the way, how are you feeling/ | 21:46 |
th1a | OK. Tired, but functioning. | 21:47 |
*** carljm has joined #schooltool | 23:56 |
Generated by irclog2html.py 2.15.1 by Marius Gedminas - find it at mg.pov.lt!