IRC Logs for #circuits Saturday, 2013-05-04

*** EasyMac_ has joined #circuits01:54
prologichi EasyMac_01:56
EasyMac_thanks, prologic01:57
EasyMac_I've been shopping around for python async frameworks for the past few weeks and stumbled upon circuits, and so far I think it might be a good fit for what I need01:58
EasyMac_So I thought I'd hop on the irc channel and idle a while as I read through the docs01:58
prologicsure no worries02:05
prologiccan I ask how you stumbled across it?02:05
prologicI'm the author btw :) name's James02:05
EasyMac_ha. It was your shameless plug in the comments at:
prologicoh really? :)02:08
prologicyes shame on me :)02:08
prologicahh yes02:08
prologicvery shame on me02:08
prologicwhat can I say to defend myself?02:08
EasyMac_now, now, I didn't say it was a shameFUL plug02:09
prologicmy marketing/business skills are non-existent? :)02:09
prologiceven so, this is our 9th year of development02:09
prologicand we've seen over 60k downloads of circuits02:09
EasyMac_well, we are looking for a solution that's going to be around a while02:10
EasyMac_so that's a good sign02:11
prologicyeah I strongly doubt circuits is going away anytime soon02:23
prologicnamely because it offers one of the only modern Component architectures for Python02:24
prologiczope.interfaces has some similar concepts, but very old02:24
prologicEven when we finally stop supporting 2.x (possibly not for many years) we'll just replace our poller components with whatever standard Python 3.4 and beyond come up with02:25
prologicand replace our current coroutine support using yield and ggenerators with yield from02:25
prologicDunno if you've seen already, but circuits implements promises and corroutines02:26
prologicas opposed to Twisted's callback chains02:26
prologicEasyMac_, anyhoo, let me know if you have questions02:59
prologicalways here to help in any way I can02:59
EasyMac_Thanks, I probably will at some point03:02
prologicWhat sort of application are you intending on writing with circuits?03:05
prologica network daemon? web app?03:05
EasyMac_I was just about to mention03:11
EasyMac_how refreshing it is that you separated the web framework from the generalized one03:12
prologichow do you mean?03:12
EasyMac_import circuits vs import circuits.web03:12
EasyMac_because my application is event and I/O driven, and will include tcp sockets, but is far from a web application03:13
EasyMac_or web server03:13
prologicoh well03:13
prologiceverything in circuits is a component03:13
prologicthe framework eats it's own dog food03:14
prologiccircuits.web is just another set of components we maintain03:14
prologicthe actual core of circuits is only ~3,000 lines of code03:14
prologiceverything else that makes up the component library are exactly that - components03:15
prologicthere was a blog post where a web developer could not believe we added websockets (for example) support to circuits.web without changing a single line of code anywhere else03:15
prologicbut that's circuits' strength03:15
EasyMac_yeah, that sounds to be quite in line with what we're trying to build03:16
EasyMac_basically an easy-to-learn python environment for novice programmers who aren't necessarily familiar with python to create event handling/transmitting applications that send and respond to RS232, TCP, logic, relay and other inputs and outputs03:18
EasyMac_the idea is to create a framework/governor that handles all the gritty stuff, with a user developer-driven library of component objects that handle I/O interactions with specific external objects and their proprietary protocols03:19
prologicoh RS232 you say?03:20
prologicwell you're in luck - a few folks a while ago asked for a Serial I/O component03:20
prologicand they got one03:20
prologictwo separate folks built home automatic and alarm systems with circuits03:20
EasyMac_yeah, this is basically meant to be a control/automation solution for commercial applications03:21
EasyMac_on an ARM board in an equipment rack full of gear that needs controlling03:22
prologicshould be no problems there03:22
prologiccircuits is all pure python03:22
prologicand python runs on arm :)03:22
EasyMac_the existing solutions are all disgusting, proprietary, unstable garbage03:22
prologicalso in circuits (might help you) we  implement several communication mechanisms between processes, nodes, etc03:23
prologicBridge (basic IPC)03:23
prologicand Node (basic distributed communications)03:23
prologicbe exciting to see someone actually use these in a real world application03:23
prologicand hopefully improve them03:23
EasyMac_well, like I said it won't be hard to top what's already out there03:23
EasyMac_these companies spend so much time trying to reinvent the wheel03:24
prologicwhy reinvent the wheel03:24
prologicwhen you can wrap someone else's wheel :)03:24
prologice.g: we borrowed heavily from twisted for pollers03:24
prologiccherrypy for major parts of circutis.web03:24
EasyMac_and when the budget runs out ad they have to push the product out the door they don't even realize they forgot to round the corners03:24
prologicthe core eventing/messaging we wrote and designed (kinda the crux of circuits)03:25
prologicand it grew out of all that inot what iit is now :)03:25
prologicyou'll be happy to know we test throughly :)03:25
prologicwe don't release until everything is in order03:25
prologicprobably why our releases are very slow03:25
EasyMac_like I said, just about anything is more robust than the competition03:26
EasyMac_they invent their own fake programming language03:26
EasyMac_and they don't even think it through03:26
prologicI would encourage you to use the dev branch too btw03:26
prologicwe do ensure every test in every commit passes03:27
EasyMac_I'll keep that in mind03:27
prologicyeah DSL's are fun aren't they? :)03:27
prologicGoing to be using Python 2.7?03:27
prologicgood to know03:28
prologicOur CI03:28
prologicbeen down for a while sorting out PayPal rubbish :)03:28
EasyMac_debian 6 happens to be what our ARM boards are running03:29
EasyMac_so that's handy03:30
prologicyeah ShiningPanda only provide Debian and Windows build environments03:30
prologicI'm hoping they provide a BSD environment soon03:30
prologicwe support py 2.6 through to 3.3 and pypy03:30
prologicon BSD, Linux and Windows (not all features are supported hwoever)03:31
prologicThat should be fixed now03:47
*** koobs has quit IRC05:04
*** koobs has joined #circuits05:04
*** EasyMac_ has quit IRC05:36
prologicheya koobs06:29
koobsprologic ! :]06:30
prologicwhat's been happenning?06:32
koobseasier to tell you what hasnt been happening, nothing :)07:45
prologickoobs, really?09:30
koobsyeh :)09:31
*** ronny has joined #circuits10:46
*** ronny has quit IRC12:41
*** ronny has joined #circuits12:41
*** EasyMac_ has joined #circuits13:22
*** EasyMac_ has quit IRC15:49
*** EasyMac_ has joined #circuits15:57
EasyMac_prologic: In python 3.x, I get a TypeError when calling
EasyMac_no such error in python 2.7 for me16:15
EasyMac_I'll investigate it a little on my own, but I have some other things to attend to soon today.16:19
EasyMac_this might be of help, though:16:20
EasyMac_in 2.7, print( yields:16:20
EasyMac_<open file '<stdin>', mode 'r' at 0x7f5f4761f150>16:20
EasyMac_and in 3.3, it yields:16:21
EasyMac_<_io.TextIOWrapper name='<stdin>' mode='r' encoding='UTF-8'>16:21
EasyMac_so I'm guessing the fix will involve just unwrapping that wrapper if python version is 3.x16:22
EasyMac_like I said, I'll work on it a little later today16:22
*** EasyMac_ has quit IRC16:27
*** koobs has quit IRC18:50
*** EasyMac_ has joined #circuits21:04
EasyMac_I have a patch for the stdin issue that works, but it may not be how you want it to be solved in the long run21:30
EasyMac_Actually, this is probably smarter:
*** EasyMac_ has quit IRC22:43
*** EasyMac_ has joined #circuits22:59
prologicEasyMac_, which version of Python 3?23:24
prologicEasyMac_, Which version of circuits? dev or stable?23:25
prologicThing is, I actually don't believe what I'm seeing :)23:25
prologicAll tests pass on Python 3.2 and 3.323:25
prologicwe don't support 3.123:25
prologicoh wow unbeliable23:34
prologicI'll fix that first issue23:34
prologicEasyMac_, first issue fixed.23:37
prologicLet me know if you come across any others23:37
prologicI'll remind myself to add a test to cover this23:37

Generated by 2.11.0 by Marius Gedminas - find it at!