<?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; Ada</title>
	<atom:link href="http://adrianhoe.com/adrianhoe/category/software_development/ada/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>The waking of a sleeping beauty</title>
		<link>http://adrianhoe.com/adrianhoe/2010/09/10/the-waking-of-a-sleeping-beauty/</link>
		<comments>http://adrianhoe.com/adrianhoe/2010/09/10/the-waking-of-a-sleeping-beauty/#comments</comments>
		<pubDate>Fri, 10 Sep 2010 07:18:41 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Ada]]></category>
		<category><![CDATA[At Play]]></category>
		<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Days in My Life]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[GtkAda]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Othello]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/?p=2283</guid>
		<description><![CDATA[I wrote a board game called AdaOthello way back in 2001 using Ada (of course) and GtkAda. AdaOthello is quite a beautiful piece of GUI that I had created for the first time using GtkAda on Linux. Unfortunately, I don&#8217;t have the time to improve the game engine and port it to Mac OS X. It [...]]]></description>
			<content:encoded><![CDATA[<p>I wrote a board game called <a href="http://adrianhoe.com/adrianhoe/projects/adaothello/" target="_blank">AdaOthello</a> way back in 2001 using Ada (of course) and GtkAda. <a href="http://adrianhoe.com/adrianhoe/projects/adaothello/" target="_blank">AdaOthello</a> is quite a beautiful piece of GUI that I had created for the first time using GtkAda on Linux. Unfortunately, I don&#8217;t have the time to improve the game engine and port it to Mac OS X. It became a sleeping beauty!</p>
<p>On August 27, <a href="http://blog.thorslund.org/" target="_blank">Gustaf Thorslund</a> contacted me about his wish to use my code and continue the development of <a href="http://adrianhoe.com/adrianhoe/projects/adaothello/" target="_blank">AdaOthello</a>. Today, I received another email from Gustaf informing me that he has revived the project.</p>
<p>First, I would like to express my gratitude to Gustaf to take my code, make a second home for it, and taking it to a new height. I originally released <a href="http://adrianhoe.com/adrianhoe/projects/adaothello/" target="_blank">AdaOthello</a> under GPL 2.0 or later and I continue to wish to keep it that way.</p>
<p>You can find <a href="http://adrianhoe.com/adrianhoe/projects/adaothello/" target="_blank">AdaOthello</a> at its second home <a href="http://blog.thorslund.org/posts/2010/Waking_up_a_sleeping_beauty/" target="_blank">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2010/09/10/the-waking-of-a-sleeping-beauty/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>A hot Sunny affair</title>
		<link>http://adrianhoe.com/adrianhoe/2009/03/26/a-hot-sunny-affair/</link>
		<comments>http://adrianhoe.com/adrianhoe/2009/03/26/a-hot-sunny-affair/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 19:03:59 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Ada]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Solaris]]></category>
		<category><![CDATA[gcc]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[MacBook]]></category>
		<category><![CDATA[OpenSolaris]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[virtual machine]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[vmware fusion]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/?p=1617</guid>
		<description><![CDATA[I have been hesitating for another hot Sunny affair since the last one about three years ago. This is just another one I have been longing since then. The recent eclipse of Sun resurrects my overwhelming but sleeping desire. Although this happened near the time when Sun is setting, but it is never too late [...]]]></description>
			<content:encoded><![CDATA[<p>I have been hesitating for another hot Sunny affair since the last one about three years ago. This is just another one I have been longing since then. The recent eclipse of Sun resurrects my overwhelming but sleeping desire. Although this happened near the time when Sun is setting, but it is never too late to do it again because Sunset is beautiful and romantic.</p>
<p>Will Sun set and never rise again? Here is my encounter of the hot Sunny affair.</p>
<p><span id="more-1617"></span></p>
<p>In <a href="http://adrianhoe.com/adrianhoe/2006/10/30/solaris-10/" target="_blank">October 2006</a>, I installed Solaris 10 on an Intel box code-named, Pyxis1 (I love to name my computers after the name of a planet, a star or a constellation). The installation was successful but I could not get it to configured to work correctly. Some of the configuration would disappear every time I restarted the server. I could not find the reasons and I was on tight schedule to get the server up and running. I replaced Solaris 10 with Debian and eventually with Ubuntu. Read the story <a href="http://adrianhoe.com/adrianhoe/2007/09/26/ubuntu-feisty-fawn/" target="_blank">here</a>.</p>
<p>Solaris 10, in my opinion, is by far a better and more robust operating system than Linux. The fallback was the lack of installation information on older machines. That&#8217;s the bottom line of the configuration problem I had three years ago.</p>
<p>Last May, I began the <a href="http://adrianhoe.com/adrianhoe/2008/05/14/virtualization-installing-ubuntu-linux-with-vmware-on-macbook/" target="_blank">virtualization</a> of my MacBook and I had Ubuntu installed and ran parallel with Mac OS X. I tried to install Solaris 10 on VMware Fusion. Installation was successful but I never got it to boot after the installation. Again, I gave up and went on with Ubuntu.</p>
<p>On Sunday, I upgraded VMware Fusion 1.1.3 to 2.0.2 and read about successful installation of OpenSolaris on Mac. I decided to give it another try.</p>
<p><a href="http://opensolaris.org/os/" target="_blank">OpenSolaris</a> is a community-driven open source version of <a href="http://www.sun.com/software/solaris/index.jsp" target="_blank">Solaris</a>. Solaris is a proprietary UNIX operating system by <a href="http://sun.com" target="_blank">Sun Microsystems</a>. Sun plays an active role in open source software such as OpenOffice, MySQL and OpenSolaris.</p>
<p><a href="http://www.vmware.com/products/fusion/" target="_blank">VMware Fusion</a> 2.x has many major improvements. One obvious change is the Virtual Machine Library window. It shows you the snapshots of your virtual machines.</p>
<div class="wp-caption alignnone" style="width: 410px"><img src="http://adrianhoe.com/adrianhoe/images/blog/2009/OpenSolaris_01.png" alt="The Virtual Machine Library window showing the snapshots of OpenSolaris and Windows XP" width="400" height="237" /><p class="wp-caption-text">The Virtual Machine Library window showing the snapshots of OpenSolaris and Windows XP</p></div>
<p>Ok, ok. I have a Windows XP installed. For those who know I have ditched all Windows since 1998, I have some inevitable reasons. First, I need it to support my clients on some hardware and software configurations. Second, I needed it to support my Garmin GPS device. And thirdly, I need it for some non-appealing reasons. I have it installed to avoid having the need to hunt for a Windows desktop for some petty simple jobs. I used the Windows virtual machine under 10 times since last May. Simple put it, I just need it to get some simple jobs done, otherwise it is just a piece of shit occupying 5GB of disk space on my MacBook.</p>
<p>Installation of OpenSolaris was quite pleasant and simple (although it took about half hour). During the installation, I was surprised to learn that OpenSolaris has something called Time Slider which is an automated backup software similar to Apple&#8217;s Time Machine.</p>
<p>My hardware configuration:</p>
<ol>
<li>MacBook White, 2.16GHz Intel Core 2 Duo</li>
<li>2GB 667MHz DDR2 SDRAM</li>
<li>160GB hard disk</li>
<li>Mac OS X 10.5.6</li>
</ol>
<p>My virtual machine configuration:</p>
<ol>
<li>VMware Fusion 2.0.2</li>
<li>2 virtual CPU, 720MB RAM</li>
<li>15GB hard disk space</li>
</ol>
<div class="wp-caption alignnone" style="width: 410px"><img src="http://adrianhoe.com/adrianhoe/images/blog/2009/OpenSolaris_02.png" alt="Installation screen showing Time Slider" width="400" height="250" /><p class="wp-caption-text">Installation screen showing Time Slider</p></div>
<p>I will never need Time Slider on my Mac Book but I may need it after I switch from Ubuntu to OpenSolaris on Pyxis1. Until then, I am unable to tell if Time Slider is as good as Time Machine.</p>
<p>There are a few patches and manual installation after the first boot to solve some problems:</p>
<ol>
<li>The sound is not working.</li>
<li>No networking (you may not experience this).</li>
<li>The Apple&#8217;s menu bar is not appearing when virtual machine is running in full screen mode.</li>
<li>Need some packages from OpenSolaris repository in order to get the Ada compiler working (for Ada programmers only).</li>
</ol>
<div class="wp-caption alignnone" style="width: 410px"><img src="http://adrianhoe.com/adrianhoe/images/blog/2009/OpenSolaris_03.png" alt="OpenSolaris running at full screen on MacBook White." width="400" height="250" /><p class="wp-caption-text">OpenSolaris running at full screen on MacBook White.</p></div>
<p>First thing after restarting from installation is to install VMware Tools. At window mode, click on the Virtual Machine menu bar and select Install VMware Tools. A CD icon will appear on the OpenSolaris desktop. Open it and copy the zipped file to the desktop then extract and follow the steps below:</p>
<pre><code># cd Desktop/vmware-tools-distrib
# ./vmware-install.pl
</code></pre>
<div class="wp-caption alignnone" style="width: 410px"><img src="http://adrianhoe.com/adrianhoe/images/blog/2009/OpenSolaris_04.png" alt="OpenSolaris virtual machine running in window mode" width="400" height="373" /><p class="wp-caption-text">OpenSolaris virtual machine running in window mode</p></div>
<p>After installing VMware Tools, you will be able to access to Mac OS X menu bar when virtual machine is running full screen mode. Move the mouse pointer to top of the screen and the menu bar will drop down.</p>
<p>If the two networking icons on the top right do not show green badge as in the screenshot below, then make sure your Virtual Machine Network Settings is connected and set to NAT (share the Mac&#8217;s network connection). The network should also work in Bridged mode. Also make sure the OpenSolaris network interface is connected to <span style="font-family:Courier;">e1000g0</span> and is active.</p>
<div class="wp-caption alignnone" style="width: 247px"><img src="http://adrianhoe.com/adrianhoe/images/blog/2009/OpenSolaris_05.png" alt="Two networking status icons with green badge" width="237" height="39" /><p class="wp-caption-text">Two networking status icons with green badge</p></div>
<p>Otherwise, click on System &gt; Administration &gt; Network to set it to auto configure. Your network should be up and running. </p>
<p>Next is to activate the sound. Download OSS (Open Sound System) driver at <a href="http://4front-tech.com/download.cgi" target="_blank">http://4front-tech.com/download.cgi</a> and install it as follow:</p>
<pre><code># pkgadd -d oss-solaris-v4.0-123-i386.pkg
# osstest
</code></pre>
<p>After the installation, run <span style="font-family:Courier;">osstest</span> to test the sound system. You will hear a tune playing on your speakers. You may need to reboot your system to allow the driver to properly load.</p>
<p>There are a few more packages to be downloaded and installed from OpenSolaris.org repository. To install gcc4ada from BlastWave, you will need <span style="font-family:Courier;">SUNWgnu-libiconv</span> and <span style="font-family:Courier;">SUNWarc</span>. Start Package Manager to download and install them from OpenSolaris repository. If you need source code management, you will need <span style="font-family:Courier;">SUNWsvn</span> as well.</p>
<p>The OpenSolaris repository does not have Ada compiler (gccada) and only supports gcc 3.4.3. You will have to install Ada compiler from another repository at <a href="http://blastwave.org" target="_blank">Blastwave</a>.</p>
<p>To download and install software packages from Blastwave, you need <span style="font-family:Courier;">pkgutil</span>. Download and install <span style="font-family:Courier;">pkgutil</span> and other necessary packages by following the instruction at Blastwave site. You can obtain a list of software packages that you need from Blastwave. After installing <span style="font-family:Courier;">pkgutil</span>, you may want to include <span style="font-family:Courier;">/opt/csw/bin</span> to your path.</p>
<p>If you need an Ada 2005 compiler, then download and install <span style="font-family:Courier;">gcc4ada</span>:</p>
<pre><code># pkgutil --install gcc4ada
</code></pre>
<p>Include <span style="font-family:Courier;">/opt/csw/gcc/bin</span> to your path and the Ada compiler is ready. I checked out a project from my svn repository and compiled. Viola! I am happy with the performance which I find is better than Ubuntu and any other Linux distros. One drawback of OpenSolaris or Solaris is the limited software packages. There are more than a thousand ready-built software packages to download in every Linux distros. That means you will have to build some of the software you need on Solaris (and OpenSolaris).</p>
<p>I removed and re-installed OpenSolaris yesterday after I found some broken links due to not following the instructions correctly. Always read installation instructions from various sources carefully before installing. I find the trouble is worthy otherwise I will not have a clear summarized steps to write about here.</p>
<p>With the recent IBM&#8217;s announcement to acquire Sun Microsystems, I hope Sun will not be cannibalized after the acquisition. And I hope that Sun is not setting but if it must, it will rise again. OpenSolaris and UltraSPARC processors are one of the leading technologies available.</p>
<p>I hope to find time on a weekend to install OpenSolaris on the Sun Blade 100. It is still running Solaris 9 since 2003.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2009/03/26/a-hot-sunny-affair/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Objectively Boolean</title>
		<link>http://adrianhoe.com/adrianhoe/2009/02/11/objectively-boolean/</link>
		<comments>http://adrianhoe.com/adrianhoe/2009/02/11/objectively-boolean/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 18:34:23 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Ada]]></category>
		<category><![CDATA[At Work]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[C/C++]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/?p=1500</guid>
		<description><![CDATA[I was introduced to Objective-C in a workshop organized by Apple Malaysia about 3 years ago. Read my posts here and here. No real development using Objective-C after that. One plain reason for me to pick up Objective-C again recently is to develop Cocoa and Cocoa Touch applications for the Macs and iPhone (and iPod [...]]]></description>
			<content:encoded><![CDATA[<p>I was introduced to Objective-C in a workshop organized by Apple Malaysia about 3 years ago. Read my posts <a href="http://adrianhoe.com/adrianhoe/2006/11/29/first-hand-on-objective-c-and-cocoa/" target="_blank">here</a> and <a href="http://adrianhoe.com/adrianhoe/2006/11/29/cocoa-bindings-and-core-data-workshop/" target="_blank">here</a>. No real development using Objective-C after that.</p>
<p>One plain reason for me to pick up Objective-C again recently is to develop Cocoa and Cocoa Touch applications for the Macs and iPhone (and iPod Touch). Trying to having nonpartisan mind after so many years of using Ada (and away from C/C++ and variants) is a difficult task to comprehend. As an individual Ada developer (having my own opinion) I am finding C/C++ very compromising in many ways, for instance, readability of codes and safety. Although Objective-C has many improvement over C/C++, it is still lacking what Ada offers.</p>
<p>By syntax, Objective-C is still very much like C. A few obvious clues to tell if it is an Objective-C are the use of <span style="font-family:Courier;">#import</span>, instead of <span style="font-family:Courier;">#include</span>; the <span style="font-family:Courier;">@</span> sign; the Smalltalk-like message passing syntax and several others.</p>
<p>The <span style="font-family:Courier;">#include</span> statement in C/C++ has many drawbacks. One which seriously affecting compilation efficiency is the repeating includes of same header files. With <span style="font-family:Courier;">#import</span>, header files are included once only throughout entire compilation.</p>
<p>One deadly pitfall I have encountered so far is the way Boolean type is implemented in Objective-C. C supports Boolean data type, <span style="font-family:Courier;">bool</span>, which takes on the value of either <span style="font-family:Courier;">true</span> or <span style="font-family:Courier;">false</span>. Objective-C has similar data type, <span style="font-family:Courier;">BOOL</span>, which is 8-bit number that takes on <span style="font-family:Courier;">YES</span> as <span style="font-family:Courier;">1</span> and <span style="font-family:Courier;">NO</span> as <span style="font-family:Courier;">0</span>. If you unwittingly assign a 2-byte integer to a <span style="font-family:Courier;">BOOL</span> type, the result can be catastrophic. Only the lowest byte will be used for the value of <span style="font-family:Courier;">BOOL</span>. If the lowest byte is zero, for example, <span style="font-family:Courier;">4608</span> which its hexadecimal value is <span style="font-family:Courier;">0&#215;1200</span>, <span style="font-family:Courier;">BOOL</span> will be zero or <span style="font-family:Courier;">NO</span>.</p>
<p>Ada&#8217;s strong-typing disallows this to happen and thus saving, possibly countless hours of debugging. Personally, I like neither <span style="font-family:Courier;">bool</span> nor <span style="font-family:Courier;">BOOL</span>. I prefer Ada&#8217;s <span style="font-family:Courier;">Boolean</span>.</p>
<p>Unlike the dreaded C++, Objective-C does not support operator overloading and multiple inheritance. In Ada95, a restricted form of multiple inheritance is supported. In Ada2005, multiple inheritance is supported by new form of type called the interface type, similar to abstract tagged type with no components.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2009/02/11/objectively-boolean/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>归零</title>
		<link>http://adrianhoe.com/adrianhoe/2008/09/30/%e5%bd%92%e9%9b%b6/</link>
		<comments>http://adrianhoe.com/adrianhoe/2008/09/30/%e5%bd%92%e9%9b%b6/#comments</comments>
		<pubDate>Mon, 29 Sep 2008 17:44:01 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Ada]]></category>
		<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Chinese]]></category>
		<category><![CDATA[Days in My Life]]></category>
		<category><![CDATA[Essay]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[神七]]></category>
		<category><![CDATA[神六]]></category>
		<category><![CDATA[神舟]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/?p=1193</guid>
		<description><![CDATA[读了成彪登在新华网的作者文集，我对“归零”有很大的回响，也让我心中再次涌现了她的影子。读完文集，我热泪盈眶： 9月28日，神七顺利回家，举国为之欢腾。 从神七返回舱顺利落地的那一刻，一个词——“归零”立刻浮现在笔者的心头。在2005年神六完美落地后，航天员费俊龙、聂海胜异口同声地说：“所有的成绩都已经‘归零’。”而今，神七同样不辱使命，我们同样需要自信、自警、自强地对自己说“所有的成绩都已经‘归零’”，进而尽快回到那光荣而艰苦的圆梦历程上，继续向更高的科技高峰攀登。 从某种意义上说，航天产品研制的过程就是一个不断归零的过程。神七按计划成功落地，载人航天飞行的技术“归零”就同时启动，我们不仅要在这项系统技术上追求完美无缺，还要举一反三地消除前进道路上的每一个科技难题，在不断地难题“归零”、成绩“归零”中创造新的辉煌。 从差距到动力，中间需要一个“发现”——自我发现差距，产生奋起直追的内在要求。神七落地的那一刻就将成绩“归零”，就是要自我发现差距、内生前进动力。 神七回家日，成绩归零时。除了鲜花、掌声、贺辞之外，广大航天科技工作者又一次自信自强地站在新的起点，向着发射空间实验室、建立永久性空间站等更高更远的目标前进！ 早在1990年代中，我的同事和我都一直难题“归零”，我们才有今日的成就。回顾十三年来我们经历的一番努力，心里别有一番味道。虽然，今天各自有所发展，我们还是把以前的合作永远铭记于心。令我最遗憾的是我的好友兼第一任女友不幸的在1998年车祸去世。我们在中四就认识。她也是一位电脑奇材。她最拿手的是彙编语言 (assembly language)。她写彙编语言程序简直是到了出神入化的地步。她也是我在中四刚开始接触电脑时的良师。1995年当我建议公司采用 Ada 为主要软件开发语言，她给了我很大的鼓励。她曾向我说过：“一切从头开始吧。从‘零’开始会更好。” 她给了我很好的启示。我把所有已开发完毕的软件系统拿来“归零”，以 Ada 从新开发。就这样，我一路发展下去。一有了成绩，我又一切“归零”，从零开始。周而复始。 1997年，全球金融风暴，也是她让我重拾信心，再次“归零”开始。1998年初，我的公司开始转型，迈向国外的时刻，她也考获博士学位，那时我们俩正是处于最颠峰状态。可惜造化弄人，1998年12月26日凌晨，我接到她爸爸的电话，听到厄闻，我顿时呆了。28日就是她的生日。我伤心了好几个星期。1999年1月30日，她爸妈从美国办完她的丧事回来，我见过了她爸妈。她爸爸给了我一样东西看，她的日记。看了过后，我很感激她。自从那时起，我就一直沉醉于工作、一切“归零”。 2001年，公司已经走向世界了，我也离开重组新公司，一切又“归零”。2006年，公司开发工程完毕，我离开公司了，一切又“归零”。要不是这“归零”、又“归零”、再“归零”，今天我也不会有这等思想。 今天我所做的一切，也是一切“归零”开始，希望我的孩子能够早日走出泥沼迈向世界。]]></description>
			<content:encoded><![CDATA[<p>读了成彪登在<a href="http://news.xinhuanet.com/" target="_blank">新华网</a>的<a href="http://news.xinhuanet.com/comments/2008-09/28/content_10127745.htm" target="_blank">作者文集</a>，我对“归零”有很大的回响，也让我心中再次涌现了她的影子。读完文集，我热泪盈眶：</p>
<p><span id="more-1193"></span></p>
<blockquote><p>9月28日，神七顺利回家，举国为之欢腾。</p>
<p>从神七返回舱顺利落地的那一刻，一个词——“归零”立刻浮现在笔者的心头。在2005年神六完美落地后，航天员费俊龙、聂海胜异口同声地说：“所有的成绩都已经‘归零’。”而今，神七同样不辱使命，我们同样需要自信、自警、自强地对自己说“所有的成绩都已经‘归零’”，进而尽快回到那光荣而艰苦的圆梦历程上，继续向更高的科技高峰攀登。</p>
<p>从某种意义上说，航天产品研制的过程就是一个不断归零的过程。神七按计划成功落地，载人航天飞行的技术“归零”就同时启动，我们不仅要在这项系统技术上追求完美无缺，还要举一反三地消除前进道路上的每一个科技难题，在不断地难题“归零”、成绩“归零”中创造新的辉煌。</p>
<p>从差距到动力，中间需要一个“发现”——自我发现差距，产生奋起直追的内在要求。神七落地的那一刻就将成绩“归零”，就是要自我发现差距、内生前进动力。</p>
<p>神七回家日，成绩归零时。除了鲜花、掌声、贺辞之外，广大航天科技工作者又一次自信自强地站在新的起点，向着发射空间实验室、建立永久性空间站等更高更远的目标前进！</p></blockquote>
<p>早在1990年代中，我的同事和我都一直难题“归零”，我们才有今日的成就。回顾十三年来我们经历的一番努力，心里别有一番味道。虽然，今天各自有所发展，我们还是把以前的合作永远铭记于心。令我最遗憾的是我的好友兼第一任女友不幸的在1998年车祸去世。我们在中四就认识。她也是一位电脑奇材。她最拿手的是彙编语言 (assembly language)。她写彙编语言程序简直是到了出神入化的地步。她也是我在中四刚开始接触电脑时的良师。1995年当我建议公司采用 Ada 为主要软件开发语言，她给了我很大的鼓励。她曾向我说过：“一切从头开始吧。从‘零’开始会更好。”</p>
<p>她给了我很好的启示。我把所有已开发完毕的软件系统拿来“归零”，以 Ada 从新开发。就这样，我一路发展下去。一有了成绩，我又一切“归零”，从零开始。周而复始。</p>
<p>1997年，全球金融风暴，也是她让我重拾信心，再次“归零”开始。1998年初，我的公司开始转型，迈向国外的时刻，她也考获博士学位，那时我们俩正是处于最颠峰状态。可惜造化弄人，1998年12月26日凌晨，我接到她爸爸的电话，听到厄闻，我顿时呆了。28日就是她的生日。我伤心了好几个星期。1999年1月30日，她爸妈从美国办完她的丧事回来，我见过了她爸妈。她爸爸给了我一样东西看，她的日记。看了过后，我很感激她。自从那时起，我就一直沉醉于工作、一切“归零”。</p>
<p>2001年，公司已经走向世界了，我也离开重组新公司，一切又“归零”。2006年，公司开发工程完毕，我离开公司了，一切又“归零”。要不是这“归零”、又“归零”、再“归零”，今天我也不会有这等思想。</p>
<p>今天我所做的一切，也是一切“归零”开始，希望我的孩子能够早日走出泥沼迈向世界。</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2008/09/30/%e5%bd%92%e9%9b%b6/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Ada tasking on multi-core</title>
		<link>http://adrianhoe.com/adrianhoe/2008/07/17/ada-tasking-on-multi-core/</link>
		<comments>http://adrianhoe.com/adrianhoe/2008/07/17/ada-tasking-on-multi-core/#comments</comments>
		<pubDate>Wed, 16 Jul 2008 16:37:55 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Ada]]></category>
		<category><![CDATA[Core Duo]]></category>
		<category><![CDATA[multi-core]]></category>
		<category><![CDATA[Parallelism]]></category>
		<category><![CDATA[Task]]></category>
		<category><![CDATA[Tasking]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/?p=804</guid>
		<description><![CDATA[With a multi-core processor such as the Intel&#8217;s Core Duo, the Ada tasking can be easily demonstrated compared to single core Pentium processor. Consider the following Ada code: with Ada.Text_IO; use Ada.Text_IO; procedure Tasking is task A; task B; task body A is begin for I in 1 .. 10 loop Put_Line ("A"); end loop; [...]]]></description>
			<content:encoded><![CDATA[<p>With a multi-core processor such as the Intel&#8217;s Core Duo, the Ada tasking can be easily demonstrated compared to single core Pentium processor. Consider the following Ada code:</p>
<pre>
<code>
with Ada.Text_IO; use Ada.Text_IO;

procedure Tasking is

   task A;
   task B;

   task body A is
   begin
      for I in 1 .. 10 loop
         Put_Line ("A");
      end loop;
   end A;

   task body B is
   begin
      for I in 1 .. 10 loop
         Put_Line ("B");
      end loop;
   end B;

begin
   Put_Line ("Begin parallel tasking...");
   Put_Line ("The end!");
end Tasking;
</code>
</pre>
<p>The above program produces the following result which easily reflects the parallel execution.</p>
<pre>
<code>
A
B
Begin parallel tasking...
A
B
The end!
A
B
A
B
A
B
A
B
A
B
A
B
A
B
A
B
</code>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2008/07/17/ada-tasking-on-multi-core/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Hello? What is Ada?</title>
		<link>http://adrianhoe.com/adrianhoe/2008/07/09/hello-what-is-ada/</link>
		<comments>http://adrianhoe.com/adrianhoe/2008/07/09/hello-what-is-ada/#comments</comments>
		<pubDate>Wed, 09 Jul 2008 15:46:21 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Ada]]></category>
		<category><![CDATA[At Work]]></category>
		<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Days in My Life]]></category>
		<category><![CDATA[Seminar]]></category>
		<category><![CDATA[C]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/?p=770</guid>
		<description><![CDATA[I was giving an Ada talk this afternoon. The room was quite packed with students although not full. They were mainly 3rd year sem 1. Most of them were looking at technologies that they could work with their FYP (Final Year Project). While I regaled them with fascinating true facts of Ada, I could see [...]]]></description>
			<content:encoded><![CDATA[<p>I was giving an Ada talk this afternoon. The room was quite packed with students although not full. They were mainly 3rd year sem 1. Most of them were looking at technologies that they could work with their FYP (Final Year Project).</p>
<p>While I regaled them with fascinating true facts of Ada, I could see various reactions on their innocent and ignorant faces. Almost half of them gave an expression of &#8220;What is Ada going to do with my project?&#8221;, &#8220;What is Ada? Never heard of it.&#8221; or &#8220;Ada is old technology and is unpopular.&#8221; It was years of experience telling me not to waste too much time with such audiences. I quickly skimmed through some technical facts which they wouldn&#8217;t understand and continue regaling them with some interesting facts.</p>
<p>Finally, I had come to the end of the talk. It was the questions and answers session. No one had asked any questions except a girl who asked me about C# after the talk session was over. I explained to her the benefits of Ada over C# but she said she would have to start all over again. Again, my instinct told me not to waste time with such attitude and I turned my focus onto the two students whom I am supervising now. I continued with them a discussion of their project.</p>
<p>Unlike a couple of years back, I was too over-enthusiastic about Ada. I would talk regardless of audience reactions. After a few talks and a seminar this year, I find that I have changed. My enthusiasm is parallel to audience reaction.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2008/07/09/hello-what-is-ada/feed/</wfw:commentRss>
		<slash:comments>4</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>Patched a security hole in KazeServer</title>
		<link>http://adrianhoe.com/adrianhoe/2008/06/04/patched-a-security-hole-in-kazeserver/</link>
		<comments>http://adrianhoe.com/adrianhoe/2008/06/04/patched-a-security-hole-in-kazeserver/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 06:46:52 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Ada]]></category>
		<category><![CDATA[At Work]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[KazeServer]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/?p=740</guid>
		<description><![CDATA[While I was at Honda waiting for the technician to reprogram the ECU, I found a security hole in the authentication part of KazeServer. An unrecognized user id with a null password would grant access to KazeServer but without any significant usability but posed a potential risk. I quickly identified the cause and rectified the [...]]]></description>
			<content:encoded><![CDATA[<p>While I was at Honda waiting for the technician to reprogram the ECU, I found a security hole in the authentication part of KazeServer. An unrecognized user id with a null password would grant access to KazeServer but without any significant usability but posed a potential risk.</p>
<p>I quickly identified the cause and rectified the problematic logic in the program design. One down and many to do. One of the other critical problem is that KazeServer will get over with initialization and execute even without the MySQL server is running. A serious bug though.</p>
<p>Another 3 more days to release Alpha RC1 and yet so many problems and unfinished parts. I feel the release will have to be postponed then.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2008/06/04/patched-a-security-hole-in-kazeserver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pre-Alpha RC1</title>
		<link>http://adrianhoe.com/adrianhoe/2008/06/02/pre-alpha-rc1/</link>
		<comments>http://adrianhoe.com/adrianhoe/2008/06/02/pre-alpha-rc1/#comments</comments>
		<pubDate>Mon, 02 Jun 2008 14:46:22 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Ada]]></category>
		<category><![CDATA[At Work]]></category>
		<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Days in My Life]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[gnat]]></category>
		<category><![CDATA[KazeServer]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/?p=739</guid>
		<description><![CDATA[I am in the midst of getting the KazeServer to roll out. During this pre-Alpha RC1 stage, works have been a little pressured especially cleaning up parts of the codes to make it neater and more efficient. A number of factors are also affecting during pre-Alpha stage. One of them is the gnat Ada compiler [...]]]></description>
			<content:encoded><![CDATA[<p>I am in the midst of getting the KazeServer to roll out. During this pre-<a href="http://adrianhoe.com/adrianhoe/2008/06/01/entering-alpha-stage/" target="_blank">Alpha</a> RC1 stage, works have been a little pressured especially cleaning up parts of the codes to make it neater and more efficient. A number of factors are also affecting during pre-Alpha stage.</p>
<p>One of them is the gnat Ada compiler issue on Ubuntu Hardy Heron or 8.04. Hardy comes with gnat-4.1 with a number of packages not added. Without these packages, I <a href="http://adrianhoe.com/adrianhoe/2008/05/26/cant-build-aws-in-ubuntu/" target="_blank">can&#8217;t build AWS</a>-2.3. So, I have to roll out Alpha RC1 on Mac OS X until Ubuntu Intrepid or 8.10 with gnat-4.3 is released (hopefully with gnat-4.3 by October). I have another option which is I have to move to Debian Etch with gnat-4.1 but including the libaws-2.2.</p>
<p>libaws-2.2 is a pre-built library for AWS on Debian Etch. I am developing using gnat-4.4 and AWS-2.3 on Mac OS X. Moving to Debian Etch means I am downgrading the version of gnat and AWS and I feel a little skeptical about it. This is one thing I hate most, version inconsistency among the Linux distro.</p>
<p>After talking to my friends on this matter, it looks like I have few choices but to target on Mac OS X for the moment considering the tasks of installing and get the Debian Etch up and a whole lot of uncertainties in gnat-4.1 and AWS-2.2.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2008/06/02/pre-alpha-rc1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Entering Alpha stage</title>
		<link>http://adrianhoe.com/adrianhoe/2008/06/01/entering-alpha-stage/</link>
		<comments>http://adrianhoe.com/adrianhoe/2008/06/01/entering-alpha-stage/#comments</comments>
		<pubDate>Sun, 01 Jun 2008 14:35:18 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Ada]]></category>
		<category><![CDATA[At Work]]></category>
		<category><![CDATA[Days in My Life]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[KazeServer]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/?p=737</guid>
		<description><![CDATA[Finally, after weeks of experimental development, KazeServer is entering Alpha development stage. I expect to roll out Alpha RC1, hopefully before this weekend. KazeServer is a web-enabled membership management system that allows registered members of an organization to login to review their membership data and other membership related transactions or records. KazeServer is developed 100% [...]]]></description>
			<content:encoded><![CDATA[<p>Finally, after weeks of experimental development, KazeServer is entering Alpha development stage. I expect to roll out Alpha RC1, hopefully before this weekend.</p>
<p>KazeServer is a web-enabled membership management system that allows registered members of an organization to login to review their membership data and other membership related transactions or records. KazeServer is developed 100% with Ada and AWS (Ada Web Server). The application itself is a web server. No web server, e.g. Apache, is needed to run KazeServer. It is a totally stand-alone independent application with a built-in web server (AWS).</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2008/06/01/entering-alpha-stage/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Can&#8217;t build AWS in Ubuntu</title>
		<link>http://adrianhoe.com/adrianhoe/2008/05/26/cant-build-aws-in-ubuntu/</link>
		<comments>http://adrianhoe.com/adrianhoe/2008/05/26/cant-build-aws-in-ubuntu/#comments</comments>
		<pubDate>Mon, 26 May 2008 01:44:56 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Ada]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[gnat]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/?p=732</guid>
		<description><![CDATA[About two weeks ago, I installed Ubuntu Hardy Heron in VMware Fusion on my MacBook (running Leopard). After some playing around with Ubuntu on my MacBook, I began to install software components such as the Ada compiler so that I could do testing on my MacBook without switching to the Ubuntu box. I am working [...]]]></description>
			<content:encoded><![CDATA[<p>About two weeks ago, I installed Ubuntu Hardy Heron in VMware Fusion on my MacBook (running Leopard). After some playing around with Ubuntu on my MacBook, I began to install software components such as the Ada compiler so that I could do testing on my MacBook without switching to the Ubuntu box.</p>
<p>I am working on a web-enabled application developed with AWS (Ada Web Server). This application is developed on Mac OS X. Building and testing on mac OS X has no problem at all. To compile the source on Ubuntu, I need AWS. So, I tried to install AWS packages from Ubuntu but found only broken dependencies. Then I decided to build one myself. The build has failed because the gnat (Ada compiler) from Ubuntu is 4.2. It lacks two Ada packages, a-calfor.ad[sb] (Ada.Calendar.Formatting) and a-catizo.ad[sb] (Ada.Calendar.Time_Zones). AWS depends on these to build.</p>
<p>I posted to <a href="http://groups.google.com/group/comp.lang.ada/browse_thread/thread/e0a833839e226c98/95c070e51195e93a#95c070e51195e93a" target="_blank">comp.lang.ada</a> and AWS list. It looks like I have no choice but to bootstrap gnat-4.3 myself or install from Ubuntu Intrepid or wait for the next Ubuntu release of gnat-4.3.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2008/05/26/cant-build-aws-in-ubuntu/feed/</wfw:commentRss>
		<slash:comments>1</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>China&#8217;s proven world class competency</title>
		<link>http://adrianhoe.com/adrianhoe/2008/04/13/chinas-proven-world-class-competency/</link>
		<comments>http://adrianhoe.com/adrianhoe/2008/04/13/chinas-proven-world-class-competency/#comments</comments>
		<pubDate>Sun, 13 Apr 2008 05:20:55 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Ada]]></category>
		<category><![CDATA[China]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Humanity]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[snow hazard]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2008/02/15/chinas-proven-world-class-competency/</guid>
		<description><![CDATA[During the snow hazard in China this February, the Chinese government had successfully managed the natural disaster and crisis with much professionalism in such a short period of time. According to an unconfirmed source, the Chinese government managed to develop a Disaster Management System in just 5 days. 75 software engineers from the Chinese military [...]]]></description>
			<content:encoded><![CDATA[<p>During the snow hazard in China this February, the Chinese government had successfully managed the natural disaster and crisis with much professionalism in such a short period of time. According to an unconfirmed source, the Chinese government managed to develop a Disaster Management System in just 5 days. 75 software engineers from the Chinese military worked around the clock for 5 days to bring up a web based Disaster Management System to collect, manage, disseminate, coordinate, and to provide command and control to the military disaster relieve team during the recent snow hazard.</p>
<p>The system was developed using Ada, AWS (Ada Web Server) with a little of PHP and Perl. The system deploys a MySQL database running on Linux. The system is hooked up to air-borne SAR (Synthetic Aperture Radar) for real-time acquisition of landscaping information in snow hazard affected area to help assessing the damage of rail ways, roads, housing and forest. The Chinese army engineering company was dispatched by the system to areas in need of assistance.</p>
<p>I have yet to receive further details of how the system works and probably will not. Anyway, that shows the Chinese ability and responsiveness in dealing with natural disaster. Hail China!</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2008/04/13/chinas-proven-world-class-competency/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Talking to a wall</title>
		<link>http://adrianhoe.com/adrianhoe/2008/03/08/talking-to-a-wall/</link>
		<comments>http://adrianhoe.com/adrianhoe/2008/03/08/talking-to-a-wall/#comments</comments>
		<pubDate>Fri, 07 Mar 2008 17:53:11 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Ada]]></category>
		<category><![CDATA[At Work]]></category>
		<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2008/03/08/talking-to-a-wall/</guid>
		<description><![CDATA[I had two talks about Ada at MMU (February 25) and UTAR (March 5). Among the local universities I had given talk about Ada, UTAR was the only university where I had given more than 5 talks over the years. According to my previous experience at UTAR, the response from the students were quite good. [...]]]></description>
			<content:encoded><![CDATA[<p>I had two talks about Ada at MMU (<a href="http://adrianhoe.com/2008/02/16/ada-seminar-at-mmu-and-utar/" target="_blank">February 25</a>) and UTAR (<a href="http://adrianhoe.com/2008/03/05/ada-seminar-at-utar-3/" target="_blank">March 5</a>). Among the local universities I had given talk about Ada, UTAR was the only university where I had given more than 5 talks over the years. According to my previous experience at UTAR, the response from the students were quite good.</p>
<p>On March 5, the talk at UTAR was the worst as if I was talking to walls or stone sculptures. The students were acting very rude by ignoring my talk. They were doing their assignment at the computers instead of listening to my talk. The talk was rescheduled to another venue which was in a computer lab. Nonetheless, I wrapped up the talk quickly. I skipped many parts to take it to the end and at the end of the talk, no one had asked any questions. I asked them some questions instead and of course, they did not know to answer. Obviously, they did not pay any attention at all.</p>
<p>In contrary, the talk at MMU on February 25 received better responses from the students.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2008/03/08/talking-to-a-wall/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ada Seminar</title>
		<link>http://adrianhoe.com/adrianhoe/2008/02/18/ada-seminar/</link>
		<comments>http://adrianhoe.com/adrianhoe/2008/02/18/ada-seminar/#comments</comments>
		<pubDate>Mon, 18 Feb 2008 01:27:04 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Ada]]></category>
		<category><![CDATA[Conferences]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2008/02/18/ada-seminar/</guid>
		<description><![CDATA[I gave my last Ada Seminar in March 2005 at MMU Melaka. It has been 3 years since I last active in Ada and Ada projects. It will be a great pleasure to restart any Ada related activities after quite a long inactivity. This time, I am going to give a talk about Ada at [...]]]></description>
			<content:encoded><![CDATA[<p>I gave my last Ada Seminar in March 2005 at MMU Melaka. It has been 3 years since I last active in Ada and Ada projects. It will be a great pleasure to restart any Ada related activities after quite a long inactivity.</p>
<p>This time, I am going to give a talk about Ada at two universities. For more information about the Ada seminars, read <a href="http://adrianhoe.com/2008/02/16/ada-seminar-at-mmu-and-utar/" target="_blank">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2008/02/18/ada-seminar/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>Leopard unleashed!</title>
		<link>http://adrianhoe.com/adrianhoe/2007/10/28/leopard-unleashed/</link>
		<comments>http://adrianhoe.com/adrianhoe/2007/10/28/leopard-unleashed/#comments</comments>
		<pubDate>Sun, 28 Oct 2007 14:46:18 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Ada]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Leopard]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2007/10/28/leopard-unleashed/</guid>
		<description><![CDATA[Apple has unleashed Leopard (Mac OS 10.5) last week. It&#8217;s an awesome operating system beating all other OS flat out! New features such as time machine, desktop space, interoperability with Apple Mail and many more. Time Machine is a repository with version control system to keep track all the changes to your files and directories. [...]]]></description>
			<content:encoded><![CDATA[<p>Apple has unleashed Leopard (Mac OS 10.5) last week. It&#8217;s an awesome operating system beating all other OS flat out! New features such as time machine, desktop space, interoperability with Apple Mail and many more.</p>
<p>Time Machine is a repository with version control system to keep track all the changes to your files and directories. When you plug in a FireWire hard disk, Leopard will automatically version all your files and directories onto the external hard disk. You are able to go back in time to look for a file (or directory), which you have deleted or modified, and to restore them.</p>
<p>Desktop Space gives you more desktop spaces to organize your works on the screen. It makes switching from task to task simple and easy with a click of the mouse.</p>
<p>It will be a nice upgrade but if you are developing software with Ada, unfortunately, you have to wait for a while. Ada does not come with xcode yet. The folks at MacAda is still working on a stable and working version of Ada compiler.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2007/10/28/leopard-unleashed/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>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>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>A Petition To Apple</title>
		<link>http://adrianhoe.com/adrianhoe/2007/09/14/a-petition-to-apple/</link>
		<comments>http://adrianhoe.com/adrianhoe/2007/09/14/a-petition-to-apple/#comments</comments>
		<pubDate>Fri, 14 Sep 2007 02:42:23 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Ada]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2007/09/14/a-petition-to-apple/</guid>
		<description><![CDATA[I have been on and off using Ada (gnat) on Mac OS X. The folks at MacAda.org are doing a great job. Thanks to Jim Hoppers, Andrew Reynolds, Mike Feldman and others. It has been years since Apple rolled out Xcode, an integrated development environment. Xcode is heavily centered around Objective C and Cocoa. MacAda.org, [...]]]></description>
			<content:encoded><![CDATA[<p>I have been on and off using Ada (gnat) on Mac OS X. The folks at <a href="http://macada.org">MacAda.org</a> are doing a great job. Thanks to Jim Hoppers, Andrew Reynolds, Mike Feldman and others.</p>
<p>It has been years since Apple rolled out <a href="http://www.apple.com/macosx/features/xcode/">Xcode</a>, an integrated development environment. Xcode is heavily centered around Objective C and Cocoa. MacAda.org, a group of Ada enthusiasts, took on a NDA (Non Disclosure Agreement) with Apple and integrate Ada, based on <a href="https://libre.adacore.com/">gnat</a>, into Xcode. This is very encouraging for developers who develop on Ada to switch to Mac.</p>
<p>I have been developing some Ada standard tools (console applications without GUI) on Mac with Xcode. I am kind of on and off of Ada on the Mac. Every each time when I come back with a project with Ada on the Mac, I will find inconsistencies and between Ada and Xcode.</p>
<p>The support of Ada-Carbon is really hard to follow up with. Even the MacAda&#8217;s website does not provide enough information and a proper link to the Carbon binding. The easiest way to develop a GUI application using Ada on Mac is using <a href="https://libre.adacore.com/GtkAda/">GtkAda</a>. But getting GtkAda built and installed will require tremendously arduous work to build and install <a href="http://www.gtk.org/">Gtk+</a> first. And running the GtkAda application will require X11 and of course Gtk+. The application will not be Mac native application.</p>
<p>I (and many others too) would love to see Apple really makes serious consideration to incorporate Ada into Xcode as a de facto standard. Here&#8217;s the list:</p>
<ol style="text-indent: 0px">
<li>Makes Ada comes with Apple&#8217;s Xcode so that there will be a consistency with every updates from Apple and not from 3rd party website such as MacAda.</li>
<li>Enable Xcode to create Cocoa and Carbon projects with Ada bindings.</li>
<li>Support Core Data Application project using Ada.</li>
</ol>
<p>Any Mac Ada developers who wish to add to the list, please feel free to post your comments. Thank you!</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2007/09/14/a-petition-to-apple/feed/</wfw:commentRss>
		<slash:comments>22</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>A bunch of Ada-holes talking</title>
		<link>http://adrianhoe.com/adrianhoe/2007/05/26/a-bunch-of-ada-holes-talking/</link>
		<comments>http://adrianhoe.com/adrianhoe/2007/05/26/a-bunch-of-ada-holes-talking/#comments</comments>
		<pubDate>Fri, 25 May 2007 16:40:54 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Ada]]></category>
		<category><![CDATA[At Work]]></category>
		<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Days in My Life]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2007/05/26/a-bunch-of-ada-holes-talking/</guid>
		<description><![CDATA[Like last week, a bunch of &#8220;Ada-holes&#8221; meet up on every Friday midnight (MYT) to discuss about work progress and some jokes. They are Jesse (the team leader), Jeffrey, Jerrid, Chip, Mark and I. Mark and I are from the far east. Mark from Vietnam and the rest are in the U.S. We discuss mainly [...]]]></description>
			<content:encoded><![CDATA[<p>Like last week, a bunch of &#8220;Ada-holes&#8221; meet up on every Friday midnight (MYT) to discuss about work progress and some jokes. They are <a href="http://jesselang.com/">Jesse</a> (the team leader), Jeffrey, Jerrid, Chip, <a href="http://blog.360.yahoo.com/phv80_vn">Mark</a> and I. Mark and I are from the far east. Mark from Vietnam and the rest are in the U.S.</p>
<p>We discuss mainly on the <a href="http://subversion.tigris.org/">svn</a> commit guidelines, Ada coding standards and document formats. We have yet to choose either ODF or <a href="http://lyx.org">LyX</a>. The discussion is fruitful and we begin to see a software development process emerging.</p>
<p>It is tiring but fun!</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2007/05/26/a-bunch-of-ada-holes-talking/feed/</wfw:commentRss>
		<slash:comments>0</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>Scarce resources on AWS with Ajax</title>
		<link>http://adrianhoe.com/adrianhoe/2007/03/17/scarce-resources-on-aws-with-ajax/</link>
		<comments>http://adrianhoe.com/adrianhoe/2007/03/17/scarce-resources-on-aws-with-ajax/#comments</comments>
		<pubDate>Sat, 17 Mar 2007 06:04:30 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Ada]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2007/03/17/scarce-resources-on-aws-with-ajax/</guid>
		<description><![CDATA[Although AWS comes with some demo codes, I find it insufficient to learn using AWS to develop an Ajax web application. Due to the scarce resources on using AWS with Ajax, I&#8217;ve been trying to understand the working mechanism between AWS and Ajax. To build a knowledge base in myself about developing a web application [...]]]></description>
			<content:encoded><![CDATA[<p>Although AWS comes with some demo codes, I find it insufficient to learn using AWS to develop an Ajax web application. Due to the scarce resources on using AWS with Ajax, I&#8217;ve been trying to understand the working mechanism between AWS and Ajax.</p>
<p>To build a knowledge base in myself about developing a web application using AWS and Ajax is challenging. To use AWS with Ajax, I need also to learn/use XML/Ada. I&#8217;ve played around with XML for a while, mainly hacking into data saved in XML format by some Mac OS X applications.</p>
<p>XML is Extensible Markup Language. This is a format used to organize text files into tags and associated set of values. XML/Ada is a collection of simple modules that provide manipulation of XML streams.</p>
<p>In an Ajax (or Reverse Ajax) capable web application, data streams are packaged and sent in XML format, for example:</p>
<pre><code>
&lt;client_info&gt;
   &lt;name&gt;Acme Corporation&lt;/name&gt;
   &lt;id&gt;ACME&lt;/id&gt;
&lt;/client_info&gt;
</code></pre>
<p>A JavaScript will interpret and read the corresponding tags and associated values after the web page has received the package.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2007/03/17/scarce-resources-on-aws-with-ajax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reverse Ajax</title>
		<link>http://adrianhoe.com/adrianhoe/2007/03/17/reverse-ajax/</link>
		<comments>http://adrianhoe.com/adrianhoe/2007/03/17/reverse-ajax/#comments</comments>
		<pubDate>Sat, 17 Mar 2007 04:28:21 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Ada]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2007/03/17/reverse-ajax/</guid>
		<description><![CDATA[Since my new job at Singo Solutions, I&#8217;ve been reading about Ajax and Reverse Ajax. My development project requires the use of Ada, AWS and Ajax to build a web application with real-time data display and better user-browser interaction. See my earlier post about Developing web applications with AWS. Ajax was a term new to [...]]]></description>
			<content:encoded><![CDATA[<p>Since my new job at <a href="http://www.singosolutions.com/">Singo Solutions</a>, I&#8217;ve been reading about Ajax and Reverse Ajax. My development project requires the use of Ada, AWS and Ajax to build a web application with real-time data display and better user-browser interaction. See my earlier post about <a href="http://adrianhoe.com/adrianhoe/2007/02/24/developing-web-applications-with-aws/">Developing web applications with AWS</a>. Ajax was a term new to me. I had not bothered to read about Ajax and JavaScript before I joined Singo Solutions.</p>
<p>What is Ajax? Ajax is an acronym for <strong>A</strong>synchronous <strong>J</strong>avascript <strong>A</strong>nd <strong>X</strong>ML. The conjunction was injected into the acronym to spice up and to make pronunciation easier. Ajax is not a technology. It is a web programming technique to develop interactive web applications using combination of technologies such as JavaScript (JS), XML, DOM and XHTML. Ajax makes the web page to exchange a small amount of data with the server behind the scene, so that the entire web page will not have to be refreshed each time the user requests a change. With this technique, information can be displayed on web page in real-time without user&#8217;s intervention or a web page reload.</p>
<p>What is Reverse Ajax? Reverse Ajax is just different from Ajax, as reverse Ajax is a compounding technologies for pushing data from a server to a client. These technologies include COMET or PiggyBack and Polling, and, of course, Ajax.</p>
<p>Ajax keeps alive a connection between a server and a client and send data to the client. In another words, the server will contact the client when data need to be sent (without Ajax, the client will have to contact the server in order the data can be sent from the server to the client). The problem is that some web servers can&#8217;t easily contact web browsers. One thing for sure, the firewalls will get in the way.</p>
<p>Comet, or long-lived http or slow load technique, keeps the communication between a server and a client open. This technique actually have a client to send a request to the server and also allows the server starts replying to the request, slowly, extremely slowly but the reply actually never finish. This permits the server to keep the communications channel open to pass down additional information when the time comes. The closest comparison to this technique is <a href="http://en.wikipedia.org/wiki/Push_technology">server push</a>.</p>
<p>Reverse Ajax makes the browser to send requests in the background to the server and receive responses/data from the server without the intervention of user.</p>
<p>To use both Ajax and Reverse Ajax, I need to use JS in web templates although the web application (server) is developed with Ada and AWS. I am starting a love/hate relationship with JS.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2007/03/17/reverse-ajax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Developing web applications with AWS</title>
		<link>http://adrianhoe.com/adrianhoe/2007/02/24/developing-web-applications-with-aws/</link>
		<comments>http://adrianhoe.com/adrianhoe/2007/02/24/developing-web-applications-with-aws/#comments</comments>
		<pubDate>Sat, 24 Feb 2007 07:20:16 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Ada]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2007/02/24/developing-web-application-with-aws/</guid>
		<description><![CDATA[What is AWS? AWS or Ada Web Server is a complete web application framework written completely in Ada and allows development of application with an embedded web server. The application is self-contained with an embedded server. That means, the application is also a web application that can be controlled and manipulated using any web browsers [...]]]></description>
			<content:encoded><![CDATA[<p>What is AWS? <a href="https://libre.adacore.com/aws/main.html">AWS</a> or Ada Web Server is a complete web application framework written completely in Ada and allows development of application with an embedded web server. The application is self-contained with an embedded server. That means, the application is also a web application that can be controlled and manipulated using any web browsers on any clients that connect to it. And more, you don&#8217;t need any web server like <a href="http://www.apache.org/">Apache</a> anymore.</p>
<p>My current job involving developing a web application using Ada and AWS only and there will be <a href="http://www.adaptivepath.com/publications/essays/archives/000385.php">Ajax</a> using server push technology in AWS. I was developing some web applications using <a href="http://www.dwheeler.com/adacgi/">AdaCGI</a>. One drawback about using AdaCGI is that if there is a minor format changes in the html code, the entire application needs to be re-compiled again.</p>
<p>I was not totally familiar with AWS before I joined the US-based company but I was familiar already working with mails using AWS with the SMTP and POP protocol. I am beginning to understand the mechanism of the http protocol in AWS and I hope to write about this with more details in near future. I am beginning to love this job already and I believe I will be busy in the mud hole mingling with Ada, AWS and Ajax.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2007/02/24/developing-web-applications-with-aws/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A tribute to Jean Ichbiah</title>
		<link>http://adrianhoe.com/adrianhoe/2007/01/27/a-tribute-to-jean-ichbiah/</link>
		<comments>http://adrianhoe.com/adrianhoe/2007/01/27/a-tribute-to-jean-ichbiah/#comments</comments>
		<pubDate>Sat, 27 Jan 2007 15:39:12 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Ada]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2007/01/27/a-tribute-to-jean-ichbiah/</guid>
		<description><![CDATA[Jean Ichbiah? Who is he? Jean David Ichbiah was born March 25, 1940. He was the chief designer of the Ada programming language from 1977-1983. During that time, he worked as a member of the Programming Research division at CII-Honey Bull (CII-HB) at Louveciennes, France. He had been chairman of Simula User&#8217;s Group and was [...]]]></description>
			<content:encoded><![CDATA[<p>Jean Ichbiah? Who is he?</p>
<p>Jean David Ichbiah was born March 25, 1940. He was the chief designer of the Ada programming language from 1977-1983. During that time, he worked as a member of the Programming Research division at CII-Honey Bull (CII-HB) at Louveciennes, France. He had been chairman of Simula User&#8217;s Group and was one of the founding member of IFIP WG 2.4 on System Implementation Language.</p>
<p>CII-HB&#8217;s proposal won the US DoD (Department of Defense) contract to design a new programming language. After Ada was selected, he left CII-HB and founded Alsys Corporation in La Celle-Saint-Cloud which continued language definition work on Ada and later went into the Ada compiler business. Alsys first released a PC version of Ada compiler in 1983 making Ada compiler more affordable in PC programming. Ichbiah later moved into the Waltham, Massachusetts subsidiary of Alsys.</p>
<p>Ichbiah later started the <a href="http://textware.com/">Textware</a> company, which sells text entry software for PDA and tablet PCs as well as text entry software for medical transcription on PCs.</p>
<p>Jean Ichbiah was a member of the France Legion of Honor and the French Academy of Sciences and received a Certificate of Distinguished Service from the DoD for his work on Ada.</p>
<p>He died of complications of brain tumor and a fall, on January 26 2007.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2007/01/27/a-tribute-to-jean-ichbiah/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>APQ and AdaVox</title>
		<link>http://adrianhoe.com/adrianhoe/2006/11/11/apq-and-adavox/</link>
		<comments>http://adrianhoe.com/adrianhoe/2006/11/11/apq-and-adavox/#comments</comments>
		<pubDate>Sat, 11 Nov 2006 07:27:16 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Ada]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/2006/11/11/apq-and-adavox/</guid>
		<description><![CDATA[I&#8217;ve assumed the hosting of APQ and AdaVox from their creator, Warren W. Gay. Warren is an old friend from CLA who seek help to host his projects due to his limited web space and he is no longer writing software. Both APQ and AdaVox can be found by following the link in my Projects [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve assumed the hosting of APQ and AdaVox from their creator, <a href="http://home.cogeco.ca/~ve3wwg/">Warren W. Gay</a>. Warren is an old friend from <a href="http://groups-beta.google.com/group/comp.lang.ada/topics">CLA</a> who seek help to host his projects due to his limited web space and he is no longer writing software.</p>
<p>Both APQ and AdaVox can be found by following the link in my Projects page. Anyone who wish to contribute patches and maintaining the code, please contact me.</p>
<p>Warren, if you&#8217;re reading this, enjoy your new found interest and all the best to you.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2006/11/11/apq-and-adavox/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Pluto is fully operational</title>
		<link>http://adrianhoe.com/adrianhoe/2006/09/17/pluto-is-fully-operational/</link>
		<comments>http://adrianhoe.com/adrianhoe/2006/09/17/pluto-is-fully-operational/#comments</comments>
		<pubDate>Sun, 17 Sep 2006 12:25:00 +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[Mac OS X]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/blog/?p=78</guid>
		<description><![CDATA[Finally, I&#8217;ve installed the two last components I required to work with, Xcode 2.4 and gnat 4.2 (Ada compiler). The Mac Mini comes with Xcode 2.2.1 so I have to download 958MB of file to install Xcode 2.4. Pluto is fully armed and ready for real actions.]]></description>
			<content:encoded><![CDATA[<p>Finally, I&#8217;ve installed the two last components I required to work with, Xcode 2.4 and gnat 4.2 (Ada compiler).  The Mac Mini comes with Xcode 2.2.1 so I have to download 958MB of file to install Xcode 2.4.</p>
<p>Pluto is fully armed and ready for real actions.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2006/09/17/pluto-is-fully-operational/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ANNOUNCE: AdrianHoe.com provide web-based applications development</title>
		<link>http://adrianhoe.com/adrianhoe/2006/08/17/announce-adrianhoecom-provide-web-based-applications-development/</link>
		<comments>http://adrianhoe.com/adrianhoe/2006/08/17/announce-adrianhoecom-provide-web-based-applications-development/#comments</comments>
		<pubDate>Thu, 17 Aug 2006 00:47:00 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Ada]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/blog/?p=46</guid>
		<description><![CDATA[Today, AdrianHoe.com together with AdaStar Informatics announced to provide web-based application development. Using reliable software technology, the development team develops mission critical web-based applications. Depending on the requirement, MySQL or MaxDB will be used as the database backend. The core technology is not Java, C#, or anything else. Ada is the only core implementation vehicle [...]]]></description>
			<content:encoded><![CDATA[<p>Today, <a href="http://adrianhoe.com">AdrianHoe.com</a> together with <a href="http://adastar.com.my">AdaStar Informatics</a> announced to provide web-based application development.</p>
<p>Using reliable software technology, the development team develops mission critical web-based applications. Depending on the requirement, MySQL or MaxDB will be used as the database backend. The core technology is not Java, C#, or anything else. Ada is the only core implementation vehicle with tiny pieces in PHP.</p>
<p>A pilot project has been under development since June and is the first of its kind for AdrianHoe.com. The software is a mission-critical web application aiming to provide on-line registration and management of contestants in a sporting event. The final implementation date will be in 2009/2010.</p>
<p>The development is targeted to Mac OS X platforms for its reliability and robustness. There is no plan at this moment to target Linux or other Unix.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2006/08/17/announce-adrianhoecom-provide-web-based-applications-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Shooting Yourself In The Foot &#8211; A Humorous Approach In Comparing Ada To Other Programming Languages</title>
		<link>http://adrianhoe.com/adrianhoe/2006/08/04/shooting-yourself-in-the-foot-a-humorous-approach-in-comparing-ada-to-other-programming-languages/</link>
		<comments>http://adrianhoe.com/adrianhoe/2006/08/04/shooting-yourself-in-the-foot-a-humorous-approach-in-comparing-ada-to-other-programming-languages/#comments</comments>
		<pubDate>Fri, 04 Aug 2006 03:17:00 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Ada]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/blog/?p=40</guid>
		<description><![CDATA[The author of this humorous comparison is unknown. I think it is a fun way to compare programming languages. I hope you will enjoy reading it. Shooting Yourself in the Foot The proliferation of modern programming languages (all of which seem to have stolen countless features from one another) sometimes makes it difficult to remember [...]]]></description>
			<content:encoded><![CDATA[<p>The author of this humorous comparison is unknown. I think it is a fun way to compare programming languages. I hope you will enjoy reading it.</p>
<blockquote><p><u>Shooting Yourself in the Foot</u></p>
<p>The proliferation of modern programming languages (all of which seem to have stolen countless features from one another) sometimes makes it difficult to remember what language you&#8217;re currently using.  This guide is offered as a public service to help programmers who find themselves in such dilemmas.</p>
<p>C: You shoot yourself in the foot.</p>
<p>C++: You accidentally create a dozen instances of yourself and shoot them all in the foot. Providing emergency medical assistance is impossible since you can&#8217;t tell which are bitwise copies and which are just pointing at others and saying, &#8220;That&#8217;s me, over there.&#8221;</p>
<p>FORTRAN: You shoot yourself in each toe, iteratively, until you run out of toes, than you read in the next foot and repeat.  If you run out of bullets, you continue anyway because you have no exception-handling ability.</p>
<p>Modula2: After realizing that you can&#8217;t actually accomplish anything in this language, you shoot yourself in the head.</p>
<p>COBOL: Using a COLT 45 HANDGUN, AIM gun at LEG.FOOT, THEN place ARM.HAND.FINGER. on  HANDGUN.TRIGGER and SQUEEZE.  THEN return HANDGUN to HOLSTER. CHECK whether shoelace needs to be retied.</p>
<p>LISP: You shoot yourself in the appendage which holds the gun with<br />
which you shoot yourself in the appendage which holds the gun with<br />
which you shoot yourself in the appendage which holds the gun with<br />
which you shoot yourself in the appendage which holds the gun with<br />
which you shoot yourself in the appendage which holds &#8230;.</p>
<p>BASIC: Shoot yourself in the foot with a water pistol.  On big systems, continue until entire lower body is waterlogged.</p>
<p>FORTH: Foot in yourself shoot.</p>
<p>APL: You shoot yourself in the foot, then spend all day figuring out how to do it fewer characters.</p>
<p>Pascal:  The compiler won&#8217;t let you shoot yourself in the foot.</p>
<p>SNOBOL:  If you succeed, shoot yourself in the left foot.  If you fail, shoot yourself in the right foot.</p>
<p>Concurrent Euclid:  You shoot yourself in somebody else&#8217;s foot.</p>
<p>HyperTalk:  Put the first bullet of the gun into foot left of leg of you.  Answer the result.</p>
<p>Motif:  You spend days writing a UIL description of your foot, the trajectory, the bullet, and the intricate scrollwork on the ivory handles of the gun.  When you finally get around to pulling the trigger, the gun jams.</p>
<p>Unix: % ls foot.c foot.h foot.o toe.c toe.o  % rm *.o  rm:.o: No such file or directory % ls %</p>
<p>Paradox: Not only can you shoot yourself in the foot, your users can too.</p>
<p>Revelation: You&#8217;ll be able to shoot yourself in the foot just as soon as you figure out what all these bullets are for.</p>
<p>Visual Basic: You&#8217;ll shoot yourself in the foot, but you&#8217;ll have so much fun doing it that you won&#8217;t care.</p>
<p>Prolog: You tell your program you want to be shot in the foot.  The program figures out how to do it, but the syntax doesn&#8217;t allow it to explain.</p>
<p>370 JCL: You send your foot down to MIS with a 4000-page document explaining how you want it to be shot.  Three years later, your foot comes back deep-fried.</p>
<p>Ada: After correctly packaging your foot, you attempt to concurrently load the gun, pull the trigger, scream and shoot yourself in the foot. When you try, however, you discover that your foot is of the wrong type. Generally speaking, Ada will not allow such foolish attempts in safe mode. And if you do shoot your own foot, the ambulance is already on its way.</p>
<p>Assembly: You try to shoot yourself in the foot only to discover you  must first reinvent the gun, the bullet, and your foot. </p></blockquote>
<p>I took the liberty to add the last 2 sentences in Ada.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2006/08/04/shooting-yourself-in-the-foot-a-humorous-approach-in-comparing-ada-to-other-programming-languages/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ada UK Conference 2006 Goodies</title>
		<link>http://adrianhoe.com/adrianhoe/2006/07/15/ada-uk-conference-2006-goodies/</link>
		<comments>http://adrianhoe.com/adrianhoe/2006/07/15/ada-uk-conference-2006-goodies/#comments</comments>
		<pubDate>Fri, 14 Jul 2006 16:02:00 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Ada]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/blog/?p=32</guid>
		<description><![CDATA[I found some goodies about Ada 2005 here. If you are interested to learn about Ada, it is certainly worth peeping.]]></description>
			<content:encoded><![CDATA[<p>I found some goodies about Ada 2005 <a href="http://www.adacore.com/home/ada_answers/lectures/ada_uk06#">here</a>. If you are interested to learn about Ada, it is certainly worth peeping.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2006/07/15/ada-uk-conference-2006-goodies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A drawback of AdaCGI</title>
		<link>http://adrianhoe.com/adrianhoe/2006/07/13/a-drawback-of-adacgi/</link>
		<comments>http://adrianhoe.com/adrianhoe/2006/07/13/a-drawback-of-adacgi/#comments</comments>
		<pubDate>Thu, 13 Jul 2006 06:55:00 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Ada]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/blog/?p=29</guid>
		<description><![CDATA[The AdaCGI is a nice Ada interface to CGI (Common Gateway Interface) to create an Ada application that can be invoked by HTML servers. I am using AdaCGI to develop a mission-critical web application. However, I find that AdaCGI is unable to many things. One of the important features missing is that it can&#8217;t do [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.dwheeler.com/adacgi/">AdaCGI</a> is a nice Ada interface to CGI (Common Gateway Interface) to create an Ada application that can be invoked by HTML servers.</p>
<p>I am using AdaCGI to develop a mission-critical web application. However, I find that AdaCGI is unable to many things. One of the important features missing is that it can&#8217;t do redirection as in PHP:</p>
<pre><code>do_redirect ( "index.php" );
</code></pre>
<p>I am not sure if there&#8217;s a way to do that in Ada/AdaCGI. I hope I will never need to code in PHP.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2006/07/13/a-drawback-of-adacgi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CT images</title>
		<link>http://adrianhoe.com/adrianhoe/2006/07/13/ct-images/</link>
		<comments>http://adrianhoe.com/adrianhoe/2006/07/13/ct-images/#comments</comments>
		<pubDate>Thu, 13 Jul 2006 05:05:00 +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[Mac OS X]]></category>
		<category><![CDATA[Medical]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/blog/?p=28</guid>
		<description><![CDATA[After many months of hacking and research, I finally got my Ada code to parse DICOM file structure and display a coronary CT image. The Ada code is still far from perfect. I hope I can get it to work better before the end of the year. Nevertheless, the effort has paid off.]]></description>
			<content:encoded><![CDATA[<p>After many months of hacking and research, I finally got my Ada code to parse DICOM file structure and display a coronary CT image.</p>
<p align="center"><a href="http://adrianhoe.com/adrianhoe/images/blog/coronary_ct.jpg"><img src="http://adrianhoe.com/adrianhoe/images/blog/coronary_ct.jpg" width="400" height="294" border="0" /></a></p>
<p>The Ada code is still far from perfect. I hope I can get it to work better before the end of the year. Nevertheless, the effort has paid off.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2006/07/13/ct-images/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ada 2005</title>
		<link>http://adrianhoe.com/adrianhoe/2006/07/13/ada-2005/</link>
		<comments>http://adrianhoe.com/adrianhoe/2006/07/13/ada-2005/#comments</comments>
		<pubDate>Wed, 12 Jul 2006 16:52:00 +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[Software Development]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/blog/?p=27</guid>
		<description><![CDATA[After installing gcc-4.2 on my iBook, I am now having an Ada 2005 compiler in my tools collection. One of the interesting new features caught my attention. Ada 2005 now supports new 32-bit character type, Wide_Wide_Character. The source code itself can have extended character set as well. That means a whole Greek and fractur character [...]]]></description>
			<content:encoded><![CDATA[<p>After installing gcc-4.2 on my iBook, I am now having an <a href="http://en.wikibooks.org/wiki/Ada_Programming/Ada_2005">Ada 2005</a> compiler in my tools collection.</p>
<p>One of the interesting new features caught my attention. Ada 2005 now supports new 32-bit character type, Wide_Wide_Character. The source code itself can have extended character set as well. That means a whole Greek and fractur character sets are available for identifiers. For example:</p>
<pre><code>π : constant := Pi;
</code></pre>
<p>This feature will help making a lot of my codes more readable.</p>
<p>I found an interesting article while I was reading about Ada 2005. This article  is about  successful uses of Ada 2005 in deeply embedded systems.</p>
<p><a href="http://adrianhoe.com/adrianhoe/archives/AdaCore.Mar06.pdf">Here</a> is the article in pdf.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2006/07/13/ada-2005/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Xcode 2.3 and gcc-4.2 (Ada)</title>
		<link>http://adrianhoe.com/adrianhoe/2006/07/13/xcode-23-and-gcc-42-ada/</link>
		<comments>http://adrianhoe.com/adrianhoe/2006/07/13/xcode-23-and-gcc-42-ada/#comments</comments>
		<pubDate>Wed, 12 Jul 2006 16:33:00 +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[HOWTO]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[gnat]]></category>
		<category><![CDATA[Xcode]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/blog/?p=26</guid>
		<description><![CDATA[I have finally decided to update to Xcode 2.3 and gcc-4.2. There is not much information about how to install except from the MacAda mailing list. So, I decided to post the How-To here. Here are the procedures: Uninstall previous Xcode installation by $ sudo perl /Developer/Tools/uninstall-devtools.pl Restart the computer Download and install Xcode 2.3 [...]]]></description>
			<content:encoded><![CDATA[<p>I have finally decided to update to Xcode 2.3 and gcc-4.2. There is not much information about how to install except from the MacAda mailing list. So, I decided to post the How-To here.</p>
<p>Here are the procedures:</p>
<ol style="text-indent:0px;">
<li>Uninstall previous Xcode installation by
<pre><code>$ sudo perl /Developer/Tools/uninstall-devtools.pl</code></pre>
</li>
<li>Restart the computer</li>
<li>Download and install Xcode 2.3</li>
<li>Download and install <a href="http://macada.org/Downloads/Compiler/gnat-gcc-3.3-1650-tiger-installer-20050521.dmg.sitx">gcc-3.3 Ada compiler</a> from <a href="http://macada.org">MacAda<br />
</a></li>
<li>Download and install <a href="http://homepage.mac.com/WebObjects/FileSharing.woa/54/wo/YOZtiBpVyrndx8Xb.1/0.2.1.2.26.31.97.0.35.0.1.1.1?user=awreynolds&amp;fpath=Ada&amp;templatefn=FileSharing7.html">gcc-4.2 Ada compiler</a></li>
<li>Unzip and untar the gcc-4.2 package with
<pre><code>$ tar -zxvf fsf-ppc-gcc-4.2.0-20060429.tgz</code></pre>
<p>or</p>
<pre><code>$ tar -zxvf fsf-i686-ada-4.2-20060409.tgz</code></pre>
<p>depending if you are using PowerPC or Intel Mac.</li>
<li>Move the directory ada-4.2 to /usr/local</li>
<li>Download and install <a href="http://maxao.free.fr/xcode-ada-plugin/">Ada Plugin for Xcode</a> and follow the instructions.</li>
</ol>
<p>I tested Xcode by compiling some projects and it is great. But I still cannot manage to build Ada dynamic library with it. It looks like some problems with the flags. Here&#8217;s the error and warning messages I got:</p>
<pre><code>warning -L: directory name (/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/gcc/darwin/default) does not exist
unknown flag: -Wl, -single_module</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2006/07/13/xcode-23-and-gcc-42-ada/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Solution for building dynamic shared Ada library with Xcode</title>
		<link>http://adrianhoe.com/adrianhoe/2006/07/09/solution-for-building-dynamic-shared-ada-library-with-xcode/</link>
		<comments>http://adrianhoe.com/adrianhoe/2006/07/09/solution-for-building-dynamic-shared-ada-library-with-xcode/#comments</comments>
		<pubDate>Sun, 09 Jul 2006 14:51:00 +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[gnat]]></category>
		<category><![CDATA[Xcode]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/blog/?p=13</guid>
		<description><![CDATA[Finally, I got some answer from the mailing list. It is a problem with Xcode 2.2 and gcc 3.3 and it seems like an update to Xcode 2.3 and gcc/gnat 4.2 is inevitable. gcc/gnat 4.2 compiler Xcode-Ada plugin The reason I am skeptical about software update is that I have a number of on going [...]]]></description>
			<content:encoded><![CDATA[<p>Finally, I got some answer from the mailing list. It is a problem with Xcode 2.2 and gcc 3.3 and it seems like an update to Xcode 2.3 and gcc/gnat 4.2 is inevitable.</p>
<ul>
<li><a href="http://homepage.mac.com/awreynolds">gcc/gnat 4.2 compiler</a></li>
<li><a href="http://maxao.free.fr/xcode-ada-plugin/">Xcode-Ada plugin</a></li>
</ul>
<p>The reason I am skeptical about software update is that I have a number of on going development. A simple tiny glitch in the new update will cause big havoc especially after all the recompilation of source codes.</p>
<p>Anyhow, I am glad to hear the solution and I will update my development tools soon after I have made a few confirmation.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2006/07/09/solution-for-building-dynamic-shared-ada-library-with-xcode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Argh! I&#8217;m banging my head on the keyboard</title>
		<link>http://adrianhoe.com/adrianhoe/2006/07/09/argh-im-banging-my-head-on-the-keyboard/</link>
		<comments>http://adrianhoe.com/adrianhoe/2006/07/09/argh-im-banging-my-head-on-the-keyboard/#comments</comments>
		<pubDate>Sun, 09 Jul 2006 07:42:00 +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[Technology]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/blog/?p=12</guid>
		<description><![CDATA[A week has passed by since I took up a project to develop web applications with Ada. One of the major obstacle that is preventing me from moving further is the problem of making a dynamic shared library using Apple&#8217;s Xcode 2.2 with gcc/gnat 3.3. There is no project option of making an Ada dynamic [...]]]></description>
			<content:encoded><![CDATA[<p>A week has passed by since I took up a project to develop web applications with Ada. One of the major obstacle that is preventing me from moving further is the problem of making a dynamic shared library using Apple&#8217;s Xcode 2.2 with gcc/gnat 3.3.</p>
<p>There is no project option of making an Ada dynamic library in Xcode. So I chose <em>BSD Dynamic Library with C</em> and added Ada source files into the build source.</p>
<p>Everytime I hit the build button, it gives me &#8220;Build succeeded with 2 warnings.&#8221; The warning message says &#8220;warning: no rule to process &#8216;$(PROJECT_DIR)/cgi.adb&#8217;&#8221;</p>
<p>I am exhausted with this problem and I think I shall leave it behind for a moment before I continue with the development.</p>
<p>Any takers?</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2006/07/09/argh-im-banging-my-head-on-the-keyboard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

