<?xml version="1.0" encoding="UTF-8"?>
<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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Geeknizer &#187; Java</title>
	<atom:link href="http://geeknizer.com/tag/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://geeknizer.com</link>
	<description>iPhone, Android, mobile, Technology news</description>
	<lastBuildDate>Tue, 07 Feb 2012 17:56:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>James Gosling leaves Google, joins Robotics startup</title>
		<link>http://geeknizer.com/james-gosling-leaves-google/</link>
		<comments>http://geeknizer.com/james-gosling-leaves-google/#comments</comments>
		<pubDate>Wed, 31 Aug 2011 04:00:01 +0000</pubDate>
		<dc:creator>Tarandeep Singh</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Open source]]></category>

		<guid isPermaLink="false">http://geeknizer.com/?p=8700</guid>
		<description><![CDATA[After spending only months at Google (March-August 2011), The Father of Java, James Gosling, makes yet another switch. This time its not another software giant but rather a startup that... <span class="meta-more"><a href="http://geeknizer.com/james-gosling-leaves-google/">Read more &#187;</a></span>]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" src="http://geeknizer.com/wp-content/uploads/2010/04/james-gosling-java.jpg" alt="" width="320" height="240" />After spending only months at Google (March-August 2011), The Father of Java, James Gosling, makes yet another switch. This time its not another software giant but rather a startup that he thinks suits his desires.</p>
<p>Soon after the Oracle-Sun merger, James <a href="http://geeknizer.com/father-of-java-resigns/">decided to move on</a> and had being onto his night hacks, not working for a particular company. This year, he <a href="http://geeknizer.com/father-of-java-joins-google/">joined Google </a>in pursuit of bigger ambitions. He quotes:</p>
<blockquote><p>&#8220;I&#8217;ve surprised myself and made another career change. I had a great time at Google, met lots of interesting people, but I met some folks outside doing something completely outrageous, and after much anguish decided to leave Google.&#8221;</p></blockquote>
<p>This Tuesday, he announced that <a href="http://nighthacks.com/roller/jag/" target="_blank">he has moved on to Liquid Robotics</a>, where he is chief software architect. He has solid belief in this startup and claims:</p>
<blockquote><p>&#8220;They have a growing fleet of autonomous vehicles that rove the ocean collecting data from a variety of onboard sensors and uploading it to the cloud. The robots have a pile of satellite uplink/GSM/WiMax communication gear and redundant GPS units&#8221;</p></blockquote>
<p>Gosling will be involved in both onboard software for sensing, navigation, and autonomy, as well as in the data center, dealing with rush of data:</p>
<blockquote><p>&#8220;The current systems work well, but they have a variety of issues that I look forward to working on. This is going to be a lot of fun.&#8221;</p>
<p>&#8220;<a href="http://liquidr.com/" target="_blank">Liquid Robotics</a> tackles a rocket science problem that does good for the world and is incurably cool, Liquid Robotics can totally change the way we look at oceans. We&#8217;ll be able to get a wide variety of detailed data more cheaply and pervasively than any other way. It involves a large data problem and a large-scale control problem, both of which are fascinating to me and have been passions of mine for years.&#8221;</p></blockquote>
<p>It would be fascinating to see how a startup evolves with this mastermind.</p>
<p>via LiquidR <a href="http://liquidr.com/files/2011/08/JamesGosling_8_30_11.pdf">pressRelease</a> [pdf]</p>
<p>We write about <a href="http://geeknizer.com/tag/open-source">Open Source</a>, <a href="http://geeknizer.com/tag/programming">Programming</a>, <a href="http://geeknizer.com/tag/java">Java</a>, Latest Tech news as they happen, get them <a href="http://twitter.com/geeknizer"><strong>@geeknizer </strong>on Twitter</a> or <a href="http://facebook.com/geeknizer" target="_blank">Facebook Fanpage</a> or subscribe below:</p>
]]></content:encoded>
			<wfw:commentRss>http://geeknizer.com/james-gosling-leaves-google/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Run Java, J2ME Apps, Games on Android</title>
		<link>http://geeknizer.com/run-java-j2me-apps-games-on-android/</link>
		<comments>http://geeknizer.com/run-java-j2me-apps-games-on-android/#comments</comments>
		<pubDate>Wed, 10 Aug 2011 05:11:26 +0000</pubDate>
		<dc:creator>Tarandeep Singh</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[j2me]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://geeknizer.com/?p=8526</guid>
		<description><![CDATA[Returning to classics or looking out to try desktop Java applications, games, its all now possible to get those apps, games on Android devices. JBED will let you run any... <span class="meta-more"><a href="http://geeknizer.com/run-java-j2me-apps-games-on-android/">Read more &#187;</a></span>]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-8529" title="android-java" src="http://geeknizer.com/wp-content/uploads/2011/08/android-java.jpg" alt="" width="200" height="150" />Returning to classics or looking out to try desktop Java applications, games, its all now possible to get those apps, games on Android devices.</p>
<p>JBED will let you run any <a href="http://geeknizer.com/tag/java">Java</a>/J2ME/MIDP games or applications natively with JBed Android Java Emulator. JBED is available as a signed flash-able package for easy installation. You need a <a href="http://geeknizer.com/tag/root-jailbreak">rooted</a> android phone, ofccourse</p>
<p><strong>Howto Run Jav, J2me, MIDP apps on android</strong></p>
<p>Flash the package via your recovery (tested on Clockworkmod) on clockworkmod recovery version 2+. The Java emulator is efficient enough to run on even low end android phones.</p>
<p><a rel="attachment wp-att-8530" href="http://geeknizer.com/run-java-j2me-apps-games-on-android/java-on-android/"><img class="alignnone size-full wp-image-8530" title="java-on-android" src="http://geeknizer.com/wp-content/uploads/2011/08/java-on-android.jpg" alt="" width="240" height="320" /></a></p>
<p>Download via the QR code below or get the zip from <a rel="nofollow" href="http://forum.xda-developers.com/showthread.php?t=1189303" target="_blank">here</a>.</p>
<p><img class="alignnone" src="http://chart.apis.google.com/chart?cht=qr&amp;chs=250x250&amp;choe=UTF-8&amp;chld=H&amp;chl=http%3A%2F%2Fforum.xda-developers.com%2Fattachment.php%3Fattachmentid%3D668332" alt="" width="250" height="250" /></p>
<p>We write latest and greatest in <a href="http://geeknizer.com/tag/guide">Tech Guides</a>, <a href="http://geeknizer.com/tag/apple">Apple</a>, <a href="http://geeknizer.com/tag/iphone">iPhone</a>, <a href="http://geeknizer.com/tag/tablet">Tablets</a>, <a href="http://geeknizer.com/tag/android">Android</a>,  <a href="http://geeknizer.com/tag/open-source">Open Source</a>, Latest in Tech, subscribe to us<a href="http://twitter.com/geeknizer"><strong>@geeknizer</strong>on Twitter</a> OR on <a href="https://www.facebook.com/geeknizer">Facebook Fanpage</a>:</p>
]]></content:encoded>
			<wfw:commentRss>http://geeknizer.com/run-java-j2me-apps-games-on-android/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Java 7 Features &#8211; What&#8217;s New</title>
		<link>http://geeknizer.com/java-7-features-whats-new/</link>
		<comments>http://geeknizer.com/java-7-features-whats-new/#comments</comments>
		<pubDate>Fri, 29 Jul 2011 05:10:01 +0000</pubDate>
		<dc:creator>Tarandeep Singh</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[java 7]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://geeknizer.com/?p=8421</guid>
		<description><![CDATA[The long awaited and the most delayed version of Java is finally made available to public. The last Java update was in December 2006 and Java 7 was originally planned... <span class="meta-more"><a href="http://geeknizer.com/java-7-features-whats-new/">Read more &#187;</a></span>]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-8426" href="http://geeknizer.com/java-7-features-whats-new/java-7/"><img class="alignright size-full wp-image-8426" title="java-7" src="http://geeknizer.com/wp-content/uploads/2011/07/java-7.jpg" alt="" width="230" height="196" /></a>The long awaited and the most delayed version of Java is finally made available to public. The last Java update was in December 2006 and Java 7 was originally planned for 2009.</p>
<p>Oracle <a href="http://www.oracle.com/us/corporate/press/444374" target="_blank">announced</a> this morning that <a href="http://www.oracle.com/technetwork/java/javase/overview/index-jsp-138218.html">Java 7</a> has matured because of the hard work done by open review and extensive collaboration between Oracle engineers and members of the worldwide Java ecosystem.</p>
<p>“Java 7 is the release everybody has been waiting for quite a long time,” said Ben Evans of the <a title="London Java Comunity" href="http://londonjavacommunity.wordpress.com/" target="_blank">London Java Community (LJC)</a>. Evans, who also is the LJC’s representative on the Java Standard Edition/Enterprise Edition (Java SE/EE) Executive Committee, added that Java 7 is “an enabler” that will give developers more options for building better Java applications.</p>
<p><a rel="attachment wp-att-8424" href="http://geeknizer.com/java-7-features-whats-new/java7-2/"><img class="alignnone size-full wp-image-8424" title="java7" src="http://geeknizer.com/wp-content/uploads/2011/07/java7.jpg" alt="" width="392" height="305" /></a></p>
<div><strong><a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html" target="_blank">Download JDK 7</a></strong></div>
<div><strong><br />
</strong></div>
<div><strong>Java 7, What&#8217;s new:</strong></div>
<div>
<ul>
<li>A new<strong> multicore-ready API</strong> that enables developers to more easily decompose problems into tasks that can then be executed in parallel across arbitrary numbers of processor cores. (JSR 166: Fork/Join Framework)</li>
<li>Language changes to help increase developer productivity and simplify common programming tasks by reducing the amount of code needed, <strong>clarifying syntax and making code easier to read</strong>. (JSR 334: Project Coin)</li>
<li>Expanded support for <strong>internationalization</strong>, including <strong>Unicode 6.0</strong> support</li>
<li>A <strong>comprehensive I/O interface</strong> for working with file systems that can access a wider array of file attributes and offer more information when errors occur. (JSR 203: NIO.2)</li>
<li>Improved support for <strong>dynamic languages</strong> (including: Ruby, Python and JavaScript), resulting in substantial performance increases on the JVM. (JSR 292: InvokeDynamic)</li>
<li>New networking and security features.</li>
<li>System and Process CPU <a href="http://sellmic.com/blog/2011/07/21/hidden-java-7-features-cpu-load-monitoring/" target="_blank">monitoring</a>.</li>
</ul>
</div>
<p><a rel="attachment wp-att-8425" href="http://geeknizer.com/java-7-features-whats-new/java_powers/"><img class="alignnone size-full wp-image-8425" title="java_powers" src="http://geeknizer.com/wp-content/uploads/2011/07/java_powers.jpg" alt="" width="470" height="186" /></a></p>
<p><strong>Java 7 New Features</strong></p>
<p><strong><span style="font-weight: normal;">Java 7 gives the Java platform a significant facelift not just in <a href="http://geeknizer.com/java-7-whats-new-performance-benchmark-1-5-1-6-1-7/">performance benchmarks</a> but also on bunch of new features. Below are the features, enhancements in detail:</span></strong></p>
<p><strong> </strong></p>
<table summary="features">
<tbody>
<tr>
<td>1. <a href="http://openjdk.java.net/projects/jdk7/features/#vm">vm</a></td>
<td>- <a href="http://openjdk.java.net/projects/jdk7/features/#f353">JSR 292: Support for dynamically-typed languages (InvokeDynamic)</a></td>
</tr>
<tr>
<td></td>
<td>- <a href="http://openjdk.java.net/projects/jdk7/features/#fa535991">Strict class-file checking</a></td>
</tr>
<tr>
<td>2. <a href="http://openjdk.java.net/projects/jdk7/features/#lang">lang</a></td>
<td>- <a href="http://openjdk.java.net/projects/jdk7/features/#f618">JSR 334: Small language enhancements (Project Coin)</a></td>
</tr>
<tr>
<td>3. <a href="http://openjdk.java.net/projects/jdk7/features/#core">core</a></td>
<td>- <a href="http://openjdk.java.net/projects/jdk7/features/#f352">Upgrade class-loader architecture</a></td>
</tr>
<tr>
<td></td>
<td>- <a href="http://openjdk.java.net/projects/jdk7/features/#f584">Method to close a URLClassLoader</a></td>
</tr>
<tr>
<td></td>
<td>- <a href="http://openjdk.java.net/projects/jdk7/features/#f515">Concurrency and collections updates (jsr166y)</a></td>
</tr>
<tr>
<td>4. <a href="http://openjdk.java.net/projects/jdk7/features/#i18n">i18n</a></td>
<td>- <a href="http://openjdk.java.net/projects/jdk7/features/#f497">Unicode 6.0</a></td>
</tr>
<tr>
<td></td>
<td>- <a href="http://openjdk.java.net/projects/jdk7/features/#fa535895">Locale enhancement</a></td>
</tr>
<tr>
<td></td>
<td>- <a href="http://openjdk.java.net/projects/jdk7/features/#fa538265">Separate user locale and user-interface locale</a></td>
</tr>
<tr>
<td>5. <a href="http://openjdk.java.net/projects/jdk7/features/#ionet">ionet</a></td>
<td>- <a href="http://openjdk.java.net/projects/jdk7/features/#f250">JSR 203: More new I/O APIs for the Java platform (NIO.2)</a></td>
</tr>
<tr>
<td></td>
<td>- <a href="http://openjdk.java.net/projects/jdk7/features/#fa537814">NIO.2 filesystem provider for zip/jar archives</a></td>
</tr>
<tr>
<td></td>
<td>- <a href="http://openjdk.java.net/projects/jdk7/features/#f405">SCTP (Stream Control Transmission Protocol)</a></td>
</tr>
<tr>
<td></td>
<td>- <a href="http://openjdk.java.net/projects/jdk7/features/#f639">SDP (Sockets Direct Protocol)</a></td>
</tr>
<tr>
<td></td>
<td>- <a href="http://openjdk.java.net/projects/jdk7/features/#fa535996">Use the Windows Vista IPv6 stack</a></td>
</tr>
<tr>
<td></td>
<td>- <a href="http://openjdk.java.net/projects/jdk7/features/#fa534339">TLS 1.2</a></td>
</tr>
<tr>
<td>6. <a href="http://openjdk.java.net/projects/jdk7/features/#sec">sec</a></td>
<td>- <a href="http://openjdk.java.net/projects/jdk7/features/#f73">Elliptic-curve cryptography (ECC)</a></td>
</tr>
<tr>
<td>7. <a href="http://openjdk.java.net/projects/jdk7/features/#jdbc">jdbc</a></td>
<td>- <a href="http://openjdk.java.net/projects/jdk7/features/#fa539110">JDBC 4.1</a></td>
</tr>
<tr>
<td>8. <a href="http://openjdk.java.net/projects/jdk7/features/#client">client</a></td>
<td>- <a href="http://openjdk.java.net/projects/jdk7/features/#f653">XRender pipeline for Java 2D</a></td>
</tr>
<tr>
<td></td>
<td>- <a href="http://openjdk.java.net/projects/jdk7/features/#f650">Create new platform APIs for 6u10 graphics features</a></td>
</tr>
<tr>
<td></td>
<td>- <a href="http://openjdk.java.net/projects/jdk7/features/#f244">Nimbus look-and-feel for Swing</a></td>
</tr>
<tr>
<td></td>
<td>- <a href="http://openjdk.java.net/projects/jdk7/features/#f652">Swing JLayer component</a></td>
</tr>
<tr>
<td></td>
<td>- <a href="http://openjdk.java.net/projects/jdk7/features/#fa99999">Gervill sound synthesizer</a></td>
</tr>
<tr>
<td>9. <a href="http://openjdk.java.net/projects/jdk7/features/#web">web</a></td>
<td>- <a href="http://openjdk.java.net/projects/jdk7/features/#f568">Update the XML stack</a></td>
</tr>
<tr>
<td>10. <a href="http://openjdk.java.net/projects/jdk7/features/#mgmt">mgmt</a></td>
<td>- <a href="http://openjdk.java.net/projects/jdk7/features/#fa530068">Enhanced MBeans</a></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>Full feature set is available <a href="http://openjdk.java.net/projects/jdk7/features/" target="_blank">here</a>, you also checkout other <a href="http://geeknizer.com/java-7-whats-new-performance-benchmark-1-5-1-6-1-7/">features that were included to Java 7</a> a while ago.</p>
<p><strong>Dynamic Language Performance Boost</strong></p>
<p>Java 7 gets a new <a title="Feature" href="http://jcp.org/en/jsr/detail?id=292" target="_blank">InvokeDynamic</a> feature, enhancing the support for dynamic languages such as Ruby, Python and JavaScript to run on the Java Virtual Machine (JVM). InvokeDynamic is responsible for making these languages trun at a much faster speeds on top of JVM.</p>
<p>The JVM was obviously designed for Java, and all the invocation modes are organised around Java semantics, however, low-level support and a stronger under girding for other language features has now been officially added to JVM.</p>
<p><strong>API for Parallel Programming / Multicore programming</strong></p>
<p>Java Development Kit (JDK) 7 also features a new API for parallel programming or building applications for multicore systems. The new Fork/Join Framework enables developers to break down problems into subtasks that can be executed in parallel across a number of processors.</p>
<p><strong>New I/O optimized for different Filesystems</strong></p>
<p>Java 7 adds a new I/O for working with different file systems, new networking and security features, and backward compatibility with other versions of the platform.</p>
<p>We write latest and greatest in <a href="http://geeknizer.com/tag/guide">Tech Guides</a>, <a href="http://geeknizer.com/tag/apple">Apple</a>, <a href="http://geeknizer.com/tag/iphone">iPhone</a>, <a href="http://geeknizer.com/tag/tablet">Tablets</a>, <a href="http://geeknizer.com/tag/android">Android</a>,  <a href="http://geeknizer.com/tag/open-source">Open Source</a>, Latest in Tech, subscribe to us<a href="http://twitter.com/taranfx">@taranfx on Twitter</a> OR on <a href="http://facebook.com/taranfx">Facebook Fanpage</a>:</p>
]]></content:encoded>
			<wfw:commentRss>http://geeknizer.com/java-7-features-whats-new/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Father of Java Joins Google</title>
		<link>http://geeknizer.com/father-of-java-joins-google/</link>
		<comments>http://geeknizer.com/father-of-java-joins-google/#comments</comments>
		<pubDate>Mon, 28 Mar 2011 16:40:27 +0000</pubDate>
		<dc:creator>Tarandeep Singh</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://geeknizer.com/father-of-java-joins-google</guid>
		<description><![CDATA[If you love Java or Open source, here is a good news for you. James Gosling aka Father of Java, has joined Google and you will be glad to know... <span class="meta-more"><a href="http://geeknizer.com/father-of-java-joins-google/">Read more &#187;</a></span>]]></description>
			<content:encoded><![CDATA[<p><a href="http://geeknizer.com/wp-content/uploads/james-gosling_java1.jpg"><img class="alignleft size-full wp-image-7329" title="james-gosling_java" src="http://geeknizer.com/wp-content/uploads/james-gosling_java1.jpg" alt="" width="180" height="153" /></a>If you love Java or <a href="http://geeknizer.com/tag/open-source" target="_blank">Open source</a>, here is a good news for you. James Gosling aka <a href="http://geeknizer.com/father-of-java-resigns">Father of Java</a>, has joined Google and you will be glad to know that he would be again driving core of the Java &amp; open source technologies from a company that already loves Openness more than anyone else.</p>
<p>James Gosling, previously an employee of Sun Microsystems, had <a href="http://geeknizer.com/father-of-java-resigns">left Oracle</a> as he thought staying with the company wasn&#8217;t good for him or the industry.</p>
<p><a href="http://nighthacks.com/roller/jag/entry/next_step_on_the_road">Gosling announced his new job at Google</a> &#8220;I don&#8217;t know what I&#8217;ll be working on. I expect it&#8217;ll be a bit of everything, seasoned with a large dose of grumpy curmudgeon,&#8221; he said.</p>
<p>Oracle&#8217;s ways evidently didn&#8217;t agree with Gosling. He called Oracle Chief Executive Larry Ellison &#8220;<a href="http://nighthacks.com/roller/jag/entry/cynical_chuckles" target="_blank">Larry, Prince of Darkness</a>.&#8221; And, he said, &#8220;During the integration meetings between Sun and <a href="http://geeknizer.com/tag/oracle" target="_blank">Oracle</a>, where we were being grilled about the patent situation between Sun and Google, we could see the Oracle lawyer&#8217;s eyes sparkle.&#8221; It was definitely against the ethical limits of Sun or Gosling. Suing is the last part Sun thought about.</p>
<p>Google had been sued by Oracle over Java patents in Android, Gosling being a true Open source professional punched Larry Ellison&#8217;s face by joining Google. Gosling&#8217;s choice was obvious since it has the same research-intensive practices that built Sun, but only more successful. And unlike Sun, Google has managed to become famous for endorsing &#8216;Open&#8217;.</p>
<p><a href="http://geeknizer.com/wp-content/uploads/ellison.jpg"><img class="alignright size-full wp-image-7330" title="ellison" src="http://geeknizer.com/wp-content/uploads/ellison.jpg" alt="" width="200" height="237" /></a></p>
<p>Over the last year, he was all on his own and now after a year he claims that &#8220;One of the toughest things about life is making choices. I had a hard time saying &#8216;no&#8217; to a bunch of other excellent possibilities.&#8221;</p>
<p>Outside of Oracle, Google is the no. 1 contributor for <a href="http://geeknizer.com/tag/java" target="_blank">Java</a> and Open source standards. With Gosling on the board, the internet giant is bound to make things better.</p>
<p>We write about <a href="http://geeknizer.com/tag/open-source">Open Source</a>, <a href="http://geeknizer.com/tag/programming">Programming</a>, <a href="http://geeknizer.com/tag/java">Java</a>, Latest Tech news as they happen, get them<a href="http://twitter.com/taranfx"><strong>@taranfx</strong> on Twitter</a> or <a href="http://facebook.com/taranfx" target="_blank">Facebook Fanpage</a> or subscribe below:</p>
]]></content:encoded>
			<wfw:commentRss>http://geeknizer.com/father-of-java-joins-google/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>HowTo Decompile / Reverse Engineer Android APK [app]</title>
		<link>http://geeknizer.com/decompile-reverse-engineer-android-apk/</link>
		<comments>http://geeknizer.com/decompile-reverse-engineer-android-apk/#comments</comments>
		<pubDate>Sat, 05 Mar 2011 20:05:18 +0000</pubDate>
		<dc:creator>Tarandeep Singh</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://geeknizer.com/decompile-reverse-engineer-android-apk</guid>
		<description><![CDATA[Reverse engineering is everywhere. Reverse engineering made it possible for GeoHot to hack the iPhone, PS3. Reverse engineering is what make hackers develop exploits, viruses and trojans for systems. So... <span class="meta-more"><a href="http://geeknizer.com/decompile-reverse-engineer-android-apk/">Read more &#187;</a></span>]]></description>
			<content:encoded><![CDATA[<p><a href="http://geeknizer.com/wp-content/uploads/decompile-android-apk.jpg"><img class="alignleft size-full wp-image-7188" title="decompile-android-apk" src="http://geeknizer.com/wp-content/uploads/decompile-android-apk.jpg" alt="" width="200" height="208" /></a>Reverse engineering is everywhere. Reverse engineering made it possible for GeoHot to hack the iPhone, PS3. Reverse engineering is what make hackers develop exploits, viruses and trojans for systems. So what about decompiling existing apps.</p>
<p>Decompiling binaries for Java and other languages has been around for a long while. There are large number of tools that let you decompile app binaries back to the source code which in most cases is readable and understandable with some effort.</p>
<p><a href="http://forum.xda-developers.com/member.php?u=1922851" target="_blank">XdaDeveloper</a> Brut.all has been working on a decompiler for Android apps for a while now. He had find the first workaround for enabling Google Maps Navigation outside US by actually decompiling Google maps for android. The tools is called <a href="http://code.google.com/p/android-apktool/" target="_blank">APKTool</a> and is obviously <a href="http://code.google.com/p/android-apktool/source/checkout" target="_blank">open source</a>.</p>
<p><strong>Method 2:</strong> Alternatively, you can use a tool called <a href="http://code.google.com/p/dex2jar/">dex2jar</a> ,which is made by a chinese student. It will translate dex to jar file. For the next step, you can use <a href="http://java.decompiler.free.fr/?q=jdgui">jd-gui</a>, the source code is quite readable as dex2jar makes some optimizations.</p>
<p><strong>Method 3: </strong>Another Option is to use Smali (<a href="http://code.google.com/p/smali/">http://code.google.com/p/smali/</a>). It provides BAKSMALI which is a most excellent reverse-engineering tool for DEX files. The tool is made by JesusFreke, he&#8217;s famous for making popular ROMs for Android.</p>
<p><strong>Method 4</strong>: Android comes with a dissambler called dexdump. The location of this tool is not intuitive, it runs on the Linux platform that hosts Android. Details <a href="http://mylifewithandroid.blogspot.com/2009/01/disassembling-dex-files.html" target="_blank">here</a>.</p>
<p>Lets talk about <strong>APKTool</strong> in detail since its more popular:</p>
<blockquote><p>It is a tool for reengineering 3rd party, closed, binary Android apps. It can decode resources to nearly original form and rebuild them after making some modifications; it makes possible to debug smali code step by step. Also it makes working with app easier because of project-like files structure and automation of some repetitive tasks like building apk, etc.</p>
<p>It is NOT intended for piracy and other non-legal uses. It could be used for localizing, adding some features or support for custom platforms and other GOOD purposes. Just try to be fair with authors of an app, that you use and probably like.</p>
<p><strong>Features</strong>:</p>
<ul>
<li>decoding resources to nearly original form (including resources.arsc, XMLs and 9.png files) and rebuilding them</li>
<li>smali debugging: <a href="http://code.google.com/p/android-apktool/wiki/SmaliDebugging">SmaliDebugging</a></li>
<li>helping with some repetitive tasks</li>
</ul>
</blockquote>
<p><strong>Pre-requisites:</strong></p>
<ul>
<li>JRE 1.5+</li>
<li>aapt command in PATH environment variable</li>
<li>Basics of Android SDK</li>
</ul>
<p><strong> </strong></p>
<p><strong>How to Install APKTool </strong></p>
<p>Windows:</p>
<ol>
<li>Download apktool-install-windows-<tt>*</tt> file</li>
<li>Download apktool-<tt>*</tt> file</li>
<li>Unpack both to your Windows directory</li>
</ol>
<p>Linux:</p>
<ol>
<li>Download apktool-install-linux-<tt>*</tt> file</li>
<li>Download apktool-<tt>*</tt> file</li>
<li>Unpack both to /usr/local/bin directory (you must have root permissions)</li>
</ol>
<p>Mac OS X:</p>
<ol>
<li>Download apktool-install-macos-<tt>*</tt> file</li>
<li>Download apktool-<tt>*</tt> file</li>
<li>Unpack both to /usr/local/bin directory (you must have root permissions)</li>
</ol>
<p><strong>Installation of framework files</strong></p>
<ul>
<li>See <a href="http://code.google.com/p/android-apktool/wiki/FrameworkFiles">FrameworkFiles</a></li>
</ul>
<p><strong>Usage</strong>:</p>
<ul>
<li>Open terminal/command line and type &#8220;apktool <tt>&lt;</tt>enter<tt>&gt;</tt>&#8220;. Then you should see usage help.</li>
</ul>
<p><strong>Video Tutorials:</strong></p>
<p><object style="height: 390px; width: 640px;" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100" height="100" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://www.youtube.com/v/QlaFHNC1DIs?version=3" /><param name="allowfullscreen" value="true" /><embed style="height: 390px; width: 640px;" type="application/x-shockwave-flash" width="100" height="100" src="http://www.youtube.com/v/QlaFHNC1DIs?version=3" allowscriptaccess="always" allowfullscreen="true"></embed></object><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="390" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://www.youtube.com/v/YgWd0jsDtH0&amp;hl=en_US&amp;feature=player_embedded&amp;version=3" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="640" height="390" src="http://www.youtube.com/v/YgWd0jsDtH0&amp;hl=en_US&amp;feature=player_embedded&amp;version=3" allowscriptaccess="always" allowfullscreen="true"></embed></object><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="390" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://www.youtube.com/v/X1BWaQq1O0Q&amp;hl=en_US&amp;feature=player_embedded&amp;version=3" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="640" height="390" src="http://www.youtube.com/v/X1BWaQq1O0Q&amp;hl=en_US&amp;feature=player_embedded&amp;version=3" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><em>Update: A new Tool:</em> <strong><a href="http://www.androidng.com/how-to-modify-android-apk" target="_blank">How to Modify Android APK file [APK Edit]</a></strong><br />
For more <a href="http://geeknizer.com/tag/android">Android</a>, <a href="http://geeknizer.com/tag/app">apps</a>, <a href="http://geeknizer.com/tag/tips-n-tricks">Tips n Tricks</a>, <a href="http://geeknizer.com/tag/android">Android</a>, <a href="http://geeknizer.com/tag/gaming">Gaming</a>, Tech News, catch us <a href="http://twitter.com/taranfx"><strong>@taranfx </strong>on Twitter</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://geeknizer.com/decompile-reverse-engineer-android-apk/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Java JDK 7 marks Feature Complete</title>
		<link>http://geeknizer.com/java-jdk-7-feature-complete/</link>
		<comments>http://geeknizer.com/java-jdk-7-feature-complete/#comments</comments>
		<pubDate>Tue, 18 Jan 2011 15:22:24 +0000</pubDate>
		<dc:creator>Tarandeep Singh</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[jdk7]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://geeknizer.com/java-jdk-7-feature-complete</guid>
		<description><![CDATA[Java 7 is just around the corner with JDK 7 project  reaching the &#8220;Feature Complete (FC)&#8221; phase of software development cycle. What this means that development and QA have finished... <span class="meta-more"><a href="http://geeknizer.com/java-jdk-7-feature-complete/">Read more &#187;</a></span>]]></description>
			<content:encoded><![CDATA[<p><a href="http://geeknizer.com/wp-content/uploads/java7.jpg"><img class="alignleft size-full wp-image-6832" title="java7" src="http://geeknizer.com/wp-content/uploads/java7.jpg" alt="" width="230" height="218" /></a>Java 7 is just around the corner with JDK 7 project  reaching the &#8220;Feature Complete (FC)&#8221; phase of software development cycle.</p>
<p>What this means that development and QA have finished all the planned feature and test development work in the release. Up next, they will be testing and bug fixing on all supported JDK 7 platforms. This is a major step towards JDK 7 General Availability (GA).</p>
<p>Java 7 has been delayed several times, as per the last schedule, it was suppose to go FC on 12/16.</p>
<p>The FC milestone allows for exceptions to be integrated later. Such new features would come from updated JAXP/JAXB/JAX-WS and integration of the <a href="http://openjdk.java.net/projects/jdk7/features/#f530073">enhanced JMX agent from JRockit</a>. However, these won&#8217;t affect the current Roadmap.</p>
<p>However, the factor that can delay JDK7 further would be introduction of modifications in JSRs which are controlled by Expert Groups for the JSRs 203, 292, 334, 336.</p>
<p>Related: <a href="http://geeknizer.com/java-7-whats-new-performance-benchmark-1-5-1-6-1-7">Java 7 What`s New, Performance <strong>Benchmark</strong> 1.5 1.6 1.7</a></p>
<p><strong>Java JDK 7 Features:</strong></p>
<p>Features are listed in order, more or less, from lowest to highest in the overall <strong>JDK  software stack</strong>.</p>
<ul>
<li><a href="http://openjdk.java.net/projects/jdk7/features/#vm">vm</a> &#8211; <a href="http://openjdk.java.net/projects/jdk7/features/#f353">JSR 292: Support for dynamically-typed languages (InvokeDynamic)</a>, <a href="http://openjdk.java.net/projects/jdk7/features/#fa535991">Strict class-file checking</a> [NEW]</li>
<li><a href="http://openjdk.java.net/projects/jdk7/features/#lang">lang</a> &#8211; <a href="http://openjdk.java.net/projects/jdk7/features/#f618">JSR 334: Small language enhancements (Project Coin)</a></li>
<li><a href="http://openjdk.java.net/projects/jdk7/features/#core">core</a> &#8211; <a href="http://openjdk.java.net/projects/jdk7/features/#f352">Upgrade class-loader architecture</a> , <a href="http://openjdk.java.net/projects/jdk7/features/#f584">Method to close a URLClassLoader</a>, <a href="http://openjdk.java.net/projects/jdk7/features/#f515">Concurrency and collections updates (jsr166y)</a></li>
<li><a href="http://openjdk.java.net/projects/jdk7/features/#i18n">i18n</a> &#8211; <a href="http://openjdk.java.net/projects/jdk7/features/#f497">Unicode 6.0</a>, <a href="http://openjdk.java.net/projects/jdk7/features/#fa535895">Locale enhancement</a>, <a href="http://openjdk.java.net/projects/jdk7/features/#fa538265">Separate user locale and user-interface locale</a></li>
<li><a href="http://openjdk.java.net/projects/jdk7/features/#ionet">ionet</a> &#8211; <a href="http://openjdk.java.net/projects/jdk7/features/#f250">JSR 203: More new I/O APIs for the Java platform (NIO.2)</a> , <a href="http://openjdk.java.net/projects/jdk7/features/#fa537814">NIO.2 filesystem provider for zip/jar archives</a>, <a href="http://openjdk.java.net/projects/jdk7/features/#f405">SCTP (Stream Control Transmission Protocol)</a>, <a href="http://openjdk.java.net/projects/jdk7/features/#f639">SDP (Sockets Direct Protocol)</a>, <a href="http://openjdk.java.net/projects/jdk7/features/#fa535996">Use the Windows Vista IPv6 stack</a>, <a href="http://openjdk.java.net/projects/jdk7/features/#fa534339">TLS 1.2</a></li>
<li><a href="http://openjdk.java.net/projects/jdk7/features/#sec">sec</a> &#8211; <a href="http://openjdk.java.net/projects/jdk7/features/#f73">Elliptic-curve cryptography (ECC)</a></li>
<li><a href="http://openjdk.java.net/projects/jdk7/features/#jdbc">jdbc</a> &#8211; <a href="http://openjdk.java.net/projects/jdk7/features/#fa539110">JDBC 4.1</a></li>
<li><a href="http://openjdk.java.net/projects/jdk7/features/#client">client</a> &#8211; <a href="http://openjdk.java.net/projects/jdk7/features/#f653">XRender pipeline for Java 2D</a>, <a href="http://openjdk.java.net/projects/jdk7/features/#f650">Create new platform APIs for 6u10 graphics features</a>, <a href="http://openjdk.java.net/projects/jdk7/features/#f244">Nimbus look-and-feel for Swing</a>, <a href="http://openjdk.java.net/projects/jdk7/features/#f652">Swing JLayer component</a></li>
<li><a href="http://openjdk.java.net/projects/jdk7/features/#web">web</a> &#8211; <a href="http://openjdk.java.net/projects/jdk7/features/#f568">Update the XML stack</a></li>
<li><a href="http://openjdk.java.net/projects/jdk7/features/#mgmt">mgmt</a> &#8211; <a href="http://openjdk.java.net/projects/jdk7/features/#f530073">Enhanced JMX Agent and MBeans</a> [NEW]</li>
</ul>
<p>For Latest Tech updates in <a href="http://geeknizer.com/tag/open-source">Open Source</a>, <a href="http://geeknizer.com/tag/programming">Programming</a>, <a href="http://geeknizer.com/tag/java">Java</a>, Tech News find us on <a>Twitter <strong>@taranfx</strong></a><strong> </strong>or subscribe below:</p>
]]></content:encoded>
			<wfw:commentRss>http://geeknizer.com/java-jdk-7-feature-complete/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java would Run inside Javascript runtime Environment (besides JVM)</title>
		<link>http://geeknizer.com/java-javascript-runtime-environment/</link>
		<comments>http://geeknizer.com/java-javascript-runtime-environment/#comments</comments>
		<pubDate>Tue, 14 Dec 2010 15:29:57 +0000</pubDate>
		<dc:creator>Tarandeep Singh</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://geeknizer.com/java-javascript-runtime-environment</guid>
		<description><![CDATA[VP of Java development at Oracle has hinted that the Java 7 is taking shape and could get its public stable release within coming months. There were couple of other... <span class="meta-more"><a href="http://geeknizer.com/java-javascript-runtime-environment/">Read more &#187;</a></span>]]></description>
			<content:encoded><![CDATA[<p><a href="http://geeknizer.com/wp-content/uploads/Java-duke.jpg"><img class="alignleft size-full wp-image-6480" title="Java-duke" src="http://geeknizer.com/wp-content/uploads/Java-duke.jpg" alt="" width="200" height="235" /></a>VP of Java development at Oracle has hinted that the <a href="http://geeknizer.com/java-7-whats-new-performance-benchmark-1-5-1-6-1-7">Java 7</a> is taking shape and could get its public stable release within coming months. There were <a href="http://blogs.sun.com/javaspotlight/entry/java_spotlight_podcast_7_adam">couple of other announcements</a> (which can be <a href="http://kenai.com/downloads/javaspotlight/JavaSpotlight007.mp3" target="_blank">heard on this Podcast</a>, <a href="http://blogs.sun.com/javaspotlight/resource/episode-007.html" target="_blank">transcript here</a>), but the interest has risen towards the <a href="http://geeknizer.com/james-gosling-future-of-java">Future of Java</a>, &#8220;We have a strategy to run Java inside a Javascript environment&#8221; said Adam Messinger.</p>
<blockquote><p><cite>Roger:</cite> One last question here. What’s Oracle going to do to make Java successful on the desktop?</p>
<p><cite>Adam:</cite> &#8230; <a href="http://geeknizer.com/why-choose-javafx-how-to-code-benchmark-graphics-cpu-memory">JavaFX</a> bla bla … another way is <strong>this strategy we have around running Java inside of a JavaScript environment</strong>. So there the programming language is Java, but the platform is <strong>not a JVM </strong>platform.</p>
<p>This is a little bit of a scary thing, honestly, for Oracle, because while the language is something we know and love, a lot of the value we have comes from the stack underneath the JVM, the library, and so on and so forth.</p>
<p>But we think it’s something that we need to do for the community so we can<strong> make Java available more places</strong> from tablet devices like the iPad where there is not an easy way to get Java there today, to desktops where, while there are applets, some people choose not to use applets, and we want a solution that works there.</p></blockquote>
<p>Clearly, Oracle is working on a way to use Javascript as a runtime environment for Java byte code. To be more precise, they are moving along the lines of Orto (a ptorotype of implementation of the JVM in Javascript) which would allow one to cross-compile existing Java libraries to Javascript – a far more interesting prospect as it would make Java truly portable, going beyond restrictions of the platform. However, its much harder to get around access to hardware, OS features via javascript in brwosers like Chrome, Firefox.</p>
<p>However, this could become an interesting topic altogether as world moves towards hardware accelerated (and faster) browsers like Chrome. I can foresee how Chrome OS (&amp; chrome browsers) could take speed advantage using <a href="http://code.google.com/p/nativeclient/wiki/NativeClientInGoogleChrome" target="_blank">Native compilation (NaCl)</a> to run Java byte code, as fast as the native JVM code, right inside the javascript embedded in web pages.</p>
<p>We write latest and greatest in <a href="http://geeknizer.com/tag/google">Google</a>, <a href="http://geeknizer.com/tag/guide">Tech Guides</a>, <a href="http://geeknizer.com/tag/apple">Apple</a>, <a href="http://geeknizer.com/tag/iphone">iPhone</a>,<a href="http://geeknizer.com/tag/tablet">Tablets</a>, <a href="http://geeknizer.com/tag/android">Android</a>, <a href="http://geeknizer.com/tag/open-source">Open Source</a>, Latest in Tech, subscribe to us<a href="http://twitter.com/taranfx"><strong>@taranfx </strong>on Twitter</a> OR:</p>
]]></content:encoded>
			<wfw:commentRss>http://geeknizer.com/java-javascript-runtime-environment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>James Gosling &#8211; Future of Java, His Life Story [Podcast]</title>
		<link>http://geeknizer.com/james-gosling-future-of-java/</link>
		<comments>http://geeknizer.com/james-gosling-future-of-java/#comments</comments>
		<pubDate>Wed, 29 Sep 2010 15:27:56 +0000</pubDate>
		<dc:creator>Tarandeep Singh</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[future]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://geeknizer.com/james-gosling-future-of-java</guid>
		<description><![CDATA[Oracle&#8217;s Java  One is just over, and there&#8217;s hardly any buzz about it. Is Java really Dead? o, No not even near, its still growing. After moving on from Oracle... <span class="meta-more"><a href="http://geeknizer.com/james-gosling-future-of-java/">Read more &#187;</a></span>]]></description>
			<content:encoded><![CDATA[<p><a href="http://geeknizer.com/wp-content/uploads/james-gosling_java.jpg"><img class="alignleft size-full wp-image-5936" title="james-gosling_java" src="http://geeknizer.com/wp-content/uploads/james-gosling_java.jpg" alt="" width="245" height="275" /></a>Oracle&#8217;s Java  One is just over, and there&#8217;s hardly any buzz about it. Is Java really Dead? o, No not even near, its still growing.</p>
<p>After <a href="http://geeknizer.com/father-of-java-resignshttp://geeknizer.com/father-of-java-resigns">moving on from Oracle to Google</a>, he had been silent on Java&#8217;s progress.  Folks at <a href="http://basementcoders.com/?p=721" target="_blank">Basementcoders</a> got a chance for an exclusive Interview with James Gosling, right after Java One. The <a href="http://media.techtarget.com/TheServerSideCOM/downloads/James_Gosling_Interview.mp3" target="_blank">full audio podcast</a> is available but the background noise  overtakes the listening pleasure.</p>
<p><script type="text/javascript">// <![CDATA[
			AudioPlayer.embed("pod_audio_1", {soundFile: "http%3A%2F%2Fmedia.techtarget.com%2FTheServerSideCOM%2Fdownloads%2FJames_Gosling_Interview.mp3"});
// ]]&gt;</script></p>
<p>Here is the full Transcription of the Podcast:</p>
<blockquote><p><strong>Moderator</strong>: All right, and we&#8217;re back. We&#8217;ve got a very special episode this time around. We have James Gosling, father of Java, thanks very much for doing a podcast with us.</p>
<p><strong>James Gosling</strong>: Well, thanks for inviting me.</p>
<p><strong>Moderator</strong>: Alright, well, maybe you can just start with kind of how did you started out? You know, where did you grow up, where did you go to school, and then how did your career take you to this point?</p>
<p><strong>James Gosling</strong>: I don&#8217;t know I mean, the whole life story in 25 words or less?. I&#8217;m Canadian, went to the University of Calgary (4:25), graduated from there then went to Carnegie Mellon; got a PhD there.</p>
<p><strong>Moderator</strong>: Did you grow up in Calgary then?</p>
<p><strong>James Gosling</strong>: Yeah, I grew up in Calgary, I lived there until I was 22, then I went off to get a PhD in Pittsburgh in computer science, and I ended up with a Master&#8217;s as well from CMU and did a wide variety of consulting jobs and then moved on to some bigger jobs. I eventually graduated in &#8217;83. Went to work for IBM which is, you know, is within the top 10 of my stupidist career decisions I&#8217;ve made (5:20) –</p>
<p><strong>Moderator</strong>: (Laughing) I want to shake this guys&#8217; hand! Because I made that same mistake myself. But don&#8217;t tell me you actually wore a Blue Suit</p>
<p><strong>James Gosling</strong>: Oh no, but I did log way too many frequent flier miles and ended up working on this project that had people in San Jose California, Austin Texas and [inaudible] Connecticut; and my office officially was in NY even though I lived in Pittsburgh. So I kind of actually lived on an airplane. But yeah, the stint at IBM lasted a year, year and a half. You know, at which point, I mean the funny thing is that when I went to go join IBM I actually had another sort of offer so I had actually had lunch with Andy Bechtolsheim the day he signed the papers with Scott [McNealy[ and Vinod [Khosia] to create Sun, and so he was actually trying to join Sun at the same time, and I would&#8217;ve been like employee number 4 or 5 or something.</p>
<p>I just said, &#8220;Andy you&#8217;re a nutcase. You&#8217;re trying to do this with these Motorola chips that suck, and IBM&#8217;s got these great chips, they will kill you.&#8221; And yes, the IBM had CPU&#8217;s that were way better than the Motorolla stuff, but all of IBM&#8217;s guns were pointed at themselves so my year and a half working at IBM was more about understanding how the Marx brothers really worked. (All Laughing) And so then you know, they were hammering on me pretty regularly to join Sun and eventually I gave in and so I went to work at Sun the day before and now here we are.</p>
<p><strong>Moderator</strong>: Right. Well, I brought this up to you when we saw you at the Thirsty Bear it&#8217;s kinda funny how we approached you because I&#8217;m the kind of guy where I don&#8217;t know if it&#8217;s my Canadianess but I don&#8217;t like to intrude on people&#8217;s personal space, but I wasn&#8217;t necessarily thinking oh, we can get him to do our podcast. So what we did was we actually got a few of the guys live to come up to you.</p>
<p><strong>James Gosling</strong>: And they clearly weren&#8217;t quite sure what they were doing or why they had been put up to something.</p>
<p><strong>Moderator</strong>: but you just pulled out your phone right away and were like &#8220;Yeah, what time works for you? I&#8217;m good on Tuesday.&#8221;, and well, now here we are, and that is just great. So this is another Canadian thing, you got the order of Canada did you not?</p>
<p><strong>James Gosling</strong>: I did, I did. So if only Canada were Britian, I&#8217;d be Sir James. But Canada doesn&#8217;t do the &#8216;Sir&#8217; thing, so I escaped that particular indignity.</p>
<p><strong>Moderator</strong>: That&#8217;s great that somebody doing the order of Canada nominations actually knew what Java was and your contributions to it. So what kind of perks does that give you in Canada?</p>
<p><strong>Moderator</strong>: You get to meet the Govener General.</p>
<p><strong>James Gosling</strong>: Yeah I got to meet the Governor General, that was probably the most of it. You end up with a really cool medal.</p>
<p><strong>Moderator</strong>: That&#8217;s the sum total of it?</p>
<p><strong>Moderator</strong>: And the studliness going into the bar with the ladies of course</p>
<p><strong>Moderator</strong>: (in reference to the medal) yeah, you got the &#8220;bling&#8221; on (laughs)</p>
<p><strong>James Gosling</strong>: (lauging) Oh yeah. And the funny part of it was that I ended up with my face all over the newspapers in Canada, even though there were several people that got the Order of Canada at the same time, but when the governor general, she&#8217;s kind of short, so when she lifted the thing that goes over my head I kind of like crouched down and I did kind of a funny thing and it made her just howl. She just broke out laughing so she had this great laughing expression on her face, so all the newspapers selected that picture based on her expression.</p>
<p>10:38 <strong>Moderator</strong>: Now was Java a strategic thing for Sun or was it an experiment? Like was it a &#8220;lets do what we can, lets try a few things&#8221;</p>
<p><strong>James Gosling</strong>: I&#8217;d call it a strategic experiment. And it actually worked out in a direction</p>
<p>10:38 <strong>Moderator</strong>: That worked out.</p>
<p><strong>James Gosling</strong>: That was sort of unexpected. So at the beginning, a group of disgruntled Sun engineers (11:07) were missing the boat on X, Y and Z. We liked to go out and just think about stuff. And we had a list of things that we felt we were missing the boat on and Scott sort of went, yeah, that makes sense. So we went off and we sort of did this thing called the Green Project.  The only thing that survived in the Green Project was the bit that I did which was the software development environment stuff. But we built this really neat little hand held and that was in 1992 when the state of the art for hardware to build that kind of stuff was pretty shaky. But compared to the other stuff we&#8217;d built it was extraordinarily cool for the day.</p>
<p><strong>Moderator</strong>: What did it do?</p>
<p>12:30 <strong>James Gosling</strong>: It had an LCD touch screen, a fairly wicked processor on it. It had a very early version of 802.11. The 802.11 spec wasn&#8217;t even out yet. It was actually like one of these really funky military radios.</p>
<p><strong>Moderator</strong>: Sounds like a Sun SPARC.</p>
<p><strong>James Gosling</strong>: No, it was actually a microSPARC. It was a microSPARC CPU and we actually ran Solaris. That&#8217;s one of the things that I sure wish we had kept on, and one of the odd twists of fate is that some of the folks who did that hardware for that handheld for Sun&#8230;</p>
<p><strong>Moderator</strong>: I&#8217;m actually not familiar with that, is it Sun SPARC? Or you mean the actual machines?</p>
<p><strong>James Gosling</strong>: Yeah, the CPU, the SPARC – we had started doing these microSPARCs, very low-powered, very small. But a couple of the engineers that had built that phone were deeply involved in the iPad. So in an odd sort of twist of fate, the iPad is kind of an evolution of it. But yeah, so we had at the time been concerned about what was going down in the consumer space, what was going on in the desktop. CPUs were showing up in all these surprising things that most people in the computer world were just ignoring.</p>
<p><strong>Moderator</strong>: It was all about big racks servers right?</p>
<p><strong>James Gosling</strong>: Well at that point, the big rack servers were different from the big racks today, but by the time that &#8217;95 rolled around there was this huge industry-wide problem with Microsoft and so the strategic reasoning and focus shifted from the boat that we were missing over here to the huge attack we were getting over there and various folks realized that this one corner we had used, we could actually repurpose it when dealing with the Microsoft threat. And that was the whole Java launch, getting people like IBM and Oracle to sign on and support it. It was a very strategic thing for Sun in &#8217;95 when we launched it, but it was also a strategic thing in &#8217;92 when we started the experiment. It was just sort of strategic in different directions.</p>
<p><strong>Moderator</strong>: Well, you talk about strategy, so as Craig had said, we&#8217;re all contributors to the Java community and I think all of us have made a career off of Java and our contributions. I work closely with Apache and commit to several projects, I pretty much put my whole career on it. And this big acquisition came and there were a lot of questions as to where is it gonna go? Where is Java gonna go? It&#8217;s no secret, and if you can&#8217;t answer anything feel free not to. Feel free to speak your mind here. The whole &#8220;Free Java&#8221;. We get it. Especially me coming from the Apache side, I&#8217;m not speaking for Apache, but I work closely with the JCP and JSRs and I know that there&#8217;s been a lot of stress so-to-speak. The acquisition came, there&#8217;s a lot of fear and mistrust in the community, we noticed you left. And we noticed your pretty cool t-shirts you&#8217;ve got there. (James is wearing a t-shirt depicting Larry Ellison&#8217;s face on a TV screen, with Java&#8217;s mascot Duke throwing a hammer at it like in the old Apple 1984-esque commercials) So tell us about all that, tell us what your thoughts are and how does that ring into the way we feel as contributors to a lot of this open source software that we base our careers on. What are your thoughts on all that?</p>
<p><strong>James Gosling</strong>: Well, the tshirt had been kinda fun. I am yet to see anyone wear one.</p>
<p><strong>Moderator</strong>: (jokingly) yeah, we&#8217;ve been all &#8220;taken care of&#8221; by the Oracle employees already, that&#8217;s why you don&#8217;t see us wearing them.</p>
<p><strong>James Gosling</strong>: Various Oracle employees have been instructed not to wear them. I&#8217;ve noticed this is a great tshirt to wear in big crowds around here because the seas just parts, &#8216;cuz people are like, &#8216;I don&#8217;t want to be near that.&#8217; Which I find really funny. And the whole free java thing is kind of a weird history with me because Sun from day zero is an open source company and this whole weirdness that we have about open source was not a weirdness open source but a weirdness about the actors and the games in the drama. So when the start of the Java foundation thing happened in 2007 what we have to understand is that that was entirely orchestrated by Oracle. Oracle wrote that bizarre clause that went in that one set of meeting minutes, they wrote that. They went around to everyone in DC and said it is the sense of the executive committee that the Java community would be best served by the established new Java and Java foundation. And so if you&#8217;re an open source contributor, participant, that all sounds really good. And fundamentally we agreed with that. The problem was that A. it was driven by Oracle whose motives were more than slightly not what we wanted them to be, and they had strong-armed a bunch of people into signing in ways that made them uncomfortable. And some folks like IBM I mean, IBM&#8217;s been kind of weird on the whole topic because on the one hand they do everything they can to try and screw Sun over, I mean they didn&#8217;t name eclipse casually</p>
<p><strong>Moderator</strong>: I was surprised that they aren&#8217;t the ones that bought Sun</p>
<p><strong>James Gosling</strong>: Yeah I don&#8217;t know. The little bits I do know are, they were being very cagey about issues around anti-trust and that made them nervous and when the Sun&#8217;s board was controlled by an extremely small number of institution investors, and so it was the institution investors who were driving everything and sale had nothing to do with business or what would be good for employees or anything like that. It was totally a bunch of investment banks needing liquidity now and they were looking for the best terms and so how it all came down, I really don&#8217;t know. I&#8217;m deeply thankful I was not in those rooms at the time cause it&#8217;s not something that&#8217;s fun. But that&#8217;s just the way the world goes. But the whole thing around the Java Foundation three years ago it was really this whole snarky back room deal by Oracle and I have no illusions about Oracle ever actually living up to their words because this is Oracle we&#8217;re talking about but I find it deeply amusing, that they were deeply snarky about this three years ago but now that the shoe&#8217;s on the other foot (22:45) they go NO.</p>
<p><strong>Moderator</strong>: Well three years ago, they did not own Java.</p>
<p><strong>James Gosling</strong>: Well that&#8217;s right, hey didn&#8217;t own Java, but it just points out, and I don&#8217;t know how to say it other than to say they were lying, duplicitous shits three years ago and by their turnaround, they&#8217;re basically admitting that. Oracle is kind of a funny company because they take glory in that. They have no issues with being categorized that way. Some of their PR people might get a little uncomfortable with it, but up at the top, they deeply, deeply don&#8217;t give a shit.</p>
<p><strong>Moderator</strong>: Being developers and because we&#8217;ve all had so much invested in our careers and we saw the acquisition occur, we saw you exit which really scared everybody, everyone said wow! We&#8217;ve seen a lot of strong Oracle folks jumping ship, moving on, a lot of really good people contribute to the community and then we see this lawsuit coming down the pipeline, and everyone&#8217;s like, you just attacked probably one of the biggest contributors to the Java community, Google, what are you thinking? Now, that being said, Oracle&#8217;s got a great Android app you can download for JavaOne, and now I&#8217;m not getting that one? So what are your thoughts on that?</p>
<p><strong>James Gosling</strong>: With Oracle it doesn&#8217;t have to make sense, it just has to make money. And one of the important things for the community to remember is that Oracle is deeply, deeply dependent on the success of Java. It&#8217;s a really huge fraction of their business. All of their fast growing parts of their business are formerly based on it (25:30). So there are really serious limits on how weird they can get, and also, Oracle isn&#8217;t a monolith, it&#8217;s more monolithic than many companies because the O-pod micromanages things pretty severely but there are a lot of really good people at Oracle. And they know what the right thing to do is. And they may be constrained by business folks and the rest of this but there are a lot of people whose heart&#8217;s in the right place and they will do whatever they can to do the right thing</p>
<p><strong>Moderator</strong>: What are your thoughts on the lawsuit. The whole Google thing? What are your thoughts behind that?</p>
<p><strong>James Gosling</strong>: It&#8217;s all about money. There&#8217;s nothing else in there. At Sun we&#8217;d done an analysis and yeah, there&#8217;s a bunch of patents violated here.</p>
<p><strong>Moderator</strong>:Is it because of the encroachment on something like ME, JavaME (mobile edition) because now ME doesn&#8217;t really look that attractive with Android?</p>
<p><strong>James Gosling</strong>: It was just other patents being involved and that legal guys do these evaluations all the time, and we&#8217;ve been through a lot of patent cases and we really, really, really, really hated litigation. It&#8217;s a waste of time, it&#8217;s really expensive, it&#8217;s a PR nightmare when the other side is the universe&#8217;s lovechild it&#8217;s an especially large PR nightmare. (27:00) So the Google guys are being a little weird, but they&#8217;re also being a little good, so add up the balance, but the Oracle guys want a licensing opportunity.</p>
<p><strong>Moderator</strong>: So you think that&#8217;s what they&#8217;re going for? Trying to force a hand to make Google somehow pay up a license. Because here&#8217;s the fear, the fear is if they went after Google for that what are they gonna do with Apache for example? I mean in theory, there&#8217;s a lot of software like Harmony that&#8217;s being used quite significantly in the Android components Isn&#8217;t that the thing about open source?</p>
<p><strong>James Gosling</strong>: I think that&#8217;s really unlikely. I think that the licensing deals with Harmony are pretty tough. Whereas Google just sort of went (inaudible) and I&#8217;m fairly sure that the Oracle lawyers probably did their homework, Oracle hired good lawyers. And since Android is open source you look at the code – does the pattern match code in the patent?</p>
<p><strong>Moderator</strong>: Was it your blog about when the deal Sun and Oracle going through, the Oracle lawyer&#8217;s eyes lit up?</p>
<p><strong>James Gosling</strong>: yeah, that was my blog. And they really did. They were like, ooh. Because lawyers just like to make revenue. And I&#8217;m sure they were looking at the license fees they were getting from Microsoft. Microsoft .NET just smears over a huge pile of Sun patents. When they did the .NET design, they basically cut and pasted from the Java spec. The way that they did CLR, you know they swizzled the way the instruction set went but the way this thing really operated, they exercised essentially no creativity when coming up with .NET. They&#8217;ve done some things since then that have been kind of good but as part of the various court cases we ended up with this rather odd patent deal with them that involved them paying us fairly tasty amounts of money. And I&#8217;m sure that the lawyers looked at the Microsoft numbers and said, yeah I want that from Google</p>
<p><strong>Moderator</strong>: Ah. Now it makes sense.</p>
<p><strong>James Gosling</strong>: Yeah, and so that&#8217;s just a random guess that that would be their opening thought.</p>
<p><strong>Moderator</strong>: You think the case has merit? Legally speaking?</p>
<p><strong>James Gosling</strong>: I would guess that the Oracle lawyers did their homework. They almost, because they use open source, it&#8217;s really easy for the Oracle lawyers to go out and hire third-party experts to do the comparison. So they probably actually have a fairly solid case. I mean this is one of the reasons that hardware manufacturers often don&#8217;t open source their drivers. Because if they open source their drivers, then other hardware manufacturers will look at that and go, oh, well your hardware must stomp on this patent device.</p>
<p><strong>Moderator</strong>: Ah, that&#8217;s interesting.</p>
<p><strong>James Gosling</strong>: I&#8217;ve had more than on hardware manufacturer tell me that.</p>
<p><strong>Moderator</strong>: That&#8217;s interesting. Now, your T-shirts &#8220;Set Java free&#8221; there&#8217;s a vendor who got in trouble for putting out these really cool shirts in the vendor center and on the back it says &#8220;Java, Just Free It&#8221; And Oracle came in and said no, you&#8217;re not giving those away so a few people went around there and kinda under the table were able to obtain them. We saw a lot of people do that. So obviously they&#8217;re very sensitive about it. Tell us about that initiative and what you want to see through Java.</p>
<p><strong>James Gosling</strong>:  I think it&#8217;s really funny how sensitive the Oracle guys are and the lengths they&#8217;ve gone to suppress any of this stuff. The fact Oracle employees have been told not to talk to me is really funny. And of course that hasn&#8217;t stopped them from talking to me. They walk up to me and say &#8220;I&#8217;m not allowed to talk to you, but this is the latest stupid thing they&#8217;ve done.&#8221; And what should happen going forward, it needs responsible stewardship. I&#8217;m actually perfectly happy with Oracle continuing as long as they act responsibly towards the community, and there have been recent incidents where they have not done that</p>
<p>And there have been a variety of things like OpenSolaris. OpenSolaris was simply a cluster-fuck for the community. It was just horrible. And the stuff they did around things like OpenSSO and the identity management things was just horrible. I think they&#8217;re much less likely to do that to Java, but it&#8217;s going to require the community to keep up the pressure. And creating a foundation. That could be good. It could be a nightmare. I mean the computer industry has a history of foundations and some of them work out well. I think the average one has just turned into a political nightmare. Things like the OSF and that were just not good.</p>
<p><strong>Moderator</strong>: Are they still around?</p>
<p><strong>James Gosling</strong>: Yeah, they&#8217;re still around, but one of the problems with a foundation like that is that you set them up as the people that handle the engineering, and they you&#8217;ve got a bunch of companies that contribute to it. They&#8217;ll do that while it&#8217;s politically expedient, and then it just sort of goes away, and there&#8217;s just kinda nobody whose life is on the line for any of it. So, at some level I don&#8217;t care what direction it goes so long as the community is well served. And oracle could do that.</p>
<p>You know, in my little &#8220;Free Java&#8221; creative campaign, I have no illusion, but it&#8217;s all about just letting them know that we&#8217;re paying attention.</p>
<p><strong>Moderator</strong>: Have they tapped on your door legally in any sense? Saying &#8220;Watch what you are saying&#8221;</p>
<p><strong>James Gosling</strong>: No, there&#8217;s nothing they can actually do, as far as I know, so long as I don&#8217;t lie. But even if I lie, given what happens to other people that lie in the press. I mean, nobody has nailed Glen Beck.</p>
<p><strong>Moderator</strong>: (laughing) What would they do specifically to still remain good custodians of Java. Because I actually <strong>(37:06) </strong>had the thought that whenever oracle <strong>(inaudible)</strong> EU sector, Google well this could be good in some ways because they actually have someone to light a fire under the projects and get things going</p>
<p><strong>James Gosling</strong>:So long as they do that. The development of Java is not an inexpensive thing. It takes a fair amount of funding. It&#8217;s not just about writing code. Learning the code is two or three percent of the expense. You&#8217;re shipping fifteen million copies a week, just the bandwith is horrible. The QA when you have to worry about something that has thirty issues. When you&#8217;ve got everything, every stock exchange, every phone company on the planet. Their security depends on Java. So it&#8217;s not a causual piece of testing.</p>
<p>You know, when it comes to open source contributions, our history with contributions over the years have been kinda snarky. We&#8217;d get lost of people sending code and fixes. But on average, we&#8217;d get a submission that fixed the bug but it caused three or four more. And it probably didn&#8217;t fix the bug for everybody. It probably only fixed the bug for their one case. And trying to get people in the community to actually think about the whole code base and not just their particular issue today. Doing one line of change means an immense amount of testing.</p>
<p>Most open source projects are way too casual for that. Sometimes when you get bugs that are potential security issues, you have to move fast, you have to put immense resources on getting it done. Maybe it&#8217;s just one engineer fixing one character in one line, but then testing it and making sure you didn&#8217;t introduce a bug. The harder stuff is if you have a bug, there are probably people out there who have worked around that bug, so how many of the workarounds are you going to break. And when you&#8217;ve got nine or ten million in the developer community you have enormous applications, trivial fixes are not trivial. And open source projects, the way the average open source projects are constituted. IT&#8217;s easy to get people to do the fun stuff. It&#8217;s hard to get people to do the hard stuff.</p>
<p>Like QAing the math libraries. Like doing QA on sine and cosine, you absolutely have to have a PHd in Mathematics. Sine and cosine: it sounds really simple, but there is unbelievable amount of depths of subtlety in there. There are extraordinarily few people on the planet qualified to QA that type of stuff.</p>
<p><strong>Moderator</strong>: And that&#8217;s key. I mean, the department of defense probably bets their trajectories on those so if you get off a little bit then &#8220;oops&#8221;.</p>
<p><strong>James Gosling</strong>: So, that particular case is one I&#8217;ve been drawn into over and over again for years. If we could do benchmarks on sine and cosine on intel chips compared to C. We beat C on just about everything except benchmarks on Sine and cosine.</p>
<p>It turns out there&#8217;s a small issue with the way the sine and cosine hardware is implemented in the spec on the intel platform. And we actually work around it in software. For the ranges from plus or minus five, we are close to intel speeds. You get the larger values, where the intel thing rips. So lots of folks who use math on the Java platform because we do it accurately. We put a lot of effort into it. The fact that we actually cared about that, and lots of people depend on it, but its&#8217; not the kind of thing that Joe Hacker is going to do. And it costs actually money. Having somebody like Oracle can actually be a really good thing. Foundations tend to have issues with funding things on that kind of scale. Oracle can doe those thing. But their genetic code, their behavioral genetic code, is not that.</p>
<p><strong>Moderator</strong>: So what excites you right now? What&#8217;s out there right now that you look at and say, that&#8217;s some cool stuff</p>
<p><strong>James Gosling</strong>: There&#8217;s a lot of cool stuff. I&#8217;m all over the map on what&#8217;s cool. The project I&#8217;ve been helping out on is the control system for an Audi TTS, and that&#8217;s just indescribable cool. In the enterprise space, things like Cassandra and Voldemort and some of the NoSQL database. I&#8217;ve never got it when it comes to SQL databases. It&#8217;s like, why? Just give me a hash table and a shitload of RAM and I&#8217;m happy. And then you do something to deal with failures. And you look at the way things like the NoSQL movement is. It&#8217;s various flavors of large scale distributed hash tables and trying to deal with massive scale and massive replication, and you can&#8217;t back up the database because no tape farm is big enough. And you find scale and reliability can fit together at the same time. So a bunch of those things are really cool. (46:35) I&#8217;m actually pretty excited about the sort of pragmatic evolution of the open source movement that is happening. There&#8217;s kind of a religious fanatic side that is just &#8220;Information just wants to be free.&#8221; It&#8217;s like look guys, I&#8217;m an engineer. I don&#8217;t want to be an engineer as a hobby. I don&#8217;t really care about being fabulously wealthy, but I do like to eat. Some of the Open source zealots, their view is kind of like you gotta be a waiter during the day and an actor at night. And it&#8217;s like, no that doesn&#8217;t work for me. 47:30 But there&#8217;s this sort of pragmatic mode that goes, you know what&#8217;s really valuable about open source is not what&#8217;s free as in beer, but what&#8217;s free as in speech. And then the collaborative development model &#8211; if you&#8217;re going to collaborate, like companies collaborating in a non-open source way, the legal frameworks for them end up being nightmares, and if things go snarky, it is a nightmare. The standard open source program is one of the only ways to make collaboration work. But if you make it open source, how do you pay salaries. In the enterprise world its&#8217; been working out nicely, because service and support is where the money is. At Sun we had gotten open source on everything, because we came to realize that when you go 48:10 do a licensed software product, you get revenue from the license, but you&#8217;ve also got expense in selling. The marketing and all that stuff you do around selling is often pretty large. There&#8217;s a lot of overhead in shmoozing customers. And those kind of cancel out.</p>
<p><strong>49:00</strong> <strong>Moderator</strong>: How is it I understand how Microsoft made money, and then Java came along and say, how is this working? And obviously, I know now, but it took me that much to understand that. How was it explaining that to the people at Sun?</p>
<p>(49:00)<strong>James Gosling: </strong> At Sun at the time. When you think of the revenue from something. It&#8217;s this long expression, it&#8217;s a lot of terms that get added together, and one of them is a license fee. But one of the terms at the time, 15 years ago, was that every software vendor had decided that the only platform they could support was Windows NT. So all the people who were writing software for Sun Systems 15 years ago was telling us they couldn&#8217;t do it anymore. (50:00) Even though you guys have a better platform, they&#8217;ve got better volume. But IBM was getting the same message. Everybody was getting the message in the software community that they were shutting down development on everything except NT. And for a company like Sun at the time the equation was basically, if we don&#8217;t do Java, if we don&#8217;t give software developers a way to develop software for our platform without shutting themselves out from NT then they&#8217;re just going to abandon us and we&#8217;re dead.</p>
<p>It was this kind of negative turn in the whole thing that drove working then. And so in the enterprise world open source is working really well.</p>
<p>The place where it falls apart, though, is for desktop software. On the one hand, I really love Gimp and Blender. On the other, the hand, it&#8217;s total volunteerism. With desktop software, my personal view is that if desktop software requires a support call, you have failed.</p>
<p><strong>Moderator</strong>: Absolutely</p>
<p><strong>James Gosling</strong>: So in that world, the service and support model just doesn&#8217;t work, just can&#8217;t work. So one of the reasons I was trying to get the Java store done at Sun was to make there be a way for people doing desktop software &#8212; and the original versions of the Java store would support not just Java but any kind of code. But we ended up concentrating on Java code for an awkward reason, which is that if you&#8217;re delivering software to people, you are implicitly taking on some liability, because if the thing you deliver destroys their machine, then you&#8217;ve got some liability. If people are contributing stuff to the store, how do you know that it&#8217;s good stuff vs. some rogue, malignant thing.</p>
<p><strong>Moderator</strong>: That&#8217;s one of the challenges that the Google Android store was having.</p>
<p><strong>James Gosling</strong>: The thing about delivering Java code is that if you do it well and get the sandbox right, then we can actually make strong statements about how much damage this thing can do. So the store was working was that you could either go through rigorous testing and get the locks taken off the sandbox, or you could deliver what you wanted but it had to have locks on it. And going on the rounds with the lawyers, that&#8217;s where we had to go. And we really couldn&#8217;t do that for non-java code.</p>
<p>(54:30) One of the sad things about android was they really didn&#8217;t pay attention to security issues as much as they should have. Google is kind of a funny company because a lot of them have this peace love and happiness version of evil. And by being overly peach love and happiness, and believing the whole world is peace love and happiness, they end up doing evil, because they really didn&#8217;t spend enough time thinking about, there are actually nasty people out there. Google puts a lot of effort into security in things like Chrome.</p>
<p><strong>Moderator</strong>: But they&#8217;re pretty good at watching everywhere you go aren&#8217;t they?</p>
<p><strong>James Gosling</strong>: Absolutely. I have this love hate thing with Google these days. They can get kind of creepy.</p>
<p><strong>Moderator</strong>: Do you use the browser plug ins that prevent the ads and block and analytic stuff?</p>
<p><strong>James Gosling</strong>: No. I mean, I sometimes do.</p>
<p>I used to do them all the time, but I do that more because I didn&#8217;t like the obnoxious adds.</p>
<p><strong>Moderator</strong>: Oh, yeah, like the ones that would pop up and flash a monkey?</p>
<p><strong>James Gosling</strong>: Yeah, and the personal privacy stuff, I&#8217;m just like, you know, blocking their ads is not going to do it. If you actually want personal privacy, the only thing you can do is disconnect and you have to go live in some obscure valley in New Zealand.</p>
<p>Yeah, I think that&#8217;s what I&#8217;ve heard. You have to go somewhere in New Zealand to keep Google from watching you.</p>
<p><strong>James Gosling</strong>: Yeah, you have to be in a cave so you&#8217;re out of reach of a satellite. And if you need to spend money, it has to be cash.</p>
<p><strong>Moderator</strong>: But it is creepy</p>
<p><strong>James Gosling</strong>: It&#8217;s getting very, very creepy.</p>
<p><strong>Moderator</strong>: You wrote a great post about that, the Star Trek vs. Blade Runner. That was a very apt comparison.</p>
<p>(57:15)<strong>James Gosling</strong>: Right, and the thing is the future isn&#8217;t something that&#8217;s rammed down our throats. The future is a choice. The human race is six or seven billion odd people each of which is making choices every day. You add up all those choices and that&#8217;s the direction of humanity. Each of us has fairly small voices, but you add up a lot of small voices and you get big voices. And for people who are in positions where they&#8217;re molding the core pieces like Computer software. I hear people saying it&#8217;s all over. Why do we need software? It&#8217;s like, guys, we&#8217;ve hardly even started. Every last hardware engineer on this planet has a huge impact on the future in a huge portion. Every software developer has been granted lots more votes than one. So vote wisely.</p>
<p><strong>Moderator</strong>: Absolutely</p>
<p><strong>James Gosling</strong>: Personally, I like blade runner the movie, I just don&#8217;t want to live there.</p>
<p><strong>Moderator</strong>: What&#8217;s your thoughts on the other languages?</p>
<p><strong>James Gosling</strong>: I&#8217;m a big fan. I can&#8217;t say I use them a lot. You know, the Java design was not that I thought it was the perfect language. The whole design concept there was about being comfortable with existing C and C++ developers and seeing bits and pieces they felt cool with.</p>
<p>Clojure. Clojusre&#8217;s got a lot of coolness about it but it&#8217;s not for everyone.</p>
<p><strong>Moderator</strong>: Is there any one you like more than the other?</p>
<p><strong>James Gosling</strong>: I like Scala, but my big problem is that the type theory has gotten really complicated. The language lawyers are driving the bus. It&#8217;s turning into something that journeyman developers and even people like me�I started getting into the Scala stuff and my head starts to spin and I go, &#8220;what?&#8221;</p>
<p><strong>Moderator</strong>: So these languages are good for Java, it takes a lot of the burden off of Java as a language because everyone wants &#8220;The Kitchen Sink&#8221; in Java the language. But now you can run on the JVM and you can have all those nice things.</p>
<p><strong>James Gosling</strong>: That was one of the key points behind the JVM. Everything I care about is in the JVM. The JVM has worked out really, really well. One of the things in past lives that has always really bugged me was that you could have two different languages in the system and you could never get them to communicate, and the great thing about JVM and getting them to work together is really easy. I was talking with this guy that does ML and ML is this weird-ass language 1:01 that does theorem proving. And for something like that, it&#8217;s great, but if you&#8217;re trying to put up the dialog box, it&#8217;s really bizarre. And with ML you do ML theorem proving and JVM you do dialog boxes and life is a whole lot simpler. So it just works.</p>
<p>61:58 <strong>Moderator</strong>: So now that you&#8217;ve left Oracle, what&#8217;s the future of you? What&#8217;s up next?</p>
<p><strong>James Gosling</strong>: What am I doing?</p>
<p><strong>Moderator</strong>: (jokingly) other than driving an Audi of course</p>
<p><strong>Moderator</strong>: (jokingly) Yeah, is it all Yahts and Champagne?</p>
<p><strong>James Gosling</strong>: I unfortunately did not sell when I should have. So I&#8217;m not in the yacht class yet. I actually have to do something about a job one of the days. I&#8217;m making a little money doing speaking engagements and things like that.</p>
<p><strong>Moderator</strong>: I&#8217;m sure there&#8217;s no shortage of job offers</p>
<p><strong>James Gosling</strong>: Yeah, it&#8217;s sort of the whole, well, what do I want to do when I grow up? And I&#8217;m kind of deeply confused about that. Part of the problem is that there&#8217;s just a whole lot of things that are really, really cool. There&#8217;s a part of me that love the embedded world. There&#8217;s a part of me that loves the scientific computing world. I look at what people are doing with large-scale NoSQL stuff and it&#8217;s cool. Before I was talking to you guys, I was over there talking to SSN folks that are doing stuff with OpenSSO, and it&#8217;s really fucking cool. You look at the guys in social media and some of them are really cool. Some of them are getting kind of creepy, but some of them are really cool.</p>
<p><strong>Moderator</strong>: Yeah, like linking your credit card to you SSN</p>
<p><strong>James Gosling</strong>: I&#8217;m really happy with LinkedIN. They seem to be doing a good job at being respectable on that scale. The Facebook guys are kind of creepy. And then things like Zynga, I really don&#8217;t understand. It&#8217;s probably one of those wrong MB quadrant thing, but people seem to be in love with Farmville and I&#8217;m just confused by Farmville.</p>
<p>Have you done much with any cloud computing? I think that&#8217;s a really cool thing where you turn API into hardware resources.</p>
<p>65:15 <strong>James Gosling</strong>: Well, certainly all of the large scale database stuff is that. I was really pissed off at Larry&#8217;s rant about how stupid cloud computing was, and then at his keynote last week he was like, 180 degrees. Make up your mind.</p>
<p><strong>Moderator</strong>: What I took from his original rant, though, was that the firm was so nebulous and it was basically taken over by marketing folks but at the same token they&#8217;re pushing out their own things and joining the cloud.</p>
<p>There was a piece that agrees with that. In some sense cloud computing is what people used to call grid</p>
<p><strong>Moderator:</strong> Right</p>
<p><strong>James Gosling:</strong> It was sort of a grid plus deployment management and open access and in the early grid days one of the things that people would often require uniform structure so you would take one thing and put it in the grid and you had to have 64 CPUs exactly with the same memory. But now you sprinkle some virtualization dust all over the thing and you can use the CPUs from you teapot.</p>
<p><strong>Moderator:</strong> It&#8217;s like you&#8217;re saying you&#8217;re getting software that offers more choices and basically depending on the old-fashioned operators from hell you&#8217;re in charge of the hardware. And now the developers end up being able to control the&#8211; <strong>67:30</strong></p>
<p><strong>James Gosling:</strong> I&#8217;m really happy with the cloud word. Personally, I don&#8217;t dabble with it that much because building a cloud costs money. Amazon EC2 is cool, but you don&#8217;t get to dabble with that for long before it gets expensive.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://geeknizer.com/james-gosling-future-of-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://media.techtarget.com/TheServerSideCOM/downloads/James_Gosling_Interview.mp3" length="49706784" type="audio/mpeg" />
		</item>
		<item>
		<title>Oracle to Accelerate Mobile, Java runtime</title>
		<link>http://geeknizer.com/oracle-mobile-java-acceleration/</link>
		<comments>http://geeknizer.com/oracle-mobile-java-acceleration/#comments</comments>
		<pubDate>Mon, 27 Sep 2010 13:59:09 +0000</pubDate>
		<dc:creator>Tarandeep Singh</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[javafx]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://geeknizer.com/oracle-mobile-java-acceleration</guid>
		<description><![CDATA[Everyone seems to be ditching Oracle after it&#8217;s acquisiton of Sun Microsystems first over Killing OpenSolaris, and recently because of the Java lawsuit on Google Android. The good leaders &#8211;... <span class="meta-more"><a href="http://geeknizer.com/oracle-mobile-java-acceleration/">Read more &#187;</a></span>]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" src="http://geeknizer.com/wp-content/uploads/2010/02/oraclejava_thumb.jpg" alt="" width="260" height="260" />Everyone seems to be ditching Oracle after it&#8217;s <a href="http://geeknizer.com/oracle-sun-merger">acquisiton of Sun Microsystems</a> first over <a href="http://geeknizer.com/opensolaris-is-dead">Killing OpenSolaris</a>, and recently because of the Java lawsuit on <a href="http://geeknizer.com/tag/android">Google Android</a>. The good leaders &#8211; <a href="http://geeknizer.com/sun-ceo-resign">Sun CEO</a> and <a href="http://geeknizer.com/father-of-java-resigns">Father of Java</a> had foreseen it.</p>
<p>Today at the Oracle OpenWorld event, <a href="http://geeknizer.com/tag/oracle">Oracle </a>revealed its roadmap ahead for Java and Java mobile. Oracle is committing on improving client-side Web support and mobile application development with JavaFX.</p>
<p>J2ME used to be a standard for Mobile apps, wherever app portability was prioritized. But with the release of more powerful platforms: Android &amp; iPhone, it has more or less become irrelevant as native toolkits tookover with better user experiences.</p>
<p>Oracle wants to undo this. With <a href="http://geeknizer.com/why-choose-javafx-how-to-code-benchmark-graphics-cpu-memory">JavaFX </a>it wants to restore client-side relevance. As <a href="http://geeknizer.com/why-choose-javafx-how-to-code-benchmark-graphics-cpu-memory">I reviewed earlier</a>, the biggest challenge is to <a href="http://geeknizer.com/why-choose-javafx-how-to-code-benchmark-graphics-cpu-memory">boost JavaFX performance</a> and integrate it more seamlessly with the standard Java Runtime Environment (JRE). What&#8217;s more is that Oracle wants to make it perform better not just on desktops but also on Mobiles, thats why, Hardware-accelerated rendering and heavy ARM optimization for mobile devices is under the works.</p>
<p>Oracle also promised a Java rendering engine to enhance 2D and 3G graphics, available next year. This will plug into the virtual machine and into Java FX, one of the most important technology layers Sun added to open source Java, supporting the creation of rich graphics and user interfaces. As <em>The Register</em> describes, the engine will support &#8220;modern graphics hardware accelerators&#8221;, notably Direct X for Windows and OpenGL.</p>
<p>Java FX scripting language had some nice, Python-inspired features for creating user interfaces, but it proved to be too slow. Now Oracle is giving up ont his scripting and letting user chose any or the VM scripting languages like JRuby, etc.</p>
<p>Apart from that, Oracle will continue to innovate in Java and the promised <a title="Permanent Link to Oracle Details Plan for Merging Java Hotspot, JRocket VM" rel="bookmark" href="http://geeknizer.com/oracle-merge-java-hotspot-jrocket">Merging of Java Hotspot, JRocket VM</a> should complete by sometime next year.</p>
<p>For mobile, Oracle will improve support for natively <strong>rendering HTML inside of JavaFX</strong>, which will potentially make it easier for developers to build content-centric mobile Java applications.</p>
<blockquote><p>&#8220;We are very excited about the upcoming enhancements to JavaFX, which will enable it to become the premier environment for rich client applications,&#8221; said Oracle&#8217;s Java Client Group director Nandini Ramani in a statement. &#8220;With new Java APIs, Java developers will be able to incorporate powerful JavaFX capabilities into their applications with greater ease. New hardware-accelerated graphics and HTML rendering capabilities will unlock possibilities and enable a new wave of innovative applications.&#8221;</p></blockquote>
<p>However, the biggest problem is still fragmentation. It&#8217;s not really clear how many J2ME-enabled devices can properly run JavaFX applications. iPhone is totally de-void of J2me, blackberry high-end devices also don&#8217;t support it.</p>
<p>For Latest Tech updates in <a href="http://geeknizer.com/tag/open-source">Open Source</a>, <a href="http://geeknizer.com/tag/programming">Programming</a>, <a href="http://geeknizer.com/tag/java">Java</a>, Tech News find us on <a>Twitter <strong>@taranfx</strong></a><strong> </strong>or subscribe below:</p>
]]></content:encoded>
			<wfw:commentRss>http://geeknizer.com/oracle-mobile-java-acceleration/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Java 4-Ever: Open Source love in Microsoft Family</title>
		<link>http://geeknizer.com/java-4-ever/</link>
		<comments>http://geeknizer.com/java-4-ever/#comments</comments>
		<pubDate>Sun, 27 Jun 2010 09:52:01 +0000</pubDate>
		<dc:creator>Tarandeep Singh</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[DOTNET]]></category>
		<category><![CDATA[humor]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://geeknizer.com/java-4-ever</guid>
		<description><![CDATA[I passed out of grad college as an electronics engineer with little background of programming and luckily enough my first job involved Java/j2ee. The need of the hour was to... <span class="meta-more"><a href="http://geeknizer.com/java-4-ever/">Read more &#187;</a></span>]]></description>
			<content:encoded><![CDATA[<p><a href="http://geeknizer.com/wp-content/uploads/java-linux.jpg"><img class="alignleft size-medium wp-image-5268" title="java-linux" src="http://geeknizer.com/wp-content/uploads/java-linux-300x225.jpg" alt="" width="245" /></a>I passed out of grad college as an electronics engineer with little background of programming and luckily enough my first job involved <a href="http://geeknizer.com/tag/java">Java</a>/j2ee. The need of the hour was to learn it. It was hard for a month, everything after that was an love affair.</p>
<p>Since those old days, I simply couldn&#8217;t wrap my head around the fact that Microsoft&#8217;s Windows-based servers still exist in the market having a share as large as 20% where <a href="http://geeknizer.com/tag/linux">Linux</a> was 65+%. Sooner I realized, easier it became to grasp  that I wasn&#8217;t  the only one troubled with it.</p>
<p>Java may not still be the best Web (internet) <a href="http://geeknizer.com/tag/programming">programming </a>language but there&#8217;s always win of Open standards like PHP  because of the ease of programming. But, Java still is the weapon of choice in the Enterprise Business market.</p>
<p>JavaWorld has come up with a trailer for a mock movie called &#8220;<a href="http://jz10.java.no/java-4-ever-trailer.html">Java 4-ever</a>,&#8221; where a young man is born in a Microsoft fan <a href="http://geeknizer.com/tag/dotnet">.Net</a>-obsessed family and due to some inevitable consequences falls in love with Java and Open Source. Featuring in the movie are mock characters &#8220;William Windows&#8221;, &#8220;Mona Lisa Harddrive,&#8221;, &#8220;Scala Johansson&#8221;, &#8220;Eddie Larrison&#8221; and &#8220;Lenny Linux&#8221; <img src='http://geeknizer.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="660" height="395" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://www.youtube.com/v/KrfpnbGXL70&amp;color1=0xb1b1b1&amp;color2=0xd0d0d0&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="660" height="395" src="http://www.youtube.com/v/KrfpnbGXL70&amp;color1=0xb1b1b1&amp;color2=0xd0d0d0&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>I wish this movie was for Real!</p>
]]></content:encoded>
			<wfw:commentRss>http://geeknizer.com/java-4-ever/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Android Dalvik JIT, Internals in Froyo</title>
		<link>http://geeknizer.com/android-internals-jit-froyo/</link>
		<comments>http://geeknizer.com/android-internals-jit-froyo/#comments</comments>
		<pubDate>Thu, 27 May 2010 16:41:26 +0000</pubDate>
		<dc:creator>Tarandeep Singh</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Open source]]></category>

		<guid isPermaLink="false">http://geeknizer.com/android-internals-jit-froyo</guid>
		<description><![CDATA[There was a along lived myth that claimed &#8220;java is slow&#8221;. Over the years, we&#8217;ve seen Java going faster, and occupying the enterprise, eventually, the mobile space. Running the desktop... <span class="meta-more"><a href="http://geeknizer.com/android-internals-jit-froyo/">Read more &#187;</a></span>]]></description>
			<content:encoded><![CDATA[<p><a href="http://geeknizer.com/wp-content/uploads/android-froyo.jpg"><img class="alignleft size-full wp-image-5038" title="android-froyo" src="http://geeknizer.com/wp-content/uploads/android-froyo.jpg" alt="" width="245" /></a>There was a along lived myth that claimed &#8220;java is slow&#8221;. Over the years, <a href="http://geeknizer.com/java-7-whats-new-performance-benchmark-1-5-1-6-1-7">we&#8217;ve seen <strong>Java going faster</strong></a>, and occupying the enterprise, eventually, the mobile space. Running the desktop Hotspot JVM sure is an overkill for the mobile devices, and that brings the need of optimizations that could make the VM lighter and efficient for low memory/CPU footprint devices.</p>
<p><a href="http://geeknizer.com/tag/android">Android </a>is a <a href="http://geeknizer.com/tag/linux">Linux </a>based <a href="http://geeknizer.com/tag/os">OS </a>with 2.6.x kernel, stripped down to handle most tasks pretty well. It uses native open source C libraries that have powered Linux machines for years. All the basic OS operations like I/O, memory management, and so on, are handled by the native stripped-down Linux kernel. On top of it all, the application layer is exposed in <a href="http://geeknizer.com/tag/java">Java</a> APIs. These Java APIs internally use JNI calls to native libraries of the Operating system &#8212; The benefit being: Your application code always remain platform independent no matter which processor architecture (x86, <a href="http://geeknizer.com/tag/arm">ARM</a>, etc) it runs on. As Google plans to take android from Mobiles to <a href="http://geeknizer.com/google-tv">Android TVs</a>, <a href="http://geeknizer.com/tag/tablet">Tablets</a>, and Cars, and what not, you won&#8217;t have to worry about porting your application (apart from screen resolutions).</p>
<p><strong>Dalvik VM </strong>was developed to accommodate very efficient java runtime for devices having low memory footprint. It&#8217;s brilliantly smart in memory management and can proactively work on phones having memories as low as 32mb (or even lower with Older Android releases).</p>
<p>Dalvik doesn&#8217;t run the Sun Java Byte code, instead it runs DEX files a.k.a Dalvik executables. Java byte code is recompiled into Dex, every time ADT plugin (installed in eclipse) detects a change in the .class files. This dex then runs in the Dalvik with Just in time compilation. Why Just in time?</p>
<p>JIT has lots of potential merits which makes it a sure shot winner in VM based languages. A normal compiled application has a pre-compiled binary. Whereas, the interpreted languages do this dynamically as the code execution is requested. JIT is hybrid of both.</p>
<p><strong>Why JIT is Faster: Indepth</strong></p>
<p>Much of the &#8220;heavy lifting&#8221; of parsing the original source code and performing basic optimization is often handled at compile time, prior to deployment. Obviously, compilation from bytecode to machine code is much faster than compiling from source.</p>
<p>At the time the bytecode is run, the just-in-time compiler will come into action and readily compile some or all of it into native machine code for better performance. This is purely selective, it can be done per-file, per-function or even on any arbitrary code segment; the code can be compiled when it is about to be executed.</p>
<p>Lets assume that a pre-compiled binary runs, say, on all x86 machines. This binary is then made to run on two different machines: <a href="http://geeknizer.com/tag/intel">Intel </a>Processor with MMX on <a href="http://geeknizer.com/tag/windows">Windows</a>, and then on <a href="http://geeknizer.com/tag/amd">AMD </a>with some SSE2 or SSSE3 capability on a Linux. The x86 binary is not optimized to run better on one than the other in any way. The purpose of the binary is to be &#8220;compatible&#8221; with x86 architecture more than being performing for the processor and platform, and that&#8217;s what makes the difference.</p>
<p>This is just one of the reasons why JIT could be faster.<a href="http://geeknizer.com/wp-content/uploads/android3.jpg"><img class="alignright size-full wp-image-5039" title="android" src="http://geeknizer.com/wp-content/uploads/android3.jpg" alt="" width="200" height="300" /></a></p>
<p>At the runtime JIT can perform a large number of optimizations that will efficiently use the hardware to give out the best performance. Primarily there are three kinds of optimizations that we are interested in:</p>
<ol>
<li>Instruction set optimizations</li>
<li>Resource Reuse</li>
<li>Runtime Analysis &amp; Optimizations</li>
<li>Superior Memory Management</li>
</ol>
<p><strong>1. Instruction set optimizations:</strong> With JIT active on a platform, translation from C (underlying language of Java) to Machine code (instruction set) would happen most optimally. e.g. The application that does lots of mathematical operations with one of them being, say, subsequent Multiply and Add. There might be an instruction set available for performing &#8220;Multiply and Add&#8221; within single clock cycle, JIT if aware, can use it thereby, reducing clock cycles for execution of that task.</p>
<p><strong>2. Resource Reuse: </strong>Resource re-use can be done in multiple ways. It can be something as simple as re-use of String objects, to reuse of an I/O by dynamically compiling code to reuse an existing stream/connection instead of creating a new one, when possible.</p>
<p>In JIT, translations occur continuously with caching of translated code to minimize performance degradation. Apart from performance, it also offers other advantages over statically compiled code, such as handling of late-bound data types and the ability to enforce <strong>security</strong> guarantees.</p>
<p><strong>3. Runtime Analysis &amp; Optimizations</strong></p>
<p>The system is able to collect statistics about how the program is actually running in the environment it is in, and it can rearrange and recompile for optimum performance. This is a complex to implement Java has done it nicely, but Dalvik VM in Android 2.2 Froyo is way ahead in leveraging performance boosts.</p>
<p>The system can do global code optimizations (In most cases: inlining compilation of library functions) without losing the advantages of dynamic linking and that too without the overheads inherent to static compilers and linkers.</p>
<p><strong>4. Superior Memory Management</strong></p>
<p>A bytecode system can more easily rearrange memory for better cache utilization. apart from performance caches, memory allocation is less fragmented, more reusable.</p>
<p><strong>Dalvik JIT Benefits  in Real world<a href="http://geeknizer.com/wp-content/uploads/dalvik.png"><img class="alignright size-full wp-image-5040" title="dalvik" src="http://geeknizer.com/wp-content/uploads/dalvik.png" alt="" width="330" height="218" /></a><br />
</strong></p>
<p>The Android JIT is designed to speed up with the execution of the areas of code that touch more mathematical computations. e.g. In a typical OpenGL Game/graphics, there could be use of a large number of integer and flotating point mathematical calculations that can go crazy slow down under normal VMs.</p>
<p>Dalvik would actually take advantage of the JIT environment which can boost the productivity  by consuming as little as  100k of RAM. With each Android process, JIT will typically only use another 100k or so from the RAM. On the current generation of Android phones, device users won&#8217;t even notice this additional memory usage.</p>
<p><strong>Performance Varies, But Android Dalvik Rocks</strong></p>
<p>Many previous JIT implementations react slowly, delivering performance improvements only after a long warm up period.</p>
<p>This delay is due to the time taken to load and compile the bytecode.The delay called &#8220;startup time delay&#8221; Evidently, the more optimization JIT performs, the better code it will generate, but the initial delay will also increase. A JIT compiler therefore has to make a trade-off between the compilation time and the quality of the code it hopes to generate. However, it seems that much of the startup time is sometimes due to IO-bound operations rather than JIT compilation (for example, the <em>rt.jar</em> class data file for the <a href="http://en.wikipedia.org/wiki/Java_Virtual_Machine">Java Virtual Machine</a> is 40 MB and the JVM must seek a lot of data in this huge file). Dalvik does it much more efficiently. Dalvik VM being lightweight has stripped down version of the  desktop JVM which loads selective and stripped down runtime jars.</p>
<p>In certain implementations the warmup time can be extreme: minutes or even hours before the code is fully up to speed. Dalvik JIT rather reacts quickly, seconds after you hit the App Icon on your favorite game, you are already benefiting from JIT performance improvements.</p>
<p><strong>Why Now?</strong></p>
<p>I remember the time when Android 2.1 was getting ready for release, JIT was all in there ready for the showtime. But for some unknown reasons, it was disabled, just a switch away from 2x &#8211; 4x times performance boost. But question is why wasn&#8217;t it unveiled at that moment. I could be wrong, though was in good-enough shape, it seemed like more of a marketing strategy.</p>
<p>Whatever the case is, Performance improvements always are of the order of &#8220;Observable&#8221; index. In gaming you can achieve anywhere between 2x &#8211; 5x performance boost, on contrary, light weight apps would not see more than 10% difference.</p>
<p>Dalvik VM, though first built in a closed system, has all the richness of the Open Source. It has evolved a lot since the time it had been open sourced nourishing Android to the peek of the smartphone industry.</p>
<p>I love iPhone for what it has done to the smartphone industry. But, I agree even more with what Vic Gundotra said at the Google IO:</p>
<p>&#8220;If Google didn&#8217;t act, we face a draconian future. One man, one company, one device would control our <a href="http://geeknizer.com/tag/future">future</a>, If you believe in openness and choice, welcome to Android.&#8221;</p>
<p><strong><em>Update</em></strong>: Google I/O Video for Android 2.2 Froyo Dalvik  JIT now available:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="660" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/Ls0tM-c4Vfo&amp;hl=en_US&amp;fs=1&amp;color1=0x3a3a3a&amp;color2=0x999999" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="660" height="385" src="http://www.youtube.com/v/Ls0tM-c4Vfo&amp;hl=en_US&amp;fs=1&amp;color1=0x3a3a3a&amp;color2=0x999999" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>For Latest Tech updates in <a href="http://geeknizer.com/tag/open-source">Open Source</a>, <a href="http://geeknizer.com/tag/programming">Programming</a>, <a href="http://geeknizer.com/tag/java">Java</a>, Tech News find us on <a>Twitter <strong> </strong></a><strong><a href="http://twitter.com/taranfx" target="_blank">@taranfx</a></strong><strong><a href="http://twitter.com/taranfx" target="_blank"> </a></strong>or subscribe below:</p>
]]></content:encoded>
			<wfw:commentRss>http://geeknizer.com/android-internals-jit-froyo/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Learn Scala with Video Tutorials</title>
		<link>http://geeknizer.com/learn-scala-video-tutorial/</link>
		<comments>http://geeknizer.com/learn-scala-video-tutorial/#comments</comments>
		<pubDate>Sat, 01 May 2010 16:23:05 +0000</pubDate>
		<dc:creator>Tarandeep Singh</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Open source]]></category>

		<guid isPermaLink="false">http://geeknizer.com/learn-scala-video-tutorial</guid>
		<description><![CDATA[The Open Source Programming language that powers much of the Internet and many commercial applications today, could replace Java in the Future. Scala is widely adopted for popular Social networking... <span class="meta-more"><a href="http://geeknizer.com/learn-scala-video-tutorial/">Read more &#187;</a></span>]]></description>
			<content:encoded><![CDATA[<p><a href="http://geeknizer.com/wp-content/uploads/2010/05/scala.jpg"><img class="alignleft size-full wp-image-4858" title="scala" src="http://geeknizer.com/wp-content/uploads/2010/05/scala.jpg" alt="" width="240" height="187" /></a>The <a href="http://geeknizer.com/tag/open-source">Open Source</a> Programming language that powers much of the Internet and many commercial applications today, could replace Java in the Future.</p>
<p>Scala is widely adopted for popular Social <a href="http://geeknizer.com/tag/networking">networking </a>sites such as <a href="http://geeknizer.com/tag/twitter">Twitter</a>, LinkedIn and FourSquare. An estimated 100,000 programmers are already using the language and it continues to attract attention from industry for its elegance and muscle. Currently Scala v2.8 is capable of delivering some amazing scripting features which somehow Java and several other programming languages failed to: Boost development productivity, application scalability and system reliability</p>
<p><strong>What are the other benefits? </strong>The name Scala itself means &#8220;scalable&#8221;, a programming language that can scale  to increasing user and hardware demands, making it effectively &#8220;future-proof&#8221;.</p>
<p><strong>How Scala works</strong><br />
<strong> Scala </strong>runs on the <strong><a href="http://geeknizer.com/tag/java">Java </a></strong>platform (i.e. Java Virtual Machine aka JVM) and is compatible with existing Java programs. It also runs on Java Platform, J2ME CLDC. Scala has the same compilation model as Java and C#, so Scala code can call Java libraries or .NET libs.</p>
<p>Just like Java, Scala compiler generates byte code that is nearly identical to the Java compiler. In fact, you can decompile Scala code to readable Java code. To the JVM, Scala code and Java code are indistinguishable. The only difference is a single extra runtime library, scala-library.jar.</p>
<p><strong>Learn Scala [Video Tutorials]</strong></p>
<p>Alright, there are 100s of other reasons why you should consider learning Scala, but I&#8217;m not getting into them. You can start learning it as soon as you realize it&#8217;s importance.</p>
<p><strong>Understanding Scala and It&#8217;s Importance</strong></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="660" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/zqFryHC018k&amp;hl=en_GB&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="660" height="385" src="http://www.youtube.com/v/zqFryHC018k&amp;hl=en_GB&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><strong>Your First Application in Scala using Eclipse</strong></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="660" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/i9FRST87K_c&amp;hl=en_GB&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="660" height="385" src="http://www.youtube.com/v/i9FRST87K_c&amp;hl=en_GB&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object><br />
<a href="http://www.youtube.com/watch?v=oFaWm8e7wG0&amp;feature=related" target="_blank"> Part 2</a> &amp; <a href="http://www.youtube.com/watch?v=R3gh9jIIbME&amp;feature=related" target="_blank">Part 3</a></p>
<p><strong>Scala Topics and discussions</strong> from <a href="http://days2010.scala-lang.org/node/136" target="_blank">Scala Days 2010</a>. There are some great talks in there that talk about how to scale applications, best practices, industry lessons, and lots of other good stuff, a must for all Scala enthusiasts.</p>
<p>For Latest Tech updates in <a href="http://geeknizer.com/tag/open-source">Open Source</a>, <a href="http://geeknizer.com/tag/programming">Programming</a>, <a href="http://geeknizer.com/tag/java">Java</a>, Tech News find us on <a>Twitter <strong></strong></a><strong><a href="http://twitter.com/taranfx" target="_blank">@taranfx</a></strong><strong><a href="http://twitter.com/taranfx" target="_blank"> </a></strong>or subscribe below:</p>
]]></content:encoded>
			<wfw:commentRss>http://geeknizer.com/learn-scala-video-tutorial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VMware, Salesforce create First Enterprise Java Cloud [VMforce]</title>
		<link>http://geeknizer.com/vmware-java-cloud/</link>
		<comments>http://geeknizer.com/vmware-java-cloud/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 17:42:54 +0000</pubDate>
		<dc:creator>Tarandeep Singh</dc:creator>
				<category><![CDATA[Cloud computing]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[VMWare]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[vmware]]></category>
		<category><![CDATA[vsphere]]></category>

		<guid isPermaLink="false">http://geeknizer.com/vmware-java-cloud</guid>
		<description><![CDATA[Last weekend, Oracle announced it&#8217;s latest offering that enables Virtualization-Aware Java Applications on top of Weblogic webserver. Taking it further, is Salesforce and VMware, who are turning cloud computing into... <span class="meta-more"><a href="http://geeknizer.com/vmware-java-cloud/">Read more &#187;</a></span>]]></description>
			<content:encoded><![CDATA[<p><a href="http://geeknizer.com/wp-content/uploads/2010/04/vmforce-java.jpg"><img class="alignleft size-full wp-image-4835" title="vmforce-java" src="http://geeknizer.com/wp-content/uploads/2010/04/vmforce-java.jpg" alt="" width="210" height="202" /></a>Last weekend, Oracle announced it&#8217;s latest offering that enables <a href="http://geeknizer.com/oracle-java-virtualization-server">Virtualization-Aware Java Applications</a> on top of Weblogic webserver.</p>
<p>Taking it further, is Salesforce and VMware, who are turning cloud computing into a Java runtime environment. The companies have partnered to together enable Spring framework based Java cloud. The foundation would be  VMware&#8217;s <a href="www.taranfx.com/tag/vsphere">vSphere virtualization</a> infrastructure and will be hosted, of course, at Salesforce.com.</p>
<p><strong>VMforce </strong>(the name is obvious) will be able to host any Java application that can be built to utilize existing Salesforce&#8217;s database infrastructure. So what this means is that Enterprises and Businesses can build and host their Java applications on the salesforce&#8217;s infrastructure just like its possible today with Google&#8217;s App Engine. But way more capable.</p>
<p>App Engine limits (and restricts) itself to POJO java applications with limited choice of database: BigTable, a non-relational database (non-RDBMS). However, VMforce will host and run a typical J2ee application on most popular J2ee framework i.e. Spring (using Spring application-hosting layer) and a full blown traditional RDBMS database.</p>
<p>No doubt, Java developers currently lack a simple path to cloud deployment.</p>
<blockquote><p>“There are over 6 million developers who know Java. It has transformed this industry and brought enterprises onto the Internet. But enterprise Java developers don&#8217;t have a clear path into the cloud. Can they deliver these next-generation cloud applications? Is there a gap between where Java is and where cloud computing is going?”</p>
<p>Paul Maritz, CEO of VMware, said that “developers value, above everything else, productivity.” He said that, for new applications, deployment to a cloud can increase productivity and reduce internal IT complexity. He said that these benefits are at the heart of the partnership between VMware and Salesforce.</p></blockquote>
<p>The companies together believe that this gap must be filled, so that we can deploy Real business Java apps to the cloud, giving developer more power to deliver the next generation of application development and deployment.</p>
<p>VMforce should open up to the public this fall. With vSphere being mature enough for most Cloud apps, it would help  in evolution and maturing of Cloud-based Java application.</p>
<p><strong>How it Works:</strong></p>
<p><strong><a href="http://geeknizer.com/wp-content/uploads/2010/04/vmforce.jpg"><img class="size-full wp-image-4836 alignnone" title="vmforce" src="http://geeknizer.com/wp-content/uploads/2010/04/vmforce.jpg" alt="" width="668" height="391" /></a><br />
</strong></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="660" height="395" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/LpO6whOCAmQ&amp;hl=en_GB&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="660" height="395" src="http://www.youtube.com/v/LpO6whOCAmQ&amp;hl=en_GB&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>On top of vSphere, the VMforce cloud will offer a Spring application-hosting layer and a database. Developers will use the <a href="http://geeknizer.com/vmware-acquires-spring-source-java-framework-giant-cloud-computing-plans">SpringSource</a> Tool Suite to build and deploy applications built specifically for the <strong>VMforce </strong>cloud. Those tools will include automatic analysis tools that can call out the portions of an application that will need to be changed to work in a cloud environment.</p>
<p>The app deployment and maintenance will be done via &#8220;<strong>The SpringSource Tool Suite</strong>&#8221; ,a  free development environment. To create a new application, there are a number of wizards but nothing new that needs to be learned. New applications can also be created using Spring template wizards.</p>
<p>However, the bad part: Applications using Enterprise JavaBeans aren’t candidates for moving to VMforce, and other Java EE applications would require significant rework in order to run in that environment. The VMforce platform is targeted at developers creating new Java applications for the cloud. This could be a big limitation of this Cloud service.</p>
<p>For Latest Tech updates in <a href="http://geeknizer.com/tag/open-source">Open Source</a>, <a href="http://geeknizer.com/tag/programming">Programming</a>, <a href="http://geeknizer.com/tag/java">Java</a>, Tech News find us on <a>Twitter <strong></strong></a><strong><a href="http://twitter.com/taranfx" target="_blank">@taranfx</a></strong><strong><a href="http://twitter.com/taranfx" target="_blank"> </a></strong>or subscribe below:</p>
]]></content:encoded>
			<wfw:commentRss>http://geeknizer.com/vmware-java-cloud/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Oracle announces Virtualization-aware Java App Server</title>
		<link>http://geeknizer.com/oracle-java-virtualization-server/</link>
		<comments>http://geeknizer.com/oracle-java-virtualization-server/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 16:11:44 +0000</pubDate>
		<dc:creator>Tarandeep Singh</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Virtualization]]></category>

		<guid isPermaLink="false">http://geeknizer.com/oracle-java-virtualization-server</guid>
		<description><![CDATA[Oracle has unveiled Oracle Virtual Assembly Builder and Oracle WebLogic Suite Virtualization Option this week, a pair of new applications designed to simplify the deployment and management of Java applications... <span class="meta-more"><a href="http://geeknizer.com/oracle-java-virtualization-server/">Read more &#187;</a></span>]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="ORacle java" src="http://geeknizer.com/wp-content/uploads/2010/02/oraclejava.jpg" alt="" width="260" height="260" />Oracle <a href="http://www.oracle.com/us/corporate/press/068426">has unveiled</a> <strong>Oracle Virtual Assembly Builder </strong>and <strong>Oracle WebLogic Suite Virtualization</strong> <strong>Option</strong> this week, a pair of new applications designed to simplify the deployment and management of Java applications in Virtualized environments.</p>
<p>Officially, this would be the First Application server which is Fully Virtualization-aware. As a result, the enterprises who crave for new tools to help simplify the administration of Java applications in virtualized environments would now have a sigh of relief.</p>
<p>The new apps marks <a href="http://geeknizer.com/tag/oracle">Oracle</a>&#8216;s first <a href="http://geeknizer.com/tag/virtualization">Virtualization </a>release since it&#8217;s acquisition of Sun microsystems.</p>
<blockquote><p>&#8220;With these groundbreaking products, Oracle has made virtualization a reality for Java enterprise applications,&#8221; Steven Harris, a senior vice president of product development at Oracle, said in a statement. &#8220;With Oracle WebLogic Server running on JRockit Virtual Edition, we have eliminated the trade-off of server density and performance by bringing the world&#8217;s No. 1 application server to virtualized environments.&#8221;</p></blockquote>
<p><strong>Oracle Virtual Assembly Builder</strong> is designed to help organizations quickly and easily deploy multi-tier enterprise applications in virtualized environments. It enables administrators to easily connect appliances as pluggable building blocks, known as &#8220;assemblies&#8221;, which can be used to create multi-tier applications.</p>
<p>The framework is ideal for automatically capturing the configuration of software components.</p>
<p><strong>WebLogic Suite Virtualization Option </strong>combines and optimizes Oracle&#8217;s WebLogic Server with JRockit Virtual Edition for virtualized datacenters to improve application performance.</p>
<p>Oracle touts &#8220;Oracle     WebLogic Server with JRockit Virtual Edition&#8221; as the &#8220;world&#8217;s #1 application server&#8221;. Of course, the WebLogic application server has been optimized for     virtualized environments thereby making efficient use of hardware.</p>
<p><em>Note: The only x86 server virtualization certified for all Oracle software,     Oracle VM is available as a free download.</em></p>
<p><strong>Why this is amazing: </strong>What is relatively more important is that <a href="http://geeknizer.com/tag/oracle">Oracle </a>WebLogic Server can now run <strong>directly on Oracle VM</strong> without an Operating system, a unique capability enabled by Oracle JRockit Virtual Edition.</p>
<p>In a virtualized environment, Oracle JRockit Virtual Edition handles essential operating system functions including TCP/IP, hardware device interaction, file I/O, and process scheduling, while freeing up hardware and management resources by removing operating system capabilities that are not essential for enterprise Java applications.</p>
<p>Definitely, this is a big deal for enterprises who earlier had hard time <a href="http://geeknizer.com/tag/virtualization">Virtualizing </a>Java applications. Int he future when Oracle completes its <a href="http://geeknizer.com/oracle-merge-java-hotspot-jrocket">plan for merging Java VMs</a>, it would get even better.</p>
<p>For Latest Tech updates in <a href="http://geeknizer.com/tag/open-source">Open Source</a>, <a href="http://geeknizer.com/tag/programming">Programming</a>, <a href="http://geeknizer.com/tag/java">Java</a>, Tech News find us on <a>Twitter <strong></strong></a><strong><a href="http://twitter.com/taranfx" target="_blank">@taranfx</a></strong><strong><a href="http://twitter.com/taranfx" target="_blank"> </a></strong>or subscribe below:</p>
]]></content:encoded>
			<wfw:commentRss>http://geeknizer.com/oracle-java-virtualization-server/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>&#8220;Father of Java&#8221; Resigns from Sun/Oracle</title>
		<link>http://geeknizer.com/father-of-java-resigns/</link>
		<comments>http://geeknizer.com/father-of-java-resigns/#comments</comments>
		<pubDate>Sat, 10 Apr 2010 14:43:20 +0000</pubDate>
		<dc:creator>Tarandeep Singh</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Sun]]></category>

		<guid isPermaLink="false">http://geeknizer.com/father-of-java-resigns</guid>
		<description><![CDATA[This would, perhaps, be the second most shocking/sad news after the resignation of Jonathan (former Sun CEO). I&#8217;m sad and upset after hearing the confirmed news that James Gosling will... <span class="meta-more"><a href="http://geeknizer.com/father-of-java-resigns/">Read more &#187;</a></span>]]></description>
			<content:encoded><![CDATA[<p><a href="http://geeknizer.com/wp-content/uploads/2010/04/james-gosling-java.jpg"><img class="alignleft size-full wp-image-4672" title="james-gosling-java" src="http://geeknizer.com/wp-content/uploads/2010/04/james-gosling-java.jpg" alt="" width="250" /></a>This would, perhaps, be the second most shocking/sad news after the <a href="http://geeknizer.com/sun-ceo-resign">resignation of Jonathan </a>(former Sun CEO). I&#8217;m sad and upset after hearing the confirmed news that <strong>James Gosling</strong> will be leaving <a href="http://geeknizer.com/tag/sun">Sun</a>/<a href="http://geeknizer.com/tag/oracle">Oracle</a>.</p>
<p>James has been a Father for the Java community and a great innovator in the  software industry. The final words <a href="http://nighthacks.com/roller/jag/entry/time_to_move_on" target="_blank">appear on his blog</a>:</p>
<blockquote><p>Yes, indeed, the rumors are true: I resigned from Oracle a week ago (April 2nd). I apologize to everyone in St Petersburg who came to TechDays on Thursday expecting to hear from me. I really hated not being there.<em> As to why I left, </em>it&#8217;s difficult to answer: just about anything I could say that would be accurate and honest would <em>do more harm than good</em>. The hardest part is no longer being with all the great people I&#8217;ve had the privilege to work with over the years. I don&#8217;t know what I&#8217;m going to do next, other than take some time off before I start job hunting.</p></blockquote>
<p>Without a doubt, this has been an aftermath of the <a href="http://geeknizer.com/oracle-sun-merger">Sun-Oracle Merger</a>, and he doesn&#8217;t seem to be happy with the level of freedom he had been getting lately. From what has been heard, he was not convinced with the Oracle&#8217;s strategies for the future of Java.</p>
<p>His contributions to Open source were huge even before he stepped into Java. In 1983,<a href="http://en.wikipedia.org/wiki/James_Gosling" target="_blank"> James Gosling</a> wrote a version of emacs, and before joining Sun Microsystems he built a multi-processor version of Unix<span style="font-size: small;"> </span>while at Carnegie Mellon University, as well as several compilers and mail systems. Since 1984, Gosling has been with Sun Microsystems, and is known as the father of the Java programming language.</p>
<p>All that can be said is that he will be missed, but I&#8217;ve no doubt that his contributions (wherever he goes) will continue to innovate the <a href="http://geeknizer.com/tag/java">Java</a>, like he has done it in the past. Every company would hunt to hire him and I would love to see Google, IBM (leaders in Java) watching closely on it.</p>
<p>The Java community will never forget his contributions, and he&#8217;ll forever be a remembered as a &#8220;Father who drove the Java World&#8221;.</p>
<p>Update: <a title="Permanent Link to Father of Java Joins Google" rel="bookmark" href="http://geeknizer.com/father-of-java-joins-google">Father of Java Joins Google</a></p>
<p><span style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px;">We write about <a style="color: #003399; text-decoration: none;" href="http://geeknizer.com/tag/open-source">Open Source</a>, <a style="color: #003399; text-decoration: none;" href="http://geeknizer.com/tag/programming">Programming</a>, <a style="color: #003399; text-decoration: none;" href="http://geeknizer.com/tag/java">Java</a>, Latest Tech news as they happen, get them<a style="color: #003399; text-decoration: none;" href="http://twitter.com/taranfx" target="_blank"><strong>@taranfx</strong> on Twitter</a> or subscribe below:</span></p>
]]></content:encoded>
			<wfw:commentRss>http://geeknizer.com/father-of-java-resigns/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Qt: Best Cross-Platform GUI Applications</title>
		<link>http://geeknizer.com/best-cross-platform-gui/</link>
		<comments>http://geeknizer.com/best-cross-platform-gui/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 20:05:45 +0000</pubDate>
		<dc:creator>Tarandeep Singh</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[nokia]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[ui]]></category>

		<guid isPermaLink="false">http://geeknizer.com/best-cross-platform-gui</guid>
		<description><![CDATA[For application developers who are hunting down to rewrite GUI for every other OS, there is a simple and yet, an elegant solution : Qt Qt (pronounced &#8220;Cute&#8221;) is cross-platform... <span class="meta-more"><a href="http://geeknizer.com/best-cross-platform-gui/">Read more &#187;</a></span>]]></description>
			<content:encoded><![CDATA[<p><a href="http://geeknizer.com/wp-content/uploads/2010/02/qt.jpg"><img class="alignleft" title="qt" src="http://geeknizer.com/wp-content/uploads/2010/02/qt_thumb.jpg" border="0" alt="qt" width="250" height="102" /></a> For application developers who are hunting down to rewrite GUI for every other OS, there is a simple and yet, an elegant solution : <a href="http://qt.nokia.com" target="_blank">Qt</a></p>
<p>Qt (pronounced &#8220;Cute&#8221;) is cross-platform application and UI framework developed and maintained by telecom giant, <a href="http://geeknizer.com/tag/nokia">Nokia</a>. As far as I can tell you, this is the most portable, and yet most feature-ful UI, I&#8217;ve seen lately. Surprisingly, it works on both PCs and mobiles, alike. It supports embedded-Linux, <a href="http://geeknizer.com/tag/mac-os">Mac OS</a>, <a href="http://geeknizer.com/tag/linux">Windows</a>, <a href="http://geeknizer.com/tag/linux">Linux</a>, <a href="http://geeknizer.com/tag/windows-mobile">Windows Mobile</a>, <a href="http://geeknizer.com/tag/symbian">Symbian</a>, and Maemo:<a href="http://geeknizer.com/wp-content/uploads/2010/02/qtplatforms.jpg"><img style="display: inline; border-width: 0px;" title="qt-platforms" src="http://geeknizer.com/wp-content/uploads/2010/02/qtplatforms_thumb.jpg" border="0" alt="qt-platforms" width="686" height="94" /></a></p>
<p>Almost, every popular platform is included (I wish <a href="http://geeknizer.com/tag/iphone">iPhone</a> was bit more open).</p>
<p>Qt is most widely used in <a href="http://geeknizer.com/tag/google">Google</a> Earth, KDE, <a href="http://geeknizer.com/tag/opera">Opera</a>, OPIE, <a href="http://geeknizer.com/voxox-universal-translator">VoxOx</a>, <a href="http://geeknizer.com/tag/skype">Skype</a>, <a href="http://geeknizer.com/vlc-1-1-download">VLC media player</a> and <a href="http://geeknizer.com/tag/virtualox">VirtualBox</a> and 100s of other applications. Qt uses standard C++, but makes extensive use of the C pre-processor to enrich the language. Qt can also be used in several other programming languages via language bindings. Qt uses native widgets and wraps them in a common API across all platforms. Non-GUI features (discussed later) include SQL database access, XML parsing, thread management, network support and a unified cross-platform API for file handling.</p>
<p>Apart from all that, it&#8217;s quiet good on features:</p>
<ul>
<li>Advanced GUI: A big set of widgets (with stylesheets), from buttons to tables. Advanced formatting, scaling, orientation layouts. Support for vector graphics, and hardware acceleration</li>
<li>2D, 3D Graphics &amp; <a href="http://geeknizer.com/tag/opengl">OpenGL</a>: Full 2D, 3D acceleration enabled apps with OpenGL ES (mobile), Direct 3D (windows)</li>
<li>Fully Multithreaded: High-level Multithreading API, Easier data management and synchronized inter-object communications.</li>
<li>Rich Multimedia Framework: Supports multiple media codecs, streaming technologies.</li>
<li>WebKit, XML, Networking Integration: Local content can be blended with Web content seamlessly.</li>
<li>Databases: Supports all major databases.</li>
</ul>
<p>It&#8217;s available via APIs for a number of Languages: C++, C#/.Net, Python, Ada, Pascal, Perl, PHP, Ruby and <a href="http://geeknizer.com/tag/java">Java</a>.</p>
<p>If we talk about Java in particular (Platform independent code + platform independent GUI makes sense right?), few factors that favor Qt more than Java Swing or Java SWT are:</p>
<ul>
<li>Easy to use and learn</li>
<li>Good documentation</li>
<li>Good support</li>
<li>Active development</li>
</ul>
<p>The official video below talks about the some of the most widely applied use cases and application in industry which vary from space to embedded systems in industries:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="390" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/p0xiKBEx8RA&amp;hl=en_US&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="640" height="390" src="http://www.youtube.com/v/p0xiKBEx8RA&amp;hl=en_US&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>They have a number of Videos demoing various applications, you can check them out at <a href="http://www.youtube.com/user/QtStudios" target="_blank">their Official Youtube channel</a>. Pretty interesting stuff, full multitouch on phones, Maps, simulations and more.</p>
<p>Qt has a much steeper learning curve and the API is much more consistent, not to mention that Qt has been improved the last seven years while Swing hasn&#8217;t. The Popular KDE is based on Qt, so there are lot of people out there using it, and user-experience is great.</p>
<p>The SDK is available under LGPL and as commercially supported licensed product too. Go ahead and proceed to <a href="http://qt.nokia.com/downloads" target="_blank">Downloads section</a>, I&#8217;m sure you will have great first-hand experiences.</p>
<p>We write Latest Tech updates in <a href="http://geeknizer.com/tag/open-source">Open Source</a>, <a href="http://geeknizer.com/tag/programming">Programming</a>, <a href="http://geeknizer.com/tag/java">Java</a>, Tech News find us on <a>Twitter <strong>@taranfx</strong></a><strong> </strong>or subscribe below:</p>
]]></content:encoded>
			<wfw:commentRss>http://geeknizer.com/best-cross-platform-gui/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Oracle Details Plan for Merging Java Hotspot, JRocket VM</title>
		<link>http://geeknizer.com/oracle-merge-java-hotspot-jrocket/</link>
		<comments>http://geeknizer.com/oracle-merge-java-hotspot-jrocket/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 18:52:21 +0000</pubDate>
		<dc:creator>Tarandeep Singh</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Sun]]></category>

		<guid isPermaLink="false">http://geeknizer.com/oracle-merge-java-hotspot-jrocket</guid>
		<description><![CDATA[After finishing off it&#8217;s recent acquisition of Sun and BEA (earlier),  Oracle is set to do magic around the heart of Java, Virtual Machines. Larry had promised that Oracle will... <span class="meta-more"><a href="http://geeknizer.com/oracle-merge-java-hotspot-jrocket/">Read more &#187;</a></span>]]></description>
			<content:encoded><![CDATA[<p><a href="http://geeknizer.com/wp-content/uploads/2010/02/oraclejava.jpg"><img class="alignleft" title="oracle java" src="http://geeknizer.com/wp-content/uploads/2010/02/oraclejava_thumb.jpg" border="0" alt="oracle-java" width="260" height="260" /></a> After finishing off it&#8217;s <a href="http://geeknizer.com/oracle-sun-merger">recent acquisition of Sun</a> and BEA (earlier),  <a href="http://geeknizer.com/tag/oracle">Oracle</a> is set to do magic around the heart of <a href="http://geeknizer.com/tag/java">Java</a>, Virtual Machines.</p>
<p>Larry had promised that <a href="http://geeknizer.com/oracle-to-invest-hevily-in-java-in-future">Oracle will continue to innovate in Java</a>, and the first step seems to be on the road. Oracle is planning to merge the Sun HotSpot Java Virtual Machine with the JRockit JVM, to produce a single JVM with ETA of 18 months to two years.</p>
<p>For the short term, the company will continue to evolve both technologies but the future is bringing best of both worlds together.</p>
<blockquote><p>&#8220;It&#8217;s not an easy problem taking the best of each, figuring out what the long-term convergence plan is,&#8221; said Reinhold. &#8220;We&#8217;re not going to just stop doing one of them. Customers have things in production on both, taking advantage of specific features in both. We&#8217;re not going to cause an earthquake and make systems fall over. At some point in time, I expect there will be one VM,&#8221; said Reinhold, Principal Engineer at Oracle.</p></blockquote>
<p>Practically, it&#8217;s a very tedious work to merge them. But it makes sense because few features of JRockit like  the mission control mechanism is much more advanced. On the other hand, HotSpot is good at pushing the performance.</p>
<blockquote><p>&#8220;Our sense with the HotSpot code, especially the server compiler, is there&#8217;s a lot more head room there. It&#8217;s a lot more-sophisticated system.&#8221;</p></blockquote>
<p>Apart from that, the Oracle engineer claims that JRockit&#8217;s garbage collector and serviceability, the HotSpot&#8217;s runtime compiler can together complement and supplement each other for even more robust Java applications.</p>
<blockquote><p>&#8220;its modularity and multilingual capabilities as well as intentions to make it a more productive platform and have it scale down to small devices&#8221;.</p></blockquote>
<p>If we look at the Java&#8217;s roadmap, <a href="www.taranfx.com/java-7-whats-new-performance-benchmark-1-5-1-6-1-7"><strong>Java JDK 7</strong></a> falls around the same time-span.  It would be interesting to see what Java would look like 2 years from now.</p>
<p><em>Thoughts?</em></p>
<p>For Latest Tech updates in <a href="http://geeknizer.com/tag/open-source">Open Source</a>, <a href="http://geeknizer.com/tag/programming">Programming</a>, <a href="http://geeknizer.com/tag/java">Java</a>, Tech News find us on <a>Twitter <strong>@taranfx</strong></a><strong> </strong>or subscribe below:</p>
<p>[via <a rel="nofollow" href="http://www.itworldcanada.com/news/oracle-will-merge-java-virtual-machines/140014" target="_blank">itworld</a>]</p>
]]></content:encoded>
			<wfw:commentRss>http://geeknizer.com/oracle-merge-java-hotspot-jrocket/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Best Java Decompiler</title>
		<link>http://geeknizer.com/java-decompiler/</link>
		<comments>http://geeknizer.com/java-decompiler/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 22:21:18 +0000</pubDate>
		<dc:creator>Tarandeep Singh</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://geeknizer.com/java-decompiler</guid>
		<description><![CDATA[Reverse engineering is becomes a necessity every now and then. When it comes to java decompilation, there are several available in the wild that do it pretty well but the... <span class="meta-more"><a href="http://geeknizer.com/java-decompiler/">Read more &#187;</a></span>]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="Java decompiler" src="http://www.highrely.com/assets/Software_Test_Web.jpg" alt="" width="161" height="121" />Reverse engineering is becomes a necessity every now and then. When it comes to <a href="http://geeknizer.com/tag/java">java </a>decompilation, there are several available in the wild that do it pretty well but the problem: Most of them are either paid or non-gui based with little IDE integration.</p>
<p>Till recently, I was using DJ decompiler, which is just a GUI on top of the jad command line utility.</p>
<p>But here comes a new Java decompiler which might kick off others from the competition: JD. Available both as native client (exe) and Eclipse plugin. I tried both of them, and I must admit, it&#8217;s pretty neat.</p>
<p>The native client has no dependencies decompiles Java classes out of the box with inbuilt Type searches, browsing much like eclipse does.</p>
<p><img class="alignnone" title="JD" src="http://java.decompiler.free.fr/jd-gui/screenshots/screenshot1.png" alt="" width="661" height="564" /></p>
<p><strong>Main Features:</strong></p>
<p>* Written in C++. This allows an extremely fast decompilation and a display.<br />
* Doesn&#8217;t need Java runtime environment for its functioning, hence works out of the box.<br />
* JD-Core works with most compilers: jdk1.1.8, jdk1.3.1, jdk1.4.2, jdk1.5.0, jdk1.6.0, jikes-1.22, harmony-jdk-r533500, jrockit90_150_06 and more.<br />
Supports most JDK 5 features<br />
<a href="http://java.decompiler.free.fr/" target="_blank"><strong>Download</strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://geeknizer.com/java-decompiler/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Java EE 6 Feature Overview</title>
		<link>http://geeknizer.com/java-ee-6-features-overview/</link>
		<comments>http://geeknizer.com/java-ee-6-features-overview/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 15:52:23 +0000</pubDate>
		<dc:creator>Tarandeep Singh</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://geeknizer.com/blog/java-ee-6-features-overview</guid>
		<description><![CDATA[Java EE 6 just got released yesterday, here is everything you need to know about, in brief. A look back: Java EE 5 was a remarkable step towards a mature,... <span class="meta-more"><a href="http://geeknizer.com/java-ee-6-features-overview/">Read more &#187;</a></span>]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="Java EE 6" src="http://geeknizer.com/blog/wp-content/uploads/java-ee-6.jpg" alt="Java EE 6" width="217" height="209" /><a href="http://java.sun.com/developer/technicalArticles/JavaEE/JavaEE6Overview.html" target="_blank">Java EE 6 just got released yesterday</a>, here is everything you need to know about, in brief.</p>
<p><strong>A look back:</strong> Java EE 5 was a remarkable step towards a mature, widely  deployed, well   supported server-side development platform. EJB 3.0 was re-engineered to ease, the Entity Bean  model was stripped and replaced by JPA as the persistence paradigm, JSF was introduced as the  standard   presentation tier framework and JAX-WS 2.0 replaced JAX-RPC as the  SOAP web   services API. The focus of <a href="http://geeknizer.com/blog/tag/java">Java </a>EE 5 was squarely on reducing  complexity by   embracing the concepts of annotations, POJO programming,  zero-configuration   systems.</p>
<h2><span style="font-size: 13px; ">Overview</span></h2>
<h2><span style="font-weight: normal; font-size: 13px; ">Java EE 6 is next big step in the journey towards the idea of a &#8220;simple,   streamlined and well-integrated platform&#8221;. Java EE 6 includes a  rich paradigm of innovations best reflected in the technologies that comprise the  platform   including brand new APIs like WebBeans 1.0 and JAX-RS 1.1, JPA 2.0 or even  mature APIs   like Servlet 3.0, EJB 3.1</span></h2>
<p><a href=" http://jcp.org/en/jsr/detail?id=316" target="_blank"><em>JSR 316</em></a><em>: JavaTM Platform, Enterprise Edition 6 (Java EE 6) Specification.</em></p>
<p>Let&#8217;s give each one of the features a brief look:</p>
<h2><span style="font-size: 13px;">Pruning</span></h2>
<h2><span style="font-weight: normal; font-size: 13px;"><em>Pruning the Dead meat: </em>The Java EE platform is gainging weight since it&#8217;s initial launch in 1999. The idea now is to cut the dead (least used) stuff off. Java EE 6 begins the essential process of  carefully   pruning  APIs to make the platform more lightweight and to make  room for   healthier growth. Few APIs that are chopped off and why:</span></h2>
<ul>
<li><em>JAX-RPC</em> &#8212; JAX-RPC was an early attempt at modeling SOAP web services as RPC calls. Web services are now much more robust, feature-rich and popular JAX-WS API effectively supercedes JAX-RPC.</li>
<li><em>JAXR </em>&#8211; JAXR is for interfacing with UDDI registries. Unfortunately, UDDI is not widely used.</li>
<li><em>EJB 2.x Entity Beans CMP</em> &#8212; The complex, heavyweight model replaced by the popular, lightweight, POJO based JPA persistence model.</li>
<li><em>Java EE Application Deployment</em> &#8212; JSR 88 was an attempt at developing deployment tools that work across application servers. Unfortunately, this API has never got popular, and never gained much vendor support.</li>
<li>J<em>ava EE Management </em>&#8211; Application server management tools that work in a cross-vendor manner. Like JSR 88, the idea never paved off.</li>
</ul>
<p>“Pruning” an API essentially means that an application server   vendor need not support these technologies, what this doesn&#8217;t mean is that you cannot support those APIs, few larger  vendors will   probably continue supporting them atleast for some time.</p>
<h2><span style="font-size: 13px;">Profiles</span></h2>
<h2><span style="font-weight: normal; font-size: 13px;">What is the biggest  major criticism of Java EE? Its simply too  large.   The fact is, majority of Java web applications do  not utilize/leverage   the full Java EE stack. So why is that stuff still in there?</span></h2>
<p>Profiles are designed to address this issue. Profiles are essentially  sub-sets   of Java EE APIs geared towards a particular class of applications in  mind.   For example, the proposed Java EE Web Profile will only include APIs  that are   likely to be used in most Java web applications. The idea isn&#8217;t new,  Java ME supports the idea of Profiles  already.</p>
<p>Although Java EE 6 defines the rules for creating new Profiles  through separate   JSRs, only one Profile, the Web Profile is included in platform this  time. Detailed chart of Profiles can be <a href="http://java.sun.com/developer/technicalArticles/JavaEE/JavaEE6Overview_Part3.html#profprun" target="_blank">found at Sun&#8217;s documentation</a>.</p>
<p><strong> Web Beans 1.0: </strong></p>
<p>WebBeans is perhaps the most groundbreaking API developed in the Java  EE 6   time-frame. WebBeans fills a number of gaps in Java EE. Although  WebBeans is   inspired by Seam, Google Guice as well as Spring, it does not directly  mirror   any of them. Indeed, WebBeans adds a number of unique innovations of  its own. Here&#8217;s brief on it:</p>
<ul>
<li>WebBeans unifies the JSF, JPA and EJB 3 programming models to  truly feel     like a single, well-integrated platform.</li>
<li>WebBeans implicitly manages the life-cycle of all registered  components     in appropriate contexts.</li>
<li>WebBeans brings a robust set of dependency injection features to  the platform     in a completely type-safe and Java-centric way.</li>
<li>WebBeans enhances the Java EE Interceptor model by adding the  ability to     bind interceptors to annotations instead of having to bind  interceptors to     target object classes themselves.</li>
</ul>
<p>WebBeans   adds a lot of other very cool features that pave way to nextgen web applications.</p>
<p>Read More: <a href="http://jcp.org/aboutJava/communityprocess/pr/jsr299/index.html" target="_blank">Detailed Spec for Web Beans</a></p>
<p><strong> JSF 2.0: </strong></p>
<p>JSF appears to be holding ground in the Web UI layer. However, there are a  number   of valid concerns around the usability and robustness of JSF. JSF 2.0  meets   these concerns, and adds all new graded stuff:</p>
<ul>
<li>JSF formally adds Facelets as a view technology, simplified page authoring. Facelets are usually written with XHTML markup language. This allows Facelets pages to be portable across diverse development platforms.</li>
<li>JSF 2.0 brings Java EE 5 style annotation-driven configuration to  the table     via annotations such as @ManagedBean and @ManagedProperty. (reduction of faces-config.xml file).</li>
<li>JSF 2.0 changes the JSF life-cycle to account for AJAX with concept of partial page processing to handle AJAX  events.</li>
<li>Built-in  capability     to handle resources such as images, JavaScript files, CSS and the  like, capability to refer to resources via logical names,  grouping     resources into libraries and versioning.</li>
<li>Templating: You can create a page that acts as a template for other pages in an application.</li>
<li>Composite Components: a new feature in JSF that makes it easy to create customized JSF components. You can create composite components by using JSF page markup, other JSF UI components, or both</li>
<li>Support for Events</li>
</ul>
<p>Read More: <a href="http://jcp.org/aboutJava/communityprocess/pfd/jsr314/index.html" target="_blank">JSF 2.0 Detailed Spec</a></p>
<p><strong> EJB 3.1: </strong></p>
<p>EJB 3.0 was relatively well-received by the  community due to the ease it introduced. EJB 3.1 targets to continue the trend with groundbreaking new EJB 3.1 features:</p>
<ul>
<li>Business interfaces are now optional, even for Session  Beans.</li>
<li>EJB 3.1 adds the concept of Singleton Beans, thread-safe by default. Also, comes declarative concurrency controls for  greater     flexibility.</li>
<li>Scheduling:  Cron-style scheduling comes to enterprise apps.     This a significant addition to the existing limited-scope timer API.</li>
<li>Async Session Bean Method calls: Using @Asynchronous annotation, you  can even     control the asynchronous EJB method via a handle to a  java.util.concurrent.Future     object.</li>
<li>EJB Lite: A Web Profile based stripped down version. EJB Lite includes  features     like transactions and security, it does not include features like  messaging,     remoting and scheduling.</li>
<li>Packaging becomes easy,  EJB in WAR files now possible.</li>
<li>run an embedded EJB 3.1 container in Java SE environments such as JUnit tests</li>
<li>utilize standardized global JNDI names for EJB</li>
</ul>
<p>Read More: <a href="http://jcp.org/aboutJava/communityprocess/pfd/jsr318/index.html" target="_blank">EJB 3.1 Detailed Spec</a></p>
<p><strong> JPA 2.0: </strong></p>
<p>Now, JPA has been officially separated from EJB as a  distinct   API in its own. JPA has been a  success.   It enjoys great adoption rates and first-class vendor support. JPA 2.0   aims to add to the trend by adding new features:</p>
<ul>
<li>JPA 2.0 adds a number of much needed ORM mapping enhancements such  as the     ability to model collections, maps and lists  via the @ElementCollection annotation and the ability  to map     unidirectional one-to-many relationships (JPA 1.0 only allowed  bidirectional     one-to-many relationships)</li>
<li>EntityManager and Query APIs have been enhanced to  support things     like retrieving the first result (JPA 1.0 allowed the retrieval of a  <em>unique</em> result),     specifying the maximum size of query results, getting access to the  underlying     vendor-specific entity manager/query objects and pessimistic locking.</li>
<li>JPQL has been enhanced with SQL-like CASE, NULLIF, COALESCE and  like capabilities.</li>
<li>JPA 2.0 adds a Criteria API. (The Criteria API in Hibernate or TopLink is essentially     the object-oriented, type-safe, Java-centric equivalent of JPQL  statements.     This is a boon for use cases such as writing complex dynamic queries  and     avoiding runtime exceptions thrown while parsing JPQL.)</li>
<li>JPA2 standardizes second level caching, provides standard JDBC properties, flexibility of specifying timeouts and more.</li>
</ul>
<p>Read More: <a href="http://jcp.org/aboutJava/communityprocess/pfd/jsr317/index.html" target="_blank">JPA  2.0 Detailed Spec</a></p>
<p><strong> Servlet 3.0: </strong></p>
<p>Servlet 3.0 changes have generated quite a bit of excitement and  is likely   to be very well-received by the community:</p>
<ul>
<li>Servlet 3.0 introduces annotations @WebServlet, @ServletFilter and @WebServletContextListener. (reduces web.xml  cofigs)</li>
<li>web.xml fragments: The container now  looks for configuration in web.xml fragments anywhere  in the     web application classpath (such as the WEB-INF/classes directory or  jars     in the WEB-INF/lib directory) in addition to the web.xml file in  WEB-INF     directory.</li>
<li>Programmatically add  Servlets,     Filters and Listeners through the ServletContext.</li>
<li>Support for Asynchronous processing</li>
</ul>
<p>Read More: <a href="http://jcp.org/aboutJava/communityprocess/pfd/jsr315/index.html" target="_blank">Servlet 3.0 Detailed Spec</a></p>
<p><strong> JAX-RS 1.1: </strong></p>
<p><a href="http://geeknizer.com/blog/rest-vs-soap-using-http-choosing-the-right-webservice-protocol">REST </a>is increasingly gaining traction as an alternative web services  development   paradigm. We know of the advantages from <a href="http://geeknizer.com/blog/rest-vs-soap-using-http-choosing-the-right-webservice-protocol">REST vs. SOAP</a></p>
<p>Much like JAX-WS abstracts away the  low-level details   of the SOAP protocol, JAX-RS is designed to reduce REST development to  POJO   programming and annotation based configuration. Here is a high level  view of   JAX-RS:</p>
<ul>
<li>The @Path annotation determines the URL that a JAX-RS resource can  be accessed,     down to a method in a POJO.</li>
<li>Annotations like @GET, @POST, @PUT and @DELETE are used to specify  the     HTTP method that is used to access a resource.</li>
<li>Input from sources like URL query parameters, parts of the URL,  cookie     values and HTTP header values are mapped into variables via  annotations like     @QueryParam, @PathParam, @CookieParam and @HeaderParam respectively.</li>
<li>The @Produces annotation tells JAX-RS what the content type of  returned     values are such as text/xml, text/json and the like.</li>
<li>JAX-RS is integrated with Servlets, WebBeans and EJB.</li>
</ul>
<p>Overall, JAX-RS has many other powerful features that make REST development a  breeze,   just like JAX-WS makes SOAP development almost transparent.</p>
<p>Read More: <a href="http://jcp.org/aboutJava/communityprocess/final/jsr311/index.html" target="_blank">JAX-RS Detailed Spec</a></p>
<p><strong>What&#8217;s More</strong></p>
<p>We have covered the most important ones, Few we didn&#8217;t include are Enterprise Web services 1.3, JAX-WS 2.2, JAXB 2.2, XML Messaging and more. You can check them out at the<a href="http://java.sun.com/javaee/technologies/index.jsp" target="_blank"> official Java EE 6 Technologies page</a>.</p>
<p>Right now, <a href="http://netbeans.org/community/releases/68/" target="_blank">Netbeans 6.8</a>, <a href="http://download.java.net/glassfish/eclipse/" target="_blank">GlassFish Tools Bundle for Eclipse 1.2 Release Candidate</a> are the only IDEs  and GlassFish3.1 is the only application server that fully support Java EE 6.</p>
<p>Refrences:  <a href="http://java.sun.com/developer/technicalArticles/JavaEE/JavaEE6Overview.html" target="_blank">Java EE6 Detailed Overview</a>, <a href="http://java.sun.com/javaee/technologies/index.jsp" target="_blank">official Java EE 6 Technologies</a>, <a rel="nofollow" href="http://www.theserverside.com/tt/articles/article.tss?l=JavaEE6Overview" target="_blank">theserverside</a>, and <a rel="nofollow" href="http://www.devx.com/Java/Article/42351?trk=DXRSS_JAVA" target="_blank">devx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://geeknizer.com/java-ee-6-features-overview/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Java VisualVM &#8211; Developer`s Nightmare is Over</title>
		<link>http://geeknizer.com/java-visualvm/</link>
		<comments>http://geeknizer.com/java-visualvm/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 12:31:31 +0000</pubDate>
		<dc:creator>Tarandeep Singh</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[jdk6]]></category>
		<category><![CDATA[jdk7]]></category>
		<category><![CDATA[profiling]]></category>
		<category><![CDATA[visualvm]]></category>

		<guid isPermaLink="false">http://geeknizer.com/blog/?p=930</guid>
		<description><![CDATA[Java VisualVM was released more than year and a half ago, but its still worth blogging since most people don’t know about it. VisualVM is an open source tool for... <span class="meta-more"><a href="http://geeknizer.com/java-visualvm/">Read more &#187;</a></span>]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="Java Performance" src="http://www.miamisburg.com/dukeTuxJavaOne2003TShirt.jpg" alt="" width="222" height="166" />Java VisualVM was released more than year and a half ago, but its still worth blogging since most people don’t know about it.</p>
<p>VisualVM is an open source tool for monitoring and profiling your Java applications. VisualVM is now integrated with JDK 6 update 7 release and also available as a <a href="https://visualvm.dev.java.net/download.html" target="_blank">stand-alone setup</a>. <a href="http://geeknizer.com/blog/java-7-whats-new-performance-benchmark-1-5-1-6-1-7" target="_blank">Java 7</a> plans to integrate next version 1.2.</p>
<p>So, from now on you need not pay a hefty price for licensing third party profilers. In this article we’ll walk through the features of VisualVM and see how it is different from commercial profiling tools.</p>
<p>Let’s see what the entire buzz is all about.</p>
<p>It provides a nice graphical user interface for monitoring and troubleshooting <a href="http://geeknizer.com/blog/tag/java" target="_blank">Java </a>applications and integrates several troubleshooting features introduced in JDK 5 and 6 as command-line utilities into this single <a href="http://geeknizer.com/blog/tag/gui" target="_blank">GUI </a>tool.</p>
<p>I liked their screen-cast that shows VisualVM in action. It should help you get started:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="410" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://blip.tv/play/AeGPcZKdZQ" /><embed type="application/x-shockwave-flash" width="600" height="410" src="http://blip.tv/play/AeGPcZKdZQ"></embed></object></p>
<p>VisualVM, Java’s own monitoring, profiling and performance  <a href="http://geeknizer.com/blog/tag/benchmark" target="_blank">benchmarking </a>tool.</p>
<p>Even though many monitoring and diagnostics features are enhanced and introduced in Java 6, still it has been lacking an out-of-the-box bundling of a convincing visual Java application monitoring or profiling tool, until the most recent JDK6 Update 7.</p>
<p>You can find VisualVM under the bin directory of your JDK6u7 installation. Just double click the exe and its there the VisualVM.</p>
<p><!--[if gte vml 1]> < ![endif]--></p>
<p><img src="http://javabyexample.wisdomplug.com/images/stories/initial.png" alt="" /></p>
<p>The main window of VisualVM opens when you launch the application. By default, the Applications window is displayed in the left pane of the main window. The Applications window enables you to quickly see the Java applications running on  local and remote JVMs. The Applications window is the primary entry point for viewing further details about a particular application. Right-clicking an application node opens the popup menu where you can choose to open the main application tab or take thread or heap dumps.</p>
<p><!--[if gte vml 1]> < ![endif]--></p>
<p><img class="alignleft" src="http://javabyexample.wisdomplug.com/images/stories/vvm-anagram-applications.png" alt="" width="292" height="206" /></p>
<p>If you have used the Netbeans platform, you can easily recognize that VisualVM is also built upon the Netbeans Platform.</p>
<p>Now that you have VisualVM running you can do several things like</p>
<p>1)      Create and visually view heap Dumps</p>
<p>2)      Profile memory usage</p>
<p>3)      Profile <a href="http://geeknizer.com/blog/tag/cpu" target="_blank">CPU </a>Usage</p>
<p>4)      Profile Threads</p>
<p>In the past you had to use one or more commercial tools to get the above tasks done. But with VisualVM you have one integrated tool that can do all the above.</p>
<p>VisualVM allows you to do much more than traditional monitoring and <a href="http://geeknizer.com/blog/tag/profiling" target="_blank">profiling</a>.</p>
<p>1)      You can take a snap shot of the thread status and heap status and save them for analyzing offline.</p>
<p>2) You can monitor multiple applications both local and remote from a single VisualVM instance. You can also take simultaneous thread dumps of multiple applications for analyzing distributed dead locks.</p>
<p>3) No need for complex configuration. Traditional memory profilers either require you to run your applications in a special, modified JVM or start your applications with the profiler agent. But with VisualVM, you start your java applications normally and VisualVM automatically lists the Java applications running on your local machine.</p>
<p>4) VisualVM is <em>extensible</em>. Yes we love plugins, and since VisualVM is built on the NetBeans Platform, its architecture is modular and easy to extend with plugins. There are several plugins already available for VisualVM like:- MBeans Browser, JConsole Plugins Container, VisualVM Extensions, Visual GC Plugin, GlassFish Plugin, BTrace Plugin, TDA Plugin.</p>
<div class="snap_preview">
<p>VisualVM, the lightweight profiler and troubleshooting tool is available to build as part of <a href="http://icedtea.classpath.org/">IcedTea6</a> for 32 and 64 bit arch <img class="wp-smiley" src="http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif" alt=":)" /> . The whole thing builds from source — NetBeans platform7 and profiler2 (visualvm_preview2), and finally VisualVM 1.0. A binary launcher <code>`jvisualvm`</code> is put in the ${JDK}/bin directory along with the rest of the tools.</p>
<p>Here are some VisualVM Screenshots:</p>
<p><em>Screenshot</em>1: <a href="http://geeknizer.com/blog/tag/benchmark" target="_blank">Benchmark </a>CPU usage and Heap memory usage during execution of a <a href="http://geeknizer.com/gallery" target="_blank">JavaFX web gallery</a>.</p>
<p style="text-align: center;"><img class="aligncenter" src="http://farm3.static.flickr.com/2570/3676241004_28b0c003f4_o_d.jpg" alt="" width="716" height="504" /></p>
<p style="text-align: center;"><em>Screenshot 2:</em> Method, class Execution Profiler</p>
<p style="text-align: center;"><img class="aligncenter" src="http://farm3.static.flickr.com/2539/3675428237_0c74dd7b3e_o_d.jpg" alt="" width="730" height="505" /></p>
<p>This tool has a  lot of potential. A while back I used to <a href="http://geeknizer.com/blog/why-choose-javafx-how-to-code-benchmark-graphics-cpu-memory" target="_blank">benchmark JavaFX</a>. And today, it&#8217;s my first choice for benchmarking any application. Finding memory leaks, performance bottlenecks, Heap usage optimizations, all can be done graphically, goodbye to other tools.</p>
<p>For many situations, this tool can prove out to be a great reverse-engineering tool at Runtime. For instance when you have a jar, war,  ear running and it is misbehaving and there is no traces in the logs, visualVM can help. This tool will let you know what part of code was executed that caused peaks in CPU/memory usage, or potential memory hogs in your application.</p>
<p>Threads tab, like many other debuggers, will give you complete info on all the running threads: Time, state, id, etc.</p></div>
<p>See also the Java VisualVM User Guide:<br />
<a href="http://java.sun.com/javase/6/docs/technotes/guides/visualvm/index.html"> http://java.sun.com/javase/6/docs/technotes/guides/visualvm/index.html</a><br />
VisualVM project page:<br />
<a href="https://visualvm.dev.java.net/gettingstarted.html%22"> https://visualvm.dev.java.net/gettingstarted.html</a></p>
<p><em>Do you know any <a href="http://geeknizer.com/blog/tag/open-source" target="_blank">Open source</a> tool that can outperform VisualVM in speed and features? Let me Know.</em></p>
<p>Follow me on <a href="http://twitter.com/taranfx" target="_blank">Twitter</a>, Join <a href="http://www.facebook.com/pages/Taranfx/286037690264" target="_blank">Facebook Page</a> or <a href="http://feeds2.feedburner.com/taranfx" target="_blank">Subscribe to RSS</a> for more Tech Updates.</p>
]]></content:encoded>
			<wfw:commentRss>http://geeknizer.com/java-visualvm/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Prevent and Recover from Java OutOfMemory Error</title>
		<link>http://geeknizer.com/prevent-and-recover-from-java-outofmemory-error/</link>
		<comments>http://geeknizer.com/prevent-and-recover-from-java-outofmemory-error/#comments</comments>
		<pubDate>Sun, 11 Oct 2009 09:05:00 +0000</pubDate>
		<dc:creator>Tarandeep Singh</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://geeknizer.com/blog/?p=2093</guid>
		<description><![CDATA[Like any other programming language, Java puts a restriction on amount of memory you can use for the execution of programs. The difference being &#8211; Most other languages like C++,... <span class="meta-more"><a href="http://geeknizer.com/prevent-and-recover-from-java-outofmemory-error/">Read more &#187;</a></span>]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" src="http://1.bp.blogspot.com/_IlwQwSAxsjE/SYlX62pW6rI/AAAAAAAAEZY/0vLfLYmVC_A/s320/memory.png" alt="" width="145" height="178" />Like any other programming language, <a href="http://geeknizer.com/blog/tag/java" target="_blank">Java </a>puts a restriction on amount of memory you can use for the execution of programs. The difference being &#8211; Most other languages like C++, PHP, user has the power and the pain of allocating and handling the memory operation.</p>
<p>Since Java uses JVM, the developer&#8217;s pain of thinking about memory allocation is gone but sudden deaths like OutOfMemoryException become inevitable for Memory intensive <a href="http://geeknizer.com/blog/tag/programming" target="_blank">programming</a>. This is exactly what we are going to discuss here &#8211; How to prevent it and recover from it.</p>
<p><strong>Need of Recovery</strong></p>
<p>The advantage can be seen almost everywhere. Let&#8217;s take example for distributed J2EE applications, which involves huge databases and processing of a large amount of data within a class, sudden death of Java execution threads can cause trouble by creating stale transactions, database connections and what not. If we can, somehow, prevent this situation, it will ensure there will be no data corruption and the JVM, which may host multiple applications or atleast multiple threads, is able to recover from the memory errors. You can always call the GC &amp; runFinalization once this error occurs to free some memory.</p>
<p><strong>Methodology</strong></p>
<p>The easiest prevention, as you already know is to increasing the JVM arguments to increase maximum memory. But it&#8217;s not what we intend to discuss, rather a better approach.</p>
<p><span><span style="margin-left: 112px ! important;"> </span></span></p>
<blockquote>
<pre>Runtime.getRuntime().freeMemory()</pre>
</blockquote>
<p>freeMemory() gives the amount of free memory at runtime. This gives you free memory at any instant,  but it changes as the memory requirements change for the program when JVM actively allocates more space for execution till the upperlimit -Xmx is reached.</p>
<p><span style="background-color: #ffffff;">We need an effective way to tackle this. We will be using one of the utility classes from <a href="http://db.apache.org/derby/javadoc/engine/overview-summary.html" target="_blank">Apache Derby V10.6 Internals</a> called <a href="http://db.apache.org/derby/javadoc/engine/org/apache/derby/iapi/services/memory/LowMemory.html" target="_blank">LowMemory</a>. The class has the below 2 methods drawing our intrest.</span></p>
<p><em>void setLowMemory()</em> &#8211; Sets a low memory watermark where the owner of this object just hit an OutOfMemoryError.</p>
<p><em>boolean isLowMemory() </em>- Returns true if a low memory water mark has been set and the current free memory is lower than it.</p>
<blockquote>
<pre>public class MemoryTest {
    public static void main(String[] args) throws Exception {
		MemoryTest memoryTest = new MemoryTest();
		LowMemory lowMem = new LowMemory();
		long[] memLongVar = new long[80000];
		lowMem.setLowMemory();
		memoryTest.fillMemory(lowMem);
    }
    public void fillMemory(LowMemory lowMem) throws Exception {
		int voidSpace = 20;
		for (int outIterator=1;outIterator&lt;1024;outIterator++) {
			System.out.println ("Iteration " + outIterator
				+ "Free: " + Runtime.getRuntime().freeMemory());
			int inIterator=10;
			if (!lowMemory.isLowMemory()) {
				int[] memIntVar = new int[voidSpace];
				do {
					memIntVar[inIterator]=0;
					inIterator--;
				}
				while(inIterator&gt;0);
				voidSpace = voidSpace * 10;

			} else {
				System.out.println ("Memory lower than threshold,
				will exit.");
				doSomeRecoveryMechanism();
				// Quit with Notification,prevent other Threads from dying</pre>
<pre style="font: normal normal normal 12px/18px Consolas, Monaco, 'Courier New', Courier, monospace;">	<span style="background-color: #ffffff;">	                break;</span></pre>
<p>} 		} 	} }</p></blockquote>
<p><em>Updated</em>: By following an application dependent logic to gracefully exit, now your other enterprise applications will not all die in one fusion reaction, and we can prevent the single point of failure from occuring to a great extent. Chance are there that other threads finish the execution ion next couple of seconds and it frees-up some memory for your applications.</p>
<p>If other application continue to eat more memory, there is no way you can recover from this.<br />
I&#8217;m open to your comments, do let me know what you think.</p>
]]></content:encoded>
			<wfw:commentRss>http://geeknizer.com/prevent-and-recover-from-java-outofmemory-error/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Best Java Swing Look and Feel Themes &#124; Top 10</title>
		<link>http://geeknizer.com/best-java-swing-look-and-feel-themes-professional-casual-top-10/</link>
		<comments>http://geeknizer.com/best-java-swing-look-and-feel-themes-professional-casual-top-10/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 14:40:18 +0000</pubDate>
		<dc:creator>Tarandeep Singh</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[developers]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[ui]]></category>

		<guid isPermaLink="false">http://geeknizer.com/blog/?p=2045</guid>
		<description><![CDATA[For Years, Java Swing  has suffered from poor UI colors and designs. Since the support of Java to let people desing their own Themes, it has revamped those old boring... <span class="meta-more"><a href="http://geeknizer.com/best-java-swing-look-and-feel-themes-professional-casual-top-10/">Read more &#187;</a></span>]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" src="http://3.bp.blogspot.com/_gEI4saifCbs/SKUUtYoS_UI/AAAAAAAAAG8/Ik2_WejpzNo/s320/733px-Netbeans-Duke.png" alt="" width="224" height="183" />For Years, Java Swing  has suffered from poor UI colors and designs. Since the support of Java to let people desing their own Themes, it has revamped those old <em>boring </em><a title="More posts about User Interface" href="http://geeknizer.com/blog/tag/ui" target="_blank">UIs</a>.</p>
<p>When we talk about designing look and feel, we know it is about implementing different UI classes for different components.</p>
<p>Today, we can use <a href="http://weblogs.java.net/blog/2009/01/26/integrate-your-ui-class-synth-look-and-feel" target="_blank">Synth look and feel</a>, which    allow us to customize the look and feel by writing an XML file.</p>
<p>The other way is to use UIManager to load the L&amp;F class directly from classpath. For which the code goes like this:</p>
<blockquote>
<pre>UIManager.setLookAndFeel("fully qualified name of look and feel");</pre>
</blockquote>
<p>The Look and Feel Libraries are broadly divided into two categories.</p>
<ol>
<li>Skinnable</li>
<li>Non-Skinnable</li>
</ol>
<p><span style="font-size: x-small;"><span style="font-size: small;">Skinnable look and feel can&#8217;t only change the LAF of wigets in your application, but, can also change the look and feel of window title bars and borders. </span></span> So here are few Professional and Casual themes that you can use to make your application much more attractive and vibrant:</p>
<h2><strong>Professional Themes</strong></h2>
<p><strong>Nimbus</strong></p>
<p>This is the theme that&#8217;s getting a lot of popularity, specially, after Solaris 10 adopted it.</p>
<p>Here&#8217;s how you can set it:</p>
<blockquote>
<pre style="font: normal normal normal 12px/18px Consolas, Monaco, 'Courier New', Courier, monospace;">UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");</pre>
</blockquote>
<p style="text-align: left;">Here&#8217;s a screenshot:<br />
<img class="aligncenter" src="http://java.sun.com/javase/6/docs/technotes/guides/jweb/images/NimbusLAF.png" alt="" width="505" height="462" /></p>
<p><strong>Substance</strong><br />
Substance has 6 different flavours for the metallic Look an Feel. The Good one is below. You can checkout other color schemes <a href="https://substance.dev.java.net/images/screenshots/skins/creme1.png" target="_blank">here </a>(though they are not that attractive). <a href="https://substance.dev.java.net/servlets/ProjectDocumentList?folderID=11439" target="_blank">Download</a><img class="aligncenter" src="https://substance.dev.java.net/images/screenshots/skins/creme1.png" alt="" width="315" height="245" /></p>
<p><strong>Sea Glass </strong><br />
This is relatively anew theme under development. This one is among the best I&#8217;ve seen around. It that mocks Mac-kind look inspired by different colored stones. You can checkout the details <a href="http://explodingpixels.wordpress.com/2009/10/01/sea-glass-look-and-feel/" target="_blank">here</a>.<img class="aligncenter" src="http://explodingpixels.files.wordpress.com/2009/10/controls2.png" alt="" width="427" height="337" /></p>
<p><strong>Info Look And Feel </strong><br />
This one is based on the Metal look and feel. This is the one that you will find in most enterprise or commercial Java Apps. It&#8217;s designed to have a slim, clean appearance. It has support for themes. Works best for Windows, though looks decent on KDE as well. <a href="http://www.infonode.net/index.html?ilf" target="_blank">Download</a></p>
<p><img style="display: block; margin-left: auto; margin-right: auto; border: 0px initial initial;" src="http://javabyexample.wisdomplug.com/images/stories/idwdemo.png" alt="" width="480" height="355" /></p>
<p><strong>Pgs Look And Feel </strong><br />
I would call this a windows and KDE/Gnome hybrid. It aims be a very modern cross-platform LAF with nice features. the UI components are not as-sleek-as-others. <a href="http://dock.javaforge.com/" target="_blank">Download</a>
</p>
<p style="text-align: center; "><img class="aligncenter" src="http://javabyexample.wisdomplug.com/images/stories/psgl1.png" alt="" width="426" height="447" /></p>
<p><strong>Quaqua Look And Feel </strong><br />
The Quaqua LAF is an user interface library which adheres closest to Mac OS X. <a href="http://www.randelshofer.ch/quaqua/download.html" target="_blank">Download</a></p>
<p><img class="aligncenter" src="http://javabyexample.wisdomplug.com/images/stories/quaqua_metalworks.png" alt="" width="460" height="370" /></p>
<h2><strong>Casual Themes</strong></h2>
<p><strong>Oyaha</strong><br />
This one is a cool and trendy. It&#8217;s unique, as it features transparency, sounds  and is Skinable. For the cool generations. <a href="http://www.oyoaha.com/lookandfeel/" target="_blank">Download</a><br />
<img class="aligncenter" src="http://javabyexample.wisdomplug.com/images/stories/oyoaha.jpg" alt="" width="577" height="367" /></p>
<p><strong>Liquid Look And Feel </strong><br />
Liquid gives the application a crystal effect on the buttons. It&#8217;s based on Mosfet&#8217;s Liquid 0.9.6 theme for KDE 3.x. Reminds of Candy theme from StyleXP. <a href="https://liquidlnf.dev.java.net/" target="_blank">Download</a></p>
<p><img class="aligncenter" src="http://javabyexample.wisdomplug.com/images/stories/liquid.png" alt="" width="500" height="499" /></p>
<p><strong>JTattoo </strong><br />
JTattoo is skinnable and consists of several different LAF. User can customize the look by choosing among different available color schemes. <a href="http://www.jtattoo.net/" target="_blank">Download</a></p>
<p style="text-align: center; "><img class="aligncenter" src="http://www.jtattoo.net/images/AcrylScreenShot.jpg" alt="" width="450" height="338" /></p>
<p>Make Java applications more attractive, and encourage <a href="http://geeknizer.com/blog/tag/open-source" target="_blank">Open Source</a>, cheers.</p>
<p>I`ll keep on updating the list. Make sure you check back.</p>
<p><em>Do you know of any others? I`ll be happy to include them. </em><a href="http://twitter.com/taranfx" target="_blank"><em>Follow me on Twitter</em></a><em>.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://geeknizer.com/best-java-swing-look-and-feel-themes-professional-casual-top-10/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Develop Java Native-like WebApps on iPhone using PrimeFaces</title>
		<link>http://geeknizer.com/develop-java-native-like-webapps-on-iphone-using-primefaces/</link>
		<comments>http://geeknizer.com/develop-java-native-like-webapps-on-iphone-using-primefaces/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 13:56:11 +0000</pubDate>
		<dc:creator>Tarandeep Singh</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[developers]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Open source]]></category>

		<guid isPermaLink="false">http://geeknizer.com/blog/develop-java-native-like-webapps-on-iphone-using-primefaces/</guid>
		<description><![CDATA[iPhone SDK doesn&#8217;t support Java for the development code. Neither does Java runs on iPhone (though you can Compile, Run, Install Java apps on iPhone by jailbreaking). But there is... <span class="meta-more"><a href="http://geeknizer.com/develop-java-native-like-webapps-on-iphone-using-primefaces/">Read more &#187;</a></span>]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" src="http://img.skitch.com/20090708-jsf3pg392hupjfjsddds3m3nxp.jpg" alt="" width="101" height="153" /><a href="http://geeknizer.com/blog/?tag=iphone" target="_blank">iPhone</a> <a href="http://geeknizer.com/blog/?tag=sdk" target="_blank">SDK</a> doesn&#8217;t support Java for the development code. Neither does Java runs on iPhone (though you can <a href="http://geeknizer.com/blog/?p=1763" target="_blank">Compile, Run, Install Java apps on iPhone</a> by jailbreaking). But there is just one legal way of developing applications in <a href="http://geeknizer.com/blog/?tag=java" target="_blank">Java</a> for the iPhone: using PrimeFaces.</p>
<p>PrimeFaces is an <a href="http://geeknizer.com/blog/?tag=open-source" target="_blank">Open Source</a> library for JSF which lets you create a rich set of components and provide non-rendering JSF extensions to ease development on various webapps. Though not intended for iPhone alone, it serves iPohne webapps quiet efficiently.</p>
<p>PrimeFaces basically has 3 components: UI, Optimus, FaceTrace. <img class="alignright" src="http://primefaces.prime.com.tr/en/images/schema.png" alt="" width="240" height="75" /> Details are available on the <a href="http://primefaces.prime.com.tr/en/" target="_blank">PrimeFaces site</a>.</p>
<p>The framework is very powerful and Rich in UI. It has built-in 50+ AJAX based functions that serve most of the effects you would typically need to design iPhone apps.</p>
<p>To demonstrate the power, a <a href="http://cagataycivici.wordpress.com/2009/09/20/sample-iphone-apps-with-touchfaces/" target="_blank">developer</a> has hosted a <a href="http://97.107.138.40:8080/prime-showcase/touch/index.jsf" target="_blank">webpage dedicated to the webapps iPhone</a> can run, just like it does any Native application and the corresponding <a href="http://code.google.com/p/primefaces/source/browse/examples/trunk/prime-showcase/src/main/webapp/touch/default.xhtml" target="_blank">source code is available</a> on Google code.<br />
Checkout the Video for iPhone sample apps:<br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="500" height="313" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=6671232&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=ff0179&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="500" height="313" src="http://vimeo.com/moogaloop.swf?clip_id=6671232&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=ff0179&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://geeknizer.com/develop-java-native-like-webapps-on-iphone-using-primefaces/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to Install, Compile, Run Java Apps on iPhone</title>
		<link>http://geeknizer.com/how-to-install-compile-run-java-apps-on-iphone/</link>
		<comments>http://geeknizer.com/how-to-install-compile-run-java-apps-on-iphone/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 20:13:32 +0000</pubDate>
		<dc:creator>Tarandeep Singh</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[develope]]></category>
		<category><![CDATA[developers]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://geeknizer.com/blog/?p=1763</guid>
		<description><![CDATA[So what if Apple will not allow Java to come on iPhone? We have a workaround living for a year now. But not many people know about it, and it&#8217;s... <span class="meta-more"><a href="http://geeknizer.com/how-to-install-compile-run-java-apps-on-iphone/">Read more &#187;</a></span>]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" src="http://iphoneroot.com/wp-content/uploads/2008/04/java_iphone_sm.jpg" alt="" width="130" height="167" />So what if Apple will not allow Java to come on iPhone? We have a workaround living for a year now. But not many people know about it, and it&#8217;s scattered. But I`ll make it easy for you.</p>
<p><em>Disclaimer- It&#8217;s illegal to jailbreak and blah blah, do it at you own risk.</em></p>
<p>Here is an Easy Tutorial -</p>
<p><strong>Pre-requistes</strong> &#8211; You iPhone should be Jailbroken and &#8220;terminal&#8221; installed. You can follow the <a href="http://geeknizer.com/blog/?tag=jailbreak" target="_blank">guide here</a>.<a href="http://farm3.static.flickr.com/2448/3868621522_5dd94c9359.jpg" target="_blank"><img class="alignright" title="iPhone Java Isntall" src="http://farm3.static.flickr.com/2448/3868621522_5dd94c9359.jpg" alt="" width="134" height="202" /></a></p>
<p><strong>Step 1. </strong>Goto Cydia and search for &#8220;<strong>Java</strong>&#8221; and install it. The package is Approx. 12mb in size and installs Classpath, iPhone/Java, JamVM, Java SQLite, JocStap, etc. In addition few sample applications with source are installed (HelloJava, HelloScript). Then search for &#8220;<strong>Jikes</strong>&#8220;, the compiler or javac equivalent, and install it.</p>
<p><strong>Step 2. </strong>Now it&#8217;s time to write some code. There are two ways either create .java file with your favorite editor  and transfer to iPhone or directly use vi editor on iPhone (later would be very cumbersome to do.). If you make first choice, use WinSCP or any other SFTP client to transfer file to iPhone. You an use any directory. I`ll use <em>/tmp</em> for my example.</p>
<p style="text-align: center;"><img class="aligncenter" src="http://farm4.static.flickr.com/3520/3868640708_1c584b403c.jpg" alt="" width="500" height="147" /></p>
<p><strong>Step 3.</strong> If you are developer, you know the next step. Open &#8220;Terminal&#8221; and type in <img class="alignright" src="http://farm3.static.flickr.com/2438/3867843387_240bdcdc3b.jpg" alt="" width="256" height="384" />&#8220;su&#8221; enter, followed by root password i.e. &#8220;alpine&#8221;. Then validate java installation &#8220;java -version&#8221;. It would display &#8220;1.5.0 &#8220;and the build info, compiled with GCC on Apple bla bla. and also type &#8220;jikes&#8221; and test. So we are ready. to compile the code. (root permissions are required to create .class file as a result of compilation)</p>
<p><strong>Step 4.</strong> Navigate to location where you placed your java source file. &#8220;<em>cd /tmp</em>&#8221; and then compile the file using command</p>
<p><em>&#8220;jikes Taranfx.java -cp /usr/lib/rt.jar&#8221;</em></p>
<p>You will have to mention the classpath during compile, else it will not work.</p>
<p>Then run it using standard command</p>
<p>&#8220;<em>java Taranfx</em>&#8221;</p>
<p>And you get the output <img src='http://geeknizer.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://geeknizer.com/how-to-install-compile-run-java-apps-on-iphone/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 1.565 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-02-07 20:03:17 -->
<!-- Compression = gzip -->
