<?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-14276139</id><updated>2012-02-02T01:09:54.214-05:00</updated><category term='europython'/><category term='gsoc'/><category term='setuptools'/><category term='olpc'/><category term='mysql'/><category term='twisted'/><category term='europython2008'/><category term='sqlalchemy'/><category term='glassfish'/><category term='selenium'/><category term='django'/><category term='gae'/><category term='pycon'/><category term='netbeans'/><category term='pylons'/><category term='asm'/><category term='saucelabs'/><category term='python'/><category term='djangocon'/><category term='wsgi'/><category term='antlr'/><category term='_ast'/><category term='mako'/><category term='turbogears'/><category term='sun'/><category term='nbpython'/><category term='vim'/><category term='jruby'/><category term='release'/><category term='parser'/><category term='hg'/><category term='modjy'/><category term='asdl'/><category term='invokedynamic'/><category term='jython'/><category term='rietveld'/><category term='mercurial'/><category term='compiler'/><category term='science'/><title type='text'>Frank Wierzbicki's Weblog</title><subtitle type='html'>Jython, Python, other stuff.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>79</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-14276139.post-5120969305023160764</id><published>2012-01-02T13:12:00.006-05:00</published><updated>2012-01-02T17:28:36.810-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><category scheme='http://www.blogger.com/atom/ns#' term='compiler'/><title type='text'>Jython dev notes part I: The Jython Exposer</title><content type='html'>One of my new years resolutions is to make Jython more friendly to new developers. One way to do that is to write up some notes on bits of Jython that are particularly mysterious to newcomers. I've boldly titled this post "Jython dev notes part I" to push myself to create more than one of these :)&lt;br /&gt;&lt;br /&gt;It should be noted that I'm not shying away from making these notes highly technical -  but I'm happy to edit them to make them more manageable later. Hopefully if I write enough of these up they can make up the beginnings of an advanced dev guide for Jython.&lt;br /&gt;&lt;br /&gt;Recently I was asked how the Jython exposer works. The Jython exposer is the code that exposes the types that are written in Java as Python types in the Jython interpreter. It does this by rewriting the .class files during build time and adding the special methods that are seen at runtime.  The augmented .class files end up in the build/exposed/ directory, and are ultimately built into the jython.jar distribution file. You can run the exposer from the Jython source like so:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;ant expose&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The exposer reads through each of the classes listed in CoreExposed.include and rewrites each of them. The rewritten classes get new methods generated for the Jython runtime to use as Python classes and methods. The exposer finds the code that it needs to operate on by finding Java annotations that have been defined for this purpose. An example is the easiest way to explain:&lt;br /&gt;&lt;br /&gt;The string type in Python is called "str" and is implemented in Jython by src/org/python/core/PyString.java -- at the top of PyString.java is:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;@ExposedType(name = "str", doc = BuiltinDocs.str_doc)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Which tells the exposer to expose PyString.java as the "str" type and take its "__doc__" attribute from BuiltinDocs.str_doc.  Note that there currently appears to be a bug that str.__doc__ ends up as None right now, but it will show up if you run:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&gt;&gt;&gt; help(str)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Further down in the source of PyString.java:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;@ExposedNew&lt;br /&gt;static PyObject str_new(PyNewWrapper new_, boolean init, PyType subtype, ...&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Exposes the str_new Java method as the Python str __new__ method. (The __new__ method is a special class level method that acts as a str factory).&lt;br /&gt;&lt;br /&gt;Next we'll look at some examples of ExposedMethod, which is the most common annotation that the exposer uses. ExposedMethod exposes general methods for Python classes.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;@ExposedMethod(doc = BuiltinDocs.str___len___doc)&lt;br /&gt;final int str___len__() {&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The above code exposes the __len__ method, which is how the str method will respond to a call to the builtin len() function. Since the object itself is the only argument, the ExposedMethod annotation only needs a doc.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;@ExposedMethod(type = MethodType.BINARY, doc = BuiltinDocs.str___eq___doc)&lt;br /&gt;final PyObject str___eq__(PyObject other) {&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The above exposes the __eq__ method. MethodType.Binary indicates that this is a binary method that will take 2 arguments. The exposer has special handling for common types like this.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;@ExposedMethod(defaults = {"null", "-1"}, doc = BuiltinDocs.str_split_doc)&lt;br /&gt;final PyList str_split(String sep, int maxsplit) {&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The above implements the split method of str, which takes 2 optional arguments. the "defaults" attribute assigns default values to the optional arguments.&lt;br /&gt;&lt;br /&gt;There is much more to the exposer, but unfortunately the code is the only real documentation other than this post at this time. The source for the exposer engine is in:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;src/org/python/expose/&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;And the source for the generator and ant task are here:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;src/org/python/expose/generate/&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-5120969305023160764?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/5120969305023160764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=5120969305023160764' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/5120969305023160764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/5120969305023160764'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2012/01/jython-dev-notes-part-i-jython-exposer.html' title='Jython dev notes part I: The Jython Exposer'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-4329011262162415148</id><published>2011-11-22T16:08:00.005-05:00</published><updated>2011-11-22T16:39:10.398-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>Contributing to Jython</title><content type='html'>About a year and a half ago my dream job of doing nothing but Jython all day and night came to an end (By the way, does anyone want to pay me to do Jython all day and night? It's about the only thing that could pull me from my awesome job at &lt;a href="http://www.canonical.com/"&gt;Canonical&lt;/a&gt; which I'm overdue on writing about here). Anyway to re-integrate myself into society I had to go cold turkey on Jython for a while so I could learn how to have a regular job again. I've contributed to Jython here and there by coding some of this and that, but I've failed to take care of the most important part: helping new people that want to get involved in Jython. I've let that go on for too long and I need to turn things around and get back to doing that. Recently a frustrated patch author sent an email about how hard it is to become a Jython contributor. He has some patches that have been sitting around for a long time and I'm pretty ashamed that that is the normal course of things lately. So, as I start giving Jython a bit more of my spare time again, I plan to make it a priority to review patches and try to figure out how to grow the Jython developer community again. So send patches and I promise to look at them. In particular, if anyone wants to put together patches that fix failing tests in the default Jython branch that targets 2.6 compatibility, I'll be right on them. I'll put together another post on contributing to Jython soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-4329011262162415148?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/4329011262162415148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=4329011262162415148' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/4329011262162415148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/4329011262162415148'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2011/11/contributing-to-jython.html' title='Contributing to Jython'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-2296171471417744274</id><published>2011-02-18T12:13:00.010-05:00</published><updated>2011-02-18T17:32:45.663-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>This Weblog is Now Licensed Under a Creative Commons License</title><content type='html'>I've been meaning to add a &lt;a href="http://creativecommons.org/"&gt;creative commons&lt;/a&gt; license to this site for a long time. Since the default copyright laws are not conducive to any sort of digital sharing, I think anyone that wants to share their work should take the time to find a license that makes sense for them. These days, with the &lt;a href="http://creativecommons.org/choose"&gt;creative commons form&lt;/a&gt;, it only takes a few minutes to do. You just pick the rights you want to grant and the chooser gives you an html snippet that you can drop onto your site or weblog or whatever. I encourage anyone that wants their words or work to be shareable to have a look at the great work that the &lt;a href="http://creativecommons.org/"&gt;creative commons&lt;/a&gt; folks have done.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-2296171471417744274?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/2296171471417744274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=2296171471417744274' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/2296171471417744274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/2296171471417744274'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2011/02/this-weblog-is-now-licensed-under.html' title='This Weblog is Now Licensed Under a Creative Commons License'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-2259461568926740471</id><published>2010-09-14T11:32:00.002-04:00</published><updated>2010-09-14T11:47:25.777-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>Jython 2.5.2 beta 2 is released!</title><content type='html'>The title says it all! See the details at &lt;a href="http://www.zyasoft.com/pythoneering/2010/09/jython-2.5.2-beta-2-is-released/"&gt;Jim Baker's blog&lt;/a&gt;. There is a reasonable chance that this will become the 2.5.2 final release and that we can start work on the next 2.x version of Jython.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-2259461568926740471?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/2259461568926740471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=2259461568926740471' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/2259461568926740471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/2259461568926740471'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2010/09/jython-252-beta-2-is-released.html' title='Jython 2.5.2 beta 2 is released!'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-8437822077155931472</id><published>2010-08-24T12:09:00.007-04:00</published><updated>2010-08-24T14:30:29.087-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>Leaving Sauce Labs</title><content type='html'>My time at Sauce Labs is at an end, and so I am looking for a new opportunity. I had a great time at Sauce Labs where I worked on building a cloud based infrastructure for test automation with Selenium. I have been working in software for more than twelve years, often in a lead role. I am well regarded in the Open Source world, where I have participated in and helped build communities. I have been the Jython project lead for six years. I am a committer on the Python project, and a member of the Python Software Foundation. I have done a wide variety of work in recent history: development and leadership work in Java and Python, from parsing Python source and compiling to Java bytecodes, to coding and administrating distributed cloud based web applications. I am able to do work in any of these areas, on either a full time or consulting/contracting basis. My contact information can be found on my &lt;a href="http://www.google.com/profiles/fwierzbicki"&gt;Google profile&lt;/a&gt;. My &lt;a href="http://www.linkedin.com/pub/frank-wierzbicki/3/559/380"&gt;LinkedIn profile&lt;/a&gt; is a good summary of my credentials.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-8437822077155931472?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/8437822077155931472/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=8437822077155931472' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/8437822077155931472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/8437822077155931472'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2010/08/leaving-sauce-labs.html' title='Leaving Sauce Labs'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-4324280851240781269</id><published>2010-02-03T13:15:00.002-05:00</published><updated>2010-02-03T14:23:57.276-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='saucelabs'/><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><category scheme='http://www.blogger.com/atom/ns#' term='selenium'/><title type='text'>My New Job at Sauce Labs</title><content type='html'>I joined &lt;a href="http://saucelabs.com/"&gt;Sauce Labs&lt;/a&gt; as of January 3 this year. I met the people at Sauce Labs during the recent &lt;a href="http://www.startupcrawl.com/"&gt;startup crawl&lt;/a&gt; in San Francisco (what a great way to find an employer, eh?). Sauce Labs is based around support for the open source Selenium functional testing framework. The inventor of Selenium, &lt;a href="http://www.jrandolph.com/blog/"&gt;Jason Huggins&lt;/a&gt; is a founder. I joined Sauce Labs at the same time as &lt;a href="http://www.zyasoft.com/pythoneering/"&gt;Jim Baker&lt;/a&gt; and &lt;a href="http://users.rcn.com/python/index.htm"&gt;Raymond Hettinger&lt;/a&gt;, see &lt;a href="http://saucelabs.com/about/news/feb-03-2010"&gt;here&lt;/a&gt; for more. The &lt;a href="http://saucelabs.com/about/team"&gt;entire team&lt;/a&gt; at Sauce Labs is mind blowingly amazing - which is the main reason that I had to join.&lt;br /&gt;&lt;br /&gt;As for the technology, there is a very cool Python backend that supports lots and lots of parallel virtual workloads. I am currently working on &lt;a href="http://saucelabs.com/blog/index.php/2010/01/ridiculously-easy-cross-browser-testing-with-sauce-ide/"&gt;Sauce IDE&lt;/a&gt;, an extension of Selenium IDE that adds support for Sauce Lab's &lt;a href="http://saucelabs.com/products/sauce-ondemand"&gt;OnDemand&lt;/a&gt; service to the IDE. This lets you record your functional tests from Firefox, and then push those tests up to Sauce Labs where they can be run on various operating systems and browsers in parallel.  How cool is that?&lt;br /&gt;&lt;br /&gt;Readers of this blog are probably wondering what this means for my role as lead maintainer of Jython.  First of all, this is nothing like my former role at Sun Microsystems.  Jython is definitely not going to be my day job the way it was at Sun.  Since Sauce Labs is an early stage startup, I will be very busy helping the company succeed. Having said that, Sauce Labs is a company based on the use of open source software, and has a strong commitment to giving back to the open source community.  They support my continued involvement in the development of Jython. What this means in practice will need to evolve over time.&lt;br /&gt;&lt;br /&gt;I'm pretty excited to switch focus from implementing a Python to putting Python code into production. I fully expect that this new job will deepen my understanding of real world Python coding and make my Jython work more productive.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-4324280851240781269?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/4324280851240781269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=4324280851240781269' title='23 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/4324280851240781269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/4324280851240781269'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2010/02/my-new-job-at-sauce-labs.html' title='My New Job at Sauce Labs'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>23</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-4967987248813478165</id><published>2009-11-04T14:05:00.004-05:00</published><updated>2009-11-04T14:38:52.929-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sun'/><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>Leaving Sun</title><content type='html'>I've always regarded working full time on Jython at Sun as a miraculous sabbatical that might come to an end at any moment.  Sadly that time has come. I've worked with many amazing people and had a great time: Sun provided me with one of the greatest professional experiences I have had, for which I will always be grateful.&lt;br /&gt;&lt;br /&gt;I'm very pleased with how far Jython has come during my tenure at Sun.  Jython is now a modern version of Python, and has the momentum to continue its growth. A far larger group of developers than ever before contribute regularly, making Jython a very healthy project. Jython runs many more of the key frameworks and applications that are popular in the Python world. In the future we will be making Jython better, faster, and more complete. I started working on Jython long before I joined Sun, and I certainly plan be a part of Jython's future.&lt;br /&gt;&lt;br /&gt;I am looking for a new opportunity, and am open to many possibilities. I have been working in software for more than twelve years, often in a lead role. I am well regarded in the Open Source world, where I have participated in and helped build communities.  I have been the Jython project lead for almost five years. I am a committer on the Python project, and a member of the Python Software Foundation.  I have done a wide variety of work in recent history: development and leadership work in Java and Python, from the abstract level of parsing Python source and compiling to Java bytecodes, to the more concrete work of web development. I am able to do work in any of these areas, on either a full time or consulting/contracting basis. My contact information can be found on my &lt;a href="http://www.google.com/profiles/fwierzbicki"&gt;Google profile&lt;/a&gt; and my &lt;a href="http://www.linkedin.com/pub/frank-wierzbicki/3/559/380"&gt;LinkedIn profile&lt;/a&gt; is a good summary of my credentials.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-4967987248813478165?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/4967987248813478165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=4967987248813478165' title='17 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/4967987248813478165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/4967987248813478165'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2009/11/leaving-sun.html' title='Leaving Sun'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-5933807826971952652</id><published>2009-09-26T14:36:00.003-04:00</published><updated>2009-09-26T14:43:48.297-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>Jython 2.5.1 Final is out!</title><content type='html'>On behalf of the Jython development team, I'm pleased to announce that Jython 2.5.1 final is available for &lt;a href="https://sourceforge.net/projects/jython/files/jython/2.5.1/jython_installer-2.5.1.jar/download"&gt;download&lt;/a&gt;. See the &lt;a href="http://wiki.python.org/jython/InstallationInstructions"&gt;installation instructions&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Jython 2.5.1 fixes a number of bugs, including some major errors when using coroutines and when using relative imports, as well as a potential data loss bug when writing to files in append mode. Please see the NEWS file for detailed release notes.&lt;br /&gt;&lt;br /&gt;Please &lt;a href="http://bugs.jython.org"&gt;report any bugs&lt;/a&gt; that you find. Thanks!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-5933807826971952652?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/5933807826971952652/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=5933807826971952652' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/5933807826971952652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/5933807826971952652'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2009/09/jython-251-final-is-out.html' title='Jython 2.5.1 Final is out!'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-168143111420495921</id><published>2009-09-23T21:54:00.003-04:00</published><updated>2009-09-23T21:59:32.411-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>Jython 2.5.1 Release Candidate 3 is out</title><content type='html'>On behalf of the Jython development team, I'm pleased to announce that Jython 2.5.1rc3 is available for &lt;a href="https://sourceforge.net/projects/jython/files/jython-dev/2.5.1rc3/jython_installer-2.5.1rc3.jar/download"&gt;download&lt;/a&gt;.  See the &lt;a href="http://wiki.python.org/jython/InstallationInstructions"&gt;installation instructions&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I didn't really want to have an RC3, I was hoping to have a final by now, but a data loss bug was discovered in RC2 and that prompted one more RC.  I'm hoping that this is the last one and that we'll have a final shortly. Please see the NEWS file for detailed release notes.&lt;br /&gt;&lt;br /&gt;Please &lt;a href="http://bugs.jython.org"&gt;report any bugs&lt;/a&gt; that you find.  Thanks!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-168143111420495921?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/168143111420495921/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=168143111420495921' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/168143111420495921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/168143111420495921'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2009/09/jython-251-release-candidate-3-is-out.html' title='Jython 2.5.1 Release Candidate 3 is out'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-5834467030405262944</id><published>2009-09-16T20:20:00.001-04:00</published><updated>2009-09-16T20:21:50.783-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='pycon'/><title type='text'>PyCon 2010 Call For Talks Ends Soon!</title><content type='html'>If you where thinking about &lt;a href="http://us.pycon.org/2010/conference/proposals/"&gt;submitting a talk&lt;/a&gt; to &lt;a href="http://us.pycon.org/2010/about/"&gt;PyCon 2010&lt;/a&gt; you should do it now!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-5834467030405262944?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/5834467030405262944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=5834467030405262944' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/5834467030405262944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/5834467030405262944'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2009/09/pycon-2010-call-for-talks-ends-soon.html' title='PyCon 2010 Call For Talks Ends Soon!'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-8470220654451474773</id><published>2009-09-12T15:04:00.002-04:00</published><updated>2009-09-12T15:22:24.027-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>Jython 2.5.1 Release Candidate 2 is out!</title><content type='html'>On behalf of the Jython development team, I'm pleased to announce that Jython 2.5.1rc2 is available for &lt;a href="https://sourceforge.net/projects/jython/files/jython-dev/2.5.1rc2/jython_installer-2.5.1rc2.jar/download"&gt;download&lt;/a&gt;.  See the &lt;a href="http://wiki.python.org/jython/InstallationInstructions"&gt;installation instructions&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Jython 2.5.1rc2 fixes bugs that we found when testing rc1, including some db, codec, and locking issues. Please see the NEWS file for detailed release notes.&lt;br /&gt;&lt;br /&gt;Please &lt;a href="http://bugs.jython.org"&gt;report any bugs&lt;/a&gt; that you find.  Thanks!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-8470220654451474773?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/8470220654451474773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=8470220654451474773' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/8470220654451474773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/8470220654451474773'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2009/09/jython-251-release-candidate-2-is-out.html' title='Jython 2.5.1 Release Candidate 2 is out!'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-3823294679113365874</id><published>2009-09-01T11:07:00.005-04:00</published><updated>2009-09-12T14:57:01.553-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>Jython 2.5.1 Release Candidate 1 is out!</title><content type='html'>On behalf of the Jython development team, I'm pleased to announce that Jython 2.5.1rc1 is available for &lt;a href="https://sourceforge.net/projects/jython/files/jython-dev/2.5.1rc1/jython_installer-2.5.1rc1.jar/download"&gt;download&lt;/a&gt;.  See the &lt;a href="http://wiki.python.org/jython/InstallationInstructions"&gt;installation instructions&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Jython 2.5.1rc1 fixes a number of bugs, including some major errors when using&lt;br /&gt;coroutines and when using relative imports.  Please see the NEWS file for&lt;br /&gt;detailed release notes.&lt;br /&gt;&lt;br /&gt;Please &lt;a href="http://bugs.jython.org"&gt;report any bugs&lt;/a&gt; that you find.  Thanks!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-3823294679113365874?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/3823294679113365874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=3823294679113365874' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/3823294679113365874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/3823294679113365874'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2009/09/jython-251-release-candidate-1-is-out.html' title='Jython 2.5.1 Release Candidate 1 is out!'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-841874523317958837</id><published>2009-08-17T11:26:00.006-04:00</published><updated>2009-08-17T13:37:27.645-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><category scheme='http://www.blogger.com/atom/ns#' term='invokedynamic'/><title type='text'>InvokeDynamic and Jython part I</title><content type='html'>The invokedynamic work from the &lt;a href="http://openjdk.java.net/projects/mlvm/"&gt;Da Vinci Machine Project&lt;/a&gt; has come a long way.  In fact, it has started to make it's way into OpenJDK 7 builds.  To try the bleeding edge version out for yourself, follow these &lt;a href="http://wikis.sun.com/display/mlvm/Building"&gt;instructions&lt;/a&gt; to patch and build your own.  But, be warned, it's a bit tricky to get started.  You may find that these examples will work with &lt;a href="http://download.java.net/jdk7/binaries/"&gt;OpenJDK 7 binaries&lt;/a&gt; (sooner or later they should!).  For those who haven't heard about this work yet, invokedynamic, which is a part of &lt;a href="http://jcp.org/en/jsr/detail?id=292"&gt;JSR-292&lt;/a&gt;, allows a program to dynamically call methods with (potentially) the same performance characteristics as static calls.  Here is about the simplest invokedynamic program you can write:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;import java.dyn.CallSite;&lt;br /&gt;import java.dyn.InvokeDynamic;&lt;br /&gt;import java.dyn.Linkage;&lt;br /&gt;import java.dyn.MethodType;&lt;br /&gt;import java.dyn.MethodHandles;&lt;br /&gt;&lt;br /&gt;public class Example {&lt;br /&gt;    public static void main(String... av) throws Throwable {&lt;br /&gt;        for (String a : av) {&lt;br /&gt;            InvokeDynamic.&lt;void&gt;call(a);&lt;br /&gt;        }&lt;br /&gt;        InvokeDynamic.&lt;void&gt;call2(av[0]);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public static void foo(String x) {&lt;br /&gt;        System.out.println("Hello, " + x);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    static { Linkage.registerBootstrapMethod("linkDynamic"); }&lt;br /&gt;    private static CallSite linkDynamic(Class caller, String name, MethodType type) {&lt;br /&gt;        System.out.println("linking:" + name);&lt;br /&gt;        CallSite c = new CallSite(caller, name, type);&lt;br /&gt;        c.setTarget(MethodHandles.lookup().findStatic(Example1.class, "foo",&lt;br /&gt;            MethodType.make(void.class, String.class)));&lt;br /&gt;        return c;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/void&gt;&lt;/void&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;First notice the linkDynamic method.  The static initializer above it registers that method as a special bootstrap method that invokedynamic will use when you want to call a method dynamically. The interesting bit to notice are the two calls to methods on InvokeDynamic.  InvokeDynamic has no actual methods of its own.  You can call any method on it (here I use "call" and "call2", but it could just as well have been "foo123" or "sasquatch")  When you make these calls, control is passed to the bootstrap method (linkDynamic in this case).  linkDynamic gets passed the Class of the caller, the name that was used ("call" and "call2" in this program) and the MethodType of the call, which specifieds the signature of the dynamic call.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To compile the above code, execute:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;javac -XDinvokedynamic Example.java&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;To run it:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;java -XX:+EnableMethodHandles -XX:+EnableInvokeDynamic Example a b c&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Which should produce:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;linking:call&lt;br /&gt;Hello, a&lt;br /&gt;Hello, b&lt;br /&gt;Hello, c&lt;br /&gt;linking:call2&lt;br /&gt;Hello, a&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Notice that we called "call" three times, but it only needed to be linked once.  We then called call2 and it was separately linked.  Had we invoked call2 again it would not have needed linking. Next in my exploration, I'll wire it up with some Python internal dispatch logic:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;package org.python.compiler;&lt;br /&gt;&lt;br /&gt;import java.dyn.CallSite;&lt;br /&gt;import java.dyn.InvokeDynamic;&lt;br /&gt;import java.dyn.Linkage;&lt;br /&gt;import java.dyn.MethodType;&lt;br /&gt;import java.dyn.MethodHandle;&lt;br /&gt;import java.dyn.MethodHandles;&lt;br /&gt;import java.dyn.MethodType;&lt;br /&gt;&lt;br /&gt;import org.python.core.Py;&lt;br /&gt;import org.python.core.PyCode;&lt;br /&gt;import org.python.core.PyFunction;&lt;br /&gt;import org.python.core.PyInteger;&lt;br /&gt;import org.python.core.PyObject;&lt;br /&gt;import org.python.core.PyString;&lt;br /&gt;import org.python.core.PyTuple;&lt;br /&gt;import org.python.core.ThreadState;&lt;br /&gt;&lt;br /&gt;public class IndyTest {&lt;br /&gt;&lt;br /&gt;    public static void run() throws Throwable {&lt;br /&gt;        PyObject result = InvokeDynamic.&lt;PyObject&gt;foo(new PyInteger(4), Py.None,&lt;br /&gt;                Py.EmptyObjects, new PyTuple());&lt;br /&gt;        System.out.println("result = " + result);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    static { Linkage.registerBootstrapMethod("linkDynamic"); }&lt;br /&gt;    private static CallSite linkDynamic(Class&lt;?&gt; caller, String name, MethodType type) {&lt;br /&gt;        System.out.println("linkDynamic...");&lt;br /&gt;        CallSite site = new CallSite(caller, name, type);&lt;br /&gt;        ThreadState ts = Py.getThreadState();&lt;br /&gt;        PyCode func_code = ((PyFunction)ts.frame.getname(name)).func_code;&lt;br /&gt;&lt;br /&gt;        MethodType oneArgCall = MethodType.make(&lt;br /&gt;            PyObject.class, //return type&lt;br /&gt;            ThreadState.class, // state&lt;br /&gt;            PyObject.class, // arg1&lt;br /&gt;            PyObject.class, // globals&lt;br /&gt;            PyObject[].class, // defaults&lt;br /&gt;            PyObject.class // closure&lt;br /&gt;        );&lt;br /&gt;        MethodHandle call = MethodHandles.lookup().findVirtual(PyCode.class, "call", oneArgCall);&lt;br /&gt;        call = MethodHandles.insertArguments(call, 0, func_code, ts);&lt;br /&gt;        call = MethodHandles.convertArguments(call, type);&lt;br /&gt;        site.setTarget(call);&lt;br /&gt;&lt;br /&gt;        return site;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;There is a bit more going on here.  In short, we look up the current state of the Jython interpreter when this is invoked and look for a function called "foo".  We pass the PyInteger 4 (plus some boilerplate at the end -- in the future we should be able to only pass the 4, but MethodHandles.insertArguments can only add three arguments at the moment.) to the foo(), and then print the result out.  Again "foo" is bound the first time it is called.  When we  create a CallSite, grab the current ThreadState and get our "foo" object from the current Jython frame.  We then create a MethodType that corresponds to the way that we call Jython methods internally, and use methods off of MethodHandles (insertArguments and convertArguments) to coerce our call to the internal call semantics.  Then our "foo" call is permanently bound to the function we found. Ultimately this is not what we will want since "foo" could be rebound in Jython in a number of ways.  We'll get to this problem in a future post.  To try this code out, we need a Jython program with a foo method:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;def foo(x):&lt;br /&gt;print "hello %s!" % x&lt;br /&gt;foo("test")&lt;br /&gt;&lt;br /&gt;from org.python.compiler import IndyTest&lt;br /&gt;IndyTest.run()&lt;br /&gt;&lt;br /&gt;def foo(x):&lt;br /&gt;print "goodbye %s!" % x&lt;br /&gt;foo("test")&lt;br /&gt;&lt;br /&gt;IndyTest.run()&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Run it like this (requires a Jython 2.5 install and we need to call Jython with --boot to put the Jython internals into the boot classpath):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;jython --boot -J-XX:+EnableMethodHandles -J-XX:+EnableInvokeDynamic indy.py&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;hello test!&lt;br /&gt;foo = 1&lt;br /&gt;linkDynamic...&lt;br /&gt;hello 4!&lt;br /&gt;result = None&lt;br /&gt;goodbye test!&lt;br /&gt;foo = 2&lt;br /&gt;hello 4!&lt;br /&gt;result = None&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The first IndyTest.run() looks great (hello 4!) -- but the second call still emits "hello 4!" even though foo() has been redefined.  We'll look at fixing this in the next post.&lt;br /&gt;&lt;br /&gt;By the way, to *really* learn about the guts of invokedynamic look to the posts from &lt;a href="http://blogs.sun.com/jrose/"&gt;John Rose&lt;/a&gt; and &lt;a href="http://blogs.oracle.com/ohrstrom/"&gt;Fredrik Öhrström&lt;/a&gt; along with the &lt;a href="http://openjdk.java.net/projects/mlvm/"&gt;Da Vinci Machine site&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-841874523317958837?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/841874523317958837/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=841874523317958837' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/841874523317958837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/841874523317958837'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2009/08/invokedynamic-and-jython-part-i.html' title='InvokeDynamic and Jython part I'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-1723495392311827770</id><published>2009-06-16T14:10:00.002-04:00</published><updated>2009-06-16T14:21:35.094-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><category scheme='http://www.blogger.com/atom/ns#' term='release'/><title type='text'>Jython 2.5.0 Final is out!</title><content type='html'>On behalf of the Jython development team, I'm pleased to announce that Jython 2.5.0 final is available for &lt;a href="http://downloads.sourceforge.net/jython/jython_installer-2.5.0.jar"&gt;download&lt;/a&gt;.  See the &lt;a href="http://wiki.python.org/jython/InstallationInstructions"&gt;installation instructions&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Jython 2.5.0 brings us up to language level compatibility with the 2.5 version of CPython.  This release has had a strong focus on CPython compatibility, and so this release of Jython can run more pure Python apps then any previous release.  Please see the NEWS file for detailed release notes.&lt;br /&gt;&lt;br /&gt;I want to thank all of the amazing people who have contributed in large and small ways to this important Jython release.  For the first time in a long time we have Jython that is a modern version of Python.  Enjoy!&lt;br /&gt;&lt;br /&gt;Please &lt;a href="http://bugs.jython.org"&gt;report any bugs&lt;/a&gt; that you find.  Thanks!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-1723495392311827770?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/1723495392311827770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=1723495392311827770' title='18 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/1723495392311827770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/1723495392311827770'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2009/06/jython-250-final-is-out.html' title='Jython 2.5.0 Final is out!'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>18</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-4923435826182544135</id><published>2009-06-08T14:58:00.006-04:00</published><updated>2009-06-08T16:40:32.965-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>Jython 2.5.0 Release Candidate 4 is out!</title><content type='html'>On behalf of the Jython development team, I'm pleased to announce that Jython 2.5rc4 is available for &lt;a href="http://downloads.sourceforge.net/jython/jython_installer-2.5rc4.jar"&gt;download&lt;/a&gt;.  See the &lt;a href="http://wiki.python.org/jython/InstallationInstructions"&gt;installation instructions&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This is the fourth and probably final release candidate of the 2.5.0 version of Jython. If no major bugs are found in rc4, we will relabel it as 2.5.0 final. With this version, all of the regression that we follow on Windows now pass.&lt;br /&gt;&lt;br /&gt;Please try this out and &lt;a href="http://bugs.jython.org"&gt;report any bugs&lt;/a&gt; that you find.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-4923435826182544135?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/4923435826182544135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=4923435826182544135' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/4923435826182544135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/4923435826182544135'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2009/06/jython-250-release-candidate-4-is-out.html' title='Jython 2.5.0 Release Candidate 4 is out!'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-3044838551316104164</id><published>2009-05-26T15:52:00.004-04:00</published><updated>2009-05-26T16:18:11.763-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>Jython 2.5.0 Release Candidate 3 is out!</title><content type='html'>On behalf of the Jython development team, I'm pleased to announce that Jython 2.5rc3 is available for &lt;a href="http://downloads.sourceforge.net/jython/jython_installer-2.5rc3.jar"&gt;download&lt;/a&gt;.  See the &lt;a href="http://www.jython.org/Project/installation.html"&gt;installation instructions&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This is the third release candidate of the 2.5 version of Jython. It fixes some threading issues and  partially fixes JLine on Cygwin.&lt;br /&gt;&lt;br /&gt;Almost every release in the past year has been followed shortly by another release to fix a windows bug.  Today I finally got off of my butt and installed Windows on a VM and spent the day testing, so hopefully this one will not follow that pattern.&lt;br /&gt;&lt;br /&gt;Please try this out and &lt;a href="http://bugs.jython.org"&gt;report any bugs&lt;/a&gt; that you find.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-3044838551316104164?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/3044838551316104164/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=3044838551316104164' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/3044838551316104164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/3044838551316104164'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2009/05/jython-250-release-candidate-3-is-out.html' title='Jython 2.5.0 Release Candidate 3 is out!'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-3233042005583018555</id><published>2009-05-11T14:57:00.004-04:00</published><updated>2009-05-11T17:37:50.949-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>Jython 2.5.0 Release Candidate 2 is out!</title><content type='html'>[Update:A bug in our build process and jline support caused windows failures, so we have released an rc2 and changed the download link below to point there]&lt;br /&gt;&lt;br /&gt;On behalf of the Jython development team, I'm pleased to announce that Jython 2.5rc2 is available for &lt;a href="http://downloads.sourceforge.net/jython/jython_installer-2.5rc2.jar"&gt;download&lt;/a&gt;.  See the &lt;a href="http://www.jython.org/Project/installation.html"&gt;installation instructions&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It contains bug fixes and polish since the last beta.  One especially nice bit of polish is that &lt;a href="http://jline.sourceforge.net/"&gt;JLine&lt;/a&gt; is enabled by default now, and so using up and down arrows should work out of the box.  If no major bugs are found this release will get re-labeled and released as the production version of 2.5.0.&lt;br /&gt;&lt;br /&gt;Please try this out and &lt;a href="http://bugs.jython.org"&gt;report any bugs&lt;/a&gt; that you find.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-3233042005583018555?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/3233042005583018555/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=3233042005583018555' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/3233042005583018555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/3233042005583018555'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2009/05/jython-250-release-candidate-1-is-out.html' title='Jython 2.5.0 Release Candidate 2 is out!'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-6020508061792629956</id><published>2009-04-28T13:39:00.007-04:00</published><updated>2009-04-28T15:23:12.832-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><category scheme='http://www.blogger.com/atom/ns#' term='gae'/><title type='text'>Jython 2.5 Beta 4 Released</title><content type='html'>Jython 2.5b4 is available for &lt;a href="http://downloads.sourceforge.net/jython/jython_installer-2.5b4.jar"&gt;download&lt;/a&gt;.  See the &lt;a href="http://www.jython.org/Project/installation.html"&gt;installation instructions&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;While no new features have been added since Beta 3, we have fixed a number of bugs. One of the bugs prompted an almost total re-write of our Tuple and List implementations, which is the reason that this is another beta and not a release candidate. Expect a release candidate real soon now.&lt;br /&gt;&lt;br /&gt;We also applied a patch that allows Jython to function in a system that does not have write access to the filesystem so that Jython can run unpatched in &lt;a href="http://groups.google.com/group/google-appengine-java/web/will-it-play-in-app-engine"&gt;Google App Engine&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This is a beta release so be careful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-6020508061792629956?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/6020508061792629956/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=6020508061792629956' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/6020508061792629956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/6020508061792629956'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2009/04/jython-25-beta-4-released.html' title='Jython 2.5 Beta 4 Released'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-1527841404931208903</id><published>2009-04-03T11:21:00.006-04:00</published><updated>2009-04-03T15:05:19.332-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><category scheme='http://www.blogger.com/atom/ns#' term='twisted'/><category scheme='http://www.blogger.com/atom/ns#' term='sqlalchemy'/><category scheme='http://www.blogger.com/atom/ns#' term='pycon'/><title type='text'>PyCon 2009</title><content type='html'>&lt;a href="http://us.pycon.org/2009/about/"&gt;PyCon 2009&lt;/a&gt; was great!  For the first time, there where two pre-conference days: one to specifically discuss VMs and another to discuss general Python language issues with implementers.  It was great to listen to all of the VM implementers and users talk and to exchange ideas.  The language day included the announcement of &lt;a href="http://code.google.com/p/unladen-swallow/"&gt;unladen swallow&lt;/a&gt;, a branch of CPython with the goal of a 5x speedup in one year.  They plan to send as many changes as possible upstream to CPython, so expect it to get faster.&lt;br /&gt;&lt;br /&gt;During the regular conference I was voted in as a member of the &lt;a href="http://www.python.org/psf/"&gt;PSF&lt;/a&gt;. I received a commit bit to CPython in order to work on Lib and Lib/test to help better integrate Jython's corresponding code.  In the future, the plan is to logically separate Lib from CPython so that all of the Python implementations become semi-equal partners in that part of the codebase.  I say semi-equal because the release cycle would continue to be governed by CPython (no problem from me there :).  There where too many great talks to cover, but everything was videoed, so anyone who couldn't make it should be able to see the talks.&lt;br /&gt;&lt;br /&gt;The sprints are always my favorite part of the conference, though for some family reasons I was only able to stay for two days.  So many people showed up to work on Jython that we needed a bigger room - at one point I counted 14.  Thomas Enebo from JRuby worked with John Szakmeiste on ctypes for Jython, with Samuele Pedroni and Maciej Fijalkowski consulting from PyPy.  Charlie Nutter from JRuby and Tobias Ivarrson discussed compiler optimizations.  Philip Jenvey made amazing progress with Michael Bayer of SQLAlchemy and Glyph of Twisted to get those frameworks working on Jython.  SQLAlchemy is quite close to supporting Posgresql and MySQL on Jython! Twisted is able to run its unit tests on Jython, and progress there is likely to accelerate now.  I could go on, so much happens during the sprints...&lt;br /&gt;&lt;br /&gt;I was also able to discuss moving Jython to the Python.org infrastructure with Martin v. Löwis.  We are going to do just that, though it will probably take a while.  I am already putting together a skeleton website.  Jython 2.5 is going to need a facelift before release time.&lt;br /&gt;&lt;br /&gt;Thanks to everyone that made PyCon possible, I had an amazing time!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-1527841404931208903?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/1527841404931208903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=1527841404931208903' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/1527841404931208903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/1527841404931208903'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2009/04/pycon-2009.html' title='PyCon 2009'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-7256757024972278141</id><published>2009-03-10T16:00:00.004-04:00</published><updated>2009-08-25T11:05:03.656-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>Jython 2.5 Beta 3 Released</title><content type='html'>When I released Beta 2 this Saturday, I said it would be the last beta unless a severe bug was found. Well, a severe bug was found.  Under certain circumstances Jython Beta 2 would not start on Windows.  Otmar Humbel has fixed it, and we've released Beta 3 with the fix &lt;a href="http://downloads.sourceforge.net/jython/jython_installer-2.5b3.jar"&gt;here&lt;/a&gt;.  See the &lt;a href="http://www.jython.org/Project/installation.html"&gt;installation instructions&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This is a beta release so be careful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-7256757024972278141?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/7256757024972278141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=7256757024972278141' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/7256757024972278141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/7256757024972278141'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2009/03/jython-25-beta-3-released.html' title='Jython 2.5 Beta 3 Released'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-3885587458251937489</id><published>2009-03-07T13:02:00.005-05:00</published><updated>2009-03-07T13:47:29.722-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><category scheme='http://www.blogger.com/atom/ns#' term='modjy'/><title type='text'>Jython 2.5 beta 2 Released</title><content type='html'>On behalf of the Jython development team, I'm pleased to announce that Jython 2.5b2 is available for &lt;a href="http://downloads.sourceforge.net/jython/jython_installer-2.5b2.jar"&gt;download&lt;/a&gt;.  See the &lt;a href="http://www.jython.org/Project/installation.html"&gt;installation instructions&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Unless a severe bug is found, this will be the last beta before we start putting out release candidates.  The modjy project has been pushed into the core, there have been many bugfixes.  I attempted to get all of the bugfixes out of the tracker and into the NEWS file.  Hopefully we can get more disciplined about change logs in the future.&lt;br /&gt;&lt;br /&gt;Note: if you have been running Jython with --verify, we have removed that option and defaulted to that classpath behavior.  We now have a --boot option for the previous 2.5 classpath behavior (jython.jar gets loaded into the boot classpath).  If you don't know what I'm talking about, then you probably don't need to worry about it :)&lt;br /&gt;&lt;br /&gt;This is a beta release so be careful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-3885587458251937489?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/3885587458251937489/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=3885587458251937489' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/3885587458251937489'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/3885587458251937489'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2009/03/jython-25-beta-2-released.html' title='Jython 2.5 beta 2 Released'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-7371826712275171511</id><published>2009-02-28T12:22:00.004-05:00</published><updated>2009-02-28T12:50:28.641-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>Hoffstadter's Law and Jython 2.5</title><content type='html'>Hoffstadter's Law states: "It always takes longer than you think, even when you consider Hoffstadter's Law."&lt;br /&gt;&lt;br /&gt;I thought by now I'd have a Jython 2.5 release, but alas I do not.  I keep wanting to get just one more feature in, but I think the time has come to freeze things and get to release candidates.  Most of 2.5 is quite solid, and it's time to get it out. I plan to put together what I think will be the last beta for Jython 2.5 this Friday.&lt;br /&gt;&lt;br /&gt;Some things are not going to make it in, for example I don't think ctypes will make it for 2.5.0.  I looked over what we have so far and what I think it would take me to implement it. I don't feel confident that I can really get it together as quickly as I would like and still have it be solid.  My C skills are just a little too rusty to whip it together quickly.  I may make ctypes my personal sprint target for PyCon 2009 since there will be lots of ctypes knowledge floating around, particularly from the PyPy folks.  Jim Baker has started a ctypes implementation which uses the PyPy work.&lt;br /&gt;&lt;br /&gt;I'm going to try to get modjy integrated into trunk, but if I don't make it by this Friday it will just have to stay separate for this release.  Jythonc work has moved to the "clamp" project that Charlie Groves started on github.  Hopefully we can get that together at the same time or shortly after 2.5.0 releases.&lt;br /&gt;&lt;br /&gt;If any committers have something they would like to get in at the last moment, now would be the time!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-7371826712275171511?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/7371826712275171511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=7371826712275171511' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/7371826712275171511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/7371826712275171511'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2009/02/hoffstadters-law-and-jython-25.html' title='Hoffstadter&apos;s Law and Jython 2.5'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-3207389156681290298</id><published>2009-02-19T15:17:00.004-05:00</published><updated>2009-02-19T15:44:52.589-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mercurial'/><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><category scheme='http://www.blogger.com/atom/ns#' term='hg'/><title type='text'>Progress with Mercurial on Jython: part 2</title><content type='html'>So yesterday's foray into Mercurial's test engine started with much excitement, but the excitement was short-lived.  It turns out that the Mercurial tests are mostly shell scripts, and some blundering on my part permitted some CPython to bleed through and run some of the tests (so they appeared to succeed, but did not).&lt;br /&gt;&lt;br /&gt;Since I really want to at least assess the scope of getting Mercurial to run on Jython, and it really is a bit closer, I decided to start reading the &lt;a href="http://hgbook.red-bean.com/"&gt;Mercurial book&lt;/a&gt;.  At the same time, I am gearing up to play around with the &lt;a href="http://openjdk.java.net/projects/mlvm/"&gt;Da Vinci Machine&lt;/a&gt; project, which is hosted on a Mercurial repo.  So I'm doubly motivated to get a good understanding of hg.  So, going along with the book, I first tried "hg version" (I have a local hg that points to Jython -- and I am quite sure it points to Jython this time).  Woohoo! -- version works (you have to start somewhere...):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[frank@pacman ~]$ hg version&lt;br /&gt;Mercurial Distributed SCM (version b8d750daadde+20090218)&lt;br /&gt;&lt;br /&gt;Copyright (C) 2005-2008 Matt Mackall &lt;mpm@selenic.com&gt; and others&lt;br /&gt;This is free software; see the source for copying conditions. There is NO&lt;br /&gt;warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&lt;br /&gt;&lt;/mpm@selenic.com&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Next I find that "hg help" works:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[frank@pacman ~]$ hg help init&lt;br /&gt;hg init [-e CMD] [--remotecmd CMD] [DEST]&lt;br /&gt;&lt;br /&gt;create a new repository in the given directory&lt;br /&gt;&lt;br /&gt;  Initialize a new repository in the given directory.  If the given&lt;br /&gt;  directory does not exist, it is created.&lt;br /&gt;&lt;br /&gt;  If no directory is given, the current directory is used.&lt;br /&gt;&lt;br /&gt;  It is possible to specify an ssh:// URL as the destination.&lt;br /&gt;  Look at the help text for the pull command for important details&lt;br /&gt;  about ssh:// URLs.&lt;br /&gt;&lt;br /&gt;options:&lt;br /&gt;&lt;br /&gt;-e --ssh        specify ssh command to use&lt;br /&gt;  --remotecmd  specify hg command to run on the remote side&lt;br /&gt;&lt;br /&gt;use "hg -v help init" to show global options&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The next bit in the book uses "hg clone". Unfortunately "hg clone" uses buffer(), which Jython lacks.  Jython has never supported the buffer() protocol from CPython, and almost certainly never will.  For one thing, buffer() is very C-oriented, and buffer() did not make the cut into Python 3.0, so implementing buffer makes little sense for us.  We may very well look into the buffer() replacements defined for 3.0, but that is something for another time.  So I used regular hg to execute the clone.&lt;br /&gt;&lt;br /&gt;Next "hg log" revealed a bug in Jython that was pretty easy to fix: we where&lt;br /&gt;not handling writes past the end of the buffer in our cStringIO.  That's a nice benefit of trying out larger apps on Jython -- they are good exercise :)&lt;br /&gt;&lt;br /&gt;And so now "hg log" runs:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;changeset:   4:2278160e78d4&lt;br /&gt;tag:         tip&lt;br /&gt;user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;&lt;br /&gt;date:        Sat Aug 16 22:16:53 2008 +0200&lt;br /&gt;summary:     Trim comments.&lt;br /&gt;&lt;br /&gt;changeset:   3:0272e0d5a517&lt;br /&gt;user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;&lt;br /&gt;date:        Sat Aug 16 22:08:02 2008 +0200&lt;br /&gt;summary:     Get make to generate the final binary from a .o file.&lt;br /&gt;&lt;br /&gt;changeset:   2:fef857204a0c&lt;br /&gt;user:        Bryan O'Sullivan &lt;bos@serpentine.com&gt;&lt;br /&gt;date:        Sat Aug 16 22:05:04 2008 +0200&lt;br /&gt;summary:     Introduce a typo into hello.c.&lt;br /&gt;&lt;br /&gt;changeset:   1:82e55d328c8c&lt;br /&gt;user:        mpm@selenic.com&lt;br /&gt;date:        Fri Aug 26 01:21:28 2005 -0700&lt;br /&gt;summary:     Create a makefile&lt;br /&gt;&lt;br /&gt;changeset:   0:0a04b987be5a&lt;br /&gt;user:        mpm@selenic.com&lt;br /&gt;date:        Fri Aug 26 01:20:50 2005 -0700&lt;br /&gt;summary:     Create a standard "hello, world" program&lt;br /&gt;&lt;/bos@serpentine.com&gt;&lt;/bos@serpentine.com&gt;&lt;/bos@serpentine.com&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;So Jython's mercurial story isn't quite as good as I thought it was yesterday, but it is certainly much better than it was in 2007.  If you are interested in Mercurial, I am finding the book to be extremely well written and easy to read, again you can find it &lt;a href="http://hgbook.red-bean.com/"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-3207389156681290298?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/3207389156681290298/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=3207389156681290298' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/3207389156681290298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/3207389156681290298'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2009/02/progress-with-mercurial-on-jython-part.html' title='Progress with Mercurial on Jython: part 2'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-925839949416723799</id><published>2009-02-17T19:21:00.008-05:00</published><updated>2009-02-18T16:25:00.443-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mercurial'/><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><category scheme='http://www.blogger.com/atom/ns#' term='hg'/><title type='text'>Progress with Mercurial on Jython</title><content type='html'>Back in 2007, Charles Nutter &lt;a href="http://blog.headius.com/2007/08/business-case-for-supporting-jython.html"&gt;posted&lt;/a&gt; a suggestion: get &lt;a href="http://www.selenic.com/mercurial/wiki/"&gt;Mercurial&lt;/a&gt; (also called hg) running on Jython.  At the time I downloaded hg to give it a try.  This was before Jython 2.2 was released, and it did not go well.  Mercurial would not even compile, and if you know much about compiling Jython or Python, you might know that getting something to compile is about 1/4 of the battle.&lt;br /&gt;&lt;br /&gt;Much has happened in Jython since 2007, 2.2 is out, and we are a getting very close to a release of 2.5.  Recently, Dirkjan Ochtman has been making changes to Mercurial to better support other implementations of Python .  For example, the parts of Mercurial that where implemented in C have pure Python fallbacks now [Update: Dirkjan tells me that the specific work of re-exposing pure Python fallbacks from hg past was done by Martin Geisler].  To avoid performance issues in the default case, these pure python fallbacks need to be compiled in.&lt;br /&gt;&lt;br /&gt;To test this out in Jython (you need trunk, or at least beta1), get a copy of the latest mercurial&lt;br /&gt;&lt;pre&gt;hg clone http://selenic.com/repo/hg&lt;/pre&gt;Go to the hg directory and compile hg with the "pure" option (thanks to mohbana on #jython irc for the recipe used):&lt;br /&gt;&lt;pre&gt;jython setup.py --pure build_py -c -d . build_ext -i build_mo&lt;/pre&gt;[Update: the patch below was applied by Dirkjan Ochtman last night with the comment "use same popen strategy for jython as for nt"]&lt;br /&gt;then cd to the "tests" directory and (for now) apply &lt;a href="http://pylonshq.com/pasties/03837622bb54a9837453c906ed909124"&gt;this&lt;/a&gt; change to run-tests.py and run&lt;br /&gt;&lt;pre&gt;jython run-tests.py --pure&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This should start the hg test harness.  There are *lots* of failures, but also plenty of heart warming success dots.&lt;br /&gt;[Update: at least some of these success dots are leaks to CPython... I'll do another weblog post when I know more]&lt;br /&gt;&lt;br /&gt;mohbana (again from #jython irc) says that he has had success with "hg init", "hg tip", and "hg add".&lt;br /&gt;&lt;br /&gt;We are getting closer!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-925839949416723799?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/925839949416723799/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=925839949416723799' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/925839949416723799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/925839949416723799'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2009/02/progress-with-mercurial-on-jython.html' title='Progress with Mercurial on Jython'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-153210512511486980</id><published>2009-01-09T16:14:00.005-05:00</published><updated>2009-01-14T20:56:19.824-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>Jython 2.5 Beta1 Released!</title><content type='html'>Happy New Year!  On behalf of the Jython development team, I'm pleased to announce that Jython 2.5b1 is available for &lt;a href="http://downloads.sourceforge.net/jython/jython_installer-2.5b1.jar"&gt;download&lt;/a&gt;.  See the &lt;a href="http://www.jython.org/Project/installation.html"&gt;installation instructions&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Jython 2.5 Beta1 continues a code cooling period where the number of new features should significantly slow as we concentrate on solidifying Jython 2.5 for an eventual release.  I would guess that we will put out about two more betas before we start pushing out release candidates, hopefully in February.&lt;br /&gt;&lt;br /&gt;This is a beta release so be careful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-153210512511486980?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/153210512511486980/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=153210512511486980' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/153210512511486980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/153210512511486980'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2009/01/happy-new-year-on-behalf-of-jython.html' title='Jython 2.5 Beta1 Released!'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-7525284711076110428</id><published>2008-11-13T15:40:00.003-05:00</published><updated>2008-11-13T15:43:58.967-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nbpython'/><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><category scheme='http://www.blogger.com/atom/ns#' term='netbeans'/><category scheme='http://www.blogger.com/atom/ns#' term='antlr'/><title type='text'>Tor Norbye Finds Bug in Jython Lib With NetBeans</title><content type='html'>&lt;a href="http://blogs.sun.com/tor/"&gt;Tor Norbye&lt;/a&gt; has been working on &lt;a href="https://nbpython.dev.java.net/"&gt;nbPython&lt;/a&gt;, which will bring Python support to &lt;a href="http://www.netbeans.org/community/releases/65/"&gt;NetBeans 6.5&lt;/a&gt;.  As anyone that has ever worked with me will know, I am one of those "You will pry my &lt;a href="http://www.vim.org/"&gt;Vim&lt;/a&gt; from my cold dead fingers" kind of developers.  I work at Sun, and nbPython is directly using the &lt;a href="http://www.antlr.org/"&gt;ANTLR&lt;/a&gt; parser that I developed for Jython, but these are not sufficient reasons for me to abandon my beloved Vim.  Having said that, Tor recently posted a &lt;a href="http://blogs.sun.com/tor/date/20081111"&gt;weblog&lt;/a&gt; where he demonstrates the tool by simply pulling up datetime.py right out of the Jython distribution and immediately finding an ancient typo ("ValueError" was misspelled as "ValuError" in an exception block). The fix is checked into trunk, but it had been there for a long time.  Maybe these "IDE"s I keep hearing about are worth looking into after all :).  Certainly I will be trying out NetBeans on the Jython Lib to see what else I can find soon.  An nbPython early access should be appearing soon after NetBeans 6.5 is &lt;a href="http://www.netbeans.org/community/releases/roadmap.html"&gt;released&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-7525284711076110428?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/7525284711076110428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=7525284711076110428' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/7525284711076110428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/7525284711076110428'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2008/11/tor-norbye-finds-bug-in-jython-lib-with.html' title='Tor Norbye Finds Bug in Jython Lib With NetBeans'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-2308862076306371705</id><published>2008-10-31T17:36:00.001-04:00</published><updated>2008-10-31T17:55:28.618-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>Jython 2.5 Beta0 Released!</title><content type='html'>Happy Halloween!  On behalf of the Jython development team, I'm pleased to announce that Jython 2.5b0 is available for &lt;a href="http://downloads.sourceforge.net/jython/jython_installer-2.5b0.jar"&gt;download&lt;/a&gt;.  See the &lt;a href="http://www.jython.org/Project/installation.html"&gt;installation instructions&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Jython 2.5 Beta0 is the beginning of a code cooling period where the number of new features should significantly slow as we concentrate on solidifying Jython 2.5 for an eventual release.  There are still a number of features that we will squeeze in (like jythonc).&lt;br /&gt;&lt;br /&gt;This is a beta release so be careful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-2308862076306371705?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/2308862076306371705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=2308862076306371705' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/2308862076306371705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/2308862076306371705'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2008/10/jython-25-beta0-released.html' title='Jython 2.5 Beta0 Released!'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-3285877719506673167</id><published>2008-10-20T13:45:00.005-04:00</published><updated>2008-10-20T14:28:50.495-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>Updated Jython Roadmap</title><content type='html'>The &lt;a href="http://www.jython.org/Project/roadmap.html"&gt;Jython roadmap&lt;/a&gt; is a bit dated now -- I thought I'd put an updated version here first, take comments, and then update the official roadmap.  BTW there is a more detailed &lt;a href="http://wiki.python.org/jython/RoadMap"&gt;roadmap&lt;/a&gt; on the wiki which I'll also need to update.  Also, if you have dependencies for a Python project that you want working in Jython, please put an issue in &lt;a href="http://bugs.jython.org"&gt;our tracker&lt;/a&gt; so we can get a chance to fix it before we release!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Summary&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Note that Jython's version numbers represent the version of CPython from which Jython pulls most of its libraries that are written in pure Python (as opposed to the parts that are written in Java).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Jython 2.2.1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Jython 2.2.1 has been released. We will produce additional point releases for bug fixing as necessary.  We are close to having enough fixed in the 2.2 maintenance branch to put out a 2.2.2 in the somewhat near future.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Jython 2.5 Beta&lt;/span&gt;&lt;br /&gt;We are closing in on a beta at the time of this writing.  We have a pretty good implementation of Python, passing more than 99% of the unit tests that we pull in from CPython.  We have implemented all of the 2.5 language features and many of the libraries that are new since the 2.2 release of Jython.  A couple of features that I would like to get in have not quite made it for this beta, but I think we will sneak them in slightly post-beta.  Those features are: some kind of replacement for jythonc, ctypes, bz2, elementree, and ast.py (which is the exposed _ast.py added in CPython 2.6 -- _ast.py is already in Jython 2.5)  I hope to have the first beta out in October.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Jython 2.5 Final&lt;/span&gt;&lt;br /&gt;After sneaking in the features above, we need to get all of the unit tests either passing or consciously skipped.  We also need to make sure that all of the issues and patches in the &lt;a href="http://bugs.jython.org"&gt;Jython tracker&lt;/a&gt; have been carefully looked at and either fixed, closed, or marked for the next version.  I hope to have a Jython 2.5 out in January.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Next Jython 2.x&lt;/span&gt;&lt;br /&gt;I think we are going to skip 2.6 and target 2.7, mainly because we can coordinate much better with upstream CPython if we are working on the same version.  Also, according to &lt;a href="http://www.nabble.com/for-__future__-import-planning-td19805865.html"&gt;this thread&lt;/a&gt; on Python-Dev, 2.7 may be a shorter "cleanup" style release, which should make it easier to track.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Jython 3.0&lt;/span&gt;&lt;br /&gt;I believe the time is very close for us to start seriously discussing what Jython 3.0 will eventually look like.  I think, like CPython, we want to try to be realistic and not go too crazy with the scope of change, but at the same time this will be a chance to re-think some very old design decisions and perhaps make new decisions more in line with modern Jython and JVM realities.  That's about all I'm willing to officially say on Jython 3.0 this point.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-3285877719506673167?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/3285877719506673167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=3285877719506673167' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/3285877719506673167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/3285877719506673167'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2008/10/updated-jython-roadmap.html' title='Updated Jython Roadmap'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-7721934720886630482</id><published>2008-09-10T21:22:00.002-04:00</published><updated>2008-09-10T21:27:41.310-04:00</updated><title type='text'>Jython 2.5 Alpha3 Released!</title><content type='html'>On behalf of the Jython development team, I'm pleased to announce that Jython 2.5a3 is available for &lt;a href="http://downloads.sourceforge.net/jython/jython_installer-2.5a3.jar"&gt;download&lt;/a&gt;. See the &lt;a href="http://jython.org/Project/installation.html"&gt;installation instructions&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Jython 2.5 Alpha3 fixes a bug that caused installation problems for many Windows users, so Oti Humbel and Leo Soto came to the rescue with an assist by Geoffrey French.  Oti also fixed standalone mode while he was there.   Yay!&lt;br /&gt;&lt;br /&gt;As before, this is an alpha release so be careful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-7721934720886630482?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/7721934720886630482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=7721934720886630482' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/7721934720886630482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/7721934720886630482'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2008/09/jython-25-alpha3-released.html' title='Jython 2.5 Alpha3 Released!'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-3793243148937204549</id><published>2008-09-07T21:30:00.001-04:00</published><updated>2008-09-07T21:32:53.035-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='djangocon'/><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><category scheme='http://www.blogger.com/atom/ns#' term='django'/><title type='text'>Djangocon day 2</title><content type='html'>Mark Ramm spent his talk urging the Django community to reduce the coupling between the various parts of Django.  He fears that Django might be (partly) going down the same path that historically hurt Zope 2.  Zope 2 was a self contained web framework that had no external dependencies.  On the surface this sounds like a good thing, it makes installing, deploying, testing etc very easy.  *But* Zope 2 created an environment where there where two communities: Python developers and Zope developers, and this surely contributed to its decline.  It would be sad if the same thing happened to Django -- and it is not hard to imagine how that could happen.  Note that Zope 3 has made amazing strides in decoupling itself which (as Mark pointed out) may make Django the largest open source monolithic web framework in Python.&lt;br /&gt;&lt;br /&gt;Next up was a panel of Django committers.  Among other things they talked about Mark's concerns.  There is a tension between being a "Don't make me think" and "Let me choose" framework.   The important thing to note is that the Django developers do care about being a composable framework with a certain set of defaults, and very much want to have good interoperability with the greater Python web development community.  For more hope see &lt;a href="http://code.djangoproject.com/ticket/8929"&gt;Django Ticket #8929&lt;/a&gt; titled "Reduce the divide between Django and the rest of the Python web world".&lt;br /&gt;&lt;br /&gt;The lightening talks, as always, where fun to watch.  There is something compelling about a series of 5 minute talks that anyone can sign up to do at the last minute.&lt;br /&gt;&lt;br /&gt;Jim Baker and Leo Soto spoke about Django on Jython.  They worked with some &lt;a href="http://code.google.com/p/django-hotclub/"&gt;Pinax&lt;/a&gt; folks to get some of their extensions to Django running on Jython.  Pinax on Jython demoed very nicely.&lt;br /&gt;&lt;br /&gt;&lt;span class="entry-content"&gt;Adrian Holovaty and &lt;/span&gt;&lt;span class="entry-content"&gt;Jacob Kaplan Moss finished off the conference with a talk on the future of Django.&lt;/span&gt;  In particular I respect their call for the community to "tell them when they suck".  The ability to listen to criticism, and to even welcome it is a huge asset.  They also want to start getting releases out on a regular schedule.  Good stuff.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-3793243148937204549?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/3793243148937204549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=3793243148937204549' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/3793243148937204549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/3793243148937204549'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2008/09/djangocon-day-2.html' title='Djangocon day 2'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-1352860751971380318</id><published>2008-09-07T01:22:00.003-04:00</published><updated>2008-09-07T13:20:45.954-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='djangocon'/><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><category scheme='http://www.blogger.com/atom/ns#' term='django'/><title type='text'>Djangocon day 1</title><content type='html'>The first day of the inaugural Djangocon took place at the Googleplex today.  Since I wasn't madly writing a presentation at this one (as I have been for every conference I've been at in recent memory), I actually took some notes.&lt;br /&gt;&lt;br /&gt;Some highlights:&lt;br /&gt;&lt;br /&gt;&lt;span class="entry-content"&gt;Leslie Hawthorn (of Google Summer of Code fame if you don't recognize the name) is here at Djangocon and was apparently a big part of making it happen.  As always she was cranked up to 11.  It's hard to believe just how much stuff has her involvment.  Perhaps there is more than one LH?&lt;br /&gt;&lt;br /&gt;Guido van Rossum talked about Google App Engine.  I am *really* going to need to take it for a spin in my copious spare time.  He hinted that more languages beyond Python are being audited for use in App Engine, but there was no promise of a time frame (apparently even the audit of Python -- probably one of the best known languages at Google -- took forever).  He didn't say which one.  I will place my bets at 60% on Ruby and 40% on Java -- though I wonder what MVC framework would make sense from Java...&lt;br /&gt;&lt;br /&gt;Adrian Holovaty reminisced&lt;/span&gt;&lt;span class="entry-content"&gt; about some of the bad times with early Django code, but also how much of the original concepts remain almost unchanged.  He then went on to describe the current state of Django.  My favorite bit was this quote from the tracker around August 2005:&lt;/span&gt;&lt;br /&gt;&lt;span class="entry-content"&gt;&lt;/span&gt;&lt;blockquote&gt;I can't think of any other backwards-incompatible changes that we're planning before 1.0 (knock on wood). If this isn't the last one, though, it's at least the last &lt;em&gt;major&lt;/em&gt; one.&lt;/blockquote&gt;&lt;span class="entry-content"&gt;Jacob Kaplan Moss continued on Django history and the current cool features of modern Django, also with some pretty funny anecdotes.  He also plugged Jython on Django :).  Which by the way was very much a two way effort.  The Django folks where incredibly supportive of our efforts to get Django working with Jython.&lt;br /&gt;&lt;br /&gt;Justin Bronn talked about GeoDjango and gave a fascinating talk that started with the fundamentals of GIS and then went into how to use GeoDjango to map-enable your code.  It relies on ctypes, which may not be too hard to get running on Jython.  GeoDjango demoes very well so that's one more reason for us to take a look at getting ctypes supported.&lt;br /&gt;&lt;br /&gt;Carl Henderson was hilarious in his "Why I hate Django".  It was a combination of interesting survey of what makes a site like Flickr scale so well and a sort of loving roast of Django.  There's no point in trying to convey it -- I think they recoreded all of these talks if you are a fan of Django I'm certain you would enjoy his talk.&lt;br /&gt;&lt;br /&gt;I also released Jython 2.5 in the middle of all of this, met Leo Soto (our Django google summer of code student), and talked over some co-routine issues with Jim Baker.  All in all a very good day.&lt;br /&gt;&lt;/span&gt;&lt;span class="entry-content"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-1352860751971380318?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/1352860751971380318/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=1352860751971380318' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/1352860751971380318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/1352860751971380318'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2008/09/djangocon-day-1.html' title='Djangocon day 1'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-6566039614569780413</id><published>2008-09-06T17:37:00.011-04:00</published><updated>2008-09-15T11:44:16.189-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><category scheme='http://www.blogger.com/atom/ns#' term='django'/><title type='text'>Jython 2.5 Alpha 2 Released!</title><content type='html'>[Update:] Use &lt;a href="http://fwierzbicki.blogspot.com/2008/09/jython-25-alpha3-released.html"&gt;Alpha3&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;On behalf of the Jython development team, I'm pleased to announce that&lt;br /&gt;Jython 2.5a2+ is available for &lt;a href="http://downloads.sourceforge.net/jython/jython_installer-2.5a2.jar"&gt;download&lt;/a&gt;.  See the &lt;a href="http://jython.org/Project/installation.html"&gt;installation instructions&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Django runs pretty well on this release.  I am attending Djangocon where Jim Baker and Leo Soto will be presenting on Django on Jython, and I wanted them to be able to tell people to grab a release instead of telling them to grab Jython from svn.&lt;br /&gt;&lt;br /&gt;There are many bug fixes, but also many bugs that have not yet been fixed.  This is an alpha release so be careful!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-6566039614569780413?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/6566039614569780413/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=6566039614569780413' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/6566039614569780413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/6566039614569780413'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2008/09/jython-25-alpha-2-released.html' title='Jython 2.5 Alpha 2 Released!'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-8026486574260523439</id><published>2008-08-19T14:56:00.005-04:00</published><updated>2008-08-19T17:19:40.717-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>Jython's Trunk Now Targets 2.5</title><content type='html'>This post is mainly of interest to those that like to follow the development path of Jython.  I just merged our development branch called "asm" to trunk.  This marks a nice milestone on the path to getting 2.5 out.  So if you are interested in grabbing bleeding edge Jython out of the svn  repository, the asm branch is now closed, so use trunk instead.  Trunk is located at:&lt;br /&gt;&lt;br /&gt;&lt;a href="https://jython.svn.sourceforge.net/svnroot/jython/trunk"&gt;https://jython.svn.sourceforge.net/svnroot/jython/trunk&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Stay tuned, once I feel like things have settled down in trunk, I'll put together another alpha.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-8026486574260523439?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/8026486574260523439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=8026486574260523439' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/8026486574260523439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/8026486574260523439'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2008/08/jythons-trunk-now-targets-25.html' title='Jython&apos;s Trunk Now Targets 2.5'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-1733116034916797077</id><published>2008-08-06T13:32:00.010-04:00</published><updated>2008-08-06T21:44:51.859-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rietveld'/><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>Code Review with Rietveld</title><content type='html'>So I've been playing around with the online code review tool called &lt;a href="http://code.google.com/appengine/articles/rietveld.html"&gt;Rietveld&lt;/a&gt;&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;.  You can find a live instance of the tool &lt;a href="http://codereview.appspot.com/"&gt;here&lt;/a&gt;.  Since the tool is available to any project with a subversion repo, and it was authored by Python's &lt;a href="http://www.artima.com/weblogs/viewpost.jsp?thread=235725"&gt;First Interim Benevelant Dictator for Life &lt;/a&gt;Guido van Rossum, I had to check it out.  Many serious Python developers are afflicted with a quasi-religious zeal to follow whatever the BDFL does or says, and I'm no exception :).&lt;br /&gt;&lt;br /&gt;Still, that only gets me to try it out.  So what do I think of Rietveld?  So far I like it!  My workflow with Rietveld goes something like this:&lt;br /&gt;&lt;br /&gt;1. Make some changes in my local copy of the svn repository.&lt;br /&gt;2. Call &lt;a href="http://codereview.appspot.com/static/upload.py"&gt;upload.py&lt;/a&gt; from the root of the local copy (which inolves authenticating and a comment).&lt;br /&gt;3. Navigate to the issue url (the upload.py tool spits out a URL when it completes).  Here is an &lt;a href="http://codereview.appspot.com/2845"&gt;example&lt;/a&gt;.&lt;br /&gt;4. Take a look at the visual diffs (much easier on the eye when compared to a universal diff from email).&lt;br /&gt;4a.  Sometimes step 4 prompts me to delete the issue, change some code, and start again at step 1. This may be reason enough to use the tool.&lt;br /&gt;5. Post the issue URL to #jython irc.&lt;br /&gt;6. Check it in.&lt;br /&gt;7. See what comments I get from #5 and act on them.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;[Update:] &lt;/span&gt;Guido van Rossum pointed out that step 4a is much better accomplished with "upload -i" (This will let you add a new patch set to the &lt;i&gt;same&lt;/i&gt; issue. Your reviewers can even see what changed between different patch sets. -- cool!)&lt;br /&gt;&lt;br /&gt;So step 6 is probably premature if this was a traditional code review, but I *am* still evaluating, and of course any feedback is still likely to cause future changes (maybe even a rollback if I missed something really bad).  Also, so far I am only using it for bigger changes -- again this is just better for evaluation purposes.&lt;br /&gt;&lt;br /&gt;Overall I really like the tool, and I plan to continue using it.  I am pondering a requirement for patch submissions from non-committers to go through Rietveld, but I still want to try it out for a while before I get serious.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-1733116034916797077?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/1733116034916797077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=1733116034916797077' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/1733116034916797077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/1733116034916797077'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2008/08/code-review-with-rietveld.html' title='Code Review with Rietveld'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-7691909279949682135</id><published>2008-07-29T10:04:00.008-04:00</published><updated>2008-07-31T15:00:09.736-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='science'/><title type='text'>Open Sourcing Science</title><content type='html'>I just read Michael Nielson's fascinating weblog post &lt;a href="http://michaelnielsen.org/blog/?p=448"&gt;The Future of Science&lt;/a&gt;.  In it he describes the current state of collaboration typical of modern science:&lt;br /&gt;&lt;blockquote&gt;These failures of science online are all examples where scientists show a surprising reluctance to share knowledge that could be useful to others. This is ironic, for the value of cultural openness was understood centuries ago by many of the founders of modern science; indeed, the journal system is perhaps the most open system for the transmission of knowledge that could be built with 17th century media. The adoption of the journal system was achieved by subsidizing scientists who published their discoveries in journals. This same subsidy now &lt;em&gt;inhibits&lt;/em&gt; the adoption of more effective technologies, because it continues to incentivize scientists to share their work in conventional journals, and not in more modern media.&lt;br /&gt;&lt;/blockquote&gt;I remember the excitement that I had when I entered the &lt;a href="http://neuro.neusc.bcm.tmc.edu/"&gt;PhD program in Neuroscience&lt;/a&gt; at &lt;a href="http://www.bcm.edu/"&gt;Baylor College of Medicine&lt;/a&gt;.  I was going to become part of Science where I was going to take part in the expansion of human knowledge in the most collaborative environment that has ever been seen.  Or so I thought.  It turned out that success as a scientist hinged on keeping much of what you do a secret until you can get to a place where you are ready to publish.  If you reveal too many of your secrets you could get &lt;a href="http://blog.openwetware.org/scienceintheopen/2007/11/14/getting-scooped/"&gt;scooped&lt;/a&gt;.  Scooped!?  A term taken from newspapers -- a term that underscores the need to guard your secrets lest you lose everything for which you have worked.&lt;br /&gt;&lt;br /&gt;Disillusionment with the system was definitely one of the things that helped me decide to leave science.  Another was that I was just not all that happy doing "bench work" which is scientist slang for doing experiments in a lab.  In the &lt;a href="http://neuro.neusc.bcm.tmc.edu/?sct=gfaculty&amp;amp;prf=32"&gt;Schultz lab&lt;/a&gt; where I worked,  Paul Schultz was about the best mentor that I could have asked for.  I don't think I've ever met anyone who worked as hard as Paul does, and it's hard to think of a nicer guy.  Still, I found that I had much more fun working on the software that ran our experiments than on the experiments themselves, and so my future path  was decided.  In fact, in open source software I have actually found an environment where collaboration really is open and easy.  Hopefully the world of science can learn from the success of open source.  Again from Nielson:&lt;br /&gt;&lt;blockquote&gt;We should aim to create an open scientific culture where as much information as possible is moved out of people’s heads and labs, onto the network, and into tools which can help us structure and filter the information. This means everything - data, scientific opinions, questions, ideas, folk knowledge, workflows, and everything else - the works. Information not on the network can’t do any good. &lt;/blockquote&gt;&lt;br /&gt;If the tools and the cultural changes discussed in&lt;a href="http://michaelnielsen.org/blog/?p=448"&gt; The Future of Science&lt;/a&gt; become reality, science can again become the most collaborative endeavor that the world has ever seen.  It would become a place that I probably would not have left -- of course that is if I could have found a way to get past my bench work problems.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-7691909279949682135?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/7691909279949682135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=7691909279949682135' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/7691909279949682135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/7691909279949682135'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2008/07/open-sourcing-science.html' title='Open Sourcing Science'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-6500234672730551987</id><published>2008-07-15T14:57:00.004-04:00</published><updated>2008-07-15T16:00:37.068-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>Wow -- bug reports already!</title><content type='html'>Literally within minutes of posting the Jython 2.5 alpha, I started receiving bug reports.  I'm really excited that so many people are watching and ready to try it out!&lt;br /&gt;&lt;br /&gt;On the other hand I am chagrined that I did not test on Windows before I uploaded.  Luckily my wife is still holding out and sticking to Windows, and in this case I'm glad.  I applied a quick fix (plus a couple of extra fixes that where easy enough) and uploaded another version.&lt;br /&gt;&lt;br /&gt;So if you have tried and failed to run the alpha, especially on Windows, please &lt;a href="http://downloads.sourceforge.net/jython/jython_installer-2.5a1.jar"&gt;give it another try&lt;/a&gt;.  By the way I incremented to 2.5a1.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-6500234672730551987?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/6500234672730551987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=6500234672730551987' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/6500234672730551987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/6500234672730551987'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2008/07/wow-bug-reports-already.html' title='Wow -- bug reports already!'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-6609206673927291689</id><published>2008-07-15T12:44:00.002-04:00</published><updated>2008-09-15T11:42:42.979-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><category scheme='http://www.blogger.com/atom/ns#' term='asm'/><category scheme='http://www.blogger.com/atom/ns#' term='antlr'/><title type='text'>Jython 2.5 Alpha Released!</title><content type='html'>[Update:] Use &lt;a href="http://fwierzbicki.blogspot.com/2008/09/jython-25-alpha3-released.html"&gt;Alpha3&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;On behalf of the Jython development team, I'm pleased to announce that&lt;br /&gt;Jython 2.5a1+ is available for &lt;a href="http://downloads.sourceforge.net/jython/jython_installer-2.5a1.jar"&gt;download&lt;/a&gt;.  See the &lt;a href="http://jython.org/Project/installation.html"&gt;installation instructions&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This is the first alpha release of Jython 2.5 and contains many new features.  In fact, because we have skipped 2.3 and 2.4, there are too many to even summarize.  A few of the features are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; generator expressions&lt;/li&gt;&lt;li&gt;with statement&lt;/li&gt;&lt;li&gt;exceptions as new-style classes&lt;/li&gt;&lt;li&gt;unicode support more in line with CPython&lt;/li&gt;&lt;li&gt;decorators&lt;/li&gt;&lt;/ul&gt;Under the hood Jython 2.5 has a new parser based on ANTLR 3.1 and the compiler has been refactored to use ASM.&lt;br /&gt;&lt;br /&gt;There are so many more changes that I have missed more than I have listed.  This is an alpha release, so there are known and unknown bugs, so be careful.&lt;br /&gt;&lt;br /&gt;Update: there was a bug that caused a failure on Windows, so the version and download info has been updated.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-6609206673927291689?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/6609206673927291689/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=6609206673927291689' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/6609206673927291689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/6609206673927291689'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2008/07/jython-25-alpha-released.html' title='Jython 2.5 Alpha Released!'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-1238598944686554851</id><published>2008-07-10T06:09:00.012-04:00</published><updated>2008-07-10T09:39:47.390-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><category scheme='http://www.blogger.com/atom/ns#' term='europython2008'/><category scheme='http://www.blogger.com/atom/ns#' term='europython'/><title type='text'>EuroPython 2008</title><content type='html'>&lt;a href="http://www.europython.org/"&gt;EuroPython 2008&lt;/a&gt; was a very eventful for Jython this year.&lt;br /&gt;&lt;br /&gt;Jython had four sessions comprised of one tutorial, two talks and one panel.  I participated in the panel and in half of one of the talks with &lt;a href="http://zyasoft.com/pythoneering/"&gt;Jim Baker&lt;/a&gt;.  The other talk and the tutorial where done by Jim Baker and Tobias Ivarsson.  All of the sessions where well attended, and the attendees where very interested.  They asked plenty of great questions and even stayed past the time limit on a couple of occasions :)&lt;br /&gt;&lt;br /&gt;Jython got so close to an alpha that I spent time on it when I should have been preparing for a presentation, but a couple of bugs made me hold off.  Stay tuned: an alpha is within days, possibly hours if I can find the time today. I may not find the time as I am currently in Prague working with some NetBeans folks discussing the issues involved in getting NetBeans to support Python and Jython.&lt;br /&gt;&lt;br /&gt;Ted and I announced Sun's intention to start working on the support of NetBeans at EuroPython by supporting the &lt;a href="https://nbpython.dev.java.net/"&gt;NBPython&lt;/a&gt; community.  For more on that see the weblogs from &lt;a href="http://www.sauria.com/blog/2008/07/08/python-in-netbeans-nbpython/"&gt;Ted Leung&lt;/a&gt; and &lt;a href="http://codesnakes.blogspot.com/2008/07/netbeans-to-support-python-its-offical.html"&gt;Allen Davis&lt;/a&gt; and the &lt;a href="http://www.netbeans.org/servlets/NewsItemView?newsItemID=1255"&gt;NetBeans news post.&lt;/a&gt;  This is a project that is just beginning, so if you have an interest in Java, Python and IDE work, you should take a look.&lt;br /&gt;&lt;br /&gt;Perhaps the best part of EuroPython for me was all of the interaction that I had with the &lt;a href="http://codespeak.net/pypy/dist/pypy/doc/home.html"&gt;PyPy&lt;/a&gt; folks.  Pretty much one entire track at the conference was shared by Jython and PyPy.  Best of all was a thirty minute session where all available PyPy and Jython folks got together to find some places where we might be able to collaborate.  Details about that conversation can be found on &lt;a href="http://morepypy.blogspot.com/2008/07/ep2008-pypy-meets-jython.html"&gt;Holger Krekel's&lt;/a&gt; weblog post on the subject.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-1238598944686554851?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/1238598944686554851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=1238598944686554851' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/1238598944686554851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/1238598944686554851'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2008/07/europython-2008.html' title='EuroPython 2008'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-5923304928887749383</id><published>2008-06-27T10:14:00.005-04:00</published><updated>2008-06-27T10:20:37.043-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>Welcome Leonardo Soto, Jython's Newest Committer</title><content type='html'>I just flipped &lt;a href="http://blog.leosoto.com/"&gt;Leonardo Soto&lt;/a&gt;'s commit bit this morning.  Leo has been working with the Jython project for about a year now.  He was instrumental in getting Django running on Jython, submitting patches to both the Django project and to the Jython project.  Many of the patches to the Jython project fixed features in the very core of Jython that prevented Django from running.  Leo continues his work on Django on Jython this summer with a Google Summer of Code grant.&lt;br /&gt;&lt;br /&gt;Please join me in welcoming Leo aboard!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-5923304928887749383?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/5923304928887749383/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=5923304928887749383' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/5923304928887749383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/5923304928887749383'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2008/06/welcome-leonardo-soto-jythons-newest.html' title='Welcome Leonardo Soto, Jython&apos;s Newest Committer'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-6660481168355986340</id><published>2008-06-21T10:40:00.005-04:00</published><updated>2008-06-21T10:52:33.905-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><category scheme='http://www.blogger.com/atom/ns#' term='europython'/><title type='text'>EuroPython - Anyone have some cool demos?</title><content type='html'>So Jim Baker and I have a talk at this years EuroPython &lt;a href=http://registration.europython.eu/talk_abstracts.html#12&gt;Cool Stuff With Jython&lt;/a&gt; and I was hoping that some of you have cooler stuff than I do :).  I'll be sure to give credit for demos I show -- and I'll promise a t-shirt for any demo code that I use -- though I have yet to have any made (stealing the idea from the JRuby guys) -- you'll have to wait until I have them :).  The best place to send demo ideas and code is to the jython-dev or jython-users &lt;a href="http://sourceforge.net/mail/?group_id=12867"&gt;mailing list&lt;/a&gt;.  I'll watch the comments here too of course.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-6660481168355986340?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/6660481168355986340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=6660481168355986340' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/6660481168355986340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/6660481168355986340'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2008/06/europython-anyone-have-some-cool-demos.html' title='EuroPython - Anyone have some cool demos?'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-2061306302767891748</id><published>2008-06-21T10:06:00.003-04:00</published><updated>2008-06-21T10:48:25.087-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>Jython 2.5 Approaches an Alpha Release</title><content type='html'>Jim Baker just published some great &lt;a href="http://zyasoft.com/pythoneering/2008/06/realizing-jython-25.html"&gt;analysis&lt;/a&gt; of the remaining issues that are left before releasing an alpha of Jython 2.5.  I'll add that we need to get re/sre support fixed so that  we can run the 2.5 Lib tests and pull in CPython's 2.5 Lib.  I just checked in some grammar changes that make the asm branch interpreter much better.  So close... stay tuned!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-2061306302767891748?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/2061306302767891748/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=2061306302767891748' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/2061306302767891748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/2061306302767891748'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2008/06/jython-25-approaches-alpha-release.html' title='Jython 2.5 Approaches an Alpha Release'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-7812979013216632122</id><published>2008-04-24T10:16:00.009-04:00</published><updated>2008-04-28T09:33:54.832-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><category scheme='http://www.blogger.com/atom/ns#' term='django'/><category scheme='http://www.blogger.com/atom/ns#' term='modjy'/><category scheme='http://www.blogger.com/atom/ns#' term='glassfish'/><title type='text'>Jython and Django Progress Part II: GlassFish and modjy</title><content type='html'>In &lt;a href="http://fwierzbicki.blogspot.com/2008/04/jython-and-django-progress-part-i-dev.html"&gt;part I&lt;/a&gt; I showed you how to run the Django dev server from Jython.  In this post I will demo Django on GlassFish.  So starting with the app you had running from part I:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Download a &lt;a href="http://download.java.net/javaee5/v3/releases/preview/"&gt;preview build&lt;/a&gt; of GlassFish.  I am using &lt;a href="http://download.java.net/javaee5/v3/releases/preview/glassfish-snapshot-v3-preview-11_04_2008.zip"&gt;this snapshot&lt;/a&gt;, but a more recent snapshot will very likely work just as well.&lt;/li&gt;&lt;li&gt;Unzip the snapshot somewhere and put the resulting glassfish/bin in your PATH.&lt;/li&gt;&lt;li&gt;Download &lt;a href="http://www.xhaus.com/modjy/download.html"&gt;modjy&lt;/a&gt; and unzip  it somewhere (you will only need modjy.jar)&lt;/li&gt;&lt;li&gt;Create a directory that will house your webapp.  I'm calling mine "webapp".&lt;/li&gt;&lt;li&gt;Create a WEB-INF directory under webapp and a lib directory under that.&lt;/li&gt;&lt;li&gt;Copy jython-trunk/dist/jython.jar into webapp/WEB-INF/lib&lt;/li&gt;&lt;li&gt;Copy the whole jython-trunk/dist/Lib directory into webapp/WEB-INF/lib so that you end up with a webapp/WEB-INF/lib/Lib directory with all Jython's .py files.&lt;/li&gt;&lt;li&gt;Copy modjy.jar from modjy_0_22_0/modjy_webapp/WEB-INF/lib/modjy.jar into webapp/WEB-INF/lib.&lt;/li&gt;&lt;li&gt;Copy your postgres jdbc driver jar into webapp/WEB-INF/lib&lt;/li&gt;&lt;li&gt;Copy django-trunk/django into the webapp directory so that you end up with webapp/django/&lt;/li&gt;&lt;li&gt;Copy your mysite directory into the webapp directory so that you end up with webapp/mysite&lt;/li&gt;&lt;li&gt;Copy django-trunk/django/contrib/admin/media/ into glassfish/domains/domain1/docroot/ so that you end up with a glassfish/domains/domain1/docroot/media directory (this is so the admin css and js files can be found by Django).&lt;/li&gt;&lt;li&gt;Create a webapp/WEB-INF/web.xml file like this [Update: I've added a new init-param block with param-name=python.home and param-value=the home dir of my Jython dist - Thanks to &lt;a href="http://www.blogger.com/profile/16892115358256351482"&gt;Tristan&lt;/a&gt; for pointing out this omission]: &lt;pre&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="ISO-8859-1"?&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE web-app&lt;br /&gt;PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"&lt;br /&gt;"http://java.sun.com/dtd/web-app_2_3.dtd"&amp;gt;&lt;br /&gt;&amp;lt;web-app&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;display-name&amp;gt;Django and modjy&amp;lt;/display-name&amp;gt;&lt;br /&gt;  &amp;lt;description&amp;gt;&lt;br /&gt;    Djagno on Jython through WSGI with modjy&lt;br /&gt;  &amp;lt;/description&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;servlet&amp;gt;&lt;br /&gt;    &amp;lt;servlet-name&amp;gt;modjy&amp;lt;/servlet-name&amp;gt;&lt;br /&gt;    &amp;lt;servlet-class&amp;gt;com.xhaus.modjy.ModjyJServlet&amp;lt;/servlet-class&amp;gt;&lt;br /&gt;    &amp;lt;init-param&amp;gt;&lt;br /&gt;      &amp;lt;param-name&amp;gt;reload_on_mod&amp;lt;/param-name&amp;gt;&lt;br /&gt;      &amp;lt;param-value&amp;gt;1&amp;lt;/param-value&amp;gt;&lt;br /&gt;    &amp;lt;/init-param&amp;gt;&lt;br /&gt;    &amp;lt;init-param&amp;gt;&lt;br /&gt;      &amp;lt;param-name&amp;gt;python.home&amp;lt;/param-name&amp;gt;&lt;br /&gt;      &amp;lt;param-value&amp;gt;/path/to/jython-trunk/dist&amp;lt;/param-value&amp;gt;&lt;br /&gt;    &amp;lt;/init-param&amp;gt;&lt;br /&gt;    &amp;lt;load-on-startup&amp;gt;1&amp;lt;/load-on-startup&amp;gt;&lt;br /&gt;  &amp;lt;/servlet&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;servlet-mapping&amp;gt;&lt;br /&gt;    &amp;lt;servlet-name&amp;gt;modjy&amp;lt;/servlet-name&amp;gt;&lt;br /&gt;    &amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;  &amp;lt;/servlet-mapping&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/web-app&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Create a file application.py (note that it must be called application.py as this is the default that modjy expects.  If you want to give it a different name see the &lt;a href="http://www.xhaus.com/modjy/"&gt;modjy docs&lt;/a&gt;) directly under webapp with these contents:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;import os&lt;br /&gt;&lt;br /&gt;from django.core.handlers import wsgi&lt;br /&gt;os.putenv("DJANGO_SETTINGS_MODULE", "mysite.settings")&lt;br /&gt;&lt;br /&gt;def handler(environ, start_response):&lt;br /&gt;h = wsgi.WSGIHandler()&lt;br /&gt;return h(environ, start_response)&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Georgia,serif;"&gt;Now fire up GlassFish by issuing the "startserv" command&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Georgia,serif;"&gt;Then deploy our webapp with "asadmin deploy webapp"&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Navigate to &lt;a href="http://localhost:8080/webapp/admin"&gt;http://localhost:8080/webapp/admin&lt;/a&gt; and you should see the django admin app -- note the 8080 instead of the 8000 from the dev server.&lt;/li&gt;&lt;/ol&gt;This works pretty well -- though I've noticed that there is still a redirect problem when trying to log into the admin app from GlassFish.  If you log in using the dev server from part I and then try the GlassFish version, it works fine.  I will look into this bug when I can, but I really wanted to get this post out since it will be a while before I can come back to this (JavaOne is too close and I am on several panels (two with major demos) and doing a one hour talk :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-7812979013216632122?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/7812979013216632122/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=7812979013216632122' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/7812979013216632122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/7812979013216632122'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2008/04/jython-and-django-progress-part-ii.html' title='Jython and Django Progress Part II: GlassFish and modjy'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-8700301317206016691</id><published>2008-04-10T20:54:00.000-04:00</published><updated>2008-04-24T14:55:30.016-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mako'/><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><category scheme='http://www.blogger.com/atom/ns#' term='_ast'/><category scheme='http://www.blogger.com/atom/ns#' term='antlr'/><title type='text'>Start of an _ast Module in Jython's Trunk</title><content type='html'>Philip Jenvey has a &lt;a href="http://svn.makotemplates.org/mako/branches/_ast"&gt;mako branch&lt;/a&gt; that uses _ast for its parsing.  _ast is the module, new in Python 2.5, that exposes Python's internal parsing implementation.  I have been using _ast to &lt;a href="http://fwierzbicki.blogspot.com/2008/01/first-cut-at-antlr-based-parser-for.html"&gt;compare my antlr&lt;/a&gt; work with the real Python _ast.  Philip's work on mako has motivated me to start on a real _ast for Jython.  I just started it, and it is not yet sufficient for the mako work, but it's getting there.&lt;br /&gt;&lt;br /&gt;The new _ast module relies on the new antlr parser which is now in trunk.  For now you must put antlr-runtime-3.0.1 (which is in the extlibs dir) in your classpath to use it.  Using it looks like this:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&gt;&gt;&gt; import _ast&lt;br /&gt;&gt;&gt;&gt; compile("a=1", "&amp;lt;unknown&amp;gt;", "exec", _ast.PyCF_ONLY_AST)&lt;br /&gt;tree: (Module (Assign (Target (Name a)) (Value (Num 1))))&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Which outputs a tree representation for now.&lt;br /&gt;&lt;br /&gt;If you do not use _ast or the PyCF_ONLY_AST flag, you should not need antlr-runtime-3.0.1.jar in your path.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-8700301317206016691?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/8700301317206016691/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=8700301317206016691' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/8700301317206016691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/8700301317206016691'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2008/04/start-of-ast-module-in-jythons-trunk.html' title='Start of an _ast Module in Jython&apos;s Trunk'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-6300935733742856152</id><published>2008-04-08T11:36:00.006-04:00</published><updated>2008-04-08T14:02:43.881-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wsgi'/><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><category scheme='http://www.blogger.com/atom/ns#' term='django'/><category scheme='http://www.blogger.com/atom/ns#' term='modjy'/><category scheme='http://www.blogger.com/atom/ns#' term='glassfish'/><title type='text'>Jython and Django Progress Part I: Dev Server</title><content type='html'>Jython and Django are working better and better together.  About &lt;a href="http://fwierzbicki.blogspot.com/2007/09/work-towards-django-on-jython.html"&gt;six months ago&lt;/a&gt; I took a crack at it.  I had a little success and put together a list of problems and some workarounds that I found.  &lt;a href="http://blog.leosoto.com/2007/09/django-on-jython-what-ive-done-until.html"&gt;Leo Soto&lt;/a&gt;, &lt;a href="http://zyasoft.com/pythoneering/2008/01/django-on-jython-minding-gap.html"&gt;Jim Baker&lt;/a&gt; and others did a much better job at getting Django trunk and Jython trunk working together.  I am currently working on getting Django to run on &lt;a href="https://glassfish.dev.java.net/"&gt;GlassFish&lt;/a&gt; through the &lt;a href="http://www.wsgi.org/wsgi"&gt;WSGI&lt;/a&gt; interface provided by &lt;a href="http://www.xhaus.com/modjy/"&gt;modjy&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So here are the steps to get Django's dev server running on Jython:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Get &lt;a href="http://www.postgresql.org/"&gt;postgresql&lt;/a&gt; installed, get a &lt;a href="http://jdbc.postgresql.org/"&gt;postgresql jdbc driver&lt;/a&gt; and put it on your classpath&lt;/li&gt;&lt;li&gt;Get Django from svn:&lt;br /&gt;&lt;pre&gt;svn co http://code.djangoproject.com/svn/django/trunk/ django-trunk&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Get Jython from svn: &lt;pre&gt;svn co https://jython.svn.sourceforge.net/svnroot/jython/trunk/jython jython-trunk&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Get patches for Django that haven't made it in yet from svn:&lt;pre&gt;svn co https://jython.svn.sourceforge.net/svnroot/jython/trunk/sandbox/jbaker/django django-patches/&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Copy patches over django-trunk:&lt;pre&gt;mkdir django-trunk/django/db/backends/postgresql_zxjdbc/&lt;br /&gt;cp django-patches/db/backends/postgresql_zxjdbc/*.py django-trunk/django/db/backends/postgresql_zxjdbc/&lt;br /&gt;cp django-patches/dispatch/robustapply.py django-trunk/django/dispatch/robustapply.py&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Create a shell or batch file to run jython with django on the path.  I created the file below and named it "run"&lt;br /&gt;&lt;pre&gt;#!/bin/sh&lt;br /&gt;JYTHON_HOME=jython-trunk/dist&lt;br /&gt;JYTHON_JAVA_ARGS="-classpath $JYTHON_HOME/jython.jar:$CLASSPATH"&lt;br /&gt;$JAVA_HOME/bin/java $JYTHON_JAVA_ARGS -Dpython.path='django-trunk' -Dpython.home="$JYTHON_HOME" org.python.util.jython "$@"&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Now create a new project.  This is the start of the &lt;a href="http://www.djangoproject.com/documentation/tutorial01/"&gt;django tutorial&lt;/a&gt; except that I've explicitly used my "run" script and the full path to django-admin.py&lt;br /&gt;&lt;pre&gt;./run django-trunk/django/bin/django-admin.py startproject mysite&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Try it out!  Note the --noreload directive.  Reloading does not work yet.&lt;br /&gt;&lt;pre&gt;./run mysite/manage.py runserver --noreload&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Navigate to &lt;a href="http://localhost:8000/"&gt;http://localhost:8000&lt;/a&gt; and you should see the django default page.&lt;/li&gt;&lt;li&gt;Now edit mysite/settings.py.  For DATABASE_ENGINE use postgresql_zxjdbc, and add    'django.contrib.admin' to the bottom of the INSTALLED_APPS as outlined in the django tutorial.  Of course, also put the database username/password etc into the right spots in settings.py.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Edit mysite/urls.py and uncomment the admin app line.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Now sync the database&lt;br /&gt;&lt;pre&gt;./run mysite/manage.py syncdb&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Stop and start the app again (as in step 8) and navigate to the admin app at &lt;a href="http://localhost:8000/"&gt;http://localhost:8000/admin/&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;Now if you want you could try out the Django tutorial with Jython.  If you do let me know how it goes -- I haven't tried it all yet and I have to get back to Glassfish and modjy.  Leo Soto has proposed Django work for the Google Summer of Code, and Jim Baker is likely to be the project mentor, so the remaining issues should get cleared up quickly followed I expect by more amazing stuff.  At the very least I or perhaps Leo will get the MySQL backend I started up and running pretty soon.&lt;br /&gt;&lt;br /&gt;Come back for the next post -- it will be on Glassfish and modjy.  I've already had some pretty good success there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-6300935733742856152?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/6300935733742856152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=6300935733742856152' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/6300935733742856152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/6300935733742856152'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2008/04/jython-and-django-progress-part-i-dev.html' title='Jython and Django Progress Part I: Dev Server'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-6220391834873547758</id><published>2008-03-21T13:42:00.000-04:00</published><updated>2008-03-21T14:53:22.259-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><category scheme='http://www.blogger.com/atom/ns#' term='pycon'/><title type='text'>PyCon 2008 and Jython</title><content type='html'>I knew that the Python community contained fans of Jython, but at PyCon this year I was just blown away by all of the encouragement and positive feedback on Jython's recent progress. Particularly nice was the encouragement that I got from many core Python developers.  The main input I get is: "When will Jython 2.5 be out?" and "How can we get our framework/app working on Jython?".  It is too soon to give a solid date for Jython 2.5, but I am willing to say that it will come out in 2008.  Also an alpha should come out soon -- I'm going to try to get one cut before &lt;a href="http://java.sun.com/javaone/sf/"&gt;JavaOne&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I also got plenty of congratulations on my new job at Sun.  Almost everyone I talked to felt positive about this move from Sun.  One individual whose experience with Sun dates back to the nineties expressed some doubt about Sun's ability to play well with open source.  I can say with some confidence that, at least in the corner of Sun that I live in, they really seem to get it.  As an example, read the bottom of &lt;a href="http://blogs.sun.com/jpblog/entry/it_is_all_good"&gt;this post&lt;/a&gt; from Vice President Jim Parkinson where he tells us that Ted and my roles in the open source community are not changing.  It is nice to get that kind of statement from that far up the chain.  For further reassurance look no further than the way Sun has handled the JRuby project.&lt;br /&gt;&lt;br /&gt;This was the first time I met &lt;a href="http://www.sauria.com/blog/"&gt;Ted Leung&lt;/a&gt; in person.  Be sure to read his &lt;a href="http://www.sauria.com/blog/2008/03/20/pycon-2008/"&gt;notes on PyCon 2008&lt;/a&gt; as they contain much more detail than mine.  Ted was hired by Sun at the same time that I was hired.  His job description ranges wider than mine: He is tasked with helping Sun become a good member of the Python community.  Mine of course is just to make Jython succeed, a task that is quite a bit easier to define.&lt;br /&gt;&lt;br /&gt;I got to meet some IronPython folks,  &lt;a href="http://www.microsoft.com/opensource/heroes/jim.mspx" title="Jim Hugunin"&gt;Jim Hugunin&lt;/a&gt; and &lt;a href="http://blogs.msdn.com/dinoviehland/" title="Dino Viehland blog"&gt;Dino Viehland&lt;/a&gt;.   Jim Hugunin is of course the original inventor of Jython as well as IronPython.  Dino is the lead developer of IronPython.  They have also managed to get Django running in their world, and they are doing some pretty cool stuff with Microsoft technologies like Silverlight.  I feel for them in that they are completely forbidden from looking at even a line of CPython code, and it is fairly difficult for them to send patches to outside projects (to, for example, make some part of Django work better on IronPython).  They are working with the lawyers to get them to ease up a bit, but that's tough going.  I'm not sure how they can work like that... ouch.&lt;br /&gt;&lt;br /&gt;At PyCon, Jeffrey Yasskin started an effort to get a concurrency memory model written for Python (Similar to the way Java and C++ have such models).  I have high hopes that this can be accomplished as it should make it simpler to think about concurrency in Jython (Something that &lt;a href="http://zyasoft.com/pythoneering/"&gt;Jim Baker&lt;/a&gt; has been spending a lot of time on lately).&lt;br /&gt;&lt;br /&gt;So on to my favorite part of PyCon: the sprinting.  Last year the Jython sprint consisted of three guys at a table with me as 1/2 a sprinter while I was working with Trac.  This year Jython took up a room with around 11 sprinters.  Sprinters from other projects came in throughout the week asking about how to get Jython working with their projects which was very nice.  A particular moment where the value of the PyCon sprints stood out to me is when brand new Jython committer Nicholas Riley was working furiously on getting parts of Twisted working on Jython while surrounded by about six Twisted core developers giving him pointers.  Awesome.&lt;br /&gt;&lt;br /&gt;A partial list of Jython sprint accomplishments:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Start of &lt;a href="http://twistedmatrix.com"&gt;Twisted&lt;/a&gt; on Jython&lt;/li&gt;&lt;li&gt;New compiler/New parser work&lt;/li&gt;&lt;li&gt;Better threading support for Jython&lt;/li&gt;&lt;li&gt;Collaboration with &lt;a href="http://www.sqlalchemy.org/"&gt;SQLAlchemy&lt;/a&gt; to get JDBC support&lt;/li&gt;&lt;li&gt;Work on writing decimal.py as a wrapper around Java's BigDecimal&lt;/li&gt;&lt;li&gt;Work on porting mmap to jython&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;I'm sure I missed some of the work that was done on Jython at PyCon -- there was so much!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-6220391834873547758?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/6220391834873547758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=6220391834873547758' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/6220391834873547758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/6220391834873547758'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2008/03/pycon-2008-and-jython.html' title='PyCon 2008 and Jython'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-2055192427439150428</id><published>2008-03-07T12:16:00.006-05:00</published><updated>2008-03-07T13:07:06.620-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><category scheme='http://www.blogger.com/atom/ns#' term='gsoc'/><title type='text'>Jython and Google Summer of Code 2008</title><content type='html'>&lt;a href="http://code.google.com/soc/2008"&gt;Google Summer of Code&lt;/a&gt; is starting up again!  That means it is time to start thinking of gsoc projects for 2008 and time for folks to start thinking about proposals.  We keep some ideas in the Jython wiki under &lt;a href="http://wiki.python.org/jython/SummerOfCode/PotentialProjects"&gt;PotentialProjects&lt;/a&gt;.  The overview of Jython's Summer of Code participation is &lt;a href="http://wiki.python.org/jython/SummerOfCode"&gt;here&lt;/a&gt;. Those who think they might like to mentor a Jython project please put your name on the list of potential mentors on that page.  I resurrected the Jython help system idea from Brian Zimmer.  I would be very willing to mentor that one.  Other ideas should go on the aforementioned &lt;a href="http://wiki.python.org/jython/SummerOfCode/PotentialProjects"&gt;PotentialProjects&lt;/a&gt; page.&lt;br /&gt;&lt;br /&gt;Last summer was a great success for us, particularly the work of Tobias Ivarsson mentored by Jim Baker producing I very nice prototype for a new compiler.  Let's make this one even better!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-2055192427439150428?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/2055192427439150428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=2055192427439150428' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/2055192427439150428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/2055192427439150428'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2008/03/jython-and-google-summer-of-code-2008.html' title='Jython and Google Summer of Code 2008'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-4807360148978464637</id><published>2008-03-05T12:05:00.003-05:00</published><updated>2008-03-05T12:14:54.153-05:00</updated><title type='text'>So Long Gary Gygax</title><content type='html'>&lt;a href="http://en.wikipedia.org/Gary_Gygax"&gt;Gary Gygax&lt;/a&gt; died yesterday.  His games brought me lots of enjoyment as a kid.  It's funny just how many programmers I've met also played those games.  It's also funny just how much nostalgia I get from the &lt;a href="http://en.wikipedia.org/wiki/Image:D%26d_original.jpg"&gt;cover&lt;/a&gt; of the first version of D &amp;amp; D that I owned.  Thanks for the memories and the games Gary, and so long.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-4807360148978464637?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/4807360148978464637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=4807360148978464637' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/4807360148978464637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/4807360148978464637'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2008/03/so-long-gary-gygax.html' title='So Long Gary Gygax'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-278178638803373096</id><published>2008-03-03T10:30:00.003-05:00</published><updated>2008-03-03T13:09:50.763-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sun'/><category scheme='http://www.blogger.com/atom/ns#' term='jruby'/><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>Jython's Future Looking Sunny</title><content type='html'>Sorry for the title.  There is something about Sun that makes it almost impossible to avoid solar puns.  I just didn't have sufficient willpower to resist.  I will try to be stronger in the future.&lt;br /&gt;&lt;br /&gt;So by now you've probably guessed it: Sun Microsystems has hired me to work full time on Jython.  They have also hired Ted Leung to represent the wider world of Python at Sun.&lt;br /&gt;&lt;br /&gt;I don't think I can overstate just how excited I am about this.  For a long time now I've been obsessed with Jython.  Now I will be able to let my obsession take over completely.&lt;br /&gt;&lt;br /&gt;So what does this mean for Jython?  First off, just in case anyone is worried: Jython is going to remain completely open source.  Sun has applied for membership to the PSF and the PSF will continue to be the steward of Jython's code.  This move by Sun means that Jython is going to get some of the attention that it needs to move forward.&lt;br /&gt;&lt;br /&gt;The JRuby folks have already been working with the Jython folks to find those places where we can share code.  The fact that they work for Sun was no barrier at all to cooperation, but being in the same company means that I am going to interact with them all the more.  Close cooperation with JRuby has no downside for Jython whatsoever.&lt;br /&gt;&lt;br /&gt;I have to especially thank Tim Bray, who has been pushing the dynamic language thing at Sun for quite a long time.  I'm sure the warm welcome that I got at Sun was in no small part due to the enormous success of the JRuby work that has been going on there, so thanks to Charles Nutter and Thomas Enebo for their work.  Also thanks to the many folks at Sun who have been pushing for this, including Eduardo Pelegri-Llopart.&lt;br /&gt;&lt;br /&gt;And of course thanks to all of you who use, contribute to, and talk about Jython.  Jython is above all things a community effort.  We should all share in the excitement.  Hurray!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-278178638803373096?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/278178638803373096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=278178638803373096' title='18 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/278178638803373096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/278178638803373096'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2008/02/jythons-future-looking-sunny.html' title='Jython&apos;s Future Looking Sunny'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>18</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-3449659842416897649</id><published>2008-02-10T12:10:00.000-05:00</published><updated>2008-02-10T12:27:39.117-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><category scheme='http://www.blogger.com/atom/ns#' term='sqlalchemy'/><category scheme='http://www.blogger.com/atom/ns#' term='pylons'/><category scheme='http://www.blogger.com/atom/ns#' term='setuptools'/><title type='text'>setuptools now runs on Jython trunk</title><content type='html'>In his work to get &lt;a href="http://pylonshq.com/"&gt;Pylons&lt;/a&gt; running on Jython, Philip Jenvey had to first get &lt;a href="http://dunderboss.blogspot.com/2008/02/setuptools-on-jython.html"&gt;setuptools running on Jython&lt;/a&gt;.  I gave it a try with &lt;a href="http://www.sqlalchemy.org"&gt;SQLAlchemy&lt;/a&gt;, by running&lt;br /&gt;&lt;pre&gt;jython setup.py install&lt;/pre&gt;&lt;br /&gt;In my local copy from SQLAlchemy's svn repository, and it worked!  After running the above command, I now have a site-packages directory with:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;README&lt;br /&gt;easy-install.pth&lt;br /&gt;setuptools.pth&lt;br /&gt;SQLAlchemy-0.4.3dev_r4149-py2.3.egg&lt;br /&gt;setuptools-0.6c3-py2.3.egg&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;And I can&lt;br /&gt;&lt;pre&gt;import sqlalchemy&lt;/pre&gt;&lt;br /&gt;successfully without any further work.  Getting SQLAlchemy to run well with Mysql and JDBC will be next, but that's for me to do :)&lt;br /&gt;&lt;br /&gt;Great work Philip!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-3449659842416897649?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/3449659842416897649/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=3449659842416897649' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/3449659842416897649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/3449659842416897649'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2008/02/setuptools-now-runs-on-jython-trunk.html' title='setuptools now runs on Jython trunk'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-7810473123139907763</id><published>2008-01-31T12:37:00.000-05:00</published><updated>2008-02-02T09:43:00.029-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='pycon'/><title type='text'>PyCon 2008 in Chicago</title><content type='html'>Registration for &lt;a href="http://us.pycon.org"&gt;PyCon 2008&lt;/a&gt; is now open.  It will be held in Chicago March 14-16, 2008.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://us.pycon.org/"&gt;&lt;img src="http://us.pycon.org/common/2008/website/img/PyConChi.png" alt="PyCon 2008: Chicago" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;My talk is #70 on &lt;a href="http://us.pycon.org/2008/conference/talks/"&gt;this page&lt;/a&gt; and is one of three talks on Jython this year.  Hope to see you there!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-7810473123139907763?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/7810473123139907763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=7810473123139907763' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/7810473123139907763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/7810473123139907763'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2008/01/pycon-2008-in-chicago.html' title='PyCon 2008 in Chicago'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-5558664725946626203</id><published>2008-01-21T00:31:00.000-05:00</published><updated>2008-01-21T10:07:26.220-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><category scheme='http://www.blogger.com/atom/ns#' term='asm'/><title type='text'>A Proof of Concept ASM Compiler for Jython</title><content type='html'>Now that I have a reasonable parser in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Antlr&lt;/span&gt;, I'm back to thinking about the compiler again.  Currently &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Jython&lt;/span&gt; has a hand crafted &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;bytecode&lt;/span&gt; emitter.  It was built in a generic fashion and is actually a very nice implementation.  For an earlier &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Jython&lt;/span&gt; this was a necessity, because there where no good open source frameworks out there that could be used for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;bytecode&lt;/span&gt; emission.  These days, there are a number of good open source frameworks for this task.  &lt;a href="http://asm.objectweb.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;ASM&lt;/span&gt;&lt;/a&gt; stands out as a particularly good one if you are looking for a small, fast, and well documented framework with a vibrant community of users and developers.   The advantage of using a framework like &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;ASM&lt;/span&gt; over a hand rolled implementation is that the developers of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;Jython&lt;/span&gt; can let the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;ASM&lt;/span&gt; folks worry about new &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;JVM&lt;/span&gt; features like annotations, backwards compatibility issues, etc, leaving &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;Jython&lt;/span&gt; developers more time to make &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;Jython&lt;/span&gt; a better implementation of Python.&lt;br /&gt;&lt;br /&gt;A few months ago I did a one for one translation of the current compiler into &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;ASM&lt;/span&gt; and found that this was a straightforward (if a bit tedious) task.   This translated compiler lives in the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;svn&lt;/span&gt; branch &lt;a href="http://jython.svn.sourceforge.net/svnroot/jython/branches/asm_compiler/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;asm&lt;/span&gt;_compiler&lt;/a&gt;.   The &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;asm&lt;/span&gt;_compiler branch's build.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;xml&lt;/span&gt; uses &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;jarjar&lt;/span&gt; to bundle the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;asm&lt;/span&gt; libraries together into a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;jython&lt;/span&gt;-complete.jar.  I called it &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;jython&lt;/span&gt;-complete mirroring the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;jruby&lt;/span&gt; project's &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;jruby&lt;/span&gt;-complete.jar vs a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;jruby&lt;/span&gt;.jar that requires dependencies.   I think &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;Jython&lt;/span&gt; will eventually follow suit with one jar that bundles everything together and another that does not.  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;asm&lt;/span&gt;_compiler currently passes all but four of the regression tests that trunk passes on my machine.&lt;br /&gt;&lt;br /&gt;Since I did not try to go beyond the current functionality of 2.3, this is just a proof of concept step.  The next steps will be to start re-writing the "&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;newcompiler&lt;/span&gt;" work in Java.  The &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;newcompiler&lt;/span&gt; work which sits in the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;svn&lt;/span&gt; &lt;a href="http://jython.svn.sourceforge.net/svnroot/jython/trunk/jython/src/org/python/newcompiler/"&gt;trunk&lt;/a&gt; and &lt;a href="http://jython.svn.sourceforge.net/svnroot/jython/trunk/sandbox/pyasm/"&gt;sandbox&lt;/a&gt; prototypes an improved compiler that implements 2.5.  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;newcompiler&lt;/span&gt; is the impressive outcome of a Google Summer of Code project by Tobias &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;Ivarsson&lt;/span&gt; mentored by Jim Baker.  Having said that I'd still like to see if I can make &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;asm&lt;/span&gt;_compiler the compiler of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;Jython's&lt;/span&gt; trunk -- it may work better to incrementally move to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;newcompiler&lt;/span&gt; compared to trying to replace the current strategy all at once.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-5558664725946626203?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/5558664725946626203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=5558664725946626203' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/5558664725946626203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/5558664725946626203'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2008/01/proof-of-concept-asm-compiler-for.html' title='A Proof of Concept ASM Compiler for Jython'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-8177679851184046763</id><published>2008-01-10T07:57:00.000-05:00</published><updated>2008-01-10T21:07:12.203-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='parser'/><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><category scheme='http://www.blogger.com/atom/ns#' term='asdl'/><category scheme='http://www.blogger.com/atom/ns#' term='antlr'/><title type='text'>A First Cut at an Antlr Based Parser for Jython Finished</title><content type='html'>The majority of my Jython time for the last couple of months has been spent working on a new parser for Jython.  This parser is being written in &lt;a href="http://www.antlr.org/"&gt;Antlr3&lt;/a&gt; and lives in the Jython &lt;a href="http://jython.svn.sourceforge.net/svnroot/jython/trunk/sandbox/ast/"&gt;sandbox&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;CPython 2.5 introduced  a new library called _ast that allows direct access to its internal parser.  &lt;a href="http://zyasoft.com/pythoneering/"&gt;Jim Baker&lt;/a&gt; wrote some python that pretty prints the _ast results, and I extended it to do a diff with the output of the new parser.  The current results of this comparison with all of the .py files in CPython 2.5's Lib directory is a perfect match for just over 75% of these files (there are 1230 of them).  The majority of the remaining problems are mismatches in the representation of floats and unicode, although there are plenty of real bugs remaining, especially in the lexer pass.  The sandbox project has a README that lists the bugs that I know about.&lt;br /&gt;&lt;br /&gt;There are two grammars, a combined lexer/parser in grammar/Python.g that emits a simple parse tree which is a reasonable representation of the code in an AST form.  The real work occurs in the tree grammar grammar/PythonWalker.g.  This one walks the output of Python.g and emits a tree of Java classes that will later be consumed by a future Jython compiler.  PythonWalker does a fair amount of processing on the parse tree to shape the AST so that it matches _ast.&lt;br /&gt;&lt;br /&gt;The code for the nodes that PythonWalker.g emits is also generated.  This is done using asdl_antlr.py.  asdl_antlr.py uses the same core code that CPython uses to create their parser, which is copied into the Jython sandbox (asdl.py and spark.py).&lt;br /&gt;&lt;br /&gt;Plenty of work remains.  First I will need to get the ASTs to match better -- I'm hoping to at least get a 100% match for the Lib of CPython 2.5.  Once that is done Python.g and PythonWalker.g are going to need a cleanup pass -- there is plenty of kludginess in there to get it up and running.  And of course then there is the compiler, but that is a topic for another day.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-8177679851184046763?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/8177679851184046763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=8177679851184046763' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/8177679851184046763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/8177679851184046763'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2008/01/first-cut-at-antlr-based-parser-for.html' title='A First Cut at an Antlr Based Parser for Jython Finished'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-7188278991475658922</id><published>2008-01-04T08:05:00.000-05:00</published><updated>2008-01-04T11:03:12.466-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><category scheme='http://www.blogger.com/atom/ns#' term='django'/><category scheme='http://www.blogger.com/atom/ns#' term='pylons'/><category scheme='http://www.blogger.com/atom/ns#' term='turbogears'/><title type='text'>Django Beginning to work on Jython</title><content type='html'>Work on Jython since 2.2 has been proceeding at a blistering pace.  Commits are coming in so fast that I have been having trouble keeping up at times.  Recently some Jython folks got together with some Django folks and together figured out what was missing.  I participated in the early work (and I still have a mysql backend that I need to contribute to the effort) but then I got too caught up in rewriting Jython's parser in antlr and so lost track.  More on that another time :).&lt;br /&gt;&lt;br /&gt;Jim Baker has a nice write up of &lt;a href="http://zyasoft.com/pythoneering/2008/01/django-on-jython-minding-gap.html"&gt;Django on Jython&lt;/a&gt; and the news was picked up by &lt;a href="http://www.theserverside.com/news/thread.tss?thread_id=47992"&gt;The Server Side&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This is just the beginning -- we are also looking at &lt;a href="http://pylonshq.com/"&gt;Pylons&lt;/a&gt;, &lt;a href="http://turbogears.org/"&gt;TurboGears&lt;/a&gt;, and much much more.  Exciting times.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-7188278991475658922?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/7188278991475658922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=7188278991475658922' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/7188278991475658922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/7188278991475658922'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2008/01/django-beginning-to-work-on-jython.html' title='Django Beginning to work on Jython'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-944006132874789307</id><published>2007-10-14T19:11:00.001-04:00</published><updated>2007-10-14T19:16:55.725-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>Jython 2.2.1 released</title><content type='html'>&lt;a href="http://downloads.sourceforge.net/jython/jython_installer-2.2.1.jar"&gt;Jython 2.2.1&lt;/a&gt; is out.&lt;br /&gt;&lt;br /&gt;Here are the &lt;a href="http://jython.org/Project/installation.html"&gt;directions for installation&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This release keeps file reading and writing from going through the JVM's default charset, and fixes a problem with importing Java code from multiple threads among many smaller changes.  See the &lt;a href="http://jython.org/NEWS"&gt;NEWS&lt;/a&gt; file for full details.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-944006132874789307?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/944006132874789307/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=944006132874789307' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/944006132874789307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/944006132874789307'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2007/10/jython-221-released.html' title='Jython 2.2.1 released'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-4916827877263994303</id><published>2007-10-05T10:10:00.000-04:00</published><updated>2007-10-05T23:18:20.047-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>Jython 2.2.1rc2 Released</title><content type='html'>&lt;a href="http://downloads.sourceforge.net/jython/jython_installer-2.2.1rc2.jar"&gt;Jython 2.2.1rc2&lt;/a&gt; is out.&lt;br /&gt;&lt;a onclick="return top.js.OpenExtLink(window,event,this)" href="http://downloads.sourceforge.net/jython/jython_installer-2.2.1rc2.jar" target="_blank"&gt;&lt;/a&gt;&lt;br /&gt;Here are the &lt;a href="http://jython.org/Project/installation.html"&gt;directions for installation&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This is a bugfix release, see the &lt;a href="http://jython.org/NEWS"&gt;NEWS&lt;/a&gt; file for details.&lt;br /&gt;&lt;br /&gt;If no new problems are found in this candidate, 2.2.1 will be released&lt;br /&gt;a week from now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-4916827877263994303?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/4916827877263994303/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=4916827877263994303' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/4916827877263994303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/4916827877263994303'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2007/10/jython-221rc2-released.html' title='Jython 2.2.1rc2 Released'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-5908832658540146538</id><published>2007-09-24T14:38:00.000-04:00</published><updated>2007-09-24T14:46:34.987-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='olpc'/><title type='text'>One Laptop per Child: Give one, get one</title><content type='html'>If you are like me and you've been wanting to get an OLPC for your child (or more likely you are a hardware geek and you want one for you -- hopefully my daughter will let me play with it too), your &lt;a href="http://xogiving.org/"&gt;chance has come&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-5908832658540146538?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/5908832658540146538/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=5908832658540146538' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/5908832658540146538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/5908832658540146538'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2007/09/one-laptop-per-child-give-one-get-one.html' title='One Laptop per Child: Give one, get one'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-9091845780921638681</id><published>2007-09-24T08:00:00.000-04:00</published><updated>2007-09-24T14:31:02.892-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>Jython 2.2.1rc1 released</title><content type='html'>A release candidate for Jython 2.2.1, a bugfix release of 2.2, is available for &lt;a href="http://downloads.sourceforge.net/jython/jython_installer-2.2.1rc1.jar"&gt;download&lt;/a&gt;.  See &lt;a href="http://jython.org/Project/installation.html"&gt;installation instructions&lt;/a&gt;.  I think this is an important release in that it shows that Jython continues to move forward even after the release of 2.2.&lt;br /&gt;&lt;br /&gt;The biggest change in this release is that file reading and writing will no longer be run through the current JVM's default charset.  In the 2.2 release, the bytes read in from a file opened in text mode would be decoded by the default charset and then when written out, bytes would be encoded using the same default charset.  In 2.2.1rc1, read returns unadulterated bytes and write doesn't automatically encode the bytes it is writing.&lt;br /&gt;&lt;br /&gt;A full list of changes is available in the &lt;a href="http://jython.org/NEWS"&gt;NEWS file&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If no new problems are found in this candidate, 2.2.1 will be released a week from now.&lt;br /&gt;&lt;br /&gt;-Frank&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-9091845780921638681?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/9091845780921638681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=9091845780921638681' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/9091845780921638681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/9091845780921638681'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2007/09/jython-221rc1-released.html' title='Jython 2.2.1rc1 released'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-1871886280736323948</id><published>2007-09-06T09:40:00.000-04:00</published><updated>2007-09-06T09:47:01.111-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><category scheme='http://www.blogger.com/atom/ns#' term='django'/><title type='text'>Work towards Django on Jython</title><content type='html'>A couple of weeks ago I worked on Django on Jython for a Jython sprint.  I found some places where Jython could use some improvement, and I've been poking around with that.  In the meantime, Leo Soto M. took Jython on Django &lt;a href="http://blog.leosoto.com/2007/09/django-on-jython-what-ive-done-until.html"&gt;further than I did&lt;/a&gt; and there was a nice &lt;a href="http://groups.google.com/group/django-developers/browse_thread/thread/6ed7ed19a8e4d0e5"&gt;discussion&lt;/a&gt; on the Django list about all of this.  It looks like the Django folks are as excited to get their framework working on Jython as I am, which is great because it will go so much faster that way.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-1871886280736323948?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/1871886280736323948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=1871886280736323948' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/1871886280736323948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/1871886280736323948'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2007/09/work-towards-django-on-jython.html' title='Work towards Django on Jython'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-1546061833834270430</id><published>2007-08-23T07:53:00.000-04:00</published><updated>2007-08-23T08:02:03.223-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>Jython 2.2 released!!  Woohoo!!</title><content type='html'>On behalf of the Jython development team, I'm pleased to announce that&lt;br /&gt;Jython 2.2 is available for &lt;a href="http://downloads.sourceforge.net/jython/jython_installer-2.2.jar"&gt;download&lt;/a&gt;.  See the &lt;a href="http://jython.org/Project/installation.html"&gt;installation instructions&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This is the first production release of Jython in nearly six years,&lt;br /&gt;and it contains many new features:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; new-style classes&lt;/li&gt;&lt;li&gt; Java List integration&lt;/li&gt;&lt;li&gt;PEP 302 implementation&lt;/li&gt;&lt;li&gt;iterators&lt;/li&gt;&lt;li&gt; generators&lt;/li&gt;&lt;li&gt; __future__ division&lt;/li&gt;&lt;li&gt; support for running on modern JVMs&lt;/li&gt;&lt;li&gt; a new installer&lt;/li&gt;&lt;li&gt; ssl and non-blocking support for socket&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;This gives Jython the same set of language features as Python 2.2.&lt;br /&gt;For a more complete list of the additions from 2.1 to 2.2, see the&lt;br /&gt;NEWS file in the release.  Only the version numbers changed in the&lt;br /&gt;code from 2.2rc3 to this release.&lt;br /&gt;&lt;br /&gt;Woohoo!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-1546061833834270430?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/1546061833834270430/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=1546061833834270430' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/1546061833834270430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/1546061833834270430'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2007/08/jython-22-released-woohoo.html' title='Jython 2.2 released!!  Woohoo!!'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-7435900938032175352</id><published>2007-08-21T09:40:00.001-04:00</published><updated>2007-08-21T09:53:04.228-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>Speaking on Jython in Chapil Hill, NC next Tuesday</title><content type='html'>I'll be giving a talk on Jython 2.2 and current Jython development on Tuesday, August 28, 7pm at 328 Phillips Hall, UNC-Chapel Hill in North Carolina for the &lt;a href="http://trizpug.org/"&gt;Triangle Zope and Python Users Group&lt;/a&gt;.  It will be a basic introduction to Jython targeted at Python developers, but since I learned my lesson at PyCon, I'll be sure to do more demoing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-7435900938032175352?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/7435900938032175352/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=7435900938032175352' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/7435900938032175352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/7435900938032175352'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2007/08/speaking-on-jython-in-chapil-hill-nc.html' title='Speaking on Jython in Chapil Hill, NC next Tuesday'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-7914823300833665209</id><published>2007-08-02T11:42:00.001-04:00</published><updated>2007-08-03T07:04:55.999-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>Jython 2.2 rc3 is out!</title><content type='html'>The Jython development team is pleased to announce that Jython 2.2rc3&lt;br /&gt;is available for &lt;a href="http://downloads.sourceforge.net/jython/jython_installer-2.2rc3.jar"&gt;download&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jython.org/Project/installation.html"&gt;Here are the installation instructions&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;A few new pieces of functionality have been added since 2.2rc2:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;   Added telnetlib from CPython&lt;/li&gt;&lt;li&gt;   Added cpython_compatible_select to select.  See &lt;a href="http://wiki.python.org/jython/SelectModule"&gt;here&lt;/a&gt; for information on when to use it.&lt;/li&gt;&lt;li&gt;   Several more java.nio exceptions are mapped to their corresponding Python error codes when thrown.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;The following bugs are also fixed in this release:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;   recv on closed sockets threw an exception instead returning the empty string&lt;/li&gt;&lt;li&gt;   A PySystemState being garbage collected caused System.out and System.in to be closed.  This would cause 'print' to stop working.&lt;/li&gt;&lt;li&gt;   Closing a FileWrapper on a socket closes its underlying socket&lt;/li&gt;&lt;li&gt;   Sockets just have their [In|Out]putStreams closed instead of being properly shutdown by shutdown()&lt;/li&gt;&lt;li&gt;   SO_REUSEADDR is reset on sockets from a server socket's accept call causing later binds to the server socket's port to fail.&lt;/li&gt;&lt;li&gt;   Client sockets that have bind called before connect don't respect SO_REUSEADDR&lt;/li&gt;&lt;li&gt;   execfile() throws a NullPointerException in the interactive console&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-7914823300833665209?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/7914823300833665209/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=7914823300833665209' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/7914823300833665209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/7914823300833665209'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2007/08/jython-22-rc3-is-out.html' title='Jython 2.2 rc3 is out!'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-8683456653172520321</id><published>2007-07-17T07:43:00.001-04:00</published><updated>2007-08-21T09:53:52.968-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>SQLAlchemy, MySQL, and Jython</title><content type='html'>I tried the 2.3 branch of Jython with SQLAalchemy against MySQL and found&lt;br /&gt;that it wasn't that hard to get it to work for a (very) simple test.&lt;br /&gt;This is by no means complete or even good, but I am keeping the code&lt;br /&gt;here: &lt;a onclick="return top.js.OpenExtLink(window,event,this)" href="http://jython.svn.sourceforge.net/svnroot/jython/trunk/sandbox/wierzbicki/sqlalchemy/" target="_blank"&gt;http://jython.svn.sourceforge&lt;wbr&gt;.net/svnroot/jython/trunk&lt;wbr&gt;/sandbox/wierzbicki/sqlalchemy&lt;wbr&gt;/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The three files are a simple test (sqla.py), a monkey-patched version of database/mysql.py (mysql.py) and the "svn diff" against the sqlalchemy repository as of today (mysql.diff), so I can keep track of the changes I made to get things to work.  mysql.py can be pasted on top of the real one, then you can run jython (latest from the 2.3 branch) and it works, at least on my&lt;br /&gt;machine :)&lt;br /&gt;&lt;br /&gt;The table I'm testing against on mysql:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;mysql&gt; select * from users;&lt;br /&gt;+----+-------+&lt;br /&gt;| id | name  |&lt;br /&gt;+----+-------+&lt;br /&gt;| 1  | user1 |&lt;br /&gt;| 2  | user2 |&lt;br /&gt;+----+-------+&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The test code looks like this:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;from sqlalchemy import *&lt;br /&gt;&lt;br /&gt;db = create_engine('mysql://username:password@localhost/mydb')&lt;br /&gt;metadata = BoundMetaData(db)&lt;br /&gt;&lt;br /&gt;users_table = Table('users', metadata, autoload=True)&lt;br /&gt;&lt;br /&gt;s = users_table.select()&lt;br /&gt;r = s.execute()&lt;br /&gt;print r.fetchall()&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;And produces output that looks like this:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[(1L, 'user1'), (2L, 'user2')]&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;One thing I had to do was switch "re" to "sre" because our "re" is&lt;br /&gt;missing at least one method.  I'll file a bug or fix it (maybe&lt;br /&gt;tonight).&lt;br /&gt;&lt;br /&gt;I posted this to the sqlalchemy list -- and &lt;span id="_user_mike_mp@zzzcomputing.com" style="color: rgb(121, 6, 25);"&gt;&lt;/span&gt;Michael Bayern&lt;br /&gt;sounded very enthusiastic  about helping to get sqlalchemy running on&lt;br /&gt;Jython.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-8683456653172520321?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/8683456653172520321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=8683456653172520321' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/8683456653172520321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/8683456653172520321'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2007/07/sqlalchemy-mysql-and-jython.html' title='SQLAlchemy, MySQL, and Jython'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-6674706836037699677</id><published>2007-07-10T09:39:00.001-04:00</published><updated>2007-07-10T09:43:44.476-04:00</updated><title type='text'>Jython 2.2 RC2 is out!</title><content type='html'>The Jython development team is pleased to announce that Jython 2.2rc2&lt;br /&gt;is available for &lt;a href="http://sourceforge.net/project/showfiles.php?group_id=12867&amp;package_id=12218&amp;amp;release_id=522109"&gt;download&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jython.org/Project/installation.html"&gt;Here are the installation instructions&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This is a bugfix release.&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-6674706836037699677?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/6674706836037699677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=6674706836037699677' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/6674706836037699677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/6674706836037699677'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2007/07/jython-22-rc2-is-out.html' title='Jython 2.2 RC2 is out!'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-3165551952969372233</id><published>2007-06-25T20:35:00.000-04:00</published><updated>2007-06-25T20:51:32.755-04:00</updated><title type='text'>Jython 2.2 RC1 is out!</title><content type='html'>The Jython development team is pleased to announce that Jython 2.2rc1&lt;br /&gt;is available for &lt;a href="http://sourceforge.net/project/showfiles.php?group_id=12867&amp;package_id=12218&amp;amp;release_id=518249"&gt;download&lt;/a&gt;.&lt;a onclick="return top.js.OpenExtLink(window,event,this)" href="http://sourceforge.net/project/showfiles.php?group_id=12867&amp;package_id=12218&amp;amp;release_id=518249" target="_blank"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jython.org/Project/installation.html"&gt;Here are the installation instructions&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This release candidate features a new socket module with support for&lt;br /&gt;non-blocking sockets and SSL as well as many bug fixes.&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-3165551952969372233?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/3165551952969372233/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=3165551952969372233' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/3165551952969372233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/3165551952969372233'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2007/06/jython-22-rc1-is-out.html' title='Jython 2.2 RC1 is out!'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-3651531993642676657</id><published>2007-05-29T14:11:00.000-04:00</published><updated>2007-07-17T15:03:51.438-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>JVM Languages: The Future (via Headius)</title><content type='html'>Charles Nutter has &lt;a href="http://headius.blogspot.com/2007/05/jvm-languages-future.html"&gt;announced&lt;/a&gt; a new   Google Group to (in his words):&lt;br /&gt;&lt;blockquote&gt;talk shop about language implementation strategies, pain points on the JVM, and what we can do to build a common set of libraries, frameworks, and patterns to ease and improve the Java platform's support for many languages.&lt;/blockquote&gt;This is a very exciting time to be involved in language development on top of the JVM.  There have already been posts from the worlds of JRuby, Groovy, Jython, and even a JVM Lisp &lt;strike&gt;dialect&lt;/strike&gt; implementation called ABCL.  If you are interested, please &lt;a href="http://groups.google.com/group/jvm-languages"&gt;sign up&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-3651531993642676657?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/3651531993642676657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=3651531993642676657' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/3651531993642676657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/3651531993642676657'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2007/05/jvm-languages-future-via-headius.html' title='JVM Languages: The Future (via Headius)'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-2551247452330902525</id><published>2007-05-24T07:56:00.000-04:00</published><updated>2007-05-24T08:03:50.974-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>NailGun correction</title><content type='html'>Careful readers of the last post will have noted that my &lt;a href="http://www.martiansoftware.com/nailgun/index.html"&gt;NailGun&lt;/a&gt; run did *not* perform better than the native Python run.  It looks like the results vary.  I ran the test once while doing other things (and noticed that ng/Jython did better), and then ran the tests as a group so that I could paste them in unchanged.  I didn't notice that Python had moved ahead.  Anyway, you'll just have to trust me or try it yourself to find that ng + jython can outperform Python in this fairly silly test.  I say the test is silly, since a "print 'hello'" is almost entirely dominated by startup time and so shows the most improvement.  In any case NailGun looks like it should help with those little Jython scripts that I use for testing, and will help me get to an interactive session faster.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-2551247452330902525?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/2551247452330902525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=2551247452330902525' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/2551247452330902525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/2551247452330902525'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2007/05/nailgun-correction.html' title='NailGun correction'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-5252944206814596697</id><published>2007-05-23T10:38:00.001-04:00</published><updated>2007-05-23T20:52:12.479-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>Playing with nailgun</title><content type='html'>From following the JRuby development list I found &lt;a href="http://www.martiansoftware.com/nailgun/index.html"&gt;NailGun&lt;/a&gt; which is described on the website:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;NailGun is a client, protocol, and server for running Java programs from the command line without incurring the JVM startup overhead.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;NailGun runs as a server that listens on port 2113 by default, and takes requests from the ng client, which is written in C.  Note that no attempt has been made to make this secure (so beware).  Since I use Jython from the command line fairly often for testing and for inspecting Java libraries, and the JVM startup time is an annoyance, I thought I'd give it a try.  I set up a script for launching NailGun with the Jython options:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;JYTHON_HOME=/Users/frank/src/jython/2.3/dist&lt;br /&gt;JYTHON_JAVA_ARGS="-classpath $JYTHON_HOME/jython.jar:$CLASSPATH"&lt;br /&gt;$JAVA_HOME/bin/java -server $JYTHON_JAVA_ARGS -Dpython.home=$JYTHON_HOME \&lt;br /&gt;com.martiansoftware.nailgun.NGServer&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;And a launcher for jython that I called ngjy:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;ng org.python.util.jython "$@"&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;So a simple test shows some promise:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[frank@dhcp239-29 bin]$ time jython23 -c 'print "hello"'&lt;br /&gt;hello&lt;br /&gt;&lt;br /&gt;real 0m0.961s&lt;br /&gt;user 0m0.845s&lt;br /&gt;sys 0m0.082s&lt;br /&gt;[frank@dhcp239-29 bin]$ time ngjy -c 'print "hello"'&lt;br /&gt;hello&lt;br /&gt;&lt;br /&gt;real 0m0.179s&lt;br /&gt;user 0m0.002s&lt;br /&gt;sys 0m0.009s&lt;br /&gt;[frank@dhcp239-29 bin]$ time python -c 'print "hello"'&lt;br /&gt;hello&lt;br /&gt;&lt;br /&gt;real 0m0.052s&lt;br /&gt;user 0m0.015s&lt;br /&gt;sys 0m0.034s&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Very cool!  Though an unfair test, it is pretty cool that Jython can be made to out-perform Python on the command line.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-5252944206814596697?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/5252944206814596697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=5252944206814596697' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/5252944206814596697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/5252944206814596697'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2007/05/playing-with-nailgun.html' title='Playing with nailgun'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-8490335131688789949</id><published>2007-05-17T09:30:00.000-04:00</published><updated>2007-05-17T09:34:35.080-04:00</updated><title type='text'>Jython beta2 is out!</title><content type='html'>The Jython development team is proud to announce the release of Jython 2.2's second beta.&lt;br /&gt;&lt;br /&gt;Much like the last beta:&lt;br /&gt;Get it &lt;a href="http://sourceforge.net/project/showfiles.php?group_id=12867&amp;package_id=12218&amp;amp;release_id=507592"&gt;here&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;Install like this:&lt;br /&gt;&lt;br /&gt;java -jar jython_installer-2.2b2.jar&lt;br /&gt;&lt;br /&gt;Cheers!&lt;br /&gt;&lt;br /&gt;-Frank Wierzbicki&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-8490335131688789949?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/8490335131688789949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=8490335131688789949' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/8490335131688789949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/8490335131688789949'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2007/05/jython-beta2-is-out.html' title='Jython beta2 is out!'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-5179739630004122555</id><published>2007-02-08T20:42:00.000-05:00</published><updated>2007-02-09T08:18:50.550-05:00</updated><title type='text'>Jython 2.2 beta1 Released!</title><content type='html'>The Jython development team is proud to announce the release of Jython 2.2's first beta!&lt;br /&gt;&lt;br /&gt;Get it &lt;a href="http://sourceforge.net/project/showfiles.php?group_id=12867&amp;package_id=12218&amp;amp;release_id=485053"&gt;here&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;Install like this:&lt;br /&gt;&lt;br /&gt;java -jar jython_installer-2.2b1.jar&lt;br /&gt;&lt;br /&gt;Cheers!&lt;br /&gt;&lt;br /&gt;-Frank Wierzbicki&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-5179739630004122555?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/5179739630004122555/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=5179739630004122555' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/5179739630004122555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/5179739630004122555'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2007/02/jython-22-beta1-released.html' title='Jython 2.2 beta1 Released!'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-1463032976480291268</id><published>2007-02-03T21:28:00.000-05:00</published><updated>2007-02-03T21:33:02.650-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>Jython Roadmap</title><content type='html'>I have posted a new roadmap page for Jython &lt;a href="http://www.jython.org/Project/roadmap.html"&gt;here&lt;/a&gt;.  It is primarily a reiteration of an earlier email to the jython-dev list.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-1463032976480291268?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/1463032976480291268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=1463032976480291268' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/1463032976480291268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/1463032976480291268'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2007/02/jython-roadmap.html' title='Jython Roadmap'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-707989584311573472</id><published>2006-12-01T07:04:00.000-05:00</published><updated>2006-12-01T20:13:24.002-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>My Talk Was Accepted at PyCon!</title><content type='html'>My proposal, &lt;a href="http://us.pycon.org/apps07/talks/"&gt;Jython for Python Developers, see #93&lt;/a&gt;, has been accepted, so I'll be doing a Jython talk at this year's PyCon.  Hope to see you &lt;a href="http://us.pycon.org/TX2007/HomePage"&gt;there&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-707989584311573472?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/707989584311573472/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=707989584311573472' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/707989584311573472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/707989584311573472'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2006/12/my-talk-was-accepted-at-pycon.html' title='My Talk Was Accepted at PyCon!'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-2737901553663596795</id><published>2006-11-26T13:15:00.000-05:00</published><updated>2006-11-26T14:30:04.074-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>JRuby folks reach out to Jython</title><content type='html'>Charles Oliver Nutter recently posted on the Jython-dev list with offers of help and advice.  He has a &lt;a href="http://headius.blogspot.com/2006/11/jython-alive-and-well-and-looking-for.html"&gt;weblog entry&lt;/a&gt; on the subject.  It is very exciting that Sun has shown support for dynamic languages by &lt;a href="http://www.tbray.org/ongoing/When/200x/2006/09/07/JRuby-guys"&gt;hiring him and Thomas Enebo&lt;/a&gt; to work on JRuby full time.  Even more exciting is the offer from Charles to collaborate on some internals, with an eventual goal of making cross language support on the JVM easier, especially cross-language calling (so, for example, objects written in JRuby could easily make a call directly against objects written in Jython).&lt;br /&gt;&lt;br /&gt;Very exciting times.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-2737901553663596795?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/2737901553663596795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=2737901553663596795' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/2737901553663596795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/2737901553663596795'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2006/11/jruby-folks-reach-out-to-jython.html' title='JRuby folks reach out to Jython'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-9202710421702293431</id><published>2006-11-26T12:55:00.000-05:00</published><updated>2006-11-27T10:42:09.153-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>I now work for Red Hat</title><content type='html'>As of November 20, 2006 I am a permanent employee at Red Hat.  I've been contracting with them for several months, but I didn't think a contract job was worth mentioning.&lt;br /&gt;&lt;br /&gt;So, what does this mean for &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Jython&lt;/span&gt;?  Well, working on &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Jython&lt;/span&gt; internals is still an after hours thing, but I've been making some great connections with &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;JBoss&lt;/span&gt; folks and with some others at Red Hat that can probably help &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Jython&lt;/span&gt; in the future.  Post 2.2 release I plan on making sure the 2.2 version finds its way into Fedora and then eventually on to &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;RHEL&lt;/span&gt;, at least as a simple yum or up2date call.  Also, at least one &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;JBoss&lt;/span&gt; guy I've talked to is interested in making sure that &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;JBoss&lt;/span&gt; is a hospitable place to run &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;Jython&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;I'm through the initial ramp-up that comes with working at a new company, and I think I'm going to have more time to work on &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;Jython&lt;/span&gt; beginning in early December.  Meanwhile, the other developers that are now working on &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;Jython&lt;/span&gt; have made great progress, with Charlie Groves committing the last show-stopping feature (slots) just a few days ago.  I know I've said this before (I think I've learned my lesson about making promises too quickly, at least as far as &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;Jython&lt;/span&gt; is concerned) but we really are closing in on a beta this time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-9202710421702293431?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/9202710421702293431/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=9202710421702293431' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/9202710421702293431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/9202710421702293431'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2006/11/i-now-work-for-red-hat.html' title='I now work for Red Hat'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-114921091490963552</id><published>2006-06-01T21:13:00.000-04:00</published><updated>2006-06-01T21:16:35.200-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>New Website is Live</title><content type='html'>The new jython &lt;a href="http://www.jython.org/"&gt;website&lt;/a&gt; is finally live.  Some new developer docs are the main reason I decided to switch it over -- the old docs only talked about cvs, but the code is now hosted on subversion.&lt;span class="down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-114921091490963552?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/114921091490963552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=114921091490963552' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/114921091490963552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/114921091490963552'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2006/06/new-website-is-live.html' title='New Website is Live'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-114454758676460498</id><published>2006-04-08T21:48:00.000-04:00</published><updated>2006-04-08T21:59:09.830-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>Migration to Subversion</title><content type='html'>The good people at &lt;a href="http://sourceforge.net"&gt;SourceForge&lt;/a&gt; now provide &lt;a href="http://subversion.tigris.org"&gt;Subversion&lt;/a&gt; repositories.  I just used their migration tool to move the Jython repository data from CVS to Subversion, and the new repository is located at https://svn.sourceforge.net/svnroot/jython/.  If all went well this will be the Jython repository from now on.   Soon I will finally be able to re-arrange the repository with no loss of project history (something that would have been very hard with CVS).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-114454758676460498?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/114454758676460498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=114454758676460498' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/114454758676460498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/114454758676460498'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2006/04/migration-to-subversion.html' title='Migration to Subversion'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-113614219266126380</id><published>2006-01-01T14:02:00.000-05:00</published><updated>2006-01-01T14:09:02.546-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>Jython Wiki is back!</title><content type='html'>It looks like the &lt;a href="http://wiki.python.org/jython/"&gt;Jython wiki&lt;/a&gt; can be edited again.  I just randomly decided to try to edit my home page and it worked!  From the history logs it looks like we have &lt;span title="denali.asti-usa.com"&gt;Andrew Kuchling to thank.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-113614219266126380?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/113614219266126380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=113614219266126380' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/113614219266126380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/113614219266126380'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2006/01/jython-wiki-is-back.html' title='Jython Wiki is back!'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-113452467366840300</id><published>2005-12-13T20:30:00.000-05:00</published><updated>2005-12-13T20:47:59.346-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>More Jython Web Design</title><content type='html'>The web site mockup has received (mostly) positive feedback.  Here are the main criticisms:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The left navigation bar is too small.&lt;/li&gt;&lt;li&gt;Some of the fonts do not show up well in some browsers (and are often too small).&lt;/li&gt;&lt;li&gt;There needs to be some kind of clear status section on the front page.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;So to address these concerns I plan to:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Widen the left nav bar.&lt;/li&gt;&lt;li&gt;Remove the font specifications from the borrowed css (so the browser uses the default fonts).  Make sure the font sizes in the css make sense.&lt;/li&gt;&lt;li&gt;Once live, there will be a clear "status" section on the front page that will give an indication of the project's progress towards a release.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-113452467366840300?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/113452467366840300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=113452467366840300' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/113452467366840300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/113452467366840300'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2005/12/more-jython-web-design.html' title='More Jython Web Design'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-113435794071565219</id><published>2005-12-11T22:21:00.001-05:00</published><updated>2008-04-11T09:43:00.528-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>Jython Website Re-Design</title><content type='html'>I've been working on a re-design of the Jython website for the last few weeks. I've put the latest version of the re-design up here. [Update mockup link removed as the mockup is gone (having been applied to the real site)]&lt;br /&gt;&lt;br /&gt;Here is a summary of the design ideas that are in the mockup:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Documentation source code&lt;/span&gt;:  The reStructured Text format from the &lt;a href="http://docutils.sourceforge.net/"&gt;Docutils project&lt;/a&gt; was used for all of the documentation "source code", even the FAQ. Each page has a "View Document Source" link at the bottom if you want to look at the reStructured Text.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Webpage format&lt;/span&gt;:  I used a "long page" form for much of the site. That is, I've combined related web pages into single web pages with a table of contents at the top. This way, a simple browser-based search can be used on the pages (cntl-F on most browsers).&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Stylesheets&lt;/span&gt;:  I used a more modern css based approach for the look and feel of the site. The stylesheets are mainly borrowed from various apache projects, especially the &lt;a href="http://lenya.apache.org/"&gt;Lenya&lt;/a&gt; project. If anyone knows the name of the person (or persons) who wrote the css for the Lenya website, please let me know so I can give credit. The logo used was created by &lt;a href="http://www.jesseross.com/"&gt;Jesse Ross&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Navigation&lt;/span&gt;:  I removed most of the top level navigation, and replaced it all with 2 tabs, one for the main project and another for "related projects". Note that "related projects" doesn't have any content yet.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Please let me know what you think. This is still just a mockup, so there are dead links, missing content, etc. I'll put up a better mockup soon, and then transition to the real site (given community approval).&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;[Update: this went live long ago -- I should have updated this post when that happened]&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-113435794071565219?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/113435794071565219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=113435794071565219' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/113435794071565219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/113435794071565219'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2005/12/jython-website-re-design.html' title='Jython Website Re-Design'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14276139.post-113389050620190754</id><published>2005-12-06T12:30:00.000-05:00</published><updated>2005-12-06T22:03:36.146-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><title type='text'>Weblog Announcement</title><content type='html'>Since Brian Zimmer has &lt;a href="http://sourceforge.net/mailarchive/message.php?msg_id=13859029"&gt;passed Jython's "primary maintainer" baton to me&lt;/a&gt;, and I would have at least &lt;a href="http://sourceforge.net/mailarchive/message.php?msg_id=14052825"&gt;one reader&lt;/a&gt;, I've decided to start a weblog. I'll try to write about Jython related topics on a reasonably regular basis. I especially hope to use this weblog as a place to keep readers informed about the progress of Jython development.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14276139-113389050620190754?l=fwierzbicki.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fwierzbicki.blogspot.com/feeds/113389050620190754/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14276139&amp;postID=113389050620190754' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/113389050620190754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14276139/posts/default/113389050620190754'/><link rel='alternate' type='text/html' href='http://fwierzbicki.blogspot.com/2005/12/weblog-announcement.html' title='Weblog Announcement'/><author><name>Frank Wierzbicki</name><uri>http://www.blogger.com/profile/00886670869991345737</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/-zby9Ys3ShWQ/TXAB2q2JIOI/AAAAAAAAAT4/mI_czlKj_Mw/s220/frank-wierzbicki.jpg'/></author><thr:total>7</thr:total></entry></feed>
