<?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>Kerry D. Wong &#187; Technology</title>
	<atom:link href="http://www.kerrywong.com/category/technology/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.kerrywong.com</link>
	<description></description>
	<lastBuildDate>Fri, 03 Sep 2010 00:51:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>My First Few Days With Bing</title>
		<link>http://www.kerrywong.com/2009/06/02/my-first-few-days-with-bing/</link>
		<comments>http://www.kerrywong.com/2009/06/02/my-first-few-days-with-bing/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 01:52:34 +0000</pubDate>
		<dc:creator>kwong</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Bing]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Search Engine]]></category>

		<guid isPermaLink="false">http://www.kerrywong.com/?p=1114</guid>
		<description><![CDATA[So Microsoft&#8217;s new search engine Bing has been available for the general public for a few days. While I have read about Bing here and there, I decided to do some comparison myself between Bing and Google. The Homepage Depending on who you ask, you either love Google&#8217;s minimalist search home page or prefer a [...]]]></description>
			<content:encoded><![CDATA[<p>So Microsoft&#8217;s new search engine <a href="http://www.bing.com">Bing</a> has been available for the general public for a few days. While I have read about Bing here and there, I decided to do some comparison myself between Bing and <a href="http://www.google.com">Google</a>.<span id="more-1114"></span></p>
<h3>The Homepage</h3>
<p>Depending on who you ask, you either love Google&#8217;s minimalist search home page or prefer a more colorful one like Bing. But we need to remember that the primary goal of a search engine is to perform search. Bing&#8217;s home page clearly followed Live&#8217;s footstep and as a result the main page is bloated. The home page for Bing comes at <strong>31 Kb</strong> while Google&#8217;s is just above <strong>4 Kb</strong>. (I used <em>wget</em> on both sites and compared the downloaded html, excluding images).</p>
<p>So Bing is at a disadvantage from the start. For the same data pipe size, Google can serve four times as many requests as Bing could. Put it another way: to achieve the same performance, Microsoft would need more resources to compete with Google.</p>
<h3>Search Experience</h3>
<p>On normal searches, Bing lives largely to the hype generated before its launch. It does a decent job in finding relevant results. Comparing the search results between Google and Bing on the same search terms, they are largely similar in terms of how they rank the pages.</p>
<p>Performance-wise, Bing holds up pretty well in general. But occasionally, you can experience a noticeable delay when returning results. Google on the other hand returns results uniformly fast.</p>
<p>Like its home page, the average size of Bing&#8217;s result pages is much larger than Google&#8217;s. Bing&#8217;s search result page (on search term &#8220;test&#8221;) is almost <strong>40 Kb</strong> in size while Google&#8217;s result page remains under <strong>5 Kb</strong>.</p>
<p>I often use searches on servers with a slow remote session and Bing would perform poorly compared with Google in such an environment (e.g. large page sizes).</p>
<h3>Bing Is No Google</h3>
<p>While for the most part Bing gets pretty good search results, I did find some rather poor results from certain search terms.</p>
<p>Try search the word <a href="http://www.bing.com/search?q=download">download</a> on Bing, here is the result you get:<br />
<a href="http://www.kerrywong.com/blog/wp-content/uploads/2009/06/bing_search.jpg"><img src="http://www.kerrywong.com/blog/wp-content/uploads/2009/06/bing_search.jpg" alt="Bing Search Result on &quot;Download&quot;" title="Bing Search Result on &quot;Download&quot;" width="600" height="477" class="size-full wp-image-1117" /></a><br />
I don&#8217;t know why the first couple of entries would be for Adobe Acrobat Readers. Google&#8217;s first entry points to CNet&#8217;s download site, which makes a lot more sense.</p>
<p>Now, try <a href="http://www.bing.com/search?q=c--">search &#8220;C&#8211;&#8221;</a> on Bing. C minus minus is no where to be found in the results. </p>
<p>If you wanted to find a little more about the <a href="http://www.bing.com/search?q=tasm">TASM</a> assembler, don&#8217;t count on it returning top on the list using Bing, even though the related searches contains related information.</p>
<p>The same thing goes for searching chemical compounds. Searching <a href="http://www.bing.com/search?q=nh3">NH3</a> doesn&#8217;t return you any information about ammonia from the main search results.</p>
<p>Last but not least, Bing lacks the versatility interpreting mathematical equations. To calculate 2 to the 100 power for instance, one could use either 2^100 or 2**100. But using Bing, you are limited to only the first form.</p>
<p>So, to me it is doubtful that Bing would be help Microsoft increase its share in search in any significant way at least not in the near future.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kerrywong.com/2009/06/02/my-first-few-days-with-bing/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>MS-DEBUG 1981 &#8211; 2009</title>
		<link>http://www.kerrywong.com/2009/05/08/ms-debug-1981-2009/</link>
		<comments>http://www.kerrywong.com/2009/05/08/ms-debug-1981-2009/#comments</comments>
		<pubDate>Fri, 08 May 2009 15:16:12 +0000</pubDate>
		<dc:creator>kwong</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Debug]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://www.kerrywong.com/?p=1047</guid>
		<description><![CDATA[Earlier this week (May 5) Microsoft Windows 7 Release Candidate was released to the general public and like many technology enthusiasts I downloaded a copy early in the morning hours on Tuesday, shortly after Microsoft made it available on its website. The RC build of Windows 7 (build 7100) has many tweaks over the previous [...]]]></description>
			<content:encoded><![CDATA[<p>Earlier this week (May 5) Microsoft Windows 7 Release Candidate was released to the general public and like many technology enthusiasts I downloaded a copy early in the morning hours on Tuesday, shortly after Microsoft made it available on its website.<span id="more-1047"></span></p>
<p>The RC build of Windows 7 (build 7100) has many tweaks over the previous beta build I have (build 7000) and I have not yet played with it long enough to come up with any meaningful conclusions. However, this is not the point of this article. As you might have noticed from the title of this article, I was not about to talk about my experience with Windows 7 (maybe I will write about it later). What I noticed the first thing in Windows 7 is that the <a href="http://en.wikipedia.org/wiki/DEBUG_(DOS_Command)">DEBUG</a> command is nowhere to be found.</p>
<p>I was just old enough to remember the very early days of DEBUG under <a href="http://en.wikipedia.org/wiki/MS-DOS">MS-DOS</a>. In fact, I was fascinated with such a small and yet powerful tool that came with every version of MS-DOS distribution. the DEBUG command was so powerful that you could do almost anything with your machine with sometimes just a few key strokes.</p>
<p>For a long time, I used DEBUG to learn x86 assembly language and to learn about disk (both floppy disks and harddrives) structures and file systems. And occasionally, I would use DEBUG to edit binary files.</p>
<p>I remembered that I could use commands like</p>
<blockquote><p>
-l 100 0 0 1<br />
-d
</p></blockquote>
<p>to load the boot sector from floppy A and inspect whether the boot sector was infected with any virus and if so, I would find a clean floppy disk and using DEBUG to write its boot sector to the disk that was infected.</p>
<p>And routinely, I would use the following commands to inspect the partition table of my harddrive to make sure that it was free from any infections:</p>
<blockquote><p>
mov ax, 0201<br />
mov bx, 1000<br />
mov cx, 0001<br />
mov dx, 0080<br />
int 13<br />
int 3<br />
-g 100<br />
-d 1000
</p></blockquote>
<p>Remember this one?</p>
<blockquote><p>
jmp ffff:0000
</p></blockquote>
<p>I remembered that someone at my high school used to play the pranks by changing the very first few bytes on floppy disks to EA:00:00:FF and placed the disks in computers in the lab so that whenever someone turned on the computer, it would enter an infinite reboot cycle.</p>
<p>And when <a href="http://en.wikipedia.org/wiki/CIH_virus">CIH</a> stroke in the late nineties, my friends and I would use DEBUG to inspect the virus&#8217;s code to see how the instructions could actually be used to cause real physical damage to the hardware.</p>
<p>After Windows came along, I still used DEBUG often. After all, deep inside Windows (up till Windows ME), there was MS-DOS and for years, user were allowed to operate in <a href="http://en.wikipedia.org/wiki/Real_mode">real mode</a> if they so inclined to. With the advent of Windows 2000 and then later Windows XP people started to forget about DEBUG since the operating system became true 32bit and the DOS prompt became just an emulator. You could still view files and write assembly code within DEBUG, but it was in a protected environment and everything you do was pretty safe and you couldn&#8217;t really do anything harmful to the hardware (of course, you could still overwrite sectors in floppy disks if you wanted to).</p>
<p>Ah, those were the good old days. Just like <a href="http://en.wikipedia.org/wiki/QBasic">QBasic</a> disappeared from later versions MS-DOS, DEBUG has gradually become obsolete. It remained in Windows Vista, but it is no where to be found in Windows 7. At last, Windows has shed one of its last vintage applications from the MS-DOS era.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kerrywong.com/2009/05/08/ms-debug-1981-2009/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Windows 7, An Updated Vista?</title>
		<link>http://www.kerrywong.com/2009/01/11/windows-7-an-updated-vista/</link>
		<comments>http://www.kerrywong.com/2009/01/11/windows-7-an-updated-vista/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 03:04:43 +0000</pubDate>
		<dc:creator>kwong</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[VMWare]]></category>
		<category><![CDATA[Windows 7]]></category>
		<category><![CDATA[Windows Vista]]></category>

		<guid isPermaLink="false">http://www.kerrywong.com/?p=503</guid>
		<description><![CDATA[I just downloaded Microsoft&#8217;s latest OS beta &#8212; Windows 7 64bit, which was released to the general public two days ago. I have not really used Windows Vista on a day to day basis after its release in early 2007. I have been using Linux only at home for quite sometime now and at work [...]]]></description>
			<content:encoded><![CDATA[<p>I just downloaded Microsoft&#8217;s latest OS beta &#8212; Windows 7 64bit, which was released to the general public two days ago. <span id="more-503"></span></p>
<p>I have not really used Windows Vista on a day to day basis after its release in early 2007. I have been using Linux only at home for quite sometime now and at work we are still using Windows XP. The only Vista installation I have at home is an VM instance which I occasionally fire up to test some Windows only applications. You can read about my experience with Windows Vista here (<a href="/2006/06/22/my-experience-with-windows-vista-beta-2-build-5384-installation/">1</a>,<a href="/2006/06/26/my-experience-with-windows-vista-beta-2-build-5384-security/">2</a>,<a href="/2006/06/28/command-prompt-stack-limits-under-windows-vista/">3</a>,<a href="/2006/09/11/windows-vista-rc1-installation-on-vmware/">4</a>,<a href="/2006/09/14/ghost-folders-in-windows-vista-rc1/">5</a>,<a href="/2006/10/09/a-taste-of-windows-vista-rc2/">6</a>) and why I did not switch to Windows Vista <a href="/2007/02/14/will-i-switch-to-vista/">here</a>.</p>
<p>The download was rather large, coming at 3.2GB. I did not experience any problems downloading the bits though. The installation process for Windows 7 is quite straight forward. It installed under VMWare Workstation 6.5.1 without any glitch and the installation took just around 15 minutes. VMWare Workstation automatically recognized the installation disk as Windows Vista 64bit and even automatically configured the VMWare Tools (e.g. for video acceleration) without any problem. It seems from the start that Windows 7 is just an updated Windows Vista.</p>
<p>As Microsoft&#8217;s latest operating system, there is no doubt that Windows 7 comes with many &quot;new&quot; and improved features. I found this <a href="http://blogs.zdnet.com/Bott/?p=632">blog</a> on ZDNet which discusses a few important ones. Perhaps the most noticeable change is the new task bar, which looks awfully similar to Gnome&#8217;s panel. After playing around for a while, I am still not sure what to make of it. Some of the new features this new task bar provides can be quite confusing. For instance, when an application is pinned onto the new task bar, it is very hard to tell whether or not the icon has any active instances associated with it (e.g. any opened applications). Besides the new task bar, other changes are quite subtle (OK, there are some new applications, like IE8 and the revamped calculator and wordpad, I am concentrating on the OS here).</p>
<p>The Windows 7 64bit installation comes at just under 10GB, versus the 11GB footprint Windows Vista had. Clearly, Microsoft had done some tweaking and optimizations to reduce the OS footprint and improve the OS performance. To me those are just some small evolutionary steps built onto Windows Vista. Maybe the version number can tell it all. Under Windows 7 command prompt, type in ver and you get:</p>
<p align="center"><img src="/blog/wp-content/uploads/2009/01/win7beta_ver.jpg" alt="Windows 7 Beta Version" /></p>
<p align="left">And in Windows Vista, the version number is:</p>
<p align="center"><img src="/blog/wp-content/uploads/2009/01/winvista_ver.jpg" alt="Windows Vista Version" /></p>
<p>So if Windows Vista is simply just Windows 6.1.7000, it may as well just be an updated Windows Vista (6.0.6001) no matter what Microsoft tells you.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kerrywong.com/2009/01/11/windows-7-an-updated-vista/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What Happened to the Testing?</title>
		<link>http://www.kerrywong.com/2009/01/01/what-happened-to-the-testing/</link>
		<comments>http://www.kerrywong.com/2009/01/01/what-happened-to-the-testing/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 23:26:59 +0000</pubDate>
		<dc:creator>kwong</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Zune]]></category>

		<guid isPermaLink="false">http://www.kerrywong.com/?p=496</guid>
		<description><![CDATA[You have probably heard the Zune fiasco at the turn of the new year. Or if you have one with 30GB hard drive, you probably have experienced it yourself.The bug that caused the device to crash is actually quite embarrassing. As you can see in this post, the code coverage of the while loop is [...]]]></description>
			<content:encoded><![CDATA[<p>You have probably heard the <a href="http://news.cnet.com/8301-10805_3-10130186-75.html?tag=newsLeadStoriesArea.1">Zune fiasco</a> at the turn of the new year. Or if you have one with 30GB hard drive, you probably have experienced it yourself.<span id="more-496"></span>The bug that caused the device to crash is actually quite embarrassing. As you can see in <a href="http://www.zuneboards.com/forums/zune-news/38143-cause-zune-30-leapyear-problem-isolated.html">this post</a>, the code coverage of the while loop is not 100% and thus when the day hits 366 the while condition will never be met, causing an infinite loop.</p>
<p>In fact this bug is quite obvious. But a bigger question is, what happened to the testing process? This function can and should be tested to ensure that it actually works! Clearly, this is a place where unit testing would have helped. Alas, it somehow passed through the eyes of peers and testers until the bomb went off&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kerrywong.com/2009/01/01/what-happened-to-the-testing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Unity is the Future for VMs</title>
		<link>http://www.kerrywong.com/2008/11/13/unity-is-the-future-for-vms/</link>
		<comments>http://www.kerrywong.com/2008/11/13/unity-is-the-future-for-vms/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 23:01:27 +0000</pubDate>
		<dc:creator>kwong</dc:creator>
				<category><![CDATA[Linux/BSD]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Unity]]></category>
		<category><![CDATA[VMWare]]></category>

		<guid isPermaLink="false">http://www.kerrywong.com/?p=416</guid>
		<description><![CDATA[I recently downloaded VMWare&#8217;s latest workstation product (VMWare Workstation 6.5) and set it up to run on my 64 bit Ubuntu 8.04 desktop. While I use primarily use only Linux at home, there are certain tools I occasionally need which are only available under Windows (e.g. Visual Studio .Net etc.). To access them, I have [...]]]></description>
			<content:encoded><![CDATA[<p>I recently downloaded VMWare&#8217;s latest workstation product (VMWare Workstation 6.5) and set it up to run on my 64 bit Ubuntu 8.04 desktop.<span id="more-416"></span></p>
<p>While I use primarily use only Linux at home, there are certain tools I occasionally need which are only available under Windows (e.g. Visual Studio .Net etc.). To access them, I have setup a few VM environments (Windows 2003 Server, Windows Vista and Windows XP). But before VMWare Workstation 6.5 came along, it was not always a convenient way to toggle among multiple VMs as I had to go into each Windows environment in order to perform certain tasks. Particularly, the need of constant minimizing/maximizing VM windows was rather inconvenient.</p>
<p>The &quot;Unity&quot;  feature in VMWare 6.5 made it much easier to use any VM based applications in the host environment just as if they were native to the host. And copying and pasting between the host and VMs worked perfectly.</p>
<p>It is pretty easy to access the applications via the &quot;start&quot; style menu that floats on the top left corner of the screen:</p>
<p align="center"><img alt="Unity Menu" src="/blog/wp-content/uploads/2008/11/unity-menu.jpg" /></p>
<p>The user experience of running applications in unity mode is quite excellent with a few exceptions.</p>
<ul>
<li>If you have background images in the VM environment, you will notice that the mouse is extremely sluggish while operating in unity mode. This can be easily addressed by not using any desktop background images (e.g. use solid colors) and reduce the color depth to 16bit.</li>
<li>The application windows sometimes do not show up in the correct z-order. Occasionally, when I tried to open up a file-open dialog, it popped under the main application window.</li>
<li>Maximizing an application window running under unity does not always work correctly. Sometimes the window was maximized without being properly repainted.</li>
<li>The last annoyance I observed is unique to Windows Vista and Windows Server 2008. It seems that the UAC dialog breaks the unity mode. For example, when the UAC dialog shows up, the whole desktop background would appear. Of course, you can always <a href="http://technet.microsoft.com/en-us/library/cc709691.aspx">turn off</a> the annoying user access control warnings.</li>
</ul>
<p>It would be nice if there is a shortcut key to switch between the normal and the unity mode since every time after you boot up a VM you have to switch it to unity mode no matter which mode it was in before. This can be quite frustrating if you are trying to setup multiple VM environments every time after you boot up your main PC.</p>
<p>Even though VMWare Workstation is not free, I do appreciate the convenience unity brings and I could imaging that unity becomes a standard virtual machine feature for all VMs in the future&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kerrywong.com/2008/11/13/unity-is-the-future-for-vms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On Flex, ActionScript</title>
		<link>http://www.kerrywong.com/2008/08/31/on-flex-actionscript/</link>
		<comments>http://www.kerrywong.com/2008/08/31/on-flex-actionscript/#comments</comments>
		<pubDate>Mon, 01 Sep 2008 01:01:16 +0000</pubDate>
		<dc:creator>kwong</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.kerrywong.com/2008/08/31/on-flex-actionscript/</guid>
		<description><![CDATA[I went through a week-long training class on Flex last week. I have never been a fan of Flash or Flex. If it was up to me, I would probably never create a website entirely using Flex. Since the training is work related, I decided to give it the benefit of the doubt. So after [...]]]></description>
			<content:encoded><![CDATA[<p>I went through a week-long training class on Flex last week.<span id="more-333"></span> I have <a href="/2005/06/03/where-does-flash-belong/">never been a fan</a> of Flash or Flex. If it was up to me, I would probably never create a website entirely using Flex. Since the training is work related, I decided to give it the benefit of the doubt.</p>
<p>So after the week-long training, did I change my mind about Flash or Flex? Well&#8230; hardly. Besides the things <a href="/2005/06/03/where-does-flash-belong/">I mentioned before</a>, here are a few new items I would like to add:</p>
<p><strong>1. ActionScript does not support function overloading.</strong><br />
There are few modern languages that do not support function overloading and for a language that tries to mimic Java, not supporting function overloading seems odd.</p>
<p><strong>2. Error reporting is insufficient in ActionScript. </strong><br />
It seems that the error reporting in ActionScript still needs tons of work. In one of the Labs during training, I used a object&#8217;s property without creating the object first (null reference). Surprisingly, there was no error or warning given at compile time. And no error was given at run time either! The only clue I had was that the TextArea was not showing any text. I am not sure why a null object reference is not an error. The inconsistent error reporting in ActionScript makes debugging more difficult than it should be.</p>
<p><strong>3. ActionScript does not support threading. </strong><br />
At a time when dual-core is common place and quad-core is no longer uncommon, a language with no threading support seems to be deficient by design. </p>
<p>So to me the prospect of Flex becoming the desired website platform remains bleak. After all, who would want to wait for ten seconds for a web page to load?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kerrywong.com/2008/08/31/on-flex-actionscript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Malware that Disguises as Antivirus Software</title>
		<link>http://www.kerrywong.com/2008/08/02/malware-that-disguises-as-antivirus-software/</link>
		<comments>http://www.kerrywong.com/2008/08/02/malware-that-disguises-as-antivirus-software/#comments</comments>
		<pubDate>Sun, 03 Aug 2008 00:34:01 +0000</pubDate>
		<dc:creator>kwong</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Malware]]></category>

		<guid isPermaLink="false">http://www.kerrywong.com/2008/08/02/malware-that-disguises-as-antivirus-software/</guid>
		<description><![CDATA[The techniques malware writers use nowadays are becoming more and more sophisticated. The last time I spotted a malware was almost two years ago. At that time, a page that I was visiting contained a JPEG image that was exploit by a zero-day vulnerability. This time however, I stumbled upon a malware that uses code [...]]]></description>
			<content:encoded><![CDATA[<p>The techniques malware writers use nowadays are becoming more and more sophisticated. The last time I spotted a malware was almost two years ago. At that time, a page that I was visiting contained a JPEG image that was exploit by a zero-day vulnerability.<span id="more-320"></span></p>
<p>This time however, I stumbled upon a malware that uses code injection to insert an iframe into a webpage and when the webpage is visited, a page that disguised as some sort of antivirus software would pop up. If the user was successfully tricked into thinking that his or her antivirus software was running and clicked the confirmation button by mistake the result would be disastrous.</p>
<p>It seems that the malware first try to inject the script located at the url below into a webpage (<strong>WARNING! DO NOT GO TO THE FOLLOWING URLs, OTHERWISE YOUR COMPUTER MIGHT BE INFECTED</strong>):<br />
<code>http://batalion.cc/hail/</code><br />
and if the page does not handle user inputs correctly (I.e. does not escape the input), the script would be executed when the page is viewed.</p>
<p>The script itself eventually opens an iframe targeted at the following url:<br />
<code>http://scan.antivirus2008scanner.com/100655/3/</code></p>
<p>This code shows an animated image mimicking a typical antivirus software (see images below):</p>
<p><a href="http://www.kerrywong.com/blog/wp-content/uploads/2008/08/fake_explorer_view.jpg" title="fake_explorer_view.jpg"><img src="http://www.kerrywong.com/blog/wp-content/uploads/2008/08/fake_explorer_view.jpg" alt="fake_explorer_view.jpg" /></a></p>
<p><a href="http://www.kerrywong.com/blog/wp-content/uploads/2008/08/fake_virus_scan.jpg" title="fake_virus_scan.jpg"><img src="http://www.kerrywong.com/blog/wp-content/uploads/2008/08/fake_virus_scan.jpg" alt="fake_virus_scan.jpg" /></a></p>
<p>After the animation, it will &#8220;report&#8221; that it &#8220;found virus&#8221; and ask the user whether he or she wants to remove it. If the user is not careful, and clicked the &#8220;remove&#8221; button: the following code will be downloaded:<br />
<code>http://dwl.av2008dl.com/load/setup_100655_3_.exe</code></p>
<p>And if that executable is run, the machine will be infected.</p>
<p>The above exploit seems to work with the default FireFox settings (javascript enabled), and it is likely exploitable in IE.</p>
<p>This kind of exploits are particularly dangerous as any browser that supports iframe and javascript could be targeted, and most users do not have javascript turned off by default (web 2.0 makes it almost impossible to live without javascript engine). Of course, this particular exploit only works on Windows. So you should be safe if you are running Linux with the least privileges&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kerrywong.com/2008/08/02/malware-that-disguises-as-antivirus-software/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Q9450 &#8211; The LINPACK Test</title>
		<link>http://www.kerrywong.com/2008/07/06/q9450-the-linpack-test/</link>
		<comments>http://www.kerrywong.com/2008/07/06/q9450-the-linpack-test/#comments</comments>
		<pubDate>Mon, 07 Jul 2008 01:59:39 +0000</pubDate>
		<dc:creator>kwong</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[LINPACK]]></category>
		<category><![CDATA[Q9450]]></category>

		<guid isPermaLink="false">http://www.kerrywong.com/2008/07/06/q9450-the-linpack-test/</guid>
		<description><![CDATA[Earlier today, I decided to see how fast my quad-core PC really is in terms of the raw floating point performance measured by GFLOPS. The typical software to measure the performance of scientific calculations is LINPACK. Using Intel&#8217;s implementation, I obtained the following results (Q9450 @ 3.2GHz, O.C.): CPU frequency: 3.200 GHz Number of CPUs: [...]]]></description>
			<content:encoded><![CDATA[<p>Earlier today, I decided to see how fast <a href="/2008/04/12/some-pictures-of-my-new-rig/">my quad-core PC </a>really is in terms of the raw floating point performance measured by <a href="http://en.wikipedia.org/wiki/FLOPS">GFLOPS</a>.<span id="more-314"></span> The typical software to measure the performance of scientific calculations is <a href="http://en.wikipedia.org/wiki/LINPACK">LINPACK</a>. Using <a href="http://www.intel.com/cd/software/products/asmo-na/eng/266857.htm">Intel&#8217;s implementation</a>, I obtained the following results (Q9450 @ 3.2GHz, O.C.):</p>
<pre>
CPU frequency:    3.200 GHz
Number of CPUs: 4
Number of threads: 4
Parameters are set to:Number of tests :  1
Number of equations to solve (problem size) : 10000
Leading dimension of array : 10000
Number of trials to run  : 10
Data alignment value (in Kbytes) : 1024

Maximum memory requested that can be used = 801248576, at the size = 10000

============= Timing linear equation system solver =================

Size   LDA    Align. Time(s)    GFlops   Residual      Residual(norm)
10000  10000  1024    16.427     40.5946  1.012665e-10 3.570760e-02
10000  10000  1024    16.398     40.6676  1.012665e-10 3.570760e-02
10000  10000  1024    16.395     40.6740  1.012665e-10 3.570760e-02
10000  10000  1024    16.473     40.4833  1.012665e-10 3.570760e-02
10000  10000  1024    16.391     40.6852  1.012665e-10 3.570760e-02
10000  10000  1024    16.394     40.6785  1.012665e-10 3.570760e-02
10000  10000  1024    16.427     40.5970  1.012665e-10 3.570760e-02
10000  10000  1024    16.397     40.6712  1.012665e-10 3.570760e-02
10000  10000  1024    16.394     40.6766  1.012665e-10 3.570760e-02
10000  10000  1024    16.396     40.6733  1.012665e-10 3.570760e-02

Performance Summary (GFlops)

Size   LDA    Align.  Average  Maximal
10000  10000  1024     40.6401  40.6852

End of tests</pre>
<p>It is amazing to see that a personal PC nowadays can achieve 40+ GFLOPS! To put this number in perspective, take a look at the TOP 500 super computer ranking back in <a href="http://www.top500.org/list/2005/06/100">2005</a>. At that time this was the performance of a super computer (<em>Since the benchmarking program used here is different and the conditions under which the tests are performed are not necessarily the same, direct numerical comparison might not be meaningful. Nevertheless, the general trend still holds.</em>)!</p>
<p>It is also worth noting that Q9450 is an extremely overclockable CPU. To achieve a 3.2GHz core frequency, I only needed to raise the Front Side Bus (FSB) frequency from the default  333MHz to 400MHz (vcore is set at 1.2V manually). I was able to achieve a maximum of 3.4GHz without any stability issue. In fact, the only thing keeps me from achieving a higher clock rate is my DDR2 800 RAM (4x2GB, G.SKILL F2-6400CL5D-4GBPQ). With DDR2 RAM, Q9450 can easily archive 50 GFLOP in LINPACK test.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kerrywong.com/2008/07/06/q9450-the-linpack-test/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Thoughts on Flash Device Reliability</title>
		<link>http://www.kerrywong.com/2008/06/29/thoughts-on-flash-device-reliabilities/</link>
		<comments>http://www.kerrywong.com/2008/06/29/thoughts-on-flash-device-reliabilities/#comments</comments>
		<pubDate>Mon, 30 Jun 2008 00:51:09 +0000</pubDate>
		<dc:creator>kwong</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Flash Device]]></category>
		<category><![CDATA[Reliability]]></category>
		<category><![CDATA[SD card]]></category>

		<guid isPermaLink="false">http://www.kerrywong.com/2008/06/29/thoughts-on-flash-device-reliabilities/</guid>
		<description><![CDATA[The other day, my 512MB SD card died all of a sudden. A minute before it seized functioning, I was transferring a few files onto it. In theory, a flash device should be able to endure millions of write cycles before permanent failure(see my previous experiment here. eeeuser.com provides some more in-depth analysis), which translates [...]]]></description>
			<content:encoded><![CDATA[<p>The other day, my 512MB SD card died all of a sudden. A minute before it seized functioning, I was transferring a few files onto it. <span id="more-312"></span></p>
<p align="center"><a href="http://www.kerrywong.com/2008/06/29/thoughts-on-flash-device-reliabilities/pny-512-mb-sd-card/" rel="attachment wp-att-313" title="PNY 512 MB SD Card"><img src="/blog/wp-content/uploads/2008/06/sd512.gif" alt="PNY 512 MB SD Card" /></a></p>
<p>In theory, a flash device should be able to endure millions of write cycles before permanent failure(see my previous experiment <a href="/2007/01/05/flash-drive-stress-test/" title="Flash Drive Stress Test">here</a>. <a href="http://wiki.eeeuser.com/ssd_write_limit" title="SSD Write Limit">eeeuser.com provides some more in-depth analysis</a>), which translates into more than a couple dozens of years of useful life span. Clearly flash devices in general are much more reliable than their mechanical counterparts &#8211; hard drives, at least in theory.</p>
<p>But when disaster does strike, it seems that it is very hard if not impossible to recover data from the failed flash device (to successfully recover data from a failed flash device, chip-level or sub chip-level analysis would be required. And such analysis cannot be done without resorting to some very expensive equipments and likely the cost would be astronomical.). My SD card failed without any warning signs, and the next thing I knew was that I could not read or write to it and I kept getting some IO error messages. Even the <a href="/2006/12/21/how-to-reclaim-lost-space-after-repartitioning-usb-flash-drive/" title="How to Reclaim “Lost Space” After Repartitioning USB Flash Drive">low level routines</a> would not be able to revive the card.</p>
<p>On the other hand, the failure mode of a hard drive is fairly well understood and generally resulted in some form of mechanical failures (e.g. disk head crash). Since during a hard drive failure it is likely that only a very small portion of the disk surface is damaged, it is possible to recover most if not all the data from a failed drive. Professional services for such data recoveries are fairly mature and generally can recover data from a failed hard drive under $1,000. Sometimes if the crash is not severe, you might be able to <a href="/2008/03/16/ntfs-partition-recovery-with-linux/" title=" Kerry D. Wong Home About NTFS Partition Recovery With Linux">do the data recovery yourself</a>.</p>
<p>We have yet to see how the data recovery aspect of the flash device is as such device becomes more popular.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kerrywong.com/2008/06/29/thoughts-on-flash-device-reliabilities/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux Only, Two Months Later</title>
		<link>http://www.kerrywong.com/2008/06/14/linux-only-two-months-later/</link>
		<comments>http://www.kerrywong.com/2008/06/14/linux-only-two-months-later/#comments</comments>
		<pubDate>Sun, 15 Jun 2008 01:51:00 +0000</pubDate>
		<dc:creator>kwong</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.kerrywong.com/2008/06/14/linux-only-two-months-later/</guid>
		<description><![CDATA[Since I built my new PC roughly two months ago, I have been running Linux (Ubuntu 8.04 64 bit) as my primary operating system, and I have not looked back. While in the past I have always had machines running Linux (or FreeBSD) at home, my primary PC had always been a Windows PC. But [...]]]></description>
			<content:encoded><![CDATA[<p>Since I built my new PC roughly <a href="/2008/04/12/some-pictures-of-my-new-rig/">two months</a> ago, I have been running Linux (Ubuntu 8.04 64 bit) as my primary operating system, and I have not looked back.<span id="more-309"></span></p>
<p>While in the past I have always had machines running Linux (or FreeBSD) at home, my primary PC had always been a Windows PC. But when I made the switch to a true 64-bit environment, Linux made perfect sense. My old PC was running Windows XP 32 bit, in order to take advantage of the 8 GB memory installed in my new machine, I had to move to a 64 bit OS. So my choices were either to buy a copy of Windows XP 64 bit (Vista? <a href="/2007/02/14/will-i-switch-to-vista/">No thanks</a>.) or use the freely available 64 bit Linux. And the choice was quite easy to make.</p>
<p>So, I decided to go with the most popular distro &#8211; <a href="http://www.ubuntu.com">Ubuntu</a>. In fact I could have easily chosen <a href="http://www.opensuse.org">openSUSE</a>, or even <a href="http://www.freebsd.org/">FreeBSD</a> (which is based on BSD UNIX) since my previous experience with them were quite positive as well. At first I did have some question whether or not I would be able to do the majority of my work on Linux, without having to constantly turning to a Windows PC. As it turned out, those worries were totally unnecessary. For the past two months, I had been using Linux almost exclusively at home except for a few moments when I needed to test something in Visual Studio .Net.</p>
<p>For web browsing, I use <a href="http://www.mozilla.com/">Firefox</a> 64 bit, since there&#8217;s no 64bit Flash available for 64 bit Linux yet, I installed the 32 bit version as well. The default email client GNOME supplies is Evolution, which is quite powerful. Unfortunately, it could only import my outlook mail hierarchical Inbox folder structures into a single folder. So for my mail client, I chose Mozilla&#8217;s Thunderbird instead. For word editing, <a href="http://www.openoffice.org/">OpenOffice</a> 3.0 is an excellent choice. In fact, I personally found it quite comparable to Microsoft Office 2007, and most Office documents can be opened/edited without any issues.</p>
<p>Since I like many of the tools provided in <a href="http://www.kde.org">KDE</a>, I installed the KDE environment as well (the alternative would be to install <a href="http://www.kubuntu.org">Kbuntu</a> first and install GNOME based tools later, but it really doesn&#8217;t matter, this is the beauty of the versatilities of Linux). The default simple text editing tool (gedit in GNOME/kedit in KDE) is quite powerful compare to Windows&#8217; notepad. The syntax highlighting capability is built in. For viewing PDF documents, I use kpdf, the KDE version of the PDF/PS file viewer. If you are used to the sluggish performance of Adobe&#8217;s Acrobat Reader, you&#8217;ll be surprised to find how snappy kpdf is.</p>
<p>I use K3b (KDE&#8217;s CD/DVD creator) to burn CD and DVD discs. K3b&#8217;s features rival most of the commercial CD/DVD authoring programs in the Windows world. In terms of media playback, Ubuntu handles almost all media formats out-of-box, even proprietary formats like wmv can be easily accommodated with a single mouse click. And for photo editing, I use GIMP, which is rather easy to use and almost as powerful as Photoshop.</p>
<p>For software development, I use <a href="http://www.codeblocks.org/">Code::Blocks</a> and KDevelop for C++ applications, <a href="http://www.monodevelop.org">MonoDevelop</a> for C# programs. Occasionally I needed to research some work related programming issues. Since some of these issues are Windows specific, I would fire up an instance of Windows XP (or Windows Vista) within <a href="http://www.vmware.com/products/server/">VMWare Server</a> and use Visual Studio from there.</p>
<p>There hasn&#8217;t been a single instance where I couldn&#8217;t do something conveniently in Linux for the past two months. In fact, for the majority of the stuff I do I felt that Linux was actually easier. There are a few rough edges, of course. For example, copy and paste sometimes do not play well between GNOME and KDE applications and the Flash play back performance under Linux is far inferior then under Windows. But it does not matter to me that much (I block flash content on my Windows PC anyway).&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kerrywong.com/2008/06/14/linux-only-two-months-later/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Technical Difference Between Q9450 And X3350</title>
		<link>http://www.kerrywong.com/2008/03/28/technical-difference-between-q9450-and-x3350/</link>
		<comments>http://www.kerrywong.com/2008/03/28/technical-difference-between-q9450-and-x3350/#comments</comments>
		<pubDate>Sat, 29 Mar 2008 01:18:03 +0000</pubDate>
		<dc:creator>kwong</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Q9450]]></category>

		<guid isPermaLink="false">http://www.kerrywong.com/2008/03/28/technical-difference-between-q9450-and-x3350/</guid>
		<description><![CDATA[It has been almost two weeks since the speculated shipment dates for the Yorkfield 45nm processors. But Q9450&#8242;s are still hard to spot. It briefly appeared on Newegg in the evening of March 25 but the supply was apparently very limited and barely lasted till the next morning. And of course, early adopters had to [...]]]></description>
			<content:encoded><![CDATA[<p>It has been almost two weeks since the speculated shipment dates for the Yorkfield 45nm processors.<span id="more-274"></span> But Q9450&#8242;s are still hard to spot. It briefly appeared on <a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16819115039&amp;Tpk=Q9450">Newegg </a>in the evening of March 25 but the supply was apparently very limited and barely lasted till the next morning. And of course, early adopters had to pay a hefty premium. As a result, quite a few people bought X3350 instead.</p>
<p>Many forum posts have suggested that Q9450 and X3350 were largely identical and had recommended buying the cheaper server version of the chip (X3350) instead of Q9450. But are they really identical as claimed by so many people? I decided to figure it out myself.</p>
<p>After some digging, I found the data sheet for both <a href="http://download.intel.com/design/processor/datashts/318726.pdf">Q9XXX</a> and <a href="http://download.intel.com/design/xeon/datashts/319005.pdf">X33XX</a> on Intel&#8217;s web site. After comparing the two specifications, it became clear that while the majority characteristics of these two chips are identical, there are some differences never the less. Here are some of the highlights:</p>
<blockquote>
<p><strong><span class="Title">Pin differences:</span></strong></p>
<p>The following are the pins that Q9450 has but not defined for X3350</p>
<ul>
<li>DPRSTP# (Deep Sleep State to Deeper Sleep State transition when asserted)</li>
<li>DPSLP# (Sleep State to Deep Sleep State transition when asserted)</li>
<li>SLP# (Sleep State)</li>
</ul>
<p>The&nbsp; absence&nbsp; the above three signals in X3350 is not a surprise at all since it is a server class CPU, which usually means 24&#215;7 operation.</p>
<p>A few test pins are different as well:</p>
<p>On Q9450, according to Intel&#8217;s documentation on the placement of pull-up resistors, TESTHI10 pin cannot be grouped with other TESTHI pins. While on X3350, this limitation applies to not only TESTHI10, but TESTHI11 and TESTHI13 as well.</p>
</blockquote>
<blockquote>
<p><strong><span class="Title">Other electrical differences:</span></strong></p>
<div>Q9450:</div>
<blockquote>
<div>ICC_VCCPLL ICC for PLL land &#8212; 260 mA</div>
<div>RON Buffer On Resistance 7.5 &#8211; 11 &Omega; (GTL+ Signal Group)</div>
</blockquote>
<div>X3350:</div>
<blockquote>
<div>ICC_VCCPLL ICC for PLL land &#8212; 130 mA</div>
<div>
<div>RON Buffer On Resistance 7.49 &#8211; 9.16 &Omega; (GTL+ Signal Group)</div>
<div>&nbsp;</div>
</div>
</blockquote>
</blockquote>
<p>So, it does seem that the two processors are largely compatible. However given the TEST pin pull-up register placement differences, it is possible that certain workstation motherboards&#8217; (e.g. workstation bords not specifically stated supporting X3350) designs do not meet Intel&#8217;s guideline for X3350 and may result some stability issues.</p>
<p>The minor current requirement should not be an issue in my opion, but the missing SLEEP states pins in X3350 could result in some stability issues as well, since those pins are reserved in X3350 and reserved pins in general requires a static reference voltage or simply unconnected. But on a board build for workstations specifically, those pins may change states as the processor goes into and comes out of sleep state.</p>
<p>To summarize, I personally would not recommend putting a non-officially supported CPU in for reasons stated above. In the case of Q9450 and X3350 though, the differences are minute enough and from a technical stand point, it is possible that most motherboards that support Q9450 may also be compatible with X3350. Of course, even a motherboard is electronically compatible with X3350, we would still need the blessing of the BIOS. And since X3350 is officially unsupported, such blessing is totally at the mercy of each motherboard manufacturer and can not be guaranteed.</p>
<p>I guess I will stick with a Q9450. Hopefully there will be more in stock soon as the <a href="http://support.intel.com/idf/">IDF</a> starts next week.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kerrywong.com/2008/03/28/technical-difference-between-q9450-and-x3350/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Where Are the 45nm Quad Cores?</title>
		<link>http://www.kerrywong.com/2008/03/18/where-are-the-45nm-quad-cores/</link>
		<comments>http://www.kerrywong.com/2008/03/18/where-are-the-45nm-quad-cores/#comments</comments>
		<pubDate>Tue, 18 Mar 2008 10:15:51 +0000</pubDate>
		<dc:creator>kwong</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Q9450]]></category>

		<guid isPermaLink="false">http://www.kerrywong.com/2008/03/18/where-are-the-45nm-quad-cores/</guid>
		<description><![CDATA[Last week, all the news source speculated the imminent launch of three 45nm Quad Core Processors from Intel. And the updates to Wikipedia articles (1,2) and Intel&#8217;s own quad core where to buy page had also confirmed this. Despite the reports however, it seems that the new Q9300, Q9450 and Q9550 are nowhere to be [...]]]></description>
			<content:encoded><![CDATA[<p>Last week, all the news source <a href="http://www.xbitlabs.com/news/cpu/display/20080307105007_Yorkfield_Processors_to_Start_Selling_Next_Week.html">speculated the imminent launch</a> of three 45nm Quad Core Processors from <a href="http://www.intel.com">Intel</a>.<span id="more-273"></span> And the updates to <a href="http://www.wikipedia.org">Wikipedia </a>articles (<a href="http://en.wikipedia.org/wiki/List_of_future_Intel_Core_2_microprocessors">1</a>,<a href="http://en.wikipedia.org/wiki/Q9450">2</a>) and Intel&#8217;s own quad core <a href="http://www.intel.com/buy/desktop/boxed-processor/embedded.htm?sSKU=BX80569Q9450&amp;fmlid=2">where to buy page</a> had also confirmed this.</p>
<p>Despite the reports however, it seems that the new Q9300, Q9450 and Q9550 are nowhere to be found. Typically, one would guess that the release of any new products, especially the new quad cores, would be covered with much fanfare. But this time, it seems a bit odd that there was nothing in the news at all. </p>
<p>Only a handful of the sites list these processors. The big ones like <a href="http://www.newegg.com">NewEgg </a>hasn&#8217;t shown any yet (<a href="http://www.newegg.com">NewEgg </a>did drop the price of the current quad on 3/16, which might suggest that they had already got the shipment from Intel). But most of them list them as back ordered and even the ones listed on Intel&#8217;s official site do not seem to have these processors in stock. And the listed prices were way above the $316 mark.</p>
<p>I have been waiting for the arrival of these 45nm quad cores (I am thinking of getting a Q9450) for a while, and I might have to wait a few more weeks before it becomes broadly available.</p>
<p>See also <a href="/2008/03/28/technical-difference-between-q9450-and-x3350/">Technical Difference Between Q9450 And X3350</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kerrywong.com/2008/03/18/where-are-the-45nm-quad-cores/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NTFS Partition Recovery With Linux</title>
		<link>http://www.kerrywong.com/2008/03/16/ntfs-partition-recovery-with-linux/</link>
		<comments>http://www.kerrywong.com/2008/03/16/ntfs-partition-recovery-with-linux/#comments</comments>
		<pubDate>Mon, 17 Mar 2008 02:20:10 +0000</pubDate>
		<dc:creator>kwong</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[NTFS]]></category>
		<category><![CDATA[Recovery]]></category>

		<guid isPermaLink="false">http://www.kerrywong.com/2008/03/16/ntfs-partition-recovery-with-linux/</guid>
		<description><![CDATA[Over the years, I have formed the habit of keeping an up-to-date backup copy of all my critical data on a regular basis. But due to some project deadlines, I have given myself a good excuse not to follow that routine recently. After all, I haven&#8217;t lost any data due to hard drive failures for [...]]]></description>
			<content:encoded><![CDATA[<p>Over the years, I have formed the habit of keeping an up-to-date backup copy of all my critical data on a regular basis.<span id="more-272"></span> But due to some project deadlines, I have given myself a good excuse not to follow that routine recently. After all, I haven&#8217;t lost any data due to hard drive failures for more than ten years now and what are the chances that my trust-worthy Western Digital WD2500JD hard drive would fail me? So, I have not made any backups for the past two months.</p>
<p>And of course, it happened. Last Thursday evening after installing some routine system updates, I rebooted my computer. But instead of the familiar log-in screen, I was greeted by a seemingly endless reboot. At first, I thought that maybe the latest security updates had messed up something so I hit F8 and tried to boot into safe mode. But again, the computer kept rebooting half-way through the startup process. Since I had Windows XP installed on another hard drive, I booted up XP trying to figure out the problem. And it seemed that the Windows 2003 Server drive had failed. The system seemed to unable to identify the hard drive and I could here the dreadful clicking sound from the Windows 2003 drive.</p>
<p>I powered off my computer immediately. The first thought came across my mind was to create a disk image of the failed drive so that I could always get back to the state right after it failed.</p>
<p>To do this, I booted into SUSE Linux (yet another OS on a third hard drive), and used <a href="http://www.novell.com/products/linuxpackages/suselinux/ddrescue.html">dd_rescue</a> to create an disk image onto a 320GB external hard drive. Luckily, the drive image was created without any fuss. I then tried to mount the failed disk normally to /windows/D, but it was unsuccessful. After getting a bunch of error messages, the partitioned seemed to be mounted. But the system was only seeing 14G of empty space. I then tried to mount the partition as read-only. After some delay and clicking sound, I was able to do an &quot;ls&quot; and see all the root level contents.</p>
<p>Encouraged, I decided to try to copy everything off the damaged partition to another hard drive in the order of importance. It turned out that the copying speed was extremely slow (averaging around 1MB per minute), every file seek seemed to be accompanied by multiple clicks. Given the speed, it would take three months to totally copy everything off the drive! Luckily, there were only 4GB or so new or modified files since my last backup 2 months ago and till this morning I was able to copy all of those data out.</p>
<p>So, in the end, I did not loose any data. I was lucky enough this time as it seemed that the physical damage occurred at the outer tracks of the drive, where the operating system was. The inner tacks where all my important data was located was largely intact.</p>
<p>The lesson of my experience is that remember to back up your systems regularly, and do not take chances. Modern disks have much higher areal density and you could easily loose gigabytes of data should a drive failure occurs. And do not panic if your hard drive fails. Shut down your system immediately to avoid further damage to the drive. At the early stage of a drive failure, your chance of getting everything back is pretty good. One biggest mistake is to try the failed drive again and again. Doing so may corrupt more data and make a successful recovery more difficult. And of course, do not try to repartition or reformat the drive as doing so would almost certainly make data recovery much more difficult if not totally impossible. And last but not least, if vital data is at stake, you might want to send the drive to a professional data recovery facility as such places have more tools and experience in handling this kind of situation.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kerrywong.com/2008/03/16/ntfs-partition-recovery-with-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thoughts on &#8220;Where Are the Software Engineers of Tomorrow?&#8221;</title>
		<link>http://www.kerrywong.com/2008/02/09/thoughts-on-where-are-the-software-engineers-of-tomorrow/</link>
		<comments>http://www.kerrywong.com/2008/02/09/thoughts-on-where-are-the-software-engineers-of-tomorrow/#comments</comments>
		<pubDate>Sun, 10 Feb 2008 03:49:57 +0000</pubDate>
		<dc:creator>kwong</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[C++]]></category>

		<guid isPermaLink="false">http://www.kerrywong.com/2008/02/09/thoughts-on-where-are-the-software-engineers-of-tomorrow/</guid>
		<description><![CDATA[I recently ran across two very interesting articles (Computer Science Education: Where Are the Software Engineers of Tomorrow?, Who Killed the Software Engineer? (Hint: It Happened in College)) discussing how the current university education has become inadequate in terms of producing highly qualified software engineers and developers.As a software engineer myself, I think I would [...]]]></description>
			<content:encoded><![CDATA[<p>I recently ran across two very interesting articles (<a href="http://www.stsc.hill.af.mil/CrossTalk/2008/01/0801DewarSchonberg.html">Computer Science Education: Where Are the Software Engineers of Tomorrow?</a>, <a href="http://itmanagement.earthweb.com/career/article.php/11067_3722876_2">Who Killed the Software Engineer? (Hint: It Happened in College)</a>) discussing how the current university education has become inadequate in terms of producing highly qualified software engineers and developers.<span id="more-264"></span>As a software engineer myself, I think I would have to agree with Dr. Dewar&#8217;s view detailed in the above two articles.</p>
<p>Like any kind of science, the essence of computer science education was not to teach you any particular languages, but to teach you the theories by which all computational tasks abide.</p>
<p>A typical software engineer today is very different from one even just a couple of decades ago. Back then, creating a computer program usually required some very intimate knowledge of both the software and the hardware. Of course we had no choice back then as we lacked the modern high level languages (e.g. Java, C#) and the hardware resources were usually very limited. Back then we valued efficient algorithms in terms of both footprint and efficiency as a 600K versus 60k application usually means one can fit into the main memory and one cannot. And similarly, an inefficient algorithm usually led to an unusable application.</p>
<p>Things have arguably changed quite a bit nowadays. Personal computers today are becoming ever more powerful and the limit imposed by storage is rapidly disappearing for all practical matters. Nobody would even notice the difference of an inefficient application taking one second to run whereas the same application could be optimized to run a thousand time faster. A 10Meg application and a 1Meg application would rarely pose any problem as today&#8217;s computers can easily handle multi-gigabytes of working sets.</p>
<p>And with computers being as ubiquitous as they are today, almost every one knows how to operate a computer and does what his or her heart desires to a certain degree. So naturally, the technological savviness of an average developer is far less than that ten or twenty years ago.</p>
<p>This situation was made even worse in a market economy today. Most companies&#8217; job postings require the knowledge and experience of certain computer languages and without such credentials (e.g. for a fresh colledge graduate) a candidate is simply not considered. Even though we all know that a good developer in one language typically can master any given languages within a very short period of time and be good at them as well. Unfortunately, as human nature, we tend to emphasize more on the surface value that we can see.</p>
<p>The society we live in is one that is driven by demand. Given the corporate culture just mentioned, more and more universities, especially the lesser known ones started to put more emphasis on what is needed in the market and the fundamentals (e.g. Assembly, C/C++) became less desirable to teach or learn as such fundamentals hardly ever translate into the market place value.</p>
<p>And it is only to become worse, as companies like Microsoft make the application development environment easier and easier to use, wring programs becoming seemingly more and more trivial. Some people even believe that anyone, with some training, can easily master a computer language and thus becomes a software developer. There might be some truth to that as far as the &quot;surface value&quot; is concerned, but this is rather dangerous as there is a lot more to writing good programs than being able to drag and drop.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kerrywong.com/2008/02/09/thoughts-on-where-are-the-software-engineers-of-tomorrow/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Recent Email Scam</title>
		<link>http://www.kerrywong.com/2008/01/19/recent-email-scam/</link>
		<comments>http://www.kerrywong.com/2008/01/19/recent-email-scam/#comments</comments>
		<pubDate>Sat, 19 Jan 2008 17:58:40 +0000</pubDate>
		<dc:creator>kwong</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Scam]]></category>

		<guid isPermaLink="false">http://www.kerrywong.com/2008/01/19/recent-email-scam/</guid>
		<description><![CDATA[It seems that the desperate scammers have been really working hard devising different schemes trying to steal people&#8217;s identities.A few days ago, I received an email claiming that it was from UWalumni. It was titled: &#34;Verify Your Uwalumni Webmail Account&#34;. As an alumni from University of Wisconsin &#8211; Madison, I do once a while get [...]]]></description>
			<content:encoded><![CDATA[<p>It seems that the desperate scammers have been really working hard devising different schemes trying to steal people&#8217;s identities.<span id="more-260"></span>A few days ago, I received an email claiming that it was from <a href="http://www.uwalumni.com">UWalumni</a>. It was titled: &quot;<em>Verify Your Uwalumni Webmail Account</em>&quot;. As an alumni from University of Wisconsin &#8211; Madison, I do once a while get emails from them. But after reading it, it became quite clear that this was just another scam. The message goes like this:</p>
<p><quote> </quote></p>
<blockquote>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#993366">To complete your Account Verification process, you are to reply&nbsp; this message and enter your password in the space provided (********),&nbsp; you are required to do this before the next 48hrs of receipt of this&nbsp; e-mail, or your Webmail Account will be de-activated and erased from&nbsp; our data base.</p>
<p>You can also verify your Account at&nbsp; https://secure.uwalumni.com/horde/imp/login.php</p>
<p>Thank you for choosing Uwalumni Webmail.</p>
<p>Uwalumni Webmail Team.</font>   </em></p>
</blockquote>
<p>The technique used by this scammer was not all that advanced, as any legitimate  businesses would NEVER ask user to provide confidential information over unencrypted channel (rarely, <a href="/2007/05/11/sometimes-we-know-its-not-secure-but-we-have-no-choice/">some companies still do</a>). I quickly reported this email to UW Alumni. And in a reply email, UW authorities re-affirmed that this was indeed a scam and some users might have already taken the bait.</p>
<p>My advice? Never ever giving out personal information to anyone (even if the other party is trusted) over email. A phone call could easily save the trouble of becoming an ID theft victim.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kerrywong.com/2008/01/19/recent-email-scam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GRUB Error 17, LILO Rules</title>
		<link>http://www.kerrywong.com/2007/12/09/grub-error-17-lilo-rules/</link>
		<comments>http://www.kerrywong.com/2007/12/09/grub-error-17-lilo-rules/#comments</comments>
		<pubDate>Mon, 10 Dec 2007 03:07:18 +0000</pubDate>
		<dc:creator>kwong</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.kerrywong.com/2007/12/09/grub-error-17-lilo-rules/</guid>
		<description><![CDATA[Ubuntu and OpenSUSE have been my top choices of Linux distros over the years. I have been using Ubuntu for quite a while and one thing I really like about it is its apt-get package management system. But the GNOME GUI in Ubuntu seems to be quite crude. Also, despite its ever increasing popularity, its [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ubuntu.com/">Ubuntu</a> and <a href="http://www.opensuse.org/">OpenSUSE</a> have been my top choices of Linux distros over the years.<span id="more-254"></span> I have been using Ubuntu for quite a while and one thing I really like about it is its apt-get package management system. But the GNOME GUI in Ubuntu seems to be quite crude. Also, despite its ever increasing popularity, its hardware support is still not as good as I had hoped, at least in my case.</p>
<p>After I purchased a 24 inch LCD, I noticed that Ubuntu would not support it&#8217;s native 1920&#215;1200 resolution even though it correctly identified my four-years-old ATI Radeon 9200 SE graphics card. I tried many different workarounds (e.g. manually tuning xorg.conf, using ATI native display drivers, etc.) but without any luck. It seems that the maximum resolution I could get under Ubuntu 7.10 is 1280&#215;1024.</p>
<p>So, to keep the long story short, I decided to give the latest OpenSUSE distro (10.3) a try. OpenSUSE uses GRUB as it&#8217;s default partition manager. When it was time to reboot after the installation, I was surprised to be greeted by a boot loader error message. Basically, GRUB exited with error number 17. At first I thought that somehow I was not paying enough attention to the partition parameters and somehow chose a boot partition that was too large&#8230; instead of monkeying around, I decided to install a second time. But again, I got the same GRUB 17 error message.</p>
<p>This seems to be a rather strange problem as I have been installing Linux for years and have never seen the boot loader failed before. Puzzled, I searched the internet for answers. There are many posts regarding this particular GRUB error, and they seem to suggest that somehow the boot loader failed to recognize the disk&#8217;s geometry. I tried a couple of suggestions (one of which seemed really promising, it suggested that this was caused by BIOS reporting the wrong information. It suggested that I disable the DMA settings of the harddrive in BIOS and this would force the boot loader to figure out the disk geometry instead of relying on BIOS), but non seemed to have worked.</p>
<p>Even more puzzled, I decided to go through the installation process again. This time, I chose to use LILO boot loader instead of the default GRUB&#8230; and it worked! And best of all, OpenSUSE 10.3 recognized my graphic card (ATI Rage 9200 SE) without any problem and set the resolution correctly to 1920&#215;1200.</p>
<p>It is pretty clear that GRUB has some minor &quot;annoyance&quot; to fix. My PC is equipped with two SATA drives and 1 PATA harddrive. One of the SATA drive is used for Windows XP and I used the PATA drive for Linux installation. So it is possible that this setup is more complex than most of the Linux installations and GRUB had some difficulty figuring out the disk geometries. Nevertheless, LILO still rules.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kerrywong.com/2007/12/09/grub-error-17-lilo-rules/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>On Microsoft Windows Home Server</title>
		<link>http://www.kerrywong.com/2007/10/16/on-microsoft-windows-home-server/</link>
		<comments>http://www.kerrywong.com/2007/10/16/on-microsoft-windows-home-server/#comments</comments>
		<pubDate>Wed, 17 Oct 2007 01:39:30 +0000</pubDate>
		<dc:creator>kwong</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Windows Home Server]]></category>

		<guid isPermaLink="false">http://www.kerrywong.com/2007/10/16/on-microsoft-windows-home-server/</guid>
		<description><![CDATA[I am not quite sure why&#160; would any one purchase a computer that serves solely as a home server or put $190 to get a copy of Windows Home Server. It seems a little bit odd to me that Microsoft is actually trying to allure average home users to get some sort of server systems [...]]]></description>
			<content:encoded><![CDATA[<p>I am not quite sure why&nbsp; would any one purchase a computer that serves solely as a home server or put <a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16832116395">$190</a> to get a copy of Windows Home Server.<span id="more-230"></span> It seems a little bit odd to me that Microsoft is actually trying to allure average home users to get some sort of server systems for their homes. In the grand scheme, the idea does sound good. As <a href="http://www.microsoft.com/windows/products/winfamily/windowshomeserver/default.mspx">Microsoft puts it</a>:</p>
<blockquote>
<p><em>&quot;This fall, families will have a new way to organize, share and protect photos, videos, music and so much more. For families with multiple PCs, now it&#8217;s easy to protect, connect, and organize the way you keep and share your family&#8217;s most important memories&mdash;all in one central place.&quot;</em></p>
</blockquote>
<p>According to the above advertisement and Microsoft&#8217;s OEM only licensing strategy for the time being, it seems that the home server is geared towards average users. But how much does it really benefit the average user as the majority of them simply do not have the technical expertise to grasp the true meaning of a &quot;server&quot; system or simply do not care.</p>
<p>I am afraid that by having a home server at home without a thorough understanding of the ramifications of the pros and cons and the security risks associated with such a system, the end result is bound to be disastrous. For example, many users who periodically backup their precious family albums on CD or DVDROMs (which I know plenty of average Joes do) might think that the home server is a safer place to keep ALL their data and ignored the fact that a single point failure could be more catastrophic then losing a couple of CDs.</p>
<p>Also, no matter how secure the home server is claimed to be, it doesn&#8217;t help the situation when typical users know almost nothing about the security. How do you really explain what a security setting means to the end user? Even though the default settings might be very secure, it does not prevent ignorant hands changing them and render even the most secure system useless. And worse, these 24/7 home servers could become an idea place for those malicious hackers to place their code and thus turn these servers into zombies.</p>
<p>For the experienced users, I simply do not see the point of paying that much money to just have a server of their own. Already, a lot of high-end users are utilizing some flavor of Linux or BSD systems as their home server, or just use one old Windows machines (Windows shared drives/folders work pretty well for most of the people and they are not difficult to setup at all).</p>
<p>Last but not least, if I spend that much money for a &quot;server&quot; system, I would at least expect that I could use it to set up a web server for personal use (e.g. host your own website), but my understanding is that Microsoft is reluctant to give the full power of IIS to you because they could charge a lot more for the real server versions. So, in the end, you might be able to have the system manage a few concurrent web requests, but that would certainly be its limit.</p>
<p>So, to me you will be much better off getting two 500GB harddrives for the money you would be putting into this Windows Home Server. At least you can make your backups multiple times and store the drives safely somewhere else&#8230; off line of course.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kerrywong.com/2007/10/16/on-microsoft-windows-home-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First Take: Windows Server 2008 Beta 3</title>
		<link>http://www.kerrywong.com/2007/10/08/first-take-windows-server-2008-beta-3/</link>
		<comments>http://www.kerrywong.com/2007/10/08/first-take-windows-server-2008-beta-3/#comments</comments>
		<pubDate>Mon, 08 Oct 2007 23:42:39 +0000</pubDate>
		<dc:creator>kwong</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Windows Server 2008]]></category>

		<guid isPermaLink="false">http://www.kerrywong.com/2007/10/08/first-take-windows-server-2008-beta-3/</guid>
		<description><![CDATA[Windows Server 2008 Beta 3 (build 6001) has been out for a week, and during the weekend I downloaded the bits and gave it a spin. It has been long speculated that Windows Server 2008 will add an alternative installation option called &#8220;Server Core&#8221;. According to Microsoft&#8217;s own definition: &#8220;Server Core is a new installation [...]]]></description>
			<content:encoded><![CDATA[<p>Windows Server 2008 Beta 3 (build 6001) has been out for a week, and during the weekend I downloaded the bits and gave it a spin. <span id="more-229"></span></p>
<p>It has been long speculated that Windows Server 2008 will add an alternative installation option called &ldquo;Server Core&rdquo;. According to Microsoft&rsquo;s own <a href="http://www.microsoft.com/windowsserver2008/default.mspx">definition</a>:</p>
<p>&ldquo;Server Core is a new installation option for selected roles that includes only the necessary components and subsystems without a graphical user interface, to provide a highly available server that requires fewer updates and less servicing.&rdquo; </p>
<p>So, from what it said there it sounds like it is *nix like. And if so, it would be a major milestone for a Microsoft operating system environment as the incorporation of unnecessary GUI software takes significantly more system resources and increases attacking surface. This almost sounds too good to be true!</p>
<p>And it probably is. When I tried the installation I selected &ldquo;Server Core&rdquo;.</p>
<div align="center"><img align="middle" src="/blog/wp-content/uploads/2007/10/servercore1.GIF" alt="" /></div>
<p>
After installation I was expecting some sort of command shell where a user name and password are asked. But instead a GUI login screen showed up and after I logged in, I got the following:</p>
<div align="center"><img align="middle" src="/blog/wp-content/uploads/2007/10/servercore2.GIF" alt="" /></div>
<p>
Aha, is this what Microsoft characterized as a system &ldquo;without a graphical user interface&rdquo;? To me this seems to be stretching the concept quite a bit as the environment of the Server Core looks more like a windows system without explorer (you can get the same look and feel by killing your explorer.exe from task manager) than a true GUIless environment like a Unix shell. </p>
<p>So, it seems that at the end, Windows 2008 still has GUI integrated as part of the OS, just maybe not as tightly as before. And it also seems that Microsoft has realized that it is a bad idea to have GUI components chewing up precious system resources in a server environment where most configurations can easily be done in command mode with skilled system administrators. But it seems that the GUI code is so deeply entangled into the Windows operating system, it might just be virtually impossible to totally componentize&nbsp; it without having to rewrite the whole system, even for Microsoft.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kerrywong.com/2007/10/08/first-take-windows-server-2008-beta-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Physical to VM Backup Strategy for Ubuntu Server</title>
		<link>http://www.kerrywong.com/2007/10/05/a-physical-to-vm-backup-strategy-for-ubuntu-server/</link>
		<comments>http://www.kerrywong.com/2007/10/05/a-physical-to-vm-backup-strategy-for-ubuntu-server/#comments</comments>
		<pubDate>Fri, 05 Oct 2007 10:42:38 +0000</pubDate>
		<dc:creator>kwong</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Ubuntu Server]]></category>
		<category><![CDATA[VMWare]]></category>

		<guid isPermaLink="false">http://www.kerrywong.com/2007/10/05/a-physical-to-vm-backup-strategy-for-ubuntu-server/</guid>
		<description><![CDATA[One benefit of using a Linux environment is that the whole system back up is extremely easy. In fact, if you are doing the backups and restores for the same machine (which is usually the case), you only need to use the TAR command (see details) and no special software is needed. However, sometimes it [...]]]></description>
			<content:encoded><![CDATA[<p>One benefit of using a Linux environment is that the whole system back up is extremely easy.<span id="more-226"></span> In fact, if you are doing the backups and restores for the same machine (which is usually the case), you only need to use the TAR command (see <a href="https://help.ubuntu.com/community/BackupYourSystem/TAR">details</a>) and no special software is needed.</p>
<p>However, sometimes it is desirable to have a standby instance of the machine. For example, in a production environment, if a standby server is hot-synced with the production server then in the event of a production server failure, the standby server can kick in right away and the downtime can be reduced to as little as a couple of minutes. Whereas if a system restore is required, the production server has to be re-imaged and that can take significantly longer.</p>
<p>Fortunately, it is relatively easy to achieve this goal. In this post I will show you how to backup a Ubuntu Server (7.04) system to a Virtual Server. It only requires a few more steps then the plain vanilla TAR backup/restore.</p>
<ul>
<li><strong>Backup</strong></li>
</ul>
<blockquote>
<p>The backup command is almost identical to the command used in a standard backup (e.g. the backup is used to restore to the same server). Because the backup machine might not have the same physical specs as the machine where we perform the backup, we need to exclude a few more items. Particularly, <br />
<strong>/dev, /etc/fstab, /etc/hostname, /etc/iftab </strong>might be different on the backup machine and we need to be careful not to overwrite them when restoring. An example of the TAR command used for backup a system is listed here:</p>
</blockquote>
<blockquote><blockquote>tar -czf /mnt/backup/sysbackup/backup.tgz &#8211;exclude=/proc &#8211;exclude=/dev &#8211;exclude=/lost+found &#8211;exclude=/mnt &#8211;exclude=/sys &#8211;exclude=/cdrom &#8211;exclude=/etc/fstab &#8211;exclude=/etc/hostname &#8211;exclude=/etc/iftab / 
</p></blockquote>
</blockquote>
<ul>
<li><strong>Preparing the Backup VM</strong></li>
</ul>
<blockquote>
<p>Here I use a virtual machine to illustrate the restore-to-a-different machine strategy. In practice though, this can also be a physical machine.</p>
<p>First, you will need to prepare a minimum VM that has the desired OS on it (in my case Ubuntu Server 7.04). The OS is needed because we are using TAR to do the backup and restore. It should be pretty easy though as most server version Linux images support unattended setup.</p>
<p>You do not need to install any security updates afterward as the system will be brought up to date during the restoration process.</p>
</blockquote>
<ul>
<li><strong>Resotring Backup Image to VM</strong></li>
</ul>
<blockquote>
<p>&nbsp;Now copy the backup image over to the VM. Because certain files can only be overwritten when they are not in use, we will perform the restoration in single user mode:</p>
<blockquote>
<p>init 1</p>
</blockquote>
<p>next we will restore the backup image:</p>
<blockquote>
<p>tar -xpzf /backup.tgz -C /</p>
</blockquote>
<p>DO NOT REBOOT AFTER RESTORE! If you reboot right after the restoration, the system will not be in a bootable state (e.g. system drive&#8217;s UUID has not been updated yet, if you reboot now you will not be able to boot into your system. In this case you will have to use a live CD to boot and fix your system from there).</p>
<p>First thing we need to do is to set the correct UUID for the partition we are booting from.</p>
<p>Do a <strong>df </strong>to see which partition is the root partition, e.g.</p>
<blockquote>
<p>Filesystem&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1K-blocks&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Used Available Use% Mounted on</p>
<p>/dev/sda1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 113892200&nbsp;&nbsp; 1007084 107099712&nbsp;&nbsp; 1% /
</p></blockquote>
<p>Find out the UUID of the partition:</p>
<blockquote>
<p>dumpe2fs /dev/sda1 | grep UUID</p>
</blockquote>
<p>Write down the UUID of the partition and double check to make sure that it is written down correctly as wrong UUID will lead to a boot failure.</p>
<p>Now, we need to edit <strong>/boot/grub/menu.lst </strong>to update the boot partition&#8217;s UUID.</p>
<p>In menu.lst, find entries like:</p>
<blockquote>
<p>title&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ubuntu, kernel 2.6.20-16-server<br />
root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (hd0,0)<br />
kernel&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /boot/vmlinuz-2.6.20-16-server root=UUID=401eeff8-c149-4db6-b4df-6cd899b880c6 ro quiet splash<br />
initrd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /boot/initrd.img-2.6.20-16-server<br />
quiet<br />
savedefault</p>
</blockquote>
<p>And change the UUID to the one you just copied down. Again, use extra caution to ensure that the UUID is changed correctly.</p>
<p>Depending on the system, there might be quite a few entries with the same UUID as you might have different kernels installed. If you are not certain, change them all.</p>
<p>&nbsp;Now you should be able to reboot into the restored system. After reboot, you might not have access to the network any longer due to the MAC change of the ethernet during system restore. This can be fixed easily. Do a</p>
<blockquote>
<p>ipconfig -a</p>
</blockquote>
<p>you should see an entry with eth0 (or eth1). Copy down the HWaddr (e.g. 00:52:AA:C2:F9:CD) and use this value to update /etc/iftab</p>
<blockquote><p><strong>eth0</strong> mac 00:52:AA:C2:F9:CD arp 1
</p></blockquote>
<p>Make sure that the ether net interface is updated to eth0.</p>
<p>Now you should be able to use ifup eth0 to bring up the network. see <a href="http://communities.vmware.com/thread/46069">this thread</a> for more detailed discussion on this issue.</p>
</blockquote>
<p>One benefit of this backup strategy is that you are always guaranteed that the backup image works correctly, and you can have the backup system on standby using rsync to synchronize the backup machine and your production machine. And in the event of a disaster, your backup machine can kick in immediately.</p>
<p>Restoring the image back to the production machine is actually easier since you can just restore the image back without the need to change any configurations mentioned above (however, it is still a good idea to check).</p>
<blockquote>
<p>&nbsp;</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.kerrywong.com/2007/10/05/a-physical-to-vm-backup-strategy-for-ubuntu-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On OfficeLive Beta</title>
		<link>http://www.kerrywong.com/2007/10/01/on-officelive-beta/</link>
		<comments>http://www.kerrywong.com/2007/10/01/on-officelive-beta/#comments</comments>
		<pubDate>Mon, 01 Oct 2007 10:53:05 +0000</pubDate>
		<dc:creator>kwong</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Office Live]]></category>

		<guid isPermaLink="false">http://www.kerrywong.com/2007/10/01/on-officelive-beta/</guid>
		<description><![CDATA[After reading Mary Jo Foley&#8217;s article on ZDNet, I thought that I would give OfficeLive a try. Of course, my first experience was not all that impressive. At first, I went to the site using FireFox and here is what I got: OK, here is the first thing I saw as OfficeLive&#8217;s biggest limitation&#8211;You have [...]]]></description>
			<content:encoded><![CDATA[<p>After reading <a href="http://blogs.zdnet.com/microsoft/?p=762">Mary Jo Foley&#8217;s article</a> on ZDNet, I thought that I would give OfficeLive a try. Of course, my first experience was not all that impressive.<span id="more-221"></span></p>
<p>At first, I went to the site using FireFox and here is what I got:</p>
<div align="center"><img src="/blog/wp-content/uploads/2007/10/officelive_ff1.GIF" alt="" /></div>
<p align="left">OK, here is the first thing I saw as OfficeLive&#8217;s biggest limitation&#8211;You have to use IE in order to use it. Whereas for Google Doc, you can pretty much use any modern browsers.</p>
<p>So I fired up an instance of IE and went to the same URL. After a few steps into my registration process, I got this error message:</p>
<p align="center"><img alt="" src="/blog/wp-content/uploads/2007/10/officelive_ie2.gif" /></p>
<p>OK, I guess it is really not for prime time yet&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kerrywong.com/2007/10/01/on-officelive-beta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
