#jython IRC Log


IRC Log for 2013-10-07

Timestamps are in GMT/BST.

[1:05] * sinsnare|away is now known as sinistersnare
[2:04] * lheuer (~Adium@unaffiliated/lheuer) Quit (Ping timeout: 245 seconds)
[3:45] * sinistersnare is now known as sinsnare|zzZZzz
[6:20] * lheuer (~Adium@ has joined #jython
[6:20] * lheuer (~Adium@ Quit (Changing host)
[6:20] * lheuer (~Adium@unaffiliated/lheuer) has joined #jython
[7:47] * Arfrever (~Arfrever@apache/committer/Arfrever) has joined #jython
[9:49] * vext01 (~edd@host-92-20-156-189.as13285.net) has joined #jython
[9:49] <vext01> morning all
[10:04] * lheuer (~Adium@unaffiliated/lheuer) Quit (Ping timeout: 240 seconds)
[11:18] * seletz (~seletz@HSI-KBW-149-172-101-236.hsi13.kabel-badenwuerttemberg.de) has joined #jython
[11:19] * seletz (~seletz@HSI-KBW-149-172-101-236.hsi13.kabel-badenwuerttemberg.de) Quit (Client Quit)
[11:28] * robbyoconnor (~wakawaka@guifications/user/r0bby) Quit (Ping timeout: 240 seconds)
[12:12] * crocket (~crocket@unaffiliated/crocket) has joined #jython
[12:12] <crocket> Is jython 2.7 the same as python 2.7?
[12:39] * robbyoconnor (~wakawaka@guifications/user/r0bby) has joined #jython
[12:44] * robbyoconnor (~wakawaka@guifications/user/r0bby) Quit (Ping timeout: 268 seconds)
[12:45] * r0bby_ (~wakawaka@guifications/user/r0bby) has joined #jython
[12:51] <agronholm> crocket: they should be mostly compatible
[13:06] * zz_whg is now known as whg
[13:41] * r0bby_ (~wakawaka@guifications/user/r0bby) Quit (Ping timeout: 256 seconds)
[13:50] * mcurve (~quassel@pop.nakinasystems.com) Quit (Remote host closed the connection)
[13:53] * mcurve (~quassel@pop.nakinasystems.com) has joined #jython
[14:05] * enebo (~enebo@c-75-73-8-169.hsd1.mn.comcast.net) has joined #jython
[14:19] * r0bby_ (~wakawaka@guifications/user/r0bby) has joined #jython
[14:20] * lheuer (~Adium@f049066250.adsl.alicedsl.de) has joined #jython
[14:20] * lheuer (~Adium@f049066250.adsl.alicedsl.de) Quit (Changing host)
[14:20] * lheuer (~Adium@unaffiliated/lheuer) has joined #jython
[15:02] * lheuer (~Adium@unaffiliated/lheuer) Quit (Quit: Leaving.)
[15:41] * lheuer (~Adium@f049066250.adsl.alicedsl.de) has joined #jython
[15:41] * lheuer (~Adium@f049066250.adsl.alicedsl.de) Quit (Changing host)
[15:41] * lheuer (~Adium@unaffiliated/lheuer) has joined #jython
[16:30] * r0bby_ (~wakawaka@guifications/user/r0bby) Quit (Max SendQ exceeded)
[16:31] * r0bby_ (~wakawaka@guifications/user/r0bby) has joined #jython
[16:35] * r0bby_ (~wakawaka@guifications/user/r0bby) Quit (Remote host closed the connection)
[16:35] * r0bby_ (~wakawaka@guifications/user/r0bby) has joined #jython
[16:38] * r0bby_ (~wakawaka@guifications/user/r0bby) Quit (Client Quit)
[17:09] * ciziar (~textual@hd5b912b5.seluldx.dyn.perspektivbredband.net) has joined #jython
[17:35] * ciziar (~textual@hd5b912b5.seluldx.dyn.perspektivbredband.net) Quit (Ping timeout: 246 seconds)
[17:57] <vext01> jimbaker: about?
[18:06] <jimbaker> vext01, what's up?
[18:08] <jimbaker> btw, i made some progress in my understanding of egg formats. basically i'm trying to ensure that jars can be placed in eggs through the setup.py buildjar process (through clamp), then composed together for a single jar, along w/ supporting python, in setup.py singlejar
[18:10] <jimbaker> setuptools is amazingly cryptic. the problem seems to be sort of reasonably hard, but the docs and code really seem to strive to make it even harder
[18:10] <jimbaker> http://lucumr.pocoo.org/2012/6/22/hate-hate-hate-everywhere/ takes one viewpoint ;)
[18:29] <vext01> lol
[18:29] <vext01> jimbaker: today i spent some time tracing why the openbsd jffi tarball causes jython to bail
[18:29] <vext01> basically, jnr-posix is broken
[18:29] <vext01> its reporting paths to be symlinks when they are not
[18:30] <jimbaker> vext01, that's unfortunate, given that's one functionality we use jnr for. i suppose another reason to go to java 7/nio2
[18:31] <vext01> https://github.com/jnr/jnr-posix/issues/15
[18:31] <vext01> i know this jeremy guy from some bsd events
[18:31] <vext01> he maintains jruby
[18:31] <vext01> says he has a patch
[18:32] <jimbaker> vext01, sounds good, because i thought you volunteered in that issue comment as well to fix :)
[18:32] <jimbaker> always best to be a group effort of course
[18:33] <vext01> i want to see what the maintainers of jnr-posix say
[18:38] <jimbaker> vext01, sounds good
[18:38] <vext01> java needs a better way of calling out to C
[18:41] <vext01> fwiw, with jeremies patch jython gets further
[18:41] <vext01> dies on a: java.lang.AbstractMethodError: java.lang.AbstractMethodError: org.python.modules.posix.PythonPOSIXHandler.error(Ljnr/constants/platform/Errno;Ljava/lang/String;Ljava/lang/String;)V
[19:11] <jimbaker> vext01, sounds like some sort of incompatible jar to me
[19:20] <vext01> maybe i shouldnt use HEAD
[19:33] <jimbaker> vext01, yeah, something like that should work. i don't think you will see this error if it's all compiled together - java compilation is fairly strict
[19:39] * r0bby_ (~wakawaka@2001:470:1f07:8af:c84c:dda4:4fdb:2ef6) has joined #jython
[19:39] * r0bby_ (~wakawaka@2001:470:1f07:8af:c84c:dda4:4fdb:2ef6) Quit (Changing host)
[19:39] * r0bby_ (~wakawaka@guifications/user/r0bby) has joined #jython
[19:43] <vext01> jimbaker: \o/
[19:43] <vext01> >>> os.umask(777)
[19:43] <vext01> 18
[19:43] <vext01> works with jeremies patch against jnr-posix-2.4
[19:45] <jimbaker> vext01, sweet
[19:45] <vext01> this is a royal pita to maintain thought isnt it
[19:46] <vext01> i can't give you my jars as the lifetime of the shared objects are too short lived
[19:46] <jimbaker> well, consider the alternative :) jnr is our best option, short of it getting rolled into java 9
[19:46] <vext01> well, true
[19:46] <jimbaker> at the jvm lang summit, charlie nutter made a nice arg for that. but i suspect it will go nowhere
[19:47] <vext01> what else can i try that needs jffi?
[19:47] <vext01> basically, system calls, right?
[19:47] <jimbaker> vext01, well, pretty much any sort of setup like easy_install/pip requires it
[19:47] <vext01> ah yes
[19:48] <jimbaker> it's an interesting situation - we might be using jython w/ jnr for setup/ahead-of-time tasks, but then not use it (because of security manager restrictions) in actual deployment
[19:48] <jimbaker> i see that's as a fairly common scenario
[19:48] <vext01> i could package jython up with local patching, that's probably the best we will get
[19:51] <vext01> bah, forgot i need your ssl fork
[19:56] <vext01> not sure this is 100% correct still
[19:56] <vext01> >>> os.write(1, "yo")
[19:56] <vext01> OSError: [Errno 9] Bad file descriptor
[19:56] <vext01> that works in cpython, for example
[19:56] <vext01> and pypy
[19:59] <jimbaker> vext01, yeah, i suppose such well known FDs could work in some cases in jython, but i don't know if we can always ensure that 1 maps to stdout either
[19:59] <jimbaker> that also feels nonidiomatic python
[19:59] <jimbaker> biab
[20:03] <pjenvey> vext01 - os.write(sys.stdout.fileno(), "yo") should work however
[20:11] <vext01> pjenvey: indeed
[20:15] <pjenvey> i recall some special case handling of 0/1/2 file descriptors
[20:15] <pjenvey> somewhere
[20:15] <pjenvey> maybe we could do it everywhere but I dunno
[20:17] <pjenvey> it's just in isatty
[20:17] <pjenvey> i don't even recall why that was done
[20:18] <pjenvey> probably a fair amount of isatty(1) we wanted to avoid breaking
[20:18] * thereisnospoon_ (~thereisno@27-33-1-87.tpgi.com.au) Quit (Ping timeout: 246 seconds)
[20:32] * thereisnospoon_ (~thereisno@27-33-1-87.tpgi.com.au) has joined #jython
[20:38] * r0bby_ (~wakawaka@guifications/user/r0bby) Quit (Ping timeout: 245 seconds)
[21:12] <crocket> agronholm, Is jython 2.7 incompatible with python 3.3?
[21:12] <crocket> jython website doesn't tell me about cython compatibility.
[21:15] <agronholm> cython?
[21:15] <agronholm> are you confusing it with cpython (two completely different things)
[21:16] <agronholm> and python 2.7 has incompatibilities with python 3.3
[21:17] <crocket> hmm
[21:17] <crocket> agronholm, cython is the original python.
[21:17] <agronholm> no
[21:17] <agronholm> cython is a tool/language for creating C extensions for python more easily
[21:17] <crocket> ok
[21:17] <crocket> CPython
[21:18] <crocket> Why is jython lagging behind python?
[21:18] <agronholm> lack of manpower
[21:18] <crocket> ok
[21:18] <crocket> lack of funding
[21:18] <agronholm> yes, that too
[21:18] <crocket> I guess that should be an opensource project with funding from commercial companies.
[21:19] <agronholm> it's already an open source project, just with no funding from commercial companies (we had that for a while)
[21:20] <crocket> Jruby is quite well supported
[21:21] <agronholm> good for them
[21:27] <jimbaker> we are always interested in getting funding :)
[21:35] <topi`> or getting more devs :)
[21:35] <topi`> jimbaker: do you see any possibility in getting your ssl patches into jython trunk?
[21:36] <topi`> that would be a good time to release jython 2.7b2
[21:36] <jimbaker> topi`, yes. right now i'm feeling rather stymied by setuptools and its madness
[21:37] <topi`> jimbaker: I understand that. I tried, once, to debug and trace where my setuptools problem stemmed, and started to feel really depressed by the amount of confusion of setuptool
[21:37] <topi`> it's one codebase that needs badly a rewrite
[21:37] <topi`> I guess that's why they started the "distribute" effort.
[21:38] <jimbaker> topi`, so i think getting client ssl much like my patches in jython-ssl would be basically a reasonable prereq for beta2
[21:38] <jimbaker> at the very least, beta2 should support easy_install/pip
[21:39] * crocket (~crocket@unaffiliated/crocket) has left #jython
[21:39] <jimbaker> since that's pretty fundamental
[21:39] <jimbaker> topi`, re distribute: it's interesting that the effort and distutils2 has been abandoned
[21:40] <jimbaker> so we continue w/ setuptools :(
[21:41] <jimbaker> all i want to do is simply ensure a jar is available in a given package, because that just feels right and composes nicely
[21:41] <jimbaker> but setuptools is fighting me every inch :)
[21:42] <jimbaker> i have tried native_libs.txt, SOURCES.txt, etc. anyway, i'm pretty good at convincing software to do the right thing
[21:42] <jimbaker> biab, i need to bike back to my (home) office from this cafe
[22:00] <topi`> I didn't know distutils2 had such a fate...
[22:01] <topi`> jimbaker: wrt Django-jython, I'm currently adding some extras into doj's war support. I want to include py classes, which will then be placed into WEB-INF/lib/Lib
[22:02] <topi`> (since this is where jython-standalone.jar will find them, w/o any configuration, when that jar is situated at WEB-INF/lib
[22:03] <topi`> my Django project bundles a custom servlet (basically a scheduler) that will import python classes. I also modified the web.xml skel so that if specified, it'll add a custom servlet.
[22:03] <topi`> do you know who would accept patches for django-on-jython?
[22:05] * enebo (~enebo@c-75-73-8-169.hsd1.mn.comcast.net) Quit (Quit: enebo)
[22:07] <topi`> jimbaker: I think distlib is still alive, a descendant from distutils2
[22:07] <topi`> https://bitbucket.org/pypa/distlib
[22:09] <pjenvey> there was talk of including distlib in 3.4, I'm doubtful at this point
[22:10] <pjenvey> it hasn't been proposed yet
[22:11] <pjenvey> it has about a month and a half left before the beta1 deadline
[22:18] <topi`> I wonder if http://www.python.org/dev/peps/pep-0426/ is going to exit draft status at some point
[22:18] <jimbaker> topi`, thanks for the pointer of distlib
[22:19] <jimbaker> on
[22:19] <topi`> that's what distlib tries to implement...
[22:19] <jimbaker> re django on jython, fwierzbicki, is this something you have insight on?
[22:19] <topi`> jimbaker: based on the changes doc, it's still early stages
[22:20] <topi`> jimbaker: django-on-jython is also slightly lagging behind Django releases... I think there's some slight incompatibility wrt Django 1.5
[22:21] <topi`> I needed to fix it in doj source. I need to review my diff :)
[22:22] <jimbaker> topi`, assume we can make this happen. DoJ was originally my project, along w/ a GSoC student (leo soto)
[22:22] <jimbaker> so we can get these fixes in, once identified
[22:23] <topi`> good
[22:23] <jimbaker> this includes potentially django fixes - they will fast track these if we make a good persuasive case
[22:23] <topi`> what's Leo doing nowadays?
[22:23] <jimbaker> he's in australia these days iirc
[22:23] <topi`> one can still code even in Australia ;)
[22:24] <topi`> heck, I live in the periphery of peripheral europe, and still do code ;)
[22:25] <jimbaker> topi`, it's remarkable. certainly i saw very well when i was at canonical, with devs in hobart, tasmania and the extreme end of the gasp?? peninsula in canada
[22:25] * lheuer (~Adium@unaffiliated/lheuer) Quit (Quit: Leaving.)
[22:27] <topi`> jimbaker: Canonical certainly is a very well spread out group of hackers. How's Rackspace?
[22:27] <topi`> many of my fellow linux kernel hackers went to Canonical
[22:27] <jimbaker> well, we have lots of offices, plus projects like openstack do have lots of remote devs
[22:28] <jimbaker> from rackspace
[22:28] <topi`> Openstack is pretty interesting.
[22:28] <topi`> I should buy an old warehouse and set up a server farm w/ openstack ;)
[22:28] <jimbaker> topi`, could very well work
[22:29] <topi`> jimbaker: I noticed at rackspace's career pages that they're looking for python gurus
[22:29] <jimbaker> especially if you can take advantage of lower cooling costs in finland
[22:29] <jimbaker> topi`, yes we are
[22:29] <topi`> what kind of "guru level" does one need to have? :)
[22:29] <topi`> I started w/ python year 2000
[22:29] <jimbaker> topi`, well you certainly have enough time to reach guru level :)
[22:29] <topi`> but have been programming in various languages circa 1985
[22:30] <topi`> I was involved in the initial "arch" support infrastructure in the linux kernel, and one of the m68k arch hackers
[22:30] <topi`> but since then I've just stagnated in a bunch of corporations :/
[22:31] <topi`> back then, C was a lot of fun. Nowadays, it's Python where I get the kicks :)
[22:32] <topi`> it seems that no matter how deep you dive, there's still new & exciting stuff to learn about python
[22:32] <jimbaker> topi`, i definitely agree w/ that perspective on python!
[22:32] <topi`> that's why we want to get the thing going on under JVM, right? :)
[22:33] <topi`> for some odd reasons, that potential is largely ignored by the masses.
[22:34] <topi`> maybe they just choose JRuby. which is understandable - except that I don't want to learn Ruby, it's too "similar" to python
[22:35] <jimbaker> topi`, jruby is a very good implementation, with significant support from red hat (2 fulltime resources iirc)
[22:36] <topi`> if they've got Red Hat behind them, then it's a lot
[22:36] <topi`> jimbaker: do you think I should write an open-ended job application to some manager in Rackspace?
[22:36] <jimbaker> jruby has had such support for the last 6 years (before red hat, they were for engineyard, then sun)
[22:37] <jimbaker> topi`, nahh, if you're interested, contact me privately and i'll make the intro
[22:38] <jimbaker> but we have one thing going for jython - *python*
[23:07] <topi`> damn. DatabaseError: FATAL: sorry, too many clients already [SQLCode: 0], [SQLState: 53300]
[23:08] <topi`> This is with zxJDBC using a postgres adapter. I'm using with: statements to get/release connections/cursors, any idea why/what is eating up the connections?
[23:09] <topi`> if this is a known issue, then I don't have to start debugging ;) (I have no idea how to debug stuff that's happening inside a servlet that runs python code)
[23:09] <topi`> I wish I could import pdb; pbd.set_trace() however I have a feeling it won't work :)
[23:09] * ciziar (~textual@c-5eeaaa95-74736162.cust.telenor.se) has joined #jython
[23:14] <topi`> whoops. modjy.modjy_exceptions.ApplicationException: [Errno 2] File not found - /var/lib/tomcat7/webapps/mysite/WEB-INF/lib-python/django/utils/version$py.class (Too many open files)
[23:15] <topi`> I wonder if jython keeps all the $py.class files open?
[23:15] <topi`> django has infamously many .py files
[23:17] <topi`> I guess I really need to learn how to use those JMX debugging tools, to find out open file counts etc
[23:23] * lheuer (~Adium@f049066250.adsl.alicedsl.de) has joined #jython
[23:23] * lheuer (~Adium@f049066250.adsl.alicedsl.de) Quit (Changing host)
[23:23] * lheuer (~Adium@unaffiliated/lheuer) has joined #jython
[23:25] * lheuer (~Adium@unaffiliated/lheuer) Quit (Client Quit)
[23:27] <topi`> maybe it's my use of subprocess.Popen that is eating up all the file descriptors. sigh.
[23:29] * lheuer (~Adium@f049066250.adsl.alicedsl.de) has joined #jython
[23:29] * lheuer (~Adium@f049066250.adsl.alicedsl.de) Quit (Changing host)
[23:29] * lheuer (~Adium@unaffiliated/lheuer) has joined #jython
[23:29] <jimbaker> topi`, it's worth testing that out for subprocess
[23:31] <topi`> this is where I use subprocess:
[23:31] <topi`> cmd1 = '/bin/ping -c2 {addr}'.format(addr=addr)
[23:31] <topi`> try:
[23:31] <topi`> output = subprocess.check_output(cmd1.split(' '))
[23:32] <topi`> should get GC'ed when 'output' goes out of scope, right?
[23:35] <jimbaker> topi`, no. this is a fundamental difference in jython vs cpython
[23:36] <jimbaker> but output here is not interesting
[23:36] <jimbaker> so i would expect subprocess.check_output is closing everything
[23:43] <topi`> I'm reading subprocess.py implementation right now. It seems to me all handles are being closed.
[23:43] <topi`> it's funny that _communicate() is shared between win32 and jython :)
[23:45] * plankton (~plankton@ has joined #jython
[23:49] <topi`> jython does require a fair amount of file handles; I tried to see what happens if I do ulimit -n 64 ; jython ~/jython/Lib/subprocess.py
[23:50] <topi`> it went up to self._execute_child()


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