<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-28019847</id><updated>2026-02-14T14:23:01.763+05:30</updated><category term="Java"/><category term="code"/><category term="javafx"/><category term="API"/><category term="JDK"/><category term="jdk6"/><category term="sample"/><category term="runtime"/><category term="OpenJDK"/><category term="example"/><category term="ClassLoader"/><category term="Image"/><category term="animation"/><category term="compiler optimization"/><category term="gc"/><category term="BOJUG"/><category term="Production Suite"/><category term="Swing"/><category term="blog"/><category term="garbage collector"/><category term="javap"/><category term="jdk8"/><category term="jfilechooser"/><category term="jit"/><category term="jug"/><category term="plugin2"/><category term="presentation"/><category term="16 bit"/><category term="2D"/><category term="32 bit"/><category term="3D"/><category term="64 bit processor"/><category term="AWT"/><category term="BorderLayout"/><category term="Bug Pattern"/><category term="Collator"/><category term="DeadLock"/><category term="Desktop"/><category term="File"/><category term="Finalize"/><category term="FlowLayout"/><category term="GridLayout"/><category term="Inheritance"/><category term="JDK 1.5"/><category term="Lighting"/><category term="LnF"/><category term="Locale"/><category term="Nimbus"/><category term="PhotoShop"/><category term="Polygon"/><category term="PrintFlagsFinal"/><category term="RIA"/><category term="SCJP"/><category term="Swing UI"/><category term="SwingUtilities"/><category term="Thread-Safe"/><category term="UI"/><category term="UnlockDiagnosticVMOptions"/><category term="XX options"/><category term="Zorder"/><category term="actionlistener"/><category term="algorithm"/><category term="assemble"/><category term="atomic operation"/><category term="bangalore"/><category term="batch"/><category term="best practices"/><category term="border"/><category term="c1"/><category term="c2"/><category term="call by reference"/><category term="call by value"/><category term="cerfication"/><category term="coarsening optimization"/><category term="comparison"/><category term="competition"/><category term="completable future"/><category term="component"/><category term="conversion"/><category term="debug"/><category term="diskspace"/><category term="docs"/><category term="drag"/><category term="filefilter"/><category term="flickr"/><category term="g1"/><category term="garbage first"/><category term="gaussian blur"/><category term="heavyweight"/><category term="hotspot"/><category term="hyperlink"/><category term="java user group"/><category term="javac"/><category term="javahome"/><category term="javascript"/><category term="jdk1.4.2"/><category term="jdk5"/><category term="jdk7"/><category term="jps"/><category term="jre"/><category term="just-in-time"/><category term="jvm"/><category term="jvmstat"/><category term="keyevent"/><category term="layout"/><category term="lightweight"/><category term="links"/><category term="liveconnect"/><category term="look and feel"/><category term="market"/><category term="motion"/><category term="mouseevent"/><category term="mousemove"/><category term="nashorn"/><category term="netbeans"/><category term="online"/><category term="optimization"/><category term="oracle"/><category term="orkut"/><category term="path"/><category term="performance"/><category term="plugin"/><category term="process"/><category term="reflection"/><category term="registry"/><category term="search demo"/><category term="sh"/><category term="sorting"/><category term="stats"/><category term="string"/><category term="stringbuffer"/><category term="sun"/><category term="sun tech days"/><category term="synchronized"/><category term="threading"/><category term="typecheck"/><category term="ucertify"/><category term="volatile"/><title type='text'>&lt;&lt; Java Forever &gt;&gt;</title><subtitle type='html'>It&#39;s most Adaptable, not the Most Powerful, who survives !</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://java4ever.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://java4ever.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Vaibhav Choudhary</name><uri>http://www.blogger.com/profile/11145353943937580111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWJa-clA9bmSF9tmOeDZHpD_gX2QkRaahdSVl6lYhC7sqdeXAgdDZoLM_b21HBIxpE4-nSvkX4IEm33OSZQ5e3A6oXd37wSC4y2PAk7TJiLlbJwZCCA5X0Mb1sfo8hFCc/s113/55455336_10156641084541281_7257414606094598144_n.jpeg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>103</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-28019847.post-2488810011964787004</id><published>2015-07-25T20:40:00.000+05:30</published><updated>2015-07-25T20:40:02.894+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="bangalore"/><category scheme="http://www.blogger.com/atom/ns#" term="completable future"/><category scheme="http://www.blogger.com/atom/ns#" term="gc"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="JDK"/><category scheme="http://www.blogger.com/atom/ns#" term="jdk8"/><category scheme="http://www.blogger.com/atom/ns#" term="jug"/><title type='text'>Bangalore Java User Group (JUG)- July Meet-up</title><content type='html'>Today, we had very interesting sessions on Concurrent Garbage Collector and Completable Future by Deepak and Srinivasan. &lt;br /&gt;
&lt;br /&gt;
Deepak, while taking about the Azul Garbage Collector covers:&lt;br /&gt;
- The basics of GC&lt;br /&gt;
- How we can proceed for a concurrent GC&lt;br /&gt;
- What are the challenges to achieve a concurrency in GC&lt;br /&gt;
&lt;br /&gt;
Srinivasan while talking about the Completable Future covers:&lt;br /&gt;
- How the new Completable Future of JDK 8 is better than the old calls&lt;br /&gt;
- How the real life applications like Banking, Online booking systems can use this feature. &lt;br /&gt;
- What were the old bottleneck which got addressed.&lt;br /&gt;
&lt;br /&gt;
If you are also interesting in joining Bangalore Java User Group, follow us on:&lt;br /&gt;
&lt;br /&gt;
Our meetup page - &lt;a href=&quot;http://www.meetup.com/BangaloreOpenJUG/&quot;&gt;http://www.meetup.com/BangaloreOpenJUG/&lt;/a&gt;&lt;br /&gt;
Our Facebook page - &lt;a href=&quot;https://www.facebook.com/groups/1018617618156273/&quot;&gt;https://www.facebook.com/groups/1018617618156273/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjG9Kn7fk7oK3MYm76DuxG2NCHXBnZOzOKX1m-06pNURSqofH9aZM1WhJAQuqrC9vEQIlBvcwfDyV2HHkTt4nMmbcYmkYOwhklF_8MAC8DruGUy2VN-aoWn_6spNBwENpDYNERE/s1600/jug_1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjG9Kn7fk7oK3MYm76DuxG2NCHXBnZOzOKX1m-06pNURSqofH9aZM1WhJAQuqrC9vEQIlBvcwfDyV2HHkTt4nMmbcYmkYOwhklF_8MAC8DruGUy2VN-aoWn_6spNBwENpDYNERE/s1600/jug_1.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&amp;nbsp;Soon, I will provide the links for the presentation.</content><link rel='replies' type='application/atom+xml' href='http://java4ever.blogspot.com/feeds/2488810011964787004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/28019847/2488810011964787004' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/2488810011964787004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/2488810011964787004'/><link rel='alternate' type='text/html' href='http://java4ever.blogspot.com/2015/07/bangalore-java-user-group-jug-july-meet.html' title='Bangalore Java User Group (JUG)- July Meet-up'/><author><name>Vaibhav Choudhary</name><uri>http://www.blogger.com/profile/11145353943937580111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWJa-clA9bmSF9tmOeDZHpD_gX2QkRaahdSVl6lYhC7sqdeXAgdDZoLM_b21HBIxpE4-nSvkX4IEm33OSZQ5e3A6oXd37wSC4y2PAk7TJiLlbJwZCCA5X0Mb1sfo8hFCc/s113/55455336_10156641084541281_7257414606094598144_n.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjG9Kn7fk7oK3MYm76DuxG2NCHXBnZOzOKX1m-06pNURSqofH9aZM1WhJAQuqrC9vEQIlBvcwfDyV2HHkTt4nMmbcYmkYOwhklF_8MAC8DruGUy2VN-aoWn_6spNBwENpDYNERE/s72-c/jug_1.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28019847.post-8100379310749548083</id><published>2015-07-23T15:51:00.000+05:30</published><updated>2015-07-23T15:51:33.043+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="BOJUG"/><category scheme="http://www.blogger.com/atom/ns#" term="garbage collector"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="java user group"/><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="JDK"/><category scheme="http://www.blogger.com/atom/ns#" term="jdk8"/><category scheme="http://www.blogger.com/atom/ns#" term="jug"/><category scheme="http://www.blogger.com/atom/ns#" term="nashorn"/><title type='text'>Java User Group Bangalore - Lets Rock !!</title><content type='html'>Guys, if you are a Java Developer and you are in Bangalore. It&#39;s the time to meet the biggest Java User Group in Bangalore. Do join us, in JUG-Bangalore.&lt;br /&gt;
&lt;br /&gt;
Here are the talks of the month:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #141823; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 18.7600002288818px;&quot;&gt;Azul JVM - Concurrent Garbage Collection&amp;nbsp;&lt;/span&gt;&lt;br style=&quot;background-color: white; color: #141823; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 18.7600002288818px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #141823; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 18.7600002288818px;&quot;&gt;Harish Babu 60 mins&lt;/span&gt;&lt;br style=&quot;background-color: white; color: #141823; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 18.7600002288818px;&quot; /&gt;&lt;br style=&quot;background-color: white; color: #141823; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 18.7600002288818px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #141823; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 18.7600002288818px;&quot;&gt;Java 8 new Javascript engine call Nashorn&amp;nbsp;&lt;/span&gt;&lt;br style=&quot;background-color: white; color: #141823; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 18.7600002288818px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #141823; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 18.7600002288818px;&quot;&gt;Shekhar Gupta 45 mins&amp;nbsp;&lt;/span&gt;&lt;br style=&quot;background-color: white; color: #141823; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 18.7600002288818px;&quot; /&gt;&lt;br style=&quot;background-color: white; color: #141823; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 18.7600002288818px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #141823; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 18.7600002288818px;&quot;&gt;Completable Future&amp;nbsp;of JDK8&lt;/span&gt;&lt;br style=&quot;background-color: white; color: #141823; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 18.7600002288818px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #141823; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 18.7600002288818px;&quot;&gt;Srinivasan Raghavan 45 mins&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Its a free to join place without any fee. We will provide you Snacks and Java :-). Keep rocking. Do join the Facebook group: https://www.facebook.com/events/730993017030025/&lt;br /&gt;
&lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='http://java4ever.blogspot.com/feeds/8100379310749548083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/28019847/8100379310749548083' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/8100379310749548083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/8100379310749548083'/><link rel='alternate' type='text/html' href='http://java4ever.blogspot.com/2015/07/java-user-group-bangalore-lets-rock.html' title='Java User Group Bangalore - Lets Rock !!'/><author><name>Vaibhav Choudhary</name><uri>http://www.blogger.com/profile/11145353943937580111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWJa-clA9bmSF9tmOeDZHpD_gX2QkRaahdSVl6lYhC7sqdeXAgdDZoLM_b21HBIxpE4-nSvkX4IEm33OSZQ5e3A6oXd37wSC4y2PAk7TJiLlbJwZCCA5X0Mb1sfo8hFCc/s113/55455336_10156641084541281_7257414606094598144_n.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28019847.post-1897880032085972778</id><published>2015-07-21T08:07:00.001+05:30</published><updated>2015-07-21T10:21:15.531+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="blog"/><category scheme="http://www.blogger.com/atom/ns#" term="c1"/><category scheme="http://www.blogger.com/atom/ns#" term="c2"/><category scheme="http://www.blogger.com/atom/ns#" term="compiler optimization"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="JDK"/><category scheme="http://www.blogger.com/atom/ns#" term="jit"/><category scheme="http://www.blogger.com/atom/ns#" term="optimization"/><category scheme="http://www.blogger.com/atom/ns#" term="PrintFlagsFinal"/><category scheme="http://www.blogger.com/atom/ns#" term="UnlockDiagnosticVMOptions"/><category scheme="http://www.blogger.com/atom/ns#" term="XX options"/><title type='text'>VM options for optimization (C1 and C2 compilers)</title><content type='html'>&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
Many Java Developers often ask what are the flag options available for C1 and C2 Compilers or what are the flag options available for JIT compilers. Though most of the time our slides will cover some of the important VM options (-XX) but certainly we can&#39;t &amp;nbsp;provide the list of complete option in slides. This is actually quite a trivial job.&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
Here it goes:&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
1. Complete VM global flag option (redirecting it to out file):&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&lt;strong&gt;java -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal &amp;gt; out&lt;/strong&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
wc -l &amp;lt; out&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&lt;strong&gt;764 &amp;nbsp;// Total available options, did on jdk7&lt;/strong&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
2. If you will check without &amp;nbsp;&lt;strong&gt;UnlockDiagnosticVMOptions,&amp;nbsp;&lt;/strong&gt;the no.s will be bit less.&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&lt;strong&gt;java &amp;nbsp;-XX:+PrintFlagsFinal &amp;gt; out&lt;/strong&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
wc -l &amp;lt; out&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&lt;strong&gt;672&amp;nbsp;&lt;/strong&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
2. This document comes with the beautiful option of where it is been used like Product, C2 diagnostic, C1 Product and many more. So, just grep the out file with &quot;C2&quot; and see what options are available for you on C2 Compiler and which options are product options and which are diagnostic or logging options.&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&lt;strong&gt;&amp;nbsp;cat out | grep &quot;C2&quot; &amp;nbsp;(Linux/Solaris/Mac machine option, find the equivalent to windows)&lt;/strong&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
A list will come something like:&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;intx AliasLevel &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= 3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {C2 product}&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;bool AlignVector &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = true &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{C2 product}&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;intx AutoBoxCacheMax &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = 128 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {C2 product}&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;bool BlockLayoutByFrequency &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= true &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{C2 product}&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;intx BlockLayoutMinDiamondPercentage &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = 20 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{C2 product}&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;bool BlockLayoutRotateLoops &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= true &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{C2 product}&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;bool BranchOnRegister &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= false &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {C2 product}&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;intx ConditionalMoveLimit &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= 3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {C2 pd product}&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;bool DebugInlinedCalls &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = true &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{C2 diagnostic}&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
ccstrlist DisableIntrinsic &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {C2 diagnostic}&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;bool DoEscapeAnalysis &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= true &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{C2 product}&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;intx DominatorSearchLimit &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= 1000 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{C2 diagnostic}&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;intx EliminateAllocationArraySizeLimit &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = 64 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{C2 product}&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;bool EliminateAllocations &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= true &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{C2 product}&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;bool EliminateAutoBox &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= false &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {C2 diagnostic}&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;bool EliminateLocks &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= true &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{C2 product}&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;bool EliminateNestedLocks &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= true &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{C2 product}&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;bool IncrementalInline &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = true &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{C2 product}&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;bool InsertMemBarAfterArraycopy &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= true &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{C2 product}&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;intx InteriorEntryAlignment &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= 16 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{C2 pd product}&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;intx LiveNodeCountInliningCutoff &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = 20000 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {C2 product}&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&amp;nbsp;3. Running the same option for C1.&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&lt;strong&gt;cat out | grep &quot;C1&quot;&amp;nbsp;&lt;/strong&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
We can see:&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;bool C1OptimizeVirtualCallProfiling &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= true &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{C1 product}&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;bool C1ProfileBranches &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = true &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{C1 product}&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;bool C1ProfileCalls &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= true &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{C1 product}&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;bool C1ProfileCheckcasts &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = true &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{C1 product}&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;bool C1ProfileInlinedCalls &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = true &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{C1 product}&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;bool C1ProfileVirtualCalls &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = true &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{C1 product}&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;bool C1UpdateMethodData &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= true &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{C1 product}&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;intx CompilationRepeat &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {C1 product}&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;bool LIRFillDelaySlots &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = false &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {C1 pd product}&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;intx SafepointPollOffset &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = 256 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {C1 pd product}&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;bool TimeLinearScan &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= false &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {C1 product}&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;intx ValueMapInitialSize &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = 11 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{C1 product}&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;intx ValueMapMaxLoopSize &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = 8 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {C1 product}&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&lt;b&gt;&amp;nbsp;Enjoy Optimization, Enjoy JIT&#39;ing.&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://java4ever.blogspot.com/feeds/1897880032085972778/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/28019847/1897880032085972778' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/1897880032085972778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/1897880032085972778'/><link rel='alternate' type='text/html' href='http://java4ever.blogspot.com/2015/07/vm-options-for-optimization-c1-and-c2.html' title='VM options for optimization (C1 and C2 compilers)'/><author><name>Vaibhav Choudhary</name><uri>http://www.blogger.com/profile/11145353943937580111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWJa-clA9bmSF9tmOeDZHpD_gX2QkRaahdSVl6lYhC7sqdeXAgdDZoLM_b21HBIxpE4-nSvkX4IEm33OSZQ5e3A6oXd37wSC4y2PAk7TJiLlbJwZCCA5X0Mb1sfo8hFCc/s113/55455336_10156641084541281_7257414606094598144_n.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28019847.post-24701620438544820</id><published>2015-07-19T21:15:00.002+05:30</published><updated>2015-07-19T21:17:58.097+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="blog"/><category scheme="http://www.blogger.com/atom/ns#" term="compiler optimization"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="JDK"/><category scheme="http://www.blogger.com/atom/ns#" term="jit"/><category scheme="http://www.blogger.com/atom/ns#" term="just-in-time"/><category scheme="http://www.blogger.com/atom/ns#" term="runtime"/><title type='text'>Just-In-Time Compiler Optimizations (Know your JVM)</title><content type='html'>&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px;&quot;&gt;
JIT comes in these flavors:&lt;/div&gt;
&lt;pre style=&quot;background-color: white; color: #555555; font-size: 12px; line-height: 18px; margin-bottom: 10px; margin-top: 10px;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot;&gt; &lt;/span&gt;C1 (Client compiler) -client option
&lt;span class=&quot;Apple-tab-span&quot;&gt; &lt;/span&gt;C2 (Server compiler)-server option
&lt;span class=&quot;Apple-tab-span&quot;&gt; &lt;/span&gt;-XX:+TieredCompilation - Better decision of compilers.&lt;/pre&gt;
&lt;div style=&quot;background-color: white; color: #555555; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px;&quot;&gt;
&lt;div style=&quot;margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 10px; margin-top: 10px;&quot;&gt;
Common Optimizations done by Just-In-Time (JIT) Compiler do:&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&amp;nbsp;1. Eliminate dead codes and Expression optimization.&lt;/div&gt;
&lt;pre style=&quot;margin-bottom: 10px; margin-top: 10px;&quot;&gt; int someCalculation(int x1, int x2, int x3) {
&amp;nbsp;        int res1 = x1+x2;
         int res2 = x1-x2;
&amp;nbsp;        int res3 = x1+x3;
         return (res1+res2)/2; 
 }
&lt;div style=&quot;margin-bottom: 10px; margin-top: 10px;&quot;&gt;
will be converted to&lt;/div&gt;
&lt;pre style=&quot;margin-bottom: 10px; margin-top: 10px;&quot;&gt;int someCalculation(int x1, int x2, int x3) {
&lt;span class=&quot;Apple-tab-span&quot;&gt; &lt;/span&gt;return x1; 
}&amp;nbsp;
&lt;div style=&quot;font-family: &#39;Times New Roman&#39;; margin-bottom: 10px; margin-top: 10px; white-space: normal;&quot;&gt;
&amp;nbsp;2. Inline Method&lt;/div&gt;
&lt;address&gt;
- Substitute body of the method (&amp;lt;35 bytes of JVM bytecode)
- This provides the best optimization by JIT
- A better inline that C++&amp;nbsp;
&lt;div style=&quot;margin-bottom: 10px; margin-top: 10px;&quot;&gt;
For Example:&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&lt;span style=&quot;font-style: normal;&quot;&gt;int compute(int var) {
int result;
if(var &amp;gt; 5) {
    result = computeFurther(var); 
}
else {
    result = 100;
}
return result;
}&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 10px; margin-top: 10px;&quot;&gt;
If you call myVal = compute(3); it will get converted into myVal = 100;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-style: normal; white-space: normal;&quot;&gt;3. Caching Technique:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 10px; margin-top: 10px;&quot;&gt;
Point findMid(Point p1, Point p2) {
Point p;
p.x = (p1.x + p2.x)/2;
p.y = (p1.y + p2.y)/2;
return p; &lt;/div&gt;
&lt;div style=&quot;margin-bottom: 10px; margin-top: 10px;&quot;&gt;
p1.x, p2.x -&amp;gt; It can convert into temp1, temp2 and can be cached.&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;
&lt;/span&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;4.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Times New Roman;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;Monomorphic dispatch&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;:&lt;/span&gt;&lt;/div&gt;
&lt;/address&gt;
&lt;div style=&quot;margin-bottom: 10px; margin-top: 10px;&quot;&gt;
public class Birds {
private String color;
public String getColor() {
return color;
} }

myColor = birds.getColor();&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 10px; margin-top: 10px;&quot;&gt;

If there is no other override of this method, it will convert into &lt;/div&gt;
&lt;pre style=&quot;margin-bottom: 10px; margin-top: 10px;&quot;&gt;&lt;div style=&quot;margin-bottom: 10px; margin-top: 10px;&quot;&gt;
public class Birds {
String color;
}&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 10px; margin-top: 10px;&quot;&gt;
mycolor = birds.color;&amp;nbsp;&lt;/div&gt;
&lt;/pre&gt;
&lt;div style=&quot;margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;
&lt;/span&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;5.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Times New Roman;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;Null Checks Removal&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 10px; margin-top: 10px;&quot;&gt;
x = point.x;
y = point.y;

At JVM it is equivalents to:

if(point==null) throw new NullPointerException();
else  {
x = point.x;
y = point.y;
} &amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 10px; margin-top: 10px;&quot;&gt;
But if the code will not throw NullPointer for more than threshold reference, it will remove the if check.&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;6. Threading Optimizations:&lt;/span&gt; &lt;/div&gt;
&lt;div style=&quot;margin-bottom: 10px; margin-top: 10px;&quot;&gt;
- Eliminate locks if monitor is not reachable from other threads
- Join adjacent synchronized blocks on the same object&lt;/div&gt;
&lt;pre style=&quot;margin-bottom: 10px; margin-top: 10px;&quot;&gt;&lt;div style=&quot;margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;7. Loop Optimizations:&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 10px; margin-top: 10px;&quot;&gt;
- Combining loops – Two loops can be combined if taking equivalent time.
- Inversion loops – Change while into do-while. (why, just give a javap -c)
- Tiling loops – Re-organize loop so that it will fix in cache.&amp;nbsp;&lt;/div&gt;
&lt;/pre&gt;
&lt;div style=&quot;margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;VM Args:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 10px; margin-top: 10px;&quot;&gt;
Xint – Interpreter mode
Xcomp – Compiled mode
Xmixed – Interpreter + Compiler
-server → C2 compiler
-client → C1 compiler
-XX:+TieredCompilation → C1 + C2 (used by 32/64 bit mode)&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 10px; margin-top: 10px;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;
&lt;/span&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;Logging Options&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Verdana, sans-serif;&quot;&gt;:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 10px; margin-top: 10px;&quot;&gt;
-XX:+UnlockDiagnosticVMOptions
-XX:+LogCompilation
-XX:LogFile=&amp;lt;path to file&amp;gt;
-XX:MaxInlineSize=&amp;lt;size&amp;gt;
-XX:FreqInlineSize=&amp;lt;size&amp;gt;&amp;nbsp;&lt;/div&gt;
&lt;/pre&gt;
&lt;/pre&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://java4ever.blogspot.com/feeds/24701620438544820/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/28019847/24701620438544820' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/24701620438544820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/24701620438544820'/><link rel='alternate' type='text/html' href='http://java4ever.blogspot.com/2015/07/just-in-time-compiler-optimizations.html' title='Just-In-Time Compiler Optimizations (Know your JVM)'/><author><name>Vaibhav Choudhary</name><uri>http://www.blogger.com/profile/11145353943937580111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWJa-clA9bmSF9tmOeDZHpD_gX2QkRaahdSVl6lYhC7sqdeXAgdDZoLM_b21HBIxpE4-nSvkX4IEm33OSZQ5e3A6oXd37wSC4y2PAk7TJiLlbJwZCCA5X0Mb1sfo8hFCc/s113/55455336_10156641084541281_7257414606094598144_n.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28019847.post-3171618831659753018</id><published>2014-02-10T20:32:00.001+05:30</published><updated>2014-02-10T20:38:29.396+05:30</updated><title type='text'>Best Practices Java - StringBuffer Part 2</title><content type='html'>It&#39;s good to define string as StringBuffer for most of the common use(&lt;a href=&quot;http://java4ever.blogspot.in/2014/02/best-practices-java-stringbuffer.html&quot; target=&quot;_blank&quot;&gt;Refer Part 1&lt;/a&gt;). We will now see how StringBuffer enlarge itself, as it is mutable.&lt;br /&gt;
&lt;br /&gt;
If you are just calling the default creation of StringBuffer, the following code will get called(default size of 16 characters).&lt;br /&gt;
&lt;div class=&quot;line&quot; id=&quot;line-95&quot; style=&quot;background-color: white; font-family: &#39;Lucida Grande&#39;, Tahoma, Verdana, Arial, Helvetica, sans-serif; margin-top: -2px; padding-left: 10px;&quot;&gt;
&lt;pre style=&quot;display: inline;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/blogger.g?blogID=28019847&quot; name=&quot;StringBuffer.%3Cinit%3E%28%29&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;
&lt;/a&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;line&quot; id=&quot;line-95&quot; style=&quot;background-color: white; font-family: &#39;Lucida Grande&#39;, Tahoma, Verdana, Arial, Helvetica, sans-serif; margin-top: -2px; padding-left: 10px;&quot;&gt;
&lt;pre style=&quot;display: inline;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/blogger.g?blogID=28019847&quot; name=&quot;StringBuffer.%3Cinit%3E%28%29&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;
&lt;/a&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;line&quot; id=&quot;line-95&quot; style=&quot;background-color: white; font-family: &#39;Lucida Grande&#39;, Tahoma, Verdana, Arial, Helvetica, sans-serif; margin-top: -2px; padding-left: 10px;&quot;&gt;
&lt;pre style=&quot;display: inline;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/blogger.g?blogID=28019847&quot; name=&quot;StringBuffer.%3Cinit%3E%28%29&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;StringBuffer&lt;/a&gt;()&amp;nbsp;{&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;line&quot; id=&quot;line-96&quot; style=&quot;background-color: white; font-family: &#39;Lucida Grande&#39;, Tahoma, Verdana, Arial, Helvetica, sans-serif; margin-top: -2px; padding-left: 10px;&quot;&gt;
&lt;pre style=&quot;display: inline;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;kw&quot; style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;super&lt;/span&gt;(16);&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;line&quot; id=&quot;line-97&quot; style=&quot;background-color: white; font-family: &#39;Lucida Grande&#39;, Tahoma, Verdana, Arial, Helvetica, sans-serif; margin-top: -2px; padding-left: 10px;&quot;&gt;
&lt;pre style=&quot;display: inline;&quot;&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;line&quot; id=&quot;line-97&quot; style=&quot;background-color: white; font-family: &#39;Lucida Grande&#39;, Tahoma, Verdana, Arial, Helvetica, sans-serif; margin-top: -2px; padding-left: 10px;&quot;&gt;
&lt;pre style=&quot;display: inline;&quot;&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;line&quot; id=&quot;line-97&quot; style=&quot;background-color: white; font-family: &#39;Lucida Grande&#39;, Tahoma, Verdana, Arial, Helvetica, sans-serif; margin-top: -2px; padding-left: 10px;&quot;&gt;
&lt;pre style=&quot;display: inline;&quot;&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;line&quot; id=&quot;line-97&quot; style=&quot;background-color: white; font-family: &#39;Lucida Grande&#39;, Tahoma, Verdana, Arial, Helvetica, sans-serif; margin-top: -2px; padding-left: 10px;&quot;&gt;
&lt;pre style=&quot;display: inline;&quot;&gt;&lt;/pre&gt;
&lt;/div&gt;
StringBuffer takes its data structure from its parent class which is AbstractStringBuilder, something like:&lt;br /&gt;
&lt;div class=&quot;line&quot; id=&quot;line-97&quot; style=&quot;background-color: white; font-family: &#39;Lucida Grande&#39;, Tahoma, Verdana, Arial, Helvetica, sans-serif; margin-top: -2px; padding-left: 10px;&quot;&gt;
&lt;pre style=&quot;display: inline;&quot;&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;line&quot; id=&quot;line-97&quot; style=&quot;background-color: white; font-family: &#39;Lucida Grande&#39;, Tahoma, Verdana, Arial, Helvetica, sans-serif; margin-top: -2px; padding-left: 10px;&quot;&gt;
&lt;pre style=&quot;display: inline;&quot;&gt;&lt;span class=&quot;kw&quot; style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;line&quot; id=&quot;line-97&quot; style=&quot;background-color: white; font-family: &#39;Lucida Grande&#39;, Tahoma, Verdana, Arial, Helvetica, sans-serif; margin-top: -2px; padding-left: 10px;&quot;&gt;
&lt;pre style=&quot;display: inline;&quot;&gt;&lt;span class=&quot;kw&quot; style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;abstract&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;kw&quot; style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;class&lt;/span&gt;&amp;nbsp;&lt;a class=&quot;context-menu&quot; href=&quot;http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/AbstractStringBuilder.java#&quot; style=&quot;color: #6890d8; font-size: 1.4em; margin: 0px; padding: 0px 0px 0px 4px; text-decoration: none;&quot;&gt;&lt;img border=&quot;0&quot; class=&quot;img_base img_jdt_elcl16_thin_show_toolbar&quot; src=&quot;http://grepcode.com/static/app/images/1x1.gif&quot; height=&quot;16&quot; style=&quot;background-image: url(http://grepcode.com/static/app/images/common_sprite.png); background-position: 0% -429px; background-repeat: no-repeat no-repeat; height: 16px; margin-left: 3px; margin-right: 3px; width: 11px;&quot; title=&quot;More ...&quot; width=&quot;11&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/blogger.g?blogID=28019847&quot; name=&quot;AbstractStringBuilder&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;AbstractStringBuilder&lt;/a&gt;&amp;nbsp;&lt;span class=&quot;kw&quot; style=&quot;color: #7f0055; font-weight: bold;&quot;&gt;implements&lt;/span&gt;&amp;nbsp;&lt;a href=&quot;http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/Appendable.java#Appendable&quot; style=&quot;color: #3366bb; margin: 0px; padding: 0px;&quot; title=&quot;java.lang.Appendable&quot;&gt;Appendable&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/CharSequence.java#CharSequence&quot; style=&quot;color: #3366bb; margin: 0px; padding: 0px;&quot; title=&quot;java.lang.CharSequence&quot;&gt;CharSequence&lt;/a&gt;&amp;nbsp;{&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;line&quot; id=&quot;line-97&quot; style=&quot;background-color: white; font-family: &#39;Lucida Grande&#39;, Tahoma, Verdana, Arial, Helvetica, sans-serif; margin-top: -2px; padding-left: 10px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span class=&quot;kw&quot; style=&quot;color: #7f0055; font-family: monospace; font-weight: bold; white-space: pre;&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;font-family: monospace; white-space: pre;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;mark-0#0&quot; style=&quot;font-family: monospace; white-space: pre;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/blogger.g?blogID=28019847&quot; name=&quot;AbstractStringBuilder.0value&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;value&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-family: monospace; white-space: pre;&quot;&gt;[];   // actual character storage. &lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;line&quot; id=&quot;line-97&quot; style=&quot;background-color: white; font-family: &#39;Lucida Grande&#39;, Tahoma, Verdana, Arial, Helvetica, sans-serif; margin-top: -2px; padding-left: 10px;&quot;&gt;
&lt;span style=&quot;font-family: monospace; white-space: pre;&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;kw&quot; style=&quot;color: #7f0055; font-family: monospace; font-weight: bold; white-space: pre;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;font-family: monospace; white-space: pre;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;mark-1#0&quot; style=&quot;font-family: monospace; white-space: pre;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/blogger.g?blogID=28019847&quot; name=&quot;AbstractStringBuilder.0count&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;count&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-family: monospace; white-space: pre;&quot;&gt;;     // count the no. of char&#39;s used.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: monospace; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;line&quot; id=&quot;line-97&quot; style=&quot;background-color: white; font-family: &#39;Lucida Grande&#39;, Tahoma, Verdana, Arial, Helvetica, sans-serif; margin-top: -2px; padding-left: 10px;&quot;&gt;
&lt;pre style=&quot;display: inline;&quot;&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;line&quot; id=&quot;line-97&quot; style=&quot;background-color: white; font-family: &#39;Lucida Grande&#39;, Tahoma, Verdana, Arial, Helvetica, sans-serif; margin-top: -2px; padding-left: 10px;&quot;&gt;
&lt;pre style=&quot;display: inline;&quot;&gt;&lt;/pre&gt;
&lt;/div&gt;
This is how expandCapacity has been written in JDK: &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;line&quot; id=&quot;line-97&quot; style=&quot;background-color: white; font-family: &#39;Lucida Grande&#39;, Tahoma, Verdana, Arial, Helvetica, sans-serif; margin-top: -2px; padding-left: 10px;&quot;&gt;
&lt;pre style=&quot;display: inline;&quot;&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;line&quot; id=&quot;line-97&quot; style=&quot;background-color: white; margin-top: -2px; padding-left: 10px;&quot;&gt;
&lt;pre style=&quot;display: inline;&quot;&gt;void expandCapacity(int minimumCapacity) {
 int newCapacity = (value.length + 1) * 2;
 if (newCapacity &amp;lt; 0) {
  newCapacity = Integer.MAX_VALUE;
 } else if (minimumCapacity &amp;gt; newCapacity) {
  newCapacity = minimumCapacity;
 }
 value = Arrays.copyOf(value, newCapacity);
}&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;line&quot; id=&quot;line-97&quot; style=&quot;background-color: white; margin-top: -2px; padding-left: 10px;&quot;&gt;
&lt;pre style=&quot;display: inline;&quot;&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;line&quot; id=&quot;line-97&quot; style=&quot;background-color: white; margin-top: -2px; padding-left: 10px;&quot;&gt;
&lt;pre style=&quot;display: inline;&quot;&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;line&quot; id=&quot;line-97&quot; style=&quot;background-color: white; margin-top: -2px; padding-left: 10px;&quot;&gt;
&lt;pre style=&quot;display: inline;&quot;&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
This expandCapacity() has been called from append() method of StringBuffer. Most of the methods of StringBuffer are synchronized as expected.&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;For more understanding, you can see the openJDK source code.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;line&quot; id=&quot;line-97&quot; style=&quot;background-color: white; margin-top: -2px; padding-left: 10px;&quot;&gt;
&lt;pre style=&quot;display: inline;&quot;&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;line&quot; id=&quot;line-97&quot; style=&quot;background-color: white; margin-top: -2px; padding-left: 10px;&quot;&gt;
&lt;pre style=&quot;display: inline;&quot;&gt; &lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;line&quot; id=&quot;line-97&quot; style=&quot;background-color: white; font-family: &#39;Lucida Grande&#39;, Tahoma, Verdana, Arial, Helvetica, sans-serif; margin-top: -2px; padding-left: 10px;&quot;&gt;
&lt;pre style=&quot;display: inline;&quot;&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;line&quot; id=&quot;line-97&quot; style=&quot;background-color: white; font-family: &#39;Lucida Grande&#39;, Tahoma, Verdana, Arial, Helvetica, sans-serif; margin-top: -2px; padding-left: 10px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://java4ever.blogspot.com/feeds/3171618831659753018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/28019847/3171618831659753018' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/3171618831659753018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/3171618831659753018'/><link rel='alternate' type='text/html' href='http://java4ever.blogspot.com/2014/02/best-practices-java-stringbuffer-part-2.html' title='Best Practices Java - StringBuffer Part 2'/><author><name>Vaibhav Choudhary</name><uri>http://www.blogger.com/profile/11145353943937580111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWJa-clA9bmSF9tmOeDZHpD_gX2QkRaahdSVl6lYhC7sqdeXAgdDZoLM_b21HBIxpE4-nSvkX4IEm33OSZQ5e3A6oXd37wSC4y2PAk7TJiLlbJwZCCA5X0Mb1sfo8hFCc/s113/55455336_10156641084541281_7257414606094598144_n.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28019847.post-7149165364059326415</id><published>2014-02-08T19:33:00.000+05:30</published><updated>2014-02-08T19:51:48.429+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="best practices"/><category scheme="http://www.blogger.com/atom/ns#" term="comparison"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="javap"/><category scheme="http://www.blogger.com/atom/ns#" term="string"/><category scheme="http://www.blogger.com/atom/ns#" term="stringbuffer"/><title type='text'>Best Practices Java - StringBuffer</title><content type='html'>It&#39;s been 3 years when I have not done any blogging here. Some day before, one of my friends was asking me about StringBuffer and he has the point that I don&#39;t have any justification that why Sun has created StringBuffer. &lt;br /&gt;
&lt;br /&gt;
I am writing this blog from a very rural village of Bihar, India. The common problem I found was people are not utilizing the time in best of work. Many of the kids go to the market to bring one-one item at a time. Alright, are we engineers also follow the same trend.&lt;br /&gt;
&lt;br /&gt;
We use String as default and then we keep adding things in it. Something like:&lt;br /&gt;
&lt;br /&gt;
String dontUse = &quot;This&quot;;&lt;br /&gt;
dontUse +=&quot;is not right&quot;;&lt;br /&gt;
&lt;br /&gt;
Alright, here is a small code I have written to understand the estimated time.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;public class StringBufferExample {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;public static void main(String[] args) {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;String[] dontUse = new String[10000];&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //StringBuffer[] dontUse = new StringBuffer[10000];&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;for(int i=0;i&amp;lt;10000;i++) { }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;long startTime = System.nanoTime();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;for(int i=0;i&amp;lt;10000;i++) {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dontUse[i]= new String(&quot;this&quot;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;//&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;dontUse[i]= new StringBuffer(&quot;this&quot;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;for(int i=0;i&amp;lt;10000;i++) {&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;dontUse[i]+=&quot;is wrong&quot;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;//&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;dontUse[i].append(&quot;is wrong&quot;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;long endTime = System.nanoTime();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;System.out.println(endTime - startTime);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Approx Time taken from this code:&amp;nbsp;&lt;b&gt;5501435(ns)&lt;/b&gt; whereas if you run the commented code, it will take:&amp;nbsp;&lt;b&gt;2258812(ns)&lt;/b&gt;&lt;br /&gt;
So, not visible but normal String operation for &quot;simply&quot; addition of two string is &quot;twice&quot; costlier than StringBuffer.&lt;br /&gt;
&lt;br /&gt;
Running:&amp;nbsp;javap -c -classpath . StringBufferExample (copying those lines which are costly), will clearly tell you why String operation is a costly affair(actually it was never a String operation, it changes things to StringBuffer and then again convert it by toString to String).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;64: &amp;nbsp;if_icmpge &amp;nbsp; &amp;nbsp; &amp;nbsp; 97&lt;br /&gt;
&amp;nbsp; &amp;nbsp;67: &amp;nbsp;new &amp;nbsp; &amp;nbsp; #6; //class java/lang/StringBuilder&lt;br /&gt;
&amp;nbsp; &amp;nbsp;70: &amp;nbsp;dup&lt;br /&gt;
&amp;nbsp; &lt;strike&gt;&amp;nbsp;71: &amp;nbsp;invokespecial &amp;nbsp; #7; //Method java/lang/StringBuilder.&quot;&amp;lt;init&amp;gt;&quot;:()V&lt;/strike&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;74: &amp;nbsp;aload_1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;75: &amp;nbsp;iload &amp;nbsp; 4&lt;br /&gt;
&amp;nbsp; &amp;nbsp;77: &amp;nbsp;dup2_x1&lt;br /&gt;
&amp;nbsp; &amp;nbsp;78: &amp;nbsp;aaload&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&lt;strike&gt;79: &amp;nbsp;invokevirtual &amp;nbsp; #8; //Method java/lang/StringBuilder.append:(Ljava/lang/&lt;/strike&gt;&lt;br /&gt;
&lt;strike&gt;String;)Ljava/lang/StringBuilder;&lt;/strike&gt;&lt;br /&gt;
&lt;strike&gt;&amp;nbsp; &amp;nbsp;82: &amp;nbsp;ldc &amp;nbsp; &amp;nbsp; #9; //String is wrong&lt;/strike&gt;&lt;br /&gt;
&lt;strike&gt;&amp;nbsp; &amp;nbsp;84: &amp;nbsp;invokevirtual &amp;nbsp; #8; //Method java/lang/StringBuilder.append:(Ljava/lang/&lt;/strike&gt;&lt;br /&gt;
&lt;strike&gt;String;)Ljava/lang/StringBuilder;&lt;/strike&gt;&lt;br /&gt;
&lt;strike&gt;&amp;nbsp; &amp;nbsp;87: &amp;nbsp;invokevirtual &amp;nbsp; #10; //Method java/lang/StringBuilder.toString:()Ljava/l&lt;/strike&gt;&lt;br /&gt;
&lt;strike&gt;ang/String;&lt;/strike&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;90: &amp;nbsp;aastore&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now in the next blog, I will cover how StringBuffer handles the capacity, how it enlarge its capacity and when. It&#39;s a pretty simple code written in JDK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://java4ever.blogspot.com/feeds/7149165364059326415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/28019847/7149165364059326415' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/7149165364059326415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/7149165364059326415'/><link rel='alternate' type='text/html' href='http://java4ever.blogspot.com/2014/02/best-practices-java-stringbuffer.html' title='Best Practices Java - StringBuffer'/><author><name>Vaibhav Choudhary</name><uri>http://www.blogger.com/profile/11145353943937580111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWJa-clA9bmSF9tmOeDZHpD_gX2QkRaahdSVl6lYhC7sqdeXAgdDZoLM_b21HBIxpE4-nSvkX4IEm33OSZQ5e3A6oXd37wSC4y2PAk7TJiLlbJwZCCA5X0Mb1sfo8hFCc/s113/55455336_10156641084541281_7257414606094598144_n.jpeg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28019847.post-4613481229140982814</id><published>2010-10-06T15:51:00.000+05:30</published><updated>2010-10-06T15:55:02.254+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="jdk7"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="sun"/><title type='text'>JDK7 is on the way ...</title><content type='html'>Being a part of Oracle, I have not written any blog here. Anyways, Java doesn&#39;t belong to a company, its belong to the heart of billion people. There is lot which is coming in JDK7. Max. download is going to JDK6 which is a good news. People shifted from JDK1.5 and 1.4.2 to JDK6.&lt;br /&gt;&lt;br /&gt;I will write some technical blog in coming days.</content><link rel='replies' type='application/atom+xml' href='http://java4ever.blogspot.com/feeds/4613481229140982814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/28019847/4613481229140982814' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/4613481229140982814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/4613481229140982814'/><link rel='alternate' type='text/html' href='http://java4ever.blogspot.com/2010/10/jdk7-is-on-way.html' title='JDK7 is on the way ...'/><author><name>Vaibhav Choudhary</name><uri>http://www.blogger.com/profile/11145353943937580111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWJa-clA9bmSF9tmOeDZHpD_gX2QkRaahdSVl6lYhC7sqdeXAgdDZoLM_b21HBIxpE4-nSvkX4IEm33OSZQ5e3A6oXd37wSC4y2PAk7TJiLlbJwZCCA5X0Mb1sfo8hFCc/s113/55455336_10156641084541281_7257414606094598144_n.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28019847.post-774954517827228963</id><published>2010-03-12T18:44:00.003+05:30</published><updated>2010-03-12T18:47:45.307+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="g1"/><category scheme="http://www.blogger.com/atom/ns#" term="garbage collector"/><category scheme="http://www.blogger.com/atom/ns#" term="garbage first"/><category scheme="http://www.blogger.com/atom/ns#" term="gc"/><category scheme="http://www.blogger.com/atom/ns#" term="presentation"/><category scheme="http://www.blogger.com/atom/ns#" term="sun tech days"/><title type='text'>Garbage First prsentation - G1</title><content type='html'>My last year presentation on G1 aka Garbage First in Sun tech days.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://developers.sun.com/events/techdays/presentations/locations-2009/hyderabad/td_hyd_garbagcollector_aroskar_choudhary.pdf&quot;&gt;http://developers.sun.com/events/techdays/presentations/locations-2009/hyderabad/td_hyd_garbagcollector_aroskar_choudhary.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This time also we are talking on G1. Join us at&lt;a href=&quot;http://www.sercononline.com/suntechdays10/index.htm&quot;&gt; tech days at Hyderabad.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you are interested in knowing more about Garbage First or any Garbage collector algorithms, please let me know here.</content><link rel='replies' type='application/atom+xml' href='http://java4ever.blogspot.com/feeds/774954517827228963/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/28019847/774954517827228963' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/774954517827228963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/774954517827228963'/><link rel='alternate' type='text/html' href='http://java4ever.blogspot.com/2010/03/garbage-first-prsentation-g1.html' title='Garbage First prsentation - G1'/><author><name>Vaibhav Choudhary</name><uri>http://www.blogger.com/profile/11145353943937580111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWJa-clA9bmSF9tmOeDZHpD_gX2QkRaahdSVl6lYhC7sqdeXAgdDZoLM_b21HBIxpE4-nSvkX4IEm33OSZQ5e3A6oXd37wSC4y2PAk7TJiLlbJwZCCA5X0Mb1sfo8hFCc/s113/55455336_10156641084541281_7257414606094598144_n.jpeg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28019847.post-6208853010801234685</id><published>2010-03-12T02:04:00.002+05:30</published><updated>2010-03-12T02:08:27.987+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="AWT"/><category scheme="http://www.blogger.com/atom/ns#" term="component"/><category scheme="http://www.blogger.com/atom/ns#" term="heavyweight"/><category scheme="http://www.blogger.com/atom/ns#" term="jdk6"/><category scheme="http://www.blogger.com/atom/ns#" term="lightweight"/><category scheme="http://www.blogger.com/atom/ns#" term="Swing"/><title type='text'>JDK6u12 - Mixing heavy and lightweight component</title><content type='html'>&lt;p&gt; So, if you are a Swing Developer, you have heard many stories where someone messed up Lightweight component with Heavyweight component. In one line &quot;&lt;span class=&quot;body&quot;&gt; A &lt;em&gt;heavyweight&lt;/em&gt; component&lt;br /&gt;is one that is associated with its own  native screen resource (commonly&lt;br /&gt;known as a &lt;em&gt;peer&lt;/em&gt;). A &lt;em&gt;lightweight&lt;/em&gt; component is one that &quot;borrows&quot; the&lt;br /&gt;screen resource of an ancestor  (which means it has no native resource&lt;br /&gt;of its own -- so it&#39;s &quot;lighter&quot;).&quot; AWT is all heavyweight, Swing is all lightweight except top level ones like JFrame, JWindow...&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;p&gt;Now many times you have heard &quot;Don&#39;t mix lightweight and heavyweight&quot;. What will happen ? Alright, here is a small code :&lt;/p&gt;&lt;br /&gt; &lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt; &lt;p&gt;import javax.swing.*;&lt;br /&gt;import java.awt.*;&lt;br /&gt;&lt;br /&gt;public class Test extends JPanel {&lt;br /&gt;&lt;br /&gt;  public Test() {&lt;br /&gt;     JComboBox jc = new JComboBox();&lt;br /&gt;     JButton btn1 = new JButton(&quot;Button1&quot;);&lt;br /&gt;     Button btn2 = new Button(&quot;Button2&quot;);&lt;br /&gt;     Button btn3 = new Button(&quot;Button3&quot;);&lt;br /&gt;     jc.addItem(&quot;France&quot;);&lt;br /&gt;     jc.addItem(&quot;Germany&quot;);&lt;br /&gt;     jc.addItem(&quot;Italy&quot;);&lt;br /&gt;     jc.addItem(&quot;Japan&quot;);&lt;br /&gt;&lt;br /&gt;    add(jc);&lt;br /&gt;    add(btn1);&lt;br /&gt;    add(btn2);&lt;br /&gt;    add(btn3);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public static void main(String[] args) {&lt;br /&gt;    JFrame frame = new JFrame();&lt;br /&gt;    frame.getContentPane().add(new Test());&lt;br /&gt;    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;    frame.setSize(200, 200);&lt;br /&gt;    frame.setVisible(true);&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt; &lt;p&gt;Here what you see the output: &lt;/p&gt;&lt;br /&gt; &lt;p&gt;&lt;img src=&quot;http://blogs.sun.com/vaibhav/resource/im1.PNG&quot; /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt; &lt;p&gt;Now, this is what it happen what you mix lightweight and heavyweight. No way, you can bring the drop down items on top of Button2 !! &lt;/p&gt;&lt;br /&gt; &lt;p&gt;All Past :) , JDK6 update 12 and JDK7 build 19, the output will be like this:&lt;/p&gt;&lt;br /&gt; &lt;p&gt;&lt;img src=&quot;http://blogs.sun.com/vaibhav/resource/drop2.PNG&quot; /&gt; &lt;/p&gt;&lt;br /&gt; &lt;p&gt; New JDK release fixed all these problem of mixing lightweight component and heavyweight component. So, don&#39;t worry, keep messing :).&lt;/p&gt;   &lt;p&gt;For more detail, please see this : &lt;a href=&quot;http://java.sun.com/developer/technicalArticles/GUI/mixing_components/index.html&quot;&gt;http://java.sun.com/developer/technicalArticles/GUI/mixing_components/index.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;For more: Please join us at Tech Days at Hyderabad on 24-25th of March.&lt;br /&gt;&lt;/p&gt;   &lt;p&gt;&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot;&gt;&lt;!--Session data--&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;if(window.parent &amp;amp;&amp;amp; window.parent.Xinha){return false}if(window.parent &amp;amp;&amp;amp; window.parent.Xinha){return false}if(window.parent &amp;amp;&amp;amp; window.parent.Xinha){return false}jsCall();&quot; type=&quot;hidden&quot;&gt;&lt;/p&gt;   &lt;div id=&quot;refHTML&quot;&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java4ever.blogspot.com/feeds/6208853010801234685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/28019847/6208853010801234685' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/6208853010801234685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/6208853010801234685'/><link rel='alternate' type='text/html' href='http://java4ever.blogspot.com/2010/03/jdk6u12-mixing-heavy-and-lightweight.html' title='JDK6u12 - Mixing heavy and lightweight component'/><author><name>Vaibhav Choudhary</name><uri>http://www.blogger.com/profile/11145353943937580111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWJa-clA9bmSF9tmOeDZHpD_gX2QkRaahdSVl6lYhC7sqdeXAgdDZoLM_b21HBIxpE4-nSvkX4IEm33OSZQ5e3A6oXd37wSC4y2PAk7TJiLlbJwZCCA5X0Mb1sfo8hFCc/s113/55455336_10156641084541281_7257414606094598144_n.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28019847.post-2834417026849921739</id><published>2010-03-12T01:58:00.000+05:30</published><updated>2010-03-12T01:59:10.361+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="docs"/><category scheme="http://www.blogger.com/atom/ns#" term="jdk6"/><category scheme="http://www.blogger.com/atom/ns#" term="liveconnect"/><category scheme="http://www.blogger.com/atom/ns#" term="plugin2"/><title type='text'>LiveConnect Docs for JDK6</title><content type='html'>&lt;p&gt; JDK6 has done lot of changes in LiveConnect. LiveConnect is a  feature in the browser for communication between Java Applet and  JavaScript. With the new Plugin2, most of the work has been left on  browser to do. Initially it was Java which do a good amount of work. So,  now the Java Plug-in will operate like any other scriptable Plug-in.&lt;/p&gt;   &lt;p&gt;This is one of the great document written : &lt;a href=&quot;http://java.sun.com/javase/6/webnotes/6u10/plugin2/liveconnect/&quot; target=&quot;_blank&quot;&gt;http://java.sun.com/javase/6/webnotes/6u10/plugin2/liveconnect/&lt;/a&gt;&lt;/p&gt;   &lt;p&gt; If you want to see some code help, visit: &lt;a href=&quot;http://java2s.com/Code/Java/JDK-6/Script-Engines.htm&quot; target=&quot;_blank&quot;&gt;http://java2s.com/Code/Java/JDK-6/Script-Engines.htm&lt;/a&gt;&lt;/p&gt;   Have Fun !!</content><link rel='replies' type='application/atom+xml' href='http://java4ever.blogspot.com/feeds/2834417026849921739/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/28019847/2834417026849921739' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/2834417026849921739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/2834417026849921739'/><link rel='alternate' type='text/html' href='http://java4ever.blogspot.com/2010/03/liveconnect-docs-for-jdk6.html' title='LiveConnect Docs for JDK6'/><author><name>Vaibhav Choudhary</name><uri>http://www.blogger.com/profile/11145353943937580111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWJa-clA9bmSF9tmOeDZHpD_gX2QkRaahdSVl6lYhC7sqdeXAgdDZoLM_b21HBIxpE4-nSvkX4IEm33OSZQ5e3A6oXd37wSC4y2PAk7TJiLlbJwZCCA5X0Mb1sfo8hFCc/s113/55455336_10156641084541281_7257414606094598144_n.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28019847.post-3345294929555570268</id><published>2009-08-24T22:30:00.000+05:30</published><updated>2009-08-24T22:31:25.890+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="API"/><category scheme="http://www.blogger.com/atom/ns#" term="code"/><category scheme="http://www.blogger.com/atom/ns#" term="hyperlink"/><category scheme="http://www.blogger.com/atom/ns#" term="javafx"/><category scheme="http://www.blogger.com/atom/ns#" term="sample"/><title type='text'>Hyperlink in JavaFX</title><content type='html'>&lt;p&gt;&lt;br /&gt;It&#39;s a long time being blogging. Actually not done anything new from long time :). Here is one simple concept which some guys asked me. We have provided &lt;a href=&quot;http://java.sun.com/javafx/1.2/docs/api/javafx.scene.control/javafx.scene.control.Hyperlink.html&quot;&gt;hyperlink API in JavaFX 1.2&lt;/a&gt; but some of us struggled to open a URL using hyperlink API.&lt;/p&gt;&lt;br /&gt; &lt;p&gt;Hmm, 2 ways to do it actually.&lt;/p&gt;&lt;br /&gt; &lt;p&gt; No1 : Use the Desktop API of JDK6. It&#39;s simple to use. One example is &lt;a href=&quot;http://www.blogger.com/vaibhav/entry/java_api_flickr_api&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt; &lt;p&gt;So, very basic code will go like this : &lt;/p&gt;&lt;br /&gt; &lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;  &lt;p&gt;package sample2;&lt;br /&gt;&lt;br /&gt;import javafx.scene.Scene;&lt;br /&gt;import javafx.stage.Stage;&lt;br /&gt;import javafx.scene.control.*;&lt;br /&gt;import java.net.*;&lt;br /&gt;&lt;br /&gt;Stage {&lt;br /&gt;    title: &quot;HyperLink to URL&quot;&lt;br /&gt;    width: 240&lt;br /&gt;    height: 320&lt;br /&gt;    scene: Scene {&lt;br /&gt;        content: [&lt;br /&gt;            Hyperlink{&lt;br /&gt;                translateY: 160&lt;br /&gt;                translateX: 40&lt;br /&gt;                width: 150&lt;br /&gt;                text: bind &quot;Visit javafx Samples! &quot;&lt;br /&gt;                action: function():Void{&lt;br /&gt;                    java.awt.Desktop.getDesktop().browse(new URI(&quot;http://javafx.com/samples&quot;));&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        ]&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt; &lt;p&gt;&lt;br /&gt;So, 2 things for running this code. First,Desktop API has been added in JDK6, so this code won&#39;t run on JDK5. Second, Add rt.jar(rt.jar of JDK6) file in the Libraries if you are using Netbeans &lt;/p&gt;&lt;br /&gt; &lt;p&gt; No2 : For only JavaFX code, we can use AppletStageExtension like this : &lt;/p&gt;&lt;br /&gt; &lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;package sample1;&lt;br /&gt;&lt;p&gt;import javafx.stage.Stage;&lt;br /&gt;import javafx.scene.Scene;&lt;br /&gt;import javafx.scene.control.Hyperlink;&lt;br /&gt;import javafx.stage.AppletStageExtension;&lt;br /&gt;&lt;br /&gt;Stage {&lt;br /&gt;    title: &quot;Hyperlink to URL&quot;&lt;br /&gt;    width: 250&lt;br /&gt;    height: 80&lt;br /&gt;    scene: Scene {&lt;br /&gt;        content: [&lt;br /&gt;            Hyperlink {&lt;br /&gt;                text: &quot;JavaFX Samples !&quot;&lt;br /&gt;                action: function() {&lt;br /&gt;                       AppletStageExtension.showDocument(&quot;http://javafx.com/samples&quot;);&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        ]&lt;br /&gt;    }&lt;br /&gt;} &lt;/p&gt;&lt;/pre&gt;&lt;br /&gt; &lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In this case, you cant send hyperlink from Desktop Application, but it will work fine for applet or Browser application. So, best is to use this and then use our normal funda : if {__PROFILE__}&quot; != &quot;browser&quot;) --&amp;gt; use the Desktop API code. What you say :).&lt;/p&gt;&lt;br /&gt; &lt;p&gt;Please let me know if there is any issue in the code ! Or also if there is any better way to do this.&lt;br /&gt;&lt;/p&gt;&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot;&gt;&lt;!--Session data--&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;if(window.parent &amp;amp;&amp;amp; window.parent.Xinha){return false}jsCall();&quot; type=&quot;hidden&quot;&gt;&lt;br /&gt; &lt;div id=&quot;refHTML&quot;&gt;&lt;/div&gt;&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot;&gt;&lt;!--Session data--&gt;&lt;input onclick=&quot;jsCall();&quot; id=&quot;jsProxy&quot; type=&quot;hidden&quot;&gt;&lt;br /&gt; &lt;div id=&quot;refHTML&quot;&gt;&lt;/div&gt;&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot;&gt;&lt;!--Session data--&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;jsCall();&quot; type=&quot;hidden&quot;&gt;&lt;br /&gt; &lt;div id=&quot;refHTML&quot;&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java4ever.blogspot.com/feeds/3345294929555570268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/28019847/3345294929555570268' title='31 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/3345294929555570268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/3345294929555570268'/><link rel='alternate' type='text/html' href='http://java4ever.blogspot.com/2009/08/hyperlink-in-javafx.html' title='Hyperlink in JavaFX'/><author><name>Vaibhav Choudhary</name><uri>http://www.blogger.com/profile/11145353943937580111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWJa-clA9bmSF9tmOeDZHpD_gX2QkRaahdSVl6lYhC7sqdeXAgdDZoLM_b21HBIxpE4-nSvkX4IEm33OSZQ5e3A6oXd37wSC4y2PAk7TJiLlbJwZCCA5X0Mb1sfo8hFCc/s113/55455336_10156641084541281_7257414606094598144_n.jpeg'/></author><thr:total>31</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28019847.post-2375700233343287138</id><published>2009-08-24T22:29:00.000+05:30</published><updated>2009-08-24T22:30:27.173+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="API"/><category scheme="http://www.blogger.com/atom/ns#" term="debug"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="links"/><title type='text'>Java Debugging basics</title><content type='html'>Some simple debugging tools related to Java. These are for those who are new to Java.&lt;br /&gt;&lt;br /&gt;1. Application is crashing : Most miserable one. Get your log file, try to analysis log. How to write log file, use Java Logger API.  Java Logger had been introduced in JDK 1.4.2. The most awesome feature of Logger API is that you can use it in production without much overhead. The overhead is controlled by something called level in API. Level goes from FINEST to SEVERE. You can refer to &lt;a href=&quot;http://onjava.com/pub/a/onjava/2002/06/19/log.html&quot;&gt;O&#39;Relly Book &quot;Java, In a NutShell&quot;&lt;/a&gt;. I guess, it covers Logging API into a great detail.&lt;br /&gt;&lt;br /&gt;Lot many things to know: Standalone application is crashing or web application. Its crashing with -client or -server option, appletviewer or browser, plugin or plugin2. &lt;br /&gt;&lt;br /&gt;2. Application Hang: Most prominent reason for Hang is thread related. I don&#39;t know too many language but Java handles thread in most graceful way. What we can do when a Java Process or Application Hang:&lt;br /&gt;&lt;br /&gt;    - Hmm, get stack trace at Java and native level.&lt;br /&gt;    - Get to know current thread conditions and their status.&lt;br /&gt;    - Try to get core dump. Sometime, application will refuse to give you.&lt;br /&gt;    - Get to know machine detail. Almost all OS, use different thread model. Not only that in Solaris, 8 and 9 use different models. Sometime, it narrow down the problem, if you are luck :).&lt;br /&gt;&lt;br /&gt;How to get all these information. Easy actually. Take help of Java Debugger, jdb(which is a part of JDK). In jdb, you can run the command like threads, thread, dump and many more. Take help of Windbg, if its a windows machine for native level. I find it useful and painful.&lt;br /&gt;&lt;br /&gt;3. Your application is drinking memory: There is some memory leak. Best is to use jhat(part of JDK). First take a heap dump by using jmap, jconsole hprof. Pass that heap dump to jhat and it will bring a server and&lt;br /&gt;&lt;br /&gt;dump all the information. Analyze where most of the memory is going. Writing to track the place from where memory is going. What is GC response on it. Change some arguments of GC and then give a try.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;There are lot of JDK tools that help in analyzing JVM, threads, memory, process. See the list : &lt;a href=&quot;http://java.sun.com/javase/6/docs/technotes/tools/&quot;&gt;http://java.sun.com/javase/6/docs/technotes/tools/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Garbage collector play important role in all of them, so always get to know what is best for what:- &lt;a href=&quot;http://java.sun.com/javase/technologies/hotspot/gc/gc_tuning_6.html&quot;&gt;http://java.sun.com/javase/technologies/hotspot/gc/gc_tuning_6.html&lt;/a&gt; (Even you know less about GC, you can&#39;t resist yourself finishing this page, this is so interesting). In terms of GC, everything is improving day be day and we have new GC, Garbage First aka G1 ready. With Vikram, I had one presentation on G1 in Sun tech days - &lt;a href=&quot;http://developers.sun.com/events/techdays/presentations/locations-2009/hyderabad/td_hyd_garbagcollector_aroskar_choudhary.pdf&quot;&gt;http://developers.sun.com/events/techdays/presentations/locations-2009/hyderabad/td_hyd_garbagcollector_aroskar_choudhary.pdf&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you have any wired debugging story related to Java, please share :). Also, visit &lt;a href=&quot;https://visualvm.dev.java.net/&quot;&gt;Visual VM&lt;/a&gt; which is meant to integrate all the command line tools of JDK. &lt;input id=&quot;jsProxy&quot; onclick=&quot;if(window.parent &amp;amp;&amp;amp; window.parent.Xinha){return false}if(window.parent &amp;amp;&amp;amp; window.parent.Xinha){return false}if(window.parent &amp;amp;&amp;amp; window.parent.Xinha){return false}jsCall();&quot; type=&quot;hidden&quot;&gt;&lt;br /&gt; &lt;div id=&quot;refHTML&quot;&gt;&lt;/div&gt;&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot;&gt;&lt;!--Session data--&gt;&lt;input onclick=&quot;if(window.parent &amp;amp;&amp;amp; window.parent.Xinha){return false}if(window.parent &amp;amp;&amp;amp; window.parent.Xinha){return false}jsCall();&quot; id=&quot;jsProxy&quot; type=&quot;hidden&quot;&gt;   &lt;div id=&quot;refHTML&quot;&gt;&lt;/div&gt;&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot;&gt;&lt;!--Session data--&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;if(window.parent &amp;amp;&amp;amp; window.parent.Xinha){return false}jsCall();&quot; type=&quot;hidden&quot;&gt;   &lt;div id=&quot;refHTML&quot;&gt;&lt;/div&gt;&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot;&gt;&lt;!--Session data--&gt;&lt;input onclick=&quot;jsCall();&quot; id=&quot;jsProxy&quot; type=&quot;hidden&quot;&gt;&lt;br /&gt; &lt;div id=&quot;refHTML&quot;&gt;&lt;/div&gt;&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot;&gt;&lt;!--Session data--&gt;&lt;input id=&quot;jsProxy&quot; onclick=&quot;jsCall();&quot; type=&quot;hidden&quot;&gt;  &lt;div id=&quot;refHTML&quot;&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java4ever.blogspot.com/feeds/2375700233343287138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/28019847/2375700233343287138' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/2375700233343287138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/2375700233343287138'/><link rel='alternate' type='text/html' href='http://java4ever.blogspot.com/2009/08/java-debugging-basics.html' title='Java Debugging basics'/><author><name>Vaibhav Choudhary</name><uri>http://www.blogger.com/profile/11145353943937580111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWJa-clA9bmSF9tmOeDZHpD_gX2QkRaahdSVl6lYhC7sqdeXAgdDZoLM_b21HBIxpE4-nSvkX4IEm33OSZQ5e3A6oXd37wSC4y2PAk7TJiLlbJwZCCA5X0Mb1sfo8hFCc/s113/55455336_10156641084541281_7257414606094598144_n.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28019847.post-820617308178012113</id><published>2008-12-30T17:12:00.001+05:30</published><updated>2008-12-30T17:19:08.103+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="code"/><category scheme="http://www.blogger.com/atom/ns#" term="javafx"/><category scheme="http://www.blogger.com/atom/ns#" term="sample"/><category scheme="http://www.blogger.com/atom/ns#" term="Zorder"/><title type='text'>Z-Order is supported in JavaFX !</title><content type='html'>&lt;p&gt;While writing some of the samples in which we have to play with images, we sometimes has to manage the depth of the images. Like for the &lt;a target=&quot;_blank&quot; href=&quot;http://javafx.com/samples/Carousel/index.html&quot;&gt;Carousel example&lt;/a&gt;, every image has a depth. In that example, actually images are not overlapping with each other, so we never need to write the &lt;a target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/Z-order&quot;&gt;Z-Order concept. &lt;/a&gt;But if someone want to write a Carousel or some application in which Images are residing over other images, we need to set the Z-order of Images. Z-Order in literal term means depth-ness of images. JavaFX gracefully provide API&#39;s to set the Z-order of images. With a simple call, you can set the images&lt;a href=&quot;http://java.sun.com/javafx/1/docs/api/javafx.scene/javafx.scene.Node.html&quot;&gt; toFront or toBack&lt;/a&gt; features.&lt;/p&gt;&lt;br /&gt; &lt;p&gt;In this example, I have taken 3 images and try to set the depth-ness of images on the event of Buttons. &lt;br /&gt;&lt;/p&gt;&lt;br /&gt; &lt;p&gt; &lt;img src=&quot;http://blogs.sun.com/vaibhav/resource/Image1Front.png&quot; /&gt; &lt;img src=&quot;http://blogs.sun.com/vaibhav/resource/image2Front.png&quot; /&gt;&lt;/p&gt;&lt;br /&gt; &lt;p&gt;                 First Image on Top                             Second Image on Top&lt;br /&gt;&lt;/p&gt;&lt;br /&gt; &lt;p&gt; &lt;/p&gt;&lt;br /&gt; &lt;p&gt; &lt;/p&gt;&lt;br /&gt; &lt;p&gt; &lt;img src=&quot;http://blogs.sun.com/vaibhav/resource/Image3Front.png&quot; /&gt; &lt;/p&gt;&lt;br /&gt; &lt;p&gt;      Third Image on Top&lt;/p&gt;   &lt;p&gt; &lt;/p&gt;&lt;br /&gt; &lt;p&gt;Here is the code to set the Z-Order : &lt;/p&gt;   &lt;p&gt; &lt;/p&gt;&lt;br /&gt; &lt;pre name=&quot;code&quot; class=&quot;java&quot;&gt;package zorder;&lt;br /&gt;&lt;br /&gt;import javafx.scene.Group;&lt;br /&gt;import javafx.scene.image.Image;&lt;br /&gt;import javafx.scene.image.ImageView;&lt;br /&gt;import javafx.scene.paint.Color;&lt;br /&gt;import javafx.scene.Scene;&lt;br /&gt;import javafx.stage.Stage;&lt;br /&gt;import javafx.scene.shape.Rectangle;&lt;br /&gt;import javafx.scene.input.MouseEvent;&lt;br /&gt;import javafx.ext.swing.SwingButton;&lt;br /&gt;&lt;br /&gt;var im1 = ImageView {&lt;br /&gt;    x: 100&lt;br /&gt;    y: 100&lt;br /&gt;    image: Image {&lt;br /&gt;        url: &quot;{__DIR__}im1.PNG&quot;&lt;br /&gt;    }&lt;br /&gt;    opacity: 0.8&lt;br /&gt;        };&lt;br /&gt;&lt;br /&gt;var im2 = ImageView {&lt;br /&gt;    x: 130&lt;br /&gt;    y: 130&lt;br /&gt;    image: Image {&lt;br /&gt;        url: &quot;{__DIR__}im2.PNG&quot;&lt;br /&gt;    }&lt;br /&gt;    opacity: 0.8&lt;br /&gt;        };&lt;br /&gt;&lt;br /&gt;var im3 = ImageView {&lt;br /&gt;    x: 160&lt;br /&gt;    y: 160&lt;br /&gt;    image: Image {&lt;br /&gt;        url: &quot;{__DIR__}im3.PNG&quot;&lt;br /&gt;    }&lt;br /&gt;    opacity: 0.8&lt;br /&gt;        };&lt;br /&gt;&lt;br /&gt;var gp = Group {&lt;br /&gt;    content:[&lt;br /&gt;        im1, im2,im3&lt;br /&gt;    ]&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;Stage {&lt;br /&gt;    title: &quot;Application title&quot;&lt;br /&gt;    width: 400&lt;br /&gt;    height: 400&lt;br /&gt;    scene: Scene {&lt;br /&gt;        fill: Color.BLACK&lt;br /&gt;        content: [&lt;br /&gt;            gp,&lt;br /&gt;            SwingButton {&lt;br /&gt;                translateX: 10&lt;br /&gt;                translateY: 10&lt;br /&gt;                text: &quot;Image 1&quot;&lt;br /&gt;                action: function() {&lt;br /&gt;                    im1.toFront();&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            SwingButton {&lt;br /&gt;                translateX: 90&lt;br /&gt;                translateY: 10&lt;br /&gt;                text: &quot;Image 2&quot;&lt;br /&gt;                action: function() {&lt;br /&gt;                    im2.toFront();&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            SwingButton {&lt;br /&gt;                translateX: 170&lt;br /&gt;                translateY: 10&lt;br /&gt;                text: &quot;Image 3&quot;&lt;br /&gt;                action: function() {&lt;br /&gt;                    im3.toFront();&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        ]&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;From next blog, I will use applet or JNLP in place of images, as suggested by Dmitry in last blog. Pictures make it bulky and uneasy to load. But I was getting some problem in deploying the application on Sun blog which will be rectified soon.</content><link rel='replies' type='application/atom+xml' href='http://java4ever.blogspot.com/feeds/820617308178012113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/28019847/820617308178012113' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/820617308178012113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/820617308178012113'/><link rel='alternate' type='text/html' href='http://java4ever.blogspot.com/2008/12/z-order-is-supported-in-javafx.html' title='Z-Order is supported in JavaFX !'/><author><name>Vaibhav Choudhary</name><uri>http://www.blogger.com/profile/11145353943937580111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWJa-clA9bmSF9tmOeDZHpD_gX2QkRaahdSVl6lYhC7sqdeXAgdDZoLM_b21HBIxpE4-nSvkX4IEm33OSZQ5e3A6oXd37wSC4y2PAk7TJiLlbJwZCCA5X0Mb1sfo8hFCc/s113/55455336_10156641084541281_7257414606094598144_n.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28019847.post-1415652331079366936</id><published>2008-12-22T08:50:00.001+05:30</published><updated>2008-12-22T08:52:42.063+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="API"/><category scheme="http://www.blogger.com/atom/ns#" term="example"/><category scheme="http://www.blogger.com/atom/ns#" term="javafx"/><category scheme="http://www.blogger.com/atom/ns#" term="Production Suite"/><category scheme="http://www.blogger.com/atom/ns#" term="sample"/><title type='text'>JavaFX production Suite - How it work</title><content type='html'>&lt;p&gt;Here is the little discussion on Designer + Developer workflow in JavaFX. Powered with Project Nile, we can export data from PhotoShop or Illustrator. Actually the complete production suite is awesome and provide developer and designer to work in parallel. Here how it is : &lt;/p&gt; &lt;br /&gt;  &lt;p&gt;&lt;img src=&quot;http://blogs.sun.com/vaibhav/resource/Flow.png&quot; /&gt; &lt;/p&gt; &lt;br /&gt;  &lt;p&gt;So, Developer can work on the business logic and till that time designer can design the actually content for developer. Finally it will merge in a great style.&amp;nbsp;&lt;/p&gt; &lt;br /&gt;  &lt;p&gt;&amp;nbsp;Basic Requirement to do : &lt;/p&gt; &lt;br /&gt;  &lt;p&gt;1. JavaFX Production Suite : Download from the start section of&lt;img src=&quot;http://www.javafx.com&quot; /&gt; javafx.com. &lt;/p&gt; &lt;br /&gt;  &lt;p&gt;2. For Designer : Any tool, either PhotoShop CS3 or Illustrator CS3. Officially CS3 is the supported platform but it works for CS4 as well. &lt;/p&gt; &lt;br /&gt;  &lt;p&gt;3. For Developer : Java FX SDK: Download from the start section of javafx.com&lt;/p&gt; &lt;br /&gt;  &lt;p&gt;Now, I am going ahead with PhotoShop. Copy the plugin from JavaFX production suite to PhotoShop. Run the PhotoShop, in export it will give you a save option in JavaFX, which basically saves the file in fxz format(a new format, why Sun need a new format, there is a lot of discussion and Jeet has pointed some reason in &lt;a href=&quot;http://blogs.sun.com/meetjeet/entry/javafx_the_road_ahead&quot;&gt;his blog&lt;/a&gt;).&lt;/p&gt; &lt;br /&gt;  &lt;p&gt;Alright, so work started :&amp;nbsp;&lt;/p&gt; &lt;br /&gt;  &lt;p&gt; I was watching the batman movie, so decide to take his awesome car, which is here : &lt;/p&gt; &lt;br /&gt;  &lt;p&gt;&lt;img height=&quot;391&quot; width=&quot;522&quot; src=&quot;http://www.idcow.net/idcow/products/hw2078.jpg&quot; /&gt;&lt;br /&gt;&lt;/p&gt; &lt;br /&gt;  &lt;p&gt; &lt;/p&gt; &lt;br /&gt;  &lt;p&gt;In photoshop, I have changed the hue and exported all in fxz format. &lt;/p&gt; &lt;br /&gt;  &lt;p&gt;Then I made a Netbeans Project, Copy the fxz file into the project space. We can now click on fxz file, we can see the preview and code as well. Right now, if we put some of the complex features of PhotoShop, I am afaird to say JavaFX will not catch those changes.&lt;/p&gt; &lt;br /&gt;  &lt;p&gt;So, my fxz file(JavaFX.fxz) looks like this : &lt;/p&gt; &lt;br /&gt;  &lt;pre name=&quot;code&quot; class=&quot;java&quot;&gt;  /*&lt;br /&gt;&amp;nbsp;* Generated by JavaFX plugin for Adobe Photoshop.&lt;br /&gt;&amp;nbsp;* Created on Fri Dec 19 19:17:33 2008&lt;br /&gt;&amp;nbsp;*/&lt;br /&gt;//@version 1.0&lt;br /&gt;&lt;br /&gt;Group {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; clip: Rectangle { x:0 y:0 width:576 height:432 }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; content: [&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ImageView {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; opacity: 1.0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; x: 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; y: 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; image: Image {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; url: &quot;{__DIR__}Background.png&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; },&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; },&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ]&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt; &lt;br /&gt;  &lt;p&gt;Actually in my case there was nothing, so it generated a simple code :). &lt;/p&gt; &lt;br /&gt;  &lt;p&gt;Now, I have made another file, calling it CarRotate.fx :&lt;/p&gt; &lt;br /&gt;  &lt;p&gt; &lt;/p&gt; &lt;br /&gt;  &lt;pre name=&quot;code&quot; class=&quot;java&quot;&gt;package psfx;&lt;br /&gt;&lt;br /&gt;import java.lang.*;&lt;br /&gt;import javafx.fxd.FXDLoader;&lt;br /&gt;import javafx.scene.*;&lt;br /&gt;import javafx.scene.input.*;&lt;br /&gt;import javafx.scene.paint.Color;&lt;br /&gt;import javafx.scene.shape.*;&lt;br /&gt;import javafx.stage.*;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;var group = Group {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; content: []&lt;br /&gt;};&lt;br /&gt;var fxdContent = FXDLoader.load(&quot;{__DIR__}JavaFX.fxz&quot;); // loads the content&lt;br /&gt;insert fxdContent into group.content; // inserts the fxd content into the group&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Stage {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; title: &quot;JavaFX Invaders&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; resizable: true&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; width: 700&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; height: 700&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; onClose: function() { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.exit (0);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; scene: Scene {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; content: [&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; group&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Rectangle {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x: 330,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; y: 500&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; width: 60,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; height: 30&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fill: Color.GRAY&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; onMouseClicked: function( e: MouseEvent ):Void {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fxdContent.rotate = 90;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Some part of the code is point of interest : &lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;pre name=&quot;code&quot; class=&quot;java&quot;&gt;  var group = Group {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; content: []&lt;br /&gt;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;var fxdContent = FXDLoader.load(&quot;{__DIR__}JavaFX.fxz&quot;); // loads the content&lt;br /&gt;&lt;br /&gt;insert fxdContent into group.content; // inserts the fxd content into the group&lt;br /&gt;&lt;/pre&gt; &lt;br /&gt;  &lt;p&gt;&lt;br /&gt;&lt;br /&gt;Here I have loaded the .fxz file into var fxdContent which is a node and node means things are in our hand. I have simply written a rotate equation on a button click which is working nicely.&lt;/p&gt; &lt;br /&gt;  &lt;p&gt;&lt;img src=&quot;http://blogs.sun.com/vaibhav/resource/car_modifed.PNG&quot; /&gt;&lt;/p&gt; &lt;br /&gt;  &lt;p&gt; &lt;/p&gt; &lt;br /&gt;  &lt;p&gt;We can see the rotated car and hue which is the asset of PhotoShop in Green color. Huh, finally its done. Sorry, for posting bad example. &lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://java4ever.blogspot.com/feeds/1415652331079366936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/28019847/1415652331079366936' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/1415652331079366936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/1415652331079366936'/><link rel='alternate' type='text/html' href='http://java4ever.blogspot.com/2008/12/javafx-production-suite-how-it-work.html' title='JavaFX production Suite - How it work'/><author><name>Vaibhav Choudhary</name><uri>http://www.blogger.com/profile/11145353943937580111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWJa-clA9bmSF9tmOeDZHpD_gX2QkRaahdSVl6lYhC7sqdeXAgdDZoLM_b21HBIxpE4-nSvkX4IEm33OSZQ5e3A6oXd37wSC4y2PAk7TJiLlbJwZCCA5X0Mb1sfo8hFCc/s113/55455336_10156641084541281_7257414606094598144_n.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28019847.post-175014019202248666</id><published>2008-12-22T08:45:00.002+05:30</published><updated>2008-12-22T08:49:56.838+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="API"/><category scheme="http://www.blogger.com/atom/ns#" term="example"/><category scheme="http://www.blogger.com/atom/ns#" term="javafx"/><category scheme="http://www.blogger.com/atom/ns#" term="PhotoShop"/><category scheme="http://www.blogger.com/atom/ns#" term="Production Suite"/><category scheme="http://www.blogger.com/atom/ns#" term="sample"/><title type='text'>JavaFX - Developer and Designer work !</title><content type='html'>&lt;p&gt;One more example of JavaFX production Suite. Though the complete thing can be done in Photoshop alone but I am just giving an example. I have made a house in Photoshop, which is not very good :(, but fair enough. And I animated the star effect in JavaFX. &lt;/p&gt;&lt;br /&gt; &lt;p&gt;So, here is my home in photoshop :&lt;/p&gt;&lt;br /&gt; &lt;p&gt; &lt;img src=&quot;http://blogs.sun.com/vaibhav/resource/House.png&quot; /&gt;&lt;/p&gt;&lt;br /&gt; &lt;p&gt;Actually this is funny, I was following a tutorial to make house and in temptation, I made shadow as well, but there is no meaning of shadow in night :). Now, I filled star sparking effect in this from JavaFX.&lt;/p&gt;&lt;br /&gt; &lt;p&gt; &lt;img src=&quot;http://blogs.sun.com/vaibhav/resource/HouseStar.png&quot; /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt; &lt;p&gt;Filling star effect need same which we have written for sparkling glasses. Just some changes here and there. In the last blog we have already discussed how to import work from Photoshop. &lt;/p&gt;Here are the things to download:&lt;br /&gt; &lt;p&gt;1. &lt;a href=&quot;http://blogs.sun.com/vaibhav/resource/House.fxz&quot;&gt;House in fxz format .&lt;/a&gt;&lt;/p&gt;2. Code (&lt;a href=&quot;http://blogs.sun.com/vaibhav/resource/Main.fx&quot;&gt;Main.fx&lt;/a&gt;, &lt;a href=&quot;http://blogs.sun.com/vaibhav/resource/Star.fx&quot;&gt;Star.fx&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Lot many things can be done. But I don&#39;t know Photoshop.</content><link rel='replies' type='application/atom+xml' href='http://java4ever.blogspot.com/feeds/175014019202248666/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/28019847/175014019202248666' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/175014019202248666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/175014019202248666'/><link rel='alternate' type='text/html' href='http://java4ever.blogspot.com/2008/12/javafx-developer-and-designer-work.html' title='JavaFX - Developer and Designer work !'/><author><name>Vaibhav Choudhary</name><uri>http://www.blogger.com/profile/11145353943937580111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWJa-clA9bmSF9tmOeDZHpD_gX2QkRaahdSVl6lYhC7sqdeXAgdDZoLM_b21HBIxpE4-nSvkX4IEm33OSZQ5e3A6oXd37wSC4y2PAk7TJiLlbJwZCCA5X0Mb1sfo8hFCc/s113/55455336_10156641084541281_7257414606094598144_n.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28019847.post-2689295337152193075</id><published>2008-12-10T22:46:00.001+05:30</published><updated>2008-12-10T22:54:14.511+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="animation"/><category scheme="http://www.blogger.com/atom/ns#" term="API"/><category scheme="http://www.blogger.com/atom/ns#" term="code"/><category scheme="http://www.blogger.com/atom/ns#" term="example"/><category scheme="http://www.blogger.com/atom/ns#" term="javafx"/><category scheme="http://www.blogger.com/atom/ns#" term="motion"/><category scheme="http://www.blogger.com/atom/ns#" term="RIA"/><category scheme="http://www.blogger.com/atom/ns#" term="sample"/><title type='text'>Physics Motion - Spring In JavaFX</title><content type='html'>3 weeks back, we were thinking of some cool application to make. I am a guy who has seen very less outside world, so coming up with some great idea is always tough for me. So, deciding that, I went back to my tenth class physics book and saw some of the cool physics motion. Its one of the tough subject and always screw me in exam. Searching some of the easy equation, I though to make one spring motion. Meantime, I though there is some spring motion residing in our repository. Actually one of the &lt;a href=&quot;http://www.javafx.com/samples/SpringAnimation/index.html&quot; target=&quot;_blank&quot;&gt;Josh application&lt;/a&gt;s do it in awesome way, but still we were missing the actual feel of Spring motion because of the gig-gag and spiral stuff attached to the wall and spring is going up and down in it, with a complete view of awesomeness :). This is what finally we achieve from this blog :&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://blogs.sun.com/vaibhav/resource/SpringMotion.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;&lt;br /&gt;I can still bet this can be 3 times much better than what you are seeing here. So, little of good news here that this sample can be executed on mobile&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://blogs.sun.com/vaibhav/resource/mobile_Spring.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;&lt;br /&gt;Regret to say, ball will not look like a real 3D ball in FX Mobile because of Bug ID: &lt;a href=&quot;http://openjfx.java.sun.com/jira/browse/RT-2205&quot; target=&quot;_blank&quot;&gt;RT-2205&lt;/a&gt;, which basically speaks that Mobile Runtime don&#39;t understand Radial Gradient, hoping this will be fixed soon.&lt;br /&gt;&lt;br /&gt;Here are the code files :&lt;br /&gt;&lt;br /&gt;1. &lt;a href=&quot;http://blogs.sun.com/vaibhav/resource/Main.fx&quot; target=&quot;_blank&quot;&gt;Main file&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;2. &lt;a href=&quot;http://blogs.sun.com/vaibhav/resource/Spring.fx&quot; target=&quot;_blank&quot;&gt;Spring file.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;3. &lt;a href=&quot;http://www.blogger.com/vaibhav/resource/SpringEquation.fx&quot; target=&quot;_blank&quot;&gt;SpringEquation file.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Enjoy FX&#39;ing !</content><link rel='replies' type='application/atom+xml' href='http://java4ever.blogspot.com/feeds/2689295337152193075/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/28019847/2689295337152193075' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/2689295337152193075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/2689295337152193075'/><link rel='alternate' type='text/html' href='http://java4ever.blogspot.com/2008/12/physics-motion-spring-in-javafx.html' title='Physics Motion - Spring In JavaFX'/><author><name>Vaibhav Choudhary</name><uri>http://www.blogger.com/profile/11145353943937580111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWJa-clA9bmSF9tmOeDZHpD_gX2QkRaahdSVl6lYhC7sqdeXAgdDZoLM_b21HBIxpE4-nSvkX4IEm33OSZQ5e3A6oXd37wSC4y2PAk7TJiLlbJwZCCA5X0Mb1sfo8hFCc/s113/55455336_10156641084541281_7257414606094598144_n.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28019847.post-4095221039535107321</id><published>2008-12-09T22:35:00.001+05:30</published><updated>2008-12-09T22:37:55.127+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="API"/><category scheme="http://www.blogger.com/atom/ns#" term="code"/><category scheme="http://www.blogger.com/atom/ns#" term="example"/><category scheme="http://www.blogger.com/atom/ns#" term="javafx"/><category scheme="http://www.blogger.com/atom/ns#" term="Lighting"/><category scheme="http://www.blogger.com/atom/ns#" term="sample"/><title type='text'>3D E&#39;FX&#39;s in JavaFX</title><content type='html'>&lt;p&gt;Me and &lt;a target=&quot;_blank&quot; href=&quot;http://www.blogger.com/vikram&quot;&gt;Vikram&lt;/a&gt; was looking today some of the cool flash examples and I have seen the button effect at some place, when you press the button it really goes like inside and coming out. But that was an effect achieved by the images(two different images, one unpressed button and one pressed button) and then we thought to simulate this effect by code. Somehow we are able to do that in FX, here is the final outcome:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img src=&quot;http://blogs.sun.com/vaibhav/resource/im_pressred.png&quot; /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img src=&quot;http://blogs.sun.com/vaibhav/resource/im_pressgreen.png&quot; /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;What we have tried to do is pressing one button will put the other in unpressed mode and vice-versa. This has been achieved by some of the cool API&#39;s of JavaFX. And we have used the DistantLight effect of JavaFX which gives a lighting effect in its awesome way. Actually this can be more cooler but I left that for developer to modify it according to their need :). But this is a modular code and can be used in any of the button place.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Here is the simple code for the same(again code is not written in the most optimized way but in the best way for understanding) :&lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;br /&gt;&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;package lighteff;&lt;br /&gt;&lt;br /&gt;import javafx.scene.effect.light.DistantLight;&lt;br /&gt;import javafx.scene.effect.Lighting;&lt;br /&gt;import javafx.scene.Group;&lt;br /&gt;import javafx.scene.input.MouseEvent;&lt;br /&gt;import javafx.scene.paint.Color;&lt;br /&gt;import javafx.scene.paint.RadialGradient;&lt;br /&gt;import javafx.scene.paint.Stop;&lt;br /&gt;import javafx.scene.Scene;&lt;br /&gt;import javafx.scene.shape.Circle;&lt;br /&gt;import javafx.scene.text.Font;&lt;br /&gt;import javafx.scene.text.Text;&lt;br /&gt;import javafx.stage.Stage;&lt;br /&gt;import javafx.stage.StageStyle;&lt;br /&gt;&lt;br /&gt;var factor = 5;&lt;br /&gt;var scale = 1.0;&lt;br /&gt;var factor1 = 10;&lt;br /&gt;var scale1 = 0.85;&lt;br /&gt;&lt;br /&gt;Stage {&lt;br /&gt;  title: &quot;Control Panel&quot;&lt;br /&gt;  width: 290&lt;br /&gt;  height: 180&lt;br /&gt;  style: StageStyle.UNDECORATED&lt;br /&gt;  scene: Scene {&lt;br /&gt;      fill: Color.BLACK&lt;br /&gt;      content: [&lt;br /&gt;          Group {&lt;br /&gt;              effect: Lighting {&lt;br /&gt;                  light: DistantLight {&lt;br /&gt;                      azimuth: 90&lt;br /&gt;                      elevation: 60&lt;br /&gt;                  }&lt;br /&gt;                  surfaceScale: bind factor&lt;br /&gt;              }&lt;br /&gt;              content: [&lt;br /&gt;                  Circle {&lt;br /&gt;                      centerX: 100,&lt;br /&gt;                      centerY: 100&lt;br /&gt;                      radius: 40&lt;br /&gt;                      fill: Color.RED&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                      onMousePressed: function( e: MouseEvent ):Void {&lt;br /&gt;                          scale = 0.85;&lt;br /&gt;                          factor = 10;&lt;br /&gt;                          scale1 = 1.0;&lt;br /&gt;                          factor1 = 5;&lt;br /&gt;                      }&lt;br /&gt;                  },&lt;br /&gt;                  Text {&lt;br /&gt;                      fill: Color.WHITE&lt;br /&gt;                      scaleX: bind scale&lt;br /&gt;                      scaleY: bind scale&lt;br /&gt;                      font: Font {&lt;br /&gt;                          size: 24&lt;br /&gt;                      }&lt;br /&gt;                      x: 71,&lt;br /&gt;                      y: 105&lt;br /&gt;                      content: &quot;Press&quot;&lt;br /&gt;                  }&lt;br /&gt;              ]&lt;br /&gt;          },&lt;br /&gt;          Group {&lt;br /&gt;              effect: Lighting {&lt;br /&gt;                  light: DistantLight {&lt;br /&gt;                      azimuth: 90&lt;br /&gt;                      elevation: 60&lt;br /&gt;                  }&lt;br /&gt;                  surfaceScale: bind factor1&lt;br /&gt;              }&lt;br /&gt;              content: [&lt;br /&gt;&lt;br /&gt;                  Circle {&lt;br /&gt;                      centerX: 200&lt;br /&gt;                      centerY: 100&lt;br /&gt;                      radius: 40&lt;br /&gt;                      fill: Color.BLUE&lt;br /&gt;                      onMousePressed: function( e: MouseEvent ):Void {&lt;br /&gt;                          scale1 = 0.85;&lt;br /&gt;                          factor1 = 10;&lt;br /&gt;                          scale = 1.0;&lt;br /&gt;                          factor = 5;&lt;br /&gt;                      }&lt;br /&gt;                  },&lt;br /&gt;                  Text {&lt;br /&gt;                      fill: Color.WHITE&lt;br /&gt;                      scaleX: bind scale1&lt;br /&gt;                      scaleY: bind scale1&lt;br /&gt;                      font: Font {&lt;br /&gt;                          size: 24&lt;br /&gt;                      }&lt;br /&gt;                      x: 171,&lt;br /&gt;                      y: 105&lt;br /&gt;                      content: &quot;Press&quot;&lt;br /&gt;                  }&lt;br /&gt;              ]&lt;br /&gt;          }&lt;br /&gt;      ]&lt;br /&gt;&lt;br /&gt;  }&lt;br /&gt;}  &lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://java4ever.blogspot.com/feeds/4095221039535107321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/28019847/4095221039535107321' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/4095221039535107321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/4095221039535107321'/><link rel='alternate' type='text/html' href='http://java4ever.blogspot.com/2008/12/3d-efxs-in-javafx.html' title='3D E&#39;FX&#39;s in JavaFX'/><author><name>Vaibhav Choudhary</name><uri>http://www.blogger.com/profile/11145353943937580111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWJa-clA9bmSF9tmOeDZHpD_gX2QkRaahdSVl6lYhC7sqdeXAgdDZoLM_b21HBIxpE4-nSvkX4IEm33OSZQ5e3A6oXd37wSC4y2PAk7TJiLlbJwZCCA5X0Mb1sfo8hFCc/s113/55455336_10156641084541281_7257414606094598144_n.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28019847.post-6436148620158419955</id><published>2008-12-01T20:45:00.000+05:30</published><updated>2008-12-01T20:46:07.088+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="plugin"/><category scheme="http://www.blogger.com/atom/ns#" term="plugin2"/><title type='text'>Java Plugin2 - Docs !</title><content type='html'>&lt;p&gt;&lt;br /&gt;With Plug-in 2(Java 6u10), a whole new experience comes into Java Plug-in. I have mentioned the new features of Plugin2 in some of my presentations of 6u10.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;  &lt;p&gt;For detail, please visit this link : &lt;a href=&quot;http://java.sun.com/javase/6/webnotes/6u10/plugin2/index.html%20&quot;&gt;http://java.sun.com/javase/6/webnotes/6u10/plugin2/index.html&lt;br /&gt;&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;  &lt;p&gt;Switching between old/new plugin:&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;  &lt;p&gt;Java Control Panel - Advanced - Java Plug-in - Enable the next gen plug-in.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;  &lt;p&gt;(Check this link : &lt;a href=&quot;http://www.java.com/en/download/help/new_plugin.xml&quot;&gt;http://www.java.com/en/download/help/new_plugin.xml&lt;/a&gt;)&lt;/p&gt;&lt;br /&gt;  &lt;p&gt;&lt;br /&gt;&lt;br /&gt;By default, it will take new plugin, but untick it for old plugin.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://java4ever.blogspot.com/feeds/6436148620158419955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/28019847/6436148620158419955' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/6436148620158419955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/6436148620158419955'/><link rel='alternate' type='text/html' href='http://java4ever.blogspot.com/2008/12/java-plugin2-docs.html' title='Java Plugin2 - Docs !'/><author><name>Vaibhav Choudhary</name><uri>http://www.blogger.com/profile/11145353943937580111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWJa-clA9bmSF9tmOeDZHpD_gX2QkRaahdSVl6lYhC7sqdeXAgdDZoLM_b21HBIxpE4-nSvkX4IEm33OSZQ5e3A6oXd37wSC4y2PAk7TJiLlbJwZCCA5X0Mb1sfo8hFCc/s113/55455336_10156641084541281_7257414606094598144_n.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28019847.post-7443246094451652336</id><published>2008-12-01T20:44:00.001+05:30</published><updated>2008-12-01T20:44:53.806+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Image"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="javafx"/><category scheme="http://www.blogger.com/atom/ns#" term="mouseevent"/><title type='text'>Scene to Scene in JavaFX</title><content type='html'>&lt;p&gt;Any middle or big application demands to change one window to other at some point of time. A window type of thing in JavaFX is represented by Scene and its each to switch between scene or to run multiple scenes.&lt;/p&gt;&lt;br /&gt;  &lt;p&gt;Here is a small application in which clicking on image will put you in another window, written &amp;quot;Hello World&amp;quot; &lt;/p&gt;&lt;br /&gt;  &lt;p&gt; &lt;/p&gt;&lt;br /&gt;  &lt;pre name=&quot;code&quot; class=&quot;java&quot;&gt;package sample6;&lt;br /&gt;&lt;br /&gt;import javafx.stage.Stage;&lt;br /&gt;import javafx.scene.Scene;&lt;br /&gt;import javafx.scene.text.Text;&lt;br /&gt;import javafx.scene.text.Font;&lt;br /&gt;import javafx.scene.image.ImageView;&lt;br /&gt;import javafx.scene.image.Image;&lt;br /&gt;import javafx.scene.input.MouseEvent;&lt;br /&gt;&lt;br /&gt;var s_new:Scene;&lt;br /&gt;var s = Scene {&lt;br /&gt;   content: [&lt;br /&gt;       Text {&lt;br /&gt;           font: Font {&lt;br /&gt;               size: 24&lt;br /&gt;           }&lt;br /&gt;           x: 10,&lt;br /&gt;           y: 30&lt;br /&gt;           content: &quot;HelloWorld&quot;&lt;br /&gt;       }&lt;br /&gt;   ]&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;var s1 = Scene {&lt;br /&gt;   content: [&lt;br /&gt;       ImageView {&lt;br /&gt;           image: Image {&lt;br /&gt;               url: &quot;{__DIR__}im2.PNG&quot;&lt;br /&gt;           }&lt;br /&gt;           onMouseClicked: function( e: MouseEvent ):Void {&lt;br /&gt;               s_new = s;&lt;br /&gt;           }&lt;br /&gt;       }&lt;br /&gt;   ]&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;s_new = s1;&lt;br /&gt;Stage {&lt;br /&gt;   title: &quot;Application title&quot;&lt;br /&gt;   width: 250&lt;br /&gt;   height: 280&lt;br /&gt;   scene: bind s_new&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;  &lt;p&gt;So, its simple, on mouse click, I have bind a scene variable with a new scene. That&#39;s it !&lt;/p&gt;&lt;br /&gt;  &lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://java4ever.blogspot.com/feeds/7443246094451652336/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/28019847/7443246094451652336' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/7443246094451652336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/7443246094451652336'/><link rel='alternate' type='text/html' href='http://java4ever.blogspot.com/2008/12/scene-to-scene-in-javafx.html' title='Scene to Scene in JavaFX'/><author><name>Vaibhav Choudhary</name><uri>http://www.blogger.com/profile/11145353943937580111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWJa-clA9bmSF9tmOeDZHpD_gX2QkRaahdSVl6lYhC7sqdeXAgdDZoLM_b21HBIxpE4-nSvkX4IEm33OSZQ5e3A6oXd37wSC4y2PAk7TJiLlbJwZCCA5X0Mb1sfo8hFCc/s113/55455336_10156641084541281_7257414606094598144_n.jpeg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28019847.post-8797531713493140917</id><published>2008-12-01T20:42:00.001+05:30</published><updated>2008-12-01T20:43:38.115+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="drag"/><category scheme="http://www.blogger.com/atom/ns#" term="Image"/><category scheme="http://www.blogger.com/atom/ns#" term="javafx"/><category scheme="http://www.blogger.com/atom/ns#" term="mousemove"/><title type='text'>Moving image from MouseDrag</title><content type='html'>&lt;p&gt;So, we got a discussion here. Last week we(me, Subrata and Vikram, both my office colleagues) are discussing about dragging an image with mouse pointer in JavaFX. &lt;/p&gt;&lt;br /&gt;  &lt;p&gt;So,  this was the first code. Point is to drag an image from the same place where we first hit the mouse, like it happens when we drag a folder : &lt;br /&gt;&lt;/p&gt;&lt;br /&gt;  &lt;p&gt; &lt;/p&gt;&lt;br /&gt;  &lt;pre name=&quot;code&quot; class=&quot;java&quot;&gt;&lt;br /&gt;package sample5;&lt;br /&gt;&lt;br /&gt;import javafx.stage.Stage;&lt;br /&gt;import javafx.scene.Scene;&lt;br /&gt;import javafx.scene.text.Text;&lt;br /&gt;import javafx.scene.text.Font;&lt;br /&gt;import javafx.scene.image.ImageView;&lt;br /&gt;import javafx.scene.image.Image;&lt;br /&gt;import javafx.scene.input.MouseEvent;&lt;br /&gt;import java.lang.System;&lt;br /&gt;&lt;br /&gt;var x: Number;&lt;br /&gt;var y: Number;&lt;br /&gt;&lt;br /&gt;var im = Image {&lt;br /&gt;       url: &quot;{__DIR__}im2.PNG&quot;&lt;br /&gt;   };&lt;br /&gt;&lt;br /&gt;var temp1:Number = 0;&lt;br /&gt;var temp2: Number = 0;&lt;br /&gt;var count: Integer = 1;&lt;br /&gt;Stage {&lt;br /&gt;   title: &quot;Application title&quot;&lt;br /&gt;   width: 250&lt;br /&gt;   height: 280&lt;br /&gt;   scene: Scene {&lt;br /&gt;       content: [&lt;br /&gt;           ImageView {&lt;br /&gt;               x: bind x - temp1&lt;br /&gt;               y: bind y - temp2&lt;br /&gt;               image: Image {&lt;br /&gt;                   url: &quot;{__DIR__}im2.PNG&quot;&lt;br /&gt;               }&lt;br /&gt;               onMouseDragged: function( e: MouseEvent ):Void {&lt;br /&gt;                   x = e.x;&lt;br /&gt;                   y = e.y;&lt;br /&gt;                   if(count &amp;lt;= 1) {&lt;br /&gt;                       temp1 = e.x;&lt;br /&gt;                       temp2 = e.y;&lt;br /&gt;                   }&lt;br /&gt;                   count++;&lt;br /&gt;              }&lt;br /&gt;            }&lt;br /&gt;       ]&lt;br /&gt;&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt; You can see those patches of counts and flags which makes the code so unstable. And a bug, when you leave the mouse once, it cant grip the image from your mouse point again.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;  &lt;p&gt;Subrata has written a cleaner code which works correct and here it is :&lt;/p&gt;&lt;br /&gt;  &lt;pre name=&quot;code&quot; class=&quot;java&quot;&gt; &lt;br /&gt;&lt;div&gt;package mousedrag;&lt;/div&gt;&lt;br /&gt;  &lt;div&gt;import javafx.stage.Stage;&lt;br /&gt;import javafx.scene.Scene;&lt;br /&gt;import javafx.scene.image.ImageView;&lt;br /&gt;import javafx.scene.image.Image;&lt;br /&gt;import javafx.scene.input.MouseEvent;&lt;/div&gt;&lt;br /&gt;  &lt;div&gt;/**&lt;br /&gt;* @author Subrata Nath&lt;br /&gt;*/&lt;/div&gt;&lt;br /&gt;  &lt;div&gt;var imgX : Number = 20;&lt;br /&gt;var imgY : Number = 20;&lt;br /&gt;var startX : Number;&lt;br /&gt;var startY : Number ;&lt;br /&gt;var distX : Number;&lt;br /&gt;var distY : Number ;&lt;/div&gt;&lt;br /&gt;  &lt;div&gt;    Stage {&lt;br /&gt;        title: &quot;Mouse smooth drag&quot;&lt;br /&gt;        width: 250&lt;br /&gt;        height: 280&lt;br /&gt;        scene: Scene {&lt;br /&gt;            content: [&lt;br /&gt;                ImageView {&lt;br /&gt;                    x : bind imgX&lt;br /&gt;&lt;br /&gt;                    y : bind imgY&lt;br /&gt;                    image: Image {url: &quot;{__DIR__}Mail.png&quot;&lt;br /&gt;                    }&lt;br /&gt;                    onMousePressed: function( e: MouseEvent ):Void {&lt;br /&gt;                        startX = e.x;&lt;br /&gt;&lt;br /&gt;                        startY = e.y;&lt;br /&gt;         // Calculate the distance of the mouse point from the image top-left corner&lt;br /&gt;         // which will always come out as positive value&lt;br /&gt;                        distX = startX - imgX;&lt;br /&gt;&lt;br /&gt;                        distY = startY - imgY;&lt;br /&gt;                    }&lt;br /&gt;                    onMouseDragged: function( e: MouseEvent ):Void {&lt;br /&gt;                        // Find out the new image postion by subtracting the distance part from the mouse point.&lt;br /&gt;&lt;br /&gt;                        imgX = e.x - distX;&lt;br /&gt;                        imgY = e.y - distY;&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;            ]&lt;/div&gt;&lt;br /&gt;  &lt;div&gt;        }&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;  &lt;p&gt; &lt;/p&gt;&lt;br /&gt;  &lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;br /&gt;  &lt;p&gt; &lt;/p&gt;&lt;br /&gt;  &lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;  &lt;p&gt; &lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://java4ever.blogspot.com/feeds/8797531713493140917/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/28019847/8797531713493140917' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/8797531713493140917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/8797531713493140917'/><link rel='alternate' type='text/html' href='http://java4ever.blogspot.com/2008/12/moving-image-from-mousedrag.html' title='Moving image from MouseDrag'/><author><name>Vaibhav Choudhary</name><uri>http://www.blogger.com/profile/11145353943937580111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWJa-clA9bmSF9tmOeDZHpD_gX2QkRaahdSVl6lYhC7sqdeXAgdDZoLM_b21HBIxpE4-nSvkX4IEm33OSZQ5e3A6oXd37wSC4y2PAk7TJiLlbJwZCCA5X0Mb1sfo8hFCc/s113/55455336_10156641084541281_7257414606094598144_n.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28019847.post-1194911987865329123</id><published>2008-12-01T20:39:00.001+05:30</published><updated>2008-12-01T20:41:21.213+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="code"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="javafx"/><title type='text'>Sparkling Glass</title><content type='html'>&lt;p&gt;What to achieve: A sparkling glass(beer glasses are clean and shiny before beer get served) like this. &lt;br /&gt;&lt;/p&gt;&lt;br /&gt;  &lt;p&gt; &lt;img src=&quot;http://blogs.sun.com/vaibhav/resource/shinyglass.png&quot; /&gt;&lt;/p&gt;&lt;br /&gt;  &lt;p&gt; So, our aim is to make those sparkling effect on glass. Here is the code in JavaFX(things are little hard coded but better for understanding):&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;  &lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt; &lt;br /&gt;package sample;&lt;br /&gt;&lt;br /&gt;import javafx.stage.Stage;&lt;br /&gt;import javafx.scene.Scene;&lt;br /&gt;import javafx.scene.text.Text;&lt;br /&gt;import javafx.scene.text.Font;&lt;br /&gt;import javafx.scene.image.ImageView;&lt;br /&gt;import javafx.scene.image.Image;&lt;br /&gt;import javafx.scene.shape.Rectangle;&lt;br /&gt;import javafx.scene.paint.Color;&lt;br /&gt;import javafx.scene.input.MouseEvent;&lt;br /&gt;import javafx.scene.transform.Rotate;&lt;br /&gt;import javafx.scene.shape.Polygon;&lt;br /&gt;import javafx.animation.Timeline;&lt;br /&gt;import javafx.animation.KeyFrame;&lt;br /&gt;import javafx.animation.Interpolator;&lt;br /&gt;import javafx.scene.shape.Circle;&lt;br /&gt;import  javafx.scene.Group;&lt;br /&gt;/**&lt;br /&gt; * @author Vaibhav&lt;br /&gt; */&lt;br /&gt;&lt;br /&gt;var r = 0.0;&lt;br /&gt;var t = Timeline {&lt;br /&gt;    repeatCount: Timeline.INDEFINITE&lt;br /&gt;    keyFrames: [&lt;br /&gt;        KeyFrame {&lt;br /&gt;            time: 3s&lt;br /&gt;            canSkip: true&lt;br /&gt;            values: [&lt;br /&gt;                r =&amp;gt; 360.0 tween Interpolator.EASEBOTH&lt;br /&gt;            ]&lt;br /&gt;        }&lt;br /&gt;    ]&lt;br /&gt;}&lt;br /&gt;t.play();&lt;br /&gt;var op = 1.0;&lt;br /&gt;var t1 = Timeline {&lt;br /&gt;    repeatCount: Timeline.INDEFINITE&lt;br /&gt;    keyFrames: [&lt;br /&gt;        KeyFrame {&lt;br /&gt;            time: 3s&lt;br /&gt;            canSkip: true&lt;br /&gt;            values: [&lt;br /&gt;                op =&amp;gt; 0.0 tween Interpolator.EASEBOTH&lt;br /&gt;            ]&lt;br /&gt;        }&lt;br /&gt;    ]&lt;br /&gt;}&lt;br /&gt;t1.play();&lt;br /&gt;&lt;br /&gt;Stage {&lt;br /&gt;    title: &quot;Sparkling on Glass&quot;&lt;br /&gt;    width: 250&lt;br /&gt;    height: 480&lt;br /&gt;    scene: Scene {&lt;br /&gt;        fill: Color.BLACK&lt;br /&gt;        content: [&lt;br /&gt;            ImageView {&lt;br /&gt;                image: Image {&lt;br /&gt;                    url: &quot;{__DIR__}wineglass.png&quot;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            Polygon {&lt;br /&gt;                rotate: bind r;&lt;br /&gt;                translateX: 130&lt;br /&gt;                translateY: 100&lt;br /&gt;                scaleX: 0.5&lt;br /&gt;                scaleY: 0.5&lt;br /&gt;                points: [ 0,0, 2,-50, 4,0, 54,2,4,4,2,54,0,4,-50,2]&lt;br /&gt;                fill: Color.WHITE&lt;br /&gt;                opacity: bind op&lt;br /&gt;            },&lt;br /&gt;            Polygon {&lt;br /&gt;                rotate: 45;&lt;br /&gt;                scaleX: 0.25&lt;br /&gt;                scaleY: 0.25&lt;br /&gt;                translateX: 130&lt;br /&gt;                translateY: 100&lt;br /&gt;                points: [ 0,0, 2,-50, 4,0, 54,2,4,4,2,54,0,4,-50,2]&lt;br /&gt;                fill: Color.WHITE&lt;br /&gt;                opacity: bind 1 - op&lt;br /&gt;            },&lt;br /&gt;            Polygon {&lt;br /&gt;                rotate: bind r;&lt;br /&gt;                translateX: 50&lt;br /&gt;                translateY: 50&lt;br /&gt;                scaleX: 0.5&lt;br /&gt;                scaleY: 0.5&lt;br /&gt;                points: [ 0,0, 2,-50, 4,0, 54,2,4,4,2,54,0,4,-50,2]&lt;br /&gt;                fill: Color.WHITE&lt;br /&gt;                opacity: bind op&lt;br /&gt;            },&lt;br /&gt;            Polygon {&lt;br /&gt;                rotate: 45;&lt;br /&gt;                scaleX: 0.25&lt;br /&gt;                scaleY: 0.25&lt;br /&gt;                translateX: 50&lt;br /&gt;                translateY: 50&lt;br /&gt;                points: [ 0,0, 2,-50, 4,0, 54,2,4,4,2,54,0,4,-50,2]&lt;br /&gt;                fill: Color.WHITE&lt;br /&gt;                opacity: bind 1 - op&lt;br /&gt;            },&lt;br /&gt;            Polygon {&lt;br /&gt;                rotate: bind r;&lt;br /&gt;                translateX: 30&lt;br /&gt;&lt;br /&gt;                translateY: 120&lt;br /&gt;                scaleX: 0.5&lt;br /&gt;                scaleY: 0.5&lt;br /&gt;                points: [ 0,0, 2,-50, 4,0, 54,2,4,4,2,54,0,4,-50,2]&lt;br /&gt;                fill: Color.WHITE&lt;br /&gt;                opacity: bind op&lt;br /&gt;            },&lt;br /&gt;            Polygon {&lt;br /&gt;                rotate: 45;&lt;br /&gt;                scaleX: 0.25&lt;br /&gt;                scaleY: 0.25&lt;br /&gt;                translateX: 30&lt;br /&gt;                translateY: 120&lt;br /&gt;                points: [ 0,0, 2,-50, 4,0, 54,2,4,4,2,54,0,4,-50,2]&lt;br /&gt;                fill: Color.WHITE&lt;br /&gt;                opacity: bind 1 - op&lt;br /&gt;            },&lt;br /&gt;        ]&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Same animation in flash is here : &lt;a href=&quot;http://www.entheosweb.com/Flash/sparkling_effect.asp&quot;&gt;http://www.entheosweb.com/Flash/sparkling_effect.asp&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://java4ever.blogspot.com/feeds/1194911987865329123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/28019847/1194911987865329123' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/1194911987865329123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/1194911987865329123'/><link rel='alternate' type='text/html' href='http://java4ever.blogspot.com/2008/12/sparkling-glass.html' title='Sparkling Glass'/><author><name>Vaibhav Choudhary</name><uri>http://www.blogger.com/profile/11145353943937580111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWJa-clA9bmSF9tmOeDZHpD_gX2QkRaahdSVl6lYhC7sqdeXAgdDZoLM_b21HBIxpE4-nSvkX4IEm33OSZQ5e3A6oXd37wSC4y2PAk7TJiLlbJwZCCA5X0Mb1sfo8hFCc/s113/55455336_10156641084541281_7257414606094598144_n.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28019847.post-371132652515254606</id><published>2008-12-01T20:36:00.000+05:30</published><updated>2008-12-01T20:38:43.551+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="market"/><category scheme="http://www.blogger.com/atom/ns#" term="stats"/><title type='text'>Java Market Trend</title><content type='html'>&lt;p&gt;Today I got a mail from Carl. He works in a company which provides Marketing stats. Here are some of the exciting marketing stats of Java : &lt;/p&gt;&lt;br /&gt; &lt;p&gt;1. Median Salary :&lt;/p&gt;&lt;br /&gt;&lt;br /&gt; &lt;table style=&quot;font-size: 80%;&quot;&gt;&lt;br /&gt;   &lt;tbody&gt;&lt;br /&gt;     &lt;tr&gt;&lt;br /&gt;       &lt;td colspan=&quot;2&quot;&gt;&lt;img src=&quot;http://www.odinjobs.com/Odin/mediansalary?id=6198&amp;amp;q=Java&quot; /&gt;&lt;/td&gt;&lt;br /&gt;     &lt;/tr&gt;&lt;br /&gt;     &lt;tr&gt;&lt;br /&gt;       &lt;td align=&quot;left&quot;&gt;Generated By: &lt;img src=&quot;http://www.odinjobs.com/favicon.ico&quot; /&gt;&lt;a href=&quot;http://www.odinjobs.com/&quot;&gt;OdinJobs - Techonology Job Search Engine&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;     &lt;/tr&gt;&lt;br /&gt;   &lt;/tbody&gt;&lt;br /&gt; &lt;/table&gt;&lt;br /&gt; &lt;p&gt; &lt;/p&gt;&lt;br /&gt; &lt;p&gt;&lt;link href=&quot;file:///E:%5CDOCUME%7E1%5CVAIBHA%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml&quot; rel=&quot;File-List&quot;&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;&lt;br /&gt; &lt;w:worddocument&gt;&lt;br /&gt;  &lt;w:view&gt;Normal&lt;/w:View&gt;&lt;br /&gt;  &lt;w:zoom&gt;0&lt;/w:Zoom&gt;&lt;br /&gt;  &lt;w:punctuationkerning/&gt;&lt;br /&gt;  &lt;w:validateagainstschemas/&gt;&lt;br /&gt;  &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;&lt;br /&gt;  &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;&lt;br /&gt;  &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;&lt;br /&gt;  &lt;w:compatibility&gt;&lt;br /&gt;   &lt;w:breakwrappedtables/&gt;&lt;br /&gt;   &lt;w:snaptogridincell/&gt;&lt;br /&gt;   &lt;w:wraptextwithpunct/&gt;&lt;br /&gt;   &lt;w:useasianbreakrules/&gt;&lt;br /&gt;   &lt;w:dontgrowautofit/&gt;&lt;br /&gt;  &lt;/w:Compatibility&gt;&lt;br /&gt;  &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;&lt;br /&gt; &lt;/w:WordDocument&gt;&lt;br /&gt;&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;&lt;br /&gt; &lt;w:latentstyles deflockedstate=&quot;false&quot; latentstylecount=&quot;156&quot;&gt;&lt;br /&gt; &lt;/w:LatentStyles&gt;&lt;br /&gt;&lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt;&lt;br /&gt;&lt;!--  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-parent:&quot;&quot;; 	margin:0in; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:&quot;Times New Roman&quot;; 	mso-fareast-font-family:&quot;Times New Roman&quot;;} p 	{mso-margin-top-alt:auto; 	margin-right:0in; 	mso-margin-bottom-alt:auto; 	margin-left:0in; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:&quot;Times New Roman&quot;; 	mso-fareast-font-family:&quot;Times New Roman&quot;;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.25in 1.0in 1.25in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --&gt;&lt;br /&gt;&lt;/style&gt;&lt;!--[if gte mso 10]&gt;&lt;br /&gt;&lt;style&gt;&lt;br /&gt; /* Style Definitions */&lt;br /&gt; table.MsoNormalTable&lt;br /&gt;	{mso-style-name:&quot;Table Normal&quot;;&lt;br /&gt;	mso-tstyle-rowband-size:0;&lt;br /&gt;	mso-tstyle-colband-size:0;&lt;br /&gt;	mso-style-noshow:yes;&lt;br /&gt;	mso-style-parent:&quot;&quot;;&lt;br /&gt;	mso-padding-alt:0in 5.4pt 0in 5.4pt;&lt;br /&gt;	mso-para-margin:0in;&lt;br /&gt;	mso-para-margin-bottom:.0001pt;&lt;br /&gt;	mso-pagination:widow-orphan;&lt;br /&gt;	font-size:10.0pt;&lt;br /&gt;	font-family:&quot;Times New Roman&quot;;&lt;br /&gt;	mso-ansi-language:#0400;&lt;br /&gt;	mso-fareast-language:#0400;&lt;br /&gt;	mso-bidi-language:#0400;}&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;![endif]--&gt; &lt;/p&gt;&lt;br /&gt; &lt;p&gt; &lt;/p&gt;&lt;br /&gt; &lt;p&gt;2. Jobs Trend line&lt;/p&gt;&lt;br /&gt; &lt;p&gt; &lt;/p&gt;&lt;br /&gt; &lt;table style=&quot;font-size: 80%;&quot;&gt;&lt;br /&gt;   &lt;tbody&gt;&lt;br /&gt;     &lt;tr&gt;&lt;br /&gt;       &lt;td colspan=&quot;2&quot;&gt;&lt;img src=&quot;http://www.odinjobs.com/Odin/jobstrendline?id=6198&amp;amp;q=Java&quot; /&gt;&lt;/td&gt;&lt;br /&gt;     &lt;/tr&gt;&lt;br /&gt;     &lt;tr&gt;&lt;br /&gt;       &lt;td align=&quot;left&quot;&gt;&lt;a href=&quot;http://www.odinjobs.com/Odin/marketstatcompare&quot;&gt;Compare Market Statistics&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;       &lt;td align=&quot;left&quot;&gt;Generated By: &lt;img src=&quot;http://www.odinjobs.com/favicon.ico&quot; /&gt;&lt;a href=&quot;http://www.odinjobs.com/&quot;&gt;OdinJobs - Techonology Job Search Engine&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;     &lt;/tr&gt;&lt;br /&gt;   &lt;/tbody&gt;&lt;br /&gt; &lt;/table&gt;&lt;br /&gt; &lt;p&gt; &lt;/p&gt;&lt;br /&gt; &lt;p&gt; &lt;/p&gt;&lt;br /&gt; &lt;p&gt;3. Salary Histogram :&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt; &lt;table style=&quot;font-size: 80%;&quot;&gt;&lt;br /&gt;   &lt;tbody&gt;&lt;br /&gt;     &lt;tr&gt;&lt;br /&gt;       &lt;td colspan=&quot;2&quot;&gt;&lt;img src=&quot;http://www.odinjobs.com/Odin/salaryhistogram?id=6198&amp;amp;q=Java&quot; /&gt;&lt;/td&gt;&lt;br /&gt;     &lt;/tr&gt;&lt;br /&gt;     &lt;tr&gt;&lt;br /&gt;       &lt;td align=&quot;left&quot;&gt;&lt;a href=&quot;http://www.odinjobs.com/Odin/marketstatcompare&quot;&gt;Compare Market Statistics&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;       &lt;td align=&quot;left&quot;&gt;Generated By: &lt;img src=&quot;http://www.odinjobs.com/favicon.ico&quot; /&gt;&lt;a href=&quot;http://www.odinjobs.com/&quot;&gt;OdinJobs - Techonology Job Search Engine&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;     &lt;/tr&gt;&lt;br /&gt;   &lt;/tbody&gt;&lt;br /&gt; &lt;/table&gt;&lt;br /&gt; &lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt; &lt;p&gt;Now, see the market increase in Java Gaming.And there is a reason behind it, people start realizing that Java is fast and a suitable language for gaming. It happened for quite a long time developed used to think that Java is a slow language and not meant for game.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt; &lt;table style=&quot;font-size: 80%;&quot;&gt;&lt;br /&gt;   &lt;tbody&gt;&lt;br /&gt;     &lt;tr&gt;&lt;br /&gt;       &lt;td colspan=&quot;2&quot;&gt;&lt;img src=&quot;http://www.odinjobs.com/Odin/jobstrendline?id=6199&amp;amp;q=Java&quot; /&gt;&lt;/td&gt;&lt;br /&gt;     &lt;/tr&gt;&lt;br /&gt;     &lt;tr&gt;&lt;br /&gt;       &lt;td align=&quot;left&quot;&gt;&lt;a href=&quot;http://www.odinjobs.com/Odin/marketstatcompare&quot;&gt;Compare Market Statistics&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;       &lt;td align=&quot;left&quot;&gt;Generated By: &lt;img src=&quot;http://www.odinjobs.com/favicon.ico&quot; /&gt;&lt;a href=&quot;http://www.odinjobs.com/&quot;&gt;OdinJobs - Techonology Job Search Engine&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;     &lt;/tr&gt;&lt;br /&gt;   &lt;/tbody&gt;&lt;br /&gt; &lt;/table&gt;&lt;br /&gt; &lt;p&gt; &lt;/p&gt;&lt;br /&gt; &lt;p&gt;Banking sector, this is quite obvious because of the market fall down, else it was little above than the last year performance.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt; &lt;table style=&quot;font-size: 80%;&quot;&gt;&lt;br /&gt;   &lt;tbody&gt;&lt;br /&gt;     &lt;tr&gt;&lt;br /&gt;       &lt;td colspan=&quot;2&quot;&gt;&lt;img src=&quot;http://www.odinjobs.com/Odin/jobstrendline?id=6200&amp;amp;q=Java&quot; /&gt;&lt;/td&gt;&lt;br /&gt;     &lt;/tr&gt;&lt;br /&gt;     &lt;tr&gt;&lt;br /&gt;       &lt;td align=&quot;left&quot;&gt;&lt;a href=&quot;http://www.odinjobs.com/Odin/marketstatcompare&quot;&gt;Compare Market Statistics&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;       &lt;td align=&quot;left&quot;&gt;Generated By: &lt;img src=&quot;http://www.odinjobs.com/favicon.ico&quot; /&gt;&lt;a href=&quot;http://www.odinjobs.com/&quot;&gt;OdinJobs - Techonology Job Search Engine&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;     &lt;/tr&gt;&lt;br /&gt;   &lt;/tbody&gt;&lt;br /&gt; &lt;/table&gt;&lt;br /&gt; &lt;p&gt; &lt;/p&gt;&lt;br /&gt; &lt;p&gt;Defense: This is quite an interesting market. It speaks about the robustness and security of Java. Defense finds it the best language for their purpose.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt; &lt;table style=&quot;font-size: 80%;&quot;&gt;&lt;br /&gt;   &lt;tbody&gt;&lt;br /&gt;     &lt;tr&gt;&lt;br /&gt;       &lt;td colspan=&quot;2&quot;&gt;&lt;img src=&quot;http://www.odinjobs.com/Odin/jobstrendline?id=6201&amp;amp;q=Java&quot; /&gt;&lt;/td&gt;&lt;br /&gt;     &lt;/tr&gt;&lt;br /&gt;     &lt;tr&gt;&lt;br /&gt;       &lt;td align=&quot;left&quot;&gt;&lt;a href=&quot;http://www.odinjobs.com/Odin/marketstatcompare&quot;&gt;Compare Market Statistics&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;       &lt;td align=&quot;left&quot;&gt;Generated By: &lt;img src=&quot;http://www.odinjobs.com/favicon.ico&quot; /&gt;&lt;a href=&quot;http://www.odinjobs.com/&quot;&gt;OdinJobs - Techonology Job Search Engine&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;     &lt;/tr&gt;&lt;br /&gt;   &lt;/tbody&gt;&lt;br /&gt; &lt;/table&gt;&lt;br /&gt; &lt;p&gt; &lt;/p&gt;&lt;br /&gt; &lt;p&gt;For more visit this link : &lt;a href=&quot;http://www.odinjobs.com/Odin/marketstatcompare?id=6202&amp;amp;q=Java&quot;&gt;Java Market Stats&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://java4ever.blogspot.com/feeds/371132652515254606/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/28019847/371132652515254606' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/371132652515254606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/371132652515254606'/><link rel='alternate' type='text/html' href='http://java4ever.blogspot.com/2008/12/java-market-trend.html' title='Java Market Trend'/><author><name>Vaibhav Choudhary</name><uri>http://www.blogger.com/profile/11145353943937580111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWJa-clA9bmSF9tmOeDZHpD_gX2QkRaahdSVl6lYhC7sqdeXAgdDZoLM_b21HBIxpE4-nSvkX4IEm33OSZQ5e3A6oXd37wSC4y2PAk7TJiLlbJwZCCA5X0Mb1sfo8hFCc/s113/55455336_10156641084541281_7257414606094598144_n.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28019847.post-2123133873493934539</id><published>2008-10-18T15:30:00.008+05:30</published><updated>2008-10-18T15:48:26.454+05:30</updated><title type='text'>JavaFX – Getting Started </title><content type='html'>&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;meta equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot;&gt;&lt;meta name=&quot;ProgId&quot; content=&quot;Word.Document&quot;&gt;&lt;meta name=&quot;Generator&quot; content=&quot;Microsoft Word 11&quot;&gt;&lt;meta name=&quot;Originator&quot; content=&quot;Microsoft Word 11&quot;&gt;&lt;link rel=&quot;File-List&quot; href=&quot;file:///E:%5CDOCUME%7E1%5CVAIBHA%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml&quot;&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;  &lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate=&quot;false&quot; latentstylecount=&quot;156&quot;&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-parent:&quot;&quot;; 	margin:0in; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:&quot;Times New Roman&quot;; 	mso-fareast-font-family:&quot;Times New Roman&quot;;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.25in 1.0in 1.25in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:&quot;Table Normal&quot;; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:&quot;&quot;; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin:0in; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:&quot;Times New Roman&quot;; 	mso-ansi-language:#0400; 	mso-fareast-language:#0400; 	mso-bidi-language:#0400;} &lt;/style&gt; &lt;![endif]--&gt;&lt;span style=&quot;font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Alright, here is the blog for the beginner of JavaFX. We generally say it “getting started”&lt;/span&gt;&lt;br /&gt; &lt;/div&gt;&lt;p class=&quot;MsoNormal&quot;&gt;So, right now I suggest you to work with Netbeans 6.1. There is a good amount of code change going to happen soon in JavaFX but never mind. Here we go:&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;ol style=&quot;margin-top: 0in;&quot; start=&quot;1&quot; type=&quot;1&quot;&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;&quot;&gt;Start Netbeans 6.1. Go into Tools -&gt; Plugin section. Go into Available Plugins, search for JavaFX in the search box. You may see more than this, but whatever comes on the name of JavaFX, install all (I already have it in installed section).&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXwBodNmY4gnBSDJP-w_Eli1MxNXn0E-gAB7rXZTuo1vMZyuwtrRhUgPqiLTOK2ipiumtYF0LAKKa2kgk1ZW0KeF2NOJBQoMj2IC1xIuZI2mgibKfNRBqsnrQmAfeGEXssvit_/s1600-h/1.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXwBodNmY4gnBSDJP-w_Eli1MxNXn0E-gAB7rXZTuo1vMZyuwtrRhUgPqiLTOK2ipiumtYF0LAKKa2kgk1ZW0KeF2NOJBQoMj2IC1xIuZI2mgibKfNRBqsnrQmAfeGEXssvit_/s400/1.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5258432095679186130&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;meta name=&quot;Generator&quot; content=&quot;Microsoft Word 11&quot;&gt;&lt;meta name=&quot;Originator&quot; content=&quot;Microsoft Word 11&quot;&gt;&lt;link rel=&quot;File-List&quot; href=&quot;file:///E:%5CDOCUME%7E1%5CVAIBHA%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml&quot;&gt;&lt;link rel=&quot;Edit-Time-Data&quot; href=&quot;file:///E:%5CDOCUME%7E1%5CVAIBHA%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_editdata.mso&quot;&gt;&lt;!--[if !mso]&gt; &lt;style&gt; v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} &lt;/style&gt; &lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;  &lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate=&quot;false&quot; latentstylecount=&quot;156&quot;&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:Wingdings; 	panose-1:5 0 0 0 0 0 0 0 0 0; 	mso-font-charset:2; 	mso-generic-font-family:auto; 	mso-font-pitch:variable; 	mso-font-signature:0 268435456 0 0 -2147483648 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-parent:&quot;&quot;; 	margin:0in; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:&quot;Times New Roman&quot;; 	mso-fareast-font-family:&quot;Times New Roman&quot;;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.25in 1.0in 1.25in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;}  /* List Definitions */  @list l0 	{mso-list-id:1578205064; 	mso-list-type:hybrid; 	mso-list-template-ids:-717729666 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l0:level1 	{mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in;} ol 	{margin-bottom:0in;} ul 	{margin-bottom:0in;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:&quot;Table Normal&quot;; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:&quot;&quot;; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin:0in; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:&quot;Times New Roman&quot;; 	mso-ansi-language:#0400; 	mso-fareast-language:#0400; 	mso-bidi-language:#0400;} &lt;/style&gt; &lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;o:shapedefaults ext=&quot;edit&quot; spidmax=&quot;1026&quot;&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;o:shapelayout ext=&quot;edit&quot;&gt;   &lt;o:idmap ext=&quot;edit&quot; data=&quot;1&quot;&gt;  &lt;/o:shapelayout&gt;&lt;/xml&gt;&lt;![endif]--&gt;    &lt;p class=&quot;MsoNormal&quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;    &lt;p class=&quot;MsoNormal&quot; style=&quot;margin-left: 0.25in;&quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;ol style=&quot;margin-top: 0in;&quot; start=&quot;2&quot; type=&quot;1&quot;&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;&quot;&gt;After      installation, go into File -&gt; New Project Section. You can see JavaFX      now in project section: &lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-left: 0.25in;&quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;margin-left: 0.25in;&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMmPxJdGav6WeZb4ousa6qebSce5nvxrlPbnvU0e_7pOmbxgexNK_qdkD4ThnLu_xoeG9t4vUQMkQ5SqwNRi0AEe6Smji3m_qRfUazQE_y-fTjfG1eTAgeRAoqWBww5JcEwe0b/s1600-h/2.PNG&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMmPxJdGav6WeZb4ousa6qebSce5nvxrlPbnvU0e_7pOmbxgexNK_qdkD4ThnLu_xoeG9t4vUQMkQ5SqwNRi0AEe6Smji3m_qRfUazQE_y-fTjfG1eTAgeRAoqWBww5JcEwe0b/s400/2.PNG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5258432565815336482&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shape id=&quot;_x0000_i1026&quot; type=&quot;#_x0000_t75&quot; style=&quot;&#39;width:384pt;height:369pt&#39;&quot;&gt;  &lt;v:imagedata src=&quot;file:///E:\DOCUME~1\VAIBHA~1\LOCALS~1\Temp\msohtml1\01\clip_image003.png&quot; title=&quot;&quot;&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-left: 0.25in;&quot;&gt;&lt;br /&gt;&lt;!--[endif]--&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;margin-left: 0.25in;&quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;ol style=&quot;margin-top: 0in;&quot; start=&quot;3&quot; type=&quot;1&quot;&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;&quot;&gt;Click      on Next, It will ask for Project Name. Enter a project name “JavaFXApplication”      (this is what I have written) and click finish. You will get something      like this:&lt;/li&gt;&lt;/ol&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;margin-left: 0.5in;&quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;&quot;&gt;           &lt;/span&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shape id=&quot;_x0000_i1027&quot; type=&quot;#_x0000_t75&quot; style=&quot;&#39;width:416.25pt;height:510.75pt&#39;&quot;&gt;  &lt;v:imagedata src=&quot;file:///E:\DOCUME~1\VAIBHA~1\LOCALS~1\Temp\msohtml1\01\clip_image005.png&quot; title=&quot;&quot;&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;                  &lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpkQnNBm7iH-iOFIRmxDiOnPHbocuGb_deNkl6rztsb04yJSh0bo-Qsdl8RuGoEW9UvbKh7jAvmkJ7nNXyS8ye6kqGXsSPrc1UH5X0yblc9PjTqZR_DBvaZj77JgXo_V3t5OsU/s1600-h/3.PNG&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpkQnNBm7iH-iOFIRmxDiOnPHbocuGb_deNkl6rztsb04yJSh0bo-Qsdl8RuGoEW9UvbKh7jAvmkJ7nNXyS8ye6kqGXsSPrc1UH5X0yblc9PjTqZR_DBvaZj77JgXo_V3t5OsU/s400/3.PNG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5258433049829587202&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;     &lt;br /&gt;&lt;!--[endif]--&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;ol style=&quot;margin-top: 0in;&quot; start=&quot;4&quot; type=&quot;1&quot;&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;&quot;&gt;But      the most important thing is what you get on right most side with a caption      “Palette” (FX Builder). Here how it looks:&lt;/li&gt;&lt;/ol&gt;          &lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhu-HazN6OdMO1gf2mGkiI9CzhvLtBogssTPQ3WTJcnbCsYmuhez8oWD5jUU4eMI5iIq72sa_2qAti8EHakjMHAB_zdmS_03g0D-tKyk947Uh8qIfEuMGvE3s1qGDYuLh83Oe2a/s1600-h/4.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhu-HazN6OdMO1gf2mGkiI9CzhvLtBogssTPQ3WTJcnbCsYmuhez8oWD5jUU4eMI5iIq72sa_2qAti8EHakjMHAB_zdmS_03g0D-tKyk947Uh8qIfEuMGvE3s1qGDYuLh83Oe2a/s400/4.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5258433340968620226&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;margin-left: 0.5in;&quot;&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shape id=&quot;_x0000_i1028&quot; type=&quot;#_x0000_t75&quot; style=&quot;&#39;width:251.25pt;height:390pt&#39;&quot;&gt;  &lt;v:imagedata src=&quot;file:///E:\DOCUME~1\VAIBHA~1\LOCALS~1\Temp\msohtml1\01\clip_image007.png&quot; title=&quot;&quot;&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;br /&gt;&lt;!--[endif]--&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;margin-left: 0.5in;&quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;ol style=&quot;margin-top: 0in;&quot; start=&quot;5&quot; type=&quot;1&quot;&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;&quot;&gt;In      place of “place your code here”, we need to write our code. So, let’s      start with “Drag and Drop” work. First we will make a circle. So, drag a      Frame into the code space and then drag a circle in the content section of      code.&lt;/li&gt;&lt;/ol&gt;          &lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwfAh8Eu4Ch6NwrJead0ijYYH96HcQmwYXr7xLLtAHwjj2ydQG4PNReruJjUrypoIilTt7kK95Q7X_WIXqBk8TbU8_XLvcDG3At6MJC9Zbiqxde9Tknb0f9RsUSH0v-SzJIebR/s1600-h/5.PNG&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwfAh8Eu4Ch6NwrJead0ijYYH96HcQmwYXr7xLLtAHwjj2ydQG4PNReruJjUrypoIilTt7kK95Q7X_WIXqBk8TbU8_XLvcDG3At6MJC9Zbiqxde9Tknb0f9RsUSH0v-SzJIebR/s400/5.PNG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5258434260727006546&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;    &lt;br /&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;ol style=&quot;margin-top: 0in;&quot; start=&quot;6&quot; type=&quot;1&quot;&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;&quot;&gt;Before      running the code, you can see the preview of output, by clicking on the      preview button.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;          &lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieHS_ZFiafylDRtPBD-cfaNAh4I0tmTwzMjC90cQ5GhNuGclV9rGydPHE6CBZXVsVIxg774FQVPEa6X5EUvcahPW-OeEUSU0a9iT6MmCiJsVYEuDW5m6lBCUDlTAXJYnSlkfNJ/s1600-h/6.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieHS_ZFiafylDRtPBD-cfaNAh4I0tmTwzMjC90cQ5GhNuGclV9rGydPHE6CBZXVsVIxg774FQVPEa6X5EUvcahPW-OeEUSU0a9iT6MmCiJsVYEuDW5m6lBCUDlTAXJYnSlkfNJ/s400/6.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5258433792642704482&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;ol style=&quot;margin-top: 0in;&quot; start=&quot;7&quot; type=&quot;1&quot;&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;&quot;&gt;This      is how the preview will come: &lt;/li&gt;&lt;/ol&gt;&lt;br /&gt; &lt;p class=&quot;MsoNormal&quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;margin-left: 0.25in;&quot;&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shape id=&quot;_x0000_i1031&quot; type=&quot;#_x0000_t75&quot; style=&quot;&#39;width:403.5pt;height:330.75pt&#39;&quot;&gt;  &lt;v:imagedata src=&quot;file:///E:\DOCUME~1\VAIBHA~1\LOCALS~1\Temp\msohtml1\01\clip_image013.png&quot; title=&quot;&quot;&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt; &lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvYZjC5ouaZf9F_Ci4Qh9elRc_bMIjKbu2w-s5Fa7GECbdHxrQxtgQ2hyKCJehr_gkOhziCK84lWAHw4ZnkBA4BmpL48tiuXI-XijFTimKMiiGICXDL5Y3ou7Xnq_mDB_v6oKB/s1600-h/7.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvYZjC5ouaZf9F_Ci4Qh9elRc_bMIjKbu2w-s5Fa7GECbdHxrQxtgQ2hyKCJehr_gkOhziCK84lWAHw4ZnkBA4BmpL48tiuXI-XijFTimKMiiGICXDL5Y3ou7Xnq_mDB_v6oKB/s400/7.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5258434790099154050&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-left: 0.25in;&quot;&gt;&lt;br /&gt;&lt;!--[endif]--&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;margin-left: 0.25in;&quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;margin-left: 0.25in;&quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;ol style=&quot;margin-top: 0in;&quot; start=&quot;8&quot; type=&quot;1&quot;&gt;&lt;li class=&quot;MsoNormal&quot; style=&quot;&quot;&gt;After      you convince with the output, go into the Run Section. Run the application      or press F6. &lt;/li&gt;&lt;/ol&gt;&lt;br /&gt; &lt;p class=&quot;MsoNormal&quot; style=&quot;margin-left: 0.25in;&quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;margin-left: 0.25in;&quot;&gt;In the next blog, we can discuss on how to use FX builder to make more wise applications like running a ball, making 3D balls, image gallery or something else, depending on the demand :).&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-left: 0.25in;&quot;&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;margin-left: 0.25in;&quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;margin-left: 0.25in;&quot;&gt;Please let me know if there is/are some problem(s) in installation or running the application.If you are not a netbeans user, the you have two option :&lt;br /&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-left: 0.25in;&quot;&gt;        - Wise one, download netbeans and start working :).&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-left: 0.25in;&quot;&gt;        - Unwise one, we can also work only with javafx preview developer by putting the code in bin folder   compiling with javafxc and running with javafx. But then you will not be able to use lot of netbeans features.&lt;br /&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-left: 0.25in;&quot;&gt;&lt;br /&gt;&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://java4ever.blogspot.com/feeds/2123133873493934539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/28019847/2123133873493934539' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/2123133873493934539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/2123133873493934539'/><link rel='alternate' type='text/html' href='http://java4ever.blogspot.com/2008/10/javafx-getting-started.html' title='JavaFX – Getting Started '/><author><name>Vaibhav Choudhary</name><uri>http://www.blogger.com/profile/11145353943937580111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWJa-clA9bmSF9tmOeDZHpD_gX2QkRaahdSVl6lYhC7sqdeXAgdDZoLM_b21HBIxpE4-nSvkX4IEm33OSZQ5e3A6oXd37wSC4y2PAk7TJiLlbJwZCCA5X0Mb1sfo8hFCc/s113/55455336_10156641084541281_7257414606094598144_n.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXwBodNmY4gnBSDJP-w_Eli1MxNXn0E-gAB7rXZTuo1vMZyuwtrRhUgPqiLTOK2ipiumtYF0LAKKa2kgk1ZW0KeF2NOJBQoMj2IC1xIuZI2mgibKfNRBqsnrQmAfeGEXssvit_/s72-c/1.png" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28019847.post-4190080569404951393</id><published>2008-09-14T19:08:00.000+05:30</published><updated>2008-09-14T19:09:24.047+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="BOJUG"/><category scheme="http://www.blogger.com/atom/ns#" term="javafx"/><category scheme="http://www.blogger.com/atom/ns#" term="presentation"/><title type='text'>JavaFX Presentation</title><content type='html'>&lt;p&gt;Today we had a good BOJUG meet at Thoughtworks. I have presented my small JavaFX slides. Followed to that, Sathish has given a presentation on Bean Binding and Bean Validation. He talked about JSR 295 + JSR 303. Quite a handsome presentation. After this, Sriram has taken the presentation on Tomcat internal and it seems he really went into internal. He talked about how to write own ClassLoader in tomcat + how to provide a webapps on fly, many more. It was a nice presentation without presentation slides :-).&lt;/p&gt;   &lt;a href=&quot;http://blogs.sun.com/vaibhav/resource/JavaFX.pdf&quot;&gt;Here is my presentation&lt;/a&gt;. Please feel free to comment.</content><link rel='replies' type='application/atom+xml' href='http://java4ever.blogspot.com/feeds/4190080569404951393/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/28019847/4190080569404951393' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/4190080569404951393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/4190080569404951393'/><link rel='alternate' type='text/html' href='http://java4ever.blogspot.com/2008/09/javafx-presentation.html' title='JavaFX Presentation'/><author><name>Vaibhav Choudhary</name><uri>http://www.blogger.com/profile/11145353943937580111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWJa-clA9bmSF9tmOeDZHpD_gX2QkRaahdSVl6lYhC7sqdeXAgdDZoLM_b21HBIxpE4-nSvkX4IEm33OSZQ5e3A6oXd37wSC4y2PAk7TJiLlbJwZCCA5X0Mb1sfo8hFCc/s113/55455336_10156641084541281_7257414606094598144_n.jpeg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28019847.post-9172221966912304323</id><published>2008-09-14T19:06:00.002+05:30</published><updated>2008-09-14T19:08:02.340+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="code"/><category scheme="http://www.blogger.com/atom/ns#" term="gaussian blur"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="javafx"/><title type='text'>Filling eyes effect in JavaFX</title><content type='html'>This is one simulation of Golden Eyes :-D(with an ugly face). I tried to make one use of Gaussian Blur which is applied in the white color of eyes. Adding this spot in the eyes gives a real simulation.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://blogs.sun.com/vaibhav/resource/face_eye.bmp&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;&quot; src=&quot;http://blogs.sun.com/vaibhav/resource/face_eye.bmp&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;package eyes;&lt;br /&gt;&lt;br /&gt;import javafx.application.Frame;&lt;br /&gt;import javafx.application.Stage;&lt;br /&gt;import javafx.scene.geometry.Arc;&lt;br /&gt;import javafx.scene.geometry.*;&lt;br /&gt;import javafx.scene.paint.Color;&lt;br /&gt;import javafx.scene.paint.*;&lt;br /&gt;import javafx.scene.effect.*;&lt;br /&gt;&lt;br /&gt;var y: Number = 150;&lt;br /&gt;Frame {&lt;br /&gt;    title: &quot;Golden Eyes&quot;&lt;br /&gt;    width: 500&lt;br /&gt;    height: 500&lt;br /&gt;    closeAction: function() { java.lang.System.exit( 0 );&lt;br /&gt;    }&lt;br /&gt;    visible: true&lt;br /&gt;&lt;br /&gt;    stage: Stage {&lt;br /&gt;        fill: Color.GRAY;&lt;br /&gt;        content: [ &lt;br /&gt;&lt;br /&gt;            Circle {&lt;br /&gt;                centerX: 160, centerY: y&lt;br /&gt;                radius: 23&lt;br /&gt;                fill: LinearGradient {&lt;br /&gt;                    startX: 0.0&lt;br /&gt;                    startY: 0.0&lt;br /&gt;                    endX: 1.0&lt;br /&gt;                    endY: 0.0&lt;br /&gt;                    proportional: true&lt;br /&gt;                    stops: [&lt;br /&gt;                        Stop { offset: 0.0 color: Color.GOLD },&lt;br /&gt;                        Stop { offset: 1.0 color: Color.BLACK }&lt;br /&gt;                    ]&lt;br /&gt;                }&lt;br /&gt;                opacity: 0.9&lt;br /&gt;            },&lt;br /&gt;&lt;br /&gt;            Circle {&lt;br /&gt;                centerX: 160, centerY: y&lt;br /&gt;                radius: 10&lt;br /&gt;                fill: Color.BLACK&lt;br /&gt;            },&lt;br /&gt;            Circle {&lt;br /&gt;                centerX: 166, centerY: y - 5&lt;br /&gt;                radius: 5&lt;br /&gt;                fill: Color.WHITE;&lt;br /&gt;                effect : GaussianBlur {&lt;br /&gt;                    radius: 6&lt;br /&gt;                }&lt;br /&gt;            },&lt;br /&gt;            Circle {&lt;br /&gt;                centerX: 250, centerY: y&lt;br /&gt;                radius: 23&lt;br /&gt;                fill: LinearGradient {&lt;br /&gt;                    startX: 0.0&lt;br /&gt;                    startY: 0.0&lt;br /&gt;                    endX: 1.0&lt;br /&gt;                    endY: 0.0&lt;br /&gt;                    proportional: true&lt;br /&gt;                    stops: [&lt;br /&gt;                        Stop { offset: 0.0 color: Color.BLACK },&lt;br /&gt;                        Stop { offset: 1.0 color: Color.GOLD }&lt;br /&gt;                    ]&lt;br /&gt;                }&lt;br /&gt;                opacity: 0.2&lt;br /&gt;            },&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;            Circle {&lt;br /&gt;                centerX: 250, centerY: y&lt;br /&gt;                radius: 10&lt;br /&gt;                fill: Color.BLACK&lt;br /&gt;            },&lt;br /&gt;            Circle {&lt;br /&gt;                centerX: 244, centerY: y - 5&lt;br /&gt;                radius: 5&lt;br /&gt;                fill: Color.WHITE;&lt;br /&gt;                effect : GaussianBlur {&lt;br /&gt;                    radius: 6&lt;br /&gt;                }&lt;br /&gt;            },&lt;br /&gt;            Circle {&lt;br /&gt;                centerX: 200, centerY: 180&lt;br /&gt;                radius: 100&lt;br /&gt;                fill: Color.SIENNA&lt;br /&gt;                opacity: 0.1&lt;br /&gt;&lt;br /&gt;            },&lt;br /&gt;            Polyline {&lt;br /&gt;             stroke:Color.BLACK&lt;br /&gt;                points: [&lt;br /&gt;                    200,160,&lt;br /&gt;                    220.0,220.0,&lt;br /&gt;                    180.0,220.0&lt;br /&gt;                ]&lt;br /&gt;            },&lt;br /&gt;            Path {&lt;br /&gt;               fill: LinearGradient {&lt;br /&gt;                    startX: 0.0&lt;br /&gt;                    startY: 0.0&lt;br /&gt;                    endX: 1.0&lt;br /&gt;                    endY: 0.0&lt;br /&gt;                    proportional: true&lt;br /&gt;                    stops: [&lt;br /&gt;                        Stop { offset: 0.0 color: Color.BLACK },&lt;br /&gt;                        Stop { offset: 1.0 color: Color.RED }&lt;br /&gt;                    ]&lt;br /&gt;                }&lt;br /&gt;                elements: [&lt;br /&gt;                    MoveTo { x: 160 y: 240 },&lt;br /&gt;                    ArcTo { x: 250 y: 240 radiusX: 100 radiusY: 100},&lt;br /&gt;&lt;br /&gt;                ]&lt;br /&gt;            },&lt;br /&gt;&lt;br /&gt;       ]&lt;br /&gt;    }&lt;br /&gt;}</content><link rel='replies' type='application/atom+xml' href='http://java4ever.blogspot.com/feeds/9172221966912304323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/28019847/9172221966912304323' title='185 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/9172221966912304323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28019847/posts/default/9172221966912304323'/><link rel='alternate' type='text/html' href='http://java4ever.blogspot.com/2008/09/filling-eyes-effect-in-javafx.html' title='Filling eyes effect in JavaFX'/><author><name>Vaibhav Choudhary</name><uri>http://www.blogger.com/profile/11145353943937580111</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWJa-clA9bmSF9tmOeDZHpD_gX2QkRaahdSVl6lYhC7sqdeXAgdDZoLM_b21HBIxpE4-nSvkX4IEm33OSZQ5e3A6oXd37wSC4y2PAk7TJiLlbJwZCCA5X0Mb1sfo8hFCc/s113/55455336_10156641084541281_7257414606094598144_n.jpeg'/></author><thr:total>185</thr:total></entry></feed>