<?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>KWrite &#187; Technology</title>
	<atom:link href="http://blog.kentran.net/category/computer/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.kentran.net</link>
	<description>Get Real, Be Rational</description>
	<lastBuildDate>Sun, 05 Sep 2010 18:18: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>Google versus Apple</title>
		<link>http://blog.kentran.net/2010/05/google-versus-apple/</link>
		<comments>http://blog.kentran.net/2010/05/google-versus-apple/#comments</comments>
		<pubDate>Wed, 12 May 2010 23:50:14 +0000</pubDate>
		<dc:creator>Kenneth Tran</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.kentran.net/?p=145</guid>
		<description><![CDATA[<p></p> <p>Does it ring a bell?</p> <p>Isn&#8217;t it similar to the war between Microsoft and Apple in the early 90s? While Microsoft focused on creating a platform and inviting hardware/software partners to develop on that platform, Appled tried to produce all-in-one products at its best. Apple had some revolutionary products at the time and <span style="color:#777"> . . . &#8594; Read More: <a href="http://blog.kentran.net/2010/05/google-versus-apple/">Google versus Apple</a></span>]]></description>
			<content:encoded><![CDATA[<p><img src="http://eleganceit.com/blog/wp-content/uploads/apple-vs-google_2.jpg" alt="http://eleganceit.com/blog/wp-content/uploads/apple-vs-google_2.jpg" width="274" height="185" /></p>
<p>Does it ring a bell?<span id="more-145"></span></p>
<p>Isn&#8217;t it similar to the war between Microsoft and Apple in the early 90s? While Microsoft focused on creating a platform and inviting hardware/software partners to develop on that platform, Appled tried to produce all-in-one products at its best. Apple had some revolutionary products at the time and they once were hugely successful. But it the end, you know who won the war.</p>
<p>It looks like that Apple is walking the same path. Steve Jobs is clearly obsessed with his idealistic philosophy. Perhaps <a href="http://www.youtube.com/watch?v=PEHNrqPkefI">the vision of Steve Jobs in 1997</a>, shortly after he came back to Apple, is only temporary.</p>
<p>I predict that Google Android will leap over Apple iPhone anytime soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kentran.net/2010/05/google-versus-apple/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Bibles&#8221; in High Performance Computing</title>
		<link>http://blog.kentran.net/2010/03/bibles-in-high-performance-computing/</link>
		<comments>http://blog.kentran.net/2010/03/bibles-in-high-performance-computing/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 03:18:07 +0000</pubDate>
		<dc:creator>Kenneth Tran</dc:creator>
				<category><![CDATA[Math]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Sciences]]></category>

		<guid isPermaLink="false">http://blog.kentran.net/?p=134</guid>
		<description><![CDATA[<p>This is the continuation of my series &#8220;Bibles&#8221; in Applied Math. I write a new page for this section because it is a bit off from what most people call &#8220;Applied Math&#8221;. Further, this topic deserves a blog entry, or even a forum, on its own because being able to make your code run <span style="color:#777"> . . . &#8594; Read More: <a href="http://blog.kentran.net/2010/03/bibles-in-high-performance-computing/">&#8220;Bibles&#8221; in High Performance Computing</a></span>]]></description>
			<content:encoded><![CDATA[<p>This is the continuation of my series <a href="http://blog.kentran.net/2008/03/30/bible/">&#8220;Bibles&#8221; in Applied Math</a>. I write a new page for this section because it is a bit off from what most people call &#8220;Applied Math&#8221;. Further, this topic deserves a blog entry, or even a forum, on its own because being able to make your code run 10-15% faster (or even 90% faster if you haven&#8217;t mastered certain level of the art of programming) is a big deal nowadays. It can even land you a lucrative job (<a href="http://www.nytimes.com/2009/07/24/business/24trading.html?_r=3&amp;partner=rss&amp;emc=rss">here&#8217;s an example</a>).</p>
<p>Suppose that you&#8217;re a master of Numerical Algorithms. You&#8217;ve spent 2 years working on a complex engineering problem and recently have developed a new algorithm that can solve the problem in linear time instead of the state-of-the-art <img src='http://s.wordpress.com/latex.php?latex=O%5Cleft%28N%5Clog%20N%29%5Cright%29&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='O\left(N\log N)\right)' title='O\left(N\log N)\right)' class='latex' />. Your new solver (and the 2 years) would be wasted if it is poorly written and/or poorly compiled. Here are a couple out of thousands of common poor programming practices.</p>
<p><strong>1. Computing the same thing over and over again</strong></p>
<pre class="brush: cpp;">
for (int k=0;k&lt;100;k++) {
 out[k] = 0;
 for (int i=0;i&lt;M;i++)
  for (int j=0;j&lt;N;j++)
   out[k] += kernel(i,j) * in[k];
}
</pre>
<p>In this example, kernel(i,j) is re-computed 99 times. Because this matrix Kernel is independent from the outer loop, it can and most of the times should be pre-computed. If the computation of kernel is computationally intensive, which is common, pre-computation of the matrix can make your program run 99.9 times faster.</p>
<p><strong>2. Using the right flags when compiling</strong></p>
<pre class="brush: plain;">
[zer0ne@ion]$ g++ myProgram.cpp -o myProgram
[zer0ne@ion]$ ./myProgram
Total time: 68.74 seconds
[zer0ne@ion]$ g++ -O3 myProgram.cpp -o myProgram
[zer0ne@ion]$ ./myProgram
Total time: 13.9 seconds
[zer0ne@ion]$ g++ -O3 -DNDEBUG myProgram.cpp -o myProgram
[zer0ne@ion]$ ./myProgram
Total time: 11.54 seconds
</pre>
<p>So, if you&#8217;re already good at designing algorithms, it&#8217;s worth to learn a bit of performance optimization tricks. I am no expert in HPC, let alone related fields such as Computer  Architectures or Compilers, so my best bet is to point you to some great books out there. Also for the same reason, I&#8217;ll appreciate if you share your own tips.</p>
<ol>
<li><a href="http://www.amazon.com/Performance-Optimization-Numerically-Intensive-Environments/dp/0898714842/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1268530349&amp;sr=8-1">Performance Optimization of Numerically Intensive Codes by Hoisie</a>. $73 seems high for a 173-page book but this thin bible is worth every penny. It covers all basic stuffs such as CPU architecture, compiler optimization, memory localit, profiling, etc.</li>
<li><a href="http://www.amazon.com/Performance-Computing-Architectures-Optimization-Benchmarks/dp/156592312X/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1268536364&amp;sr=1-1">High Performance Computing by Kevin Dowd &amp; Charles Severance</a>. Similar contents but this book explains things in greater depth.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.kentran.net/2010/03/bibles-in-high-performance-computing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wave: the new monster product of Google</title>
		<link>http://blog.kentran.net/2009/05/wave-the-new-monster-product-of-google/</link>
		<comments>http://blog.kentran.net/2009/05/wave-the-new-monster-product-of-google/#comments</comments>
		<pubDate>Thu, 28 May 2009 21:49:15 +0000</pubDate>
		<dc:creator>Kenneth Tran</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.kentran.net/?p=106</guid>
		<description><![CDATA[<p>The product hasn&#8217;t been released yet but you all can see the demo below.</p> <p></p> <p>In short, I bet anything that this product will revolutionize the way this world communicates, just like how emails triumphed over regular mails. The impact of this product can be as big as of Google Search. No <span style="color:#777"> . . . &#8594; Read More: <a href="http://blog.kentran.net/2009/05/wave-the-new-monster-product-of-google/">Wave: the new monster product of Google</a></span>]]></description>
			<content:encoded><![CDATA[<p>The product hasn&#8217;t been released yet but you all can see the demo below.</p>
<p><object width="560" height="340" data="http://www.youtube.com/v/v_UyVmITiYQ&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/v_UyVmITiYQ&amp;hl=en&amp;fs=1" /><param name="allowfullscreen" value="true" /></object></p>
<p>In short, I bet anything that this product will revolutionize the way this world communicates, just like how emails triumphed over regular mails. The impact of this product can be as big as of Google Search. No joke!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kentran.net/2009/05/wave-the-new-monster-product-of-google/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>My favorite Firefox plugins</title>
		<link>http://blog.kentran.net/2008/03/my-top-rated-firefox-plugins/</link>
		<comments>http://blog.kentran.net/2008/03/my-top-rated-firefox-plugins/#comments</comments>
		<pubDate>Thu, 27 Mar 2008 23:34:25 +0000</pubDate>
		<dc:creator>Kenneth Tran</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.khoatran.com/2008/03/27/my-top-rated-firefox-plugins/</guid>
		<description><![CDATA[ Adblock Plus. Banners/ads on websites all look annoying. In many cases, they take a lot of time to load and can slow down your web browser significantly. Adblock Plus is a solution. It even kills text-based Google ads. Isn&#8217;t it nice? GreaseMonkey. This is actually the most powerful plugin if you&#8217;re willing to <span style="color:#777"> . . . &#8594; Read More: <a href="http://blog.kentran.net/2008/03/my-top-rated-firefox-plugins/">My favorite Firefox plugins</a></span>]]></description>
			<content:encoded><![CDATA[<ol>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/1865">Adblock Plus</a>. Banners/ads on websites all look annoying. In many cases, they take a lot of time to load and can slow down your web browser significantly. Adblock Plus is a solution. It even kills text-based Google ads. Isn&#8217;t it nice?</li>
<li><a href="http://en.wikipedia.org/wiki/Greasemonkey">GreaseMonkey</a>. This is actually the most powerful plugin if you&#8217;re willing to use it. Very simple, it&#8217;s basically a script manager. You can browse already written scripts <a href="http://userscripts.org/scripts?sort=installs">here</a> and add the ones you like to your GreaseMonkey or you can also write your own script. It is similar to the freeware <a href="http://www.autohotkey.com/">autohotkeys</a> in a sense.</li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/743">CustomizeGoogle</a>.</li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/339">Google Search Keys</a>. If you&#8217;re a geek who hates using mouse (or touchpad, trackpoint, etc.) but loves the search engine, you may love this lightweight plugin as well.</li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/3361">Translator</a>. Do you sometimes have to read French/German/Chinese webs? If so, use this plugin.</li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/189">Google Preview</a>. It simply helps make web search more enjoyable.</li>
</ol>
<p align="justify">What are yours?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kentran.net/2008/03/my-top-rated-firefox-plugins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why iPhone sucks</title>
		<link>http://blog.kentran.net/2008/03/why-iphone-sucks/</link>
		<comments>http://blog.kentran.net/2008/03/why-iphone-sucks/#comments</comments>
		<pubDate>Sat, 15 Mar 2008 19:58:28 +0000</pubDate>
		<dc:creator>Kenneth Tran</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.khoatran.com/2008/03/15/why-iphone-sucks/</guid>
		<description><![CDATA[<p align="justify">It really does!</p> <p align="justify"> For Windows users, iPhone can only synchronize the contacts and calendar with Outlook (Express). This is very strange because Apple doesn&#8217;t seem to be a close friend of Micro$oft. Corollary 1: for non-Outlook users, like me, iPhone is bloody sucky. Corollary 2: even worse, it cannot synchronize with <span style="color:#777"> . . . &#8594; Read More: <a href="http://blog.kentran.net/2008/03/why-iphone-sucks/">Why iPhone sucks</a></span>]]></description>
			<content:encoded><![CDATA[<p align="justify">It really does!</p>
<p align="justify">
<ol>
<li>For Windows users, iPhone can only synchronize the contacts and calendar with Outlook (Express). This is very strange because Apple doesn&#8217;t seem to be a close friend of Micro$oft.
<ul>
<li>Corollary 1: for non-Outlook users, like me, iPhone is bloody sucky.</li>
<li>Corollary 2: even worse, it cannot synchronize with Google Calendar.</li>
<li>Conclusion: this limitation is really a big drawback of iPhone. Well, if I was a software engineer, I would have tried to write a patch for iTunes so that it can synchronize with Thunderbird (and Google).</li>
</ul>
</li>
<li>iPhone is not designed for Linux users. Why?
<ul>
<li><em>[Skip this item if you're not a programmer]</em> As Linux and Mac OS share similar platforms, I was at first surprised why Apple developers don&#8217;t spend a few days tuning and compiling an iTunes version for Linux. Let&#8217;s dig a bit deeper. As I&#8217;ve just learned, while there&#8217;re some similarities between the two OS&#8217;s kernels, programming in Mac is quite different. Loosely speaking, Apple builds in Mac an object-oriented framework called <a href="http://developer.apple.com/documentation/Porting/Conceptual/PortingUnix/environments/chapter_6_section_2.html">Cocoa</a> to utilize Mac&#8217;s *strengths*. The native language for this framework is <a href="http://en.wikipedia.org/wiki/Objective-C">Objective-C</a>, which is not quite the same as C++. In one sentence, it&#8217;s not that easy to compile the source code of iTunes, written in Objective-C, in Linux.</li>
<li>It&#8217;s of course as hard or harder to rewrite iTunes for Windows. However, Windows has a much larger market share, which is worth the effort (even when there&#8217;s no such thing called iPhone). Moreover, only Windows/Mac users are hyped about the iPhone.</li>
</ul>
</li>
<li>It doesn&#8217;t have the <a href="http://en.wikipedia.org/wiki/Push_e-mail">push-email</a> feature that <a href="http://en.wikipedia.org/wiki/BlackBerry">Blackberry</a> has. Being said, you have to check your email manually or to set iPhone to check emails periodically (every 15/30/60 minutes), which makes the battery life go down pretty fast.
<ul>
<li>This is the biggest drawback for a lot of users, especially corporate people. Blackberry currently dominates the smart phone market mainly due to this reason. As I&#8217;m writing this, <a href="http://events.apple.com.edgesuite.net/rtp20e92/event/index.html?internal=fj2l3s9dm">Steve Jobs had already announced that push-email will be available on iPhone starting June 2008</a> [it's an entertaining presentation for iPhone developers].</li>
<li>However, frankly said, I don&#8217;t care shit about this feature as I would check my emails manually anyway. As a non-corporateman, I find email notifiers very irritating and time wasting.</li>
</ul>
</li>
</ol>
<p align="justify">Don&#8217;t get me wrong. That iPhone sucks doesn&#8217;t mean other devices don&#8217;t. In fact, all available mobile devices are far from being desirable, in one way or another. Weighing all the options, I still place iPhone as the top mobile device. It just has to improve much more to keep its top spot stable.</p>
<p align="justify">What struck me is that all the features above can be easily implemented, with some effort, but haven&#8217;t found their way to reality yet. I bet they&#8217;ll all be available within next year, after <a href="http://blog.wired.com/gadgets/2008/03/more-iphone-20.html">Apple releases their iPhone firmware 2.0 in 06/08</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kentran.net/2008/03/why-iphone-sucks/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Programming Tips (C++)</title>
		<link>http://blog.kentran.net/2008/03/programming-tips-c/</link>
		<comments>http://blog.kentran.net/2008/03/programming-tips-c/#comments</comments>
		<pubDate>Sun, 02 Mar 2008 17:03:51 +0000</pubDate>
		<dc:creator>Kenneth Tran</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[C++]]></category>

		<guid isPermaLink="false">http://www.khoatran.com/blog/?p=52</guid>
		<description><![CDATA[<p>Since I&#8217;ve been back coding for the last few days, I&#8217;d like to save some useful programming tips that I&#8217;ve just figured out.</p> <p>1. Linear Algebra package: use uBlas. uBlas, developped by Boost, is very object-oriented and easy to use. Not only does it support linear algebra, it also nicely supports sparse matrix storage <span style="color:#777"> . . . &#8594; Read More: <a href="http://blog.kentran.net/2008/03/programming-tips-c/">Programming Tips (C++)</a></span>]]></description>
			<content:encoded><![CDATA[<p>Since I&#8217;ve been back coding for the last few days, I&#8217;d like to save some useful programming tips that I&#8217;ve just figured out.</p>
<p><strong>1. Linear Algebra package</strong>: use <a href="http://www.boost.org/libs/numeric/ublas/doc/index.htm" target="_blank">uBlas</a>. uBlas, developped by <a href="http://en.wikipedia.org/wiki/Boost_C%2B%2B_Libraries" target="_blank">Boost</a>, is very object-oriented and easy to use. Not only does it support linear algebra, it also nicely supports sparse matrix storage and processing, which is important for iterative methods (when solving PDEs by Finite Difference or Finite Element). Take a look at my little program below, which constructs a sparse matrix when solving a boundary value problem.<br />
<!-- BEGIN TEMPLATE: bbcode_code --></p>
<p class="smallfont" style="margin-bottom: 2px">Code:</p>
<pre style="border: 1px inset ; margin: 0pt; padding: 2px; overflow: auto; width: 500px; height: 466px; text-align: left">#include &lt;boost/numeric/ublas/vector.hpp&gt;

#include &lt;boost/numeric/ublas/matrix_sparse.hpp&gt;

using namespace std;

namespace ublas = boost::numeric::ublas;const int N = 5000; // number of discretizations on each direction

typedef ublas::vector&lt;double&gt; Vector;

typedef ublas::compressed_matrix&lt;double&gt; Matrix; // Sparse Matrix class

void initializeMatrix(Matrix&amp; A) {

    long k=0;

    for (int i=0; i&lt;N; i++)

        for (int j=0; j&lt;N; j++) {

            A(k,k) = -4;

            // adjacent elements in x-direction

            if (i&gt;0) A(k,k-N)=1;

            if (i&lt;N-1)

                if (i==0) A(k,k+N)=2; // Neumann condition on this side

                else A(k,k+N)=1; //Dirichlet condition on this side

            // adjacent elements in y-direction

            if (j&gt;0) A(k,k-1)=1;

            if (j&lt;N-1)

                if (j==0) A(k,k+1)=2; // Neumann condition

                else A(k,k+1)=1; // Dirichlet condition

k++;

        }

}</pre>
<p><!-- END TEMPLATE: bbcode_code -->Drawbacks of uBlas</p>
<ul>
<li>It has poor performance compared to (atlas-)Blas. One reason is that it is the most abstract linear algebra library (easier to use). Another critical reason is that it performs many *useful* (debugging) checks. The performance issue can be overcome through some optimization tricks, such as one that I described in the <strong>compiler</strong> section. Check out the <a href="http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?Effective_UBLAS" target="_blank">effective uBlas wiki</a> page for more performance tips. If performance is critical, consider <a href="http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?Linear_Algebra_With_UBLAS" target="_blank">binding with Atlas</a>.</li>
<li>Poor documentation: if you&#8217;re used to Java&#8217;s API (which is terrific) as I was, using uBlas as first may be difficult because uBlas&#8217;s documentation is, now, quite short and lacks many details. The developers are working hard on it though. Moreover, they also maintain a main mailing list (and some other satellite sites) where you can ask questions.</li>
</ul>
<p><strong>2. Quant Finance Library: </strong>use <a href="http://quantlib.org/reference/index.html" target="_blank"><strong>QuantLib</strong></a>, the major open-source library</p>
<p><strong>3. Compiler</strong>: when finished with your programming/debugging, consider using <strong>-O3</strong> and <strong>-DNDEBUG</strong> for a much better performance (thanks to Tuyen). Most of the time, it optimizes the program significantly. Below is an illustration.<br />
<!-- BEGIN TEMPLATE: bbcode_code --></p>
<p class="smallfont" style="margin-bottom: 2px">Code:</p>
<pre style="border: 1px inset ; margin: 0pt; padding: 2px; overflow: auto; width: 500px; height: 210px; text-align: left">[khoa@trinidad]$ g++ myProg.cpp -o myProg

[khoa@trinidad]$ ./myProg

Total time: <strong>68.74</strong> seconds

[khoa@trinidad]$ g++ <strong>-DNDEBUG</strong> myProg.cpp -o myProg

[khoa@trinidad]$ ./myProg

Total time: <strong>49.43</strong> seconds

[khoa@trinidad courses]$ g++ <strong>-O3</strong> myProg.cpp -o myProg

[khoa@trinidad courses]$ ./myProg

Total time: <strong>13.9</strong> seconds

[khoa@trinidad]$ g++ <strong>-O3 -DNDEBUG</strong> myProg.cpp -o myProg

[khoa@trinidad]$ ./myProg

Total time: <strong>11.54</strong> seconds</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.kentran.net/2008/03/programming-tips-c/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The lecture of a lifetime</title>
		<link>http://blog.kentran.net/2007/09/the-lecture-of-a-lifetime/</link>
		<comments>http://blog.kentran.net/2007/09/the-lecture-of-a-lifetime/#comments</comments>
		<pubDate>Fri, 21 Sep 2007 19:48:22 +0000</pubDate>
		<dc:creator>Kenneth Tran</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[20]]></category>

		<guid isPermaLink="false">http://www.khoatran.com/blog/?p=35</guid>
		<description><![CDATA[<p style="text-align: justify">Intro: Once awhile, I introduced an inspiring commencement address by Steve Jobs (Apple&#8217;s CEO) at Stanford about life. Now comes another sensational one, also by a techie and also about life: the last lecture by Randy Pausch.</p> <p>Randy Pausch is a highly respected Computer Science Professor at Carnegie Mellon University, mostly known <span style="color:#777"> . . . &#8594; Read More: <a href="http://blog.kentran.net/2007/09/the-lecture-of-a-lifetime/">The lecture of a lifetime</a></span>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify"><strong>Intro:</strong> Once awhile, I introduced an <a href="http://youtube.com/watch?v=D1R-jKKp3NA" target="_blank">inspiring  commencement address</a> by Steve Jobs (Apple&#8217;s CEO) at Stanford about life. Now comes another sensational one, also by a techie and also about life: the last lecture by Randy Pausch.</p>
<p>Randy Pausch is a highly respected Computer Science Professor at Carnegie Mellon University, mostly known for his work in Human-Computer Interaction.</p>
<p style="text-align: justify">
<table style="text-align: left; margin-left: 0pt" border="0" cellspacing="0" cellpadding="6">
<tbody>
<tr>
<td>Quote by <strong>WSJ</strong></p>
<p style="font-style: italic"><em>What wisdom would we impart to the world if we knew it was our last chance? For Carnegie Mellon professor Randy Pausch, the question isn&#8217;t rhetorical &#8212; he&#8217;s dying of cancer.</em></p>
</td>
</tr>
</tbody>
</table>
<p>Note that the 3rd story of Steve is also about his struggling with cancer. Fortunately, he survived and then gave a speech about death. Randy gave words of wisdom knowing that he would die in a few months. Instead of talking about death, he talked about how he has &#8220;achieved&#8221; his childhood dreams, how he has enabled others achieve their childhood dreams, and how we achieve our dreams.</p>
<p><span id="more-35"></span></p>
<p>Watch the full lecture <a href="http://wms.andrew.cmu.edu/001/pausch.wmv" target="_blank">here</a>. I have been stressed by work recently. Putting everything aside to watch this 2h-long video (lecture + recognitions) is the best thing that I did today.</p>
<p>Now comes the <a href="http://online.wsj.com/article/SB119024238402033039.html?mod=fpa_mostpop" target="_blank">article by the Wall Street Journal</a> (of course, it&#8217;s not and  never enough about Randy).</p>
<p><strong>A Beloved Professor Delivers The Lecture of a Lifetime</strong></p>
<p><a href="http://www.youtube.com/watch?v=ZQtwEKlUutA"><img src="http://img.youtube.com/vi/ZQtwEKlUutA/default.jpg" width="130" height="97" border=0></a></p>
<p><em>What wisdom would we impart to the world if we knew it was our last chance? For Carnegie Mellon professor Randy Pausch, the question isn&#8217;t rhetorical &#8212; he&#8217;s dying of cancer.</em></p>
<p class="times">Randy Pausch, a Carnegie Mellon University computer-science professor, was about to give a lecture Tuesday afternoon, but before he said a word, he received a standing ovation from 400 students and colleagues.</p>
<p class="times">He motioned to them to sit down. &#8220;Make me earn it,&#8221; he said.</p>
<p class="times">They had come to see him give what was billed as his &#8220;last lecture.&#8221; This is a common title for talks on college campuses today. Schools such as Stanford and the University of Alabama have mounted &#8220;Last Lecture Series,&#8221; in which top professors are asked to think deeply about what matters to them and to give hypothetical final talks. For the audience, the question to be mulled is this: What wisdom would we impart to the world if we knew it was our last chance?</p>
<p class="times">It can be an intriguing hour, watching healthy professors consider their demise and ruminate over subjects dear to them. At the University of Northern Iowa, instructor Penny O&#8217;Connor recently titled her lecture &#8220;Get Over Yourself.&#8221; At Cornell, Ellis Hanson, who teaches a course titled &#8220;Desire,&#8221; spoke about sex and technology.</p>
<p class="times">At Carnegie Mellon, however, Dr. Pausch&#8217;s speech was more than just an academic exercise. The 46-year-old father of three has pancreatic cancer and expects to live for just a few months. His lecture, using images on a giant screen, turned out to be a rollicking and riveting journey through the lessons of his life.</p>
<p class="times">He began by showing his CT scans, revealing 10 tumors on his liver. But after that, he talked about living. If anyone expected him to be morose, he said, &#8220;I&#8217;m sorry to disappoint you.&#8221; He then dropped to the floor and did one-handed pushups.</p>
<table class="imgrgtbdy" border="0" cellspacing="0" cellpadding="0" width="150" align="right">
<tbody>
<tr>
<td><img src="http://online.wsj.com/public/resources/images/PJ-AK971_pjMOVE_20070919201852.jpg" border="0" alt="[photo]" hspace="0" vspace="0" width="150" height="291" /></td>
</tr>
<tr>
<td class="medcptnocrd">Randy Pausch and his three children, ages 5, 2 and 1.</td>
</tr>
</tbody>
</table>
<p class="times">Clicking through photos of himself as a boy, he talked about his childhood dreams: to win giant stuffed animals at carnivals, to walk in zero gravity, to design Disney rides, to write a World Book entry. By adulthood, he had achieved each goal. As proof, he had students carry out all the huge stuffed animals he&#8217;d won in his life, which he gave to audience members. After all, he doesn&#8217;t need them anymore.</p>
<p class="times">He paid tribute to his techie background. &#8220;I&#8217;ve experienced a deathbed conversion,&#8221; he said, smiling. &#8220;I just bought a Macintosh.&#8221; Flashing his rejection letters on the screen, he talked about setbacks in his career, repeating: &#8220;Brick walls are there for a reason. They let us prove how badly we want things.&#8221; He encouraged us to be patient with others. &#8220;Wait long enough, and people will surprise and impress you.&#8221; After showing photos of his childhood bedroom, decorated with mathematical notations he&#8217;d drawn on the walls, he said: &#8220;If your kids want to paint their bedrooms, as a favor to me, let &#8216;em do it.&#8221;</p>
<p class="times">While displaying photos of his bosses and students over the years, he said that helping others fulfill their dreams is even more fun than achieving your own. He talked of requiring his students to create videogames without sex and violence. &#8220;You&#8217;d be surprised how many 19-year-old boys run out of ideas when you take those possibilities away,&#8221; he said, but they all rose to the challenge.</p>
<p class="times">He also saluted his parents, who let him make his childhood bedroom his domain, even if his wall etchings hurt the home&#8217;s resale value. He knew his mom was proud of him when he got his Ph.D, he said, despite how she&#8217;d introduce him: &#8220;This is my son. He&#8217;s a doctor, but not the kind who helps people.&#8221;</p>
<p class="times">He then spoke about his legacy. Considered one of the nation&#8217;s foremost teachers of videogame and virtual-reality technology, he helped develop &#8220;Alice,&#8221; a Carnegie Mellon software project that allows people to easily create 3-D animations. It had one million downloads in the past year, and usage is expected to soar.</p>
<p class="times">&#8220;Like Moses, I get to see the Promised Land, but I don&#8217;t get to step foot in it,&#8221; Dr. Pausch said. &#8220;That&#8217;s OK. I will live on in Alice.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kentran.net/2007/09/the-lecture-of-a-lifetime/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Random commands</title>
		<link>http://blog.kentran.net/2007/03/useful-commands/</link>
		<comments>http://blog.kentran.net/2007/03/useful-commands/#comments</comments>
		<pubDate>Sun, 01 Apr 2007 03:01:18 +0000</pubDate>
		<dc:creator>Kenneth Tran</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[22]]></category>
		<category><![CDATA[25]]></category>

		<guid isPermaLink="false">http://www.khoatran.com/blog/?p=25</guid>
		<description><![CDATA[In Terminal: Change the title of terminal tabs: PROMPT_COMMAND='echo -ne "\033]0;$title\007"' Tar with gzip: tar -czvf $archive.tgz $files Untar: tar -xzvf $filename Download a file from a url: wget $url VI: Delete a line: dd Undo: u Redo: ctrl-r Move to [$] screen: [top]H, [middle]M, [bottom]L Move to line n: :n (for the last <span style="color:#777"> . . . &#8594; Read More: <a href="http://blog.kentran.net/2007/03/useful-commands/">Random commands</a></span>]]></description>
			<content:encoded><![CDATA[<h3><strong>In Terminal</strong>:</h3>
<ol>
<li><strong>Change the title of terminal tabs</strong>: <code>PROMPT_COMMAND='echo -ne "\033]0;<span style="color: #ff6600;">$title</span>\007"'</code></li>
<li><strong>Tar with gzip</strong>: tar -czvf <span style="color: #ff6600;">$archive</span>.tgz <span style="color: #ff6600;">$files</span></li>
<li><strong>Untar</strong>: tar -xzvf <span style="color: #ff6600;">$filename</span></li>
<li><strong>Download a file from a url</strong>: wget <span style="color: #ff6600;">$url</span></li>
</ol>
<h3><strong>VI</strong>:</h3>
<ol>
<li><strong>Delete a line</strong>: dd</li>
<li><strong>Undo</strong>: u</li>
<li><strong>Redo</strong>: ctrl-r</li>
<li><strong>Move to [$] screen</strong>: [top]H, [middle]M, [bottom]L</li>
<li><strong>Move to line n</strong>: :n (for the last line of the file: G)</li>
</ol>
<h3><strong>Google</strong>:</h3>
<ol>
<li><strong>Music Search:</strong> -inurl:(htm|html|php) intitle:”index of” +”last modified” +”parent directory” +description +size +(wma|mp3) “<span style="color: #ff6600;">$songname</span>&#8220;</li>
</ol>
<h3><strong>HTML</strong>:</h3>
<ol>
<li><strong>Embed mp3</strong>:&lt;<span class="start-tag">br</span>&gt;&lt;<span class="start-tag">embed</span><span class="attribute-name"> type</span>=<span class="attribute-value">&#8220;application/x-mplayer2&#8243; </span><span class="attribute-name">src</span>=<span class="attribute-value">&#8220;<span style="color: #ff6600;">$url</span>&#8221; </span><span class="attribute-name">height</span>=<span class="attribute-value">45 </span><span class="attribute-name">width</span>=<span class="attribute-value">280 </span><span class="attribute-name">autostart</span>=<span class="attribute-value">false</span>&gt;&lt;/<span class="end-tag">embed</span>&gt;&lt;<span class="start-tag">br</span>&gt;</li>
<li><strong>Embed real</strong>:&lt;<span class="start-tag">br</span>&gt;&lt;<span class="start-tag">embed</span><span class="attribute-name"> type</span>=<span class="attribute-value">&#8220;audio/x-pn-realaudio-plugin&#8221; </span><span class="attribute-name">src</span>=<span class="attribute-value">&#8220;<span style="color: #ff6600;">$url</span>&#8221; </span><span class="attribute-name">height</span>=<span class="attribute-value">45 </span><span class="attribute-name">width</span>=<span class="attribute-value">280 </span><span class="attribute-name">autostart</span>=<span class="attribute-value">false</span>&gt;&lt;/<span class="end-tag">embed</span>&gt;&lt;<span class="start-tag">br</span>&gt;</li>
</ol>
<p><strong>Windows File Sharing</strong>: http://handson.ca/tutorials/sharexpp.html</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kentran.net/2007/03/useful-commands/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Steve Jobs and his iPhone</title>
		<link>http://blog.kentran.net/2007/01/steve-jobs-and-his-iphone/</link>
		<comments>http://blog.kentran.net/2007/01/steve-jobs-and-his-iphone/#comments</comments>
		<pubDate>Thu, 18 Jan 2007 12:35:06 +0000</pubDate>
		<dc:creator>Kenneth Tran</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[30]]></category>

		<guid isPermaLink="false">http://www.khoatran.com/blog/?p=17</guid>
		<description><![CDATA[<p>Earlier yesterday, I watched Bill Gates&#8217; keynote address given at the International CES 2007. It was indeed a great show. If you follow it until the end, you&#8217;d probably agree with me. Then, I turned to see Steve Jobs&#8217; keynote given at the Macworld Conference 2007. I was completely thrilled by Steve and his <span style="color:#777"> . . . &#8594; Read More: <a href="http://blog.kentran.net/2007/01/steve-jobs-and-his-iphone/">Steve Jobs and his iPhone</a></span>]]></description>
			<content:encoded><![CDATA[<p>Earlier yesterday, I watched <a href="http://www.microsoft.com/winme/0701/29031/ces.asx">Bill Gates&#8217; keynote address</a> given at the <a href="http://www.cesweb.org/default.asp">International CES 2007</a>.  It was indeed a great show. If you follow it until the end, you&#8217;d probably agree with me. Then, I turned to see <a href="http://events.apple.com.edgesuite.net/j47d52oo/event/">Steve Jobs&#8217; keynote</a> given at the Macworld Conference 2007. I was completely thrilled by Steve and his iPhone. It was a really long presentation: 2 hours. If you often attend presentations or at least scientific presentations, you know that 30 minutes are usually enough for you to fall asleep. But, his introduction of the iPhone is different. It will keep you interested all the way to the end.</p>
<p>Recently, I have developed an admiration for Steve Jobs due to his way of business, his experience, and his extraordinary public speaking skills (although like Bill, he dropped out of college after 1 semester). Another classic example is his commencement speech in 2005, which inspired a a crowd of Stanford graduates and probably would change the way many of them see life.</p>
<p><a href="http://www.youtube.com/watch?v=D1R-jKKp3NA"><img src="http://img.youtube.com/vi/D1R-jKKp3NA/default.jpg" width="130" height="97" border=0></a></p>
<p>His <a href="http://video.google.com/videoplay?docid=4436710013736446644">1997 Macworld Conference keynote</a> is also a <strong>masterpiece</strong>. Seriously, this 10-years-old talk has changed my attitude toward Apple&#8217;s human capital and future Apple products.</p>
<p>It&#8217;s not a bad idea to compile a list of top 10-20 Steve&#8217;s presentations. I&#8217;d be interested in seeing such a list.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kentran.net/2007/01/steve-jobs-and-his-iphone/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
<enclosure url="http://www.microsoft.com/winme/0701/29031/ces.asx" length="124" type="video/x-ms-asf" />
		</item>
	</channel>
</rss>
