IRC Logs for #circuits Friday, 2014-09-05

*** Osso_ has quit IRC01:57
zildjianprologic: thanks02:39
prologiczildjian: nps ;)02:50
*** zildjian has quit IRC08:16
prologiceven' all08:24
Yamahi prologic08:24
*** zildjian has joined #circuits08:26
prologichi Yo09:10
prologichi Yama09:10
prologichi zildjian09:10
*** Osso_ has joined #circuits10:12
*** Workster has quit IRC11:37
*** Workster has joined #circuits11:37
*** Workster has quit IRC11:37
*** Workster has joined #circuits11:37
*** blubberdiblub has quit IRC12:36
*** blubberdiblub has joined #circuits12:39
*** koobs has quit IRC12:54
*** koobs has joined #circuits12:58
*** An_Ony_Moose has quit IRC13:15
*** An_Ony_Moose has joined #circuits13:16
*** koobs has quit IRC13:25
*** koobs has joined #circuits13:27
*** koobs has quit IRC13:46
*** koobs has joined #circuits13:47
*** koobs has quit IRC14:10
*** koobs has joined #circuits14:12
Yamahi15:16
*** qwebirc94532 has joined #circuits16:02
*** qwebirc94532 has quit IRC16:02
*** cfarmer has joined #circuits16:03
cfarmerHi all, I’m wondering if someone can help me fugure out how to propagate a message through multiple Components (rather than all at once). Using the http://circuits.readthedocs.org/en/latest/tutorials/woof/index.html#component-channels example, how would I get Bob to woof at Fred who woudl then woof at Steve and so on? Apologies if this is obvious or not a good idea, I’m new to circuits and asynchronous programming in general…17:32
*** Osso_ has quit IRC18:47
*** Osso_ has joined #circuits18:50
*** edk has quit IRC19:50
*** edk has joined #circuits19:57
prologichi cfarmer20:16
prologicmorn'n all20:16
prologiccfarmer, http://codepad.org/y6Mg3pSh20:24
prologicI guess something like this maybe20:24
prologicvery contrived of course :)20:24
cfarmerprologic: cool! that’s pretty much what i’m looking for… is it a common usecase to have ‘dynamic’ channels (e.g., the same component used in 4 different channels)?20:30
cfarmerbasically, i’m looking for something where i can implement asychronous signals and slots to pass around messages and fire actions based on said messages… circuits sounds like what i’m looking for, so now i’m just trying to figure out how to do it :-)20:32
cfarmerprologic: I really like to clean API you have implmented… clean API means my code looks nice even when it isn’t ;-)20:33
prologiccommon, no20:43
prologictwo sure :)20:43
prologice.g: a TCPServer and UDPServer in the same app/system20:44
prologicor circuits.web plus various other components that are non-web20:44
prologicsignals and slots you ay?20:44
prologic*say20:45
prologiccan I ask what more you are doing on top of circuits per say?20:46
prologicone of the things I've learned over the year is that circuits and it's event-driven and component architecture lends itself to implementing all sorts of patterns20:47
prologic"message passing" (or event-driven) as circuits is at it's core seems to be a good flexible core20:47
prologici.e: you could implement Actor on top of circuits20:47
prologicSignals and Slots20:48
prologicetc20:48
cfarmerprologic: sure, i’m trying to implement a ‘streaming’ framework and am currently assessing options/alternatives. how it would (ideally) work:21:22
cfarmeryou have multiple ‘components’ each with a specific purpose, and you’d like to string them together: component A pulls from a json stream somwehere, component B takes each json object in turn and counts +1 if type == ‘cat’ and then emits the running count as each new json object is checked, which in turns tells another component to update update some other value or attribute...21:25
cfarmerif no new json comes through the pipeline, nothing happens until something does21:25
cfarmerthe idea is to (dynamically) develop a workflow for processing ‘streaming data’21:29
prologicwell okay sure21:39
prologicand these source streams are coming from?21:39
prologicihmo you don't need to build a framework on top of circuits for this :)21:39
prologicbuild a component that reads from your stream21:39
prologicover circuits.web, some kine of rpc (we implement json-rpc, xmlrpc) or websockets or some kind of tcp/udp/unix stream21:40
prologicbuild your other component that listens for the processed stream and adds one if type == "cat"21:40
prologicand so on and so forth21:40
cfarmeryes, this is what i was hoping for… for testing, i’ll probably just start with a component that generates a stream of random numbers… my current ‘issue’ is part about building a component that listens to aothe specific component… it seems more like things go the other way around (i.e., to fire to a specific component) which might not work as well once I start adding components along the line..?21:43
cfarmeranyway, i obviously need to spend more time with circuits, but it does sound like it fits the bill nicelty21:43
prologicI see21:45
prologicso one of the important things behind circuits is it's designed for performance21:45
prologicso whilst there are channels to separate components with similar events from each other21:46
prologicall components can in theory listen to each other21:46
prologicyou've already familar with the channel setting21:46
prologicclass Foo(Component):21:46
prologic   channel = "foo"21:46
cfarmeryes21:46
prologicyou can also define event handlers like:21:46
prologic@handler("bar", channel="foo")21:47
prologicand you can also fire events to specific channels21:47
prologice.g:21:47
prologicself.fire(bar(), "foo")21:47
prologicor multiple channels21:48
prologice.g:21:48
prologicself.fire(bar(), "a", "b", "c")21:48
cfarmeroooh right! i did see some of that…21:49
cfarmerok, very nice… i’m going to give this a go over the weekend and see where i get… again, i really like the simple API, so i was really hoping this would be what i was looking for ;-)21:49
*** Osso_ has quit IRC21:50
prologiccool :)21:50
prologiclet me know if I can clear anything else up21:50
prologic:)21:50
cfarmercheers, thanks!22:03
*** Osso_ has joined #circuits22:38
Yamagn822:55
*** robert_|disconne has quit IRC23:40
*** robert_|disconne has joined #circuits23:40

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