<?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>A Noted Path by Theodore Nguyen-Cao &#187; geekery</title>
	<atom:link href="http://www.theodorenguyen-cao.com/tag/geekery/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.theodorenguyen-cao.com</link>
	<description>Personal blog of Theodore Nguyen-Cao</description>
	<lastBuildDate>Wed, 21 Jul 2010 15:40:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>Pair Programming &gt; Code Reviews</title>
		<link>http://www.theodorenguyen-cao.com/2008/10/29/pair-programming-greater-than-code-reviews/</link>
		<comments>http://www.theodorenguyen-cao.com/2008/10/29/pair-programming-greater-than-code-reviews/#comments</comments>
		<pubDate>Wed, 29 Oct 2008 04:29:20 +0000</pubDate>
		<dc:creator>Theo</dc:creator>
				<category><![CDATA[geekery]]></category>

		<guid isPermaLink="false">http://www.theodorenguyen-cao.com/?p=132</guid>
		<description><![CDATA[With the rise in popularity of agile software methodologies, the practice of formal code reviews has been often put against pair programming. There are proponents for both and some even recommend practicing both. As time goes on, I&#8217;ve been able to do a little bit of both and I&#8217;ve developed a strong preference for pair [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">With the rise in popularity of agile software methodologies, the practice of formal <a href="http://en.wikipedia.org/wiki/Code_review" target="_blank">code reviews</a> has been often put against <a href="http://en.wikipedia.org/wiki/Pair_programming" target="_blank">pair programming</a>.  There are proponents for both and some even recommend practicing both.</p>
<p style="text-align: left;">As time goes on, I&#8217;ve been able to do a little bit of both and I&#8217;ve developed a strong preference for pair programming over code reviews.</p>
<p style="text-align: left;">With code reviews, you get one or more other persons to review the code you just wrote and feel ready is to be checked in, deployed, or whatever the next step is.  These reviews can be very formal or just as simple as a line-by-line walk through the code.  The goal is to find any bugs or fixes before the code gets to the next step.  This is very analogous to the writer/editor/publisher workflow (kind of like this blog entry).  Writer writes the article, editor proofreads, and the article gets published.  Programmer writes the code, other developers review the code, and the code gets deployed.  It almost seems like the idea of code reviews came out of software methodologies like the <a href="http://en.wikipedia.org/wiki/Waterfall_model" target="_blank">Waterfall model</a>.  Everything is very sequential and done in distinct stages.</p>
<p style="text-align: left;">In pair programming, the focus is on developing &#8220;good&#8221; code the first time around.  We do this by having more than one pair of eyes on the working code as it is being written.  One person is the &#8220;driver&#8221; who is writing the code and the other is the guide or observer who is verifying the code being written and thinking of potential improvements. The developers switch roles whenever it makes sense which in many cases causes one developer to immediate use or have to work with the code that was written by their partner. It places emphasis on the idea that two heads are better than one.</p>
<p style="text-align: left;">Two things come to my mind when I think about pair programming and code reviews. First, code reviews seem to be a just-in-the-nick-of-time fix for finding bugs in code before it goes out the door.  The initial development effort as already been completed and now we are evaluating the work.  And realistic, this is code we&#8217;re looking at. Everyone has their opinion as how things should be structured, design philosophies, coding styles, etc.  Many times code review sessions end up focusing on higher level concepts like those previously listed and not on the code itself. These kind of debates are related to decisions that should have been made prior to writing this code.  Why are we asking ourselves why we did this this way now after we&#8217;ve already spent time and effort to write code for it? And the people part of the code review are not neccessarily the people that will be working with that piece of code.</p>
<p style="text-align: left;">That brings me to my second thought which is this is all reminiscent of Scrum pigs and chickens.</p>
<p><a href="http://www.theodorenguyen-cao.com/wp-content/uploads/2008/10/060911-scrumtoon.jpg"><img class="aligncenter size-full wp-image-133" title="060911-scrumtoon" src="http://www.theodorenguyen-cao.com/wp-content/uploads/2008/10/060911-scrumtoon.jpg" alt="" width="500" height="176" /></a><br />
In code reviews, people sit down to review someone&#8217;s code.  Everyone has an opinion but not everyone is going to be working with the code on a daily basis. At the time, everyone seems to be involved in the process but there is no vested interest. They are just looking at some code and asking themselves &#8220;does this code look good and is it correct?&#8221;.  It&#8217;s a very passive standpoint. On the other hand, pair programmers are completely invested (committed?) in the task at hand.  They immediately are using the code they are writing together and collobarating their thoughts on design, code layout, etc. Both programmers are taking on an active role and are emotionally invested in the task at hand because they are attacking the same problem together.</p>
<p>Most of the cons of pair programming can be attributed to developer social/ego issues. And they are not specific to pair programming.  Going down the list of drawbacks listed on Wikipedia:</p>
<blockquote>
<ul>
<li> Developer egos: Experienced developers may find it tedious to tutor a less experienced developer in a paired environment.</li>
<li> Developer intimidation: A less experienced developer may feel intimidated pairing with a more experienced developer which may result in less participation.</li>
<li> Developer work preference: Some engineers prefer to work alone, and may find the paired environment cumbersome.</li>
<li> Tutoring cost: Experienced developers working alone may be capable of producing code that is clean and accurate at the outset, and the additional theoretical gain from pairing might not be worth the cost of an additional developer. This is especially true when producing more trivial parts of the system.</li>
<li> Potential conflict: Differences in coding style may result in conflict, and personality conflicts can result in one or both developers feeling awkward or uncomfortable.</li>
<li> Chat sessions: Sometimes employees might talk together too much, straying excessively into off-topic subjects, such as major news events, personal problems, etc.</li>
<li> Annoying personal habits: Sometimes people can find each other much more annoying when working up close than at separate workstations.</li>
</ul>
</blockquote>
<p>Developer egos, intimidation, work preference, and tutoring costs are things that should be checked at the door.  As an experience developer, you should look for opportunities to help your fellow developers to learn and improve their skills.  As a more junior developer, the opportunity to take chances and try to prove yourself is one of the best ways to learn and develop better skills. I don&#8217;t know about other people but collaborative work environments seem to be a plus. Being able to discuss your ideas openly is one of the best ways to make what you&#8217;re building better than it is. As for potential conflicts, chat sessions, and annoying personal habits, these have more to do with personalities and mannerism in the work place. All of this can happen in code reviews as well but the point is being self-aware and respectful of your coworkers is just as important as writing awesome code.</p>
<p>While I&#8217;m not against code reviews, I feel that pair programming is better suited to improve both code and team quality.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.theodorenguyen-cao.com/2008/10/29/pair-programming-greater-than-code-reviews/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Eclipse Ganymede + Subclipse = Unable to load default SVN client???</title>
		<link>http://www.theodorenguyen-cao.com/2008/09/26/eclipse-ganymede-subclipse-unable-to-load-default-svn-client/</link>
		<comments>http://www.theodorenguyen-cao.com/2008/09/26/eclipse-ganymede-subclipse-unable-to-load-default-svn-client/#comments</comments>
		<pubDate>Fri, 26 Sep 2008 14:46:21 +0000</pubDate>
		<dc:creator>Theo</dc:creator>
				<category><![CDATA[geekery]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.theodorenguyen-cao.com/2008/09/26/eclipse-ganymede-subclipse-unable-to-load-default-svn-client/</guid>
		<description><![CDATA[I like Shiny New Things. So when I heard Eclipse Ganymede SR1 was available, I proceeded to replace the Stream Stable Build I was currently running. This, of course, ended up causing me problems. After installing Subclipse and attempting to pull up any SVN history, I get an error dialog box that states: &#8220;Unable to [...]]]></description>
			<content:encoded><![CDATA[<p>I like <a href="http://onstartups.com/home/tabid/3339/bid/6739/Entrepreneurs-and-Hey-There-s-A-Shiny-New-Thing.aspx">Shiny New Things</a>. So when I heard <a href="http://www.eclipse.org/downloads/packages/release/ganymede/sr1-rc2/">Eclipse Ganymede SR1</a> was available, I proceeded to replace the <a href="http://www.theodorenguyen-cao.com/2008/02/27/eclipse-leopard-crash/">Stream Stable Build</a> I was currently running.</p>
<p>This, of course, ended up causing me problems.  After installing Subclipse and attempting to pull up any SVN history, I get an error dialog box that states:<br />
&#8220;Unable to load default SVN client&#8221;</p>
<p>Confused, I <a href="http://en.wikipedia.org/wiki/RTFM">RTFM</a> and saw that &#8220;Subclipse 1.4.x requires Subversion 1.5.0 version of JavaHL/SVNKit&#8221;</p>
<p>Seeing the SVN I was running was in fact not 1.5,</p>
<pre class="console">
  theo@notedpath~ $ svn --version
svn, version 1.4.4 (r25188)
   compiled Nov 25 2007, 08:20:33</pre>
<p>I went <a href="http://www.collab.net/downloads/apple/download.html">here</a>, downloaded and installed Subversion 1.5, restarted Eclipse and things are looking good now.</p>
<p>Stupid shiny new things.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.theodorenguyen-cao.com/2008/09/26/eclipse-ganymede-subclipse-unable-to-load-default-svn-client/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Surprise your users</title>
		<link>http://www.theodorenguyen-cao.com/2008/09/03/surprise-your-users/</link>
		<comments>http://www.theodorenguyen-cao.com/2008/09/03/surprise-your-users/#comments</comments>
		<pubDate>Wed, 03 Sep 2008 05:54:44 +0000</pubDate>
		<dc:creator>Theo</dc:creator>
				<category><![CDATA[geekery]]></category>
		<category><![CDATA[inspiration]]></category>

		<guid isPermaLink="false">http://www.theodorenguyen-cao.com/2008/09/03/surprise-your-users/</guid>
		<description><![CDATA[With the launch of Chrome today, the net is all the buzz around how great Chrome is/can be. But this isn&#8217;t yet another post about chrome. This is about me wanting to track the flight status of my parent&#8217;s airline that just came in from Cali. Of course I could go to the American Airlines [...]]]></description>
			<content:encoded><![CDATA[<p>With the launch of <a href="http://www.google.com/chrome" target="_blank">Chrome</a> today, the net is all the buzz around how great Chrome is/can be.  But this isn&#8217;t <a href="http://www.techcrunch.com/2008/09/02/giving-google-chrome-a-spin-this-thing-moves-fast/" target="_blank">yet</a> <a href="http://mashable.com/2008/09/02/chrome-windows/" target="_blank">another</a> <a href="http://googleblog.blogspot.com/2008/09/google-chrome-now-live.html" target="_blank">post</a> <a href="http://lifehacker.com/5044484/google-chrome-first-look">about</a> <a href="http://www.wired.com/techbiz/it/magazine/16-10/mf_chrome" target="_blank">chrome</a>.</p>
<p>This is about me wanting to track the flight status of my parent&#8217;s airline that just came in from Cali.  Of course I could go to the American Airlines website, which by the way is at <a href="http://www.aa.com" title="Alcoholics Anonymous">aa.com</a>, but that seemed like a lot of work when Google is my default homepage.  So I thought I would just type in the flight information and hope Google would give me a direct link to the flight status page.</p>
<p><img src="http://www.theodorenguyen-cao.com/wp-content/uploads/2008/09/picture-6.png" alt="search" /></p>
<p>Google&#8217;s response surprised me with the following:</p>
<p><img src="http://www.theodorenguyen-cao.com/wp-content/uploads/2008/09/picture-4.png" alt="search-result" /></p>
<p>Wow.  Thanks, Google!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.theodorenguyen-cao.com/2008/09/03/surprise-your-users/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>gem update fails &#8211; can&#8217;t find header files for ruby</title>
		<link>http://www.theodorenguyen-cao.com/2008/09/03/gem-update-fails-cant-find-header-files-for-ruby/</link>
		<comments>http://www.theodorenguyen-cao.com/2008/09/03/gem-update-fails-cant-find-header-files-for-ruby/#comments</comments>
		<pubDate>Wed, 03 Sep 2008 05:27:40 +0000</pubDate>
		<dc:creator>Theo</dc:creator>
				<category><![CDATA[geekery]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.theodorenguyen-cao.com/2008/09/03/gem-update-fails-cant-find-header-files-for-ruby/</guid>
		<description><![CDATA[So, Pat got a new MacBook Pro. Little does she know, I&#8217;ve start to install programs that I would use if I just so happened to be on her computer. The laptop already had Leopard installed and all of its goodies but a bit of upgrading was called for. So, of course I had run [...]]]></description>
			<content:encoded><![CDATA[<p>So, Pat got a new <a href="http://www.apple.com/macbookpro/" target="_blank">MacBook Pro</a>.  Little does she know, I&#8217;ve start to install programs that I would use if I just so happened to be on her computer.  The laptop already had Leopard installed and all of its goodies but a bit of upgrading was called for.  So, of course I had run <code>gem update</code>.</p>
<pre class="console">
pats-macbook-pro:~ pat$ sudo gem update

Updating installed gems

Updating RedCloth

Building native extensions.  This could take a while...

ERROR:  While executing gem ... (Gem::Installer::ExtensionBuildError)

    ERROR: Failed to build gem native extension./System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb update

can't find header files for ruby.

Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/RedCloth-4.0.3 for inspection.

Results logged to /Library/Ruby/Gems/1.8/gems/RedCloth-4.0.3/ext/redcloth_scan/gem_make.out</pre>
<p>But then I ran into a strange error I had never seen before.  <code>gem update</code> would fail when trying to build native extension. It&#8217;s been awhile since I setup a rails development environment so a-googlin&#8217; I went.</p>
<p><a href="http://www.macruby.org/trac/wiki/Troubleshooting">Turns out</a> the ruby headers don&#8217;t come installed with the base ruby install with Mac OS X.  These can been found on Mac OS X Install Disc 2 by installing the XCode Tools.</p>
<p>Once installed, all was well!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.theodorenguyen-cao.com/2008/09/03/gem-update-fails-cant-find-header-files-for-ruby/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Discuss with disqus</title>
		<link>http://www.theodorenguyen-cao.com/2008/06/16/discuss-with-disqus/</link>
		<comments>http://www.theodorenguyen-cao.com/2008/06/16/discuss-with-disqus/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 04:19:25 +0000</pubDate>
		<dc:creator>Theo</dc:creator>
				<category><![CDATA[geekery]]></category>

		<guid isPermaLink="false">http://blog.notedpath.com/2008/06/16/discuss-with-disqus/</guid>
		<description><![CDATA[I&#8217;ve replaced the commenting system on this blog with Disqus. Please discuss and let me know what you think.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve replaced the commenting system on this blog with <a href="http://www.disqus.com" target="_blank">Disqus</a>.  Please discuss and let me know what you think. <img src='http://www.theodorenguyen-cao.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.theodorenguyen-cao.com/2008/06/16/discuss-with-disqus/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>In search of a back up solution &#8211; Mozy.com</title>
		<link>http://www.theodorenguyen-cao.com/2008/06/08/in-search-of-a-back-up-solution-mozycom/</link>
		<comments>http://www.theodorenguyen-cao.com/2008/06/08/in-search-of-a-back-up-solution-mozycom/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 02:52:55 +0000</pubDate>
		<dc:creator>Theo</dc:creator>
				<category><![CDATA[geekery]]></category>

		<guid isPermaLink="false">http://blog.notedpath.com/2008/06/08/in-search-of-a-back-up-solution-mozycom/</guid>
		<description><![CDATA[I am in search of a good automated backup solution for my personal computer(s). Previously, I&#8217;ve just uploaded important files I want to keep onto my slice or some web hosting site. I also use a 250GB Western Digital External HD to backup pictures and mp3s. But now, I want an online solution. I want [...]]]></description>
			<content:encoded><![CDATA[<p>I am in search of a good automated backup solution for my personal computer(s).  Previously, I&#8217;ve just uploaded important files I want to keep onto my slice or some web hosting site.  I also use a 250GB Western Digital External HD to backup pictures and mp3s.</p>
<p>But now, I want an online solution.  I want a service where I can &#8220;set it and forget it&#8221; to back up any or all the files on my multiple computers.  My first stop was at <a href="http://www.mozy.com" target="_blank">Mozy.com</a>. I downloaded their Mac installer, which had the BETA description next to the download link.</p>
<p>The install and setting up it to start backing up some files was easy.  The free 2 gigs for MozyHome is great.  But when I really got into customizing what I wanted to back up, I was disappointed.  I could not easily place rules to ignore certain files and folders.  It was all or nothing.  Also, Mozy takes the term &#8220;backup&#8221; very literally.  If you delete the file off your local machine, Mozy will delete the file from their backup servers in 30 days.  It is not intended to be used as a file repository. You can&#8217;t easily share your backup files either.<br />
<center></p>
<table style="border: 0px none ">
<tr>
<td><a href="http://blog.notedpath.com/wp-content/uploads/2008/06/picture-1.png"><img src="http://blog.notedpath.com/wp-content/uploads/2008/06/picture-1.png" alt="mozy-1" height="229" width="250" /></a></td>
<td><a href="http://blog.notedpath.com/wp-content/uploads/2008/06/picture-2.png"><img src="http://blog.notedpath.com/wp-content/uploads/2008/06/picture-2.png" alt="mozy-2" height="229" width="250" /></a></td>
</tr>
</table>
<p></center><br />
For $4.99/month, I can get unlimited backup space.  But without being to easily exclude certain files and folders like .DS_Store and .svn folders, Mozy is a no go for me.If anyone can recommend something better, that would be super.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.theodorenguyen-cao.com/2008/06/08/in-search-of-a-back-up-solution-mozycom/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Stickies to Quickies</title>
		<link>http://www.theodorenguyen-cao.com/2008/05/02/stickies-to-quickies/</link>
		<comments>http://www.theodorenguyen-cao.com/2008/05/02/stickies-to-quickies/#comments</comments>
		<pubDate>Fri, 02 May 2008 13:45:13 +0000</pubDate>
		<dc:creator>Theo</dc:creator>
				<category><![CDATA[geekery]]></category>

		<guid isPermaLink="false">http://blog.notedpath.com/2008/05/02/stickies-to-quickies/</guid>
		<description><![CDATA[Engadget posted on an MIT group that is reinventing the Post-it note. Pretty cool use of RFID and ink recognition technology. This could power SCRUM retrospectives!]]></description>
			<content:encoded><![CDATA[<p>Engadget <a href="http://www.engadget.com/2008/05/01/mit-reinvents-the-post-it-note-with-post-it-notes/" target="_blank">posted</a> on an MIT group that is reinventing the Post-it note. Pretty cool use of RFID and ink recognition technology.</p>
<p>This could power SCRUM retrospectives!</p>
<p><center><br />
<object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/HQT5_4aVvHU&#038;hl=en"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/HQT5_4aVvHU&#038;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object><br />
</center></p>
]]></content:encoded>
			<wfw:commentRss>http://www.theodorenguyen-cao.com/2008/05/02/stickies-to-quickies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How easy OS upgrades should be</title>
		<link>http://www.theodorenguyen-cao.com/2008/04/28/how-easy-os-upgrades-should-be/</link>
		<comments>http://www.theodorenguyen-cao.com/2008/04/28/how-easy-os-upgrades-should-be/#comments</comments>
		<pubDate>Mon, 28 Apr 2008 04:30:38 +0000</pubDate>
		<dc:creator>Theo</dc:creator>
				<category><![CDATA[geekery]]></category>

		<guid isPermaLink="false">http://blog.notedpath.com/2008/04/28/how-easy-os-upgrades-should-be/</guid>
		<description><![CDATA[I just upgraded my slice from running Ubuntu Gutsy Gibbon to the newly released Ubuntu Hardy Heron. The upgrade process: Login machine Execute the command &#8220;sudo do-release-upgrade&#8221; Answer a few &#8220;Do you want to keep this older file or use this new file?&#8221; questions. Done! File this one under &#8220;That was easy.&#8221;]]></description>
			<content:encoded><![CDATA[<p>I just upgraded my slice from running Ubuntu Gutsy Gibbon to the newly <a href="http://www.ubuntu.com/news/ubuntu-8.04-lts-desktop" target="_blank">released</a> Ubuntu Hardy Heron.</p>
<p>The upgrade process:</p>
<ol>
<li>Login machine</li>
<li>Execute the command &#8220;sudo do-release-upgrade&#8221;</li>
<li>Answer a few &#8220;Do you want to keep this older file or use this new file?&#8221; questions.</li>
<li>Done!</li>
</ol>
<p>File this one under &#8220;That was easy.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.theodorenguyen-cao.com/2008/04/28/how-easy-os-upgrades-should-be/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>KML &#8211; the new mapping standard</title>
		<link>http://www.theodorenguyen-cao.com/2008/04/14/kml-the-new-mapping-standard/</link>
		<comments>http://www.theodorenguyen-cao.com/2008/04/14/kml-the-new-mapping-standard/#comments</comments>
		<pubDate>Tue, 15 Apr 2008 03:12:53 +0000</pubDate>
		<dc:creator>Theo</dc:creator>
				<category><![CDATA[geekery]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.notedpath.com/2008/04/14/kml-the-new-map-standard/</guid>
		<description><![CDATA[The Open Geospatial Consortium just announced that KML has been adopted as an open standard. KML stands for Keyhole Markup Language, originally designed by Keyhole who was acquired by Google back in 2004. Keyhole&#8217;s Earth Viewer product was reborn as what we know today as Google Earth. I first came across KML when I was [...]]]></description>
			<content:encoded><![CDATA[<p>The Open Geospatial Consortium just <a href="http://www.opengeospatial.org/pressroom/pressreleases/857" target="_blank">announced</a> that KML has been adopted as an open standard. KML stands for Keyhole Markup Language, originally designed by Keyhole who was acquired by Google back in 2004.  Keyhole&#8217;s Earth Viewer product was reborn as what we know today as Google Earth.  I first came across KML when I was working on some data visualization using Google Earth.  I found it to be very expressive and easy to use. You can do neat things like stream dynamic KML to animate the map or add overlays on the map.</p>
<p>It&#8217;s interesting to see how Google Earth/Maps&#8217;s popularity has allowed KML to become the international standard.  It will be even more interesting to see how quickly the standard is adopted by many of the geo-visualization products out there.  While I don&#8217;t think it will be &#8220;<a href="http://googleblog.blogspot.com/2008/04/kml-html-of-geographic-content.html" target="_blank">the HTML of geographic content</a>&#8220;, I do think this standardization will open up the market for new products that build/support KML, pushing KML to its limits as we have done with HTML.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.theodorenguyen-cao.com/2008/04/14/kml-the-new-mapping-standard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google App Engine Launches</title>
		<link>http://www.theodorenguyen-cao.com/2008/04/08/google-app-engine-launches/</link>
		<comments>http://www.theodorenguyen-cao.com/2008/04/08/google-app-engine-launches/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 05:56:38 +0000</pubDate>
		<dc:creator>Theo</dc:creator>
				<category><![CDATA[geekery]]></category>

		<guid isPermaLink="false">http://blog.notedpath.com/2008/04/08/google-app-engine-launches/</guid>
		<description><![CDATA[Google App Engine, which acts a Google-hosted application platform powered by Google technologies like BigTable and GFS. You can read more about it here. I was lucky enough to get an invite to try it out. Right now it only supports Python, but they say they plan on expanding this to other programming languages. I [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://appengine.google.com/" target="_blank">Google App Engine</a>, which acts a Google-hosted application platform powered by Google technologies like <a href="http://labs.google.com/papers/bigtable.html" target="_blank">BigTable</a> and <a href="http://labs.google.com/papers/gfs.html" target="_blank">GFS</a>.  You can read more about it <a href="http://code.google.com/appengine/" target="_blank">here</a>. I was lucky enough to get an invite to try it out.  Right now it only supports Python, but they say they plan on expanding this to other programming languages. I hope that&#8217;s true.  I never really played with Python but this might give me more incentive to take a closer look at it.</p>
<p>Anyways, going through their <a href="http://code.google.com/appengine/docs/gettingstarted/" target="_blank">Getting Started</a> documentation took about 10 minutes.  All of the apps are hosted at the appspot.com domain but from the Admin console, it looks like you can have your use your <a href="http://www.google.com/a" target="_blank">Google Apps</a> domain which is pretty cool.</p>
<p>Check out what I got so far at: <a href="http://notes.appspot.com">http://notes.appspot.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.theodorenguyen-cao.com/2008/04/08/google-app-engine-launches/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Timezone Plugin &#8211; Handling Daylight Savings Time</title>
		<link>http://www.theodorenguyen-cao.com/2008/03/30/wordpress-timezone-plugin-handling-daylight-savings-time/</link>
		<comments>http://www.theodorenguyen-cao.com/2008/03/30/wordpress-timezone-plugin-handling-daylight-savings-time/#comments</comments>
		<pubDate>Sun, 30 Mar 2008 05:08:42 +0000</pubDate>
		<dc:creator>Theo</dc:creator>
				<category><![CDATA[geekery]]></category>

		<guid isPermaLink="false">http://blog.notedpath.com/2008/03/30/wordpress-timezone-plugin-handling-daylight-savings-time/</guid>
		<description><![CDATA[I&#8217;ve been dealing with Daylight Savings Time issues at work. It&#8217;s a pain. I found out Hawaii and Puerto Rico don&#8217;t observe DST the hard way. It came to a surprise to me that WordPress that does not support Daylight Savings Time handling at all. I posted my last post and realized the time stamp [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been dealing with <a href="http://en.wikipedia.org/wiki/Daylight_saving_time_around_the_world#United_States_of_America" target="_blank">Daylight Savings Time</a> issues at work.  It&#8217;s a pain.  I found out Hawaii and Puerto Rico don&#8217;t observe DST the hard way.  It came to a surprise to me that WordPress that does not support Daylight Savings Time handling at all.  I posted my last post and realized the time stamp was off by an hour.  WordPressers have to manually update their blog settings to account for the hour(s) offsets from GMT whenever DST comes and goes.  Luckily, there is a plugin that automates this process for us. Check it out <a href="http://kimmo.suominen.com/sw/timezone/" target="_blank">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.theodorenguyen-cao.com/2008/03/30/wordpress-timezone-plugin-handling-daylight-savings-time/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Show hidden files in Mac OS X&#8217;s Finder</title>
		<link>http://www.theodorenguyen-cao.com/2008/03/20/show-hidden-files-in-mac-os-xs-finder/</link>
		<comments>http://www.theodorenguyen-cao.com/2008/03/20/show-hidden-files-in-mac-os-xs-finder/#comments</comments>
		<pubDate>Thu, 20 Mar 2008 15:46:16 +0000</pubDate>
		<dc:creator>Theo</dc:creator>
				<category><![CDATA[geekery]]></category>

		<guid isPermaLink="false">http://blog.notedpath.com/2008/03/20/show-hidden-files-in-mac-os-xs-finder/</guid>
		<description><![CDATA[I wanted to delete some .svn folders that didn&#8217;t go away when I disconnected from a repository but couldn&#8217;t see them in Finder. So I needed to show hidden files. Here&#8217;s how to do it. Open up Terminal >> defaults write com.apple.finder AppleShowAllFiles TRUE >> killall Finder Replace TRUE with FALSE to hide them again.]]></description>
			<content:encoded><![CDATA[<p>I wanted to delete some .svn folders that didn&#8217;t go away when I disconnected from a repository but couldn&#8217;t see them in Finder.  So I needed to show hidden files.  Here&#8217;s how to do it.</p>
<p>Open up Terminal</p>
<pre class="console">
>> defaults write com.apple.finder AppleShowAllFiles TRUE
>> killall Finder
</pre>
<p>Replace TRUE with FALSE to hide them again.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.theodorenguyen-cao.com/2008/03/20/show-hidden-files-in-mac-os-xs-finder/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>MacBook Pro &#8211; Where&#8217;s my delete key?</title>
		<link>http://www.theodorenguyen-cao.com/2008/03/16/macbook-pro-wheres-my-delete-key/</link>
		<comments>http://www.theodorenguyen-cao.com/2008/03/16/macbook-pro-wheres-my-delete-key/#comments</comments>
		<pubDate>Mon, 17 Mar 2008 04:02:26 +0000</pubDate>
		<dc:creator>Theo</dc:creator>
				<category><![CDATA[geekery]]></category>

		<guid isPermaLink="false">http://blog.notedpath.com/2008/03/16/macbook-pro-wheres-my-delete-key/</guid>
		<description><![CDATA[I&#8217;ve had my MacBook Pro for a couple of months now and I&#8217;ve officially switched over to a MBP at work as well.Â  All this time I have been working without a delete key.  That thing labeled &#8216;delete&#8217; on my keyboard is really what I have known in the past as a &#8216;backspace&#8217; key.  Naturally, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve had my <a href="http://www.apple.com/macbookpro/" target="_blank">MacBook Pro</a> for a couple of months now and I&#8217;ve officially switched over to a MBP at work as well.Â  All this time I have been working without a delete key.  That thing labeled &#8216;delete&#8217; on my keyboard is really what I have known in the past as a &#8216;backspace&#8217; key.  Naturally, I assumed Ctrl+delete would give me back my true delete functionality, but that didn&#8217;t do it. It turns out the magic key combination is Fn+delete. My productivity should go up now! Yay!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.theodorenguyen-cao.com/2008/03/16/macbook-pro-wheres-my-delete-key/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google TechTalk: Linus Torvalds on git</title>
		<link>http://www.theodorenguyen-cao.com/2008/03/16/google-techtalk-linus-torvalds-on-git/</link>
		<comments>http://www.theodorenguyen-cao.com/2008/03/16/google-techtalk-linus-torvalds-on-git/#comments</comments>
		<pubDate>Sun, 16 Mar 2008 17:57:49 +0000</pubDate>
		<dc:creator>Theo</dc:creator>
				<category><![CDATA[geekery]]></category>

		<guid isPermaLink="false">http://blog.notedpath.com/2008/03/16/google-techtalk-linus-torvalds-on-git/</guid>
		<description><![CDATA[I came across this Google TechTalk with Linus Torvalds on git. I&#8217;ve never seen or heard Torvalds speak before. He certainly has a good sense of humor&#8230;or arrogance . It&#8217;s been almost a year since this tech talk and I still really haven&#8217;t seen large adoption of git. However after some painful experiences with Subversion, [...]]]></description>
			<content:encoded><![CDATA[<p>I came across this <a href="http://www.youtube.com/user/googletechtalks" target="_blank">Google TechTalk</a> with <a href="http://en.wikipedia.org/wiki/Linus_Torvalds" target="_blank">Linus Torvalds</a> on <a href="http://git.or.cz/" target="_blank">git</a>.  I&#8217;ve never seen or heard Torvalds speak before. He certainly has a good sense of humor&#8230;or arrogance <img src='http://www.theodorenguyen-cao.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p><center><br />
<object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/4XpnKHJAok8&#038;hl=en"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/4XpnKHJAok8&#038;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object><br />
</center></p>
<p>It&#8217;s been almost a year since this tech talk and I still really haven&#8217;t seen large adoption of git.  However after some painful experiences with Subversion, maybe it&#8217;s time to take a closer look at git.  git sounds great in theory and design, but in practice I&#8217;m not yet convinced there is much value add.For example, the point that a truly distributed system allows you to make commits when you are unwired since the commits only go to your local repository, in my opinion, isn&#8217;t much value add.  I am never really away from a wireless point or ethernet cord when I intend to code.  The internet is just too much of a valuable resource for me to be disconnected when I&#8217;m coding, whether it be googling an obscure exception or reading online documentation.</p>
<p>The design of git is kind of reminiscent of  what maven2 did for the build process and dependency management, with the idea of local repositories and selecting with distribution repositories you trust to pull down your dependencies.</p>
<p>I like the idea of the network of trust.  I think that&#8217;s where the big win for git is.  If I know a coworker is working on a piece of code and  won&#8217;t be done until the end of the week, I know not to &#8220;trust&#8221; their branch until they tell me it&#8217;s ready.</p>
<p>git seems to encourage more communication between developers, which is great if the teams are practicing <a href="http://en.wikipedia.org/wiki/Agile_software_development" target="_blank">Agile software development</a>. The idea of &#8220;Individuals and interactions over processes and tools&#8221; really needs to be instilled into the developers for git to work though. With so many branches around, there needs to be more communication between developers as to what features or branches are ready to be merged into the next release branch.</p>
<p>I guess only time will tell if git will be accepted by the masses.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.theodorenguyen-cao.com/2008/03/16/google-techtalk-linus-torvalds-on-git/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Social Matchbox DC</title>
		<link>http://www.theodorenguyen-cao.com/2008/02/03/social-matchbox-dc/</link>
		<comments>http://www.theodorenguyen-cao.com/2008/02/03/social-matchbox-dc/#comments</comments>
		<pubDate>Mon, 04 Feb 2008 03:05:57 +0000</pubDate>
		<dc:creator>Theo</dc:creator>
				<category><![CDATA[geekery]]></category>
		<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://blog.notedpath.com/2008/02/03/social-matchbox-dc/</guid>
		<description><![CDATA[Last week, I attended Social Matchbox DC with Brent and Brendan. We all thought it would be a showcase of startups around the DC talking about the cool things they are doing. To our surprise it was more of a job fair than a social gathering. However, they had free pizza so I can&#8217;t complain [...]]]></description>
			<content:encoded><![CDATA[<p>Last week, I attended Social Matchbox DC with <a href="http://www.acts-as-blogr.com" target="_blank">Brent </a>and <a href="http://www.brendanlim.com" target="_blank">Brendan</a>.</p>
<p><img src="http://farm3.static.flickr.com/2135/2227229587_5132181d7f.jpg?v=0" /></p>
<p>We all thought it would be a showcase of startups around the DC  talking about the cool things they are doing.  To our surprise it was more of a job fair than a social gathering.  However, they had free pizza so I can&#8217;t complain too much. Still, it&#8217;s refreshing to see there is a startup community in the DC area, where it seems like everyone and their uncle work for the government.  <a href="http://www.clearspring.com" target="_blank">Clearspring </a> and <a href="http://www.freewebs.com" target="_blank">Freewebs</a> were both there.  I tried out <a href="http://blog.notedpath.com/2008/01/15/fun-with-widgets/">making a widget</a> on Clearspring&#8217;s platform and making a web site using Freewebs a while back. Both are very cool companies.</p>
<p>Although the DC area is more of a Government Valley,  I wish there were more venues that allow startups and hackers get together around the area.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.theodorenguyen-cao.com/2008/02/03/social-matchbox-dc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open Source and Caching Algorithms</title>
		<link>http://www.theodorenguyen-cao.com/2008/01/28/open-source-and-caching-algorithms/</link>
		<comments>http://www.theodorenguyen-cao.com/2008/01/28/open-source-and-caching-algorithms/#comments</comments>
		<pubDate>Mon, 28 Jan 2008 04:23:19 +0000</pubDate>
		<dc:creator>Theo</dc:creator>
				<category><![CDATA[geekery]]></category>

		<guid isPermaLink="false">http://blog.notedpath.com/2008/01/28/open-source-and-caching-algorithms/</guid>
		<description><![CDATA[I wanted to go through the exercise of contributing to open source with a project of my own. After thinking about it for probably 15 minutes, I decided I wanted to try to build my own caching system in Java. Too bad I knew next to nothing about caching. I went off and did some [...]]]></description>
			<content:encoded><![CDATA[<p>I wanted to go through the exercise of contributing to open source with a project of my own.  After thinking about it for probably 15 minutes, I decided I wanted to try to build my own caching system in Java.  Too bad I knew next to nothing about caching.  I went off and did some research.</p>
<p>There are certain known algorithms that have become popular when implementing caches.  Given that caches have a finite size (either you run out of space or memory), the cache algorithms are used to manage the cache.  These algorithms determine things like how long an item remains in the cache and what gets booted out of the cache when it reaches its maximum size.  Wikipedia describes the most efficient caching algorithm &#8220;would be to always discard the information that will not be needed for the longest time in the future&#8221;.  You need to take a look at the data you want to cache before deciding on a <a href="http://faq.javaranch.com/view?CachingStrategies" target="_blank">caching strategy</a>.  Do you need to support random access (the access to the data is uniformly distributed) or sequential access ( you&#8217;re interested in large chunks of data at a time)? Is certain data accessed more often that other pieces of data?</p>
<p>Here&#8217;s a couple common algorithms:</p>
<ul>
<li>Least Recently Used (LRU) &#8211; the items that haven&#8217;t been accessed the longest get the boot first.  This is implemented by keeping a timestamp for all items in the cache. Check out this <a href="http://www.khanspot.com/2006/11/27/a-simple-lru-cache-in-5-lines/" target="_blank">simple LRU implementation</a>.</li>
<li>Least Frequently Used (LFU) &#8211; the items that are sitting in the cache but have been accessed the least are booted out first.  This is implemented by a counter to see how often an item is accessed.</li>
<li>First In First Out (FIFO) &#8211; the item that first entered the cache is the first to go when it gets full.  This can be easily implemented by a queue.</li>
</ul>
<p>Of course, there are projects like <a href="http://ehcache.sourceforge.net/" target="_blank">EHCache</a> and <a href="http://www.opensymphony.com/oscache/" target="_blank">OSCache</a> out there that have addressed this issue.</p>
<p>OSCache provides a FIFO and a LRU implementation of a cache.</p>
<p>In addition to FIFO and LRU, EHCache provides a LFU implementation of  a cache.</p>
<p>Thinking about how these algorithms work, it is easy to see that there are certain cases where using one over the other provides a great advantage.  For example in the case of LRU, which seems to be the widely accepted and most used caching algorithm, this cache works great when the majority of the hits come to a very concentrated group of items.  This way, most hits, if not all, are retrieved from the cache.  However, if there is a large scan of all the data, once the cache reaches its max size LRU will just remove items out on every hit.  If the cache can hold a max of 50 items and you have 100 records,  as you iterate over the 100 records, the cache will empty out the first 50 records to put in the second half of the records, resulting in lots of add/removing to the cache and 0 cache hits.  Algorithms that prevent this from happening, like LFU, are known as scan-resistant.</p>
<p>I was interested in finding if there was some middle ground that gave me the best of both worlds LRU and LFU.  It turns out there is.</p>
<p>The algorithm is known as <a href="http://en.wikipedia.org/wiki/Adaptive_Replacement_Cache" target="_blank">Adaptive Replacement Cache</a> (ARC). It gives you the benefits of LRU as well does a balancing act to prevent data scans from polluting the cache.  It does by keeping track of two lists, one for recently references items and another or frequently referenced items.  If you <a href="http://www.almaden.ibm.com/cs/people/dmodha/ARC.pdf" target="_blank">read about it</a>, it&#8217;s a pretty cool algorithm.</p>
<p>I was excited when I came across this algorithm because I thought it would make such a fine addition as an open source project.  And then I discovered it was <a href="http://www.google.com/patents?id=VCN4AAAAEBAJ" target="_blank">patented</a>. Apparently, <a href="http://www.varlena.com/GeneralBits/96.php" target="_blank">PostgreSQL already went through this exercise</a> and deemed it safer to not use it.</p>
<p>So, now I&#8217;m thinking I need a new idea for a project.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.theodorenguyen-cao.com/2008/01/28/open-source-and-caching-algorithms/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Re: Young IT workers disillusioned</title>
		<link>http://www.theodorenguyen-cao.com/2008/01/12/re-young-it-workers-disillusioned/</link>
		<comments>http://www.theodorenguyen-cao.com/2008/01/12/re-young-it-workers-disillusioned/#comments</comments>
		<pubDate>Sun, 13 Jan 2008 00:16:26 +0000</pubDate>
		<dc:creator>Theo</dc:creator>
				<category><![CDATA[geekery]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://blog.notedpath.com/2008/01/12/re-young-it-workers-disillusioned/</guid>
		<description><![CDATA[After reading this article, I had to vent on the ridiculousness of the article. The article is pretty much a summary of a survey done by an IT staffing firm. It states that entry-level, 20-something year old employees are the most difficult to manage because they have high expectations from their employer. High expectations like [...]]]></description>
			<content:encoded><![CDATA[<p>After reading <a href="http://www.networkworld.com/news/2008/011008-young-workers-hard-to-retain.html">this article</a>, I had to vent on the ridiculousness of the article.</p>
<p>The article is pretty much a summary of a survey done by an IT staffing firm. It states that entry-level, 20-something year old employees are the most difficult to manage because they have high expectations from their employer.  High expectations like good salaries, bonuses/rewards, and an office.  Some <a href="http://en.wikipedia.org/wiki/Pointy_Haired_Boss">pointy-haired boss</a> mentioned in the article said &#8220;the problem between employers and the younger generation just entering the workforce can be traced back to the employees&#8217; upbringing or an easier way of life for children in the United States today.&#8221;</p>
<p>With condescending statements like that, why would I want to work for you?  This sounds like a classic &#8220;When I was your age&#8221;-ism that creates a crappy <a href="http://blog.notedpath.com/2007/08/26/cultivating-work-environments/">work environment</a>.  </p>
<p>I&#8217;m in the IT industry, I&#8217;m a 20-something year old, and I guess you could still consider me &#8220;entry-level&#8221;.  I&#8217;m not disillusioned about my place in the industry.  I don&#8217;t expect you to give me the title of CTO of a Fortune 500 company.  I don&#8217;t need a secretary and a personal assistant.  I do however expect to be paid accordingly to the value I bring the company.  Why wouldn&#8217;t someone want to be rewarded if they do outstanding work? Not having a reward doesn&#8217;t stop me from doing outstanding work.  You need to find employees that hold themselves to a higher standard than you do. I personally don&#8217;t care for offices but it&#8217;s clear that having an door that shuts allows developers to be more production due to less distractions.</p>
<p>Just because I may be an entry-level employee, that doesn&#8217;t mean I bring any less value to the employer.  What qualifies an employer to treat an entry-level employee as a second-class employee?  In the IT industry, where experience seems to be king, I have struggled to understand why that is.  Experience is fine and dandy but it only takes you only so far.  Raw talent should be valued more.  Between 3 rock star 20-something year olds and 3 mediocre experienced 40+ year olds, I will bet on the rock stars every single time. </p>
<p>It sounds to me that it&#8217;s not the young IT workers that are disillusioned but it&#8217;s the employers.  They want rock stars employees without providing any incentive. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.theodorenguyen-cao.com/2008/01/12/re-young-it-workers-disillusioned/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Snipshot &#8211; Edit pictures online</title>
		<link>http://www.theodorenguyen-cao.com/2007/09/10/snipshot-edit-pictures-online/</link>
		<comments>http://www.theodorenguyen-cao.com/2007/09/10/snipshot-edit-pictures-online/#comments</comments>
		<pubDate>Tue, 11 Sep 2007 03:45:13 +0000</pubDate>
		<dc:creator>Theo</dc:creator>
				<category><![CDATA[geekery]]></category>

		<guid isPermaLink="false">http://blog.notedpath.com/2007/09/10/snipshot-edit-pictures-online/</guid>
		<description><![CDATA[Check out Snipshot. I used this to resize the rails image from the previous post since I was lazy and didn&#8217;t want to dig up a image editor and I had a browser open already Pretty cool technology.]]></description>
			<content:encoded><![CDATA[<p>Check out <a href="http://www.snipshot.com">Snipshot</a>.  I used this to resize the rails image from the <a href="2007/09/10/mongrel-apache-railsnotedpathcom/">previous post</a> since I was lazy and didn&#8217;t want to dig up a image editor and I had a browser open already <img src='http://www.theodorenguyen-cao.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Pretty cool technology.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.theodorenguyen-cao.com/2007/09/10/snipshot-edit-pictures-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fresh start!</title>
		<link>http://www.theodorenguyen-cao.com/2007/08/18/fresh-start/</link>
		<comments>http://www.theodorenguyen-cao.com/2007/08/18/fresh-start/#comments</comments>
		<pubDate>Sat, 18 Aug 2007 23:46:25 +0000</pubDate>
		<dc:creator>Theo</dc:creator>
				<category><![CDATA[geekery]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.notedpath.com/?p=3</guid>
		<description><![CDATA[After trying to keep a blog numerous times already, I am committed to keep this one going! It took me awhile to get setup after rebuilding my slice (I am hosted by SliceHost). Most of the time was spent having to google the commands I had to run and figuring out missing apache modules since [...]]]></description>
			<content:encoded><![CDATA[<p>After trying to keep a blog numerous times already, I am committed to keep this one going!</p>
<p>It took me awhile to get setup after rebuilding my slice (I am hosted by <a href="http://www.slicehost.com" target="_blank">SliceHost</a>).  Most of the time was spent having to google the commands I had to run and figuring out missing apache modules since this is all new to me.  It&#8217;s been a good learning experience though <img src='http://www.theodorenguyen-cao.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>But after 4 hours, I&#8217;ve setup the following</p>
<ul>
<li>256mb Ubuntu slice</li>
<li>apache2</li>
<li>mysql</li>
<li>subversion</li>
<li>php</li>
<li>ruby/rails</li>
</ul>
<p>Next steps are to get Java and Tomcat installed, as well as a sample Rails app up and running.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.theodorenguyen-cao.com/2007/08/18/fresh-start/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Video Of The Day</title>
		<link>http://www.theodorenguyen-cao.com/2007/01/22/video-of-the-day-3/</link>
		<comments>http://www.theodorenguyen-cao.com/2007/01/22/video-of-the-day-3/#comments</comments>
		<pubDate>Mon, 22 Jan 2007 23:13:00 +0000</pubDate>
		<dc:creator>Theo</dc:creator>
				<category><![CDATA[geekery]]></category>
		<category><![CDATA[inspiration]]></category>

		<guid isPermaLink="false">http://blog.notedpath.com/2007/01/22/video-of-the-day-3/</guid>
		<description><![CDATA[One of the best speeches I&#8217;ve ever heard. Start at TiECon, May 13, 2006.]]></description>
			<content:encoded><![CDATA[<p>One of the best speeches I&#8217;ve ever heard.</p>
<p><embed flashvars="" src="http://video.google.com/googleplayer.swf?docId=-3755718939216161559&amp;hl=en" type="application/x-shockwave-flash" id="VideoPlayback" style="width: 400px; height: 326px;"/></p>
<p>Start at TiECon, May 13, 2006.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.theodorenguyen-cao.com/2007/01/22/video-of-the-day-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
