<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-34598348</id><updated>2011-12-13T22:54:33.723-05:00</updated><title type='text'>JPype : Chronicles of an Open Source project</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jpype.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34598348/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://jpype.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Steve Menard</name><uri>http://www.blogger.com/profile/01270928704114254653</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-34598348.post-2888442096992502150</id><published>2007-09-23T10:43:00.000-04:00</published><updated>2007-09-23T10:57:25.003-04:00</updated><title type='text'>JPype is alive! kinda ....</title><content type='html'>Despite a few false starts, I am still working on JPype. I haver recently undertaken to rewrite it again.&lt;br /&gt;&lt;br /&gt;Last year was a major false start. The architectural goal of writing less C++ landed writing just as much (in glue code), but also write a lot more of glue java and python code. Best forgotten.&lt;br /&gt;&lt;br /&gt;This time around, I decided to tackle the main issue first. So after doing minimal work on general class support, I tackled what I set out to do all those years ago : subclassing.&lt;br /&gt;&lt;br /&gt;As of this writing, it works! With a few restrictions, it is possible to extend a java class in python, pass an instance of it to java code and have the java code call the python methods! Hurray!!!&lt;br /&gt;&lt;br /&gt;With this release, I have also decided to get serious about multiple host language support. To this end, the main package has been renamed to JEmbed. It has a completely new API geared towards the new functionality.&lt;br /&gt;&lt;br /&gt;JPype will continue to exist. My goal is to re-implement the JPype API on top of JEmbed such that existing programs will continue to work as-is.&lt;br /&gt;&lt;br /&gt;I am also going to try an open approach to the progress. All the main tasks are listed on t he sourceforge project (&lt;a href="http://sourceforge.net/pm/task.php?group_project_id=53925&amp;amp;group_id=109824&amp;amp;func=browse"&gt;JEmbed&lt;/a&gt; and &lt;a href="http://sourceforge.net/pm/task.php?group_project_id=53926&amp;amp;group_id=109824&amp;amp;func=browse"&gt;JPype&lt;/a&gt; ). As things progress, I will add tasks there, and track their completion.&lt;br /&gt;&lt;br /&gt;If anywone sees anything missing from there, or have requests to make, let me know! please open a feature request on the site (  &lt;a href="http://sourceforge.net/tracker/?group_id=109824&amp;amp;atid=655015"&gt;&lt;span style="text-decoration: underline;"&gt;http://sourceforge.net/tracker/?group_id=109824&amp;amp;atid=655015&lt;/span&gt;&lt;/a&gt; )&lt;br /&gt;&lt;br /&gt;Thats it for now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34598348-2888442096992502150?l=jpype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpype.blogspot.com/feeds/2888442096992502150/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34598348&amp;postID=2888442096992502150' title='19 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34598348/posts/default/2888442096992502150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34598348/posts/default/2888442096992502150'/><link rel='alternate' type='text/html' href='http://jpype.blogspot.com/2007/09/jpype-is-alive-kinda.html' title='JPype is alive! kinda ....'/><author><name>Steve Menard</name><uri>http://www.blogger.com/profile/01270928704114254653</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>19</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34598348.post-116226555518696718</id><published>2006-10-30T22:24:00.000-05:00</published><updated>2007-02-27T12:27:48.516-05:00</updated><title type='text'>Striking a balance</title><content type='html'>Sometime while I was writing version 0.5 of JPype, I realized I was writing a &lt;span style="font-weight: bold;"&gt;lot&lt;/span&gt; of C++ code, so I could enoy writing in Python ... not a very intelligent thing to do I think.&lt;br /&gt;&lt;br /&gt;So in version 0.6 I decided to move as much "logic" from the C++ layer, up to the python layer or down into the Java layer, depending on the actual functionality.&lt;br /&gt;&lt;br /&gt;0.6 is well under way, and so far thigns seem to be holding up. The upshot od that both Pythona nd Java are a LOT easier to work with than C++, so development velocity is greatly enhanced.&lt;br /&gt;&lt;br /&gt;There are 2 caveats though. Hence the "striking a balance" title of this post.&lt;br /&gt;&lt;br /&gt;The first is that with logic moved outside of C++, the interface between Python/C++ and Java/C++ becomes that much more complex. Handling all that by hand would mean a lot boilerplate code, and a lot of potential mistakes. So to ease that burden, I've written two tools : one called JNILayer is for the Java/C++ interface, the other for the Python/C++ layer is called PNIH (Python Native Interface Header). I'll probabl talk about them in a later post.&lt;br /&gt;&lt;br /&gt;The other caveat, also related to the more complex interfaces, is performance. JNI is known as a performance bottleneck, and I can't imagine that the Reference wrapping I've had to do helps anything. Hopefully, performance will not be abysmal, and with a few tweaks will be good enough to be often by the other benefits.&lt;br /&gt;&lt;br /&gt;I guess only time will tell :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34598348-116226555518696718?l=jpype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpype.blogspot.com/feeds/116226555518696718/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34598348&amp;postID=116226555518696718' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34598348/posts/default/116226555518696718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34598348/posts/default/116226555518696718'/><link rel='alternate' type='text/html' href='http://jpype.blogspot.com/2006/10/striking-balance.html' title='Striking a balance'/><author><name>Steve Menard</name><uri>http://www.blogger.com/profile/01270928704114254653</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34598348.post-116109289910603276</id><published>2006-10-17T09:43:00.000-04:00</published><updated>2007-02-21T23:50:40.073-05:00</updated><title type='text'>Shelving PNI for now</title><content type='html'>I realized that PNI, while a good idea, will require a lot of time and effort to realize. So for now I have decided to concentrate on JPype. The work I did on PNI has already impacted the release of the next version of JPype, and I don't want to impact it more.&lt;br /&gt;&lt;br /&gt;I am still developing JPype with PNI in mind. The only non-pni-compliant code in JPype is auto-generated. So if PNI ever comes to be, I can simply change the code generator (and of course adjust the rest of the code to whatever final form PNI has).&lt;br /&gt;&lt;br /&gt;If PNI never sees the light of day ... Well then it'll simply be a abstraction layer that JPype uses :).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34598348-116109289910603276?l=jpype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpype.blogspot.com/feeds/116109289910603276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34598348&amp;postID=116109289910603276' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34598348/posts/default/116109289910603276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34598348/posts/default/116109289910603276'/><link rel='alternate' type='text/html' href='http://jpype.blogspot.com/2006/10/shelving-pni-for-now.html' title='Shelving PNI for now'/><author><name>Steve Menard</name><uri>http://www.blogger.com/profile/01270928704114254653</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34598348.post-116051209625040258</id><published>2006-10-10T16:21:00.000-04:00</published><updated>2006-10-10T16:28:16.290-04:00</updated><title type='text'>Is the python community unable to see it's own weaknesses?</title><content type='html'>Over a week and a half ago, I posted a proposal on the Python mailing list/newsgroup. If you've seen my previous blog entry you already know what it was about. For the others, it is a proposal to remedy one of python's weaknesses : native extensions must be compiled for a specific Python version using the same compiler used to compile that python version. I've seen over time many people call this a nightmare, especially on windows.&lt;br /&gt;&lt;br /&gt;Fast-forward one week, and I haven't had a single response. Not one! People on the mailing list wax poetic on trivial issues such as being more polite toward Perl.&lt;br /&gt;&lt;br /&gt;Is this a case of blindness? Are extension writers so comfortable with this situation that they don't care? I mean I don't expect my proposal to be accepted as is, but I was hoping it would at least spark a discussion.&lt;br /&gt;&lt;br /&gt;I will assume the answer is different, and that it is a simple case of bad timing. I will prepare a shorter, easier to digest proposal and post it again. Then we'll see.&lt;br /&gt;&lt;br /&gt;In the meantime .. Feel free to tell me how receptive the python community at large has been to your ideas so far.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34598348-116051209625040258?l=jpype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpype.blogspot.com/feeds/116051209625040258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34598348&amp;postID=116051209625040258' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34598348/posts/default/116051209625040258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34598348/posts/default/116051209625040258'/><link rel='alternate' type='text/html' href='http://jpype.blogspot.com/2006/10/is-python-community-unable-to-see-its.html' title='Is the python community unable to see it&apos;s own weaknesses?'/><author><name>Steve Menard</name><uri>http://www.blogger.com/profile/01270928704114254653</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34598348.post-115955828247288603</id><published>2006-09-29T15:26:00.000-04:00</published><updated>2006-09-29T15:31:22.480-04:00</updated><title type='text'>PEP proposal : Get rid of the version/compiler dependency</title><content type='html'>I am creting this post so people can leave comments on the proposal I posted. The proposal can be seen at JPype's home page (&lt;a href="http://jpype.sourceforge.net/pni.html"&gt;http://jpype.sourceforge.net/pni.html&lt;/a&gt;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34598348-115955828247288603?l=jpype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpype.blogspot.com/feeds/115955828247288603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34598348&amp;postID=115955828247288603' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34598348/posts/default/115955828247288603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34598348/posts/default/115955828247288603'/><link rel='alternate' type='text/html' href='http://jpype.blogspot.com/2006/09/pep-proposal-get-rid-of.html' title='PEP proposal : Get rid of the version/compiler dependency'/><author><name>Steve Menard</name><uri>http://www.blogger.com/profile/01270928704114254653</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34598348.post-115941493538116614</id><published>2006-09-27T23:37:00.000-04:00</published><updated>2006-09-27T23:50:32.870-04:00</updated><title type='text'>JPype success and horror stories</title><content type='html'>I was browsing the net recently, and thought it might be funny to google for "jpype". Boy was I surprised! Google reports nearly around 18400 hits!!!&lt;br /&gt;&lt;br /&gt;Granted, most of those hits are archived repeats of usenet posts made over a year ago .. But still, I can see the interest.&lt;br /&gt;&lt;br /&gt;What  would like to know is who uses JPype. What projects. Why tried and failed (and why!). I'd like to make a page for JPype website with links to those projects.&lt;br /&gt;&lt;br /&gt;It's always nice to see that my had works is actually benefiting someone else.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34598348-115941493538116614?l=jpype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpype.blogspot.com/feeds/115941493538116614/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34598348&amp;postID=115941493538116614' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34598348/posts/default/115941493538116614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34598348/posts/default/115941493538116614'/><link rel='alternate' type='text/html' href='http://jpype.blogspot.com/2006/09/jpype-success-and-horror-stories.html' title='JPype success and horror stories'/><author><name>Steve Menard</name><uri>http://www.blogger.com/profile/01270928704114254653</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34598348.post-115880163521999867</id><published>2006-09-20T21:07:00.000-04:00</published><updated>2006-09-27T19:32:07.256-04:00</updated><title type='text'>A bit of History</title><content type='html'>For those wondering, here's the history of JPype :&lt;br /&gt;&lt;br /&gt;I always have a lot of projects going on. And in many cases, while I would prefer to use Python to implement them, requirements and/or convenience often steers me toward Java. Let's face it, when it comes to community mindshare, Python is no slouch, but Java definitely is the 500 lbs. gorilla.&lt;br /&gt;&lt;br /&gt;But I really wanted to use Python, so I looked around to see how easy it was to mix the two. Jython (JPython at the time) was not an option because of general slowness and lack of feature support. I failed to successfully build the only python/java integration library I found. So I decided to build mine. That was back in may of 2004.&lt;br /&gt;&lt;br /&gt;The initial versions (0.1 to 04) were more or less of prototype quality. The C++ code was extensive, with lots of Python extension type and lots of problems making Java classes behave like python classes. Java-specific code and Python-specific code were hopelessly locked together.&lt;br /&gt;&lt;br /&gt;0.5 was a complete rewrite, with an eye towards separating the bridging code. Although the amount of C++ code didn't shrink, this saw the introduction of real, dynamically create, Python classes. No more trying to make extension types behave like regular python classes. This was almost perfect.&lt;br /&gt;&lt;br /&gt;Major limitations include the inability to raise/except with straight java exception classes (needs to use the member PYEXC instead), and the inability to cleanly shutdown/restart a JVM.&lt;br /&gt;&lt;br /&gt;JPype got it's first real test when Chas Emerick of  Snowtide Informatics (&lt;a href="http://www.snowtide.com"&gt;www.snowtide.com&lt;/a&gt;) contacted me about polishing JPype for use in one of their product. I can honestly say the partnership has greatly benefited JPype, with all the improvements made then folded back into the code.&lt;br /&gt;&lt;br /&gt;The release of 0.5 has been followed by a lengthy pause in development. Lack of time and interest in other issues being the major reasons. Now time has come to come to resume work towards that almost mythical 1.0 release. 0.6 will be out sometime in the coming months. The details of this, however, will have to be the subject of another post ...&lt;br /&gt;&lt;br /&gt;Read back for more info later on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34598348-115880163521999867?l=jpype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpype.blogspot.com/feeds/115880163521999867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34598348&amp;postID=115880163521999867' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34598348/posts/default/115880163521999867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34598348/posts/default/115880163521999867'/><link rel='alternate' type='text/html' href='http://jpype.blogspot.com/2006/09/bit-of-history.html' title='A bit of History'/><author><name>Steve Menard</name><uri>http://www.blogger.com/profile/01270928704114254653</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34598348.post-115855283154495856</id><published>2006-09-18T00:08:00.000-04:00</published><updated>2006-09-19T21:33:07.953-04:00</updated><title type='text'>A new start</title><content type='html'>Well, it had to happen someday. Welcome to my first ever blog posting.&lt;br /&gt;&lt;br /&gt;I can't promise this is going to be the most regular of blog, but I will do my best.&lt;br /&gt;&lt;br /&gt;I am the principle author of an obscure Open source project called &lt;a href="http://jpype.sourceforge.net"&gt;JPype.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I thought it would be interesting to share thoughts and ideas that come to me as I develop it. So this blog is going to be very programming-oriented.&lt;br /&gt;&lt;br /&gt;Well, that's it for now. More on this later!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34598348-115855283154495856?l=jpype.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpype.blogspot.com/feeds/115855283154495856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34598348&amp;postID=115855283154495856' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34598348/posts/default/115855283154495856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34598348/posts/default/115855283154495856'/><link rel='alternate' type='text/html' href='http://jpype.blogspot.com/2006/09/new-start.html' title='A new start'/><author><name>Steve Menard</name><uri>http://www.blogger.com/profile/01270928704114254653</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
