#jython IRC Log (v0.9)


IRC Log for 2013-06-26

Timestamps are in GMT/BST.

[2:09] * [Arfreve1] (~Arfrever@minotaur.apache.org) has joined #jython
[2:10] * [Arfrever] (~Arfrever@apache/committer/Arfrever) Quit (Ping timeout: 246 seconds)
[2:56] * [Arfreve1] (~Arfrever@minotaur.apache.org) Quit (Quit: leaving)
[2:57] * [Arfrever] (~Arfrever@apache/committer/Arfrever) has joined #jython
[7:41] * purplefox (~purplefox@host-80-43-250-100.as13285.net) has joined #jython
[7:57] * daixtr (~daixtr@ has joined #jython
[8:04] * daixtr (~daixtr@ Quit (Quit: leaving)
[13:53] * enebo (~enebo@c-75-73-8-169.hsd1.mn.comcast.net) has joined #jython
[13:57] * enebo (~enebo@c-75-73-8-169.hsd1.mn.comcast.net) Quit (Client Quit)
[13:57] * enebo (~enebo@c-75-73-8-169.hsd1.mn.comcast.net) has joined #jython
[15:49] * robbyoconnor (~wakawaka@guifications/user/r0bby) Quit (Ping timeout: 252 seconds)
[16:36] * enebo (~enebo@c-75-73-8-169.hsd1.mn.comcast.net) Quit (Quit: enebo)
[16:52] * enebo (~enebo@c-75-73-8-169.hsd1.mn.comcast.net) has joined #jython
[17:06] * enebo (~enebo@c-75-73-8-169.hsd1.mn.comcast.net) Quit (Quit: enebo)
[17:14] * topi` (foobar@lima-64.srv.hosting.fi) has joined #jython
[17:14] <topi`> hi folk. can anyone recommend me a good book on java for pythonistas? or coming from a python background
[17:15] <topi`> I need to start maintaining a spring/hibernate project. From the looks of it, java seems to be heaps more complex than python
[17:27] <jimbaker> topi`, agree with that sentiment. you might get something out of our jython book (http://jythonbook.com) - at the very least jython can be a good companion for such as yourself
[17:30] <jimbaker> so one thing the custom proxymaker lacks is the ability to directly return a java class, with any and all details filled in. that seems like a nice capability and an important one
[17:49] <topi`> jimbaker: you're *always* online, aren't you? :)
[17:50] <agronholm> nope...
[17:51] <topi`> jimbaker: if the bosses want me to start adding new functionality to the existing code base, I'll try to implement new classes on Jython and then find some way to instantiate those on the java side...
[17:51] <agronholm> you should be aware of the pitfalls if you do that
[17:51] <agronholm> debugging gets much harder
[17:52] <agronholm> and you will be adding the weight of the python runtime of course on top of what you already have
[17:52] <jimbaker> topi`, i recently started getting more involved in jython because of plans to use at rackspace for at least one project
[17:53] <jimbaker> agronholm has a valid point that there's now two points of complexity. however, if you know python, it's pretty straightforward debugging imho because it's just python code
[17:54] <jimbaker> so when i've worked on extending jython i always ask myself, can i write this code in python, maybe calling back into jython internals? because it's just easier
[17:54] <agronholm> you can't follow execution with a java debugger to python code
[17:55] <agronholm> or vice versa
[17:56] <jimbaker> agronholm, yeah, that is an issue. since i'm a big fan of print style debugging, and cannot stand line by line debugging. it doesn't come up as an issue for me
[17:56] <agronholm> my experiences with GUI debuggers have been quite good
[17:56] <jimbaker> topi`, so be aware of that one aspect
[17:57] <agronholm> I dislike modifying code just for the sake of debugging
[17:57] <jimbaker> agronholm, to me they're like a microscope
[17:57] <agronholm> yes, and that is often required
[17:57] <jimbaker> whereas modifying code is so easy w/ tools to get back to where you started
[17:57] <jimbaker> so easy to play with ideas, see where they go
[17:58] <jimbaker> but i'm a dynamic languages guy, that's just part of my makeup :)
[17:58] <agronholm> well I prefer dynamic languages too
[17:58] <agronholm> but I don't think that's relevant to debugging style preferences
[18:01] <topi`> I prefer import pdb; pdb.set_trace()
[18:01] <topi`> then again, other languages might have other tools
[18:01] <topi`> but i'm loathe to install any fancy GUI tools on my puny macbook
[18:02] <agronholm> not enough screen space or memory?
[18:02] <topi`> yeah, the 13" screen is not very useful
[18:02] <topi`> I do everything in text mode emacs ;) OTOH, there are some pretty good .el libraries for python hacking
[18:03] <jimbaker> topi`, pdb works with jython. but again you will just be debugging at the python level
[18:03] <topi`> jimbaker: the biggest issue for me is that the whole project is to be run inside a tomcat container
[18:03] <topi`> so how the hell do you debug that
[18:04] <agronholm> logging?
[18:04] <jimbaker> topi`, yeah, debugging interactively becomes an issue then. i'm sure there's a way to intercept... but i do not know
[18:04] <agronholm> or, in case of java code, remote debugging
[18:04] <topi`> well that's on the same level as prints :)
[18:04] <agronholm> you can do remote debugging with pydev
[18:04] <agronholm> works with jython too
[18:05] <topi`> my main way of remote debugging is deploying a twisted manhole and getting my foot on the interpreter that way :)
[18:05] <jimbaker> agronholm, interesting tip
[18:05] <jimbaker> topi`, nice. i don't know the status of manhole support, looking again at twisted is something i plan to do, but later this summer
[18:06] <jimbaker> ideally in the context of a netty reactor
[18:07] <topi`> jimbaker: I didn't know any of all this twisted kung-fu before last winter, but gradually came to have a Brown belt ;)
[18:08] <jimbaker> topi`, cool stuff. so when i last checked, there was some basic support for twisted in jython. enough that a brown belt should be able to navigate ;)
[18:08] <topi`> I would use twisted for *any* networking related task, or perhaps not for a simple urllib2 endeavour ;)
[18:08] <agronholm> I avoid twisted if I possibly can
[18:08] <agronholm> last I checked, it didn't work with jython or even Python 3
[18:08] <topi`> jimbaker: it could be a good CPython 2.7 compatibility test to run all Twisted tets.
[18:09] <topi`> tests.
[18:09] <agronholm> and it carries quite a burden of a legacy API
[18:09] <agronholm> so, no thanks
[18:09] <agronholm> it doesn't even work with concurrent.futures
[18:09] <agronholm> and it can't, ever
[18:09] <agronholm> unless they change the API
[18:09] <topi`> agronholm: the legacy API is the main reason why python3 support has been lagging
[18:09] <agronholm> I bet
[18:10] <agronholm> now you see the problem?
[18:10] <jimbaker> well there is tulip. and that's really just twisted for python 3
[18:10] <topi`> is this concurrent.futures some kind of a new upcoming feature?
[18:10] <agronholm> no, it's part of python 3.2 standard library
[18:10] <jimbaker> not that tulip futures are not concurrent futures
[18:11] <jimbaker> and intentionally so in guido's design. because they're not compatible
[18:11] <agronholm> do they lack the concurrency features (locking, waiting)?
[18:11] <jimbaker> note that
[18:11] <agronholm> I wonder why guido chose the name tulip, that being already taken in pypi
[18:12] <jimbaker> http://www.python.org/dev/peps/pep-3156/#futures
[18:13] <topi`> agronholm: maybe he's missing Amsterdam.
[18:13] <agronholm> maybe, but choosing a name that conflicts with an existing project is not good practice
[18:14] <topi`> well, he's not being called a Dictator for nothing ;)
[18:14] <agronholm> well then he should just remove the previous one from PyPI :)
[18:15] <agronholm> https://pypi.python.org/pypi/tulip/0.1.0
[18:15] <agronholm> (why is this project not named "flower"?)
[18:20] <topi`> hmm, concurrent.futures has some niceties, like encapsulating your ProcessPoolExecutor inside a with: clause
[18:20] <topi`> for quickly substituting your map(foo, lotsofstuff) into a concurrent one
[18:21] <topi`> I just wonder what's the communication overhead since everything must be pickled between processes
[18:21] <agronholm> it's best to keep the communication to a minimum
[18:24] <jimbaker> agronholm, you ported concurrent.futures to jython. just curious about the performance you saw, vs just doing it in java
[18:25] <agronholm> I only ported it to python 2.5+, no special work went into jython compatibility
[18:25] <agronholm> I haven't used it with jython
[20:38] * pooperidge (~jerryg@c-71-58-179-44.hsd1.pa.comcast.net) Quit (Quit: leaving)
[21:15] * lopex (uid4272@gateway/web/irccloud.com/x-lplqhtpwtvgyzbjc) Quit (Ping timeout: 248 seconds)
[22:25] -tomaw- [Global Notice] Hi all, we just experienced a little unexpected issue with the webchat resulting in all its users being momentarily kicked off the service. It's back working correctly now. Sorry for the inconvenience!
[23:08] * enebo (~enebo@c-75-73-8-169.hsd1.mn.comcast.net) has joined #jython
[23:12] * enebo (~enebo@c-75-73-8-169.hsd1.mn.comcast.net) Quit (Client Quit)
[23:27] * Rondom (~rondom@2a01:488:66:1000:b24d:4f2f:0:1) Quit (Ping timeout: 246 seconds)
[23:27] * Rondom (~rondom@2a01:488:66:1000:b24d:4f2f:0:1) has joined #jython
[23:59] <jimbaker> latest update on better java integration with custom proxy maker support; i have an outstanding support branch against jython that i plan to merge soon (with minor updates re doc comments and better variable naming)


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