[02:27] *** Lawouach has joined #kamaelia
[02:27] *** tdobson has joined #kamaelia
[02:27] *** eikenberry has joined #kamaelia
[02:27] *** vmlemon has joined #kamaelia
[02:27] *** Lawouach_ has joined #kamaelia
[04:00] *** vmlemon_ has joined #kamaelia
[04:11] *** dsuch has joined #kamaelia
[06:35] *** salmon_ has joined #kamaelia
[07:09] *** tdobson has joined #kamaelia
[07:11] *** Uraeus has joined #kamaelia
[07:45] *** dsuch has joined #kamaelia
[08:19] *** Uraeus has joined #kamaelia
[09:05] *** Uraeus has joined #kamaelia
[09:47] *** Uraeus has joined #kamaelia
[10:40] *** MS- has joined #kamaelia
[10:42] < MS-> "are the docs available somewhere as PDFs for easy print out?"
[10:42] < MS-> No, but the docs are as noted autogenerated. I can point you at the code that creates them if you'd like to do that...
[11:02] < dsuch> MS-: sure, thanks
[11:02] < dsuch> I just noticed too many 404 :/
[11:02] < dsuch> I know you're aware of it, just read half of the IRC logs
[11:03] < dsuch> hence I thought having it combined in one PDF would be easier to follow
[11:50] < dsuch> http://paste.ubuntu.com/277118/ - my goal is to have 5 parallel consumers to handle data, each consumer should receive its own message and process it in a blocking manner, could it really be that easy?
[11:51] < dsuch> well, not really 'should block' as much as 'will block'
[12:20] *** eikenberry_ has joined #kamaelia
[12:21] < dsuch> I should mention that producer is much faster than consumers are, that's why I'd like to parallelize it.
[12:25] *** MS- reads back
[12:25] < MS-> (was getting lunch)
[12:27] < MS-> OK, at present there isn't a specific component that will directly achieve the goal you want to do there, but the good news is there's a fair few that do.
[12:27] < MS-> It's also the sort of thing that it would be nice for the PAR component to handle naturally for you, but that doesn't do what you want in this case.
[12:28] *** MS- rummages in SVN
[12:28] < dsuch> I was wondering whether the Carousel and/or Fanout would be of help here?
[12:28] < MS-> Carousel isn't really quite what you want, and fanout/splitter copy the data to all the recipients
[12:29] < dsuch> ah, copying, no good here
[12:29] < MS-> yep
[12:30] < MS-> This isn't quite what you want, but it's similar
[12:30] < MS-> http://code.google.com/p/kamaelia/source/browse/trunk/Code/Python/Kamaelia/Kamaelia/Apps/Europython09/Util.py#92
[12:30] < MS-> That's a two way balancer component
[12:30] < MS-> which can send 1/2 the data one one and half the other
[12:30] < MS-> Which could be extrapolated better
[12:30] < MS-> But it's not ideal
[12:31] < MS-> What you ideally want is a component that passes data to a Queue.Queue and that Queue.Queue becomes the inbox for a collection of components
[12:31] < MS-> allowing which ever one is ready to just consume the data
[12:32] < MS-> Which is a more complex level than you want here
[12:32] < MS-> I'm sure I've written something like what you're after though
[12:32] < dsuch> in that case, I'm now wondering what I have done in that code :-)
[12:33] < MS-> :)
[12:33] < dsuch> but hey, no hints please!
[12:33] < MS-> heh
[12:33] < dsuch> I'd like to understand it myself :)
[12:33] < MS-> You sure ? (I'd assumed that was a joke :) )
[12:34] < dsuch> yea
[12:34] < dsuch> er, I mean I'm sure
[12:34] < MS-> k. I would suggest looking at the source for the PAR component:
[12:34] < MS-> http://code.google.com/p/kamaelia/source/browse/trunk/Code/Python/Kamaelia/Kamaelia/Chassis/PAR.py
[12:35] < MS-> But I'll not say why :)
[12:35] < dsuch> I feel like I'm missing something fundamental about it, that's why.
[12:35] < MS-> k
[12:35] < dsuch> ok, will take a look at PAR, thanks
[12:36] < MS-> You've found the tutorial notes btw I hope ?
[12:47] < dsuch> um, so I have a list of consumers forwarding the message to next one in the chain, heh
[12:47] < dsuch> I think I've found it, I'm actually reading it all, in no particular order :)
[12:52] < MS-> cool. I personally wouldn't do the list of consumers :)
[12:53] < dsuch> But why did you say PAR wasn't what I wanted? It seems to be exactly what I want (parallel execution) except perhaps for the policy of exiting as soon as children exit?
[12:54] < dsuch> You mean the very approach could be different?
[12:54] < dsuch> Or that you wouldn't make such a basic mistake :)
[12:59] < MS-> PAR is very close.
[13:00] < MS-> You just want to send the messages that come into it to the first available component
[13:01] < MS-> Your producer feeds it, and then your derivative of PAR doles messages to components inside it
[13:01] < MS-> This has the other other half of what you're looking for I think: http://code.google.com/p/kamaelia/source/browse/trunk/Code/Python/Kamaelia/Kamaelia/Apps/Europython09/BB/LineOrientedInputBuffer.py#31
[13:02] < MS-> maybe
[13:02] < dsuch> ah
[13:02] < dsuch> and I was wondering how to prevent the producer from peeking at consumers' inboxes
[13:02] < MS-> It's still not as elegant as the queue approach I mentioned though. Which is a shame
[13:03] < MS-> yeah, peeking at consumers' inboxes is kinda nasty
[13:03] < MS-> Or at least not guaranteed to be correct
[13:04] < dsuch> soo.. when the outbox is empty it means we /probably/ have at least one consumer available? otherwise the messages would be queuing up in the outbox?
[13:10] < dsuch> or not at all, there would be one outbox per consumer so I would need to iterate through them, find an empty one and then put a message there
[13:11] < dsuch> or I should simply write some code and test it myself :)
[13:25] < MS-> i always prefer the "play around and write code" approach myself :-)
[13:26] < MS-> You may want to see what happens to the inbox of the recipient after to send a message to an outbox.
[13:26] < MS-> I could say more explicitly than that, but you asked me not to :)
[13:37] < dsuch> heh
[13:43] < dsuch> oh, have you perhaps found the code for generating documentation?
[13:50] < MS-> http://kamaelia.svn.sourceforge.net/svnroot/kamaelia/trunk/Code/Python/Kamaelia/Tools/DocGen
[13:50] < MS-> Contains the tools for creating the docs
[13:50] < MS-> ie inside the Tools directory :)
[13:55] < dsuch> cheers
[13:58] < MS-> You're welcome. I've wanted to spend sometime redoing the docs, but I've just not had the time and energy to do that. Very much welcome anything there :-)
[14:03] < dsuch> sure, I understand it, but don't worry, looking at the logo makes up for any difficulties :)
[14:17] < MS-> :-)
[14:24] < MS-> Right, back later. (probably) Off to python-north-west :-)
[14:24] *** MS- has parted #kamaelia
[14:27] *** eikenberry_ is now known as eikenberry
[14:44] *** salmon_ has joined #kamaelia
[15:42] *** vmlemon__ has joined #kamaelia
[18:06] *** vmlemon__ has joined #kamaelia
[19:05] *** Uraeus has joined #kamaelia
[22:47] *** eikenberry_ has joined #kamaelia