*** povbot has quit IRC | 00:04 | |
*** aelkner has joined #schooltool | 00:34 | |
*** ignas has joined #schooltool | 02:03 | |
*** srichter has joined #schooltool | 03:21 | |
*** wrobel has quit IRC | 03:23 | |
*** didymo has quit IRC | 03:38 | |
*** ignas has quit IRC | 04:29 | |
*** th1a has joined #schooltool | 06:41 | |
*** didymo has joined #schooltool | 07:41 | |
*** Aiste has joined #schooltool | 09:00 | |
*** srichter has quit IRC | 09:26 | |
*** srichter has joined #schooltool | 10:06 | |
*** jfroche has joined #schooltool | 12:09 | |
*** mgedmin has joined #schooltool | 13:01 | |
*** thisfred has joined #schooltool | 13:58 | |
*** ignas has joined #schooltool | 14:09 | |
*** alga has joined #SchoolTool | 14:18 | |
*** jfroche has quit IRC | 14:22 | |
*** thisfred has quit IRC | 15:38 | |
*** alga has quit IRC | 16:27 | |
*** alga has joined #SchoolTool | 16:27 | |
ignas | th1a: ayt? | 16:38 |
---|---|---|
*** Lumiere has joined #schooltool | 17:22 | |
*** th1a has quit IRC | 17:39 | |
*** th1a has joined #schooltool | 17:47 | |
th1a | I'm here now. | 17:47 |
Lumiere | hi th1a | 17:48 |
th1a | hi Lumiere | 17:48 |
ignas | th1a: hi | 17:53 |
th1a | What's up? | 17:53 |
*** aelkner has joined #schooltool | 17:53 | |
aelkner | th1a: ayt? | 17:54 |
th1a | hi aelkner. | 17:54 |
aelkner | Will should be joining soon. I'd like to continue our discussion from yesterday. | 17:55 |
th1a | Yes. | 17:55 |
ignas | th1a: got any information about PyCon? I think i'll need an invitation to get a visa, etc. | 17:55 |
th1a | ignas: OK. Should I send you an invitation? | 17:57 |
th1a | aelkner: I changed the name of the agent package. | 17:58 |
th1a | Because it isn't really a library. | 17:58 |
th1a | It is now "chesty" for General "Chesty" Puller. | 17:58 |
th1a | Since it is a pull agent. | 17:58 |
aelkner | Never heard of him. | 17:59 |
th1a | http://en.wikipedia.org/wiki/Chesty_Puller | 17:59 |
*** wdickers has joined #schooltool | 17:59 | |
ignas | th1a: i think so, it's my first time getting a visa ... | 17:59 |
aelkner | hey Will | 18:00 |
*** alga_ has joined #SchoolTool | 18:00 | |
th1a | OK. I'll send you an invite tonight. | 18:00 |
wdickers | hello | 18:01 |
th1a | hi wdickers | 18:01 |
aelkner | So Will, I thought we'd continue or discussion from yesterday. | 18:01 |
aelkner | Tom, where were we? | 18:02 |
th1a | aelkner & wdickers: Did you get ignas's email about ZEO? | 18:02 |
aelkner | I did. It should definitely help. | 18:02 |
th1a | Do you want to try that now? | 18:02 |
th1a | Or should we talk more about the programming? | 18:02 |
wdickers | I think we should talk a little more about the programming | 18:03 |
aelkner | Me, too. | 18:03 |
th1a | OK. | 18:03 |
th1a | So, "chesty" (which is the name of the generic agent as of yesterday), doesn't persist anything. | 18:04 |
th1a | Nor does it have any user interface. | 18:04 |
th1a | So your subclass can (if you want) write to a SchoolTool database and SchoolTool can provide a UI for its status. | 18:04 |
aelkner | I just did the svn up. | 18:04 |
wdickers | Have you changed the svn? 'svn up' doesn't seem to work | 18:04 |
aelkner | Maybe there was a timing issue of us both doing it at the same time. | 18:05 |
th1a | wdickers: Oh yes. You need to check out again ending with "chesty" instead of "pyagentlib" | 18:05 |
wdickers | okay | 18:05 |
th1a | I need to update the wiki. | 18:06 |
wdickers | got it | 18:06 |
th1a | Sorry to introduce additional confusion... | 18:06 |
aelkner | Will, I don't see the checkout yet. OR dd you put it somewhere else than my homedir? | 18:07 |
wdickers | oh, sorry, it is in my home directory | 18:09 |
wdickers | svn co https://svn1.hosted-projects.com/sif/pyagentlib/trunk/chesty | 18:09 |
wdickers | So let me just get the basic ideas straight. For every message that is recieved, it is made into a Response object, and for every message that is to be sent there is a Request object? | 18:10 |
th1a | Yes, but you don't have to worry about that, really. | 18:11 |
wdickers | How so? It seems rather efficient to me | 18:11 |
aelkner | Worry is not the word. We just want to understad the code. | 18:11 |
th1a | OK... moving on... | 18:11 |
th1a | Next question? | 18:12 |
wdickers | Do you still use messageTools.py? | 18:13 |
aelkner | So, chesty runs as an app, right? | 18:13 |
th1a | aelkner: chesty will need a startup script, but yes. | 18:13 |
th1a | wdickers: Not at the moment. | 18:13 |
aelkner | So it needs a startp script wth the conf file as an arg. | 18:14 |
th1a | aelkner: pretty much. | 18:14 |
aelkner | Did you code the post routine yet? | 18:14 |
th1a | No, I'm going to do all the message handling first. | 18:14 |
aelkner | I was thinking about dependencies. | 18:15 |
th1a | That part is easy. | 18:15 |
aelkner | If we are to start the agent, we will need to have started tinyzis first. | 18:15 |
th1a | We can use httplib from the standard library. | 18:15 |
th1a | If we want to talk to tinyzis, yes. | 18:15 |
aelkner | That's the dependency i meant. | 18:15 |
th1a | It isn't really a dependency of the application. You could talk to a different ZIS. | 18:16 |
aelkner | The agent conf file will have tinyzis connection info in it, right? | 18:16 |
th1a | It will have the ZIS connection info. | 18:16 |
th1a | Remember the whole idea is that this stuff is interoperable ;-) so they don't just have to talk to each other. | 18:17 |
aelkner | So the admin needs to worry about starting the ZIS before the agent, not us. | 18:17 |
wdickers | So right now the agents break if a ZIS is not active? | 18:18 |
aelkner | well, the agent doesn't even try yet. | 18:18 |
aelkner | Tom plans to code the post rouinte to use httplib. | 18:18 |
th1a | You have to have a ZIS for SIF to work. | 18:18 |
aelkner | If the ZIS is down, then the agent will lock up. | 18:18 |
th1a | That's why I wrote the ZIS first. | 18:19 |
aelkner | MAkes sense. | 18:19 |
th1a | The agent will wait for a response and get none and timeout. | 18:19 |
aelkner | And try again? | 18:19 |
th1a | Well, the assumption is at this point it is started by a cron job, so I'd say wait for the next attempt. | 18:20 |
th1a | Or it could try again. | 18:20 |
th1a | It is an implementation detail. | 18:20 |
aelkner | ZIS could be temporarily down, so we would want to configure retry. | 18:20 |
th1a | I figure generally the script will be run every 5 to 15 minutes. | 18:20 |
aelkner | I'm confused. | 18:21 |
aelkner | The script starts the agent which stays active, no? | 18:21 |
ignas | th1a: will you use twisted for the agent ? or try to write up something of your own? | 18:21 |
aelkner | httplib should suffice. | 18:21 |
th1a | ignas: Right now, it is just a single thread of httplib requests. | 18:21 |
ignas | i see | 18:22 |
ignas | so just a connection to ZODB and an url to the server | 18:22 |
th1a | Most of the time it will be started with a cron job, send out a "SIF_GetMessage" request to the ZIS, | 18:22 |
th1a | and process messages from its queue one at a time. | 18:22 |
th1a | And then check in the client application's database for messages in that queue and process them one at a time. | 18:23 |
wdickers | wouldn't SIF_Register come before? | 18:23 |
th1a | Yes. | 18:23 |
th1a | But in theory that's only done once. | 18:23 |
wdickers | Must it re-register after a disconnect? | 18:23 |
th1a | No. | 18:23 |
th1a | The ZIS keeps a database of the agents in the zone, what the publish, what they subscribe to. | 18:24 |
th1a | What their permissions are. | 18:24 |
aelkner | So when wither crash, they just pick up where they left off. | 18:25 |
*** alga has quit IRC | 18:25 | |
th1a | The ZIS is keeping queues of messages for every agent. | 18:25 |
th1a | That's most of its job. | 18:25 |
aelkner | So Will, do you see the correspondence between the agent's post() method and the ZIS's processPost that we looked at during the sprint? | 18:27 |
wdickers | Yes | 18:27 |
aelkner | So the ZIS keeps it's state in the | 18:28 |
aelkner | ZODB so that if it crashes, it picks up where it left off. | 18:28 |
wdickers | Does it cause any complications if an agent and its ZIS happen to use the same ZODB? | 18:28 |
aelkner | If the agent crashes, it just reestablishes the conection to the ZIS. | 18:29 |
wdickers | I mean if they are on the same machine | 18:29 |
aelkner | They won't | 18:29 |
aelkner | Different directories. | 18:29 |
th1a | An agent and a ZIS wouldn't use the same ZODB. | 18:29 |
wdickers | okay | 18:29 |
th1a | The agent shares a DB with its client (i.e., SchoolTool). | 18:30 |
aelkner | The agent, in schooltool's case would use schooltool's ZODB, right? | 18:30 |
th1a | Yes. | 18:30 |
aelkner | So when the agent comes up, it checks there. | 18:30 |
th1a | Yes. | 18:30 |
aelkner | Would that be right off the root? | 18:31 |
th1a | You mean, is the queue right off the ZODB root? | 18:32 |
aelkner | I think it would help if you gave us an idea of where it goes in schooltool's ZODB and what is found there. | 18:32 |
th1a | It might as well be in the root of the SchoolTool application. | 18:32 |
aelkner | I thought so. | 18:32 |
aelkner | A folder called 'chesty'. | 18:33 |
th1a | Sure. | 18:33 |
aelkner | In there we find one list or more structure than tat? | 18:33 |
th1a | So creating that object is the first step. | 18:33 |
th1a | It has a few attributes. | 18:33 |
th1a | registered | 18:33 |
th1a | subscribed | 18:34 |
th1a | provides | 18:34 |
aelkner | Lists? | 18:34 |
th1a | subscribed and provides are lists. | 18:34 |
th1a | registered is bool | 18:34 |
aelkner | right. | 18:34 |
aelkner | So if schooltool hasn't created the folder yet, the agent will? | 18:34 |
wdickers | What about a list of queued messages? | 18:34 |
th1a | awake = bool | 18:35 |
th1a | wdickers: and you need a list of those. | 18:35 |
aelkner | who's awake? | 18:35 |
aelkner | the agent or schooltool? | 18:35 |
th1a | Technically you can put an agent to sleep, but that's irrelevant. | 18:35 |
th1a | It doesn't really mean anything to a pull agent. | 18:35 |
th1a | But it is just a bool, so what the heck. | 18:36 |
th1a | But you're right, you might be able to track whether or not the ZIS is awake. I don't remember if ZIS's can go to sleep. | 18:36 |
th1a | I don't think so, but I'm not sure. | 18:36 |
aelkner | I wouldn't think schooltool would care about the ZIS as that it the agent's job. | 18:37 |
aelkner | I meant the agent. | 18:37 |
th1a | It isn't important regardless. | 18:37 |
aelkner | So if schooltool is running as an HTTP server, how does it monitor the ZODB for chesty if noone hits on it? | 18:38 |
wdickers | why does schooltool have to monitor it for chesty? | 18:39 |
th1a | chesty is woken by a cron job and checks the ZODB. | 18:39 |
aelkner | chesty will update its folder with new messages, right? | 18:39 |
aelkner | schooltool may need to react by adding a new student to the db. | 18:40 |
aelkner | For instance. | 18:40 |
th1a | Well, it *could* work that way. | 18:40 |
aelkner | How else had you envisioned it? | 18:41 |
wdickers | well I'm afraid I'm out of time again. I'll check the #schooltool logs later : ) | 18:41 |
th1a | If a messages comes from the ZIS to add a student, then chesty could just add it itself. | 18:41 |
*** wdickers has quit IRC | 18:41 | |
th1a | Bypassing SchoolTool's application logic. | 18:41 |
aelkner | Oh really. | 18:41 |
aelkner | That would answer my question. | 18:41 |
aelkner | That's nteresting. | 18:42 |
th1a | Otherwise we wouldn't need to share the main ZODB. | 18:42 |
th1a | They could just leave notes in text files. | 18:42 |
th1a | Or whatever. | 18:42 |
aelkner | So schooltool doesn't even know about the agents. IT just has its ZODB. | 18:42 |
th1a | That seems like the simplest way to do it. | 18:42 |
aelkner | Schooltool could provide a web page to view the state, but that's easy. | 18:43 |
th1a | And it has this chesty object that it displays information about. | 18:43 |
th1a | Yes. | 18:43 |
th1a | It is easy and a good place to start. | 18:44 |
aelkner | I agree. | 18:44 |
aelkner | You wouldn't be able to tell from chatting, but I'm just barely holding myself up with the Flu. | 18:45 |
aelkner | I'm at Jeff's, but I need to get home to Philly and recover. | 18:45 |
aelkner | I'll make sure to be available when Will comes in tomorrow. | 18:45 |
th1a | OK. | 18:45 |
aelkner | It's good that we both are leaning this stuff, even if we aren't coding anyting yet. | 18:46 |
th1a | I should be able to write a fair amount of code today. | 18:46 |
aelkner | The post()? | 18:46 |
aelkner | When I have the energy, I could do things like that. | 18:47 |
aelkner | But that might not be untl the weekend. | 18:47 |
aelkner | Anyway, got to go. | 18:48 |
aelkner | Talk to you tomorrow. | 18:48 |
*** aelkner has quit IRC | 18:48 | |
*** srichter has quit IRC | 19:26 | |
*** alga_ has quit IRC | 19:59 | |
*** ignas has quit IRC | 21:27 | |
*** mgedmin has quit IRC | 21:50 | |
*** ignas has joined #schooltool | 22:16 | |
*** lisppaste5 has quit IRC | 22:47 | |
*** lisppaste5 has joined #schooltool | 22:51 | |
*** vidasp has quit IRC | 23:06 | |
*** Lumiere has left #schooltool | 23:10 | |
*** vidasp has joined #schooltool | 23:20 |
Generated by irclog2html.py 2.15.1 by Marius Gedminas - find it at mg.pov.lt!