IRC Logs for #circuits-dev Friday, 2013-03-22

*** Osso has joined #circuits-dev01:00
prologichey Osso01:01
prologicany new additions to reader? :)01:01
Ossohey!01:01
Ossoyeah I was working on it yesterday01:01
Ossoand I am liking riak more and more01:01
OssoI pushed the stuff I did already01:01
OssoI was in the middle of the labels when I had to leave01:02
prologicahh nice01:02
prologicriak is reasy to setup yeh?01:02
prologicI'm going to get the code this weekend and setup riak01:02
prologicand see what it's like01:02
prologicand the code you've done so far01:02
Ossoyeah you can just download the binary distribution01:03
Ossoand then you just have to run it01:03
Ossobin/riak start01:03
OssoI need to move all the stuff in cli.py to api.py or something01:03
prologicahh yeap01:10
prologicwhat's your intention with the cli/api stuff?01:10
prologicis your plan to have a cli app that uses the rest api?01:10
circuits1 commit(s) pushed to circuits-dev01:23
circuits231498e07879 by prologic: Fixed is_ssl_handshake for Python 3.x01:23
OssoI am not sure yet01:51
Ossowere exactly the cli will stand01:51
Ossobut01:51
OssoI am planning an api and that will allow use to add feeds etc01:52
Ossothat'll be used by both the cli and the web01:52
Ossoit seems like we need the cli to make our life easier for developing etc01:54
Osso(I am talking about a python api)04:29
prologic*nods*05:01
prologicI agree05:01
prologicand tbh I like things that also have a CLI05:02
*** logix812 has joined #circuits-dev05:33
logix812prologic: what event loop are you guys running?05:34
logix812custom?05:34
prologichang on a sec05:35
prologiclemme just argue something with gutworth over his changes to six05:35
prologicgah05:35
prologicok all good now :)05:36
prologicahh what event loop05:36
prologicok so here's the thing05:36
prologiccircuits was developed initially about 9 years ago05:36
prologicand has seen 9 years of active devleopment05:37
prologicI just suck at marketing/selling the concept05:37
logix812hahaha that's the trick to everything huh05:37
prologicso to the rest of the Python community we're quite unheard of per say05:37
prologicpretty much05:37
prologicso when you ask, "what event loop"05:37
prologicwe complete in a similar but different space to05:37
prologictwisted, tornado, gevent, eventlet, etc, etc, etc05:37
prologicasync is just a feature of circuits05:37
prologicbut not the most prominent one05:37
prologicit's all about loose coupling aka components05:38
prologicgood enough brief? :)05:38
logix812Check..05:38
logix812Here's why I ask though. I looked over a little bit and saw the word "event" in places05:38
prologic*nods*05:38
prologicin things like:05:38
prologicdef on_foo(self, event, ...): ?05:39
logix812circuits.io.events.py05:39
logix812class *(Event):05:39
prologicahh05:39
prologicyes05:40
prologicso the event system (message passing) in circuits is way more powerful and flexible than most others I think05:40
prologicnot that I' actively use anything else :)05:40
prologicso I'm shamefully biased!05:40
logix812hahahah.. so it's not events in the sense of a traditional event loop system. I'm just to used to connecting the 2 concepts, I was overzealous when drawing the conclusion I think.05:41
prologichmm05:41
prologicwhat do you think of as evnets?05:42
prologicif I might ask...05:42
prologicRemember when circuits was first developed, things like tornado, gevent, eventlet, etc did not exist at the time05:42
logix812Well I hear "event" and I think event loop events.05:42
prologiconly zope, twisted, trac, etc05:42
prologicwell ...05:42
logix812But my guess is it's more like signals / callbacks in this implementation05:42
prologiccircuits does has an event loop if you will05:42
prologicor messages won't get dispatched05:43
prologicwell05:43
prologicwe don't really have callbacks in the traditional sense (e.g: twisted)05:43
prologicwe implement promises05:43
prologicnot deferreds05:43
prologicwe also implement the same behavior greenlets does using python generators05:43
logix812So, your IO system is async?05:43
prologici.e: any event handler can become a coroutine05:44
prologicall our I/O component are all async - yes05:44
logix812ok05:44
prologichence async is just one feature05:44
logix812ok ok ok.. now i'm getting a better picture of things05:44
prologiceverything in circuits is:05:44
prologiccomponents and events05:44
prologicand a way to connect disparate (loosely coupled) components together05:45
prologicthat's why you see things like:05:45
prologic(Server(8000) + Root()).run()05:45
prologicor05:45
prologic.register(...)05:45
prologicwe've copped a lot of flack over overriding + and += for convenience05:45
prologicbut they're just convenience05:45
logix812ya, I can see how people would be sensitive to that05:46
logix812then again, if they were never meant to be overridden, why put the ability in the language =)05:47
prologicI guess one of the most important factors of circuits is that (for example) we can implement websockets (and we did twice, a first draft, then updated the spec) without touching a single line of anything else except the WebSockets component itself05:47
prologicI hope this is all making sense somewhat and you're getting the picture :)05:47
prologicwell I agree wholeheartedly05:47
logix812ya, definitely getting a better picture05:48
prologiccircuits achieves a lot of elegance (our users have so said) because of the metaprogramming in Python we employ in various parts05:48
prologicsome implicitness, some explicitness05:48
prologicand often both05:48
prologicSo going back to our email conversation05:52
prologicI think the problem here is that you are implementing coroutines in your paser05:52
prologicwhich circuits then tries to treat as a couroutine itself05:52
prologicand maybe somehow the control gets foobared up05:52
prologichttps://bitbucket.org/circuits/circuits-dev/src/231498e078798530c9ef6d4bd3a32e53894976d0/examples/primitives/wait.py?at=default05:53
prologicTypically this is how we deal with handlers that want to behave like coroutines05:53
prologicthis is why we don't have callbacks05:53
prologicbecause we can actually wait for an event to complete (without blocking)05:54
prologicor call the event directly/synchronously (without blocking)05:54
prologicnps, I'll be here06:06
*** logix812 has quit IRC07:56
circuits6 commit(s) pushed to circuits-dev08:44
circuits618781af9b89 by spaceone: remove python2.4 compatibility in headers08:44
circuits28a7cf3431fc by spaceone: merge 3790:1a16f5d703f908:44
circuits2f8523c0e214 by spaceone: add missing default parameter to Headers.pop08:44
circuits07ddb47d709b by spaceone: merge 3796:409bcbd1db6308:44
circuits04ad941f7d9e by prologic: Automated merge with https://bitbucket.org/spaceone/circuits-experimental/08:44
circuits4c830a66b1d0 by prologic: Catch and fire SocketError on SSLError exceptions and close the connection08:44
*** Osso has quit IRC10:22
*** Osso has joined #circuits-dev10:36
*** Osso has quit IRC10:52
*** Osso has joined #circuits-dev11:12
*** Osso has quit IRC11:41
*** Osso has joined #circuits-dev11:44
*** logix812 has joined #circuits-dev12:34
prologiclogix812, wb14:20
logix812yo14:20
prologicwhat's the local time for you?14:35
prologicI just woke up :)14:35
logix812it's 15:3614:37
*** Osso has quit IRC14:38
prologicahh14:39
prologicso where were we?14:39
prologicthis channel is logged if you need to read logs14:39
prologicyes written in circuits :)14:40
logix812hahaha15:05
logix812sorry I keep bouncing back and forth15:05
logix812I'm in LA15:05
logix812trying to get this puppet custom pypi provider working15:05
logix812killing me15:05
logix812but it works now, and so ends Friday =)15:06
prologicheh15:08
prologicpuppet heh15:08
*** logix812 has quit IRC15:21

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