prologic | With circuits.web (if you don't use and deploy your app with WSGI and circuits.web.wsgi.Application) you get Asynchronous events for free as well as tasks/workers and coroutines | 00:00 |
---|---|---|
prologic | plus you also get naive load balancing as well by starting up your circutis.web server with multiple processes (shared listening socket) | 00:00 |
prologic | so it scales by default | 00:00 |
prologic | benchmarks have put circuits.web (remember it's all pure Python) on a FreeBSD box at over 8k req/s (raw benchmark) | 00:01 |
*** Osso has joined #circuits | 00:46 | |
pdurbin | blocking in their very nature | 00:59 |
pdurbin | "Bottle is a WSGI framework and shares the synchronous nature of WSGI, but thanks to the awesome gevent project, it is still possible to write asynchronous applications with bottle." http://bottlepy.org/docs/dev/async.html | 01:03 |
prologic | *nods* | 01:06 |
prologic | circuits.web just gives you all that for free | 01:06 |
prologic | :) | 01:06 |
prologic | no monkey patching of the std. lib required | 01:06 |
prologic | gevent monkey patches time.sleep, socket.socekt | 01:06 |
prologic | and various other std. lib modules | 01:06 |
pdurbin | oh | 01:06 |
prologic | and I believe it uses greenlet under the hood | 01:06 |
prologic | which is a C-extension | 01:06 |
prologic | so bottle + gevent requires a C compiler to intall and get working | 01:06 |
prologic | whereas (comparatively) circuits.web just works out of the box with standard stock Python :) | 01:07 |
prologic | if you want even faster performance | 01:07 |
prologic | install PyPy + circuits | 01:07 |
prologic | :) | 01:07 |
*** techdragon has quit IRC | 01:18 | |
pdurbin | :) | 01:20 |
*** techdragon has joined #circuits | 01:22 | |
prologic | hi techdragon | 01:25 |
pdurbin | so when, if ever, is Python's global interpreter lock (the GIL) a problem? | 01:32 |
prologic | only when you're doing CPU bound work | 01:37 |
prologic | using multi-threading | 01:37 |
prologic | which aren't real OS threads (they don't use multiple cores) | 01:37 |
prologic | most of this behavior however has changed in PyPy-STM | 01:37 |
prologic | so not only has the GIL gone away in PyPy-STM | 01:38 |
prologic | but it automatically uses multiple cores | 01:38 |
pdurbin | ah, so it uses STM like Clojure: http://clojure.org/concurrent_programming | 01:48 |
pdurbin | I'm looking at http://morepypy.blogspot.com/2014/07/pypy-stm-first-interesting-release.html now. Seems pretty new. | 01:49 |
prologic | as in Software Transactional Memory | 01:53 |
*** techdragon has quit IRC | 02:00 | |
*** FSX has quit IRC | 02:01 | |
*** koobs has quit IRC | 02:01 | |
*** pdurbin has joined #circuits | 02:23 | |
pdurbin | prologic: sorry, netsplit, I think | 02:23 |
*** 7GHAAMZBU has joined #circuits | 02:32 | |
*** FSX has joined #circuits | 02:32 | |
*** koobs has joined #circuits | 02:32 | |
*** FSX has quit IRC | 02:32 | |
*** koobs has quit IRC | 02:32 | |
*** 7GHAAMZBU has quit IRC | 02:32 | |
*** FSX has joined #circuits | 02:41 | |
*** koobs has joined #circuits | 02:41 | |
*** techdragon has joined #circuits | 02:46 | |
*** Osso has quit IRC | 04:29 | |
*** koobs has quit IRC | 04:36 | |
prologic | prologic> as in Software Transactional Memory | 05:22 |
prologic | * ChanServ gives voice to pdurbin | 05:22 |
prologic | <pdurbin> prologic: sorry, netsplit, I think | 05:22 |
*** koobs has joined #circuits | 10:34 | |
*** Osso has joined #circuits | 10:52 | |
pdurbin | right, Software Transactional Memory is what Clojure uses | 12:29 |
prologic | *nods* | 12:31 |
prologic | As does PyPy STM | 12:31 |
prologic | hopefully soon to be a part of mainline PyPy | 12:31 |
prologic | exciting stuff :) | 12:31 |
pdurbin | yeah, I had no idea this was coming to Python | 12:32 |
pdurbin | prologic: ok, so if Circuits is all about being non-blocking, how do you feel about node.js? | 12:36 |
prologic | Node JS would be fine if it wasn't JS :) | 12:37 |
prologic | haha | 12:37 |
prologic | The AOP nature of the V8 interpreter/compiler however is rather impressive | 12:37 |
prologic | The semantics of JS itself however are rather poor and I would not code anything important in Node JS | 12:37 |
pdurbin | aspect oriented programming? I've never heard V8 described this way. | 12:39 |
prologic | no | 12:42 |
prologic | Ahead of Time | 12:42 |
prologic | as opposed to JIT | 12:42 |
prologic | V8 compiles the .js ahead of time nito native code | 12:42 |
prologic | before execution | 12:42 |
prologic | it does this blindly fast though | 12:42 |
pdurbin | oh, you meant AOT | 12:42 |
prologic | sorry | 12:42 |
prologic | yes :) | 12:42 |
prologic | what did I say? | 12:42 |
prologic | argg | 12:42 |
prologic | yeah AOT | 12:42 |
prologic | not AOP :P | 12:42 |
prologic | sorry | 12:42 |
prologic | getting late :) | 12:42 |
pdurbin | we're just waking up here | 12:43 |
prologic | haha | 12:43 |
prologic | Sat Nov 22 22:45:20 AEST 2014 | 12:43 |
prologic | gonna go to bed as soon as I get this crux/bitlbee docker image working | 12:43 |
prologic | and published to the hub | 12:43 |
pdurbin | ok, please remind to talk about what Erlang people say about concurrency programming in node.js. Actually, maybe you can join me in #sourcefu some day: http://sourcefu.com | 12:45 |
pdurbin | prologic: ^^ | 12:45 |
*** sloria has joined #circuits | 14:09 | |
*** Osso has quit IRC | 17:20 | |
*** sloria has quit IRC | 17:58 | |
*** sloria has joined #circuits | 18:03 | |
*** sloria has quit IRC | 20:07 | |
*** sloria has joined #circuits | 20:16 | |
*** sloria has quit IRC | 20:23 | |
*** sloria has joined #circuits | 22:31 | |
*** Osso has joined #circuits | 23:46 |
Generated by irclog2html.py 2.11.0 by Marius Gedminas - find it at mg.pov.lt!