<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>jython &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/jython/</link>
	<description>Feed of posts on WordPress.com tagged "jython"</description>
	<pubDate>Sun, 29 Nov 2009 21:24:16 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Finally django 1.0.0 for jython released]]></title>
<link>http://mjcanada.wordpress.com/2009/11/13/finally-django-1-0-0-for-jython-released/</link>
<pubDate>Fri, 13 Nov 2009 07:36:07 +0000</pubDate>
<dc:creator>M.J.</dc:creator>
<guid>http://mjcanada.wordpress.com/2009/11/13/finally-django-1-0-0-for-jython-released/</guid>
<description><![CDATA[Finally it&#8217;s released, http://blog.leosoto.com/2009/11/django-jython-100-released.html Most im]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Finally it&#8217;s released, <a href="http://blog.leosoto.com/2009/11/django-jython-100-released.html">http://blog.leosoto.com/2009/11/django-jython-100-released.html</a></p>
<p>Most importantly, the oracle support has been added&#8230; <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Clojure]]></title>
<link>http://kotsokalis.wordpress.com/2009/11/06/clojure/</link>
<pubDate>Fri, 06 Nov 2009 21:23:52 +0000</pubDate>
<dc:creator>CK</dc:creator>
<guid>http://kotsokalis.wordpress.com/2009/11/06/clojure/</guid>
<description><![CDATA[Even before I actually study it in detail, Clojure becomes my latest fixation. A Lisp-based function]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Even before I actually study it in detail, <a href="http://clojure.org/">Clojure</a> becomes my latest fixation. A Lisp-based functional, general-purpose language, which produces JVM bytecode and has access to Java libraries? Sounds like a dream come true. I never liked Java, and as a matter of fact, I consider myself a Java-dyslexic. No matter how much I tried in the past, I never got around learning enough of it to use further than &#8220;Hello, world&#8221;s. Its syntactic resemblance to C, with which I am (was?) quite proficient, didn&#8217;t help much. Nevertheless, the breadth and depth of libraries that exist in Java are mind-boggling, and the ability to use them with a different language is just great. I know there are other JVM-based languages, e.g. <a href="http://www.scala-lang.org/">Scala</a>, but somehow after reading introductory material they never enticed me enough. Also, I really don&#8217;t know how come, although a big fan of <a href="http://python.org/">Python</a> I never tried <a href="http://jython.org/">Jython</a>. I assume I just preferred the real thing &#8212; Python also has an extensive and compelling set of libraries.</p>
<p>In any case, I&#8217;ll try to get a closer look at Clojure and come back with a more complete opinion.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Setting Up Your Own Jython 2.5.1 Environment]]></title>
<link>http://dbaktiar.wordpress.com/2009/11/02/setting-up-your-own-jython-2-5-1-environment/</link>
<pubDate>Mon, 02 Nov 2009 07:38:23 +0000</pubDate>
<dc:creator>dbaktiar</dc:creator>
<guid>http://dbaktiar.wordpress.com/2009/11/02/setting-up-your-own-jython-2-5-1-environment/</guid>
<description><![CDATA[In this post I&#8217;ll show you how to setup your own Jython environment. Prerequisite to this, you]]></description>
<content:encoded><![CDATA[In this post I&#8217;ll show you how to setup your own Jython environment. Prerequisite to this, you]]></content:encoded>
</item>
<item>
<title><![CDATA[Make a native Mac App Bundle of Qt Designer with Qt Jambi]]></title>
<link>http://olliwang.com/2009/11/01/make-a-native-mac-app-bundle-of-qt-designer-with-qt-jambi/</link>
<pubDate>Sun, 01 Nov 2009 05:21:59 +0000</pubDate>
<dc:creator>Olli Wang</dc:creator>
<guid>http://olliwang.com/2009/11/01/make-a-native-mac-app-bundle-of-qt-designer-with-qt-jambi/</guid>
<description><![CDATA[Qt Designer is an important tool for designing and building graphical user interface from Qt compone]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Qt Designer is an important tool for designing and building graphical user interface from Qt components. However, if you are a Java programmer and want to use Qt Designer with Qt Jambi in Mac, you can&#8217;t simply double-click the Designer app bundle shipped with Qt Jambi SDK. If you do so, you can still invoke the Designer, but&#8230; with the C++ environments, it&#8217;s useless for Java programmers. Instead, if you want to use Qt Designer with Qt Jambi. You have to start the program from a `designer.sh` script placed in your Qt directory. It&#8217;s pretty annoying because you&#8217;ll need a Terminal to run this script until you turn it off. Also, it&#8217;s not intuitive.</p>
<p>So, I checked the script code and found what it does is simply to set some environment variables and then execute the Designer binary within the Designer app bundle. Therefore, I decided to make a &#8220;real&#8221; app bundle for the Qt Designer with Qt Jambi. It&#8217;s pretty easy to do this job by using <a href="http://opensource.ollix.com/jump">Jump</a>, one of my open source projects. Here&#8217;s the instructions.</p>
<ol>
<li>Go to the `QTDIR/bin` directory in Finder.</li>
<li>Right-click the `Designer` app bundle, select `Show Package Contents`, and it will open a new Finder window.</li>
<li>In the new opened Finder window, go to the `Contents/MacOS` directory, then copy the `Designer` binary back to `QTDIR/bin`.</li>
<li>Now pick a location to start writing our wrapper. I simply make a directory called `designer` in my home directory, then open a Terminal and switch to it.</li>
<li>Back to the new opened Finder window, copy the `Contents/Resources/designer.icns` file to our new created `designer` directory.</li>
<li>Create a Python module named `designer.py` in `designer` directory, and its content looks like this:
<pre class="brush: python;">import os
# Replace this path to your QTDIR
qt_home = '/Users/olliwang/workspace/qtjambi-mac-lgpl-4.5.2_01'

def main():
    os.environ['QTDIR'] = qt_home
    os.environ['DYLD_LIBRARY_PATH'] = os.path.join(qt_home, 'lib')
    os.environ['QT_PLUGIN_PATH'] = os.path.join(qt_home, 'plugins')
    os.environ['PATH'] = os.path.join(qt_home, 'bin')

    classpaths = []
    for filename in os.listdir(qt_home):
        if filename.endswith('.jar'):
            classpath = os.path.join(qt_home, filename)
            classpaths.append(classpath)
    os.environ['CLASSPATH'] = ':'.join(classpaths)
    os.system(os.path.join(qt_home, 'bin/Designer'))</pre>
</li>
<li>Create a `config.jp` file with following content:
<pre class="brush: bash;">dist_name = Designer
main_entry_point = designer:main
icns = designer.icns</pre>
</li>
<li>Run `jump app` in your Terminal, and you&#8217;ll see a new created directory called `dist`, our new app bundle is in there.</li>
<li>Copy the created app bundle back to the `QTDIR/bin` directory, now double-click the `Designer` app bundle and everything should work fine. Cheers!</li>
</ol>
<p>I use Python to write this wrapper for easy, you can of course do the same thing in Java. Just remember to modify the `main_entry_point` to the `Main Class` in config file.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[ANN: Jump 0.9.5.1 released! ]]></title>
<link>http://olliwang.com/2009/10/29/ann-jump-0-9-5-1-released/</link>
<pubDate>Thu, 29 Oct 2009 10:44:35 +0000</pubDate>
<dc:creator>Olli Wang</dc:creator>
<guid>http://olliwang.com/2009/10/29/ann-jump-0-9-5-1-released/</guid>
<description><![CDATA[I am proud to announce that Jump 0.9.5.1 is released! You can find the Jump project and its document]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I am proud to announce that Jump 0.9.5.1 is released!<br />
You can find the Jump project and its documentation at <a href="http://opensource.ollix.com/jump">http://opensource.ollix.com/jump</a>.</p>
<p>Jump is a build tool for distributing Jython applications in a really easy step.</p>
<p><strong>Features:</strong></p>
<ul>
<li>Distributing Jython applications into a single, independent JAR file. <strong>[New in v0.9.5]</strong></li>
<li>Distributing Jython libraries into a single JAR file.</li>
<li>Distributing native Mac OS X application bundles, Windows .exe executables, WAR files for Python WSGI applications. <strong>[New in v0.9.5]</strong></li>
<li>Supporting Java source code and third-party JAR files.</li>
<li>Supporting Java Native Interface files for distributing JAR files. <strong>[New in v0.9.5]</strong></li>
<li>Starting the created distribution from either Jython or Java code.</li>
<li>Packaging **only required** Python modules into the final distribution **automatically**, which means you don&#8217;t have to worry about using Python third-party libraries as long as they can be found in your `sys.path`.</li>
<li>Importing specified Python packages explicitly. <strong>[New in v0.9.5]</strong></li>
<li>All Python modules (except Python&#8217;s standard library) packaged into the final distribution are compiled to `$py.class` files, which means your source code is not public.</li>
</ul>
<p>If you have any question or bug report, please post it to our mailing list at <a href="http://groups.google.com/group/ollix-jump">http://groups.google.com/group/ollix-jump</a>, contributions are welcome as well.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Django on Jython]]></title>
<link>http://mjcanada.wordpress.com/2009/10/28/django-on-jython/</link>
<pubDate>Thu, 29 Oct 2009 05:37:32 +0000</pubDate>
<dc:creator>M.J.</dc:creator>
<guid>http://mjcanada.wordpress.com/2009/10/28/django-on-jython/</guid>
<description><![CDATA[Jython on Django View more documents from fwierzbicki.]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><div style='width:425px;text-align:left;' id='__ss_1393763'><a style='font:14px Helvetica,Arial,Sans-serif;display:block;text-decoration:underline;margin:12px 0 3px;' href='http://www.slideshare.net/fwierzbicki/jython-on-django' title='Jython on Django'>Jython on Django</a>
<div style='font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;'>View more <a style='text-decoration:underline;' href='http://www.slideshare.net/'>documents</a> from <a style='text-decoration:underline;' href='http://www.slideshare.net/fwierzbicki'>fwierzbicki</a>.</div>
</div>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[ANN: Jump 0.9.0 released!]]></title>
<link>http://olliwang.com/2009/10/25/ann-jump-0-9-0-released/</link>
<pubDate>Sat, 24 Oct 2009 17:36:41 +0000</pubDate>
<dc:creator>Olli Wang</dc:creator>
<guid>http://olliwang.com/2009/10/25/ann-jump-0-9-0-released/</guid>
<description><![CDATA[I am proud to announce that Jump 0.9.0 is released! You can find the Jump project and its documentat]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I am proud to announce that Jump 0.9.0 is released!<br />
You can find the Jump project and its documentation at <a href="http://opensource.ollix.com/jump">http://opensource.ollix.com/jump</a>.</p>
<p>This version is the Jump&#8217;s first release. The goal of Jump is to make a distribution for Jython applications in a really simple step.</p>
<p><strong>Features:</strong></p>
<ul>
<li>Distributing Jython applications into a single, independent JAR file.</li>
<li>Supporting Java source code and third-party JAR files.</li>
<li>Starting the distribution from either Jython or Java code.</li>
<li>Packaging `only required` Python modules into the final distribution `automatically`, which means you don&#8217;t have to worry about using Python third-party libraries as long as they can be found in your `sys.path`.</li>
<li>All Python modules packaged into the final distribution are compiled to $py.class files, which means your source code is not public.</li>
</ul>
<p><strong>The Future:</strong></p>
<ul>
<li>Creating native applications for Mac, Windows and Linux.</li>
<li>Creating web application archive (WAR) files for Python WSGI applications.</li>
</ul>
<p>If you have any question or bug report, please post it to our mailing list at <a href="http://groups.google.com/group/ollix-jump">http://groups.google.com/group/ollix-jump</a>, contributions are welcome as well.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Qt Jambi on Jython]]></title>
<link>http://olliwang.com/2009/10/14/qt-jambi-on-jython/</link>
<pubDate>Wed, 14 Oct 2009 13:05:06 +0000</pubDate>
<dc:creator>Olli Wang</dc:creator>
<guid>http://olliwang.com/2009/10/14/qt-jambi-on-jython/</guid>
<description><![CDATA[In my previous post, Hello World! Qt Jambi, I showed you my brief experience with GUI toolkits for P]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>In my previous post, <a href="http://olliwang.com/2009/10/14/hello-world-qt-jambi/">Hello World! Qt Jambi</a>, I showed you my brief experience with GUI toolkits for Python, and my idea to integrate Qt Jambi with Jython. Thus, we can take advantage of both Java and Python to use Qt library in Python. This is possible because Jython is an implementation of Python written in Java.</p>
<p>I&#8217;ve heard about Jython about over one year ago, but at that time, Jython only supported Python 2.2 features while Python 2.4 was already released for a long time, and because there is a big difference between Python 2.2 and Python 2.4, I never thought Jython is my option. But something is different, the Jython development team has released Jython 2.5 about two months ago and it seems that Jython is extremely useful for me now, to integrate with Qt Jambi.</p>
<p>To illustrate my idea of using Qt Jambi library in Jython, I firstly wrote the Jython equivalent code to the &#8220;Hello World&#8221; example written in Java in my previous post. Here is the original Java source code:</p>
<pre class="brush: java;">import com.trolltech.qt.gui.*;

public class HelloWorld
{
    public static void main(String[] args) {

        QApplication.initialize(args);
        QPushButton hello = new QPushButton(&#34;Hello World!&#34;);
        hello.resize(120, 40);
        hello.setWindowTitle(&#34;Hello World&#34;);
        hello.show();
        QApplication.exec();
    }
}</pre>
<p>And here is the Jython equivalent to Java:</p>
<pre class="brush: python;">import sys

from com.trolltech.qt.gui import *

def main():
    QApplication.initialize(sys.argv)
    hello = QPushButton(&#34;Hello World!&#34;)
    hello.resize(120, 40)
    hello.setWindowTitle(&#34;Hello World&#34;)
    hello.show()
    QApplication.exec()

if __name__ == '__main__':
    main()
</pre>
<p>To execute this script, I just simply run the following instruction, and the result should be nothing different.</p>
<pre class="brush: bash;">jython -J-d32 -J-XstartOnFirstThread helloworld.py</pre>
<p>To further demonstrate if signals are working correctly in Jython, I borrowed the source code from tutorial 2 in Qt Jambi official documentation. Here&#8217;s the original Java source code:</p>
<pre class="brush: java;">import com.trolltech.qt.gui.*;

public class Quit
{
    public static void main(String args[])
    {
        QApplication.initialize(args);
        QPushButton quit = new QPushButton(&#34;Quit&#34;);
        quit.resize(80, 40);
        quit.setFont(new QFont(&#34;Times&#34;, 18, QFont.Weight.Bold.value()));
        quit.clicked.connect(QApplication.instance(), &#34;quit()&#34;);
        quit.setWindowTitle(&#34;Calling It Quits&#34;);
        quit.show();
        QApplication.exec();
    }
}</pre>
<p>And here&#8217;s the Jython equivalent I rewrote:</p>
<pre class="brush: python;">import sys

from com.trolltech.qt.gui import *

def main():
	QApplication.initialize(sys.argv)
	quit = QPushButton(&#34;Quit&#34;)
	quit.resize(80, 40)
	quit.setFont(QFont(&#34;Times&#34;, 18, QFont.Weight.Bold.value()))
	quit.clicked.connect(QApplication.instance(), &#34;quit()&#34;)
	quit.setWindowTitle(&#34;Calling It Quits&#34;)
	quit.show()
	QApplication.exec()

if __name__ == '__main__':
	main()
</pre>
<p>As usual, I executed the script by running instruction like this:</p>
<pre class="brush: bash;">jython -J-d32 -J-XstartOnFirstThread quit.py </pre>
<p><img src="http://olliwang.wordpress.com/files/2009/10/qtjambi_quit.png" alt="qtjambi_quit" title="qtjambi_quit" width="160" height="142" class="alignnone size-full wp-image-288" /></p>
<p>As you can see the result above, everything is just working fine. As long as I click the Quit button in the window, it quits normally, nothing wrong happened. Perfect!</p>
<p>Note that I add `-J-XstartOnFirstThread` parameter because I use Mac OS X operating system and I add `-J-d32` parameter because I use &#8220;Snow Leopard&#8221;. You don&#8217;t need these parameters if you are not a Mac user.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[The Fastest Python Profiler is a Java Profiler]]></title>
<link>http://williamlouth.wordpress.com/2009/09/29/the-fastest-python-profiler-is-a-java-profiler/</link>
<pubDate>Tue, 29 Sep 2009 20:57:09 +0000</pubDate>
<dc:creator>williamlouth</dc:creator>
<guid>http://williamlouth.wordpress.com/2009/09/29/the-fastest-python-profiler-is-a-java-profiler/</guid>
<description><![CDATA[Following on from our &#8220;The Fastest Ruby Profiler is a Java Profiler&#8221; I am pleased to ann]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Following on from our <a href="http://williamlouth.wordpress.com/2009/08/05/the-fastest-ruby-profiler-is-a-java-profiler/" target="_blank">&#8220;The Fastest Ruby Profiler is a Java Profiler&#8221;</a> I am pleased to announce that our upcoming probes based resource metering extension for <a href="http://www.jython.org" target="_blank">Jython</a> is the fastest <em>function call </em>profiling solution for <a href="http://www.python.org" target="_blank">Python</a> applications executed within a Java runtime. With our dynamic hotspot resource metering strategy the overhead of our probes instrumentation can drop down to approximately 8 nanoseconds for non-hotspot function calls.</p>
<p>Here is the Python micro-benchmark I have used in determining this.<br />
<img class="alignnone size-full wp-image-1990" title="code" src="http://williamlouth.wordpress.com/files/2009/09/code.gif" alt="code" width="242" height="231" /></p>
<p>Here is a chart showing the average time (<em>secs</em>) reported by multiple executions of the <code>run</code> method without (<em>baseline</em>) and with our probes based instrumentation. <a href="http://www.jinspired.com/products/jxinsight/" target="_blank">JXInsight&#8217;s</a> instrumentation overhead is just over 2% but that is 2% on a method, <code>call</code>, that effectively does nothing.</p>
<blockquote>
<p style="text-align:center;"><em>The overhead incurred in the instrumentation and measurement of fine grain method executions, which dominate the execution (frequency) profile of most web applications, is a key performance indicator (KPI) for any enterprise application performance management and monitoring solution.</em></p>
</blockquote>
<p><img class="alignnone size-full wp-image-1992" title="jython.chart" src="http://williamlouth.wordpress.com/files/2009/09/jython-chart.gif" alt="jython.chart" width="198" height="200" /></p>
<p>Below is a screenshot of the resulting resource metering in our application management console. Note the strike-through on the <code>call:12</code> function indicating the associated instrumentation has been disabled following the execution of 1000 probe firings and the determination by the <em>hotspot</em> metering strategy that the named probe, <code>benchmark.call.12</code>, is not a hotspot.</p>
<blockquote>
<p style="text-align:center;"><em>Note: Line numbers can be excluded from the probe name assigned to a function marking all same named functions within a module as hot or cold spots depending on the combined resource metering behavior for all implementations.</em></p>
</blockquote>
<p><img style="border:0 initial initial;" title="jython.table" src="http://williamlouth.wordpress.com/files/2009/09/jython-table.gif" alt="jython.table" width="377" height="299" /></p>
<p>The following chart shows the performance of the same benchmark executed by the native c-based Python engine along with the standard <a href="http://docs.python.org/library/profile.html#cProfile.run" target="_blank"><code>cProfile</code></a>. The overhead is significant.</p>
<p><img class="alignnone size-full wp-image-2001" title="python.chart" src="http://williamlouth.wordpress.com/files/2009/09/python-chart.gif" alt="python.chart" width="201" height="200" /></p>
<p>Here is a chart comparing the overhead (%) of <a href="http://www.jinspired.com/products/jxinsight/" target="_blank">JXInsight</a> with that of the Python <a href="http://docs.python.org/library/profile.html#cProfile.run" target="_blank"><code>cProfile</code></a>.</p>
<p><img class="alignnone size-full wp-image-2003" title="compare.chart" src="http://williamlouth.wordpress.com/files/2009/09/compare-chart.gif" alt="compare.chart" width="207" height="202" /></p>
<blockquote>
<p style="text-align:center;"><em>I attempted to run the benchmark with the Python based <code>profile</code> solution but a single <code>run()</code> call took over 200 seconds compared to 2-4 seconds for all other reported test runs. Surprisingly the Jython version of the Python <code>profile</code> solution executed in just under 120 seconds.</em></p>
</blockquote>
<p>If you are interested in seeing more of what will be possible with the upcoming extension then check out the following images showing contextual labeling as well as multi-language metering (profiling).</p>
<p><a href="http://www.jinspired.com/images/jxinsight.5.7.32.jython.to.python.p.1.gif" target="_blank"> www.jinspired.com/images/jxinsight.5.7.32.jython.to.python.p.1.gif</a><br />
<a href="http://www.jinspired.com/images/jxinsight.5.7.32.jython.to.python.p.2.gif" target="_blank"> www.jinspired.com/images/jxinsight.5.7.32.jython.to.python.p.2.gif</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[recursive directory walker using jython]]></title>
<link>http://ssscripting.wordpress.com/2009/09/28/recursive-directory-walker-using-jython/</link>
<pubDate>Mon, 28 Sep 2009 19:11:20 +0000</pubDate>
<dc:creator>geo</dc:creator>
<guid>http://ssscripting.wordpress.com/2009/09/28/recursive-directory-walker-using-jython/</guid>
<description><![CDATA[Several months ago I wrote a post related to creating a recursive directory walker in Python. We did]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><font size="3"><br />
Several months ago I wrote a post related to creating a recursive directory walker in Python. We did not make use of <strong>os.walk</strong>. While playing with <strong>Jython</strong> I thought it would be nice to write an equivalent. Here&#8217;s what I have :</p>
<pre><code>
from java.io import File
import sys

class FileWalker(object):
	def walk(dir,cbf):
	    files = dir.listFiles()
	    for file in files:
	        cbf(file)
	        if file.isDirectory():
	            FileWalker.walk(file,cbf)
	walk = staticmethod(walk)

def list_file(file):
    print "saw %s" % file

if __name__ == "__main__":
    FileWalker.walk(File(sys.argv[1]),list_file)
</span></code></pre>
<p>I think the code is pretty straight-forward. If you&#8217;re familiar with Java even a little bit, I&#8217;m sure you can understand what&#8217; s going on in here. You should know that the callback function isn&#8217;t receiving a string as it&#8217;s parameter ( as the first version of the walker did ) . This one receives a Java <strong>File</strong> object, which means you have access to all the methods present in the <strong>File</strong> class.<br />
</font></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Jython: Pequeno exemplo usando java.awt]]></title>
<link>http://webcentro.wordpress.com/2009/09/18/jython-pequeno-exemplo-usando-java-awt/</link>
<pubDate>Fri, 18 Sep 2009 18:58:04 +0000</pubDate>
<dc:creator>webcentro</dc:creator>
<guid>http://webcentro.wordpress.com/2009/09/18/jython-pequeno-exemplo-usando-java-awt/</guid>
<description><![CDATA[Estou estudando Jython e um dos exercícios do curso (EAD) era fazer essa interface, coisa simples, r]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Estou estudando Jython e um dos exercícios do curso (EAD) era fazer essa interface, coisa simples, resolvi disponibilizar:</p>
<p><img class="alignnone size-full wp-image-208" title="exemplo_Jython" src="http://webcentro.wordpress.com/files/2009/09/exemplo_jython.png" alt="exemplo_Jython" width="400" height="300" /></p>
<p>O código segue a seguir, para executar é necessário ter o Jython instalado (apt-get install jython) e invoca-lo da seguinte forma:<br />
$ jython Desenho.py</p>
<p><img class="alignnone size-full wp-image-209" title="Desenho" src="http://webcentro.wordpress.com/files/2009/09/desenho.png" alt="Desenho" width="494" height="631" /></p>
<p><strong>Código copiavel (atenção!!organize a identação pois é Python ;] ):</strong></p>
<p>#!/usr/bin/env python<br />
from java.awt import *<br />
from java.lang import *</p>
<p>#Classe do exercicio<br />
class Desenho(Panel):<br />
clicked = None<br />
dots = []<br />
def __init__(self):<br />
Panel.__init__(self, mouseDragged=self.Pressionado)<br />
dim = Dimension()<br />
dim.size=400,240<br />
self.preferredSize = dim<br />
self.background = Color.BLACK;<br />
g = self.graphics<br />
#self.addMouseListener(Click())<br />
def Limpar(self, event): # Botao que limpa<br />
g = self.graphics<br />
g.clearRect(0, 0, 400, 300);<br />
def Pressionado(self, event):<br />
g = self.graphics<br />
g.setColor(Color.white)<br />
g.fillRect(event.x, event.y, 2, 2);<br />
self.paint(g);</p>
<p>#Metodo para o botao &#8220;X&#8221;<br />
def exit(event):<br />
System.exit(0)</p>
<p>#Janela<br />
frame = Frame(&#8220;Desenho&#8221;,windowClosing=exit)<br />
frame.size = 400, 300;<br />
desenho = Desenho()<br />
frame.add(desenho)<br />
frame.layout = FlowLayout()</p>
<p>#Botao limpar<br />
button = Button ( &#8220;Limpar&#8221;, actionPerformed = desenho.Limpar)<br />
dim = Dimension()<br />
dim.size=400,25<br />
button.preferredSize = dim<br />
frame.add(button)<br />
frame.visible = 1;</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Simple Swing Application on Jython 2.5]]></title>
<link>http://dbaktiar.wordpress.com/2009/09/03/simple-swing-app-on-jython-2/</link>
<pubDate>Thu, 03 Sep 2009 04:15:02 +0000</pubDate>
<dc:creator>dbaktiar</dc:creator>
<guid>http://dbaktiar.wordpress.com/2009/09/03/simple-swing-app-on-jython-2/</guid>
<description><![CDATA[I need to create a prototype GUI user interface in Java Swing. In order to make it faster I decided ]]></description>
<content:encoded><![CDATA[I need to create a prototype GUI user interface in Java Swing. In order to make it faster I decided ]]></content:encoded>
</item>
<item>
<title><![CDATA[Lenguajes Dinámicos y Revisión de Máquinas Virtuales]]></title>
<link>http://abrahamscitech.wordpress.com/2009/07/22/lenguajes-dinamicos-y-revision-de-maquinas-virtuales/</link>
<pubDate>Thu, 23 Jul 2009 00:03:48 +0000</pubDate>
<dc:creator>abrahamscitech</dc:creator>
<guid>http://abrahamscitech.wordpress.com/2009/07/22/lenguajes-dinamicos-y-revision-de-maquinas-virtuales/</guid>
<description><![CDATA[No cabe duda que los lenguajes de código abierto como Perl, PHP, Python, Ruby y otros más han popula]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><span style="color:#000000;">No cabe duda que los lenguajes de código abierto como <a title="The Perl Directory at Perl.org" href="http://www.perl.org/">Perl</a>, <a title="PHP Hypertext Preprocessor" href="http://www.php.net/">PHP</a>, <a title="Python Programming Language -- Official Website" href="http://python.org/">Python</a>, <a title="Ruby Programming Language" href="http://www.ruby-lang.org/en/">Ruby</a> y otros más han popularizado enormemente el uso de los <a title="Dynamic Typing" href="http://en.wikipedia.org/wiki/Dynamic_type#Dynamic_typing">lenguajes dinámicos</a>. Esto ah captado la atención de los gigantes del software como Microsoft y Sun Microsystems quienes ya se están preparando para la siguiente generación de máquinas virtuales.</span></p>
<p><span style="color:#000000;">Sun esta trabajando en un proyecto llamado <a title="a multi-language renaissance for the Java™ Virtual Machine architecture" href="http://openjdk.java.net/projects/mlvm/"><em>the Da Vinci Machine Project</em></a> que busca mejorar el desempeño y soporte para lenguajes externos no-java como: <a title="JRuby HOME" href="http://www.jruby.org/">Jruby</a>, <a title="The Jython Project" href="http://www.jython.org/">Jython</a>, Groovy y otros. Gran parte de este trabajo será integrado en <a title="JDK 7 Project" href="https://jdk7.dev.java.net/">Java7</a> que se espera para el 2010.</span></p>
<p><span style="color:#000000;">Microsoft por su parte esta trabajando en una extensión del CLR(Common Language Runtime) llamada <a title="Dynamic Language Runtime" href="http://www.codeplex.com/dlr">DLR</a> (Dynamic Language Runtime) que también será integrada con .NET 4.0. DLR permitirá un soporte completo para los lenguajes <a title="IronPython" href="http://ironpython.codeplex.com/">IronPython</a>, <a title="IronRuby" href="http://rubyforge.org/projects/ironruby/">IronRuby</a> y otros.</span></p>
<p><span style="color:#000000;">Por su parte la comunidad de software libre también esta trabajando en  su propia máquina virtual para lenguajes dinámicos, llamada <a href="http://www.parrot.org/">Parrot VM</a> que busca dar soporte a una <a title="Languages" href="http://www.parrot.org/languages">gran variedad de lenguajes</a> incluyendo: C, Forth, Java, PHP, Python, Perl, Scheme y muchos otros más.</span></p>
<p><span style="color:#000000;">Todas las máquinas virtuales vendrán con mejoras y optimizaciones para el desarrollo de aplicaciones multi-threading.</span></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[save image from clipboard to file]]></title>
<link>http://mynotes.wordpress.com/2009/07/22/save-image-from-clipboard-to-file/</link>
<pubDate>Wed, 22 Jul 2009 18:26:13 +0000</pubDate>
<dc:creator>mynotes</dc:creator>
<guid>http://mynotes.wordpress.com/2009/07/22/save-image-from-clipboard-to-file/</guid>
<description><![CDATA[jython script to save image from system clipboard to a file from java.io import File from java.awt i]]></description>
<content:encoded><![CDATA[jython script to save image from system clipboard to a file from java.io import File from java.awt i]]></content:encoded>
</item>
<item>
<title><![CDATA[jythonconsole-0.0.7 released]]></title>
<link>http://donc.wordpress.com/2009/07/16/jythonconsole-0-0-7-released/</link>
<pubDate>Thu, 16 Jul 2009 19:51:31 +0000</pubDate>
<dc:creator>donc</dc:creator>
<guid>http://donc.wordpress.com/2009/07/16/jythonconsole-0-0-7-released/</guid>
<description><![CDATA[Jython Console is a Jython Interactive Interpreter that adds Code Completion. This release fixes wor]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://code.google.com/p/jythonconsole/">Jython Console</a> is a Jython Interactive Interpreter that adds Code Completion.</p>
<p><a href='http://code.google.com/p/jythonconsole/'><img src='http://donc.files.wordpress.com/2007/03/jythonconsole-wordpress.png' alt='jythonconsole-004.png'></a></p>
<p>This release fixes works with Jython 2.5.</p>
<p>See the <a href="http://code.google.com/p/jythonconsole/">project page</a> for more info.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[خذ بالك عند مقارنة الأرقام في بايثون]]></title>
<link>http://msamir.wordpress.com/2009/06/22/python_and_integers/</link>
<pubDate>Sun, 21 Jun 2009 22:43:10 +0000</pubDate>
<dc:creator>Muhammad Samir</dc:creator>
<guid>http://msamir.wordpress.com/2009/06/22/python_and_integers/</guid>
<description><![CDATA[السلام عليكم و رحمة الله ملاحظة غريبة عند مساواة رقمين في بايثون لنفترض a = 256 b = 256 عند إختبار a]]></description>
<content:encoded><![CDATA[السلام عليكم و رحمة الله ملاحظة غريبة عند مساواة رقمين في بايثون لنفترض a = 256 b = 256 عند إختبار a]]></content:encoded>
</item>
<item>
<title><![CDATA[أخيراً جايثون 2.5 في الأسواق]]></title>
<link>http://msamir.wordpress.com/2009/06/18/jython25final/</link>
<pubDate>Thu, 18 Jun 2009 09:54:09 +0000</pubDate>
<dc:creator>Muhammad Samir</dc:creator>
<guid>http://msamir.wordpress.com/2009/06/18/jython25final/</guid>
<description><![CDATA[و بعد طول إنتظار جايثون 2.5 في الأسواق &#8230;يمكنك تحميلها من الرابط http://downloads.sourceforge.n]]></description>
<content:encoded><![CDATA[و بعد طول إنتظار جايثون 2.5 في الأسواق &#8230;يمكنك تحميلها من الرابط http://downloads.sourceforge.n]]></content:encoded>
</item>
<item>
<title><![CDATA[Saiba tudo sobre o JavaOne 2009]]></title>
<link>http://andrefaria.com/2009/06/14/saiba-tudo-sobre-o-java-one-2009/</link>
<pubDate>Mon, 15 Jun 2009 02:54:04 +0000</pubDate>
<dc:creator>andrefaria</dc:creator>
<guid>http://andrefaria.com/2009/06/14/saiba-tudo-sobre-o-java-one-2009/</guid>
<description><![CDATA[No ano passado eu tive a excelente oportunidade de participar do JavaOne 2008, foi uma experiência m]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>No ano passado eu tive a excelente <a href="http://bluesoft.wordpress.com/2008/05/22/javaone-2008/">oportunidade de participar do JavaOne 2008</a>, foi uma experiência muito enriquecedora e apesar de este ano não poder estar lá presente, eu não poderia deixar de fazer um levantamento dos principais acontecimentos e novidades apresentadas no evento para ficar por dentro de tudo, e claro, deixar vocês, queridos leitores, em dia também.</p>
<p>O Slogan do evento no passado foi Java +You ou<strong> Java + Você</strong>, neste ano houveram três: Java  = Everywhere ou <strong>Java = Em toda a parte</strong>, Java + Community = Powerful ou <strong>Java + Comunidade = Poder </strong>e Java = Innovation ou <strong>Java = Inovação</strong>. Um outro acontecimento especial deste ano é o<strong> aniversário de 14 anos do Java</strong>, o vídeo abaixo, que foi exibido na abertura do evento, apresenta rapidamente alguns pontos fortes da evolução que a tecnologia sofreu ao longos dos anos:</p>
<p><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/lJ4czIEsxfQ&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/lJ4czIEsxfQ&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span></p>
<p>O presidente da Oracle Corporation, <a href="http://pt.wikipedia.org/wiki/Larry_Ellison">Larry Elisson</a> afirmou que a Oracle sempre investiu na plataforma Java e que agora investirá mais do que nunca. Veja alguns momentos no KeyNote no vídeo abaixo:</p>
<p><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/mb9tmatlZN4&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/mb9tmatlZN4&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span></p>
<p>James Gosling apresentou a <a href="http://java.com/en/store/">Java Store</a>, um site que catalogará aplicações Java que poderão ser instaladas facilmente em seu computador, algumas delas simplesmente através de drag-and-drop no desktop (arrastar e soltar).</p>
<p>No segundo dia, houve uma General Session chamada <strong>Your Lifestyle: Mobile, TV and Beyond</strong> em foi demonstrado o uso de Java nos mais diversos dispositivos como celulares, televisores, Blu-ray, etc e destacou-se como o JavaFX poderá ampliar ainda mais este mercado em expansão.</p>
<h4 style="font-size:1em;">The Gospel of Java</h4>
<p>Esse divertido vídeo foi apresentado em uma General Session e conta a história do Java.</p>
<p><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/LVGGeM4Ewk0&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/LVGGeM4Ewk0&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span></p>
<h3>JavaFX</h3>
<p>Falou-se bastante sobre as novas tecnologias Java SE 7 SDK, Java EE 6  e Jaxa FX 1.2, mas principalmente sobre Java FX, essa tecnologia recebeu grandes investimento da Sun e promete transformar a forma com que se desenvolve aplicações de alta qualidade de ambiente gráfico com Java. Os dois vídeos abaixo publicados por <strong>Augusto Sellhorn</strong> do Blog <a href="http://sellmic.com/blog/2009/06/05/javafx-authoring-tool-demo-at-javaone-2009-with-video/">Sellmic.com</a> exibem parte de uma demonstração de JavaFx em que é possível ver ferramentas de animação JavaFX muito semelhante com que se conhece com Adobe Flash e Microsoft Silverlight.</p>
<p><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/FUHgnUDP6XA&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/FUHgnUDP6XA&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span></p>
<p><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/5NGDdXdQgU0&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/5NGDdXdQgU0&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span></p>
<p>O pessoal do <a href="http://javaposse.com/">JavaPosse</a> entrevistou Octavian Tanase e Jacob Lehrbaum sobre o JavaFX, vale a pena <a href="http://javaposse.com/index.php?post_id=489260">conferir</a> (em inglês).</p>
<h3>Brasileiros no JavaOne</h3>
<p>Mais uma vez o Brasil foi muito bem representado por congressistase palestrantes que marcaram o evento. <a href="http://webtier.blogspot.com/"><strong><em>Magno Cavalcante</em></strong></a> e <strong><em>Clayton Chages</em></strong> apresentaram a Technnical Session: &#8220;<strong>Java™ in the Brazilian Digital TV: Interactivity and Digital Inclusion on TV</strong>&#8220;.  Ainda sobre TV Digital, <strong><em>David Campelo</em></strong> apresentou a &#8220;<a href="http://developers.sun.com/learning/javaoneonline/sessions/2009/pdf/TS-4453.pdf">TS-4453: New Java Digital TV Standard Goes Brazil</a>&#8220;. A Dupla <strong><em>Marlon Luz</em></strong> e <strong><em>Bruno Oliveira, </em></strong>também deixaram suas contribuições brasileiras com a palestra <strong><a href="http://www28.cplan.com/cb_export/PS_TS-4136_304136_230-1_FIN_v1.pdf">Java ME Myth Busters</a><span style="font-weight:normal;">, confira a entrevista (em português) realizada pelo Sérgio do JavaBahia</span></strong>.</p>
<p><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/Y9CRqfKehmA&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/Y9CRqfKehmA&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span></p>
<p>O brasileiro <a href="http://weblogs.java.net/blog/felipegaucho/">Felipe Gaucho</a> que atualmente trabalha na Suiça esteve no evento e postou <a href="http://weblogs.java.net/blog/felipegaucho/">em seu blog</a> suas impressões. O Baiano, <a href="http://twitter.com/serge_rehem">Serge Rehem</a> do<a href="http://javabahia.blogspot.com/">JavaBahia</a> também participou do evento registrou sua impressões.</p>
<h3>O Classpath está morto!</h3>
<p><a href="http://weblogs.java.net/blog/mreinhold/">Mark Reinhold</a>, Chief Engineer do Java SE, disse isso durante a demonstração da forma com que o Java 7 gerenciará módulos. Vale a pena dar uma olhada no projeto<a href="http://openjdk.java.net/projects/jigsaw/"> Jigsaw</a> que tem como objetivo resolver de forma eficiente as questões da modularização no JDK, esse projeto está sendo construindo segundo a <a href="http://jcp.org/en/jsr/detail?id=294">JSR 294: Improve Modularity Support in the Java Programming Language</a>. Segundo <a href="http://rajaislam.wordpress.com/2009/06/09/the-classpath-is-dead/">Raja Islam</a> o benefício principal que será alcançado com a modularização será a<strong><em> redução do tempo de carga e deploy</em></strong> de aplicações Java.</p>
<p><strong>Microsoft no JavaOne</strong></p>
<p>Pode parecer estranho, mas a Microsoft apresentou a General Session do terceiro dia do JavaOne. No momento em acontecem as General Sessions não há nenhuma outra apresentação ocorrendo simultaneamente e todos os congressistas presentes participam, ou seja, são apresentações de grande importância e alcançam a maior parte do publico do evento.</p>
<p><a href="http://www.microsoft.com/presspass/exec/lewin/">Dan&#8217;l Lewin</a>, Vice Presidente Corporativo da Microsoft, falou sobre esforço que vem sendo realizado a cinco anos desde o inicio da parceria entre a Microsoft e Sun para promover a interoperabilidade entre aplicações Java e .NET, segundo Lewin em uma entrevista realizada pela Microsoft no ano passado com mais de 5 milhões de pessoas, constatou-se que <a href="http://ctpjava.blogspot.com/2009/06/javaone-2009-summary-thursday-day-3.html">73% dos entrevistados trabalhando em ambientes mistos</a> (Java + .NET). Para maiores informações visite <a href="http://www.interoperabilitybridges.com/" target="_blank">www.interoperabilitybridges.com</a>.</p>
<h3>Outras linguagens sobre JVM</h3>
<p><a href="http://olabini.com/blog/2009/06/first-days-of-javaone-and-communityone/">Ola Bini</a> da ThoughtWorks,  famoso por participar ativamente na comunidade open source e por desenvolver a linguagem de programação Ioke, também participou do evento e destacou o projeto <a href="http://openjdk.java.net/projects/mlvm/">Da Vinci</a>, segundo ele, essa tecnologia contribuirá para que a Java Virtual Machine se torne melhor. Ola Bini também apresentou sua BOF 4434: <a href="http://dist.codehaus.org/jruby/talks/HackingJRuby.pdf">Hacking JRuby</a>.</p>
<p>BOF significa (<a href="http://en.wikipedia.org/wiki/Birds_of_a_Feather_(computing)">Birds-of-a-Feather</a>), as BOFs  são palestras informais, interativas e flexíveis. No JavaOne, geralmente acontecem no final do dia com assuntos complementares aos discutidos nas technical sessions (TSs) ou palestras técnicas que acontecem durante o dia.</p>
<p>Charles Nutter também esteve lá falando sobre o projeto JRuby que &#8230; No vídeo abaixo, Nutter falou um pouco a tecnologia:</p>
<p><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/2xAY4lekHQw&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/2xAY4lekHQw&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span></p>
<p><a href="http://en.wikipedia.org/wiki/Rich_Hickey">Rich Hickey</a> falou sobre sua linguagem: <a href="http://en.wikipedia.org/wiki/Clojure">Clojure</a>, que também roda sobre a JVM. Para saber mais confira os slides de sua &#8220;<a href="http://developers.sun.com/learning/javaoneonline/sessions/2009/pdf/TS-4164.pdf">TS-4164 Clojure: Dynamic Functional Programming for the JVM Machine</a>&#8220;.</p>
<p>Neal Ford fez uma comparação entre as linguagens Ruby e Groovy em sua &#8220;<a href="http://developers.sun.com/learning/javaoneonline/sessions/2009/pdf/TS-4955.pdf">TS-4955: Comparing Groovy and JRuby</a>&#8220;.</p>
<p>Falou bastante sobre JRuby, Jython, Scala e Groovy.  Nesta entrevista para o JavaOne, Guillaume Laforge da SpringSource comenta um pouco sobre isso:</p>
<p><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/JZNOWFmbvZc&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/JZNOWFmbvZc&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span></p>
<p>Destacou-se também o lançamento da versão 1.6 da linguagem Groovy, confira a &#8220;<a href="http://developers.sun.com/learning/javaoneonline/sessions/2009/pdf/TS-4215.pdf">TS-4215: What&#8217;s New in Groovy 1.6?</a>&#8221; por Laforge.</p>
<p>Bill Venners, da Artima Inc., apresentou um pouco da linguagem Scala em sua &#8220;<a href="http://developers.sun.com/learning/javaoneonline/sessions/2009/pdf/TS-4487.pdf">TS-4487: The Feel of Scala</a>&#8220;.</p>
<p><a href="http://weblogs.java.net/blog/robc/archive/2009/06/slides_for_my_j.html">Roberto Chinnici</a> falou sobre programação funcional e orientada a objetos com JavaScript, seus slides podem ser visto neste <a href="http://docs.google.com/Present?docid=dvd3mj3_6hn8jvbc2&#38;skipauth=true">link</a>.</p>
<h3>Java, uma plataforma em evolução!</h3>
<p>De acordo com <a href="http://whitesboard.blogspot.com/2009/06/java-se-7-and-java-ee-6.html">Jim White</a>, o Java 7 está previsto para ser lançado em Fevereiro de 2010. Jim participou de algumas palestras que tinham como tema principal a evolução do Java, e disse que muitas das decisões para o Java 7 ainda não foram tomadas, o que indica que ainda há bastante trabalho pela frente. Enquanto ao Java 6, White, diz que será lançado mais cedo, em Setembro de 2009.</p>
<p><a href="http://blogs.sun.com/darcy/entry/javaone_2009_project_coin_slides">Joseph Darcy</a> da Sun Microsystems, na &#8220;<a href="http://developers.sun.com/learning/javaoneonline/sessions/2009/pdf/TS-4060.pdf">Ts-4060: Small Language Changes in JDK Release 7</a>&#8221; apresentou algumas das mudanças que serão feitas na linguagem Java. Darcy chamou a atenção da comunidade para que torne-se parte da evolução e que participando e contribuindo, através do projeto <a href="http://openjdk.java.net/projects/coin/">Coin</a> que tem essa finalidade.</p>
<h4>Servlet 3.0</h4>
<p>A especificação vem evoluindo através da <a href="http://jcp.org/en/jsr/detail?id=315">JSR 315</a> e entre as principais novidades está a possibilidade de configurações toda a aplicação através de annotations ao invés de utilizar o arquivo web.xml e maior utilização do principio <a href="http://en.wikipedia.org/wiki/Convention_over_Configuration">CoC</a> (Convetion over Configuration) que visa diminuir a quantidade de configuração. Existem annotations para registrar Servlets, Filters, Listeners, e até mesmo para declarar regras de segurança e permissões de acesso.</p>
<p>Um outra recurso que ganhou bastante repercussão foram os novos Servlet Assíncronos, para maiores informações confira a &#8220;<a href="http://developers.sun.com/learning/javaoneonline/j1sessn.jsp?sessn=TS-3790&#38;yr=2009&#38;track=javaee">TS-3790: Java Servlet 3.0:Empowering Your Web Application With Async, Extensibility and More</a>&#8221; apresentada por Rajiv Mordani, Greg Wikins e Jan Juehe.</p>
<h4><strong>Bean Validation</strong></h4>
<p>Validação através de metadados nos JavaBeans como no Hibernate Validator. Confira a &#8220;<a href="http://developers.sun.com/learning/javaoneonline/sessions/2009/pdf/TS-5184.pdf">TS-5184: Bean Validation: Declare Once, Validate Anywhere &#8211; A Reality?</a>&#8221; apresentada por <a href="http://blog.emmanuelbernard.com/">Emmanuel Bernard</a> da JBoss sobre o assunto.</p>
<h4>Java Server Faces 2.0</h4>
<p><a href="http://weblogs.java.net/blog/edburns/">Ed Burns</a> e <a href="http://weblogs.java.net/blog/rogerk/">Roger Kitain</a>, ambos da Sun Microsystems, apresentaram a &#8220;<a href="http://developers.sun.com/learning/javaoneonline/sessions/2009/pdf/TS-4640.pdf">TS-4640: A Complete Tour of the JavaServer Faces 2.0 Plataform</a>&#8221; onde falaram sobre as principais novidades do JSF 2.0. Nesta nova versão do JSF teremos melhor suporte a Ajax, componentes compostos que possibilitará melhor reuso de código e melhor suporte a eventos. E para completar ainda mais a discussão sobre JSF no JavaOne, Kitto Mann da Virtua, na &#8220;<a href="http://developers.sun.com/learning/javaoneonline/sessions/2009/pdf/TS-5205.pdf">TS-5205: Writing Killer JavaServer Faces 2.0 UI Components</a>&#8221; apresenta diversos conceitos importantes se criar inovadores e eficientes componentes JSF 2.0 e David Allen da RedHat falou sobre fluxo de páginas (page flow) e conversação (converstation) com JSF na &#8220;<a href="http://developers.sun.com/learning/javaoneonline/sessions/2009/pdf/TS-5045.pdf">TS-5045: Converstations and Page Flows on the JavaServer Faces Plataform</a>&#8220;.</p>
<h4>EBJ 3.1</h4>
<p>A evolução dos Enterprise Java Beans continua, na versão 3.0 pode-se notar grande avanço e uma simplicidade muito grande ao se comparar com versões anterior, nessa nova versão a meta de aumentar a simplicidade se manteve, por isso, a forma de empacotamento dos aplicativos foi simplificada e criou-se o EJB Lite API, que é um conjunto reduzido das funcionalidades disponíveis na especificação completa do EJB.</p>
<p>Além da simplicidade, novas funcionalidades foram incluídas como por exemplo, objetos <a href="http://openejb.apache.org/singleton-ejb.html">Singleton</a>, Callbacks de Startup e Shutdown, Timers baseado em Calendars, Session Beans assincronos e integração com JAX-RS. Para maiores informações confira a &#8220;<a href="http://developers.sun.com/learning/javaoneonline/sessions/2009/pdf/TS-4605.pdf">TS-4605: Enterprise JavaBeans 3.1 Technology Overview</a>&#8221; apresentada por <a href="http://blogs.sun.com/kensaks/">Kenneth Saks</a>, Senior Staff Engineer da Sun Microsystems.</p>
<h4>Java Persistence API (JPA) 2.0</h4>
<p>Linda DeMichiel da Sun Microsystems, na &#8220;<a href="http://developers.sun.com/learning/javaoneonline/sessions/2009/pdf/TS-5214.pdf">TS-5214: Java Persistence 2.0: What&#8217;s New?</a>&#8221; apresentou as principais novidades da JPA que evolui através da JSR 317:</p>
<ol>
<li>Modelagem mais flexível</li>
<li>Novas formas de mapeamento O/R, novas annotations</li>
<li>Java Persistence Query Language mais poderosa</li>
<li>Criteria API</li>
<li>Suporte a Validação</li>
<li>Novos padrões de configuração</li>
</ol>
<p>A Implementação de Referência ou Reference Implementation (RI) da especificação é o projeto EclipseLink que tem como base o antigo projeto da TopLink da Oracle. Andrei Badea da Sun e Dogule Clarke da Oracle apresentaram na &#8220;<a href="http://developers.sun.com:80/learning/javaoneonline/sessions/2009/pdf/TS-5018.pdf">TS-5018: Developing Java Persistence API Applications with the NetBeans IDE and Eclipse Link</a>&#8221; de forma um pouco mais prática como utilizar a nova API. Mike Keith da Oracle fez uma apresentação completa sobre os conceitos de mapeamento da JPA na &#8220;<a href="http://developers.sun.com:80/learning/javaoneonline/sessions/2009/pdf/TS-5265.pdf">TS-5265: A Java Persistence API Mapping Magical Mystery Tour</a>&#8220;.</p>
<h4>Context Dependency Injection for Java EE</h4>
<p><a href="http://in.relation.to/Bloggers/Gavin">Gavin King</a> da RedHat apresentou na &#8220;<a href="http://developers.sun.com/learning/javaoneonline/sessions/2009/pdf/TS-6726.pdf">TS-6726: Context and Dependency Injection for Java Plataform, Enterprise Edition (Java EE Plataform)</a>&#8221; uma introdução o que a especificação JSR-299 trará de novo ao Java EE. Segundo King teremos um novo e rico modelo de gerenciamento de depedências com suporte a objetos statefull, integração da camada web com a camada transacional, será muito fácil construir aplicações utilizando EJB e JSF juntos, e frameworks terceiros poderão facilmente integrar-se a API.</p>
<h4 style="font-size:1em;">Spring 3.0</h4>
<p>Rod Johnson da Spring Source apresentou as novidades do Spring 3.0 na &#8220;<a href="http://developers.sun.com/learning/javaoneonline/sessions/2009/pdf/TS-5225.pdf?">TS-5225: Spring Framework 3.0: New and Notable</a>&#8220;. Segundo Johnson, o trabalho em tornar o desenvolvimento de aplicações Java para Web mais simples e poderoso continua, por isso, os arquivos XML serão ainda mais curtos, havendo necessidade de utilizá-los somente quando for preciso externalizar algum recurso.</p>
<p>A nova versão traz suporte a REST, melhorias no MVC e expression language. O Spring 3.0 será compatível somente com Java 5+.</p>
<h4 style="font-size:1em;">Spring Roo</h4>
<p>O <a href="http://www.springsource.org/roo">Spring Roo</a> é o mais novo projeto da <a href="http://www.springsource.org">Spring Source</a>, e segundo Jim White, é uma espécie de Rails, também com muita meta-programação, que tem como base apenas Java e Spring. <a href="http://twitter.com/springrod">Rod Johnson</a> disse que a missão do Roo é melhorar dramaticamente a produtividade de desenvolvedor Java sem comprometer a poder e flexibilidade através de geradores de código que proporcionarão a entrega rápida de aplicativos corporativos robustos e de alta performance.</p>
<h4>Google Guice</h4>
<p>E por falar em Spring, o <a href="http://code.google.com/p/google-guice/">Google Guice</a>, também vem ganhando bastante espaço no mercado como framework de injeção de dependência, e os Googlers <a href="http://crazybob.org/">Bob Lee</a> e <a href="http://publicobject.com/">Jesse Wilson</a>, falaram sobre ele na &#8220;<a href="http://developers.sun.com/learning/javaoneonline/sessions/2009/pdf/TS-5434.pdf">TS-5434 Introduction to Google Guice: The Java Programming Language Is Fun Again!</a>&#8220;, confira.</p>
<h4 style="font-size:1em;">Eclipse Galileo</h4>
<p>Depois do Calisto, Europa e Ganymede, vem aí o Eclipse Galileo. O lançamento está previsto para 24 de Junho. O release incluirá 48 projetos, o destaca bastante crescimento, ao se comparar como o Ganymede que contemplava apenas 24 projetos. Em 26 de Junho, a Eclipse Foundation fará uma apresentação chamada <em>Galileo in Action</em> onde serão apresentadas as principais funcionalidades do novo realease.</p>
<p><strong>Google App Engine</strong></p>
<p>Como comentei no <a href="http://andrefaria.com/2009/06/01/google-io-2009/">artigo anterior</a>, o Google App Engine agora possui suporte a Java, e claro, isso não poderia deixar de ser assunto de destaque no JavaOne, por isso, os Googlers, Toby Reyelts, Max Ross, e Don Schwarz, apresentaram a &#8220;<a href="http://developers.sun.com/learning/javaoneonline/sessions/2009/pdf/TS-3817.pdf">TS-3817: Google App Engine: Java Technology in the Cloud</a>&#8220;.</p>
<h4>Effective Java</h4>
<p><a href="http://en.wikipedia.org/wiki/Joshua_Bloch">Joshua Bloch</a> do Google, que teve intensa participação do desenvolvimento da linguagem Java, desde o JavaOne 2007 vem de falando sobre boas práticas de programação, e destacando tópicos de seu livro Effective Java, em sua &#8220;<a href="http://developers.sun.com/learning/javaoneonline/sessions/2009/pdf/TS-5217.pdf">TS-5217: Effective Java: Still Effective After All These Years</a>&#8221; manteve o mesmo padrão dos anos passados.</p>
<h4><strong>Prêmios do JavaOne e Java Toy Show</strong></h4>
<p>No último dia do evento, James Gosling apresentou o Toy Show, onde foi apresentado diversas situações onde pessoas e empresas por todo o mundo utilizaram Java de forma inovadora, e também foram distribuídos os <a href="http://java.sun.com/javaone/2009/articles/2009dukeschoiceawards.jsp">prêmios dos ganhadores</a> do <strong><a href="http://java.com/en/dukeschoice/">Duke’s Choice Award</a></strong>.</p>
<p><strong>Slides e Vídeos</strong></p>
<p>Os slides e vídeos das apresentações estão sendo paulatinamente disponibilizados <a href="http://developers.sun.com/learning/javaoneonline/">no site da Sun Developer Network (SDN)</a>, não perca a oportunidade de baixar alguns slides para estudar, garanto que tem material de ótima qualidade publicado lá.</p>
<p>Alguns vídeos do CommunityOne também podem ser baixados <a href="http://developers.sun.com/events/communityone/2009/west/webcasts.jsp">aqui</a>.</p>
<h3 style="font-size:1.17em;">Conclusão</h3>
<p><span style="font-weight:normal;font-size:13px;"> O JavaOne 2009 não trouxe tantas pessoas como anos anteriores, este ano apenas </span><span style="font-weight:normal;font-size:13px;"><strong>9.000</strong></span><span style="font-weight:normal;font-size:13px;"> pessoas se reunião enquanto em edições anteriores do evento mais de</span><span style="font-weight:normal;font-size:13px;"><strong> 25.000</strong></span><span style="font-weight:normal;font-size:13px;"> estiveram presentes, é claro que existem diversos fatores para que isso tenha acontecido como a crise econômica e a gripe suína, por exemplo, mas de toda forma há uma grande diferentes que nos leva a reflexão. Neste ano o evento nos trouxe diversas tecnologias, frameworks, projetos e iniciativas que prometem manter a plataforma em constante evolução. Fiquemos Ligados!</span></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[IBM WebSphere 6.1 - Scripting]]></title>
<link>http://hertzbeat.wordpress.com/2009/05/08/ibm-websphere-6-1-scripting/</link>
<pubDate>Fri, 08 May 2009 07:57:00 +0000</pubDate>
<dc:creator>nmtytus</dc:creator>
<guid>http://hertzbeat.wordpress.com/2009/05/08/ibm-websphere-6-1-scripting/</guid>
<description><![CDATA[Administration Eine WebSphere 6.1 Installation kann neben über eine Web Oberfläche, auch mit dem Too]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><h4><strong><font face="Georgia" size="4">Administration</font></strong></h4>
<p><font face="Georgia" size="3">Eine WebSphere 6.1 Installation kann neben über eine Web Oberfläche, auch mit dem Tool <font face="Courier New">wsadmin</font> administriert werden. Mit <font face="Courier New">wsadmin </font>können zwei Arten von Aufgaben erledigt werden. Zum Einen sind es operationale Aufgaben (Zugriff auf laufende Objekte in WebSphere), und zum Anderen Konfigurationsaufgaben (Konfigurationseinstellungen bearbeiten).</font></p>
<h4><strong><font face="Georgia" size="4">wsadmin</font></strong></h4>
<p><font face="Georgia" size="3"><font face="Courier New">wsadmin</font> bietet eine scripting-Schnittstelle (Jython) welche auf dem </font><a href="http://jakarta.apache.org/bsf/"><font face="Georgia" size="3">Bean Scripting Framework (BSF)</font></a><font face="Georgia" size="3"> aufbaut. Dadurch ist es möglich eine Java Applikation zur Konfiguration und Administration bereitzustellen, welche über die scripting-Schnittstelle angesprochen werden kann.</font></p>
<p><font face="Georgia" size="3">Das <font face="Courier New">wsadmin</font> Tool (lokal) ist in: <font face="Courier New">&#60;was_home&#62;/profiles/&#60;profile_name&#62;/bin/wsadmin.bat (.sh)</font> zu finden. Darüberhinaus ist <font face="Courier New">wsadmin</font> (global) im <font face="Courier New">&#60;profile_home&#62;</font> Verzeichnis zu finden. Wird <font face="Courier New">wsadmin</font> aus diesem Verzeichnis aufgerufen so muss zunächst das richtige Profil mitgegeben werden.</font></p>
<p><font face="Georgia" size="3">Hilfe gibt es mit dem Befehl: <font face="Courier New">wsadmin –?</font>.</font></p>
<p><font face="Georgia" size="3">Einstellungen können in der <font face="Courier New">&#60;profile_home&#62;/properties/wsadmin.properties</font> oder <font face="Courier New">&#60;was_home&#62;/properties/wsadmin.properties</font> Datei vorgenommen werden. Ferner kann über den Parameter <font face="Courier New"><strong>–p</strong></font> eine eigene Einstellungsdatei mitgegeben werden: <font face="Courier New">wsadmin –f ~/myScript.py –p ~/temp/custom.properties</font>.</font></p>
<p><font face="Georgia" size="3">Ein einzelnes Kommando wird mit dem Parameter <font face="Courier New">–c</font> eingeleitet: <font face="Courier New">wsadmin -c AdminControl.getNode()</font>.</font></p>
<p><font face="Georgia" size="3">Mit dem Befehl <font face="Courier New">wsadmin</font> ohne Parameter wechselt man in den interaktiven Modus.</font></p>
<p><font face="Georgia" size="3">Jython Skripte können mit dem Befehl: <font face="Courier New">wsadmin -f myScript.py</font> ausgeführt werden.</font></p>
<h4><strong><font face="Georgia" size="4">Was gibt es zu verwalten?</font></strong></h4>
<p><font face="Georgia" size="3">WebSphere 6.1 stellt 4 Objekte zur Verwaltung bereit:</font></p>
<ul>
<li><font face="Georgia"><font size="3"><strong>AdminControl</strong> – Verwaltung von laufenden Objekten mittels MBeans. The available MBeans are documented in: <font face="Courier New">&#60;was_home&#62;/web/mbeanDocs/index.html</font>.</font></font> </li>
<li><font face="Georgia" size="3"><strong>AdminConfig</strong> &#8211; Das AdminConfig-Objekt kommuniziert mit dem Konfigurationsservice in einem WebSphere-Server, um die Konfigurationsdaten für eine WebSphere-Installation zu bearbeiten. AdminConfig stellt Befehle zum Auflisten, Erstellen, Entfernen, Anzeigen und Ändern von Konfigurationsdaten sowie Befehle zum Anzeigen von Informationen zu den Konfigurationsdatentypen bereit.</font> </li>
<li><font face="Georgia" size="3"><strong>AdminApp</strong>&#160; &#8211; Bearbeitung von Anwendungsobjekten.</font> </li>
<li><font face="Georgia" size="3"><strong>AdminTask</strong> – Ausführung von Administrationsbefehlen.</font> </li>
</ul>
<p><font face="Georgia" size="3">Darüberhinaus wird ein <strong>Help</strong> Objekt bereitgestellt. Über das <strong>Help</strong> Objekt können Informationen über die Methoden der Objekte zur Verwaltung sowie Informationen über Methoden und Attribute von MBeans.</font></p>
<p><font face="Georgia" size="3">Methoden des <font face="Georgia"><font size="3"><strong>AdminControl</strong> </font></font>Objekts anzeigen: <font face="Courier New">print Help.AdminControl()</font>.</font></p>
<p><font face="Georgia" size="3">Informationen über die <font face="Courier New">completeObjectName</font> Methode des <font face="Georgia"><strong>AdminControl</strong> </font>Objekts anzeigen: <font face="Courier New">print AdminControl.help(&#8216;completeObjectName&#8217;)</font>.</font></p>
<p><strong><font face="Georgia" size="4">Quellen</font></strong></p>
<p><font face="Georgia" size="3"><a href="http://www.redbooks.ibm.com/abstracts/sg247304.html">IBM RedBook: WebSphere Application Server V6.1: System Management and Configuration</a></font></p>
<p><font face="Georgia"></font></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Updating ejb deployment descriptor in installed applications with the wsadmin tool]]></title>
<link>http://mynotes.wordpress.com/2009/04/21/updating-ejb-deployment-descriptor-in-installed-applications-with-the-wsadmin-tool/</link>
<pubDate>Tue, 21 Apr 2009 11:40:22 +0000</pubDate>
<dc:creator>mynotes</dc:creator>
<guid>http://mynotes.wordpress.com/2009/04/21/updating-ejb-deployment-descriptor-in-installed-applications-with-the-wsadmin-tool/</guid>
<description><![CDATA[open wsadmin shell ksh ./wsadmin.sh -lang jython -conntype SOAP -host yourhost.com -port 8879 -user ]]></description>
<content:encoded><![CDATA[open wsadmin shell ksh ./wsadmin.sh -lang jython -conntype SOAP -host yourhost.com -port 8879 -user ]]></content:encoded>
</item>
<item>
<title><![CDATA[Why Groovy is better than JRuby and Jython]]></title>
<link>http://simplenotions.wordpress.com/2009/04/11/why-groovy-is-better-than-jruby-jython/</link>
<pubDate>Sat, 11 Apr 2009 13:07:15 +0000</pubDate>
<dc:creator>mrohad</dc:creator>
<guid>http://simplenotions.wordpress.com/2009/04/11/why-groovy-is-better-than-jruby-jython/</guid>
<description><![CDATA[While we all happy that python, ruby, js and other languages developers understood the JVM strengths]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>While we all happy that python, ruby, js and other languages developers understood the JVM strengths and decided to port their code to run over the JVM using JRuby, Jython etc&#8230;.porting from one language to another is typically worse comparing to writing in a unique scripting language that has been developed for the Java community!</p>
<p><span><span><a href="http://groovy.codehaus.org/">Groovy </a>is such a language, it&#8217;s a scripting <span class="IL_SPAN">language</span> for the Java developers, and that&#8217;s how Groovy&#8217;s creator thought about it when they had develop it. </span></span></p>
<p>The main advantage is the ability to use the J2SE API internally in groovy (all of course all the advantages of <a href="http://en.wikipedia.org/wiki/Scripting_language">scripting</a>).</p>
<p>In example , the Java collection API  is so mature and it is awesome that a Groovy developer can use it naturally, moreover,  the Java community is blossoming and provide us with millions of external cool libraries which can be used by the Groovy developer.</p>
<p>Other than that, the root object in groovy ,as in Java, is java.lang.Object, which give us &#8220;for free&#8221; the .hashCode() and .equals() important methods &#8230;</p>
<p>The groovy language is trivial to grasp for a Java develop, which is bidirectional!</p>
<p><span>Think of groovy as a  Python like <span class="IL_SPAN">language</span> that is tightly integrated with the Java which allowing you the same powerful and concise coding syntax as  Python but allowing you to stay on the JVM and protect your investment in J2SE, J2EE and all the plethora of great useful Java code out there without any </span><span>parallel API sets or </span><span>adapter layers.</span></p>
<p><span><img class="alignnone" title="groovy" src="http://www.engadinemusic.com.au/Education_Site/GROOVY/groovy.gif" alt="" width="328" height="227" /><br />
</span></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Python browser games: Possible or fantasy?]]></title>
<link>http://metapep.wordpress.com/2009/04/04/python-browser-games-possible-or-fantasy/</link>
<pubDate>Sat, 04 Apr 2009 16:00:21 +0000</pubDate>
<dc:creator>pepijndevos</dc:creator>
<guid>http://metapep.wordpress.com/2009/04/04/python-browser-games-possible-or-fantasy/</guid>
<description><![CDATA[While working on some database stuff for my CMS I got stuck, so I asked for help. The problem is tha]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>While working on some database stuff for my CMS I got stuck, so I asked for help. The problem is that at the time of posting it was like in the middle of the night in America. So I looked around on <a href="http://www.python-forum.org/pythonforum/">the forums</a> if I could be of any help to someone.</p>
<p>Then I found <a href="http://www.python-forum.org/pythonforum/viewtopic.php?f=19&#38;t=10112#p57616">this thread</a> where someone asked if he could run his <a href="http://www.pygame.org/news.html">PyGame</a> in a browser. I never wrote a game&#8230; <a title="Yargo" href="http://metapep.wordpress.com/projects/">well not a real one at least</a>, but it sounded interesting. So this is how I spend this day, looking for magic &#8216;Python applets&#8217;</p>
<blockquote><p>Add me to the list of people who would like to know about it <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /><br />
After reading this I got myself a copy of Jython and tried some of my scripts(, falied) and made a nice swing gui with the interactive shell.</p>
<p>One thing I noticed is the lack of&#8230; A lot of stuff actually. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /><br />
So step one is to get PyGame to run on Jython at all, if that works&#8230; convert to an applet.( <a href="http://www.jython.org/applets/">http://www.jython.org/applets/</a> )</p>
<p>[offtopic]<br />
Could it be possible to make a Python implementation in actionscript?(Flash)<br />
Interesting thought&#8230; But just fantasy I guess. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_rolleyes.gif' alt=':roll:' class='wp-smiley' /> </p>
<p>[edit]<br />
Did anyone here do but even the slightest research <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_exclaim.gif' alt=':!:' class='wp-smiley' />   <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_question.gif' alt=':?:' class='wp-smiley' /><br />
<a href="http://archives.seul.org/pygame/users/Apr-2005/msg00111.html">http://archives.seul.org/pygame/users/Apr-2005/msg00111.html</a><br />
PyGame on Jython is not even possible, so why bother thinking about PyGame applets?<br />
It&#8217;s just not going to happen, unless someone writes a Python browser plugin.</p>
<p>[offtopic]<br />
Now THAT is another cool idea, but even more unlikely to happen then a flash implementation of Python.</p>
<p>[edit]<br />
I searched the whole interned and did not yet found a way to run PyGame in the browser.<br />
The 3 closest are:</p>
<p>Jython, it does java applets, but no PyGame. Writing awt/swing games should be fine.<br />
How about the other way around? Seek a light-weight Java game framework and import it into Jython. You can use java classes remember&#8230; Use them!( <a href="http://www.lwjgl.org/index.php">http://www.lwjgl.org/index.php</a> )<br />
It IS possible to do JNI from within a signed applet <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Grail, the Python browser. It&#8217;s dead and old I think, but it had Python applet support.</p>
<p>I hate Microsoft and their wannabe Flash: SilverLight, but the seem to have produced something nice: Ruby and Python support! <a href="http://silverlight.net/learn/dynamiclanguages.aspx/">http://silverlight.net/learn/dynamiclanguages.aspx/</a><br />
But then we arrive at the same point as Jython&#8230; PyGame!!! Silverlight uses IronPython <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /><br />
But there is light at the end of the tunnel, according to a blog post(which I lost), <a href="http://code.google.com/p/ironclad/">http://code.google.com/p/ironclad/</a> got as far as importing PyGame into IronPython. This does not mean it will run <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />   <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_mad.gif' alt=':x' class='wp-smiley' /> </p>
<p>This is how much energy I&#8217;m going to put in it&#8230;<br />
In the future it might be possible to write Jython or IronPython games using PyGame and Java/Silverlight. Or someone might write a Python browser plugin&#8230;<br />
But at the moment there is no good/tested way of writing browser game with Python.</p></blockquote>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Jython on Documentum part 3]]></title>
<link>http://robineast.wordpress.com/2009/03/12/jython-on-documentum-part-3/</link>
<pubDate>Thu, 12 Mar 2009 17:44:03 +0000</pubDate>
<dc:creator>Robin East</dc:creator>
<guid>http://robineast.wordpress.com/2009/03/12/jython-on-documentum-part-3/</guid>
<description><![CDATA[It&#8217;s been a while since I&#8217;ve blogged and even longer since I blogged about Jython on Doc]]></description>
<content:encoded><![CDATA[It&#8217;s been a while since I&#8217;ve blogged and even longer since I blogged about Jython on Doc]]></content:encoded>
</item>
<item>
<title><![CDATA[JAVA vs. Python ]]></title>
<link>http://nitabhi.wordpress.com/2009/02/22/java-vs-python/</link>
<pubDate>Sun, 22 Feb 2009 21:51:06 +0000</pubDate>
<dc:creator>Abhishek</dc:creator>
<guid>http://nitabhi.wordpress.com/2009/02/22/java-vs-python/</guid>
<description><![CDATA[Hi, Today nearly at 7-8pm in evening, i was talking to one of my friend from CET Bhubaneswar (Pinku ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Hi,</p>
<p>Today nearly at 7-8pm in evening, i was talking to one of my friend from CET Bhubaneswar (Pinku Pradhan)and suddenly this war emerged between us. Its about JAVA or Python.</p>
<p>Actually i am a JAVA guy from a long time, i think from past 3-4 years and never used Python.</p>
<p>So i had decided to check the details. Well  as i am using JAVA , i personally thinks that it is the most secured platform for Web application, web development and for almost anything. Also there is no second opinion about the portability of Applications/Web Sites (etc. )Developed on JAVA platform.</p>
<p>JAVA have almost everything in it like it manages memory allocation, potentially compiles to very speedy code, integrates secure execution, works on both a big server and a little PDA, runs in both Unix and Windows, and comes with a big or can say endless library. I became far more productive as a coder when I switched to Java. I wrote a sample website for my institute project and it rocked. I hopped on the Java bandwagon.</p>
<p>But after all this today i had checked and after spending a long time and learning few initials of Python i am ready to accept one thing that JAVA is GOOD but still we cant ignore the presence of Python also.Few things which i noticed, like JAVA is quite verbose as compared to Python(thats why its take a bit more time to write something in JAVA).Then its about dynamic nature of Python which is also helpful.</p>
<p>So lastly i am very impressed with feature and friendliness of Python over JAVA Platform.Still what i concluded  is Python is GOOD but still cant replace JAVA Platform.</p>
<p>LOOKING Forward to Learn Python &#8230;. n waiting for &#8230;.. <strong>Jython</strong> &#60;<a href="http://www.jython.org/Project/">http://www.jython.org/Project/</a>&#62;release</p>
</div>]]></content:encoded>
</item>

</channel>
</rss>
