<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="/stevenyong/templates/default/atom.css" type="text/css" ?>

<feed 
   xmlns="http://www.w3.org/2005/Atom"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/">
    <link href="http://blogs.ngiap.com/stevenyong/feeds/atom.xml" rel="self" title="Steven Yong's Weblog" type="application/atom+xml" />
    <link href="http://blogs.ngiap.com/stevenyong/"                        rel="alternate"    title="Steven Yong's Weblog" type="text/html" />
    <link href="http://blogs.ngiap.com/stevenyong/rss.php?version=2.0"     rel="alternate"    title="Steven Yong's Weblog" type="application/rss+xml" />
    <title type="html">Steven Yong's Weblog</title>
    <subtitle type="html">not really ridiculous</subtitle>
    <icon>http://blogs.ngiap.com/stevenyong/templates/default/img/s9y_banner_small.png</icon>
    <id>http://blogs.ngiap.com/stevenyong/</id>
    <updated>2008-11-06T09:29:08Z</updated>
    <generator uri="http://www.s9y.org/" version="1.3.1">Serendipity 1.3.1 - http://www.s9y.org/</generator>
    <dc:language>en</dc:language>

    <entry>
        <link href="http://blogs.ngiap.com/stevenyong/archives/350-Modify-constant-data-in-C.html" rel="alternate" title="Modify constant data in C" />
        <author>
            <name>Steven Yong</name>
                    </author>
    
        <published>2008-11-07T15:59:00Z</published>
        <updated>2008-11-06T09:29:08Z</updated>
        <wfw:comment>http://blogs.ngiap.com/stevenyong/wfwcomment.php?cid=350</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blogs.ngiap.com/stevenyong/rss.php?version=atom1.0&amp;type=comments&amp;cid=350</wfw:commentRss>
    
            <category scheme="http://blogs.ngiap.com/stevenyong/categories/7-computer" label="computer" term="computer" />
    
        <id>http://blogs.ngiap.com/stevenyong/archives/350-guid.html</id>
        <title type="html">Modify constant data in C</title>
        <content type="xhtml" xml:base="http://blogs.ngiap.com/stevenyong/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                So <a href="http://blogs.ngiap.com/stevenyong/archives/56-final-doesnt-really-mean-final.html">lastime</a> I wrote about how to modify constant data using reflection in Java, now I'm going to try to modify constant data in C, using pointer.<br /><br />Consider code below:<pre>int i = 0;<br />const int ci = 0;<br />printf(&quot;ci initial value %d\n&quot;, ci); /&#42; print 0 &#42;/<br /><br />int&#42; pi = &amp;i; /&#42; a pointer to int &#42;/<br />const int&#42; pci = &amp;ci; /&#42; a pointer to const int &#42;/<br /><br />//ci = 1; /&#42; try to assign new value to const, compile error &#42;/<br />//&#42;pci = 1; /&#42; try to assign new value to const, compile error &#42;/<br /><br />pi = (int&#42;)pci; /&#42; cast pointer to const to pointer, success &#42;/<br />&#42;pi = 1; /&#42; no compile error, weird &#42;/<br /><br />printf(&quot;ci value %d\n&quot;, ci); /&#42; result? &#42;/</pre>What result? Answer is undefined and compiler-dependant. On GCC C compiler, constant data gets modified, but on Visual C++ compiler, constant value remains and no runtime error, that means the line <code>&#42;pi = 1</code> has no effect at all. 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blogs.ngiap.com/stevenyong/archives/349-Three-ways-to-assign-value-to-array-element-in-C.html" rel="alternate" title="Three ways to assign value to array element in C" />
        <author>
            <name>Steven Yong</name>
                    </author>
    
        <published>2008-11-05T15:59:00Z</published>
        <updated>2008-11-05T07:46:03Z</updated>
        <wfw:comment>http://blogs.ngiap.com/stevenyong/wfwcomment.php?cid=349</wfw:comment>
    
        <slash:comments>41</slash:comments>
        <wfw:commentRss>http://blogs.ngiap.com/stevenyong/rss.php?version=atom1.0&amp;type=comments&amp;cid=349</wfw:commentRss>
    
            <category scheme="http://blogs.ngiap.com/stevenyong/categories/7-computer" label="computer" term="computer" />
    
        <id>http://blogs.ngiap.com/stevenyong/archives/349-guid.html</id>
        <title type="html">Three ways to assign value to array element in C</title>
        <content type="xhtml" xml:base="http://blogs.ngiap.com/stevenyong/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <br />
There are at least 3 basic ways to assign value to array element in C.<br /><br />Say we have an integer array defined like this:<pre>int an_array[3] = {1,2,3};</pre>We can change the value of each element using following three ways (there might me more ways).<br /><br />1) Most common one, using array index.<pre>an_array[0] = 10;<br />an_array[1] = 20;<br />an_array[2] = 30;</pre>2) Using pointer, since array is implemented by pointer anyway.<pre>*an_array = 10;<br />*(an_array+1) = 20;<br />*(an_array+2) = 30;</pre>3) Using address casting, assuming integer type use 4 bytes on your machine. This method cast the pointer integer value to integer pointer and goes from there.<pre>int addr = an_array;<br />*(int*)addr = 10;<br />*(int*)(addr+4) = 20; (change to addr+8 if your int is 8 bytes long)<br />*(int*)(addr+8) = 30; (change to addr+16 if your int is 8 bytes long)</pre><br />
 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blogs.ngiap.com/stevenyong/archives/348-Checking-out-source-code-using-Mercurial-and-Git.html" rel="alternate" title="Checking out source code using Mercurial and Git" />
        <author>
            <name>Steven Yong</name>
                    </author>
    
        <published>2008-10-08T15:59:00Z</published>
        <updated>2008-10-08T06:14:21Z</updated>
        <wfw:comment>http://blogs.ngiap.com/stevenyong/wfwcomment.php?cid=348</wfw:comment>
    
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://blogs.ngiap.com/stevenyong/rss.php?version=atom1.0&amp;type=comments&amp;cid=348</wfw:commentRss>
    
            <category scheme="http://blogs.ngiap.com/stevenyong/categories/7-computer" label="computer" term="computer" />
    
        <id>http://blogs.ngiap.com/stevenyong/archives/348-guid.html</id>
        <title type="html">Checking out source code using Mercurial and Git</title>
        <content type="xhtml" xml:base="http://blogs.ngiap.com/stevenyong/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <br />
<a href="http://blogs.ngiap.com/stevenyong/archives/333-Checking-out-source-code-using-CVS-and-SVN-command.html">Lastime</a> I talked about the command for checking out source code with CVS and Subversion. Now I'd like write about the command of Mercurial and Git.<br /><br />Mercurial is a source code management system currently used by many famous open source projects like <a href="http://www.netbeans.org/community/sources/structure.html">NetBeans</a> and <a href="http://developer.mozilla.org/en/Mozilla_Source_Code_(Mercurial)">Firefox web browser</a>. To check out source codes from respository, follow this:<br /><br /><pre>hg clone &lt;repo url&gt; &lt;destination&gt;</pre><br />e.g.: <pre>hg clone http://hg.mozilla.org/mozilla-central/ src</pre><br /><br />While concept like check out and check in is famous for CVS, Subversion and SourceSafe, Mercurial and Git use different terms for similar concept, which are pull and push. Pull is retrieving bits from repository and push is putting back updates to the repository.<br /><br />To pull latest copy from server:<br /><pre>hg pull -u</pre><br /><br />Git, not as famous, but the software codes that managed by it can be considered as one of the leaders of open source, which is, Linux kernel (Ruby on Rails also one of them). This thing is first created by Linus Torvalds written purely in C, and it stands for Fast Version Control System.<br /><br />To check out code using git, do this:<br /><pre>git clone &lt;repo url&gt;</pre><br />e.g.: <pre>git clone git://git.videolan.org/vlc.git (<a href="http://wiki.videolan.org/Git">getting VLC Player source code</a>)</pre><br />And to get latest copy:<br /><pre>git pull --rebase</pre> 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blogs.ngiap.com/stevenyong/archives/347-Insert-drivers-into-Windows-XP-installation-CD.html" rel="alternate" title="Insert drivers into Windows XP installation CD" />
        <author>
            <name>Steven Yong</name>
                    </author>
    
        <published>2008-09-29T15:59:00Z</published>
        <updated>2008-09-29T15:59:00Z</updated>
        <wfw:comment>http://blogs.ngiap.com/stevenyong/wfwcomment.php?cid=347</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blogs.ngiap.com/stevenyong/rss.php?version=atom1.0&amp;type=comments&amp;cid=347</wfw:commentRss>
    
            <category scheme="http://blogs.ngiap.com/stevenyong/categories/4-non-computer" label="non-computer" term="non-computer" />
    
        <id>http://blogs.ngiap.com/stevenyong/archives/347-guid.html</id>
        <title type="html">Insert drivers into Windows XP installation CD</title>
        <content type="xhtml" xml:base="http://blogs.ngiap.com/stevenyong/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <br />
We might not able to use Windows XP setup CD to install Windows XP on some desktops/laptops that come with Windows Vista, due to the missing of hard disk controller drivers. Those drivers is for certain newer hard disks with some &quot;enhanced&quot; feature built-in. In order to be able to install Windows XP, you can go into BIOS and enable the native SATA control but this requires a little hard disk knowledge and it is a BIOS-dependant trick. Or you can <a href="http://www.howtogeek.com/howto/windows/resolving-setup-did-not-find-any-hard-disk-drives-during-windows-xp-installation/">follow this article</a> to modify your Windows XP installtion CD by inserting some drivers and reburn another one.<br />
 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blogs.ngiap.com/stevenyong/archives/346-.NET-Framework-3.0-not-equal-to-CLR-3.0.html" rel="alternate" title=".NET Framework 3.0 not equal to CLR 3.0" />
        <author>
            <name>Steven Yong</name>
                    </author>
    
        <published>2008-09-25T15:59:00Z</published>
        <updated>2008-09-25T15:59:00Z</updated>
        <wfw:comment>http://blogs.ngiap.com/stevenyong/wfwcomment.php?cid=346</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blogs.ngiap.com/stevenyong/rss.php?version=atom1.0&amp;type=comments&amp;cid=346</wfw:commentRss>
    
            <category scheme="http://blogs.ngiap.com/stevenyong/categories/7-computer" label="computer" term="computer" />
    
        <id>http://blogs.ngiap.com/stevenyong/archives/346-guid.html</id>
        <title type="html">.NET Framework 3.0 not equal to CLR 3.0</title>
        <content type="xhtml" xml:base="http://blogs.ngiap.com/stevenyong/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <br />
<a href="http://www.hanselman.com/blog/HowToSetAnIISApplicationOrAppPoolToUseASPNET35RatherThan20.aspx">This article</a> really clears my confusion on the .NET stuff. Now that I know even we are running a .NET application written with .NET Framework 3.5 (the latest as of today), underlying there is still the CLR in .NET Framework 2.0 which is actually running the app.<br /><br />In short, for .NET Framework version higher than 2.0, there are just some additional libraries being added, the runtime engine (CLR) is still the original version 2.0.<br />
 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blogs.ngiap.com/stevenyong/archives/345-Run-test-first.html" rel="alternate" title="Run test first" />
        <author>
            <name>Steven Yong</name>
                    </author>
    
        <published>2008-09-23T15:59:00Z</published>
        <updated>2008-09-23T15:59:00Z</updated>
        <wfw:comment>http://blogs.ngiap.com/stevenyong/wfwcomment.php?cid=345</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blogs.ngiap.com/stevenyong/rss.php?version=atom1.0&amp;type=comments&amp;cid=345</wfw:commentRss>
    
            <category scheme="http://blogs.ngiap.com/stevenyong/categories/7-computer" label="computer" term="computer" />
    
        <id>http://blogs.ngiap.com/stevenyong/archives/345-guid.html</id>
        <title type="html">Run test first</title>
        <content type="xhtml" xml:base="http://blogs.ngiap.com/stevenyong/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <br />
<a href="http://googletesting.blogspot.com/2008/09/test-first-is-fun_08.html">Philip Zembrod tells us</a> that how could we improve coding productivity by writing test first. Writing unit test does make sense for things like class interface (though I've never tried this apporach), but what about the testing for UI code and component integration?<br /><br />For functionality and integration test, I think running test first can also bring high value.<br /><br />Although we are not going to write test code for that, we still run tests based on our functional specification. Few months back when the software I'm doing wasn't even half completed, we've started testing the software. When we see a total missing feature, we file a bug, then the programmer in-charge would have to implement it. When we able to access a feature which we are not supposed to, we file a bug, then the programmer would have to add the security checking. If we still able to login to the system even we'd just suspended ourselves, we file a bug, then there will be another check added.<br /><br />Actually all these are stated very clear in the spec, but as you know, nobody read spec. But surprisingly, they do care about their number of bugs, thanks to the weekly meeting, which discusses about defects.<br /><br />Everything works fine, except that now the responsibilty of reading spec has been transferred to the poor testers.<br />
<br />
 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blogs.ngiap.com/stevenyong/archives/344-Music-album-in-a-flash-memory-card.html" rel="alternate" title="Music album in a flash memory card" />
        <author>
            <name>Steven Yong</name>
                    </author>
    
        <published>2008-09-22T15:59:00Z</published>
        <updated>2008-09-26T01:56:03Z</updated>
        <wfw:comment>http://blogs.ngiap.com/stevenyong/wfwcomment.php?cid=344</wfw:comment>
    
        <slash:comments>87</slash:comments>
        <wfw:commentRss>http://blogs.ngiap.com/stevenyong/rss.php?version=atom1.0&amp;type=comments&amp;cid=344</wfw:commentRss>
    
            <category scheme="http://blogs.ngiap.com/stevenyong/categories/4-non-computer" label="non-computer" term="non-computer" />
    
        <id>http://blogs.ngiap.com/stevenyong/archives/344-guid.html</id>
        <title type="html">Music album in a flash memory card</title>
        <content type="xhtml" xml:base="http://blogs.ngiap.com/stevenyong/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <br />
SanDisk <a href="http://news.cnet.com/8301-1023_3-10047311-93.html?part=rss&subj=news&tag=2547-1_3-0-5">announced the availability of new physical music format</a> called &quot;SlotMusic', with the support from the four major music labels: EMI Music, Sony BMG, Universal Music Group, and Warner Music Group. According to the news, you can insert this new MicroSD card into your phones or music players and immediately listen to the album. The MicroSD card can essentially store entire music album.<br />
 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blogs.ngiap.com/stevenyong/archives/343-2-interviews-to-share.html" rel="alternate" title="2 interviews to share" />
        <author>
            <name>Steven Yong</name>
                    </author>
    
        <published>2008-08-30T00:08:00Z</published>
        <updated>2008-08-31T14:39:45Z</updated>
        <wfw:comment>http://blogs.ngiap.com/stevenyong/wfwcomment.php?cid=343</wfw:comment>
    
        <slash:comments>2</slash:comments>
        <wfw:commentRss>http://blogs.ngiap.com/stevenyong/rss.php?version=atom1.0&amp;type=comments&amp;cid=343</wfw:commentRss>
    
            <category scheme="http://blogs.ngiap.com/stevenyong/categories/7-computer" label="computer" term="computer" />
    
        <id>http://blogs.ngiap.com/stevenyong/archives/343-guid.html</id>
        <title type="html">2 interviews to share</title>
        <content type="xhtml" xml:base="http://blogs.ngiap.com/stevenyong/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <br />
As always, sharing people interview is one of my interests, and two for today:<br /><br /><br />
First, <a href="http://java.sun.com/developer/technicalArticles/Interviews/community/pepperdine_qa.html">with Kirk Pepperdine</a>, primary contributor to <a href="http://www.javaperformancetuning.com/">javaperformancetuning.com</a>.<br /><br /><br />
Second, <a href="http://java.sun.com/developer/technicalArticles/Interviews/community/mahmoud_qa.html">with Qusay H. Mahmoud</a>, founding director of the Centre for Mobile Education Research at the University of Guelph in Canada.<blockquote>Don't be afraid of Java ME if you have no experience with it -- it's just Java with a very limited set of APIs</blockquote><br />
By the time you read this port, I'm most likely in Hong Kong having my rare vacation, see you when I back.<br />
 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blogs.ngiap.com/stevenyong/archives/342-The-risk-of-using-open-source.html" rel="alternate" title="The risk of using open source" />
        <author>
            <name>Steven Yong</name>
                    </author>
    
        <published>2008-08-27T00:08:00Z</published>
        <updated>2008-08-27T00:08:00Z</updated>
        <wfw:comment>http://blogs.ngiap.com/stevenyong/wfwcomment.php?cid=342</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blogs.ngiap.com/stevenyong/rss.php?version=atom1.0&amp;type=comments&amp;cid=342</wfw:commentRss>
    
            <category scheme="http://blogs.ngiap.com/stevenyong/categories/7-computer" label="computer" term="computer" />
    
        <id>http://blogs.ngiap.com/stevenyong/archives/342-guid.html</id>
        <title type="html">The risk of using open source</title>
        <content type="xhtml" xml:base="http://blogs.ngiap.com/stevenyong/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <br />
Kirill Grouchnikov, the author of several famous open source projects like Substance and Flamingo has decided to <a href="http://www.pushing-pixels.org/?p=429">discontinue the support for Substance Netbeans module</a>. <br />What does this actually mean to us as application developer?<br />Whenever we choose any open source software, make sure we know the possible lifespan of the thing.<br />Besides, he also shows us the conflict in open source world, even within the same platform, as the main reason he made the decision is the lack of support from the Netbeans core team.<br />
 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blogs.ngiap.com/stevenyong/archives/341-There-is-awards-for-blog-in-Singapore.html" rel="alternate" title="There is awards for blog in Singapore" />
        <author>
            <name>Steven Yong</name>
                    </author>
    
        <published>2008-07-01T15:59:00Z</published>
        <updated>2008-07-04T16:27:58Z</updated>
        <wfw:comment>http://blogs.ngiap.com/stevenyong/wfwcomment.php?cid=341</wfw:comment>
    
        <slash:comments>4</slash:comments>
        <wfw:commentRss>http://blogs.ngiap.com/stevenyong/rss.php?version=atom1.0&amp;type=comments&amp;cid=341</wfw:commentRss>
    
            <category scheme="http://blogs.ngiap.com/stevenyong/categories/4-non-computer" label="non-computer" term="non-computer" />
    
        <id>http://blogs.ngiap.com/stevenyong/archives/341-guid.html</id>
        <title type="html">There is awards for blog in Singapore</title>
        <content type="xhtml" xml:base="http://blogs.ngiap.com/stevenyong/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <br />
Got this piece of email this morning:<blockquote>I've tried very hard to make this sound not like a spam message. But it's quite hard. (I tried, though.) =P<br />Well, it's just a leeeetle spam. Please bear with me because this is important to me!<br /><br />I'm a finalist in the Omy S'pore Blog Awards and need your vote to win the award! The category I'm in is &quot;Most Entertaining Blog&quot;. I'm quite flattered, really. But all that aside, now I'm kinda obliged to solicit for votes, lol.<br />If you love me (or love my blog) or potentially do (or even if not), please vote for me because I work hard on my blog!<br /><br />My blog is at <a href="http://sheylara.com">http://sheylara.com</a> if you need to verify that I'm a real human being and not a spam bot. <img src="http://blogs.ngiap.com/stevenyong/templates/default/img/emoticons/wink.png" alt=";-)" style="display: inline; vertical-align: bottom;" class="emoticon" /></blockquote>And here is how to vote:<br /><br />1. Go to this link: http://sgblogawards.omy.sg/finalists/?blogCat=entertain<br />2. Click on the &quot;Vote Now&quot; button.<br />3. Enter your e-mail and type a password of your choice.<br />4. Click on my picture and vote! <br />
<br />
<br />
 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blogs.ngiap.com/stevenyong/archives/340-Installing-software-on-Windows-no-longer-easier.html" rel="alternate" title="Installing software on Windows no longer easier" />
        <author>
            <name>Steven Yong</name>
                    </author>
    
        <published>2008-06-23T15:59:00Z</published>
        <updated>2008-06-24T02:30:17Z</updated>
        <wfw:comment>http://blogs.ngiap.com/stevenyong/wfwcomment.php?cid=340</wfw:comment>
    
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://blogs.ngiap.com/stevenyong/rss.php?version=atom1.0&amp;type=comments&amp;cid=340</wfw:commentRss>
    
            <category scheme="http://blogs.ngiap.com/stevenyong/categories/7-computer" label="computer" term="computer" />
    
        <id>http://blogs.ngiap.com/stevenyong/archives/340-guid.html</id>
        <title type="html">Installing software on Windows no longer easier</title>
        <content type="xhtml" xml:base="http://blogs.ngiap.com/stevenyong/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <br />
Software installation has been the primary obstacle preventing novice users switching from Windows to Linux, until the central repository of software packages introduced in Linux world. Observe following scenario.<br /><br />Let say I want to install Zip, IM Client and Firefox on my PC, the steps comparison on Windows XP and Fedora Core 9 are as below:<br /><br />On Windows XP:<br />1) Go to www.zip.com, download zip.exe, double click on the downloaded exe, and click at least one &quot;Next&quot; button.<br />2) Go to www.im.com, download im.exe, double click on the downloaded exe, and click at least one &quot;Next&quot; button.<br />3) Go to www.firefox.com, download ff.exe, double click on the downloaded exe, and click at least one &quot;Next&quot; button.<br /><br />On Fedora Core 9<br />1) Open terminal, type <code>su root</code> followed by root password, type <code>yum -y install zip</code>.<br />2) In the same terminal, type <code>yum -y install im</code>.<br />3) In the same terminal, type <code>yum -y install firefox</code>.<br /><br />Some Windows fans might ask &quot;how am I supposed to know what &quot;yum&quot; command to type?&quot;, the answer is same as asking &quot;How would I know the URL of Zip download page?&quot;.<br /><br />When you need to know something, you will know.<br />
 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blogs.ngiap.com/stevenyong/archives/339-One-of-my-favorite-video-on-YouTube.html" rel="alternate" title="One of my favorite video on YouTube" />
        <author>
            <name>Steven Yong</name>
                    </author>
    
        <published>2008-06-14T15:59:00Z</published>
        <updated>2008-06-14T15:59:00Z</updated>
        <wfw:comment>http://blogs.ngiap.com/stevenyong/wfwcomment.php?cid=339</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blogs.ngiap.com/stevenyong/rss.php?version=atom1.0&amp;type=comments&amp;cid=339</wfw:commentRss>
    
            <category scheme="http://blogs.ngiap.com/stevenyong/categories/4-non-computer" label="non-computer" term="non-computer" />
    
        <id>http://blogs.ngiap.com/stevenyong/archives/339-guid.html</id>
        <title type="html">One of my favorite video on YouTube</title>
        <content type="xhtml" xml:base="http://blogs.ngiap.com/stevenyong/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <br />
It gets close to 2 million of views and is very much of an edutainment one. It would probably make those who only read <a href="http://blogs.ngiap.com/stevenyong/categories/4-non-computer">non-computer</a> start digging into <a href="http://blogs.ngiap.com/stevenyong/categories/7-computer">computer</a> ones.<br />
<blockquote><object width="425" height="344"><param value="http://www.youtube.com/v/qHO8l-Bd1O4&hl=en" name="movie" /><embed width="425" height="344" type="application/x-shockwave-flash" src="http://www.youtube.com/v/qHO8l-Bd1O4&hl=en" /></object></blockquote><br />
 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blogs.ngiap.com/stevenyong/archives/338-Unable-to-eject-USB-Storage-Device-on-Windows-XP.html" rel="alternate" title="Unable to eject USB Storage Device on Windows XP" />
        <author>
            <name>Steven Yong</name>
                    </author>
    
        <published>2008-06-10T15:59:00Z</published>
        <updated>2008-06-11T03:37:11Z</updated>
        <wfw:comment>http://blogs.ngiap.com/stevenyong/wfwcomment.php?cid=338</wfw:comment>
    
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://blogs.ngiap.com/stevenyong/rss.php?version=atom1.0&amp;type=comments&amp;cid=338</wfw:commentRss>
    
            <category scheme="http://blogs.ngiap.com/stevenyong/categories/7-computer" label="computer" term="computer" />
    
        <id>http://blogs.ngiap.com/stevenyong/archives/338-guid.html</id>
        <title type="html">Unable to eject USB Storage Device on Windows XP</title>
        <content type="xhtml" xml:base="http://blogs.ngiap.com/stevenyong/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <br />
Often you would see error message &quot;The device ‘Generic volume’ cannot be stopped right now. Try stopping the device again later&quot; when trying to do a safe removal of USB storage device, but you are pretty sure that no program is currently using it. That's because there are still open handles with certain files in the USB Storage Device are in use by some processes which cannot be seen at the built-in Windows Task Manager.<br /><br /><a href="http://support.microsoft.com/kb/555665">This Microsoft Support article</a> explains the cause and offers the solution that requires a separate free utility, <a href="http://www.microsoft.com/technet/sysinternals/security/processexplorer.mspx">Process Explorer</a>. 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blogs.ngiap.com/stevenyong/archives/337-The-Java-app-I-like-the-most,-so-far.html" rel="alternate" title="The Java app I like the most, so far" />
        <author>
            <name>Steven Yong</name>
                    </author>
    
        <published>2008-06-09T15:59:00Z</published>
        <updated>2008-06-12T07:29:24Z</updated>
        <wfw:comment>http://blogs.ngiap.com/stevenyong/wfwcomment.php?cid=337</wfw:comment>
    
        <slash:comments>2</slash:comments>
        <wfw:commentRss>http://blogs.ngiap.com/stevenyong/rss.php?version=atom1.0&amp;type=comments&amp;cid=337</wfw:commentRss>
    
            <category scheme="http://blogs.ngiap.com/stevenyong/categories/4-non-computer" label="non-computer" term="non-computer" />
    
        <id>http://blogs.ngiap.com/stevenyong/archives/337-guid.html</id>
        <title type="html">The Java app I like the most, so far</title>
        <content type="xhtml" xml:base="http://blogs.ngiap.com/stevenyong/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <br />
By looking at the title, those who know me might be tempted to think that it must be <a href="http://netbeans.org">NetBeans IDE</a>, of course not. NetBeans is just the tool that I use most to earn a living.<br /><br />It is <a href="http://azureus.sourceforge.net/">Azureus</a>.<br /><br />Azureus is a BitTorrent client, written in Java, and it is now called Vuze.<br /><br />Let's take a look at some screenshots.<br /><br />
<a title="azureus2 by woongiap, on Flickr" href="http://www.flickr.com/photos/woongiap/2558889696/"><img width="500" height="302" alt="azureus2" src="http://farm4.static.flickr.com/3188/2558889696_84095299b4.jpg" /></a><br />
<br /><br /><br />
<a title="azureus3 by woongiap, on Flickr" href="http://www.flickr.com/photos/woongiap/2558064565/"><img width="500" height="302" alt="azureus3" src="http://farm4.static.flickr.com/3005/2558064565_a1b9553de8.jpg" /></a><br />
<br /><br /><br />
<a title="azureus1 by woongiap, on Flickr" href="http://www.flickr.com/photos/woongiap/2558064357/"><img width="500" height="302" alt="azureus1" src="http://farm4.static.flickr.com/3166/2558064357_6dc59c4613.jpg" /></a><br />
<br /><br /><br />
The first reason that I like it so much: I don't feel it is written in Java. Secondly, it is really feature-rich. Other than the single core feature that it offers, which is downloading files, it also provides quite a number of nice features. For example, in the middle of downloading some large files, I find that there might not have sufficient disk space and I wanted to move the downloaded files to different disk. I can do that with just four clicks.<br /><br />
This app shows the essentials of a good software: easy to use, feature-rich, decent UI and efficient network and disk I/O operations.<br /><br />It will be in my top ten list even just talk about software I like in general. 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://blogs.ngiap.com/stevenyong/archives/336-JDBC-pointers.html" rel="alternate" title="JDBC pointers" />
        <author>
            <name>Steven Yong</name>
                    </author>
    
        <published>2008-06-08T15:59:00Z</published>
        <updated>2008-06-08T15:59:00Z</updated>
        <wfw:comment>http://blogs.ngiap.com/stevenyong/wfwcomment.php?cid=336</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blogs.ngiap.com/stevenyong/rss.php?version=atom1.0&amp;type=comments&amp;cid=336</wfw:commentRss>
    
            <category scheme="http://blogs.ngiap.com/stevenyong/categories/7-computer" label="computer" term="computer" />
    
        <id>http://blogs.ngiap.com/stevenyong/archives/336-guid.html</id>
        <title type="html">JDBC pointers</title>
        <content type="xhtml" xml:base="http://blogs.ngiap.com/stevenyong/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <br />
<a href="http://java.sun.com/j2se/1.5.0/docs/guide/jdbc/">JDBC</a> (Java Database Connectivity) is the core thing to learn in order to understand database connectivity in Java even though you are only using O/R mapping tool like most of us do. While O/R mapping tool might make us more productive and leave out the JDBC detail entirely, it is always good to get yourself familiar with JDBC, which the O/R mapping tools based on top of.<br /><br />Article <a href="http://www.javaworld.com/jw-07-2000/jw-0707-jdbc.html">JDBC drivers</a> in the wild over at JavaWorld gives us an insightful explanation of the details of JDBC drivers, and the article written by jeevan, named <a href="http://java.dzone.com/news/back-2-basics-jdbc-re-visited">JDBC Revisited</a> offers the basic concepts of drivers, connection, datasource, statement and resultset.<br /><br />Last but not least, keep the API (<a href="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/package-summary.html">java.sql</a> and <a href="http://java.sun.com/j2se/1.5.0/docs/api/javax/sql/package-summary.html">javax.sql</a>) with you.<p /> 
            </div>
        </content>
        
    </entry>

</feed>