*** gpaci has joined #schooltool | 00:54 | |
*** Aiste has quit IRC | 01:38 | |
*** didymo has joined #schooltool | 02:35 | |
*** didymo has quit IRC | 02:46 | |
*** gpaci has quit IRC | 04:53 | |
*** Aiste has joined #schooltool | 07:12 | |
*** Aiste has quit IRC | 07:37 | |
*** Aiste has joined #schooltool | 08:25 | |
*** Aiste has quit IRC | 08:46 | |
*** Bhaskar has joined #schooltool | 09:17 | |
*** Bhaskar_tec has joined #schooltool | 09:19 | |
*** Bhaskar_tec has quit IRC | 09:20 | |
*** Bhaskar_tec has joined #schooltool | 09:20 | |
Bhaskar_tec | th1a, hello | 09:25 |
---|---|---|
*** Bhaskar_tec has quit IRC | 09:35 | |
*** Bhaskar_tec has joined #schooltool | 09:35 | |
*** Bhaskar_tec has joined #schooltool | 09:37 | |
*** Bhaskar_tec has quit IRC | 09:37 | |
*** Bhaskar_tec has joined #schooltool | 09:38 | |
Bhaskar_tec | th1a, hello | 10:01 |
*** Aiste has joined #schooltool | 10:03 | |
*** Bhaskar_tec has quit IRC | 10:41 | |
*** Bhaskar_tec has joined #schooltool | 10:58 | |
Bhaskar_tec | /msg NickServ IDENTIFY <sagarmatha123> | 10:59 |
*** Bhaskar_tec has quit IRC | 11:00 | |
*** Bhaskar_tec has joined #schooltool | 11:01 | |
*** jfroche has joined #schooltool | 11:41 | |
*** Bhaskar_tec has quit IRC | 12:07 | |
*** Bhaskar_tec has joined #schooltool | 12:09 | |
*** Bhaskar_tec has quit IRC | 12:17 | |
*** Bhaskar_tec has joined #schooltool | 12:17 | |
Bhaskar_tec | /msg NickServ IDENTIFY <sagarmatha123> | 12:18 |
Fujitsu | Bhaskar_tec: You might want to change your password immediately. | 12:19 |
Bhaskar_tec | ya | 12:19 |
*** Aiste has quit IRC | 12:21 | |
*** Bhaskar_tec has left #schooltool | 12:22 | |
*** Bhaskar_tec has joined #schooltool | 12:24 | |
*** Bhaskar_tec has quit IRC | 12:25 | |
*** Bhaskar_tec has joined #schooltool | 12:59 | |
*** Bhaskar_tec has quit IRC | 13:08 | |
*** alga has joined #SchoolTool | 16:06 | |
*** lisppaste5 has quit IRC | 17:40 | |
*** lisppaste5 has joined #schooltool | 17:49 | |
*** jfroche has quit IRC | 17:53 | |
*** jfroche has joined #schooltool | 19:01 | |
*** tdoggette has joined #schooltool | 19:16 | |
*** wdickers has joined #schooltool | 20:15 | |
tdoggette | Hey. | 20:24 |
wdickers | hey | 20:34 |
tdoggette | Carey's not coming. | 20:34 |
wdickers | Aw, okay | 20:35 |
wdickers | so are you ready now or should we wait until 2? | 20:36 |
tdoggette | Let's get going now, I reckon. | 20:36 |
*** gpaci has joined #schooltool | 20:37 | |
tdoggette | Do you have a lesson plan, or are we winging it? | 20:38 |
wdickers | winging it | 20:38 |
tdoggette | Keen. | 20:38 |
wdickers | First of all, where did you put the XML messages you made? | 20:38 |
tdoggette | They're either in my or Carey's home folders, I think. | 20:39 |
tdoggette | The ones we made during the sprint? | 20:39 |
wdickers | no, the ones you made after the sprint, didn't you say you'd work on other data types? | 20:40 |
tdoggette | I don't have any done, though. | 20:40 |
wdickers | oh, okay. that's fine | 20:40 |
wdickers | alright, so navigate over to stAgent and we'll get started | 20:41 |
tdoggette | stagent-dev, you mean? | 20:43 |
wdickers | yes, and stAgent.py | 20:43 |
tdoggette | Okay. | 20:44 |
wdickers | first, is there anything specifically you don't understand? Do you have a pretty good grasp of the Add/Delete/Change___Personal? | 20:44 |
tdoggette | Yup. | 20:45 |
tdoggette | And, by extension, the other types. | 20:45 |
wdickers | Okay. Well right now the only types we are looking at use the same object in SchoolTool, which is why they are similiar | 20:46 |
tdoggette | Are others not similar? | 20:46 |
tdoggette | At least in the way that the agent deals with them, that is | 20:46 |
wdickers | Well they still decode the XML data, but changing them from and to schooltool will be different. When we come to that we have to look at how SchoolTool uses that data and customize an interface | 20:47 |
tdoggette | What do we need to do with them other that add, change, and delete them? | 20:48 |
tdoggette | *than | 20:48 |
wdickers | that's it. Think of grades, a message might tell us to give Timmy a 85/100 for his math quiz, so we would have to input that into the gradebook. Right now I don't know how the gradebook works | 20:50 |
tdoggette | The gradebook as defined by schooltool or by something else? | 20:50 |
wdickers | schooltool, but there is a standard way to communicate grades via XML, just like with people | 20:52 |
wdickers | so we will have to write something that takes that standardized XML and input it into schooltool | 20:52 |
tdoggette | Okay, but not right now. Let's talk about builtStudentPersonal. | 20:53 |
tdoggette | It applies flattenPerson, right? | 20:53 |
wdickers | okay. Well first buildEvent puts all those templates together and inserts other templates and data | 20:54 |
tdoggette | okay. | 20:54 |
tdoggette | And returns a completes message, right? | 20:55 |
wdickers | To make buildEvent work with all types of events, I made a helper function for each data type, for example StudentPersonal | 20:55 |
wdickers | yes | 20:55 |
tdoggette | So buildStuPer makes the student data usable? | 20:56 |
wdickers | well buildEvent takes data from schooltool and makes the standardized XML message to be sent to the ZIS | 20:57 |
tdoggette | Right, I got that. | 20:57 |
tdoggette | Why does it need buildStudentPersonal? | 20:57 |
wdickers | So that when we have more data types we can still use buildEvent and instead call buildGrades or buildStaffPersonal | 20:58 |
tdoggette | Okay, good. | 20:59 |
wdickers | yeah, I'm trying to think ahead for when we have more data types by making the code more flexible. A lot of it seems redundant now, but should be useful in the future | 21:00 |
tdoggette | Right. | 21:01 |
tdoggette | So, we've got a couple dozen data types to add, right? What needs to be done other than add functions for dealing with them? | 21:01 |
wdickers | and yes, buildEvent returns the message as a string which then get passed to chesty's sendClientMessage() | 21:02 |
wdickers | That's it | 21:02 |
tdoggette | Oh, okay, then. | 21:02 |
tdoggette | We just need to make it able to deal with everything. | 21:02 |
wdickers | We have to make two types of functions, one to create an XML message (buildXXXX) and several to handle incoming messages (Add/Delete/ChangeXXXX) | 21:02 |
wdickers | yes | 21:02 |
wdickers | chesty automatically calls functions by combining the action with the data type. 'Add' and 'StudentPersonal' makes AddStudentPersonal get called | 21:03 |
tdoggette | Keen. | 21:03 |
tdoggette | Why do we need flattenPerson at all? Why are we prettyprinting the XML? | 21:03 |
wdickers | where are you looking at | 21:04 |
wdickers | ? | 21:04 |
wdickers | for the prettyprinting | 21:04 |
tdoggette | buildStudentPersonal, I suppose. | 21:04 |
tdoggette | Why do we need to expand and flatten at all | 21:04 |
tdoggette | it what I'm asking | 21:05 |
wdickers | oh, okay. Well flattenPerson() is a function I wrote that takes a schooltool object and makes a dictionary out of its attributes. This way the XML can be written much more easily. Instead of calling person.NameInfo.first_name, it can just use the tag as a keyword info['FirstName'] (the tag in this case would be <FirstName></FirstName>) | 21:06 |
wdickers | inflatePerson() does just the opposite, it takes a dictionary with XML tags as keys and creates a person object to be added to schooltool | 21:07 |
wdickers | Basically they are what translates schooltool person objects to a XML-convertible type | 21:08 |
tdoggette | So when we get a message, it's XML? | 21:08 |
tdoggette | And then we flatten it to do things with it | 21:08 |
tdoggette | and inflate it to send it off? | 21:08 |
wdickers | you mean an incoming message? Yes. However by the time AddStudentPersonal is called, the message is an etree object | 21:09 |
tdoggette | Do a timeline: We get an XML message, then what happens? | 21:09 |
wdickers | no, we get an XML message, use the data to inflate a person object, and add that object to schooltool. There is no sending off | 21:09 |
tdoggette | But we need an outgoing message to be in XML, right? | 21:10 |
wdickers | The other scenario is that a person in schooltool is changed/deleted/added, then we use flattenPerson() and parse that into an XML message to send off | 21:10 |
tdoggette | Okay then. | 21:10 |
wdickers | yes, but those are two different scenarios, an incoming message and an event that needs to create an outgoing message | 21:11 |
tdoggette | Okay then. | 21:11 |
tdoggette | What about when we get a message from schooltool? | 21:12 |
tdoggette | That's an etree? | 21:12 |
wdickers | you mean when a person object is changed/added/deleted? | 21:12 |
tdoggette | right. | 21:12 |
wdickers | well that's what I'm working on actually. | 21:14 |
tdoggette | Gee. | 21:14 |
wdickers | Basically, every so often the agent will poll its queue, which right now is just a dictionary of usernames to actions (ie {'wdickers': 'Add', 'tdoggette': 'Delete'}) | 21:15 |
wdickers | The problem is how that queue will be added to | 21:16 |
tdoggette | What will it be in an ideal future? | 21:16 |
wdickers | Basically, it has to include the action and where to find the object. Since we are only using people, the username is enough for now. | 21:16 |
tdoggette | Okay, then. | 21:18 |
wdickers | Paul Carduner has told me how to add to the queue. Basically the package that's going to be installed in schooltool will be subscribed to IObjectModifiedEvent. This means that my handler function willl be called whenever an object is changed/added/deleted. Then I can test for what kind of object and add it to the queue | 21:20 |
tdoggette | Okay, good. | 21:21 |
tdoggette | I get it. | 21:22 |
tdoggette | Well, what else is there that we can go over right now? | 21:23 |
wdickers | Hmm, let me think. Do you think you could work on a template of other data types? | 21:24 |
tdoggette | The text files we talked about after the sprint, or something different? | 21:25 |
wdickers | the tex files | 21:26 |
wdickers | *text | 21:26 |
tdoggette | Yeah, absolutely. | 21:27 |
wdickers | don't forget to bzr up, and look over the code for things you don't understand. Maybe we could have a python learning session sometime? I think it'd be helpful | 21:27 |
tdoggette | Okay. | 21:28 |
wdickers | are you free anytime this week? | 21:28 |
tdoggette | Wednesday or Thursday. | 21:29 |
wdickers | what time is best? | 21:29 |
tdoggette | Right after school would work. | 21:30 |
wdickers | okay, so wednesday? | 21:30 |
tdoggette | Sure. | 21:31 |
tdoggette | Same place? | 21:31 |
wdickers | hmm, no. I think a Gobby session will be better for this | 21:31 |
wdickers | *that | 21:32 |
tdoggette | Well, email me and Carey with the info. | 21:33 |
tdoggette | y | 21:33 |
tdoggette | Sorry, wrong window. | 21:33 |
tdoggette | I'm installing gobby. | 21:33 |
*** wdickers has quit IRC | 21:39 | |
*** Fujitsu has quit IRC | 21:39 | |
*** gpaci has quit IRC | 21:39 | |
*** gpaci has joined #schooltool | 21:41 | |
*** Fujitsu has joined #schooltool | 21:41 | |
*** wdickers has joined #schooltool | 21:41 | |
*** tdoggette has quit IRC | 21:41 | |
*** wdickers has quit IRC | 21:43 | |
*** Fujitsu_ has joined #schooltool | 21:44 | |
*** Fujitsu has quit IRC | 21:46 | |
*** lameiro has joined #schooltool | 22:58 | |
*** gpaci has quit IRC | 23:23 | |
*** gpaci has joined #schooltool | 23:24 |
Generated by irclog2html.py 2.15.1 by Marius Gedminas - find it at mg.pov.lt!