IRC log of #schooltool for Sunday, 2007-06-03

*** gpaci has joined #schooltool00:54
*** Aiste has quit IRC01:38
*** didymo has joined #schooltool02:35
*** didymo has quit IRC02:46
*** gpaci has quit IRC04:53
*** Aiste has joined #schooltool07:12
*** Aiste has quit IRC07:37
*** Aiste has joined #schooltool08:25
*** Aiste has quit IRC08:46
*** Bhaskar has joined #schooltool09:17
*** Bhaskar_tec has joined #schooltool09:19
*** Bhaskar_tec has quit IRC09:20
*** Bhaskar_tec has joined #schooltool09:20
Bhaskar_tecth1a, hello09:25
*** Bhaskar_tec has quit IRC09:35
*** Bhaskar_tec has joined #schooltool09:35
*** Bhaskar_tec has joined #schooltool09:37
*** Bhaskar_tec has quit IRC09:37
*** Bhaskar_tec has joined #schooltool09:38
Bhaskar_tecth1a, hello10:01
*** Aiste has joined #schooltool10:03
*** Bhaskar_tec has quit IRC10:41
*** Bhaskar_tec has joined #schooltool10:58
Bhaskar_tec /msg NickServ IDENTIFY <sagarmatha123>10:59
*** Bhaskar_tec has quit IRC11:00
*** Bhaskar_tec has joined #schooltool11:01
*** jfroche has joined #schooltool11:41
*** Bhaskar_tec has quit IRC12:07
*** Bhaskar_tec has joined #schooltool12:09
*** Bhaskar_tec has quit IRC12:17
*** Bhaskar_tec has joined #schooltool12:17
Bhaskar_tec /msg NickServ IDENTIFY <sagarmatha123>12:18
FujitsuBhaskar_tec: You might want to change your password immediately.12:19
*** Aiste has quit IRC12:21
*** Bhaskar_tec has left #schooltool12:22
*** Bhaskar_tec has joined #schooltool12:24
*** Bhaskar_tec has quit IRC12:25
*** Bhaskar_tec has joined #schooltool12:59
*** Bhaskar_tec has quit IRC13:08
*** alga has joined #SchoolTool16:06
*** lisppaste5 has quit IRC17:40
*** lisppaste5 has joined #schooltool17:49
*** jfroche has quit IRC17:53
*** jfroche has joined #schooltool19:01
*** tdoggette has joined #schooltool19:16
*** wdickers has joined #schooltool20:15
tdoggetteCarey's not coming.20:34
wdickersAw, okay20:35
wdickersso are you ready now or should we wait until 2?20:36
tdoggetteLet's get going now, I reckon.20:36
*** gpaci has joined #schooltool20:37
tdoggetteDo you have a lesson plan, or are we winging it?20:38
wdickerswinging it20:38
wdickersFirst of all, where did you put the XML messages you made?20:38
tdoggetteThey're either in my or Carey's home folders, I think.20:39
tdoggetteThe ones we made during the sprint?20:39
wdickersno, the ones you made after the sprint, didn't you say you'd work on other data types?20:40
tdoggetteI don't have any done, though.20:40
wdickersoh, okay. that's fine20:40
wdickersalright, so navigate over to stAgent and we'll get started20:41
tdoggettestagent-dev, you mean?20:43
wdickersyes, and stAgent.py20:43
wdickersfirst, is there anything specifically you don't understand? Do you have a pretty good grasp of the Add/Delete/Change___Personal?20:44
tdoggetteAnd, by extension, the other types.20:45
wdickersOkay. Well right now the only types we are looking at use the same object in SchoolTool, which is why they are similiar20:46
tdoggetteAre others not similar?20:46
tdoggetteAt least in the way that the agent deals with them, that is20:46
wdickersWell 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 interface20:47
tdoggetteWhat do we need to do with them other that add, change, and delete them?20:48
wdickersthat'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 works20:50
tdoggetteThe gradebook as defined by schooltool or by something else?20:50
wdickersschooltool, but there is a standard way to communicate grades via XML, just like with people20:52
wdickersso we will have to write something that takes that standardized XML and input it into schooltool20:52
tdoggetteOkay, but not right now. Let's talk about builtStudentPersonal.20:53
tdoggetteIt applies flattenPerson, right?20:53
wdickersokay. Well first buildEvent puts all those templates together and inserts other templates and data20:54
tdoggetteAnd returns a completes message, right?20:55
wdickersTo make buildEvent work with all types of events, I made a helper function for each data type, for example StudentPersonal20:55
tdoggetteSo buildStuPer makes the student data usable?20:56
wdickerswell buildEvent takes data from schooltool and makes the standardized XML message to be sent to the ZIS20:57
tdoggetteRight, I got that.20:57
tdoggetteWhy does it need buildStudentPersonal?20:57
wdickersSo that when we have more data types we can still use buildEvent and instead call buildGrades or buildStaffPersonal20:58
tdoggetteOkay, good.20:59
wdickersyeah, 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 future21:00
tdoggetteSo, 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
wdickersand yes, buildEvent returns the message as a string which then get passed to chesty's sendClientMessage()21:02
wdickersThat's it21:02
tdoggetteOh, okay, then.21:02
tdoggetteWe just need to make it able to deal with everything.21:02
wdickersWe 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
wdickerschesty automatically calls functions by combining the action with the data type. 'Add' and 'StudentPersonal' makes AddStudentPersonal get called21:03
tdoggetteWhy do we need flattenPerson at all? Why are we prettyprinting the XML?21:03
wdickerswhere are you looking at21:04
wdickersfor the prettyprinting21:04
tdoggettebuildStudentPersonal, I suppose.21:04
tdoggetteWhy do we need to expand and flatten at all21:04
tdoggetteit what I'm asking21:05
wdickersoh, 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
wdickersinflatePerson() does just the opposite, it takes a dictionary with XML tags as keys and creates a person object to be added to schooltool21:07
wdickersBasically they are what translates schooltool person objects to a XML-convertible type21:08
tdoggetteSo when we get a message, it's XML?21:08
tdoggetteAnd then we flatten it to do things with it21:08
tdoggetteand inflate it to send it off?21:08
wdickersyou mean an incoming message? Yes. However by the time AddStudentPersonal is called, the message is an etree object21:09
tdoggetteDo a timeline: We get an XML message, then what happens?21:09
wdickersno, we get an XML message, use the data to inflate a person object, and add that object to schooltool. There is no sending off21:09
tdoggetteBut we need an outgoing message to be in XML, right?21:10
wdickersThe 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 off21:10
tdoggetteOkay then.21:10
wdickersyes, but those are two different scenarios, an incoming message and an event that needs to create an outgoing message21:11
tdoggetteOkay then.21:11
tdoggetteWhat about when we get a message from schooltool?21:12
tdoggetteThat's an etree?21:12
wdickersyou mean when a person object is changed/added/deleted?21:12
wdickerswell that's what I'm working on actually.21:14
wdickersBasically, 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
wdickersThe problem is how that queue will be added to21:16
tdoggetteWhat will it be in an ideal future?21:16
wdickersBasically, 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
tdoggetteOkay, then.21:18
wdickersPaul 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 queue21:20
tdoggetteOkay, good.21:21
tdoggetteI get it.21:22
tdoggetteWell, what else is there that we can go over right now?21:23
wdickersHmm, let me think. Do you think you could work on a template of other data types?21:24
tdoggetteThe text files we talked about after the sprint, or something different?21:25
wdickersthe tex files21:26
tdoggetteYeah, absolutely.21:27
wdickersdon'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 helpful21:27
wdickersare you free anytime this week?21:28
tdoggetteWednesday or Thursday.21:29
wdickerswhat time is best?21:29
tdoggetteRight after school would work.21:30
wdickersokay, so wednesday?21:30
tdoggetteSame place?21:31
wdickershmm, no. I think a Gobby session will be better for this21:31
tdoggetteWell, email me and Carey with the info.21:33
tdoggetteSorry, wrong window.21:33
tdoggetteI'm installing gobby.21:33
*** wdickers has quit IRC21:39
*** Fujitsu has quit IRC21:39
*** gpaci has quit IRC21:39
*** gpaci has joined #schooltool21:41
*** Fujitsu has joined #schooltool21:41
*** wdickers has joined #schooltool21:41
*** tdoggette has quit IRC21:41
*** wdickers has quit IRC21:43
*** Fujitsu_ has joined #schooltool21:44
*** Fujitsu has quit IRC21:46
*** lameiro has joined #schooltool22:58
*** gpaci has quit IRC23:23
*** gpaci has joined #schooltool23:24

Generated by 2.15.1 by Marius Gedminas - find it at!