#jython IRC Log (v0.9)


IRC Log for 2013-11-18

Timestamps are in GMT/BST.

[1:10] * lheuer1 (~Adium@f048098032.adsl.alicedsl.de) has joined #jython
[1:13] * lheuer (~Adium@unaffiliated/lheuer) Quit (Ping timeout: 264 seconds)
[1:32] * lheuer1 (~Adium@f048098032.adsl.alicedsl.de) Quit (Quit: Leaving.)
[3:11] * mcurve (~quassel@pop.nakinasystems.com) Quit (Remote host closed the connection)
[3:13] * mcurve (~quassel@pop.nakinasystems.com) has joined #jython
[3:39] * sinistersnare (~sinisters@pool-108-28-93-153.washdc.fios.verizon.net) Quit (Read error: Connection reset by peer)
[6:34] * thereisnospoon (~thereisno@113-61-86-28.static.qld.dsl.net.au) Quit (Ping timeout: 265 seconds)
[6:45] * thereisnospoon (~thereisno@113-61-86-28.static.qld.dsl.net.au) has joined #jython
[6:48] * thereisnospoon (~thereisno@113-61-86-28.static.qld.dsl.net.au) Quit (Remote host closed the connection)
[6:49] <peke> jimbaker: i understand the reasoning, but not having ctypes by default is definitely not ideal in many cases. i work often in environments that are not connected to the public internet and there dependencies like this are problematic. and even when pip install works, that's a separate step uses need to do.
[6:49] * thereisnospoon (~thereisno@113-61-86-28.static.qld.dsl.net.au) has joined #jython
[6:52] <peke> with normal external modules all this is normal and we can avoid using them when having an external dependency is not worth the benefits it brings.
[6:54] * lheuer (~Adium@f048098032.adsl.alicedsl.de) has joined #jython
[6:54] * lheuer (~Adium@f048098032.adsl.alicedsl.de) Quit (Changing host)
[6:54] * lheuer (~Adium@unaffiliated/lheuer) has joined #jython
[6:55] <peke> under these terms ctypes is basically an external dependency. it also requires surrounding all ctypes imports with try/except and to otherwise handle situation it is not available.
[6:59] <peke> btw, has anyone asked could jyni by dual-licensed? would ease including it, or at least its ctypes support, into jython.
[7:05] * thereisnospoon (~thereisno@113-61-86-28.static.qld.dsl.net.au) Quit (Read error: Connection reset by peer)
[7:05] * thereisnospoon (~thereisno@113-61-86-28.static.qld.dsl.net.au) has joined #jython
[9:47] * thereisnospoon (~thereisno@113-61-86-28.static.qld.dsl.net.au) Quit (Ping timeout: 272 seconds)
[9:50] * jarekps (~jsmiejcza@office.clearcode.cc) has joined #jython
[9:59] * thereisnospoon (~thereisno@113-61-86-28.static.qld.dsl.net.au) has joined #jython
[10:39] * thereisnospoon (~thereisno@113-61-86-28.static.qld.dsl.net.au) Quit (Ping timeout: 245 seconds)
[10:52] * thereisnospoon (~thereisno@113-61-86-28.static.qld.dsl.net.au) has joined #jython
[11:36] * thereisnospoon (~thereisno@113-61-86-28.static.qld.dsl.net.au) Quit (Ping timeout: 245 seconds)
[11:37] * thereisnospoon (~thereisno@113-61-86-28.static.qld.dsl.net.au) has joined #jython
[11:59] * jarekps (~jsmiejcza@office.clearcode.cc) Quit (Quit: jarekps)
[12:03] * jarekps (~jsmiejcza@office.clearcode.cc) has joined #jython
[12:13] * thereisnospoon (~thereisno@113-61-86-28.static.qld.dsl.net.au) Quit (Ping timeout: 264 seconds)
[12:19] * thereisnospoon (~thereisno@113-61-86-28.static.qld.dsl.net.au) has joined #jython
[14:11] * thereisnospoon (~thereisno@113-61-86-28.static.qld.dsl.net.au) Quit (Ping timeout: 252 seconds)
[14:12] * jarekps (~jsmiejcza@office.clearcode.cc) Quit (Read error: Operation timed out)
[14:13] * jarekps (~jsmiejcza@office-2.clearcode.cc) has joined #jython
[14:17] * thereisnospoon (~thereisno@113-61-86-28.static.qld.dsl.net.au) has joined #jython
[14:24] * zz_whg is now known as whg
[14:27] * jarekps (~jsmiejcza@office-2.clearcode.cc) Quit (Ping timeout: 245 seconds)
[15:13] <whg> Does anybody here use tox to test scripts for compatibility with jython? Even for simple projects without dependencies, jython2.7b1 is erroring out somewhere in the tox machinery
[15:14] <whg> (the exact error is a problem with unicodeescape somewhere in the html5lib that pip is using for osmething or other
[15:14] <whg> )
[15:22] * robbyoconnor (~wakawaka@guifications/user/r0bby) Quit (Ping timeout: 248 seconds)
[15:55] * thereisnospoon (~thereisno@113-61-86-28.static.qld.dsl.net.au) Quit (Ping timeout: 245 seconds)
[16:08] <jimbaker> peke, it is worth exploring. of course we should see it work first. i'm just glad someone is working on this, no matter how it gets implemented
[16:09] <jimbaker> whg, this is because ssl is broken on 2.7b1
[16:09] <whg> jimbaker: I was afraid of that
[16:09] <whg> jimbaker: But I was hoping to get around it by not having any dependencies
[16:10] <jimbaker> topi` is looking at getting non blocking sockets for ssl going, which is required for pip/requests
[16:10] <whg> jimbaker: And the exact error (about unicodeescape) threw me
[16:10] <jimbaker> whg, don't worry, it has thrown a number of people ;)
[16:10] <jimbaker> i was very much wtf on it myself
[16:11] <jimbaker> but in a nutshell, the ssl support in 2.7b1 lies. it says it has decrypted the payload. but it doesn't
[16:11] <whg> Wha?
[16:11] <jimbaker> totally borked, sorry
[16:11] <whg> I imagine *that* was fun to troubleshoot
[16:12] <whg> How does it manage to improperly report a decryption?
[16:12] <jimbaker> whg, by not bothering to do it?
[16:12] <whg> jimbaker: No, that's probably not it???
[16:12] <whg> :-)
[16:13] <jimbaker> anyway, we are going to get it to work. now for tox - this looks exactly like the sort of thing that really requires a robust pip working
[16:13] <jimbaker> but i have never used it
[16:14] <jimbaker> i do very much like holger's code, he's really an amazing dev
[16:16] <jimbaker> btw, i will be at the high performance computing in python workshop today at supercomputing 2013, which is being held in denver this week. naturally i will be thinking of how to apply w/ jython, once we have jyni in place
[16:16] <whg> jimbaker: Exciting
[16:17] <whg> jimbaker: Does pip work in Jython 2.5?
[16:18] <jimbaker> the key piece i think will be figuring how to optimize handoffs between java and c code. there are potential workarounds. there may be more, because of the heterogeneous system architecture that's being worked on for integrating java 8 with GPU computation
[16:19] <jimbaker> whg, i understand that this is the case. but everything i do relies on 2.7
[16:19] <jimbaker> whg, btw, what does work is easy_install on my jython-ssl branch
[16:20] * robbyoconnor (~wakawaka@guifications/user/r0bby) has joined #jython
[16:20] * robbyoconnor (~wakawaka@guifications/user/r0bby) Quit (Client Quit)
[16:21] <whg> jimbaker: OK. Thanks for the pointer. I actually don't really want to go back to 2.5 and lose dict comprehensions, etc., so I might just monitor the ssl work for now. I was planning to use tox to automate showing off Jython vs. CPython for GIL stuff (and damn is PyPy fast), but my talk isn't yet scheduled, so I don't have to rush or anything.
[16:21] <jimbaker> whg, we are going to get this ssl work done soon
[16:22] <jimbaker> it's our beta 2 blocker
[16:22] <whg> A new beta? Exciting.
[16:22] <jimbaker> whg, yeah, it's only about time :)
[16:24] <jimbaker> whg, btw, there's a very cool project called zippy. should be faster than pypy. currently uses some of jython and is very incomplete. i would like to see where this project is a year from now
[16:24] <jimbaker> ideally we will merge it in
[16:25] <whg> I was pretty impressed with Jython's speed on this (I remember it being slower than CPython by a lot, but for some simple busy-work, it's actually faster). Does that perf improvement happen to be across-the-board?
[16:25] <jimbaker> there was a demo of it at http://splashcon.org/2013/
[16:25] <jimbaker> whg, zippy does invokedynamic + specialization + frame removal
[16:25] <jimbaker> type specialization
[16:26] <whg> jimbaker: invokedynamic should lead to *much* better JITing, right?
[16:26] <jimbaker> whg, yes. this is why jruby is reasonably fast right now
[16:27] <jimbaker> but zippy uses an alternative jvm called truffle, http://wiki.jvmlangsummit.com/Truffle:_A_Self-Optimizing_Runtime_System
[16:28] <jimbaker> actually got this slightly mixed up: the alternative jvm is http://openjdk.java.net/projects/graal/, truffle builds on this
[16:28] <jimbaker> ok, i have arrived in denver. i will be back intermittently during the workshop
[16:29] * thereisnospoon (~thereisno@113-61-86-28.static.qld.dsl.net.au) has joined #jython
[16:33] <whg> enjoy
[16:34] * thereisnospoon (~thereisno@113-61-86-28.static.qld.dsl.net.au) Quit (Ping timeout: 245 seconds)
[16:38] * thereisnospoon (~thereisno@113-61-86-28.static.qld.dsl.net.au) has joined #jython
[16:49] * thereisnospoon (~thereisno@113-61-86-28.static.qld.dsl.net.au) Quit (Ping timeout: 248 seconds)
[16:51] * thereisnospoon (~thereisno@113-61-86-28.static.qld.dsl.net.au) has joined #jython
[17:03] <whg> Oh, I remember we had discussed a library somewhat similar to six, but for different interpreters instead of versions. How do you feel about naming it geechee, gullah, or patois? The first two are different names for the same cultural group (and their creole language) from the Low Country of Georgia and South Carolina. The last is a language concept related to a creole. I'd actually prefer creole, but somebody already used that one for a wiki language
[17:03] <whg> :-/
[17:25] <jimbaker> i think patois might work well
[17:26] <whg> OK. I'll try to get approval from the relevant people to do this in my spare time, at least at first.
[17:31] <jimbaker> whg, awesome!
[19:34] * Arfrever (~Arfrever@apache/committer/Arfrever) Quit (Ping timeout: 245 seconds)
[19:56] * fwierzbicki (~Adium@99-106-170-162.lightspeed.sntcca.sbcglobal.net) Quit (Remote host closed the connection)
[19:56] * fwierzbicki (~Adium@99-106-170-162.lightspeed.sntcca.sbcglobal.net) has joined #jython
[20:29] * leo-the-manic (~leo@rrcs-24-97-142-42.nys.biz.rr.com) has joined #jython
[20:58] <topi`> jimbaker: I'm now fairly well acquainted with the SSLEngine workings / handshake cycle but the main problem now is - how do I test this?
[20:58] <topi`> it's difficult to write unit tests for it
[21:00] <topi`> another main problem is that since my project using Django/Jython is in (fairly) good shape, I'm back to working with more mundane things, which means less time with Jython :(
[21:00] <topi`> (less paid time, that is)
[21:06] <jimbaker> topi`, lack of good testing is why i think we had a borked ssl module, to be honest
[21:07] <jimbaker> topi`, having said that, i'm pretty certain i can help test it for you, if you have a branch you want to share w/ me
[21:10] <jimbaker> topi`, i also have some code we can plug in for gzip processing (basically use the header, this is horribly documented)
[21:10] <jimbaker> i need to pull this into another repo
[21:10] <jimbaker> (horribly documented in the java libraries)
[21:15] <jimbaker> topi`, btw, it's really good to hear that your django/jython project is working well! i assume that means on 2.7 jython too
[21:31] <whg> topi`: Actually, I've been meaning to ask: are you deploying as a WAR, or on a WSGI server?
[21:32] <leo-the-manic> whg: Are there WSGI servers written in Java?
[21:33] <leo-the-manic> Also is http://hg.python.org/jython the official repo? I'm trying to find something Jython related with an RSS feed :P
[21:34] <whg> leo-the-manic: I have no idea, but it seems like a pure Python WSGI server ought to run just fine under Jython.
[21:34] <leo-the-manic> whg: Ohh right. Like the CherryPy server?
[21:34] <whg> leo-the-manic: I don't know anything about CherryPy
[21:34] <whg> I was thinking more like Gunicorn
[21:35] <leo-the-manic> whg: Gotcha
[21:35] <whg> But if CherryPy is pure Python, I don't see why it wouldn't work
[22:18] * sinistersnare (~sinisters@pool-108-28-93-153.washdc.fios.verizon.net) has joined #jython
[22:19] <sinistersnare> jimbaker, i forgot to show you this a couple days ago http://i.imgur.com/EYB5F8B.png
[22:31] <topi`> jimbaker: yup, jython 2.7b1 w/ jython-ssl patches and some clamp magic. It's all in a self-contained WAR.
[22:32] <topi`> should clean some up and try to create patches against django-on-jython
[22:33] <topi`> whg: cherrypy is pure python, and reasonably fast, but it's not very maintained at the moment.
[22:33] <topi`> I'd say there are better alternatives out there these days :)
[22:33] <whg> topi`: Yeah, I'd probably lean on ngninx+gunicorn or tomcat
[22:34] <topi`> at one time, I chose it because of Python 3 compatibility
[22:34] <topi`> whg: we get memory leaks with tomcat7, but that is only at redeploy
[22:35] <whg> topi`: We currently spin up new instances rather than redeploy, as part of a no-downtime deploy strategy
[22:36] <whg> topi`: (even though we deploy Java-based WARs instead of Jython-based ones)
[22:37] <topi`> I can see good arguments for that - if I'd be running a pure-python site, running, say, Pyramid, I'd not bother with setting up new instances, since starting python is so quick
[22:37] <topi`> and especially starting up pyramid
[22:37] <topi`> but with Java it's a completely different game
[22:37] <topi`> starting Tomcat takes quite some time, not to mention kicking up those servlets
[22:39] <whg> topi`: A minute or two, but we let the old tomcats serve old requests
[22:40] <whg> topi`: Then cut over new requests once the new tomcat is up-and-running
[22:40] <jimbaker> gunicorn is not going to work until someone ports greenlets. which really doesn't make sense until java gets coroutine support
[22:41] <whg> :-(
[22:41] <whg> I'll have to make a note of that. Thanks.
[22:41] <whg> Oh, and I have to run if dinner is gonna be on the table in time.
[22:41] <whg> See you around
[22:41] <jimbaker> i mean one could write a greenlet port that uses threads
[22:41] <jimbaker> but that's crazy
[22:42] <jimbaker> but use some other wsgi server. such as modjy. that's the way to go
[22:52] * bobinator60 (~bobinator@pool-108-41-177-244.nycmny.fios.verizon.net) has joined #jython
[22:53] <bobinator60> i'm looking at the Jython docs,but I can't seem to find out which version of Python is implemented by Jython. based on the Jython version, i would get 2.5.2?
[23:06] <sinistersnare> bobinator60, yes, and the latest beta is 2.7
[23:06] <sinistersnare> the jython version corresponds to the CPython version
[23:06] <bobinator60> i assume the threading under jython is better than with gevent and all that crap?
[23:07] <bobinator60> sinistersnare: i assume the threading under jython is better than with gevent and all that crap?
[23:09] <sinistersnare> I havent done any threading with jython, but there is no GIL, and true threads
[23:26] <jimbaker> bobinator60, yes, it's very much nicer on jython
[23:27] <jimbaker> sinistersnare, sounds great about your application to cu boulder!
[23:27] <jimbaker> bobinator60, i would recommend looking at this chapter, http://www.jython.org/jythonbook/en/1.0/Concurrency.html
[23:51] * clajo04 (~clajo04@pool-108-54-80-252.nycmny.fios.verizon.net) Quit (Quit: clajo04)


These logs were automatically created by JythonLogBot_ on irc.freenode.net using a slightly modified version of the Java IRC LogBot (github).