IRC log of #schooltool for Thursday, 2006-12-07

*** povbot has quit IRC00:04
*** aelkner has joined #schooltool00:34
*** ignas has joined #schooltool02:03
*** srichter has joined #schooltool03:21
*** wrobel has quit IRC03:23
*** didymo has quit IRC03:38
*** ignas has quit IRC04:29
*** th1a has joined #schooltool06:41
*** didymo has joined #schooltool07:41
*** Aiste has joined #schooltool09:00
*** srichter has quit IRC09:26
*** srichter has joined #schooltool10:06
*** jfroche has joined #schooltool12:09
*** mgedmin has joined #schooltool13:01
*** thisfred has joined #schooltool13:58
*** ignas has joined #schooltool14:09
*** alga has joined #SchoolTool14:18
*** jfroche has quit IRC14:22
*** thisfred has quit IRC15:38
*** alga has quit IRC16:27
*** alga has joined #SchoolTool16:27
ignasth1a: ayt?16:38
*** Lumiere has joined #schooltool17:22
*** th1a has quit IRC17:39
*** th1a has joined #schooltool17:47
th1aI'm here now.17:47
Lumierehi th1a17:48
th1ahi Lumiere17:48
ignasth1a: hi17:53
th1aWhat's up?17:53
*** aelkner has joined #schooltool17:53
aelknerth1a: ayt?17:54
th1ahi aelkner.17:54
aelknerWill should be joining soon.  I'd like to continue our discussion from yesterday.17:55
th1aYes.17:55
ignasth1a: got any information about PyCon? I think i'll need an invitation to get a visa, etc.17:55
th1aignas:  OK.  Should I send you an invitation?17:57
th1aaelkner: I changed the name of the agent package.17:58
th1aBecause it isn't really a library.17:58
th1aIt is now "chesty" for General "Chesty" Puller.17:58
th1aSince it is a pull agent.17:58
aelknerNever heard of him.17:59
th1ahttp://en.wikipedia.org/wiki/Chesty_Puller17:59
*** wdickers has joined #schooltool17:59
ignasth1a: i think so, it's my first time getting a visa ...17:59
aelknerhey Will18:00
*** alga_ has joined #SchoolTool18:00
th1aOK.  I'll send you an invite tonight.18:00
wdickershello18:01
th1ahi wdickers18:01
aelknerSo Will, I thought we'd continue or discussion from yesterday.18:01
aelknerTom, where were we?18:02
th1aaelkner & wdickers:  Did you get ignas's email about ZEO?18:02
aelknerI did.  It should definitely help.18:02
th1aDo you want to try that now?18:02
th1aOr should we talk more about the programming?18:02
wdickersI think we should talk a little more about the programming18:03
aelknerMe, too.18:03
th1aOK.18:03
th1aSo, "chesty" (which is the name of the generic agent as of yesterday), doesn't persist anything.18:04
th1aNor does it have any user interface.18:04
th1aSo your subclass can (if you want) write to a SchoolTool database and SchoolTool can provide a UI for its status.18:04
aelknerI just did the svn up.18:04
wdickersHave you changed the svn? 'svn up' doesn't seem to work18:04
aelknerMaybe there was a timing issue of us both doing it at the same time.18:05
th1awdickers: Oh yes.  You need to check out again ending with "chesty" instead of "pyagentlib"18:05
wdickersokay18:05
th1aI need to update the wiki.18:06
wdickersgot it18:06
th1aSorry to introduce additional confusion...18:06
aelknerWill, I don't see the checkout yet.  OR dd you put it somewhere else than my homedir?18:07
wdickersoh, sorry, it is in my home directory18:09
wdickerssvn co https://svn1.hosted-projects.com/sif/pyagentlib/trunk/chesty18:09
wdickersSo 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
th1aYes, but you don't have to worry about that, really.18:11
wdickersHow so? It seems rather efficient to me18:11
aelknerWorry is not the word.  We just want to understad the code.18:11
th1aOK... moving on...18:11
th1aNext question?18:12
wdickersDo you still use messageTools.py?18:13
aelknerSo, chesty runs as an app, right?18:13
th1aaelkner: chesty will need a startup script, but yes.18:13
th1awdickers: Not at the moment.18:13
aelknerSo it needs a startp script wth the conf file as an arg.18:14
th1aaelkner: pretty much.18:14
aelknerDid you code the post routine yet?18:14
th1aNo, I'm going to do all the message handling first.18:14
aelknerI was thinking about dependencies.18:15
th1aThat part is easy.18:15
aelknerIf we are to start the agent, we will need to have started tinyzis first.18:15
th1aWe can use httplib from the standard library.18:15
th1aIf we want to talk to tinyzis, yes.18:15
aelknerThat's the dependency i meant.18:15
th1aIt isn't really a dependency of the application.  You could talk to a different ZIS.18:16
aelknerThe agent conf file will have tinyzis connection info in it, right?18:16
th1aIt will have the ZIS connection info.18:16
th1aRemember the whole idea is that this stuff is interoperable ;-) so they don't just have to talk to each other.18:17
aelknerSo the admin needs to worry about starting the ZIS before the agent, not us.18:17
wdickersSo right now the agents break if a ZIS is not active?18:18
aelknerwell, the agent doesn't even try yet.18:18
aelknerTom plans to code the post rouinte to use httplib.18:18
th1aYou have to have a ZIS for SIF to work.18:18
aelknerIf the ZIS is down, then the agent will lock up.18:18
th1aThat's why I wrote the ZIS first.18:19
aelknerMAkes sense.18:19
th1aThe agent will wait for a response and get none and timeout.18:19
aelknerAnd try again?18:19
th1aWell, the assumption is at this point it is started by a cron job, so I'd say wait for the next attempt.18:20
th1aOr it could try again.18:20
th1aIt is an implementation detail.18:20
aelknerZIS could be temporarily down, so we would want to configure retry.18:20
th1aI figure generally the script will be run every 5 to 15 minutes.18:20
aelknerI'm confused.18:21
aelknerThe script starts the agent which stays active, no?18:21
ignasth1a: will you use twisted for the agent ? or try to write up something of your own?18:21
aelknerhttplib should suffice.18:21
th1aignas:  Right now, it is just a single thread of httplib requests.18:21
ignasi see18:22
ignasso just a connection to ZODB and an url to the server18:22
th1aMost of the time it will be started with a cron job, send out a "SIF_GetMessage" request to the ZIS,18:22
th1aand process messages from its queue one at a time.18:22
th1aAnd then check in the client application's database for messages in that queue and process them one at a time.18:23
wdickerswouldn't SIF_Register come before?18:23
th1aYes.18:23
th1aBut in theory that's only done once.18:23
wdickersMust it re-register after a disconnect?18:23
th1aNo.18:23
th1aThe ZIS keeps a database of the agents in the zone, what the publish, what they subscribe to.18:24
th1aWhat their permissions are.18:24
aelknerSo when wither crash, they just pick up where they left off.18:25
*** alga has quit IRC18:25
th1aThe ZIS is keeping queues of messages for every agent.18:25
th1aThat's most of its job.18:25
aelknerSo 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
wdickersYes18:27
aelknerSo the ZIS keeps it's state in the18:28
aelknerZODB so that if it crashes, it picks up where it left off.18:28
wdickersDoes it cause any complications if an agent and its ZIS happen to use the same ZODB?18:28
aelknerIf the agent crashes, it just reestablishes the conection to the ZIS.18:29
wdickersI mean if they are on the same machine18:29
aelknerThey won't18:29
aelknerDifferent directories.18:29
th1aAn agent and a ZIS wouldn't use the same ZODB.18:29
wdickersokay18:29
th1aThe agent shares a DB with its client (i.e., SchoolTool).18:30
aelknerThe agent, in schooltool's case would use schooltool's ZODB, right?18:30
th1aYes.18:30
aelknerSo when the agent comes up, it checks there.18:30
th1aYes.18:30
aelknerWould that be right off the root?18:31
th1aYou mean, is the queue right off the ZODB root?18:32
aelknerI 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
th1aIt might as well be in the root of the SchoolTool application.18:32
aelknerI thought so.18:32
aelknerA folder called 'chesty'.18:33
th1aSure.18:33
aelknerIn there we find one list or more structure than tat?18:33
th1aSo creating that object is the first step.18:33
th1aIt has a few attributes.18:33
th1aregistered18:33
th1asubscribed18:34
th1aprovides18:34
aelknerLists?18:34
th1asubscribed and provides are lists.18:34
th1aregistered is bool18:34
aelknerright.18:34
aelknerSo if schooltool hasn't created the folder yet, the agent will?18:34
wdickersWhat about a list of queued messages?18:34
th1aawake = bool18:35
th1awdickers: and you need a list of those.18:35
aelknerwho's awake?18:35
aelknerthe agent or schooltool?18:35
th1aTechnically you can put an agent to sleep, but that's irrelevant.18:35
th1aIt doesn't really mean anything to a pull agent.18:35
th1aBut it is just a bool, so what the heck.18:36
th1aBut 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
th1aI don't think so, but I'm not sure.18:36
aelknerI wouldn't think schooltool would care about the ZIS as that it the agent's job.18:37
aelknerI meant the agent.18:37
th1aIt isn't important regardless.18:37
aelknerSo if schooltool is running as an HTTP server, how does it monitor the ZODB for chesty if noone hits on it?18:38
wdickerswhy does schooltool have to monitor it for chesty?18:39
th1achesty is woken by a cron job and checks the ZODB.18:39
aelknerchesty will update its folder with new messages, right?18:39
aelknerschooltool may need to react by adding a new student to the db.18:40
aelknerFor instance.18:40
th1aWell, it *could* work that way.18:40
aelknerHow else had you envisioned it?18:41
wdickerswell I'm afraid I'm out of time again. I'll check the #schooltool logs later : )18:41
th1aIf a messages comes from the ZIS to add a student, then chesty could just add it itself.18:41
*** wdickers has quit IRC18:41
th1aBypassing SchoolTool's application logic.18:41
aelknerOh really.18:41
aelknerThat would answer my question.18:41
aelknerThat's nteresting.18:42
th1aOtherwise we wouldn't need to share the main ZODB.18:42
th1aThey could just leave notes in text files.18:42
th1aOr whatever.18:42
aelknerSo schooltool doesn't even know about the agents.  IT just has its ZODB.18:42
th1aThat seems like the simplest way to do it.18:42
aelknerSchooltool could provide a web page to view the state, but that's easy.18:43
th1aAnd it has this chesty object that it displays information about.18:43
th1aYes.18:43
th1aIt is easy and a good place to start.18:44
aelknerI agree.18:44
aelknerYou wouldn't be able to tell from chatting, but I'm just barely holding myself up with the Flu.18:45
aelknerI'm at Jeff's, but I need to get home to Philly and recover.18:45
aelknerI'll make sure to be available when Will comes in tomorrow.18:45
th1aOK.18:45
aelknerIt's good that we both are leaning this stuff, even if we aren't coding anyting yet.18:46
th1aI should be able to write a fair amount of code today.18:46
aelknerThe post()?18:46
aelknerWhen I have the energy, I could do things like that.18:47
aelknerBut that might not be untl the weekend.18:47
aelknerAnyway, got to go.18:48
aelknerTalk to you tomorrow.18:48
*** aelkner has quit IRC18:48
*** srichter has quit IRC19:26
*** alga_ has quit IRC19:59
*** ignas has quit IRC21:27
*** mgedmin has quit IRC21:50
*** ignas has joined #schooltool22:16
*** lisppaste5 has quit IRC22:47
*** lisppaste5 has joined #schooltool22:51
*** vidasp has quit IRC23:06
*** Lumiere has left #schooltool23:10
*** vidasp has joined #schooltool23:20

Generated by irclog2html.py 2.15.1 by Marius Gedminas - find it at mg.pov.lt!