<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>satukubik</title>
	
	<link>http://satukubik.com</link>
	<description>My great explanation of my life</description>
	<pubDate>Tue, 06 Jan 2009 09:06:49 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/satukubik" type="application/rss+xml" /><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.</feedburner:browserFriendly><item>
		<title>Java Tips: Memory Optimization for String</title>
		<link>http://feeds.feedburner.com/~r/satukubik/~3/504146919/</link>
		<comments>http://satukubik.com/2009/01/06/java-tips-memory-optimization-for-string/#comments</comments>
		<pubDate>Tue, 06 Jan 2009 09:06:49 +0000</pubDate>
		<dc:creator>Nanda Firdausi</dc:creator>
		
		<category><![CDATA[java]]></category>

		<category><![CDATA[programming]]></category>

		<category><![CDATA[intern]]></category>

		<category><![CDATA[String]]></category>

		<guid isPermaLink="false">http://satukubik.com/?p=149</guid>
		<description><![CDATA[String is a unique object in Java. The Java Specification explains several unique properties of String in Java. We might already know some of them. First, String is unique because it can be created without new keyword.

String s = &#34;new String&#34;;

I have to mention that you can still create String object using new keyword, like [...]]]></description>
			<content:encoded><![CDATA[<p>String is a unique object in Java. The Java Specification explains several unique properties of String in Java. We might already know some of them. First, String is unique because it can be created without <code>new</code> keyword.</p>

<div class="wp_syntax"><div class="code"><pre class="java java" style="font-family:monospace;"><span style="color: #003399;">String</span> s <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;new String&quot;</span>;</pre></div></div>

<p>I have to mention that you can still create String object using <code>new</code> keyword, like this:</p>

<div class="wp_syntax"><div class="code"><pre class="java java" style="font-family:monospace;"><span style="color: #003399;">String</span> s <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">String</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;new String&quot;</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>Does both statement &#8220;exactly equals&#8221;? Well, most of you also know that this is not true. The first example will try to reuse the same object whenever possible (and is correct because String is immutable) while the second will force the creation of new String object. Consider this example:</p>

<div class="wp_syntax"><div class="code"><pre class="java java" style="font-family:monospace;"><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;b&quot;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">&quot;b&quot;</span><span style="color: #009900;">&#41;</span>;</pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="java java" style="font-family:monospace;"><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: #000000; font-weight: bold;">new</span> <span style="color: #003399;">String</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;b&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">String</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;b&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>The result of first example is &#8220;true&#8221; while the second one will give &#8220;false&#8221;.</p>
<p>I almost certain that experienced programmer will never create String using new in normal use. But sometime, we are forced to use that. One case that I can think of is when you parse an XML file using SAX parser.</p>

<div class="wp_syntax"><div class="code"><pre class="java java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> <span style="color: #003399;">Reader</span> <span style="color: #000000; font-weight: bold;">extends</span> DefaultHandler <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> List<span style="color: #339933;">&lt;</span>String<span style="color: #339933;">&gt;</span> listString <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> ArrayList<span style="color: #339933;">&lt;</span>String<span style="color: #339933;">&gt;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> characters<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">char</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> ch, <span style="color: #000066; font-weight: bold;">int</span> start, <span style="color: #000066; font-weight: bold;">int</span> length<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> SAXException <span style="color: #009900;">&#123;</span>
&nbsp;
        <span style="color: #003399;">String</span> content <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">String</span><span style="color: #009900;">&#40;</span>ch, start, length<span style="color: #009900;">&#41;</span>;
        listString.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>content<span style="color: #009900;">&#41;</span>;
&nbsp;
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>This example works correctly but is not efficient. Once you have a document like this:</p>

<div class="wp_syntax"><div class="code"><pre class="xml xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;test<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>String<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>String<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>String<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>String<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>String<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>String<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>String<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>String<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>String<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>String<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/string<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/test<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Try to profile your application, force garbage collection and you will still have ten String objects left in the memory.</p>
<p>Fortunately, Java has provided a method to avoid such case. You can use <code>String.intern()</code> to force the application to use the same String object whenever possible. For above example, you can change the code to something like this:</p>

<div class="wp_syntax"><div class="code"><pre class="java java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> <span style="color: #003399;">Reader</span> <span style="color: #000000; font-weight: bold;">extends</span> DefaultHandler <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> List<span style="color: #339933;">&lt;</span>String<span style="color: #339933;">&gt;</span> listString <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> ArrayList<span style="color: #339933;">&lt;</span>String<span style="color: #339933;">&gt;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> characters<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">char</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> ch, <span style="color: #000066; font-weight: bold;">int</span> start, <span style="color: #000066; font-weight: bold;">int</span> length<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> SAXException <span style="color: #009900;">&#123;</span>
&nbsp;
        <span style="color: #003399;">String</span> content <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">String</span><span style="color: #009900;">&#40;</span>ch, start, length<span style="color: #009900;">&#41;</span>.<span style="color: #006633;">intern</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
        listString.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>content<span style="color: #009900;">&#41;</span>;
&nbsp;
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Now, re-profile the application, force garbage collection, and you will only have one String left in the memory. You can save a lot of memory if you can make sure that there is only one instance of String with certain value in your JVM.</p>
<p>This method also has nice side effect. If you do a lot of String equality comparison in the application, a same String object run faster. To explain this, we can read the source code of String:</p>

<div class="wp_syntax"><div class="code"><pre class="java java" style="font-family:monospace;">...
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> equals<span style="color: #009900;">&#40;</span><span style="color: #003399;">Object</span> anObject<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span> <span style="color: #339933;">==</span> anObject<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span>;
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>anObject <span style="color: #000000; font-weight: bold;">instanceof</span> <span style="color: #003399;">String</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #003399;">String</span> anotherString <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span><span style="color: #009900;">&#41;</span>anObject;
        <span style="color: #000066; font-weight: bold;">int</span> n <span style="color: #339933;">=</span> count;
        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>n <span style="color: #339933;">==</span> anotherString.<span style="color: #006633;">count</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000066; font-weight: bold;">char</span> v1<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> value;
            <span style="color: #000066; font-weight: bold;">char</span> v2<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> anotherString.<span style="color: #006633;">value</span>;
            <span style="color: #000066; font-weight: bold;">int</span> i <span style="color: #339933;">=</span> offset;
            <span style="color: #000066; font-weight: bold;">int</span> j <span style="color: #339933;">=</span> anotherString.<span style="color: #006633;">offset</span>;
            <span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span>n<span style="color: #339933;">--</span> <span style="color: #339933;">!=</span> 0<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>v1<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">!=</span> v2<span style="color: #009900;">&#91;</span>j<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>
                    <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">false</span>;
            <span style="color: #009900;">&#125;</span>
            <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span>;
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">false</span>;
<span style="color: #009900;">&#125;</span>
...</pre></div></div>

<p>If the object is same, then the method will be immediately after this line <code>if (this == anObject)</code>. This is very fast and will save a lot of process time if your application do this operations a lot of time.</p>

<p><a href="http://feeds.feedburner.com/~a/satukubik?a=4N3JLZ"><img src="http://feeds.feedburner.com/~a/satukubik?i=4N3JLZ" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/satukubik?a=9EaElE.P"><img src="http://feeds.feedburner.com/~f/satukubik?i=9EaElE.P" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/satukubik?a=hV5Jix.P"><img src="http://feeds.feedburner.com/~f/satukubik?i=hV5Jix.P" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/satukubik?a=yJNYZp.P"><img src="http://feeds.feedburner.com/~f/satukubik?i=yJNYZp.P" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/satukubik?a=BEOAsw.p"><img src="http://feeds.feedburner.com/~f/satukubik?i=BEOAsw.p" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/satukubik/~4/504146919" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://satukubik.com/2009/01/06/java-tips-memory-optimization-for-string/feed/</wfw:commentRss>
		<feedburner:origLink>http://satukubik.com/2009/01/06/java-tips-memory-optimization-for-string/</feedburner:origLink></item>
		<item>
		<title>Java Tips: More About Initializing Collection</title>
		<link>http://feeds.feedburner.com/~r/satukubik/~3/503216377/</link>
		<comments>http://satukubik.com/2009/01/05/java-tips-more-about-initializing-collection/#comments</comments>
		<pubDate>Mon, 05 Jan 2009 09:11:42 +0000</pubDate>
		<dc:creator>Nanda Firdausi</dc:creator>
		
		<category><![CDATA[java]]></category>

		<category><![CDATA[programming]]></category>

		<category><![CDATA[tips]]></category>

		<category><![CDATA[java collection]]></category>

		<guid isPermaLink="false">http://satukubik.com/?p=144</guid>
		<description><![CDATA[Some time ago I wrote an article about initializing collection in Java. I just found that Java actually provides several methods to help this task if you just want to create empty or singleton collection.
Look at this:

Collections.EMPTY_LIST
Collections.EMPTY_MAP
Collections.EMPTY_SET
Collections.singleton&#40;...&#41;
Collections.singletonList&#40;...&#41;
Collections.singletonMap&#40;..., ...&#41;

]]></description>
			<content:encoded><![CDATA[<p>Some time ago I wrote an article about <a href="http://satukubik.com/2007/12/19/java-tips-initializing-collection/">initializing collection in Java</a>. I just found that Java actually provides several methods to help this task if you just want to create empty or singleton collection.</p>
<p>Look at this:</p>

<div class="wp_syntax"><div class="code"><pre class="java java" style="font-family:monospace;"><span style="color: #003399;">Collections</span>.<span style="color: #006633;">EMPTY_LIST</span>
<span style="color: #003399;">Collections</span>.<span style="color: #006633;">EMPTY_MAP</span>
<span style="color: #003399;">Collections</span>.<span style="color: #006633;">EMPTY_SET</span>
<span style="color: #003399;">Collections</span>.<span style="color: #006633;">singleton</span><span style="color: #009900;">&#40;</span>...<span style="color: #009900;">&#41;</span>
<span style="color: #003399;">Collections</span>.<span style="color: #006633;">singletonList</span><span style="color: #009900;">&#40;</span>...<span style="color: #009900;">&#41;</span>
<span style="color: #003399;">Collections</span>.<span style="color: #006633;">singletonMap</span><span style="color: #009900;">&#40;</span>..., ...<span style="color: #009900;">&#41;</span></pre></div></div>


<p><a href="http://feeds.feedburner.com/~a/satukubik?a=ck3qJV"><img src="http://feeds.feedburner.com/~a/satukubik?i=ck3qJV" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/satukubik?a=rwLQLj.P"><img src="http://feeds.feedburner.com/~f/satukubik?i=rwLQLj.P" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/satukubik?a=JmJk5P.P"><img src="http://feeds.feedburner.com/~f/satukubik?i=JmJk5P.P" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/satukubik?a=Hnu79c.P"><img src="http://feeds.feedburner.com/~f/satukubik?i=Hnu79c.P" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/satukubik?a=QhDGya.p"><img src="http://feeds.feedburner.com/~f/satukubik?i=QhDGya.p" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/satukubik/~4/503216377" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://satukubik.com/2009/01/05/java-tips-more-about-initializing-collection/feed/</wfw:commentRss>
		<feedburner:origLink>http://satukubik.com/2009/01/05/java-tips-more-about-initializing-collection/</feedburner:origLink></item>
		<item>
		<title>Collections of old games</title>
		<link>http://feeds.feedburner.com/~r/satukubik/~3/495010865/</link>
		<comments>http://satukubik.com/2008/12/25/collections-of-old-games/#comments</comments>
		<pubDate>Thu, 25 Dec 2008 18:49:18 +0000</pubDate>
		<dc:creator>Nanda Firdausi</dc:creator>
		
		<category><![CDATA[funny]]></category>

		<category><![CDATA[classic]]></category>

		<category><![CDATA[game]]></category>

		<guid isPermaLink="false">http://satukubik.com/?p=129</guid>
		<description><![CDATA[Collections of my old games, when I still loved playing games :P. Today&#8217;s games are too boring for me, I don&#8217;t know why. Most of them are from my uncle, from my father&#8217;s friends, and from Jaya Plaza. This list is created without any order and I think there are still a lot that I [...]]]></description>
			<content:encoded><![CDATA[<p>Collections of my old games, when I still loved playing games :P. Today&#8217;s games are too boring for me, I don&#8217;t know why. Most of them are from my uncle, from my father&#8217;s friends, and from Jaya Plaza. This list is created without any order and I think there are still a lot that I forget, so if you have any suggestion, just tell me. Here we go:</p>
<ul>
<li><strong><a href="http://www.youtube.com/watch?v=RKn2PQGydYY">Digger</a></strong></li>
<li><strong><a href="http://www.youtube.com/watch?v=9MdYwTwYQxk&#038;feature=related">Alley Cat</a></strong></li>
<li><strong><a href="http://www.youtube.com/watch?v=un4VjYRiwe0&#038;feature=related">Prince of Persia</a></strong></li>
<li><strong><a href="http://www.youtube.com/watch?v=YtZqAlqV1h8">Sokoban</a></strong></li>
<li><strong><a href="http://www.youtube.com/watch?v=CnkWhGdCDfs">Frogger</a></strong></li>
<li><strong><a href="http://www.youtube.com/watch?v=SzEdnuNbu_E&#038;feature=channel_page">Golden Axe</a></strong></li>
<li><strong><a href="http://www.youtube.com/watch?v=n_XCI5tEOJ8">Space Invaders</a></strong></li>
<li><strong><a href="http://www.youtube.com/watch?v=oAirmGuepx8">Breakout</a></strong></li>
<li><strong>Rollo and the Brush Bros</strong></li>
<li><strong><a href="http://www.youtube.com/watch?v=v6IGgl7m4N8">Test Drive</a></strong></li>
<li><strong>Duck Tales</strong>: (<a href="http://www.youtube.com/watch?v=V6O7fBWEGP8">1</a>)  (<a href="http://www.youtube.com/watch?v=2Buw7KKV5h0&#038;feature=channel_page">2</a>): Nice story and many variations
</li>
<li><strong><a href="http://www.youtube.com/watch?v=4VdEr3Vuf8A">Double Dragon</a></strong></li>
<li><strong><a href="http://www.youtube.com/watch?v=lF89npFbn8g">Michael Jackson&#8217;s Moonwalker</a></strong></li>
<li><strong><a href="http://www.youtube.com/watch?v=DuDAj67gkX4">Harley Davidson: The Road to Sturgis</a></strong></li>
<li><strong><a href="http://www.dosgamesonline.com/index/game/565/Pitfall.html#">Pitfall</a></strong></li>
<li><strong><a href="http://www.dosgamesonline.com/index/game/505/Nibbles.html">Nibbles</a></strong></li>
<li><strong><a href="http://www.dosgamesonline.com/index/game/412/PC_Bert.html">PC Bert</a></strong></li>
<li><strong><a href="http://www.youtube.com/watch?v=GIeCIwEzGX0">Paperboy</a></strong></li>
<li><strong><a href="http://www.youtube.com/watch?v=196kP-Cyr_w">Theme Hospital</a></strong></li>
<li><strong><a href="http://www.youtube.com/watch?v=uGBLRMbDWgs">F-117A Stealth Fighter</a></strong></li>
<li><strong><a href="http://www.youtube.com/watch?v=BePpm61LQgo">Romance of the Three Kingdoms III: Dragon of Destiny</a></strong>: RTA IV went semi 3D and much-much complicated&#8230; I hate it</li>
<li><strong><a href="http://www.youtube.com/watch?v=F53yEUpcgmQ">Where in the USA is Carmen Sandiego?</a></strong>: I had to open map and encyclopedia to solve this game</li>
<li><strong><a href="http://www.youtube.com/watch?v=fn9nN5NxOK8">Sim City 2000</a></strong></li>
<li><strong><a href="http://www.youtube.com/watch?v=5q8eFqLp3iU">SimTower</a></strong></li>
</ul>

<p><a href="http://feeds.feedburner.com/~a/satukubik?a=tRV0MC"><img src="http://feeds.feedburner.com/~a/satukubik?i=tRV0MC" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/satukubik?a=MqjDO"><img src="http://feeds.feedburner.com/~f/satukubik?i=MqjDO" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/satukubik?a=TTYqO"><img src="http://feeds.feedburner.com/~f/satukubik?i=TTYqO" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/satukubik?a=Z0YwO"><img src="http://feeds.feedburner.com/~f/satukubik?i=Z0YwO" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/satukubik?a=VEqbo"><img src="http://feeds.feedburner.com/~f/satukubik?i=VEqbo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/satukubik/~4/495010865" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://satukubik.com/2008/12/25/collections-of-old-games/feed/</wfw:commentRss>
		<feedburner:origLink>http://satukubik.com/2008/12/25/collections-of-old-games/</feedburner:origLink></item>
		<item>
		<title>The Hidden Connection Between Windows and Google Chrome Logo</title>
		<link>http://feeds.feedburner.com/~r/satukubik/~3/437923497/</link>
		<comments>http://satukubik.com/2008/10/31/the-hidden-connection-between-windows-and-google-chrome-logo/#comments</comments>
		<pubDate>Fri, 31 Oct 2008 10:56:31 +0000</pubDate>
		<dc:creator>Nanda Firdausi</dc:creator>
		
		<category><![CDATA[funny]]></category>

		<category><![CDATA[google]]></category>

		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://satukubik.com/?p=123</guid>
		<description><![CDATA[
Google: (saw at Windows) Hmmmm&#8230;.
Google: I want to reform this&#8230;
Google: Tara&#8230;.. (Google Chrome)
From: Federico Fieni via Mohamed Amine Chatti
]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.onecomics.it/wp-content/onecomics.it_uploads/2008/09/google-sfida-microsoft-con-chrome-fieni.jpg" alt="Hmmm..." /></p>
<p>Google: (saw at Windows) Hmmmm&#8230;.<br />
Google: I want to reform this&#8230;<br />
Google: Tara&#8230;.. (Google Chrome)</p>
<p>From: <a href="http://www.onecomics.it/12/09/2008/google-sfida-microsoft-con-chrome/">Federico Fieni</a> via <a href="http://mohamedaminechatti.blogspot.com/2008/10/hidden-connection-between-windows-and.html">Mohamed Amine Chatti</a></p>

<p><a href="http://feeds.feedburner.com/~a/satukubik?a=E3Jx7T"><img src="http://feeds.feedburner.com/~a/satukubik?i=E3Jx7T" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/satukubik?a=xWjPM"><img src="http://feeds.feedburner.com/~f/satukubik?i=xWjPM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/satukubik?a=gH6hM"><img src="http://feeds.feedburner.com/~f/satukubik?i=gH6hM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/satukubik?a=3d0HM"><img src="http://feeds.feedburner.com/~f/satukubik?i=3d0HM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/satukubik?a=8IfHm"><img src="http://feeds.feedburner.com/~f/satukubik?i=8IfHm" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/satukubik/~4/437923497" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://satukubik.com/2008/10/31/the-hidden-connection-between-windows-and-google-chrome-logo/feed/</wfw:commentRss>
		<feedburner:origLink>http://satukubik.com/2008/10/31/the-hidden-connection-between-windows-and-google-chrome-logo/</feedburner:origLink></item>
		<item>
		<title>What is the smallest positive integer that Google doesn’t know?</title>
		<link>http://feeds.feedburner.com/~r/satukubik/~3/388169069/</link>
		<comments>http://satukubik.com/2008/09/09/what-is-the-smallest-positive-integer-that-google-doesnt-know/#comments</comments>
		<pubDate>Wed, 10 Sep 2008 01:05:06 +0000</pubDate>
		<dc:creator>Nanda Firdausi</dc:creator>
		
		<category><![CDATA[funny]]></category>

		<category><![CDATA[game crazy]]></category>

		<guid isPermaLink="false">http://satukubik.com/?p=117</guid>
		<description><![CDATA[This is surely the craziest game ever! Currently the record is one seven eight, nine nine nine, two six one.
http://forums.topcoder.com/?module=Thread&#038;threadID=623471&#038;start=0
]]></description>
			<content:encoded><![CDATA[<p>This is surely the craziest game ever! Currently the record is one seven eight, nine nine nine, two six one.</p>
<p><a href="http://forums.topcoder.com/?module=Thread&#038;threadID=623471&#038;start=0">http://forums.topcoder.com/?module=Thread&#038;threadID=623471&#038;start=0</a></p>

<p><a href="http://feeds.feedburner.com/~a/satukubik?a=qbUtqX"><img src="http://feeds.feedburner.com/~a/satukubik?i=qbUtqX" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/satukubik?a=4WgQL"><img src="http://feeds.feedburner.com/~f/satukubik?i=4WgQL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/satukubik?a=DMCoL"><img src="http://feeds.feedburner.com/~f/satukubik?i=DMCoL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/satukubik?a=UPSOL"><img src="http://feeds.feedburner.com/~f/satukubik?i=UPSOL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/satukubik?a=8njgl"><img src="http://feeds.feedburner.com/~f/satukubik?i=8njgl" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/satukubik/~4/388169069" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://satukubik.com/2008/09/09/what-is-the-smallest-positive-integer-that-google-doesnt-know/feed/</wfw:commentRss>
		<feedburner:origLink>http://satukubik.com/2008/09/09/what-is-the-smallest-positive-integer-that-google-doesnt-know/</feedburner:origLink></item>
		<item>
		<title>Blue Screen of Death in Beijing Olympics</title>
		<link>http://feeds.feedburner.com/~r/satukubik/~3/363758725/</link>
		<comments>http://satukubik.com/2008/08/13/blue-screen-of-death-in-beijing-olympics/#comments</comments>
		<pubDate>Wed, 13 Aug 2008 09:59:25 +0000</pubDate>
		<dc:creator>Nanda Firdausi</dc:creator>
		
		<category><![CDATA[funny]]></category>

		<category><![CDATA[technology]]></category>

		<category><![CDATA[olympics]]></category>

		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://satukubik.com/?p=115</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><img src="http://gizmodo.com/assets/images/gizmodo/2008/08/bsod_nest_main2.jpg" alt="" /></p>

<p><a href="http://feeds.feedburner.com/~a/satukubik?a=myobwP"><img src="http://feeds.feedburner.com/~a/satukubik?i=myobwP" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/satukubik?a=ggudO"><img src="http://feeds.feedburner.com/~f/satukubik?i=ggudO" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/satukubik?a=TFWzO"><img src="http://feeds.feedburner.com/~f/satukubik?i=TFWzO" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/satukubik?a=RafEO"><img src="http://feeds.feedburner.com/~f/satukubik?i=RafEO" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/satukubik?a=hSAzo"><img src="http://feeds.feedburner.com/~f/satukubik?i=hSAzo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/satukubik/~4/363758725" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://satukubik.com/2008/08/13/blue-screen-of-death-in-beijing-olympics/feed/</wfw:commentRss>
		<feedburner:origLink>http://satukubik.com/2008/08/13/blue-screen-of-death-in-beijing-olympics/</feedburner:origLink></item>
		<item>
		<title>Pocoyo</title>
		<link>http://feeds.feedburner.com/~r/satukubik/~3/352066433/</link>
		<comments>http://satukubik.com/2008/07/31/pocoyo/#comments</comments>
		<pubDate>Fri, 01 Aug 2008 00:00:51 +0000</pubDate>
		<dc:creator>Nanda Firdausi</dc:creator>
		
		<category><![CDATA[funny]]></category>

		<category><![CDATA[cartoon]]></category>

		<category><![CDATA[pocoyo]]></category>

		<guid isPermaLink="false">http://satukubik.com/?p=113</guid>
		<description><![CDATA[Hmmmppfff&#8230; after a long debugging and bug fixing, here I am 20 minutes to 2 AM. But that&#8217;s not what I want to write about.

I want to write about Pocoyo, a pretty new cartoon (well, not that new&#8230; The first release was in 2005) for pre-school kid. Pocoyo is a little boy and during the [...]]]></description>
			<content:encoded><![CDATA[<p>Hmmmppfff&#8230; after a long debugging and bug fixing, here I am 20 minutes to 2 AM. But that&#8217;s not what I want to write about.</p>
<p><img src="http://images.pureink.multiply.com/image/2/photos/upload/300x300/RI@cWgoKCqUAACa6Fxk1/pocoyo-734311.jpg?et=TUcyxUj6Sx5JRYRioC7DTg&#038;nmid=7498689" alt="" /></p>
<p>I want to write about <a href="http://en.wikipedia.org/wiki/Pocoyo">Pocoyo</a>, a pretty new cartoon (well, not that new&#8230; The first release was in 2005) for pre-school kid. Pocoyo is a little boy and during the cartoon show, he is accompanied by his friends, Pato (a duck), Ellie (an elephant), Lula (a dog) and Sleepy Bird (ehhh&#8230; a bird).</p>
<p>This cartoon is so hilarious and funny. Its focus is mainly about Pocoyo&#8217;s curiousness to the world around him. The cartoon teach some basic values in a very simple way, even simpler than Sesame Street or other child&#8217;s TV program.</p>
<p>So, if you have to take care a little kid, this show may be helpful for you. This video below is just one example. For more just go to <a href="http://www.youtube.com/results?search_query=pocoyo&#038;search_type=&#038;aq=f">Youtube</a>!</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/za4mta7vcIo&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/za4mta7vcIo&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object></p>

<p><a href="http://feeds.feedburner.com/~a/satukubik?a=zAWPch"><img src="http://feeds.feedburner.com/~a/satukubik?i=zAWPch" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/satukubik?a=3OXsO"><img src="http://feeds.feedburner.com/~f/satukubik?i=3OXsO" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/satukubik?a=Vdy9O"><img src="http://feeds.feedburner.com/~f/satukubik?i=Vdy9O" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/satukubik?a=U57XO"><img src="http://feeds.feedburner.com/~f/satukubik?i=U57XO" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/satukubik?a=hX2Ro"><img src="http://feeds.feedburner.com/~f/satukubik?i=hX2Ro" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/satukubik/~4/352066433" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://satukubik.com/2008/07/31/pocoyo/feed/</wfw:commentRss>
		<feedburner:origLink>http://satukubik.com/2008/07/31/pocoyo/</feedburner:origLink></item>
		<item>
		<title>Wordpress 2.6</title>
		<link>http://feeds.feedburner.com/~r/satukubik/~3/335928820/</link>
		<comments>http://satukubik.com/2008/07/15/wordpress-26/#comments</comments>
		<pubDate>Tue, 15 Jul 2008 09:42:19 +0000</pubDate>
		<dc:creator>Nanda Firdausi</dc:creator>
		
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://satukubik.com/?p=110</guid>
		<description><![CDATA[Want to know the new features of Wordpress 2.6. Here is a short video for that.
 
]]></description>
			<content:encoded><![CDATA[<p>Want to know the new features of Wordpress 2.6. Here is a short video for that.</p>
<p><embed src="http://v.wordpress.com/mARhRBcT/fmt_std" type="application/x-shockwave-flash" width="400" height="250" flashvars="blog_domain=http://wordpress.org/development/2008/07/wordpress-26/&#038;width=400&#038;height=250"> </embed></p>

<p><a href="http://feeds.feedburner.com/~a/satukubik?a=29MHvz"><img src="http://feeds.feedburner.com/~a/satukubik?i=29MHvz" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/satukubik?a=Qf0NO"><img src="http://feeds.feedburner.com/~f/satukubik?i=Qf0NO" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/satukubik?a=ZBWRO"><img src="http://feeds.feedburner.com/~f/satukubik?i=ZBWRO" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/satukubik?a=QckvO"><img src="http://feeds.feedburner.com/~f/satukubik?i=QckvO" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/satukubik?a=sywOo"><img src="http://feeds.feedburner.com/~f/satukubik?i=sywOo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/satukubik/~4/335928820" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://satukubik.com/2008/07/15/wordpress-26/feed/</wfw:commentRss>
		<feedburner:origLink>http://satukubik.com/2008/07/15/wordpress-26/</feedburner:origLink></item>
		<item>
		<title>Will Apple redefine portable game market?</title>
		<link>http://feeds.feedburner.com/~r/satukubik/~3/333868389/</link>
		<comments>http://satukubik.com/2008/07/12/will-apple-redefine-portable-game-market/#comments</comments>
		<pubDate>Sat, 12 Jul 2008 23:51:20 +0000</pubDate>
		<dc:creator>Nanda Firdausi</dc:creator>
		
		<category><![CDATA[business]]></category>

		<category><![CDATA[technology]]></category>

		<category><![CDATA[apple]]></category>

		<category><![CDATA[game]]></category>

		<category><![CDATA[iphone]]></category>

		<category><![CDATA[ipod touch]]></category>

		<guid isPermaLink="false">http://satukubik.com/?p=108</guid>
		<description><![CDATA[
The introduction of native application in iPhone and iPod touch made me wonder. With such revolutionary breakthrough in game controlling, will this device finally redefines portable game market?
In pre-iPhone era, portable game market is led by two big names, Sony PSP and Nintendo DS. Both have high resolution graphic display, but that is. There is [...]]]></description>
			<content:encoded><![CDATA[<p><a href='http://satukubik.com/wp-content/uploads/2008/07/iphonegame.png'><img src="http://satukubik.com/wp-content/uploads/2008/07/iphonegame-300x277.png" alt="iPhone games" title="iphonegame" width="300" height="277" class="alignnone size-medium wp-image-109" /></a></p>
<p>The introduction of native application in iPhone and iPod touch made me wonder. With such revolutionary breakthrough in game controlling, will this device finally redefines portable game market?</p>
<p>In pre-iPhone era, portable game market is led by two big names, <a href="http://en.wikipedia.org/wiki/PlayStation_Portable">Sony PSP</a> and <a href="http://en.wikipedia.org/wiki/Nintendo_DS">Nintendo DS</a>. Both have high resolution graphic display, but that is. There is no revolutionary improvement for their control. Players still use the same buttons used in old portable game consoles. Judging from that, even that the devices also have WiFi connection, we can safely say that both consoles are created merely for gaming.</p>
<p>iPhone and iPod touch came through different road path. Both devices are created not for gaming. They have superb audio visual capability but as we can see before, there is no game available for the devices. People used the device as mobile phone or as music/video player. </p>
<p>Together with the new iPhone SDK introduced by Apple several months ago, people saw the new prospect of the device. No less than 43 games are introduced in the first day of the AppStore. Their revolutionary touch control and tilt sensors are just perfect for portable game device. Depends on the game, the whole body of the device can act as steering wheel, as tilting table, as music instrument etc. </p>
<p>In my opinion, this will somehow redefine the portable game market in the future. The only advantage that PSP and DS have right now is the fact that the game industry is in their hand. They have more games and the device itself is already associated directly with game. </p>
<p>For Apple to catch them, it needs to introduce more games (and quality ones) to the devices. Sega with its <a href="http://www.tuaw.com/2008/07/12/first-look-super-monkey-ball/">Super Monkey Ball</a> is a great sign for the future of the device. But more games are needed before it can take significant portable game market.</p>
<p>So what do you think? Will Apple redefine portable game market?</p>

<p><a href="http://feeds.feedburner.com/~a/satukubik?a=IuTpQi"><img src="http://feeds.feedburner.com/~a/satukubik?i=IuTpQi" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/satukubik?a=wJPEO"><img src="http://feeds.feedburner.com/~f/satukubik?i=wJPEO" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/satukubik?a=VAS0O"><img src="http://feeds.feedburner.com/~f/satukubik?i=VAS0O" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/satukubik?a=08CHO"><img src="http://feeds.feedburner.com/~f/satukubik?i=08CHO" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/satukubik?a=uD7Qo"><img src="http://feeds.feedburner.com/~f/satukubik?i=uD7Qo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/satukubik/~4/333868389" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://satukubik.com/2008/07/12/will-apple-redefine-portable-game-market/feed/</wfw:commentRss>
		<feedburner:origLink>http://satukubik.com/2008/07/12/will-apple-redefine-portable-game-market/</feedburner:origLink></item>
		<item>
		<title>Time Breakdown of Modern Web Design</title>
		<link>http://feeds.feedburner.com/~r/satukubik/~3/318798184/</link>
		<comments>http://satukubik.com/2008/06/24/time-breakdown-of-modern-web-design/#comments</comments>
		<pubDate>Tue, 24 Jun 2008 10:42:55 +0000</pubDate>
		<dc:creator>Nanda Firdausi</dc:creator>
		
		<category><![CDATA[funny]]></category>

		<category><![CDATA[design]]></category>

		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://satukubik.com/?p=106</guid>
		<description><![CDATA[
From: http://tapestryjava.blogspot.com/2008/06/time-breakdown-of-modern-web-design.html
]]></description>
			<content:encoded><![CDATA[<p><img src="http://howardlewisship.com/images/webdesignbreakdown.jpg" width="400" /></p>
<p>From: http://tapestryjava.blogspot.com/2008/06/time-breakdown-of-modern-web-design.html</p>

<p><a href="http://feeds.feedburner.com/~a/satukubik?a=rY0AqT"><img src="http://feeds.feedburner.com/~a/satukubik?i=rY0AqT" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/satukubik?a=dRnKO"><img src="http://feeds.feedburner.com/~f/satukubik?i=dRnKO" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/satukubik?a=CP8FO"><img src="http://feeds.feedburner.com/~f/satukubik?i=CP8FO" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/satukubik?a=RNJTO"><img src="http://feeds.feedburner.com/~f/satukubik?i=RNJTO" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/satukubik?a=GKWwo"><img src="http://feeds.feedburner.com/~f/satukubik?i=GKWwo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/satukubik/~4/318798184" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://satukubik.com/2008/06/24/time-breakdown-of-modern-web-design/feed/</wfw:commentRss>
		<feedburner:origLink>http://satukubik.com/2008/06/24/time-breakdown-of-modern-web-design/</feedburner:origLink></item>
	</channel>
</rss>
