<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Jimmy's Blog &#187; English</title>
	<atom:link href="http://jimmod.com/blog/category/english/feed/" rel="self" type="application/rss+xml" />
	<link>http://jimmod.com/blog</link>
	<description>My name is Jimmy, and this is my story... ;)</description>
	<lastBuildDate>Mon, 05 Jul 2010 06:59:56 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Solving (fixing) ubuntu 10.04 (lucid) screen flicker/distortion</title>
		<link>http://jimmod.com/blog/2010/06/solving-fixing-ubuntu-10-04-lucid-screen-flickerdistortion/</link>
		<comments>http://jimmod.com/blog/2010/06/solving-fixing-ubuntu-10-04-lucid-screen-flickerdistortion/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 04:18:18 +0000</pubDate>
		<dc:creator>jimmy</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[distortion]]></category>
		<category><![CDATA[fixing]]></category>
		<category><![CDATA[flicker]]></category>
		<category><![CDATA[lucid]]></category>
		<category><![CDATA[screen]]></category>
		<category><![CDATA[Solving]]></category>
		<category><![CDATA[ubuntu 10.04]]></category>

		<guid isPermaLink="false">http://jimmod.com/blog/?p=174</guid>
		<description><![CDATA[
I experiencing random screen distortion &#38; flicker after upgrading to Ubuntu 10.04, I&#8217;m using Acer Notebook.
After searching in internet, there&#8217;s many forum thread &#38; bug report discuss about this but mostly they have different hardware.
Finally I tried this method and no flickering so far.
What I do is I change my grub configuration, adding kernel parameter [...]


Related posts:<ol><li><a href='http://jimmod.com/blog/2009/06/solving-failed-starting-mysql-service-with-non-default-datadir-ubuntu/' rel='bookmark' title='Permanent Link: Solving failed starting mysql service with non default datadir (Ubuntu)'>Solving failed starting mysql service with non default datadir (Ubuntu)</a></li><li><a href='http://jimmod.com/blog/2010/03/updating-pidgin-to-latest-version-in-ubuntu/' rel='bookmark' title='Permanent Link: Updating Pidgin to latest version in Ubuntu'>Updating Pidgin to latest version in Ubuntu</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p><!-- 		@page { margin: 0.79in } 		P { margin-bottom: 0.08in } --></p>
<p style="margin-bottom: 0in;">I experiencing random screen distortion &amp; flicker after upgrading to Ubuntu 10.04, I&#8217;m using Acer Notebook.<br />
After searching in internet, there&#8217;s many forum thread &amp; bug report discuss about this but mostly they have different hardware.<br />
Finally I tried this method and no flickering so far.</p>
<p style="margin-bottom: 0in;">What I do is I change my grub configuration, adding kernel parameter “i915.powersave=0”.</p>
<p style="margin-bottom: 0in;">For Linux expert probably this is not an issue, so I dedicate this step for the newbies like <img src='http://jimmod.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<ol>
<li>What I do is I modify the grub configuration which is located on /boot/grub/grub.cfg (backup before you edit it)</li>
<li>Because the access right is set to read only, let&#8217;s change it so the owner can modify it.<br />
<em>&gt; sudo chmod -c u+w /boot/grub/grub.cfg</em></li>
<li>Use vi or your other prefered editor to edit it.<br />
&gt; sudo vim /boot/grub/grub.cfg</li>
<li>Locate the menuentry of your Linux. Example:<br />
<em>menuentry &#8216;Ubuntu, with Linux 2.6.32-22-generic&#8217; &#8211;class ubuntu &#8211;class gnu-linux &#8211;class gnu &#8211;class os {<br />
recordfail<br />
insmod ext2<br />
set root=&#8217;(hd0,4)&#8217;<br />
search &#8211;no-floppy &#8211;fs-uuid &#8211;set xxx-xxx-xxx</em><br />
<em><strong> linux	/vmlinuz-2.6.32-22-generic root=UUID=xx-xx-xxx-x-xx ro quiet splash</strong><br />
initrd	/initrd.img-2.6.32-22-generic<br />
}</em></li>
<li>Add “i915.powersave=0” to the linux kernel line as parameter. It will become:<br />
menuentry &#8216;Ubuntu, with Linux 2.6.32-22-generic&#8217; &#8211;class ubuntu &#8211;class gnu-linux &#8211;class gnu &#8211;class os {<br />
recordfail<br />
insmod ext2<br />
set root=&#8217;(hd0,4)&#8217;<br />
<em> search &#8211;no-floppy &#8211;fs-uuid &#8211;set xxx-xxx-xxx</em><br />
<em><strong>linux	/vmlinuz-2.6.32-22-generic root=UUID=xx-xx-xxx-x-xx ro </strong></em><strong>i915.powersave=0</strong><em><strong> quiet splash</strong></em><br />
initrd	/initrd.img-2.6.32-22-generic<br />
}</li>
<li>Save &amp; restart to check if you still experiencing screen flicker</li>
</ol>
<p>That&#8217;s it <img src='http://jimmod.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Hope it can work on other Notebook/PC</p>
<p style="margin-bottom: 0in;">


<p>Related posts:<ol><li><a href='http://jimmod.com/blog/2009/06/solving-failed-starting-mysql-service-with-non-default-datadir-ubuntu/' rel='bookmark' title='Permanent Link: Solving failed starting mysql service with non default datadir (Ubuntu)'>Solving failed starting mysql service with non default datadir (Ubuntu)</a></li><li><a href='http://jimmod.com/blog/2010/03/updating-pidgin-to-latest-version-in-ubuntu/' rel='bookmark' title='Permanent Link: Updating Pidgin to latest version in Ubuntu'>Updating Pidgin to latest version in Ubuntu</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://jimmod.com/blog/2010/06/solving-fixing-ubuntu-10-04-lucid-screen-flickerdistortion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Basic LWUIT tutorial/sample with Eclipse Pulsar</title>
		<link>http://jimmod.com/blog/2010/04/basic-lwuit-tutorial-with-eclipse-pulsar/</link>
		<comments>http://jimmod.com/blog/2010/04/basic-lwuit-tutorial-with-eclipse-pulsar/#comments</comments>
		<pubDate>Sat, 17 Apr 2010 17:31:41 +0000</pubDate>
		<dc:creator>jimmy</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[basic]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Form]]></category>
		<category><![CDATA[j2me]]></category>
		<category><![CDATA[java me]]></category>
		<category><![CDATA[label]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[LWUIT]]></category>
		<category><![CDATA[Pulsar]]></category>
		<category><![CDATA[sample]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[transition]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[ui framework]]></category>

		<guid isPermaLink="false">http://jimmod.com/blog/?p=158</guid>
		<description><![CDATA[I was really want to try LWUIT since several months ago. It&#8217;s look promising and it&#8217;s developed by SUN so I think every Java ME developer should take a look on this technology.
I&#8217;m also still new in LWUIT so there won&#8217;t be a lot that I can share for now, but at least I will [...]


Related posts:<ol><li><a href='http://jimmod.com/blog/2010/03/java-me-j2me-json-implementation-tutorialsample/' rel='bookmark' title='Permanent Link: Java ME (J2ME) JSON Implementation Tutorial/Sample'>Java ME (J2ME) JSON Implementation Tutorial/Sample</a></li><li><a href='http://jimmod.com/blog/2007/11/simple-log4j-implementation/' rel='bookmark' title='Permanent Link: Simple Log4J implementation'>Simple Log4J implementation</a></li><li><a href='http://jimmod.com/blog/2007/11/change-junit-run-file-main-class-working-directory-at-netbeans-55-web-project/' rel='bookmark' title='Permanent Link: Change junit &amp; run file (main class) working directory at Netbeans 5.5 Web Project'>Change junit &amp; run file (main class) working directory at Netbeans 5.5 Web Project</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>I was really want to try LWUIT since several months ago. It&#8217;s look promising and it&#8217;s developed by SUN so I think every Java ME developer should take a look on this technology.<br />
I&#8217;m also still new in LWUIT so there won&#8217;t be a lot that I can share for now, but at least I will show you a basic demonstration of how to use Form, Label, Command, and 3D Form transition (sound cool huh :p)</p>
<p><strong>REQUIREMENT</strong></p>
<p>What you need:</p>
<ol>
<li> <a href="https://lwuit.dev.java.net/">LWUIT</a></li>
<li><a href="http://www.eclipse.org/pulsar/">Eclipse Pulsa</a></li>
<li>Emulator like <a href="http://java.sun.com/products/sjwtoolkit/">Sun WTK </a></li>
<li>Know basic Java ME programming <img src='http://jimmod.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <span id="more-158"></span></li>
</ol>
<p><strong>CONFIGURE ECLIPSE</strong></p>
<p>First you need to setup your emulator in Eclipse.<br />
Run your Eclipse and select at the menu : Window &#8211; Preferences<br />
Select : Java ME &#8211; Device Management &#8211; click Import<br />
Then browse to your emulator folder, it will scan and give you option to add it to your device list.</p>
<div id="attachment_159" class="wp-caption aligncenter" style="width: 160px"><a href="http://jimmod.com/blog/wp-content/uploads/2010/04/Pulsar_WTK.jpg"><img class="size-thumbnail wp-image-159 " title="Eclipse Pulsar Device Management" src="http://jimmod.com/blog/wp-content/uploads/2010/04/Pulsar_WTK-150x150.jpg" alt="Eclipse Pulsar Device Management" width="150" height="150" /></a><p class="wp-caption-text">Eclipse Pulsar Device Management</p></div>
<p>*I found that the automatic javadoc folder detection for each jar library is not all correct (I&#8217;m using Ubuntu 9.04, WTK 2.5.1)</p>
<p><strong>CREATE NEW MIDlet PROJECT &amp; CONFIGURE</strong></p>
<p>Ok, now we ready to create the new project.<br />
I assume you already know how to use Eclipse properly, create a new MIDlet Project there you will select your default emulator you want to use in the project, MIDP &#8211; CLDC version, etc.<br />
After the new project created we gonna add the LWUIT library to the project.<br />
Right click on the project (at package explorer) and select Properties.<br />
Select &#8216;Java Build Path&#8217; and tab &#8216;Libraries&#8217; then click &#8216;Add External Jars&#8217; and browse to select where your LWUIT jar is. (It will be on the lib folder where you extract you LWUIT zip)</p>
<div id="attachment_160" class="wp-caption aligncenter" style="width: 160px"><a href="http://jimmod.com/blog/wp-content/uploads/2010/04/project_properties.jpg"><img class="size-thumbnail wp-image-160 " title="MIDlet Project Properties" src="http://jimmod.com/blog/wp-content/uploads/2010/04/project_properties-150x150.jpg" alt="MIDlet Project Properties" width="150" height="150" /></a><p class="wp-caption-text">MIDlet Project Properties</p></div>
<p>You will see the LWUIT.jar shown.<br />
Select tab &#8216;Order and Export&#8217;, check the LWUIT.jar library so it will be included in our application jar.</p>
<div id="attachment_161" class="wp-caption aligncenter" style="width: 160px"><a href="http://jimmod.com/blog/wp-content/uploads/2010/04/Properties-Order-and-Export.png"><img class="size-thumbnail wp-image-161 " title="Pulsa MIDlet project order and export" src="http://jimmod.com/blog/wp-content/uploads/2010/04/Properties-Order-and-Export-150x150.png" alt="Pulsa MIDlet project order and export" width="150" height="150" /></a><p class="wp-caption-text">Pulsa MIDlet project order and export</p></div>
<p>One of the cool thing about LWUIT is theme feature, you can see there&#8217;s ResourceEditor in LWUIT&#8217;s &#8216;util&#8217; folder it&#8217;s for editing theme.<br />
Let&#8217;s use default theme from the package. Copy file that located at ./LWUITDemo/src/LWUITtheme.res to our project &#8216;res&#8217;  folder (you can drag &#8216;n drop it to Eclipse).</p>
<p><strong>THE CODING</strong></p>
<p>Now we finally get to real coding.<br />
Add a new MIDlet to the project. In my example I will create BasicForm Class:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">gnu.jimmy.blog.lwuit</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.IOException</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.microedition.midlet.MIDlet</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.microedition.midlet.MIDletStateChangeException</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.sun.lwuit.Command</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.sun.lwuit.Display</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.sun.lwuit.Form</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.sun.lwuit.Label</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.sun.lwuit.animations.CommonTransitions</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.sun.lwuit.animations.Transition3D</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.sun.lwuit.events.ActionEvent</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.sun.lwuit.events.ActionListener</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.sun.lwuit.layouts.BorderLayout</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.sun.lwuit.layouts.BoxLayout</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.sun.lwuit.plaf.UIManager</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.sun.lwuit.util.Resources</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> BasicForm <span style="color: #000000; font-weight: bold;">extends</span> MIDlet <span style="color: #000000; font-weight: bold;">implements</span> <span style="color: #003399;">ActionListener</span> <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">private</span> Form form1<span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">private</span> Form form2<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">private</span> Command cmdRotate <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Command<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Rotate&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">private</span> Command cmdSlide <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Command<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Slide&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">private</span> Command cmdExit <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Command<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Exit&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> BasicForm<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">//Initialize the LWUIT</span>
		Display.<span style="color: #006633;">init</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #000066; font-weight: bold;">void</span> startApp<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> MIDletStateChangeException <span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">//Load the Theme</span>
		Resources r<span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
			r <span style="color: #339933;">=</span> Resources.<span style="color: #006633;">open</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/LWUITtheme.res&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #003399;">UIManager</span>.<span style="color: #006633;">getInstance</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.
			<span style="color: #006633;">setThemeProps</span><span style="color: #009900;">&#40;</span>r.<span style="color: #006633;">getTheme</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;LWUITDefault&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">IOException</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">//Setup Form 1</span>
		form1 <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Form<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Form 1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		form1.<span style="color: #006633;">setLayout</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">BorderLayout</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		form1.<span style="color: #006633;">addComponent</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">BorderLayout</span>.<span style="color: #006633;">NORTH</span>, <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Label</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;My First Form&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		form1.<span style="color: #006633;">addComponent</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">BorderLayout</span>.<span style="color: #006633;">WEST</span>, <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Label</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;WEST&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		form1.<span style="color: #006633;">addComponent</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">BorderLayout</span>.<span style="color: #006633;">CENTER</span>, <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Label</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;CENTER&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		form1.<span style="color: #006633;">addComponent</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">BorderLayout</span>.<span style="color: #006633;">EAST</span>, <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Label</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;EAST&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		form1.<span style="color: #006633;">addComponent</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">BorderLayout</span>.<span style="color: #006633;">SOUTH</span>, <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Label</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Click Rotate&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		form1.<span style="color: #006633;">addCommand</span><span style="color: #009900;">&#40;</span>cmdRotate<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		form1.<span style="color: #006633;">addCommand</span><span style="color: #009900;">&#40;</span>cmdExit<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		form1.<span style="color: #006633;">addCommandListener</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		form1.<span style="color: #006633;">setTransitionInAnimator</span><span style="color: #009900;">&#40;</span>CommonTransitions.<span style="color: #006633;">createSlide</span><span style="color: #009900;">&#40;</span>CommonTransitions.<span style="color: #006633;">SLIDE_HORIZONTAL</span>, <span style="color: #000066; font-weight: bold;">true</span>, <span style="color: #cc66cc;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">//Setup Form 2</span>
		form2 <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Form<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Form 2&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		form2.<span style="color: #006633;">setLayout</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">BoxLayout</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">BoxLayout</span>.<span style="color: #006633;">Y_AXIS</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		form2.<span style="color: #006633;">addComponent</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #000066; font-weight: bold;">null</span>,<span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Label</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;This is the second Form&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		form2.<span style="color: #006633;">addCommand</span><span style="color: #009900;">&#40;</span>cmdSlide<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		form2.<span style="color: #006633;">addCommand</span><span style="color: #009900;">&#40;</span>cmdExit<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		form2.<span style="color: #006633;">addCommandListener</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		form2.<span style="color: #006633;">setTransitionInAnimator</span><span style="color: #009900;">&#40;</span>Transition3D.<span style="color: #006633;">createCube</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1000</span>, <span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		form1.<span style="color: #006633;">show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> actionPerformed<span style="color: #009900;">&#40;</span><span style="color: #003399;">ActionEvent</span> evt<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">//check which command cliked</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>evt.<span style="color: #006633;">getCommand</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">==</span>cmdExit<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			notifyDestroyed<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>evt.<span style="color: #006633;">getCommand</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">==</span>cmdRotate<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			form2.<span style="color: #006633;">show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>evt.<span style="color: #006633;">getCommand</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">==</span>cmdSlide<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			form1.<span style="color: #006633;">show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #000066; font-weight: bold;">void</span> destroyApp<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">boolean</span> unconditional<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> MIDletStateChangeException <span style="color: #009900;">&#123;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #000066; font-weight: bold;">void</span> pauseApp<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Try to run the class.<br />
It should display a form and when you click the left softkey change to the second form with cube rotate effect.<br />
When you click the left softkey again it will go back to first form with slide effect.</p>
<div id="attachment_166" class="wp-caption aligncenter" style="width: 258px"><img class="size-full wp-image-166" title="LWUIT sample" src="http://jimmod.com/blog/wp-content/uploads/2010/04/sample.jpg" alt="LWUIT sample" width="248" height="327" /><p class="wp-caption-text">LWUIT sample</p></div>
<p><strong>NOTE</strong><br />
* all  UI classes are from package com.sun.lwuit don&#8217;t import the WTK default.<br />
* Display.init function (the one I put in constructor) needed to execute first before initializing Forms<br />
* Theme need to be load first before initializing Forms<br />
* Transition3D will require M3G, so if you want to test it on real phone make sure your phone support it. If not you can just change the Transition3D to CommonTransition.</p>
<p><strong>ENDING</strong></p>
<p>If you have prompt to follow the tutorial just drop me a comment here.</p>
<p>Cheers <img src='http://jimmod.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>


<p>Related posts:<ol><li><a href='http://jimmod.com/blog/2010/03/java-me-j2me-json-implementation-tutorialsample/' rel='bookmark' title='Permanent Link: Java ME (J2ME) JSON Implementation Tutorial/Sample'>Java ME (J2ME) JSON Implementation Tutorial/Sample</a></li><li><a href='http://jimmod.com/blog/2007/11/simple-log4j-implementation/' rel='bookmark' title='Permanent Link: Simple Log4J implementation'>Simple Log4J implementation</a></li><li><a href='http://jimmod.com/blog/2007/11/change-junit-run-file-main-class-working-directory-at-netbeans-55-web-project/' rel='bookmark' title='Permanent Link: Change junit &amp; run file (main class) working directory at Netbeans 5.5 Web Project'>Change junit &amp; run file (main class) working directory at Netbeans 5.5 Web Project</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://jimmod.com/blog/2010/04/basic-lwuit-tutorial-with-eclipse-pulsar/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Java ME (J2ME) JSON Implementation Tutorial/Sample</title>
		<link>http://jimmod.com/blog/2010/03/java-me-j2me-json-implementation-tutorialsample/</link>
		<comments>http://jimmod.com/blog/2010/03/java-me-j2me-json-implementation-tutorialsample/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 05:48:25 +0000</pubDate>
		<dc:creator>jimmy</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[convert]]></category>
		<category><![CDATA[implementation]]></category>
		<category><![CDATA[j2me]]></category>
		<category><![CDATA[java me]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[sample]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://jimmod.com/blog/?p=126</guid>
		<description><![CDATA[JSON is one of the most popular format used for communicating between (Java ME) J2ME client and App Server. Strangely it&#8217;s hard to find JSON implementation sample in J2ME. So I decide to write a sample.

The JSON library I used is from json.org : http://www.json.org/java/org.json.me.zip
Extract it to your source code folder.
For example we have this User [...]


Related posts:<ol><li><a href='http://jimmod.com/blog/2010/04/basic-lwuit-tutorial-with-eclipse-pulsar/' rel='bookmark' title='Permanent Link: Basic LWUIT tutorial/sample with Eclipse Pulsar'>Basic LWUIT tutorial/sample with Eclipse Pulsar</a></li><li><a href='http://jimmod.com/blog/2007/11/simple-log4j-implementation/' rel='bookmark' title='Permanent Link: Simple Log4J implementation'>Simple Log4J implementation</a></li><li><a href='http://jimmod.com/blog/2008/07/java-application-make-sure-only-singleone-instance-running-with-file-lock-ampampampampamp-shutdownhook/' rel='bookmark' title='Permanent Link: Java Application &#8211; Make sure only single/one instance running &#8211; with File Lock and ShutdownHook'>Java Application &#8211; Make sure only single/one instance running &#8211; with File Lock and ShutdownHook</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>JSON is one of the most popular format used for communicating between (Java ME) J2ME client and App Server. Strangely it&#8217;s hard to find JSON implementation sample in J2ME. So I decide to write a sample.</p>
<p><span id="more-126"></span></p>
<p>The JSON library I used is from json.org :<a href="http://www.json.org/java/org.json.me.zip"> http://www.json.org/java/org.json.me.zip<br />
</a>Extract it to your source code folder.</p>
<p>For example we have this User Class:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> User<span style="color: #009900;">&#123;</span>
   <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">int</span> id<span style="color: #339933;">;</span>
   <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #003399;">String</span> name<span style="color: #339933;">;</span>
   <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #003399;">String</span> description<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>To implement JSON to this class I usually create an Interface JSONAble:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">interface</span> JSONAble <span style="color: #009900;">&#123;</span>
<span style="color: #003399;">String</span> toJSON<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">void</span> fromJSON<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> jsonString<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>To make the User class is JSON compatible <img src='http://jimmod.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  let&#8217;s add the JSONAble interface &amp; implement it:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> User <span style="color: #000000; font-weight: bold;">implements</span> JSONAble<span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">int</span> id<span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #003399;">String</span> name<span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #003399;">String</span> description<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">int</span> getId<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">return</span> id<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> setId<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> id<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">id</span> <span style="color: #339933;">=</span> id<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">String</span> getName<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">return</span> name<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> setName<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> name<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">name</span> <span style="color: #339933;">=</span> name<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">String</span> getDescription<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">return</span> description<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> setDescription<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> description<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">description</span> <span style="color: #339933;">=</span> description<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">String</span> toString<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">return</span> getId<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #0000ff;">&quot;-&quot;</span><span style="color: #339933;">+</span>getName<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #0000ff;">&quot;-&quot;</span><span style="color: #339933;">+</span>getDescription<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> fromJSON<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> jsonString<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
			JSONObject json <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> JSONObject<span style="color: #009900;">&#40;</span>jsonString<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			setId<span style="color: #009900;">&#40;</span>json.<span style="color: #006633;">getInt</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;id&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			setName<span style="color: #009900;">&#40;</span>json.<span style="color: #006633;">getString</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;name&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			setDescription<span style="color: #009900;">&#40;</span>json.<span style="color: #006633;">getString</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;description&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span>JSONException ex<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			ex.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">String</span> toJSON<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		JSONObject inner <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> JSONObject<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
			inner.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;id&quot;</span>, getId<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			inner.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;name&quot;</span>, getName<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			inner.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;description&quot;</span>, getDescription<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span>JSONException ex<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			ex.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">return</span> inner.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>To test it let&#8217;s create a MIDlet that have these startApp() implementation:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">	<span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #000066; font-weight: bold;">void</span> startApp<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> MIDletStateChangeException <span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">//Converting Object to JSON</span>
		User user <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> User<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		user.<span style="color: #006633;">setId</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		user.<span style="color: #006633;">setName</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;jimmy&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		user.<span style="color: #006633;">setDescription</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;testing json in j2me&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Convert to JSON : &quot;</span><span style="color: #339933;">+</span>user.<span style="color: #006633;">toJSON</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">//Converting JSON to Object</span>
		<span style="color: #003399;">String</span> sample <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;{<span style="color: #000099; font-weight: bold;">\&quot;</span>id<span style="color: #000099; font-weight: bold;">\&quot;</span>:99,<span style="color: #000099; font-weight: bold;">\&quot;</span>name<span style="color: #000099; font-weight: bold;">\&quot;</span>:<span style="color: #000099; font-weight: bold;">\&quot;</span>tester<span style="color: #000099; font-weight: bold;">\&quot;</span>,<span style="color: #000099; font-weight: bold;">\&quot;</span>description<span style="color: #000099; font-weight: bold;">\&quot;</span>:<span style="color: #000099; font-weight: bold;">\&quot;</span>This is JSON Data<span style="color: #000099; font-weight: bold;">\&quot;</span>}&quot;</span><span style="color: #339933;">;</span>
		User user2 <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> User<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		user2.<span style="color: #006633;">fromJSON</span><span style="color: #009900;">&#40;</span>sample<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Convert from JSON : &quot;</span><span style="color: #339933;">+</span>user2<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span></pre></div></div>

<p>As you can see the output results:<br />
<code>Convert to JSON : {"name":"jimmy","description":"testing json in j2me","id":10}<br />
Convert from JSON : 99-tester-This is JSON Data</code></p>
<p>The toJSON() function is the implementation how the object converted to JSON format. In J2ME we still implement it manually since we don&#8217;t have Java reflection which can enable automatically scan the variables.<br />
What the JSON library help is building the JSON data. We just need to put the variables.</p>
<p>On the fromJSON() function what it does is getting out the data from JSON format and set it to class variables.</p>
<p>Next I will cover about converting more complex class structure.<br />
Or create a fromJSON () &amp; toJSON() generator (:?). Let see..</p>
<p>Thanks for reading this, although this is the basic hope it&#8217;ll help <img src='http://jimmod.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>


<p>Related posts:<ol><li><a href='http://jimmod.com/blog/2010/04/basic-lwuit-tutorial-with-eclipse-pulsar/' rel='bookmark' title='Permanent Link: Basic LWUIT tutorial/sample with Eclipse Pulsar'>Basic LWUIT tutorial/sample with Eclipse Pulsar</a></li><li><a href='http://jimmod.com/blog/2007/11/simple-log4j-implementation/' rel='bookmark' title='Permanent Link: Simple Log4J implementation'>Simple Log4J implementation</a></li><li><a href='http://jimmod.com/blog/2008/07/java-application-make-sure-only-singleone-instance-running-with-file-lock-ampampampampamp-shutdownhook/' rel='bookmark' title='Permanent Link: Java Application &#8211; Make sure only single/one instance running &#8211; with File Lock and ShutdownHook'>Java Application &#8211; Make sure only single/one instance running &#8211; with File Lock and ShutdownHook</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://jimmod.com/blog/2010/03/java-me-j2me-json-implementation-tutorialsample/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Blackberry sending delivered notification email</title>
		<link>http://jimmod.com/blog/2009/06/blackberry-sending-delivered-notification-email/</link>
		<comments>http://jimmod.com/blog/2009/06/blackberry-sending-delivered-notification-email/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 15:27:40 +0000</pubDate>
		<dc:creator>jimmy</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[My Life]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[automatic]]></category>
		<category><![CDATA[blackberry]]></category>
		<category><![CDATA[delivered]]></category>
		<category><![CDATA[notification]]></category>
		<category><![CDATA[read]]></category>

		<guid isPermaLink="false">http://jimmod.com/blog/?p=99</guid>
		<description><![CDATA[I just realize that when sending to blackberry device when the email received on blackberry and the sender request delivered notification, it will automatically send delivered notification back to the sender.
And there&#8217;s no option to disable this.
Maybe it&#8217;s like a &#8216;feature&#8217;, but in my opinion it&#8217;s suck to cannot select whether we want to sent [...]


Related posts:<ol><li><a href='http://jimmod.com/blog/2008/07/unknown-winmaildat-attachment-in-email/' rel='bookmark' title='Permanent Link: Unknown winmail.dat attachment in email'>Unknown winmail.dat attachment in email</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>I just realize that when sending to blackberry device<strong> when the email received on blackberry and the sender request delivered notification</strong>, it will automatically send delivered notification back to the sender.</p>
<p>And there&#8217;s no option to disable this.<br />
Maybe it&#8217;s like a &#8216;feature&#8217;, but in my opinion it&#8217;s suck to cannot select whether we want to sent this delivered notification or not.<br />
For spammer this could be good &#8216;feature&#8217; since they will know which email still actively receiving their spam.</p>
<p>In my blackberry curve there&#8217;s only option to disable &#8216;read notification&#8217;, which located at message &#8211; options &#8211; email settings.<br />
But <strong>read notification is not delivered notification</strong>, when I disable sending read notification still the blackberry sending delivered notification automatically.<br />
This is sucks, <strong>anyone know how to solve this issue</strong>?</p>


<p>Related posts:<ol><li><a href='http://jimmod.com/blog/2008/07/unknown-winmaildat-attachment-in-email/' rel='bookmark' title='Permanent Link: Unknown winmail.dat attachment in email'>Unknown winmail.dat attachment in email</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://jimmod.com/blog/2009/06/blackberry-sending-delivered-notification-email/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Solving Pidgin cannot connect to Yahoo Messenger (YM)</title>
		<link>http://jimmod.com/blog/2009/06/solving-pidgin-cannot-connect-ym/</link>
		<comments>http://jimmod.com/blog/2009/06/solving-pidgin-cannot-connect-ym/#comments</comments>
		<pubDate>Fri, 19 Jun 2009 20:08:20 +0000</pubDate>
		<dc:creator>jimmy</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[connect]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[domain]]></category>
		<category><![CDATA[ip]]></category>
		<category><![CDATA[messenger]]></category>
		<category><![CDATA[pidgin]]></category>
		<category><![CDATA[yahoo]]></category>
		<category><![CDATA[ym]]></category>

		<guid isPermaLink="false">http://jimmod.com/blog/?p=88</guid>
		<description><![CDATA[Starting June 18 I started having problem connecting to YM with Pidgin.
Somehow it&#8217;s random I can connect or not.
I google and several article/forum writing that need to flush dns  cache and also about several YM server cannot be accessed from Pidgin.
I try my friend advice to change YM server configuration to IP rather than [...]


Related posts:<ol><li><a href='http://jimmod.com/blog/2008/02/microsoft-yahoo/' rel='bookmark' title='Permanent Link: Microsoft + Yahoo = ?'>Microsoft + Yahoo = ?</a></li><li><a href='http://jimmod.com/blog/2010/03/updating-pidgin-to-latest-version-in-ubuntu/' rel='bookmark' title='Permanent Link: Updating Pidgin to latest version in Ubuntu'>Updating Pidgin to latest version in Ubuntu</a></li><li><a href='http://jimmod.com/blog/2009/06/solving-failed-starting-mysql-service-with-non-default-datadir-ubuntu/' rel='bookmark' title='Permanent Link: Solving failed starting mysql service with non default datadir (Ubuntu)'>Solving failed starting mysql service with non default datadir (Ubuntu)</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>Starting June 18 I started having problem connecting to YM with Pidgin.<br />
Somehow it&#8217;s random I can connect or not.</p>
<p>I google and several article/forum writing that need to flush dns  cache and also about several YM server cannot be accessed from Pidgin.</p>
<p><del datetime="2009-06-24T03:21:43+00:00">I try my friend advice to change YM server configuration to IP rather than domain name.<br />
And it&#8217;s worked..<br />
You will need to use cn.scs.msg.yahoo.com as Pager server since June 24, or you can update to pidgin 2.5.7 to solve this problem</del></p>
<p>Some people are reporting changing the Pager server didn&#8217;t solve the problem, you can follow these instruction to update your pidgin to latest version (for Ubuntu) : <a href="http://jimmod.com/blog/2010/03/updating-pidgin-to-latest-version-in-ubuntu/">Updating Pidgin to latest version in Ubuntu</a></p>
<p>The steps:<span id="more-88"></span> <strong>1. Select menu Accounts &#8211; Manage Accounts</strong><br />
<img src="http://img199.imageshack.us/img199/906/pidgin11.jpg" alt="Pidgin - manage accounts" /></p>
<p><strong>2. Select your Yahoo Messenger account &amp; click &#8216;modify&#8217;</strong></p>
<p><strong>3. Select advanced tab</strong></p>
<p><strong>4. Change your pager server to : cn.scs.msg.yahoo.com</strong><br />
<img src="http://img140.imageshack.us/img140/7526/screenshot1i.png" alt="Pidgin - YM configuration" /></p>
<p><strong>5. Then disabled &amp; enabled your account. Or restart the pidgin.</strong></p>
<p>And your Pidgin should able connect to YM</p>
<p><strong>*Update*</strong><br />
List IPs can be used (thanks to Med):<br />
<del datetime="2009-06-24T03:20:18+00:00">66.163.181.179 – 66.163.181.180 – 66.163.181.181 – 66.163.181.182 – 66.163.181.183 – 66.163.181.166 – 66.163.181.167 – 66.163.181.168 – 66.163.181.169</del></p>
<p>Starting June 24 using IP doesn&#8217;t seems to work anymore, try to use : <strong>cn.scs.msg.yahoo.com</strong></p>


<p>Related posts:<ol><li><a href='http://jimmod.com/blog/2008/02/microsoft-yahoo/' rel='bookmark' title='Permanent Link: Microsoft + Yahoo = ?'>Microsoft + Yahoo = ?</a></li><li><a href='http://jimmod.com/blog/2010/03/updating-pidgin-to-latest-version-in-ubuntu/' rel='bookmark' title='Permanent Link: Updating Pidgin to latest version in Ubuntu'>Updating Pidgin to latest version in Ubuntu</a></li><li><a href='http://jimmod.com/blog/2009/06/solving-failed-starting-mysql-service-with-non-default-datadir-ubuntu/' rel='bookmark' title='Permanent Link: Solving failed starting mysql service with non default datadir (Ubuntu)'>Solving failed starting mysql service with non default datadir (Ubuntu)</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://jimmod.com/blog/2009/06/solving-pidgin-cannot-connect-ym/feed/</wfw:commentRss>
		<slash:comments>64</slash:comments>
		</item>
		<item>
		<title>Solving failed starting mysql service with non default datadir (Ubuntu)</title>
		<link>http://jimmod.com/blog/2009/06/solving-failed-starting-mysql-service-with-non-default-datadir-ubuntu/</link>
		<comments>http://jimmod.com/blog/2009/06/solving-failed-starting-mysql-service-with-non-default-datadir-ubuntu/#comments</comments>
		<pubDate>Fri, 19 Jun 2009 11:06:17 +0000</pubDate>
		<dc:creator>jimmy</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[failed]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[service]]></category>
		<category><![CDATA[start]]></category>

		<guid isPermaLink="false">http://jimmod.com/blog/?p=86</guid>
		<description><![CDATA[I used to put my mysql data dir to /home/mysql, just to separated the partition so when something goes wrong or upgrading the OS I won&#8217;t lose my mysql data just because I forgot to backup it.
After I upgrade from Ubuntu 8.04 to Ubuntu 9.04 suddenly my mysql failed to start.
The strange thing the only [...]


Related posts:<ol><li><a href='http://jimmod.com/blog/2010/06/solving-fixing-ubuntu-10-04-lucid-screen-flickerdistortion/' rel='bookmark' title='Permanent Link: Solving (fixing) ubuntu 10.04 (lucid) screen flicker/distortion'>Solving (fixing) ubuntu 10.04 (lucid) screen flicker/distortion</a></li><li><a href='http://jimmod.com/blog/2009/06/solving-pidgin-cannot-connect-ym/' rel='bookmark' title='Permanent Link: Solving Pidgin cannot connect to Yahoo Messenger (YM)'>Solving Pidgin cannot connect to Yahoo Messenger (YM)</a></li><li><a href='http://jimmod.com/blog/2008/09/displaying-row-number-rownum-in-mysql/' rel='bookmark' title='Permanent Link: Displaying row number (rownum) in MySQL'>Displaying row number (rownum) in MySQL</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>I used to put my mysql data dir to /home/mysql, just to separated the partition so when something goes wrong or upgrading the OS I won&#8217;t lose my mysql data just because I forgot to backup it.</p>
<p>After I upgrade from Ubuntu 8.04 to Ubuntu 9.04 suddenly my mysql failed to start.<br />
The strange thing the only data dir seems working is putting it on /var/lib/mysql which is the default directory for mysql data dir.</p>
<p>After browsing around I found out that it is apparmor that prevent mysql datadir on different directory.</p>
<p>So the easy way to solve this is to remove apparmor : apt-get &#8211;purge remove apparmor</p>


<p>Related posts:<ol><li><a href='http://jimmod.com/blog/2010/06/solving-fixing-ubuntu-10-04-lucid-screen-flickerdistortion/' rel='bookmark' title='Permanent Link: Solving (fixing) ubuntu 10.04 (lucid) screen flicker/distortion'>Solving (fixing) ubuntu 10.04 (lucid) screen flicker/distortion</a></li><li><a href='http://jimmod.com/blog/2009/06/solving-pidgin-cannot-connect-ym/' rel='bookmark' title='Permanent Link: Solving Pidgin cannot connect to Yahoo Messenger (YM)'>Solving Pidgin cannot connect to Yahoo Messenger (YM)</a></li><li><a href='http://jimmod.com/blog/2008/09/displaying-row-number-rownum-in-mysql/' rel='bookmark' title='Permanent Link: Displaying row number (rownum) in MySQL'>Displaying row number (rownum) in MySQL</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://jimmod.com/blog/2009/06/solving-failed-starting-mysql-service-with-non-default-datadir-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unknown winmail.dat attachment in email</title>
		<link>http://jimmod.com/blog/2008/07/unknown-winmaildat-attachment-in-email/</link>
		<comments>http://jimmod.com/blog/2008/07/unknown-winmaildat-attachment-in-email/#comments</comments>
		<pubDate>Tue, 29 Jul 2008 04:59:27 +0000</pubDate>
		<dc:creator>jimmy</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Lookout]]></category>
		<category><![CDATA[ms-tnef]]></category>
		<category><![CDATA[outlook]]></category>
		<category><![CDATA[Thunderbird]]></category>
		<category><![CDATA[winmail.dat]]></category>
		<category><![CDATA[WMdecode]]></category>

		<guid isPermaLink="false">http://jimlife.wordpress.com/2008/07/29/unknown-winmaildat-attachment-in-email/</guid>
		<description><![CDATA[From my colleague I received an email but with unknown type : winmail.datHe should send me office document.I asked him to sent it again, he forwarded the email again but I still received winmail.dat in attachment.
After googling about this I found out that winmail.dat is generated by Outlook (I using thunderbird).From About.com :
It&#8217;s Outlook&#8217;s fault, [...]


Related posts:<ol><li><a href='http://jimmod.com/blog/2009/06/blackberry-sending-delivered-notification-email/' rel='bookmark' title='Permanent Link: Blackberry sending delivered notification email'>Blackberry sending delivered notification email</a></li><li><a href='http://jimmod.com/blog/2007/11/change-junit-run-file-main-class-working-directory-at-netbeans-55-web-project/' rel='bookmark' title='Permanent Link: Change junit &amp; run file (main class) working directory at Netbeans 5.5 Web Project'>Change junit &amp; run file (main class) working directory at Netbeans 5.5 Web Project</a></li><li><a href='http://jimmod.com/blog/2008/02/microsoft-yahoo/' rel='bookmark' title='Permanent Link: Microsoft + Yahoo = ?'>Microsoft + Yahoo = ?</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>From my colleague I received an email but with unknown type : winmail.dat<br />He should send me office document.<br />I asked him to sent it again, he forwarded the email again but I still received winmail.dat in attachment.</p>
<p>After googling about this I found out that winmail.dat is generated by Outlook (I using thunderbird).<br />From <a href="http://email.about.com/od/outlooktips/qt/et121705.htm">About.com</a> :<br />
<blockquote>It&#8217;s Outlook&#8217;s fault, in a way. Or the recipient&#8217;s email client&#8217;s. If Outlook sends a message using the RTF format (which is not very common outside Outlook) for bold text and other text enhancements, it includes the formatting commands in the winmail.dat file. Receiving email clients that do not understand the code therein display it as a stale attachment. To make matters worse, Outlook may also pack other, regular file attachments in the winmail.dat file.</p>
<p>Fortunately, you can get rid of winmail.dat altogether by making sure Outlook does not even try to send mail using RTF. </p></blockquote>
<p>And there&#8217;s also a way to disable this feature on Outlook. You can open it for more detail.<br />I would focus on how non-Outlook user can handle this format.<br />I know I can not ask all Outlook user who sent me attachment to turn off this feature.</p>
<p>So I search a program to open this content type &#8220;application/ms-tnef&#8221;.<br />I encounter this good console program : <a href="http://www.biblet.freeserve.co.uk/">WMdecode</a><br />You just need to extract this. When running the program it&#8217;ll search winmail.dat in current folder and extract it.<br />The program working great although it just console application, no GUI.</p>
<p>Other tool I search is add on for Thunderbird.<br />I found : <a href="https://addons.mozilla.org/en-US/thunderbird/addon/4433">LookOut</a> <br />This add on will automatically decode the winmail.dat<br />Also working great but it won&#8217;t decode winmail.dat in emails that you received before installing the add-on.<br />So I think it&#8217;ll only decode winmail.dat on new email received.</p>
<p>Cheers <img src='http://jimmod.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>


<p>Related posts:<ol><li><a href='http://jimmod.com/blog/2009/06/blackberry-sending-delivered-notification-email/' rel='bookmark' title='Permanent Link: Blackberry sending delivered notification email'>Blackberry sending delivered notification email</a></li><li><a href='http://jimmod.com/blog/2007/11/change-junit-run-file-main-class-working-directory-at-netbeans-55-web-project/' rel='bookmark' title='Permanent Link: Change junit &amp; run file (main class) working directory at Netbeans 5.5 Web Project'>Change junit &amp; run file (main class) working directory at Netbeans 5.5 Web Project</a></li><li><a href='http://jimmod.com/blog/2008/02/microsoft-yahoo/' rel='bookmark' title='Permanent Link: Microsoft + Yahoo = ?'>Microsoft + Yahoo = ?</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://jimmod.com/blog/2008/07/unknown-winmaildat-attachment-in-email/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Java Application &#8211; Make sure only single/one instance running &#8211; with File Lock and ShutdownHook</title>
		<link>http://jimmod.com/blog/2008/07/java-application-make-sure-only-singleone-instance-running-with-file-lock-ampampampampamp-shutdownhook/</link>
		<comments>http://jimmod.com/blog/2008/07/java-application-make-sure-only-singleone-instance-running-with-file-lock-ampampampampamp-shutdownhook/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 09:51:14 +0000</pubDate>
		<dc:creator>jimmy</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[file lock]]></category>
		<category><![CDATA[instance]]></category>
		<category><![CDATA[lock]]></category>
		<category><![CDATA[one]]></category>
		<category><![CDATA[shutdownhook]]></category>
		<category><![CDATA[single]]></category>

		<guid isPermaLink="false">http://jimlife.wordpress.com/2008/07/21/java-application-make-sure-only-singleone-instance-running-with-file-lock-shutdownhook/</guid>
		<description><![CDATA[Often we want to make sure that only 1 instance our application running.
Because something terrible could happen when more than 1 instance running (for example the whole server would exploded and that would make you fired   )
Nevertheless what the reason, one of the way to make this happen is by creating a lock [...]


Related posts:<ol><li><a href='http://jimmod.com/blog/2007/11/simple-log4j-implementation/' rel='bookmark' title='Permanent Link: Simple Log4J implementation'>Simple Log4J implementation</a></li><li><a href='http://jimmod.com/blog/2010/03/java-me-j2me-json-implementation-tutorialsample/' rel='bookmark' title='Permanent Link: Java ME (J2ME) JSON Implementation Tutorial/Sample'>Java ME (J2ME) JSON Implementation Tutorial/Sample</a></li><li><a href='http://jimmod.com/blog/2007/12/java-adding-new-classpath-at-runtime/' rel='bookmark' title='Permanent Link: Java &#8211; Adding new Classpath at Runtime'>Java &#8211; Adding new Classpath at Runtime</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>Often we want to make sure that only 1 instance our application running.<br />
Because something terrible could happen when more than 1 instance running (for example the whole server would exploded and that would make you fired <img src='http://jimmod.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  )</p>
<p>Nevertheless what the reason, one of the way to make this happen is by creating a lock file as a sign that an instance is currently running.<br />
So you application will have this flow:<span id="more-60"></span></p>
<ol>
<li>Check if the lock file exists.</li>
<li>Try to delete the lock file to check if there&#8217;s really a running process lock the file.</li>
<li>Get the file lock.</li>
<li>If failed to get the lock file, show error that there&#8217;s already an instance running</li>
<li>If successfully get the lock then go on with your application want to do.</li>
<li>When application ended/closed release the lock and delete the file lock.</li>
</ol>
<p><em> </em></p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">test.jimmy.filelock</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.File</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.IOException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.RandomAccessFile</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.nio.channels.FileChannel</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.nio.channels.FileLock</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> MyApp <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #003399;">File</span> f<span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">static</span> FileChannel channel<span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">static</span> FileLock lock<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> args<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
    f <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">File</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;RingOnRequest.lock&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #666666; font-style: italic;">// Check if the lock exist</span>
    <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>f.<span style="color: #006633;">exists</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #666666; font-style: italic;">// if exist try to delete it</span>
    f.<span style="color: #006633;">delete</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #666666; font-style: italic;">// Try to get the lock</span>
  channel <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">RandomAccessFile</span><span style="color: #009900;">&#40;</span>f, <span style="color: #0000ff;">&quot;rw&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getChannel</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  lock <span style="color: #339933;">=</span> channel.<span style="color: #006633;">tryLock</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>lock <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
    <span style="color: #666666; font-style: italic;">// File is lock by other application</span>
    channel.<span style="color: #006633;">close</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">throw</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">RuntimeException</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Only 1 instance of MyApp can run.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #666666; font-style: italic;">// Add shutdown hook to release lock when application shutdown</span>
  ShutdownHook shutdownHook <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> ShutdownHook<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #003399;">Runtime</span>.<span style="color: #006633;">getRuntime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">addShutdownHook</span><span style="color: #009900;">&#40;</span>shutdownHook<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #666666; font-style: italic;">//Your application tasks here..</span>
  <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Running&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #003399;">Thread</span>.<span style="color: #006633;">sleep</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">10000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">InterruptedException</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">IOException</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">throw</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">RuntimeException</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Could not start process.&quot;</span>, e<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> unlockFile<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #666666; font-style: italic;">// release and delete file lock</span>
  <span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>lock <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
    lock.<span style="color: #006633;">release</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    channel.<span style="color: #006633;">close</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    f.<span style="color: #006633;">delete</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">IOException</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">class</span> ShutdownHook <span style="color: #000000; font-weight: bold;">extends</span> <span style="color: #003399;">Thread</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> run<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    unlockFile<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Technorati Tags: <a class="performancingtags" rel="tag" href="http://technorati.com/tag/java">java</a>, <a class="performancingtags" rel="tag" href="http://technorati.com/tag/file%20lock">file lock</a>, <a class="performancingtags" rel="tag" href="http://technorati.com/tag/shutdownhook">shutdownhook</a>, <a class="performancingtags" rel="tag" href="http://technorati.com/tag/lock">lock</a>, <a class="performancingtags" rel="tag" href="http://technorati.com/tag/single">single</a>, <a class="performancingtags" rel="tag" href="http://technorati.com/tag/one">one</a>, <a class="performancingtags" rel="tag" href="http://technorati.com/tag/intance">intance</a></p>


<p>Related posts:<ol><li><a href='http://jimmod.com/blog/2007/11/simple-log4j-implementation/' rel='bookmark' title='Permanent Link: Simple Log4J implementation'>Simple Log4J implementation</a></li><li><a href='http://jimmod.com/blog/2010/03/java-me-j2me-json-implementation-tutorialsample/' rel='bookmark' title='Permanent Link: Java ME (J2ME) JSON Implementation Tutorial/Sample'>Java ME (J2ME) JSON Implementation Tutorial/Sample</a></li><li><a href='http://jimmod.com/blog/2007/12/java-adding-new-classpath-at-runtime/' rel='bookmark' title='Permanent Link: Java &#8211; Adding new Classpath at Runtime'>Java &#8211; Adding new Classpath at Runtime</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://jimmod.com/blog/2008/07/java-application-make-sure-only-singleone-instance-running-with-file-lock-ampampampampamp-shutdownhook/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Microsoft + Yahoo = ?</title>
		<link>http://jimmod.com/blog/2008/02/microsoft-yahoo/</link>
		<comments>http://jimmod.com/blog/2008/02/microsoft-yahoo/#comments</comments>
		<pubDate>Tue, 05 Feb 2008 04:53:44 +0000</pubDate>
		<dc:creator>jimmy</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://jimlife.wordpress.com/?p=37</guid>
		<description><![CDATA[Microsoft planning to buy Yahoo for $44.6 billion. Until now Yahoo hasn&#8217;t give final answer it.
I&#8217;m wondering why do Microsoft want to buy Yahoo, is it for fighting Google?
Or Microsoft just want to kill one of his  rival.
Let&#8217;s see
IM : Microsoft has Windows Live Messenger, Yahoo has Yahoo Messenger.
Search Engine : Microsoft has Live Search, [...]


Related posts:<ol><li><a href='http://jimmod.com/blog/2007/12/netbeans-ide-6-final-released/' rel='bookmark' title='Permanent Link: NetBeans IDE 6 final released'>NetBeans IDE 6 final released</a></li><li><a href='http://jimmod.com/blog/2008/07/unknown-winmaildat-attachment-in-email/' rel='bookmark' title='Permanent Link: Unknown winmail.dat attachment in email'>Unknown winmail.dat attachment in email</a></li><li><a href='http://jimmod.com/blog/2009/06/solving-pidgin-cannot-connect-ym/' rel='bookmark' title='Permanent Link: Solving Pidgin cannot connect to Yahoo Messenger (YM)'>Solving Pidgin cannot connect to Yahoo Messenger (YM)</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>Microsoft planning to buy Yahoo for $44.6 billion. Until now Yahoo hasn&#8217;t give final answer it.<br />
I&#8217;m wondering why do Microsoft want to buy Yahoo, is it for fighting Google?<br />
Or Microsoft just want to kill one of his  rival.</p>
<p>Let&#8217;s see<br />
IM : Microsoft has Windows Live Messenger, Yahoo has Yahoo Messenger.<br />
Search Engine : Microsoft has Live Search, Yahoo has it&#8217;s own search engine.<br />
Email : Microsoft has Windows Live Hotmail, Yahoo has Yahoo Mail.</p>
<p>Let&#8217;s wait for Yahoo&#8217;s final answer.<br />
And how will Google respond about this <img src='http://jimmod.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>


<p>Related posts:<ol><li><a href='http://jimmod.com/blog/2007/12/netbeans-ide-6-final-released/' rel='bookmark' title='Permanent Link: NetBeans IDE 6 final released'>NetBeans IDE 6 final released</a></li><li><a href='http://jimmod.com/blog/2008/07/unknown-winmaildat-attachment-in-email/' rel='bookmark' title='Permanent Link: Unknown winmail.dat attachment in email'>Unknown winmail.dat attachment in email</a></li><li><a href='http://jimmod.com/blog/2009/06/solving-pidgin-cannot-connect-ym/' rel='bookmark' title='Permanent Link: Solving Pidgin cannot connect to Yahoo Messenger (YM)'>Solving Pidgin cannot connect to Yahoo Messenger (YM)</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://jimmod.com/blog/2008/02/microsoft-yahoo/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>NetBeans 6 T-shirt</title>
		<link>http://jimmod.com/blog/2007/12/netbeans-6-t-shirt/</link>
		<comments>http://jimmod.com/blog/2007/12/netbeans-6-t-shirt/#comments</comments>
		<pubDate>Fri, 28 Dec 2007 11:08:37 +0000</pubDate>
		<dc:creator>jimmy</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[My Life]]></category>
		<category><![CDATA[cool]]></category>
		<category><![CDATA[james branam]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[t-shirt]]></category>

		<guid isPermaLink="false">http://jimlife.wordpress.com/2007/12/28/netbeans-6-t-shirt/</guid>
		<description><![CDATA[
After waiting for 16 days finally the NetBeans T-shirt arrived.
They sent me this t-shirt because my participation in NetBeans Community Docs program although I only contribute 1 article (this) :p
Thanks to Sun and James Branam (NetBeans Community Docs Manager) for this cool t-shirt 
It&#8217;s a great pleasure to be part of the NetBeans community &#38; [...]


Related posts:<ol><li><a href='http://jimmod.com/blog/2007/12/netbeans-ide-6-final-released/' rel='bookmark' title='Permanent Link: NetBeans IDE 6 final released'>NetBeans IDE 6 final released</a></li><li><a href='http://jimmod.com/blog/2007/11/netbeans-6-configure-which-editor-representative-class-for-new-type-extension/' rel='bookmark' title='Permanent Link: Netbeans 6 &#8211; Configure which editor (representative class) for new type extension'>Netbeans 6 &#8211; Configure which editor (representative class) for new type extension</a></li><li><a href='http://jimmod.com/blog/2007/11/using-svnssh-with-netbeans-55-windows/' rel='bookmark' title='Permanent Link: Using svn+ssh with Netbeans 5.5 + Windows'>Using svn+ssh with Netbeans 5.5 + Windows</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://jimlife.files.wordpress.com/2007/12/netbeans_front.jpg" title="NetBeans 6 T-shirt (front)"><img src="http://jimlife.files.wordpress.com/2007/12/netbeans_front.jpg" alt="NetBeans 6 T-shirt (front)" /></a><a href="http://jimlife.files.wordpress.com/2007/12/netbeans_back.jpg" title="NetBeans 6 T-shirt (back)"><img src="http://jimlife.files.wordpress.com/2007/12/netbeans_back.jpg" alt="NetBeans 6 T-shirt (back)" /></a></p>
<p>After waiting for 16 days finally the NetBeans T-shirt arrived.<br />
They sent me this t-shirt because my participation in <a href="http://wiki.netbeans.info/wiki/view/CommunityDocs">NetBeans Community Docs</a> program although I only contribute 1 article (<a href="http://wiki.netbeans.org/wiki/view/ConfigEditor">this</a>) :p</p>
<p>Thanks to Sun and <a href="http://blogs.sun.com/branajam/">James Branam</a> (<font color="#000000">NetBeans Community Docs Manager</font>) for this cool t-shirt <img src='http://jimmod.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
It&#8217;s a great pleasure to be part of the NetBeans community &amp; I would love to contribute more.</p>


<p>Related posts:<ol><li><a href='http://jimmod.com/blog/2007/12/netbeans-ide-6-final-released/' rel='bookmark' title='Permanent Link: NetBeans IDE 6 final released'>NetBeans IDE 6 final released</a></li><li><a href='http://jimmod.com/blog/2007/11/netbeans-6-configure-which-editor-representative-class-for-new-type-extension/' rel='bookmark' title='Permanent Link: Netbeans 6 &#8211; Configure which editor (representative class) for new type extension'>Netbeans 6 &#8211; Configure which editor (representative class) for new type extension</a></li><li><a href='http://jimmod.com/blog/2007/11/using-svnssh-with-netbeans-55-windows/' rel='bookmark' title='Permanent Link: Using svn+ssh with Netbeans 5.5 + Windows'>Using svn+ssh with Netbeans 5.5 + Windows</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://jimmod.com/blog/2007/12/netbeans-6-t-shirt/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
