IRC Logs for #circuits Monday, 2014-05-26

pdurbin“I get paid for code that works, not for tests, so my philosophy is to test as little as possible to reach a given level of confidence” – Kent Beck00:03
pdurbinnice quote00:03
prologicYeah I happen to agree00:10
prologicThe problem is unit tests don’t buy you a whole lot00:10
prologicIntegration and System tests however can and do00:10
prologicBut they do have their own cost00:10
prologicOne of the problem I’ve found in my experience is often the lack of forethought and clear design00:10
prologicthere is no excuse for clear thought out design00:11
prologicTests are impoartnt, but not at a religious point ;)00:11
pdurbinprologic: with all your forethought and all you sound like this guy: Episode 203: Leslie Lamport on Distributed Systems : Software Engineering Radio -
pdurbin(great episode)00:12
prologiclol really?00:21
prologicteh thing is there is no “right way” as such00:21
prologicthere was always pros and cons00:22
prologicand software development is more of an art than a science ( as mentioned)00:22
pdurbincheck out his TLA+ thing though00:26
pdurbinmy little post about it: [TechTalkFollowup] UML vs. TLA+ -
*** Osso has joined #circuits01:05
*** robonerd has joined #circuits01:06
robert_prologic: the clsid_discovery() event is supposed to print "HI" for each component discovered, but nothing's happening.'01:35
prologicis the event being fired?01:42
prologicadd the Debugger into your system01:42
prologicand see01:42
robert_that's what I've been doing02:04
prologicyeah so does the event get fired?02:08
robert_so actually, I'll just get rid of this stuff and start over.02:08
robert_it "does02:08
robert_but with only one component02:08
prologicso clsid_discovery is being fired02:09
prologicbut only for one chennel?02:09
prologicis ite listening on all channels?02:09
prologic@handler(“foo”, channel=“*”)02:09
robert_oh, yeah02:11
robert_it fires02:11
robert_I'm herping02:11
robert_oh, so components are represented here as threads?02:12
prologiccircuits is all event-driven02:13
robert_[<ClsidLoader/ClsidLoader 27138:MainThread (queued=2) [R]>]02:16
robert_that's how components are represented?02:16
prologicerr yes without the list :)02:17
prologic<ClsidLoader/ClsidLoader 27138:MainThread (queued=2) [R]>02:17
prologicso that looks like it’s your main component02:17
prologicor top-level manager/component02:17
prologicit also has a channel called “ClsidLoader"02:17
prologicit’a also [R]unning02:18
prologicand has 2 events in it’s queue02:18
robert_oh, wait. does everything need to be on the ClsidLoader channel?02:54
prologicyou’ll want event handlers on _that_ components if you want something useful :)02:59
prologiccircuits uses channels as a separation of concern02:59
prologicso two or more components can listen and react to the same kind of events without colliding with each other02:59
prologice.g: two socket servers02:59
prologicor two client servers02:59
prologica tcp socket server typically reacts to _read events from a poller and write events from user application code03:00
prologickdb for example has a few channels03:00
prologicbot, web03:00
prologicbot is used by the tcp socket client and all irc plugins03:00
prologicwhilst web is used for the web plugin which sets up a listening tcp socket server using circuits.web03:01
robert_Oh, okay.03:29
prologicam I missing something here?03:30
prologicI’m not really sure hos you wnt to use circuits03:30
robert_So you can freely mix and match without worrying about code clobbering itself.03:30
robert_I'm just spacing out, don't worry about me.03:30
prologicyes you can :)03:33
prologicthat’s one of the main ideas behind circuits03:33
prologiccomponents are discrete units of functionality03:33
prologicthat reacts to events and trigger news ones03:33
prologiceach component or gorup of components can listen to separate channels03:33
prologicthere’s a lot of flexibility in circuits event-driven design and architeture03:34
prologicit’s largely designed to scale up complex application design and implemtnations with scalablity, performance and maintainability in mind03:34
prologicYour tools/apis are Component, Manager, Debugger03:35
prologicand the set of primitives03:35
prologicfire, call, wait03:35
prologicand register, unregister, start, stop, run03:35
prologicnormally run() is used as opposed to .start/stop (runs component graph in a separate thread — useful mainly for testing or running on interactive shell)03:36
robert_Ah, so that's why nothing's working.03:36
robert_or.. not.03:39
prologicwell define “nothing’s working?” :)03:39
robert_nothing's printing "HI"03:39
prologicif you’re trying to use circuits as a way of maintaining a list of components03:40
prologicwithout a running system03:40
prologicthat won’t work so well03:40
prologiccomponents are designed to “run"03:40
prologicas part of some system03:40
prologicyou need to setup a component graph03:40
prologicregsiter a bunch of components together03:40
prologicconfigure them etc03:40
prologicthen run the system03:40
prologicby calling .run() on the top-level omponent03:40
robert_yes, I'm building an add-in system on-top of circuits.03:40
prologicany add-in system _should_ just register more componetns at runtime03:41
robert_it's hard to do if you don't know what's out there.03:41
prologiclike for e.g:
prologicand this plugni (core):
prologicactually listens for commands like “load” and “unload"03:42
prologicand fires off appropriate events to load/unload plugins at runtime03:42
prologicyou’ll notice as well that there are no synchornous calls here at all03:43
prologica “load” command will fire a load() event at the plugin manager03:43
prologicand wait for it to complete before responding03:43
prologicand “plugins” is actually a separate channel03:43
prologicthat the Plugins component solely listens on03:44
prologicso kdb has bot, plugins and web channels03:44
robert_oh, okay. you're right, as always. :p03:47
robert_the channels were herp'ing my code up.03:47
prologicI hope so :)03:47
prologici wrote apps in circuits all the time :)03:47
prologicsorry what’s “heriping”?03:48
robert_plural form of
prologicthat’s just odd03:52
robert_the gist of the definition is when you do or say something incredibly stupid.03:55
robert_you herp03:55
prologicwell it’s not stupid ihmo :)03:56
prologicyou just lack the experience with circuits that I have :)03:56
prologicwhich well is unfair because I’m the original author ;)03:56
robert_sometimes I'm sort of the "... did you plug-in the TV?" after you've been over everything other weird problem person.03:59
robert_and then you feel really silly04:00
robert_because you could have just taken out those exact two lines and saved yourself a ton of trouble04:00
robert_or wait, sometimes I feel like a dopefish swimming around the open sea, lmao04:01
prologicmy biggest advice to you with circuits04:05
prologicis just this04:05
prologiccode your app :)04:05
prologicuse circuits for what it is :)04:05
prologiccomponetns and events04:05
prologicuse kdb as a base if you wish04:05
prologicit has a nice plugin architecture04:05
*** spaceone has quit IRC05:11
*** Osso has quit IRC05:30
*** kdb has joined #circuits06:01
prologickdb: load web06:12
kdbLoaded plugin: Web06:12
prologicrobert_: how’s it all going?06:13
prologicanything more i can help clear up?06:13
*** aboutGod has joined #circuits08:09
*** aboutGod has left #circuits ()08:14
prologiceven'n all08:54
*** Osso has joined #circuits11:42
*** Osso has quit IRC12:56
*** Osso has joined #circuits13:52
*** Osso has quit IRC15:53
*** FSX has quit IRC15:54
*** robert_ has joined #circuits16:47
*** robert_ has quit IRC16:49
*** robert_ has joined #circuits16:52
*** robert_ has quit IRC16:52
*** robert_ has joined #circuits16:52
*** FSX has joined #circuits16:53
*** spaceone has joined #circuits17:12
*** robonerd has quit IRC18:06
*** robonerd has joined #circuits18:10
*** realz has quit IRC18:54
*** realzies has joined #circuits18:55
robert_prologic: slow.19:05
prologicrobert_, what's slow?22:03

Generated by 2.11.0 by Marius Gedminas - find it at!