<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>GeekyCoder</title>
	<atom:link href="http://geekycoder.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://geekycoder.wordpress.com</link>
	<description>A Untypical Java Developer In Singapore Rambling On What's Cool ...  (www.geekycoder.com &#124; geekycoder@gmail.com)</description>
	<lastBuildDate>Thu, 05 Jan 2012 07:36:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='geekycoder.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>GeekyCoder</title>
		<link>http://geekycoder.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://geekycoder.wordpress.com/osd.xml" title="GeekyCoder" />
	<atom:link rel='hub' href='http://geekycoder.wordpress.com/?pushpress=hub'/>
		<item>
		<title>GWT Tips: Using &#8220;onModuleLoad&#8221; method as Java&#8217;s &#8220;main&#8221; method to create self-testing class</title>
		<link>http://geekycoder.wordpress.com/2010/05/21/gwt-tips-using-onmoduleload-method-as-javas-main-method-to-create-self-testing-class/</link>
		<comments>http://geekycoder.wordpress.com/2010/05/21/gwt-tips-using-onmoduleload-method-as-javas-main-method-to-create-self-testing-class/#comments</comments>
		<pubDate>Fri, 21 May 2010 14:23:07 +0000</pubDate>
		<dc:creator>geekycoder</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">https://geekycoder.wordpress.com/2010/05/21/gwt-tips-using-onmoduleload-method-as-javas-main-method-to-create-self-testing-class/</guid>
		<description><![CDATA[Test Version: GWT 2.0 and above Use of “main” method Each Java class can include a “main” method to perform class execution. This feature is especially useful for experimenting, testing and debugging the pertaining code within the class without resorting to using helper class. Generally it is more efficient and productive to test a particular [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geekycoder.wordpress.com&amp;blog=1079773&amp;post=5081&amp;subd=geekycoder&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<table border="1" cellspacing="0" cellpadding="2" width="400">
<tbody>
<tr>
<td valign="top" width="400">Test Version: GWT 2.0 and above</td>
</tr>
</tbody>
</table>
<p><u></u></p>
<p><u><strong>Use of “main” method</strong></u></p>
<p>Each Java class can include a “main” method to perform class execution. This feature is especially useful for experimenting, testing and debugging the pertaining code within the class without resorting to using helper class. Generally it is more efficient and productive to test a particular class (if one already pinpoint the problematic class) rather than to test a whole application that has more overheads and which takes longer time to run. By including a “main” method in class, other developers can also quickly experiment with different API of the code within the class without creating additional testing helper classes. In addition, it is easier to build a reliable application if the classes that make up the application are reliable themselves. Apart from this, the use of “main” method will also encourage one to design the class to be “simplified” so that it can easily test from “main” method.    </p>
<table border="1" cellspacing="0" cellpadding="2" width="583">
<tbody>
<tr>
<td valign="top" width="581"><strong>public static void main(String[] args) // Java’s main method</strong></td>
</tr>
</tbody>
</table>
<p>That to say that the “main” method is not a replacement for unit testing, and vice versa. Their intent and usage are different. Unit testing is more formal whereas the “main” method is less formal. Many test cases are included in unit testing and is run periodically to ensure that nothing break the code and create bug from modified code as in the case of time-consuming build process. Unit testing is usually automated and does not involve GUI interaction since the unit testing can be invoked in command-line prior to software development process like build process or check perform by version control system after code check-in.</p>
<p>On the other hand, the “main” method does not subject to such intense test and is not run unless one modify that class and want to have a quick test ensure correct behaviour and result. Developers are free to change whatever in the “main” method of the class during development as long as the “main” method of the class is not used to start up the application, and not call by other classes (It is bad practice to reference and use “main” method from other class.).</p>
<p>&#160;</p>
<p> <span id="more-5081"></span>
<p><strong><u>onModuleLoad: GWT’s version of “main” method</u></strong></p>
<p>For those who create Java desktop application can benefit from the use of Java’s main method to help build reliable application. However, for those who use GWT to build desktop-like web application may not apparently take advantage of the “onModuleLoad” method as main method as the official GWT documentation did not actively promote it as equivalent of “main” method but rather frequently utilise it as the EntryPoint interface method to run a application, giving the impression that the onModuleLoad method is only applicable for class that use to start up a GWT application, and nothing more. That perception is further entrenched when GWT examples often use the following onModuleLoad signature to run the class that implements the EntryPoint interface.</p>
<table border="1" cellspacing="0" cellpadding="2" width="400">
<tbody>
<tr>
<td valign="top" width="400">
<p>public class AppClass implements EntryPoint</p>
<p>public void onModuleLoad()</p>
<p>{&#160; <br />&#160;&#160;&#160; // Running code here&#160; ….             <br />}</p>
</td>
</tr>
</tbody>
</table>
<p>In reality, GWT team has in fact make “onModuleLoad” method a lot more flexible and capable of behaving like Java’s “main” method. </p>
<p>Foremost, the following behaviours of “onModuleLoad” method make it possible to perform like Java’s “main” method&quot;.</p>
<ul>
<li>A class need NOT implement EntryPoint interface at all in order to be run as EntryPoint class. As long as the public “onModuleLoad” method is presented in the class, GWT will be able to run it. EntryPoint interface is optional but it is a good practice to implement it for the class that need to start the GWT application. In this way, one can easily use IDE to discover all classes that implement the EntryPoint interface (eg Intellij’s Find Usage)      </li>
<li>A “onModuleLoad” class need not be public in order to be run.      </li>
<li>It is possible to add a static qualifier to “onModuleLoad” method so it looks and behaves like Java’s “main” method. It is important that the “onModuleLoad” method is public if it did not implement the EntryPoint interface (all interface method is public).      <br />&#160; </li>
<li>If the following signature is used,      <br /><strong><em>         <br />&#160;&#160;&#160;&#160;&#160; public void onModuleLoad() // Instance method           <br /></em></strong>      <br />The class must have a no-default-argument constructor (public, default, private) since GWT will attempt to instantiate the class using the default argument and after which it will call the “onModuleLoad” method. Otherwise, GWT will throw a NoSuchMethodException complaining that class has “no default (zero arugment) contructor”. Hence, using this signature enforce the “runnable” class to have a default constructor, and one has no control over how the class can be run (since GWT instantiates the class automatically and call the onModuleLoad) and designed (eg developers may not want a default constructor)       <br /> <br />
<table border="1" cellspacing="0" cellpadding="2" width="666">
<tbody>
<tr>
<td valign="top" width="664">
<p>class TestApp // implements EntryPoint &lt;= Optional                <br />{                 <br />&#160; TestApp()                 <br />&#160; {&#160; // This will always be called by GWT first }&#160;&#160;&#160; <br />&#160;</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; // It is not good practice to call this method by other classes.               <br />&#160;&#160;&#160; public void onModuleLoad()&#160;&#160;&#160; <br />&#160;&#160;&#160; {&#160; // After class instantiation, this method will be called }&#160; <br />&#160; }               </td>
</tr>
</tbody>
</table>
</li>
</ul>
<ul></ul>
<ul>On the other hand,&#160;&#160;&#160;&#160;&#160;&#160;&#160; </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <strong><em>public static void onModuleLoad()&#160; // class method        <br /></em></strong>    <br />behaves like Java’s “main” method. When the static qualifier is used, GWT will NOT instantiate the class but rather run it as class method (eg AppClass.onModuleLoad() ). This ramification means that one can decide how the class can be instantiated and how the constructor can be designed as in the example. This signature is more natural and preference to use since it conforms to the signature of the ubiquitous Java’s “main” method <strong><em>(public static void main(String[] args).        </p>
<p>Note that if static onModuleLoad is used, the class cannot implement EntryPoint interface since interface method is for instance method not class method.</em></strong></ul>
<table border="1" cellspacing="0" cellpadding="2" width="712">
<tbody>
<tr>
<td valign="top" width="710">
<p>class Employee            <br />{             <br />&#160;&#160;&#160; private String name, job;             <br />&#160;&#160;&#160; private int age;             </p>
<p>&#160;&#160;&#160; Employee(String _name, int _age, String _job)             <br />&#160;&#160;&#160; {&#160; name = _name; age = _age; job = _job;&#160; }&#160;&#160;&#160; <br />&#160; <br />&#160;&#160;&#160; // It is not good practice to call this method by other classes.</p>
<p>// GWT will call this class method without instantiating Employee class            </p>
<p>&#160;&#160;&#160; public static void onModuleLoad()&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160; {             <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ArrayList _lEmployees = new ArrayList();             </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; _lEmployees.add(new Employee(“Ali”, 23, “driver”));&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; _lEmployees.add(new Employee(“Mary”, 23, “Secretary”));             <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; _lEmployees.add(new Employee(“David”, 44, “teacher”));&#160;&#160;&#160;&#160; </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; GWT.log(“size:” + lEmployees .size());             <br />&#160;&#160;&#160;&#160; }             <br />&#160; }</p>
</td>
</tr>
</tbody>
</table>
<p>&#160;</p>
<ul>
<li>There might be concern that having “onModuleLoad” method will make the resultant JavaScript file larger after Java-to-JS compilation. However GWT is smart to remove any “dead code” that is not used and thus “onModuleLoad” method will be removed during compilation as long as it is not referenced by other classes.      </li>
</ul>
<p>Just like one will often use “main” method to test classes in Java application, one can also leverages on “onModuleLoad” in GWT to perform similar function. </p>
<p>&#160;</p>
<p>In Summary, this is the suggested guidelines:</p>
<ul>
<li>Only implement EntryPoint interface for the class that essentially use to start up a GWT Web application. That means this is the class that implement the “onModuleLoad” instance method since interface method cannot be static.     </p>
<p><strong><em>&#160;&#160;&#160;&#160; public void onModuleLoad()&#160; // EntryPoint Interface method         <br /></em></strong></li>
<li>For other classes, use the “onModuleLoad” class method      </li>
<p>   <strong><em>&#160;&#160;&#160;&#160; public static void onModuleLoad()&#160; // Behaving just like “main” method       </p>
<p></em></strong>
<li>There should be one entry-point tag in the GWT XML module file for project.     </li>
</ul>
<p><strong><u><font size="4">Challenges</font></u></strong></p>
<p>However, the use of “onModuleLoad” method as “main” method may feel unnatural since IDE currently does not support running the “onModuleLoad” class the same way as “main” method (eg Run directly from IDE). Currently, this is more a manual process whereby one will need to switch the entry-point tag explicitly pointing to whatever class that is to run in GWT module file.    <br /><a href="http://geekycoder.files.wordpress.com/2010/05/image1.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://geekycoder.files.wordpress.com/2010/05/image_thumb1.png?w=372&#038;h=45" width="372" height="45" /></a> </p>
<p>&#160;</p>
<p>* However, I am currently developing the switching application in <a href="http://www.autoitscript.com/" target="_blank">AutoItScript</a> that allows one to use it in Eclipse and Intellij that at least allow user to change the entry-point with a shortcut key easily without relying on IDE’s plug-in. This will be further elaborated in coming Part2 of this tip.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/geekycoder.wordpress.com/5081/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/geekycoder.wordpress.com/5081/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/geekycoder.wordpress.com/5081/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/geekycoder.wordpress.com/5081/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/geekycoder.wordpress.com/5081/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/geekycoder.wordpress.com/5081/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/geekycoder.wordpress.com/5081/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/geekycoder.wordpress.com/5081/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/geekycoder.wordpress.com/5081/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/geekycoder.wordpress.com/5081/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/geekycoder.wordpress.com/5081/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/geekycoder.wordpress.com/5081/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/geekycoder.wordpress.com/5081/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/geekycoder.wordpress.com/5081/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geekycoder.wordpress.com&amp;blog=1079773&amp;post=5081&amp;subd=geekycoder&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://geekycoder.wordpress.com/2010/05/21/gwt-tips-using-onmoduleload-method-as-javas-main-method-to-create-self-testing-class/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/791c9e65d32034f756f3c2a86e895ef3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">GreekyCoder</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/05/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>GWT Tips: Configuring Java Profilers to profile GWT client app in Eclipse</title>
		<link>http://geekycoder.wordpress.com/2010/04/07/gwt-tips-configuring-java-profilers-to-profile-gwt-client-app-in-eclipse/</link>
		<comments>http://geekycoder.wordpress.com/2010/04/07/gwt-tips-configuring-java-profilers-to-profile-gwt-client-app-in-eclipse/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 10:04:00 +0000</pubDate>
		<dc:creator>geekycoder</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[profiler eclipse java gwt]]></category>

		<guid isPermaLink="false">http://geekycoder.wordpress.com/2010/04/07/gwt-tips-configuring-java-profilers-to-profile-gwt-client-app-in-eclipse/</guid>
		<description><![CDATA[Software Requirements: - Windows OS =&#62; WinXP, WinVista, Win7 - Eclipse v3.5 - JProfiler v5 - YourKit v8 Objective A profiler is a very powerful tool to help pinpoint performance and memory issues. It offers a variety of ways to which a developer can help track down classes that lead to dismal performance, inefficiency and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geekycoder.wordpress.com&amp;blog=1079773&amp;post=5064&amp;subd=geekycoder&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<table border="1" cellspacing="0" cellpadding="2" width="629">
<tbody>
<tr>
<td valign="top" width="627"><em>Software Requirements:            <br /></em>- Windows OS =&gt; WinXP, WinVista, Win7           <br />- Eclipse v3.5           <br />- JProfiler v5           <br />- YourKit v8 </td>
</tr>
</tbody>
</table>
<p><u><b><font size="4">Objective</font></b></u> </p>
<p>A profiler is a very powerful tool to help pinpoint performance and memory issues. It offers a variety of ways to which a developer can help track down classes that lead to dismal performance, inefficiency and memory leak issues. This includes taking and comparing snapshot at certain point in time, watching how CPU time and memory is consumed in realtime in a visual chart and marking interested classes for analysis.     <br />There are many profilers in the markets , both open-source (eg VisualVM that bundled with Java SDK) and commerical offerings. <i><b>However, this document will show the steps to configure two of the best commerical Java profilers in the market, <a href="http://www.yourkit.com/overview/index.jsp">YourKit</a> and <a href="http://www.ej-technologies.com/products/jprofiler/overview.html">JProfiler</a>, to profile GWT client application in Eclipse in the Windows environment.</b></i>     <br />Even though both profilers are just as effective and powerful, both use different approach to profile the application. </p>
<p>Still, the following steps will work with any IDE (eg Intellij ) since it is just a matter of adding adding additional profiler’s agent as argument to the JVM. All IDEs allow argument to be passed to the JVM that run the project application.</p>
<p>Yourkit and JProfiler offer a 15 and 10 days evaluation trial respectively.</p>
<p> <span id="more-5064"></span>
<p><strong>JProfiler profiling GWT Web client app (FigA)</strong></p>
<p><a href="http://geekycoder.files.wordpress.com/2010/04/image.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://geekycoder.files.wordpress.com/2010/04/image_thumb.png?w=751&#038;h=375" width="751" height="375" /></a>     </p>
<p><strong></strong></p>
<p><strong>Yourkit profiling GWT Web client app (FigB)</strong></p>
<p><a href="http://geekycoder.files.wordpress.com/2010/04/image1.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://geekycoder.files.wordpress.com/2010/04/image_thumb1.png?w=704&#038;h=410" width="704" height="410" /></a> </p>
<p> <b>
<p><font size="4"><u>Profiling GWT client Application </u></font></p>
</p>
<p> Profiling a HTML web client application is considered a tedious process. Despite having tools like Firebug to assist development, it may not be sufficient as these tools are not designed for robust software development, lacking sufficent important tools and conveniences to help analyze performance and memory issues at the code level. Besides, profiling JavaScript for memory leaks manually through analyzing DOM is a near impossible task consider that developers have to manually explore the DOM tree structure in a unintuitive manner.     <br />Traditionally a Java profiler is used to profile Java application (eg desktop and server). GWT takes a unique approach of cross-compiling Java code into JavaScript to build complex AJAX web client application. Even though Java and JavaScript share a different language and behaviour characteristics, still the notion of resolving memory leak through best practices applies. </b>&#160;
<p>Profiling JavaScript for performance and memory leak can be somewhat difficult if not “mission impossible” <a href="http://geekycoder.files.wordpress.com/2010/04/image11.png"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="image" border="0" alt="image" src="http://geekycoder.files.wordpress.com/2010/04/image_thumb11.png?w=132&#038;h=100" width="132" height="100" /></a> </p>
<p><a title="http://googlewebtoolkit.blogspot.com/2008/11/profiling-gwt-application-performance.html" href="http://googlewebtoolkit.blogspot.com/2008/11/profiling-gwt-application-performance.html">http://googlewebtoolkit.blogspot.com/2008/11/profiling-gwt-application-performance.html</a></p>
<p><a href="http://geekycoder.files.wordpress.com/2010/04/image9.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://geekycoder.files.wordpress.com/2010/04/image_thumb9.png?w=691&#038;h=182" width="691" height="182" /></a> </p>
<p><a href="http://geekycoder.files.wordpress.com/2010/04/image10.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://geekycoder.files.wordpress.com/2010/04/image_thumb10.png?w=397&#038;h=200" width="397" height="200" /></a> </p>
<p><b></b><font size="4"></font></p>
<p><u><b><font size="4">Configuring JProfiler</font></b></u><font size="4"> </font>    <br />As of current, the Eclipse plug-in for JProfiler does not explicitly support GWT. However, through the use of Remote Session, the same result can be achieved. </p>
<p>For more information on setting up remote profiling,    <br /><a href="http://resources.ej-technologies.com/jprofiler/help/doc/indexRedirect.html?http&amp;&amp;&amp;resources.ej-technologies.com/jprofiler/help/doc/helptopics/config/remoteProfiling.html">http://resources.ej-technologies.com/jprofiler/help/doc/indexRedirect.html?http&amp;&amp;&amp;resources.ej-technologies.com/jprofiler/help/doc/helptopics/config/remoteProfiling.html</a>     </p>
<p>There are essentially two steps after installing JProfiler.</p>
<p>1) Setup JProfiler GUI&#160; to communicate with the agent.    <br />2) Prepare GWT Project Configuration to use JProfiler through agent </p>
<p><u><strong></strong></u></p>
<p><u><strong>1) Setup JProfiler GUI&#160; to communicate with the agent.        <br /></strong></u></p>
<p>Go to Session =&gt; Integration Wizards =&gt; New Remote Integration</p>
<p><a href="http://geekycoder.files.wordpress.com/2010/04/image2.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://geekycoder.files.wordpress.com/2010/04/image_thumb2.png?w=384&#038;h=150" width="384" height="150" /></a> </p>
<p>Just accept those default options, and choose the desired JVM. The final screen will show the summary. </p>
<p>The wizard help to produce the necessary information that will be added into IDE’s project configuration.</p>
<p>Remember to add those PATH since it need to refer to those JProfiler DLL libraries.</p>
<p><a href="http://geekycoder.files.wordpress.com/2010/04/image3.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://geekycoder.files.wordpress.com/2010/04/image_thumb3.png?w=462&#038;h=357" width="462" height="357" /></a> </p>
<p>The following line will be added to JVM argument. The JVM will be used to run the GWT system.</p>
<p><strong><em>-agentlib:jprofilerti=port=8849&#160; &quot;-Xbootclasspath/a:C:\devsys\java\app\jprofiler\bin\agent.jar&quot;</em></strong></p>
<p>&#160;</p>
<p>You can rename the session by [Session] =&gt; [Session Settings] so next time you can identify the session. Each session will automatically be saved for subsequent use.</p>
<p>&#160;</p>
<p><strong><u>2) Prepare GWT Project Configuration to use JProfiler through agent</u></strong></p>
<p>To add support for profiling, simply add the above JVM line to the &lt;VM arguments&gt; in Argument tab of Run Configuration as shown below.</p>
<p><a href="http://geekycoder.files.wordpress.com/2010/04/image4.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://geekycoder.files.wordpress.com/2010/04/image_thumb4.png?w=624&#038;h=371" width="624" height="371" /></a> </p>
<p>The final step is just to run the configuration as per normal, and also ensure that Session is listening for activity. Refer to (FigA) image.</p>
<p>The video will also show the whole process of configuring JProfiler and GWT project in Eclipse.</p>
<hr />
</p>
<p><u><b><font size="4"></font></b></u></p>
<p><u><b><font size="4">Configuring Yourkit</font></b></u>     <br />As of current, the Eclipse plug-in for Yourkit does not explicitly support GWT. However, through the use of Remote Profiling, the same result can be achieved. </p>
<p>For more information on setting up remote profiling, </p>
<p><a title="http://www.yourkit.com/docs/80/help/agent.jsp" href="http://www.yourkit.com/docs/80/help/agent.jsp">http://www.yourkit.com/docs/80/help/agent.jsp</a>     </p>
<p>There are essentially two steps after installing YourKit.</p>
<p>1) Prepare GWT Project Configuration to use Yourkit through agent</p>
<p>2) Setup Yourkit GUI&#160; to communicate with the agent.    <br />&#160;</p>
<p><u><strong>1) Prepare GWT Project Configuration to use Yourkit through agent</strong></u></p>
<p>There are other way to enter the agent path but the convenient way is to specific absolute path.</p>
<p><a href="http://geekycoder.files.wordpress.com/2010/04/image5.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://geekycoder.files.wordpress.com/2010/04/image_thumb5.png?w=654&#038;h=50" width="654" height="50" /></a> </p>
<p><a href="http://geekycoder.files.wordpress.com/2010/04/image6.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://geekycoder.files.wordpress.com/2010/04/image_thumb6.png?w=574&#038;h=396" width="574" height="396" /></a> </p>
<p>The following line will be added to JVM argument. The JVM will be used to run the GWT system.</p>
<p><strong><em>-agentpath:C:\devsys\java\app\YourKit\bin\win32\yjpagent.dll</em></strong></p>
<p>The final step is just to run the configuration as per normal, and also ensure and then startup Yourkit.</p>
<p>&#160;</p>
<p><strong><u>2) Setup Yourkit GUI&#160; to communicate with the agent.        <br /></u></strong></p>
<p>Upon sensing the agent running, Yourkit will automatically show the active session in the main screen. Simply click on that session will bring up analysis screen (FigB).</p>
<p><strong><u><a href="http://geekycoder.files.wordpress.com/2010/04/image7.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://geekycoder.files.wordpress.com/2010/04/image_thumb7.png?w=293&#038;h=174" width="293" height="174" /></a></u></strong></p>
<p>YourKit works by taking snapshot at various time for analysis and comparison</p>
<p><a href="http://geekycoder.files.wordpress.com/2010/04/image8.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://geekycoder.files.wordpress.com/2010/04/image_thumb8.png?w=522&#038;h=336" width="522" height="336" /></a> </p>
<p>The video will also show the whole process of configuring Yourkit and GWT project in Eclipse.</p>
<hr />
<p><strong><u><font size="4">Video</font></u></strong></p>
<p>Watch the video because it says it all…</p>
	      <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="500" height="349" id="viddler_500"><param name="movie" value="http://www.viddler.com/player/b0e7a64d/"/><param name="allowScriptAccess" value="always"/><param name="allowNetworking" value="all"/><param name="wmode" value=""/><param name="allowFullScreen"value="true"/><param name="flashVars" value="f=1&autoplay=f&disablebranding=f&liverailTags="/><embed src="http://www.viddler.com/player/b0e7a64d/" width="500" height="349" type="application/x-shockwave-flash" wmode="" allowScriptAccess="always" allowFullScreen="true" allowNetworking="all" name="viddler_500" flashVars="f=1&autoplay=f&disablebranding=f&liverailTags="></embed></object>
<p><font size="4"><em><strong>&#160;</strong></em></font></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/geekycoder.wordpress.com/5064/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/geekycoder.wordpress.com/5064/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/geekycoder.wordpress.com/5064/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/geekycoder.wordpress.com/5064/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/geekycoder.wordpress.com/5064/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/geekycoder.wordpress.com/5064/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/geekycoder.wordpress.com/5064/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/geekycoder.wordpress.com/5064/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/geekycoder.wordpress.com/5064/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/geekycoder.wordpress.com/5064/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/geekycoder.wordpress.com/5064/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/geekycoder.wordpress.com/5064/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/geekycoder.wordpress.com/5064/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/geekycoder.wordpress.com/5064/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geekycoder.wordpress.com&amp;blog=1079773&amp;post=5064&amp;subd=geekycoder&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://geekycoder.wordpress.com/2010/04/07/gwt-tips-configuring-java-profilers-to-profile-gwt-client-app-in-eclipse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/791c9e65d32034f756f3c2a86e895ef3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">GreekyCoder</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/04/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/04/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/04/image_thumb11.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/04/image_thumb9.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/04/image_thumb10.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/04/image_thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/04/image_thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/04/image_thumb4.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/04/image_thumb5.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/04/image_thumb6.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/04/image_thumb7.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/04/image_thumb8.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Book Readings for February 2010</title>
		<link>http://geekycoder.wordpress.com/2010/03/04/book-readings-for-february-2010/</link>
		<comments>http://geekycoder.wordpress.com/2010/03/04/book-readings-for-february-2010/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 06:18:00 +0000</pubDate>
		<dc:creator>geekycoder</dc:creator>
				<category><![CDATA[Books]]></category>

		<guid isPermaLink="false">http://geekycoder.wordpress.com/2010/03/04/book-readings-for-february-2010/</guid>
		<description><![CDATA[Here is the books I read for February. Closing the Innovation Gap: Reigniting the Spark of Creativity in a Global Economy Available in National Library This book presents a well-research study of how innovation has become increasingly important to organizations and nations, and how to build, sustain and leverage on the innovation ecosystem for competitive [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geekycoder.wordpress.com&amp;blog=1079773&amp;post=5045&amp;subd=geekycoder&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Here is the books I read for February.</p>
<table border="2" cellspacing="2" cellpadding="2" width="533">
<tbody>
<tr>
<td valign="top" width="525"><a href="http://geekycoder.files.wordpress.com/2010/03/image5.png"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;margin:0 10px 0 0;" title="image" border="0" alt="image" align="left" src="http://geekycoder.files.wordpress.com/2010/03/image_thumb4.png?w=137&#038;h=207" width="137" height="207" /></a><a href="http://www.amazon.com/Closing-Innovation-Gap-Reigniting-Creativity/dp/0071499873/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1267679265&amp;sr=8-1">Closing the Innovation Gap: Reigniting the Spark of Creativity in a Global Economy</a>           <br /><strong><em>             <br />Available in National Library</em></strong>           <br /> <br />
<hr />This book presents a well-research study of how innovation has become increasingly important to organizations and nations, and how to build, sustain and leverage on the innovation ecosystem for competitive advantages and business.           </p>
<p> 
<div style="display:inline;float:none;margin:0;padding:0;" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:6f4536b8-7c4c-48a6-870a-5e97dc347788" class="wlWriterEditableSmartContent">
<div><span style="text-align:center; display: block;"><a href="http://geekycoder.wordpress.com/2010/03/04/book-readings-for-february-2010/"><img src="http://img.youtube.com/vi/I24T28z6jJU/2.jpg" alt="" /></a></span></div>
</div>
<p></td>
</tr>
<tr>
<td valign="top" width="525"><a href="http://geekycoder.files.wordpress.com/2010/03/image6.png"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;margin:0 10px 0 0;" title="image" border="0" alt="image" align="left" src="http://geekycoder.files.wordpress.com/2010/03/image_thumb5.png?w=132&#038;h=203" width="132" height="203" /></a><a href="http://www.amazon.com/Start-up-Nation-Israels-Economic-Miracle/dp/044654146X/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1267679487&amp;sr=1-1">Start-up Nation: The Story of Israel&#8217;s Economic Miracle</a>          <br /><strong><em>             <br />Available in National Library</em></strong>           <br /> <br />
<hr />How is that nation that is surrounded by hostile countries and constantly plagued with threat of war and terrorism is been respected and recognized worldwide as a powerhouse for extraordinary source of innovation ? What is it about Israel that attracts Intel to put the company’s future and trust since the 1960s into the hands of Israel chip designers to develop innovative CPU like Pentium, Centrino and the next generation of supercomputer chip ?&#160; Why is that most developed nations with greater wealth, economic stability and excellent infrastructure fail to replicate the culture of innovation and start-up culture of Israel ? All these answers can be found in this extremely well-written book on Israel’s start-up history and culture. By critically looking at past events that shape Israel, the authors uncover the root of innovation of Israel that closely linked to military.           </p>
<p>This book uses the story-telling style that effectively captivates the reader with factual dramas and interesting insights. The lessons learnt are well-supported with example and research, and summarized at end of each chapter.          </p>
<p>A great deal of material also covers Singapore’s obstacles towards a innovative nation and explains hindrance like rigidity, lack of core value and sense of purpose, inability to attract R&amp;D centres, obsessive focus on GDP, materialism and wealth-building, lack of freedom of speech that discourages questioning mind.</td>
</tr>
</tbody>
</table>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/geekycoder.wordpress.com/5045/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/geekycoder.wordpress.com/5045/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/geekycoder.wordpress.com/5045/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/geekycoder.wordpress.com/5045/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/geekycoder.wordpress.com/5045/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/geekycoder.wordpress.com/5045/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/geekycoder.wordpress.com/5045/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/geekycoder.wordpress.com/5045/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/geekycoder.wordpress.com/5045/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/geekycoder.wordpress.com/5045/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/geekycoder.wordpress.com/5045/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/geekycoder.wordpress.com/5045/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/geekycoder.wordpress.com/5045/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/geekycoder.wordpress.com/5045/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geekycoder.wordpress.com&amp;blog=1079773&amp;post=5045&amp;subd=geekycoder&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://geekycoder.wordpress.com/2010/03/04/book-readings-for-february-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/791c9e65d32034f756f3c2a86e895ef3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">GreekyCoder</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/03/image_thumb4.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/03/image_thumb5.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Java Tip: Declaring final variable elegantly using Assigner Design Pattern</title>
		<link>http://geekycoder.wordpress.com/2010/03/03/java-tip-declaring-final-variable-elegantly-using-assigner-design-pattern/</link>
		<comments>http://geekycoder.wordpress.com/2010/03/03/java-tip-declaring-final-variable-elegantly-using-assigner-design-pattern/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 16:47:00 +0000</pubDate>
		<dc:creator>geekycoder</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[Tip]]></category>

		<guid isPermaLink="false">http://geekycoder.wordpress.com/2010/03/03/java-tip-declaring-final-variable-elegantly-using-assigner-design-pattern/</guid>
		<description><![CDATA[Issue Final variable is used to define constant value and reference, and can only define once. In most cases, declaring a final variable is just a matter of assigning to a primitive value or a object reference directly.&#160; However, in some cases, declaring a final class/instance variable may be more involving especially it get assigned [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geekycoder.wordpress.com&amp;blog=1079773&amp;post=5040&amp;subd=geekycoder&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong><u><font size="3">Issue</font></u></strong></p>
<p>Final variable is used to define constant value and reference, and can only define once. In most cases, declaring a final variable is just a matter of assigning to a primitive value or a object reference directly.&#160; However, in some cases, declaring a final class/instance variable may be more involving especially it get assigned from method that throws Exception (eg API for database access, web access), or it may involve multiple statements. In such cases, the code may become cluttered with class helper method and dummy temporary variable that help define final variable, making the code look less elegant and harder to maintain. The following common ways of declaring a final variable in those situations might look familiar to many.</p>
<p> <span id="more-5040"></span>
<p><strong><em>Declaring final variable by instance/class method</em></strong></p>
<p><a href="http://geekycoder.files.wordpress.com/2010/03/image.png"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="image" border="0" alt="image" src="http://geekycoder.files.wordpress.com/2010/03/image_thumb.png?w=386&#038;h=479" width="386" height="479" /></a></p>
<p>&#160;</p>
<p>&#160;<strong><em>Declaring final variable by instance/class variable with static/instance initializer.</em></strong></p>
<p><a href="http://geekycoder.files.wordpress.com/2010/03/image1.png"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="image" border="0" alt="image" src="http://geekycoder.files.wordpress.com/2010/03/image_thumb1.png?w=398&#038;h=501" width="398" height="501" /></a> </p>
<p>The aforementioned ways definitely get the work done but at the cost of elegancy. The helper method and variable help to define the final variable but it inevitably becomes part of class method and variable.</p>
</p>
<p>&#160;</p>
<p><strong><u><font size="3">Recommended way: Assigner Design Pattern</font></u></strong></p>
<p>A better way to declare final instance/class variable is to use Generic method and interface with the advantages of </p>
<ul>
<li>forcing initializing method in the same statement&#160; as the final variable declaration. </li>
<li>reusing as design pattern (term: Assigner Design Pattern) and enhancing code readability</li>
</ul>
<p>There is generic helper class whose interface and method accept a parametric type similar to the type of final variable.&#160; The advantage of using Generics is that the type mismatch will be caught at compile time rather than runtime. This design pattern is termed Assigner because it assigns value to a variable from initializing method. </p>
<p>&#160;</p>
<p><a href="http://geekycoder.files.wordpress.com/2010/03/image2.png"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="image" border="0" alt="image" src="http://geekycoder.files.wordpress.com/2010/03/image_thumb2.png?w=414&#038;h=252" width="414" height="252" /></a> </p>
<p>&#160;</p>
<p>Using the design pattern, the code becomes cleaner and elegant.</p>
<p><a href="http://geekycoder.files.wordpress.com/2010/03/image3.png"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="image" border="0" alt="image" src="http://geekycoder.files.wordpress.com/2010/03/image_thumb3.png?w=426&#038;h=417" width="426" height="417" /></a> </p>
<p>The above can be downloaded </p>
<p><a href="http://www.mediafire.com/?zbdjbxnbmmk"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="image" border="0" alt="image" src="http://geekycoder.files.wordpress.com/2010/03/image4.png?w=111&#038;h=78" width="111" height="78" /></a> <a href="http://www.mediafire.com/?zbdjbxnbmmk">assigner.zip</a> (1kb)</p>
<p>&#160;</p>
<p>Some will probably argue that Assigner Design Pattern may not be efficient compare to the first two ways since additional bytecode classes are generated for Assigner helper class and inner class. However, like other design patterns, code readability and reusability may outweigh the negligible performance loss and inefficiency.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/geekycoder.wordpress.com/5040/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/geekycoder.wordpress.com/5040/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/geekycoder.wordpress.com/5040/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/geekycoder.wordpress.com/5040/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/geekycoder.wordpress.com/5040/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/geekycoder.wordpress.com/5040/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/geekycoder.wordpress.com/5040/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/geekycoder.wordpress.com/5040/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/geekycoder.wordpress.com/5040/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/geekycoder.wordpress.com/5040/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/geekycoder.wordpress.com/5040/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/geekycoder.wordpress.com/5040/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/geekycoder.wordpress.com/5040/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/geekycoder.wordpress.com/5040/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geekycoder.wordpress.com&amp;blog=1079773&amp;post=5040&amp;subd=geekycoder&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://geekycoder.wordpress.com/2010/03/03/java-tip-declaring-final-variable-elegantly-using-assigner-design-pattern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/791c9e65d32034f756f3c2a86e895ef3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">GreekyCoder</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/03/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/03/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/03/image_thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/03/image_thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/03/image4.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Dare-devil Airplane Landing</title>
		<link>http://geekycoder.wordpress.com/2010/02/21/dare-devil-airplane-landing/</link>
		<comments>http://geekycoder.wordpress.com/2010/02/21/dare-devil-airplane-landing/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 11:34:40 +0000</pubDate>
		<dc:creator>geekycoder</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://geekycoder.wordpress.com/2010/02/21/dare-devil-airplane-landing/</guid>
		<description><![CDATA[I know exactly what you thinking because it is exactly what I’m thinking when I first see this surreal picture. A picture that is so skillfully doctored to show a large plane landing near to the coastline as short to the start-point of runaway. To created such a illusion with perfectly matched details to thwart [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geekycoder.wordpress.com&amp;blog=1079773&amp;post=5030&amp;subd=geekycoder&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://geekycoder.files.wordpress.com/2010/02/image22.png"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="image" border="0" alt="image" src="http://geekycoder.files.wordpress.com/2010/02/image_thumb13.png?w=547&#038;h=398" width="547" height="398" /></a> </p>
<p>I know exactly what you thinking because it is exactly what I’m thinking when I first see this surreal picture. A picture that is so skillfully doctored to show a large plane landing near to the coastline as short to the start-point of runaway. To created such a illusion with perfectly matched details to thwart even the meticulous critics will require very highly-skilled artist and countless hours of work. Just look at those shadow, lighting and other amazing details that fit so well with the environment, not to even mention that no airline in the world is so sane to put the public in such a dangerous area.</p>
<p> <span id="more-5030"></span>
<p><a href="http://geekycoder.files.wordpress.com/2010/02/image23.png"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;margin:0 10px 0 0;" title="image" border="0" alt="image" align="left" src="http://geekycoder.files.wordpress.com/2010/02/image_thumb14.png?w=446&#038;h=205" width="446" height="205" /></a> Amazing as it seen, this is NO Photoshop-ped image but a common sight that you will get to see if you happen to be in <a href="http://en.wikipedia.org/wiki/Princess_Juliana_International_Airport">Princess Juliana International Airport in the Netherlands Antilles</a>. Passenger plane that lands as dangerously close to the public accessible area with the wheels of the plane just few metres away from the fence is a trick that only pilots with the utmost confidence and judgment are capable of executing, and all this is done with zero-record of mishap.</p>
<p>The following video is the proof of its authenticity. No Hollywood special effect can even come this real &lt;:^}.</p>
<span style="text-align:center; display: block;"><a href="http://geekycoder.wordpress.com/2010/02/21/dare-devil-airplane-landing/"><img src="http://img.youtube.com/vi/zAfQwDizpRo/2.jpg" alt="" /></a></span>
<p>How about experiencing the thrill from the pilot’s cockpit ?</p>
<span style="text-align:center; display: block;"><a href="http://geekycoder.wordpress.com/2010/02/21/dare-devil-airplane-landing/"><img src="http://img.youtube.com/vi/ksmDuXO_k6E/2.jpg" alt="" /></a></span>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/geekycoder.wordpress.com/5030/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/geekycoder.wordpress.com/5030/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/geekycoder.wordpress.com/5030/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/geekycoder.wordpress.com/5030/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/geekycoder.wordpress.com/5030/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/geekycoder.wordpress.com/5030/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/geekycoder.wordpress.com/5030/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/geekycoder.wordpress.com/5030/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/geekycoder.wordpress.com/5030/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/geekycoder.wordpress.com/5030/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/geekycoder.wordpress.com/5030/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/geekycoder.wordpress.com/5030/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/geekycoder.wordpress.com/5030/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/geekycoder.wordpress.com/5030/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geekycoder.wordpress.com&amp;blog=1079773&amp;post=5030&amp;subd=geekycoder&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://geekycoder.wordpress.com/2010/02/21/dare-devil-airplane-landing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/791c9e65d32034f756f3c2a86e895ef3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">GreekyCoder</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/02/image_thumb13.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/02/image_thumb14.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>JavaFX Tips: Reducing development time by running JavaFX application using class file and with JRebel</title>
		<link>http://geekycoder.wordpress.com/2010/02/19/javafx-tips-reducing-development-time-by-running-javafx-using-class-file-and-with-jrebel/</link>
		<comments>http://geekycoder.wordpress.com/2010/02/19/javafx-tips-reducing-development-time-by-running-javafx-using-class-file-and-with-jrebel/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 16:30:00 +0000</pubDate>
		<dc:creator>geekycoder</dc:creator>
				<category><![CDATA[JavaFX]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://geekycoder.wordpress.com/2010/02/19/javafx-tips-reducing-development-time-by-running-javafx-using-class-file-and-jrebel/</guid>
		<description><![CDATA[Issues I always thought that there is ought to be better way to develop JavaFX application, with kind of similar and gratifying experience as developing Java Swing application. Traditionally in developing desktop application, one normally develop and test using class file to save time, and only uses JAR file for deployment (or if running in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geekycoder.wordpress.com&amp;blog=1079773&amp;post=5023&amp;subd=geekycoder&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong><u><font size="4">Issues</font></u></strong></p>
<p>I always thought that there is ought to be better way to develop JavaFX application, with kind of similar and gratifying experience as developing Java Swing application. Traditionally in developing desktop application, one normally develop and test using class file to save time, and only uses JAR file for deployment (or if running in mobile emulator or device). However with the advent of RIA platform, the trend is to use a application container file (eg jar, swf) as default way of development since it facilitates seamless running in several modes without hassle (eg as Applet, webstart, and mobile device). Unfortunately, this is rather inefficient if one is developing desktop application, or experimenting with ideas. Unnecessary waiting time only disrupts the creativity and programming flow. Saving a few seconds for every run will accumulate into significant saving of time. Besides, it is rather counter-productive to use container file as the only mode of development if the technology can support alternative efficient way.</p>
<p> <span id="more-5023"></span>
<p><strong><u><font size="4">Flex’s dilemma</font></u></strong></p>
<p>The case in point is that JavaFX does not need to suffer the same fate as Flex in term of development. Flex which is based on Flash technology requires the generation of SWF container file for every change need to be made. This actually increases the waiting processing time as composite files that store in SWF file grow in number and size. For RIA application that a rich appealing user interface that relies extensively on custom-made graphics, developers often have to use lower quality “proxy” graphics in place of high-quality but larger file size graphics to avoid the time wasted to create SWF file for day-to-day development. Hence, developers have to find creative ways to improve the waiting time by reducing the number and size of files to be processed into the container file during development. In the future, Adobe will probably allows development and testing of application in “exploded” format rather than only through SWF. </p>
<p><strong><u><font size="4">JavaFX</font></u></strong></p>
<p>So how does Flex’s “inefficient” development relate to JavaFX ? Like Flex, JavaFX default to using JAR file as mode of development in NetBeans. Everytime, a JavaFX application is modified, it will be compiled into a JAR file for execution. However, unlike Flex, JavaFX does not actually require using container JAR file for execution unless it is deployed as applet, webstart or mobile application. JavaFX is truly capable of running off from class file using classpath much like its Swing application counterpart. One less unnecessary step means one less waiting time.</p>
<p>JAR file execution: <strong><em>Compile =&gt; JAR generation =&gt; JavaFX.exe</em></strong></p>
<p>Class file execution: <strong><em>Compile =&gt; JavaFX.exe</em></strong>     </p>
<p><strong><u><font size="4">NetBeans support of “Running by class file”</font></u></strong></p>
<p><a href="http://geekycoder.files.wordpress.com/2010/02/image9.png"><img style="display:inline;border-width:0;margin:0 10px 0 0;" title="image" border="0" alt="image" align="left" src="http://geekycoder.files.wordpress.com/2010/02/image_thumb.png?w=394&#038;h=326" width="394" height="326" /></a>Out of the box, NetBeans does not explicitly support JavaFX development through class file. The JAR will automatically be generated and run every time the application is modified and run. Developers do not have much control for this case from GUI side of view as see from the Project Properties. However, with some experimenting and understanding of how NetBeans works with JavaFX, it is in fact possible to make NetBeans supports running of JavaFX application by class file. Bear in mind that the subsequent method refers to running in Standard Execution model (Desktop application), not the webstart, browser applet and mobile mode as these modes require JAR file.</p>
<p>&#160;</p>
<p><a href="http://geekycoder.files.wordpress.com/2010/02/image10.png"><img style="display:inline;border-width:0;margin:0 10px 0 0;" title="image" border="0" alt="image" align="left" src="http://geekycoder.files.wordpress.com/2010/02/image_thumb1.png?w=281&#038;h=114" width="281" height="114" /></a>Since the default behaviour is to generate JAR file, it will be useful if the Standard Execution includes a checkbox to explicitly indicates running of Application by class file, thereby bypassing generation of JAR file.</p>
<p>&#160;</p>
<p><u><strong><font size="4">Let’s start the exploration          <br /></font></strong></u>The best way is to learn the concept along side with real practical example so that developers can follow and understand it better.&#160; I am using Windows 7 running NetBeans 6.8 with JavaFX v1.2.3 (the latest as of current. Go to the end on how to add JavaFX v1.2.3 support to NetBeans 6.8 which contains outdated version of JavaFX).</p>
<p>In this case, I use a JavaFX sample example [PathAnimation]from NetBeans. The following applies to any JavaFX application develop in NetBeans. After creating the sample, run the JavaFX example once so that the following file structure will appear as below. </p>
<p><a href="http://geekycoder.files.wordpress.com/2010/02/image11.png"><img style="display:inline;border-width:0;margin:0 10px 0 0;" title="image" border="0" alt="image" align="left" src="http://geekycoder.files.wordpress.com/2010/02/image_thumb2.png?w=318&#038;h=509" width="318" height="509" /></a> </p>
<p>You have to use the <strong><em>Files view tab</em></strong> in order to see the full JavaFX application file structure.</p>
<p>There are many files in JavaFX application, however I will only&#160; explain those files and directories that are crucial for “Running by class file”.</p>
<p>The&#160; [build.xml] file is the first file that will be called to initiate the compile and run process. </p>
<p><a href="http://geekycoder.files.wordpress.com/2010/02/image12.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://geekycoder.files.wordpress.com/2010/02/image_thumb3.png?w=555&#038;h=84" width="555" height="84" /></a> </p>
<p>As see, it actually call [build-impl.xml] file which contains the implementation instruction for the build file. This build file when invoke, will create the [build] directory and compile and store the JavaFX class file there (All JavaFX source will be compiled into bytecode class file). When run command is issued,&#160; it will build the JAR file using class files from [build] directory into [dist] distribution directory and then invoke java command to run the JAR file. This is the default behaviour for JavaFX development in NetBeans.</p>
<p>Now open [build-impl.xml] file into the editor and modify some sections (you can also copy this file and alter the file and point that file in [build.xml] file. But for quick demonstration purpose, the original [build-imp] is used instead)</p>
<p><strong><u>Modification of&#160; [build-impl.xml] file</u></strong></p>
<ul>
<li><strong><em>“Disable” generation of JAR file</em></strong>       <br />Javafxpackager is a JavaFX tool responsible for compiling JavaFX source codes into corresponding Java class files, and generation of JAR file. Note that there is currently no way to turn off the generation of JAR file. The JAR file will always be generated (as far as I know).&#160; It will be elegant if Javafxpackager include command-line option to produce java class from JavaFX source without generating JAR file although the following workaround will prevent this generation from happening      </p>
<p>Search for :       <br /><em><strong>&lt;exec executable=&quot;${platform.fxhome}/bin/javafxpackager${binary.extension}&quot; failonerror=&quot;true&quot;&gt;          <br /></strong></em><a href="http://geekycoder.files.wordpress.com/2010/02/image13.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://geekycoder.files.wordpress.com/2010/02/image_thumb4.png?w=812&#038;h=176" width="812" height="176" /></a>&#160; <br />a) Replace the line       <br /><strong><em>&lt;arg file=&quot;${dist.dir}&quot;/&gt;          <br /></em></strong>with       <br /><strong><em>&lt;arg file=&quot;k:\javafxhack&quot;/&gt;</em></strong>&#160; where k stands for any NON-EXISTING drive. It is important to use a non-existing drive because Javafxpackager will attempt to create the directory. The dummy directory is needed to trick Javafxpackager into thinking that it is using a valid directory. <strong>If you are using Linux then adjust the path accordingly</strong>.       </p>
<p>b) Next, replace       <br /><strong><em>failoneerror=&quot;true&quot;</em></strong>       <br />with       <br /><em><strong>failoneerror=&quot;false&quot;&#160;&#160; <br /></strong></em>This step is important because Javafxpackager will complain about invalid JAR file from a) and will not proceed further until this is set to false.<strong><em>&#160; </p>
<p></em></strong>After modification, you will get the following       </p>
<p><a href="http://geekycoder.files.wordpress.com/2010/02/image14.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://geekycoder.files.wordpress.com/2010/02/image_thumb5.png?w=795&#038;h=162" width="795" height="162" /></a>       </p>
</li>
<li><strong><em>Running of JavaFX application through class file          <br /></em></strong>Since the JAR file is no longer generated, JavaFX application must be run through class file in the [build] directory.
<p>Search for:       <br /><strong><em>&lt;java classname=&quot;${main.class}&quot; classpath=&quot;${dist.dir}/${application.title}.jar&quot;&#160; <br /><a href="http://geekycoder.files.wordpress.com/2010/02/image15.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://geekycoder.files.wordpress.com/2010/02/image_thumb6.png?w=728&#038;h=185" width="728" height="185" /></a> </em></strong><strong><em>         </p>
<p></em></strong>and change it to the following:       <br /><strong><em>&lt;java classname=&quot;${main.class}&quot; classpath=&quot;${build.dir}/compiled&quot;          <br /></em></strong><strong><em>         <br /><a href="http://geekycoder.files.wordpress.com/2010/02/image16.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://geekycoder.files.wordpress.com/2010/02/image_thumb7.png?w=761&#038;h=39" width="761" height="39" /></a>&#160; <br /></em></strong>      <br />Now, JavaFX application is configured to run from [build/compiled] directory rather than through JAR file.       </li>
</ul>
<p><strong><u>Running by Class file</u></strong></p>
<p>Now,&#160; run the JavaFX application, and NetBeans will show the following console message.</p>
<p><a href="http://geekycoder.files.wordpress.com/2010/02/image17.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://geekycoder.files.wordpress.com/2010/02/image_thumb8.png?w=593&#038;h=149" width="593" height="149" /></a>&#160;</p>
<p>Even though the jar file cannot be found, the application will still be executed because it is now running off through class file.&#160; <em>You can delete the [dist] directory to verify that JAR file is not generated.      <br /></em>    <br />The time-saving is very much depend on the size of the JAR file. You can compare the time with and without using JAR file by simply adding <strong><em>FX.exit() at last statement of run() function of&#160; Main.fx. </em></strong>NetBeans will report the time taken when JavaFX application terminates. </p>
<p>As for my case, this example running on Pentium M 1.5Gz takes around 9s on JAR file, and 6s on class file, a saving of 33%&#160; time saved, though this timing varies from machine configuration and performance over time.</p>
<p><strong><em><u>Tips</u></em></strong></p>
<ul>
<li>You may want to create another build of [build-impl.xml] file (eg build-impl-classfile.xml) just for the above setting, and then change [build.xml]’s import tag to use the implementation file accordingly.&#160; </li>
<li>NetBeans will request for regeneration of [build-impl.xml] file for every change to Project Properties if you have altered the file. This will overwrite the changes you make. Hence, using alternate implementation file will be a good choice.      <br />&#160;<a href="http://geekycoder.files.wordpress.com/2010/02/image18.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://geekycoder.files.wordpress.com/2010/02/image_thumb9.png?w=469&#038;h=219" width="469" height="219" /></a> </li>
<li>For performance reason, NetBeans caches the settings of [build-impl.xml] file in memory, and any change to the file will not be recognized by NetBeans unless it is edited in Netbeans editor. This means that if&#160; [build-impl.xml] file is modified outside NetBeans (eg using Notepad), and the project is run, those change will not take effect. Only updating the file in NetBeans will those change be reloaded.</li>
</ul>
<p>&#160;</p>
<p><strong><u>Running JRebel with JavaFX</u></strong></p>
<p>Yes ! It is true that by using the aforementioned method, you can actually use <a href="http://www.zeroturnaround.com/jrebel/">JRebel</a> with JavaFX. In the past, there is no easy way that JRebel can work with JavaFX if the JAR file is used to run JavaFX application but by using the class file method to run the application, JRebel can now detect change to those classes automatically and perform its magic. Now, you can get more productive time by running through class file and using JRebel. The best way to see this effect is change the event handling through JavaFX function call <a href="http://geekycoder.files.wordpress.com/2010/02/image19.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://geekycoder.files.wordpress.com/2010/02/image_thumb10.png?w=312&#038;h=71" width="312" height="71" /></a> </p>
<p><a href="http://geekycoder.files.wordpress.com/2010/02/image20.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://geekycoder.files.wordpress.com/2010/02/image_thumb11.png?w=590&#038;h=385" width="590" height="385" /></a> </p>
<p>For some unknown reasons, I am unable to run the <a href="http://plugins.netbeans.org/PluginPortal/faces/PluginDetailPage.jsp?pluginid=22254">JRebel plug-in in NetBeans</a>, however you can still use JRebel by adding the following to JVM arguments (change the JRebel path accordingly):     </p>
<p>&#160;<strong><em>-noverify -javaagent:&quot;C:\devsys\java\lib\jrebel\jrebel.jar&quot;</em></strong></p>
<p>&#160;</p>
<p>Just make the change and compile the JavaFX file, and JRebel will automatically reload those changes.</p>
<p><a href="http://geekycoder.files.wordpress.com/2010/02/image21.png"><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://geekycoder.files.wordpress.com/2010/02/image_thumb12.png?w=691&#038;h=368" width="691" height="368" /></a> </p>
<p><strong><u></u></strong></p>
<p><strong><u>Video showing demonstration of JavaFX application running by class file and with JRebel</u></strong></p>
	      <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="500" height="522" id="viddler_500"><param name="movie" value="http://www.viddler.com/player/e2acd87a/"/><param name="allowScriptAccess" value="always"/><param name="allowNetworking" value="all"/><param name="wmode" value=""/><param name="allowFullScreen"value="true"/><param name="flashVars" value="f=1&autoplay=f&disablebranding=f&liverailTags="/><embed src="http://www.viddler.com/player/e2acd87a/" width="500" height="522" type="application/x-shockwave-flash" wmode="" allowScriptAccess="always" allowFullScreen="true" allowNetworking="all" name="viddler_500" flashVars="f=1&autoplay=f&disablebranding=f&liverailTags="></embed></object>
<p>&#160;</p>
<p><strong><u>How to add JavaFX SDK v1.2.3 to NetBeans 6.8</u></strong></p>
<p>You can update to the latest JavaFX SDK simply by replacing the old version with the new version.</p>
<p>Just place the updated JavaFX files into <strong><em>&lt;NetBeans directory&gt;\javafx2\javafx-sdk</em></strong></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/geekycoder.wordpress.com/5023/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/geekycoder.wordpress.com/5023/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/geekycoder.wordpress.com/5023/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/geekycoder.wordpress.com/5023/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/geekycoder.wordpress.com/5023/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/geekycoder.wordpress.com/5023/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/geekycoder.wordpress.com/5023/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/geekycoder.wordpress.com/5023/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/geekycoder.wordpress.com/5023/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/geekycoder.wordpress.com/5023/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/geekycoder.wordpress.com/5023/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/geekycoder.wordpress.com/5023/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/geekycoder.wordpress.com/5023/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/geekycoder.wordpress.com/5023/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geekycoder.wordpress.com&amp;blog=1079773&amp;post=5023&amp;subd=geekycoder&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://geekycoder.wordpress.com/2010/02/19/javafx-tips-reducing-development-time-by-running-javafx-using-class-file-and-with-jrebel/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/791c9e65d32034f756f3c2a86e895ef3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">GreekyCoder</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/02/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/02/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/02/image_thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/02/image_thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/02/image_thumb4.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/02/image_thumb5.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/02/image_thumb6.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/02/image_thumb7.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/02/image_thumb8.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/02/image_thumb9.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/02/image_thumb10.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/02/image_thumb11.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/02/image_thumb12.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Book Readings for January 2010</title>
		<link>http://geekycoder.wordpress.com/2010/02/05/book-readings-for-january-2010/</link>
		<comments>http://geekycoder.wordpress.com/2010/02/05/book-readings-for-january-2010/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 07:29:00 +0000</pubDate>
		<dc:creator>geekycoder</dc:creator>
				<category><![CDATA[Review]]></category>
		<category><![CDATA[Review(Book)]]></category>

		<guid isPermaLink="false">http://geekycoder.wordpress.com/2010/02/05/book-readings-for-january-2010/</guid>
		<description><![CDATA[Here is the books I read for January. BlackBerry Planet: The Story of Research in Motion and the Little Device that Took the World by Storm Available in National Library This book chronicles the history and rise of BlackBerry devices and the company RIM. RIM shows that the secret to the company’s success is to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geekycoder.wordpress.com&amp;blog=1079773&amp;post=4994&amp;subd=geekycoder&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Here is the books I read for January. </p>
<table border="2" cellspacing="2" cellpadding="2" width="533">
<tbody>
<tr>
<td valign="top" width="525"><a href="http://www.amazon.com/BlackBerry-Planet-Research-Motion-Little/dp/0470159405/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1265351794&amp;sr=1-1"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;margin:0 10px 0 0;" title="image" border="0" alt="image" align="left" src="http://geekycoder.files.wordpress.com/2010/02/image3.png?w=125&#038;h=195" width="125" height="195" /></a> <a href="http://www.amazon.com/BlackBerry-Planet-Research-Motion-Little/dp/0470159405/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1265351794&amp;sr=1-1">BlackBerry Planet: The Story of Research in Motion and the Little Device that Took the World by Storm</a>          <br /><strong><em>             <br />Available in National Library</em></strong>          <br /> <br />
<hr />This book chronicles the history and rise of BlackBerry devices and the company RIM. RIM shows that the secret to the company’s success is to develop core competency, sustainable innovation and entrepreneurial culture.&#160; A substantial part of the book also highlights on how BlackBerry is used as a effective and indispensable tool in Obama campaigning for president-ship.          </td>
</tr>
<tr>
<td valign="top" width="525"><a href="http://www.amazon.com/After-Software-Wars-Keith-Curtis/dp/0578011891"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;margin:0 10px 0 0;" title="image" border="0" alt="image" align="left" src="http://geekycoder.files.wordpress.com/2010/02/image4.png?w=130&#038;h=196" width="130" height="196" /></a>&#160;<a href="http://www.amazon.com/After-Software-Wars-Keith-Curtis/dp/0578011891">After the Software Wars</a>          </p>
<p><strong><em>Free download at <a title="http://www.lulu.com/content/4964815" href="http://www.lulu.com/content/4964815">http://www.lulu.com/content/4964815</a>&#160;</em></strong>          <br /> <br />
<hr />This is must read for those who want to get excellent insight into the changing world of Information Technology. A wide range of interesting topics are covered, including Linux, open-source movement, DRM, Google and Java. Basically, all the important things you ever want to know about computer world is covered in this book. Do not miss it especially when it’s free.          </td>
</tr>
<tr>
<td valign="top" width="525"><a href="http://www.amazon.com/Programming-Clojure-Pragmatic-Programmers-Halloway/dp/1934356336/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1265352425&amp;sr=1-1"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;margin:0 10px 0 0;" title="image" border="0" alt="image" align="left" src="http://geekycoder.files.wordpress.com/2010/02/image5.png?w=159&#038;h=226" width="159" height="226" /></a>&#160; <a href="http://www.amazon.com/Programming-Clojure-Pragmatic-Programmers-Halloway/dp/1934356336/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1265352425&amp;sr=1-1">Programming Clojure</a>          </p>
<p><strong><em>Available in National Library</em></strong>          <br /> <br />
<hr />Functional programming and concurrency are all the rage now as multi-core CPU becomes commodity and trend of the future. Clojure, a derivative of the venerable LISP language running under the powerful Java Virtual Machine, has caught the computing world by storm due to its elegance and uniqueness, combined with unmatched performance. By merging the flexibility and power of LISP with Java, Clojure provides a attractive language for those Java veterans who want to take their skill to another level. And for that, one will need <strong><em>Programming Clojure</em></strong>, the only book currently available for the language. This book provides a great reference and tutorial for those who want to come to speed in learning and using Clojure.          </td>
</tr>
<tr>
<td valign="top" width="525"><a href="http://www.amazon.com/iPhone-User-Interface-Design-Projects/dp/1430223596/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1265352501&amp;sr=1-1"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;margin:0 10px 0 0;" title="image" border="0" alt="image" align="left" src="http://geekycoder.files.wordpress.com/2010/02/image6.png?w=145&#038;h=227" width="145" height="227" /></a>&#160; <a href="http://www.amazon.com/iPhone-User-Interface-Design-Projects/dp/1430223596/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1265352501&amp;sr=1-1">iPhone User Interface Design Projects</a>          </p>
<hr />How does one create a world class attractive iPhone application that is easy-to-use ? What is the thought process in designing and building iPhone application ? What better way to learn about building iPhone application than by learning through actual experience of those who been there.&#160; This book is for those who will want to get valuable insight in creating beautiful GUI for iPhone.          </td>
</tr>
<tr>
<td valign="top" width="525"><a href="http://www.amazon.com/Beginning-Java-Google-App-Engine/dp/143022553X/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1265352627&amp;sr=1-1"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;margin:0 10px 0 0;" title="image" border="0" alt="image" align="left" src="http://geekycoder.files.wordpress.com/2010/02/image7.png?w=142&#038;h=201" width="142" height="201" /></a>&#160; <a href="http://www.amazon.com/Beginning-Java-Google-App-Engine/dp/143022553X/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1265352627&amp;sr=1-1">Beginning Java Google App Engine</a>          </p>
<hr />Google App Engine is a disruptive cloud platform not only because of its power. scalability, reliability and ease of use, but also because one can deploy and use application for free compare to other cloud vendors like Amazon. This book will provides a excellent introduction to those Java developers using Google App Engine and explain the concept and technology behind the engine.</td>
</tr>
</tbody>
</table>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/geekycoder.wordpress.com/4994/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/geekycoder.wordpress.com/4994/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/geekycoder.wordpress.com/4994/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/geekycoder.wordpress.com/4994/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/geekycoder.wordpress.com/4994/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/geekycoder.wordpress.com/4994/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/geekycoder.wordpress.com/4994/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/geekycoder.wordpress.com/4994/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/geekycoder.wordpress.com/4994/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/geekycoder.wordpress.com/4994/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/geekycoder.wordpress.com/4994/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/geekycoder.wordpress.com/4994/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/geekycoder.wordpress.com/4994/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/geekycoder.wordpress.com/4994/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geekycoder.wordpress.com&amp;blog=1079773&amp;post=4994&amp;subd=geekycoder&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://geekycoder.wordpress.com/2010/02/05/book-readings-for-january-2010/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/791c9e65d32034f756f3c2a86e895ef3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">GreekyCoder</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/02/image3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/02/image4.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/02/image5.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/02/image6.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/02/image7.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Uncover the secrets of the innovators</title>
		<link>http://geekycoder.wordpress.com/2010/02/01/uncover-the-secrets-of-the-innovators/</link>
		<comments>http://geekycoder.wordpress.com/2010/02/01/uncover-the-secrets-of-the-innovators/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 22:41:00 +0000</pubDate>
		<dc:creator>geekycoder</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://geekycoder.wordpress.com/2010/02/01/uncover-the-secrets-of-the-innovators/</guid>
		<description><![CDATA[Do you know what it means to be a innovator ? According to Professors Jeff Dyer and Hal Gregersen&#160; , it means to develop a set of skills and traits that necessary for creative innovation. &#160; Dyer: The first skill is what we call &#34;associating.&#34; It&#8217;s a cognitive skill that allows creative people to make [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geekycoder.wordpress.com&amp;blog=1079773&amp;post=4985&amp;subd=geekycoder&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Do you know what it means to be a innovator ? According to Professors <a href="http://marriottschool.byu.edu/employee/employee.cfm?emp=jhd22" target="_blank">Jeff Dyer</a> <img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="image" border="0" alt="image" src="http://geekycoder.files.wordpress.com/2010/02/image.png?w=51&#038;h=59" width="51" height="59" /> and <a href="http://www.insead.edu/facultyresearch/faculty/profiles/hgregersen/" target="_blank">Hal Gregersen</a>&#160;<img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="image" border="0" alt="image" src="http://geekycoder.files.wordpress.com/2010/02/image1.png?w=38&#038;h=52" width="38" height="52" /> , it means to develop a set of skills and traits that necessary for creative innovation.</p>
<p>&#160;</p>
<blockquote><p>Dyer: The first skill is what we call &quot;<strong><em>associating</em></strong>.&quot; It&#8217;s a cognitive skill that allows creative people to make connections across seemingly unrelated questions, problems, or ideas. The second skill is <strong><em>questioning</em></strong> — an ability to ask &quot;what if&quot;, &quot;why&quot;, and &quot;why not&quot; questions that challenge the status quo and open up the bigger picture. The third is the ability to closely observe (<strong><em>observing</em></strong>) details, particularly the details of people&#8217;s behavior. Another skill is the ability to experiment (<strong><em>experimenting</em></strong>) — the people we studied are always trying on new experiences and exploring new worlds. And finally, they are really good at <strong><em>networking</em></strong> with smart people who have little in common with them, but from whom they can learn. </p>
<p>Fryer: Which of these skills do you think is the most important? </p>
<p>Dyer: We&#8217;ve found that <strong><em>questioning turbo-charges observing, experimenting, and networking</em></strong>, but questioning on its own doesn&#8217;t have a direct effect without the others. Overall, <strong><em>associating is the key skill because new ideas aren&#8217;t created without connecting problems or ideas in ways that they haven&#8217;t been connected before</em></strong>. The other behaviors are inputs that trigger associating — so they are a means of getting to a creative end.</p>
<p>Gregersen: You might summarize all of the skills we&#8217;ve noted in one word: &quot;<strong><em>inquisitiveness</em></strong>.&quot; I spent 20 years studying great global leaders, and that was the big common denominator. <strong><em>It&#8217;s the same kind of inquisitiveness you see in small children</em></strong></p>
</blockquote>
<p>To read on, <a href="http://blogs.hbr.org/hbr/hbreditors/2009/09/how_do_innovators_think.html?cm_mmc=npv-_-DAILY_ALERT-_-AWEBER-_-DATE" target="_blank">click here</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/geekycoder.wordpress.com/4985/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/geekycoder.wordpress.com/4985/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/geekycoder.wordpress.com/4985/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/geekycoder.wordpress.com/4985/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/geekycoder.wordpress.com/4985/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/geekycoder.wordpress.com/4985/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/geekycoder.wordpress.com/4985/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/geekycoder.wordpress.com/4985/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/geekycoder.wordpress.com/4985/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/geekycoder.wordpress.com/4985/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/geekycoder.wordpress.com/4985/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/geekycoder.wordpress.com/4985/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/geekycoder.wordpress.com/4985/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/geekycoder.wordpress.com/4985/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geekycoder.wordpress.com&amp;blog=1079773&amp;post=4985&amp;subd=geekycoder&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://geekycoder.wordpress.com/2010/02/01/uncover-the-secrets-of-the-innovators/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/791c9e65d32034f756f3c2a86e895ef3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">GreekyCoder</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/02/image.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/02/image1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>New release of NanoXML (v2.2.5) to allow manual release of file resource</title>
		<link>http://geekycoder.wordpress.com/2010/01/31/new-release-of-nanoxml-v2-2-5-to-allow-manual-release-of-file-resource/</link>
		<comments>http://geekycoder.wordpress.com/2010/01/31/new-release-of-nanoxml-v2-2-5-to-allow-manual-release-of-file-resource/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 23:12:00 +0000</pubDate>
		<dc:creator>geekycoder</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[nanoxml xml programming java]]></category>

		<guid isPermaLink="false">http://geekycoder.wordpress.com/2010/01/31/new-release-of-nanoxml-v2-2-5-to-allow-manual-release-of-file-resource/</guid>
		<description><![CDATA[Important: This version is not the official release by the original author of NanoXML (http://nanoxml.cyberelf.be/). It appears that the development for NanoXML has ceased. Issue in NanoXML Back in 2008, a version of NanoXML v2.2.4 is “unofficial” released to add comment feature (Javalobby mirror). However, there is one problem that persists which prevent developers from [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geekycoder.wordpress.com&amp;blog=1079773&amp;post=4976&amp;subd=geekycoder&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<table border="1" cellspacing="0" cellpadding="2" width="400">
<tbody>
<tr>
<td valign="top" width="400">Important: This version is not the official release by the original author of NanoXML (<a title="http://nanoxml.cyberelf.be/" href="http://nanoxml.cyberelf.be/">http://nanoxml.cyberelf.be/</a>). It appears that the development for NanoXML has ceased.</td>
</tr>
</tbody>
</table>
<p><strong><u><font size="3">Issue in NanoXML</font></u></strong></p>
<p>Back in 2008, a version of <a href="http://geekycoder.wordpress.com/2008/07/07/using-the-enhanced-nanoxml-the-extremely-compact-java-xml-parser/">NanoXML v2.2.4 is “unofficial” released to add comment feature</a> (<a href="http://java.dzone.com/articles/using-enhanced-nanoxml-extreme">Javalobby mirror</a>). However, there is one problem that persists which prevent developers from using NanoXML to manipulate xml file. The developers might use xml file for to store profile for their application and will need to manage xml file (etc delete, rename, add). However, it turns out that NanoXML is locking the xml file while waiting for the Garbage Collector to kick in and release the file. However the GC is behaving unpredictably and might not release the file as and when the program expects it. The developers will thus want more control over the release of file resource. Unfortunately, there is currently no API to force release of file resource under current release.</p>
<p><strong><u></u></strong></p>
<p><strong><u><font size="3">NanoXML v2.2.5</font></u></strong></p>
<p>Therefore, I have modified NanoXML and released it as&#160; NanoXML v2.2.5 to allow developers to use a specific method to release file resource manually so that the file can be manipulated (etc delete, rename).</p>
<ul>
<li><em>public void close()</em>       <br />This will release all file resource that are held up by Reader. </li>
</ul>
<p>The aforementioned method will release the file resource that is created using the static method <strong><em>IXMLReader fileReader(String filename) </em></strong>in <strong>StdXMLReader</strong> class.</p>
<p><strong><u></u></strong></p>
<p><strong><u><font size="3">Example</font></u></strong></p>
<p><font size="2">public class XmlTest      <br />{ </font></p>
<p><font size="2">// ## means new features added. </font></p>
<p><font size="2">&#160;&#160;&#160; public static void main(String[] _args) throws Exception      <br />&#160;&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; IXMLParser parser = XMLParserFactory.createDefaultXMLParser(); </font></p>
<p><font size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; /*// If pass string, use stringReader      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; IXMLReader reader = StdXMLReader.stringReader(“&lt;root&gt;&lt;/root&gt;”);       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; */       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; // Pass by file. Important to use toURL method otherwise exception will be thrown.       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; IXMLReader reader = StdXMLReader.fileReader(       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; new File(“c:/test.xml”).toURI().getPath());       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; parser.setReader(reader); </font></p>
<p><font size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; // parse() method does not include comment      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; IXMLElement xml = (IXMLElement) parser.parse(true);&#160;&#160; // ## true means parse comment too </font></p>
<p><font size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; IXMLElement _x = xml.createElement(“newChild”);      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; _x.setComment(“This is new child”); // ## Adding comment       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; _x.setAttribute(“att1″, “me1″);       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; _x.setAttribute(“att2″, “me2″);       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; xml.addChild(_x, 0);&#160; // ## Adding at specific position. </font></p>
<p><font size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; IXMLElement _b = xml.getChildAtIndex(1);      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; xml.removeChild(_b);&#160; // Remove tag </font></p>
<p><font size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; XMLWriter writer = new XMLWriter(System.out);      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; // Default for write is excluded comment       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; writer.setIncludeComment(true); // ## Include comment at generation.       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; writer.write(xml, true);       <br /></font><strong><em></em></strong></p>
<p><font size="2"><strong><em>&#160;&#160;&#160;&#160;&#160;&#160;&#160; reader.close();</em></strong></font></p>
<p><font size="2">&#160;&#160;&#160; } </font></p>
<p><font size="2">}</font></p>
<p>&#160;</p>
<p><strong><u><font size="3">Download NanoXML v2.2.5</font></u></strong></p>
<p>The following file contains the full source code and the library jar file. To check on those changes that I have made, you can search for ‘<em><strong>GeekyCoder</strong></em>’ in the source code.</p>
<p><a href="http://www.mediafire.com/?znzirzxwzwc"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="image" border="0" alt="image" src="http://geekycoder.files.wordpress.com/2010/02/image8.png?w=107&#038;h=74" width="107" height="74" /></a>     <br /><a href="http://www.mediafire.com/?znzirzxwzwc">NanoXML-2.2.5.zip (93kb)</a></p>
<p>Released on 6 Feb 2010</p>
</p>
<hr />
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/geekycoder.wordpress.com/4976/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/geekycoder.wordpress.com/4976/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/geekycoder.wordpress.com/4976/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/geekycoder.wordpress.com/4976/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/geekycoder.wordpress.com/4976/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/geekycoder.wordpress.com/4976/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/geekycoder.wordpress.com/4976/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/geekycoder.wordpress.com/4976/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/geekycoder.wordpress.com/4976/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/geekycoder.wordpress.com/4976/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/geekycoder.wordpress.com/4976/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/geekycoder.wordpress.com/4976/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/geekycoder.wordpress.com/4976/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/geekycoder.wordpress.com/4976/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geekycoder.wordpress.com&amp;blog=1079773&amp;post=4976&amp;subd=geekycoder&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://geekycoder.wordpress.com/2010/01/31/new-release-of-nanoxml-v2-2-5-to-allow-manual-release-of-file-resource/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/791c9e65d32034f756f3c2a86e895ef3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">GreekyCoder</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/02/image8.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Experiment with Visual Zoom interface in FireFox</title>
		<link>http://geekycoder.wordpress.com/2010/01/14/experiment-with-visual-zoom-interface-in-firefox/</link>
		<comments>http://geekycoder.wordpress.com/2010/01/14/experiment-with-visual-zoom-interface-in-firefox/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 10:23:00 +0000</pubDate>
		<dc:creator>geekycoder</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://geekycoder.wordpress.com/2010/01/14/experiment-with-visual-zoom-interface-in-firefox/</guid>
		<description><![CDATA[Experimenting with “Office 2007” Zoom interface I have to admit that I like the Default FullZoom Level extension which significantly improve on the FireFox’s rudimentary Zoom feature. This extension not only put it in par with Opera’s highly acclaimed zoom feature, but it has a major advantage over the latter with the ability to add [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geekycoder.wordpress.com&amp;blog=1079773&amp;post=4966&amp;subd=geekycoder&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong><em><font size="2">Experimenting with “Office 2007” Zoom interface</font></em></strong></p>
<p><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://geekycoder.files.wordpress.com/2010/01/image26.png?w=254&#038;h=215" width="254" height="215" /> </p>
<p>I have to admit that I like the <a href="https://addons.mozilla.org/en-US/firefox/addon/6965">Default FullZoom Level</a> extension which significantly improve on the FireFox’s rudimentary Zoom feature. </p>
<p> <span id="more-4966"></span>
<p><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://geekycoder.files.wordpress.com/2010/01/image24.png?w=435&#038;h=367" width="435" height="367" /> </p>
<p>This extension not only put it in par with Opera’s highly acclaimed zoom feature, but it has a major advantage over the latter with the ability to add enhancement with the use of XUL programming. <a href="https://addons.mozilla.org/en-US/firefox/addon/6965">Default FullZoom Level</a> is just a extension with full source code that I can peek and experiment with. What I like to do is to add a attractive real-time zoom called Visual Zoom, which takes the inspiration from Office 2007’s zoom. So instead of selecting from the popup-menu, you can just zoom using the slider with screen update in real-time. I mock up how it looks like when it’s done. Ignore the inconsistent icons and colour of slider because those&#160; elements are captured from Office 2007.</p>
<p><strong><em><font size="1">Enhanced </font></em></strong><a href="https://addons.mozilla.org/en-US/firefox/addon/6965"><strong><em><font size="1">Default FullZoom Level</font></em></strong></a><strong><em><font size="1"> with Visual Zoom</font></em></strong><img style="display:inline;border-width:0;" title="image" border="0" alt="image" src="http://geekycoder.files.wordpress.com/2010/01/image25.png?w=510&#038;h=430" width="510" height="430" />&#160; </p>
</p>
<p>There are two buttons beside the slider, which is Fit To Window and Reset icons. There are two new items in Popup, [Options] and [Hide Visual Zoom]. It is situated on top rather than on last item since it is the least frequently used items compare to the zoom selection.</p>
<p>So anyone know if there is any zoom extension that already offer this slider zoom ?&#160; If not, this will make a very good excuse for me to learn XUL programming. In the meantime, let me see if other projects need important attention first …</p>
<p>And by the way, <a href="https://addons.mozilla.org/en-US/firefox/addon/6965">Default FullZoom Level</a> is written by a Japanese <a title="http://space.geocities.yahoo.co.jp/gl/alice0775" href="http://space.geocities.yahoo.co.jp/gl/alice0775">http://space.geocities.yahoo.co.jp/gl/alice0775</a>. Another good reason for me to visit Japan one day.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/geekycoder.wordpress.com/4966/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/geekycoder.wordpress.com/4966/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/geekycoder.wordpress.com/4966/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/geekycoder.wordpress.com/4966/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/geekycoder.wordpress.com/4966/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/geekycoder.wordpress.com/4966/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/geekycoder.wordpress.com/4966/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/geekycoder.wordpress.com/4966/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/geekycoder.wordpress.com/4966/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/geekycoder.wordpress.com/4966/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/geekycoder.wordpress.com/4966/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/geekycoder.wordpress.com/4966/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/geekycoder.wordpress.com/4966/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/geekycoder.wordpress.com/4966/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geekycoder.wordpress.com&amp;blog=1079773&amp;post=4966&amp;subd=geekycoder&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://geekycoder.wordpress.com/2010/01/14/experiment-with-visual-zoom-interface-in-firefox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/791c9e65d32034f756f3c2a86e895ef3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">GreekyCoder</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/01/image26.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/01/image24.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://geekycoder.files.wordpress.com/2010/01/image25.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
	</channel>
</rss>
