<?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; algorithm</title>
	<atom:link href="http://adrianhoe.com/adrianhoe/tag/algorithm/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>Nassi-Shneiderman Diagram</title>
		<link>http://adrianhoe.com/adrianhoe/2008/09/12/nassi-shneiderman-diagram/</link>
		<comments>http://adrianhoe.com/adrianhoe/2008/09/12/nassi-shneiderman-diagram/#comments</comments>
		<pubDate>Fri, 12 Sep 2008 04:44:58 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[At Home]]></category>
		<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Ada]]></category>
		<category><![CDATA[algorithm]]></category>
		<category><![CDATA[flow chart]]></category>
		<category><![CDATA[Nassi-Shneiderman]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/?p=1141</guid>
		<description><![CDATA[I came across a highly influential graphical representation method of stating algorithm while I was reading books of system analysis and design. This method is called Nassi-Shneiderman Diagram or NSD. It was developed by Isaac &#8220;Ike&#8221; Nassi and Ben Shneiderman in 1972. Isaac also helped design the Ada programming language. Many people claimed NSD to [...]]]></description>
			<content:encoded><![CDATA[<p>I came across a highly influential graphical representation method of stating algorithm while I was reading books of system analysis and design. This method is called Nassi-Shneiderman Diagram or NSD. It was developed by <a title="Isaac Nassi" href="http://www.nassi.com/ike.html" target="_blank">Isaac &#8220;Ike&#8221; Nassi</a> and <a title="Ben Shneiderman" href="http://www.cs.umd.edu/~ben/" target="_blank">Ben Shneiderman</a> in 1972. Isaac also helped design the Ada programming language.</p>
<p>Many people claimed NSD to be very easy to read and understand, especially for beginners. This is probably quite true but maintaining NSD can be a problem for system designers. Unlike flowchart, NSD lumps all the symbols into one large block and does not use connectors between the symbols.</p>
<p>Contrary to flowchart which uses connectors, NSD provides a better structural approach of design where <em>Goto</em> should be avoided in structured programming. NSD provides simplicity and a compact overview of a program that can show some relationship nicely. NSD, in particular, provides visual aid and guides thinking about nested conditional structures.</p>
<p>Personally, I find that NSD is useful for rapid prototyping. It is quite simple and easy to draw a conceptual design before expanding into a flowchart. Modifying a stage or symbol in NSD is rather tedious compared to flowchart. On the other hand, after a careful and thorough investigation, I find NSD most suitable for structured system analysis, design and programming. NSD was designed with structured system analysis and design in mind as mentioned in the above paragraph, it has many advantages over flowchart despite of problem maintaining it. I think it is worth to study and to use it.</p>
<p>Here is an example of NSD and flowchart stating an algorithm to find a summation given by the equation:</p>
<p><img class="alignnone" src="http://adrianhoe.com/adrianhoe/images/blog/2008/nassi-shneiderman-summation.png" alt="" /> </p>
<p>If <em>S</em> &gt; 100, then display <em>k</em> and tell the user that <em>k</em> is in range.</p>
<p><span id="more-1141"></span></p>
<p><img class="alignnone" src="http://adrianhoe.com/adrianhoe/images/blog/2008/nassi-shneiderman.jpg" alt="" width="447" height="745" /></p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2008/09/12/nassi-shneiderman-diagram/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Algorithmic art</title>
		<link>http://adrianhoe.com/adrianhoe/2008/09/06/algorithmic-art/</link>
		<comments>http://adrianhoe.com/adrianhoe/2008/09/06/algorithmic-art/#comments</comments>
		<pubDate>Fri, 05 Sep 2008 16:34:47 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[At Home]]></category>
		<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Mathematics]]></category>
		<category><![CDATA[algorithm]]></category>
		<category><![CDATA[algorithmic art]]></category>
		<category><![CDATA[art]]></category>
		<category><![CDATA[Mathematica]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/?p=1109</guid>
		<description><![CDATA[Jean-Pierre Hébert, a 68-year-old French artist, is an algorist. This is a name, proposed by Jean himself, for artists who create arts using unique computer algorithms. Apple featured Jean and his works in May 2008. You can read about him here so I am not going to repeating writing about him and his works. When [...]]]></description>
			<content:encoded><![CDATA[<p>Jean-Pierre Hébert, a 68-year-old French artist, is an <em>algorist</em>. This is a name, proposed by Jean himself, for artists who create arts using unique computer algorithms. Apple featured Jean and his works in May 2008. You can read about him <a href="http://www.apple.com/science/profiles/hebert/?sr=hotnews?sr=hotnews.rss" target="_blank">here</a> so I am not going to repeating writing about him and his works.</p>
<p>When I was doing shopping alone this evening, the idea flashed in my mind. I could use <a href="http://wolfram.com" target="_blank">Mathematica</a> to explore algorithmic art. So, I sat down in front of my Mac and explored. Here&#8217;s my first piece of algorithmic art . It is not comparable to what Jean has done but is definitely a good start. I can&#8217;t call myself algorist yet because I created no algorithm.</p>
<p>The following examples are two very simple mathematics equations. The plots demonstrate that mathematics can be visualized as art.</p>
<p><span id="more-1109"></span></p>
<p><img class="alignnone" title="Algorithmic art" src="http://adrianhoe.com/adrianhoe/images/blog/2008/computer_art-0001.jpg" alt="" width="360" height="359" /></p>
<p>And here is the Mathematica code:</p>
<pre><code>ArrayPlot[
 Table[Mod[Abs[((2 x + I y/5)^2)/5*Pi], 2], {x, -36,
   36}, {y, -36, 36}]]
</code></pre>
<p>This is the first color algorithmic art which I accidentally stumbled upon while I was trying to plot a directional field. I modified the plot equation and added colors to it.</p>
<p><img class="alignnone" title="Algorithmic art" src="http://adrianhoe.com/adrianhoe/images/blog/2008/computer_art-0002.jpg" alt="" width="360" height="359" /></p>
<p>The Mathematica code:</p>
<pre><code>ArrayPlot[
 Table[Mod[Abs[(4 - 2 x)/(3 y^2 - 5)], 2], {x, -36, 36}, {y, -36,
   36}], ColorFunction -&gt; "Rainbow"]
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2008/09/06/algorithmic-art/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Lamport&#8217;s bakery algorithm</title>
		<link>http://adrianhoe.com/adrianhoe/2008/08/14/lamports-bakery-algorithm/</link>
		<comments>http://adrianhoe.com/adrianhoe/2008/08/14/lamports-bakery-algorithm/#comments</comments>
		<pubDate>Wed, 13 Aug 2008 17:31:54 +0000</pubDate>
		<dc:creator>Adrian Hoe</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[algorithm]]></category>
		<category><![CDATA[bakery algorithm]]></category>
		<category><![CDATA[Distributed Computing]]></category>
		<category><![CDATA[Lamport]]></category>

		<guid isPermaLink="false">http://adrianhoe.com/adrianhoe/?p=974</guid>
		<description><![CDATA[The comment(s) in one of my earlier post here inspired my long sleeping passion in distributed computing. After reading about Leslie Lamport and some of his papers, I find his stories fascinating and one of his paper about bakery algorithm is most compelling and has profound effect on me. He has also done many great [...]]]></description>
			<content:encoded><![CDATA[<p>The comment(s) in one of my earlier post <a href="http://adrianhoe.com/adrianhoe/2008/08/09/clear-things-up/" target="_blank">here</a> inspired my long sleeping passion in distributed computing. After reading about <a title="Leslie Lamport" href="http://en.wikipedia.org/wiki/Leslie_Lamport" target="_blank">Leslie Lamport</a> and some of his papers, I find his stories fascinating and one of his paper about <a title="Lamport's bakery algorithm" href="http://en.wikipedia.org/wiki/Lamport%27s_bakery_algorithm" target="_blank">bakery algorithm</a> is most compelling and has profound effect on me. He has also done many great works such as the <a title="Lamport's Paxos algorithm" href="http://en.wikipedia.org/wiki/Paxos_algorithm" target="_blank">Paxos algorithm</a>.</p>
<p>Leslie invented bakery algorithm but he insisted that he discovered it. He wrote</p>
<blockquote><p>For a couple of years after my discovery of the bakery algorithm, everything I learned about concurrency came from studying it.     &#8230;  The bakery algorithm marked the beginning of my study of distributed algorithms.</p></blockquote>
<p>He enthralls me with his attitude towards knowledge and learning. His discovery was the beginning of his study of distributed algorithms.</p>
<p>How many people find a solution to a problem, then continue to study the solution for years and learning from it?</p>
<p>Leslie gives me a new inspiration and a whole new perspective towards learning. After reading his paper about bakery algorithm, I have a clearer inspiration in distributed computing. If I choose to specialize in this field, I need more of such inspiration coming to burn a bigger fire.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrianhoe.com/adrianhoe/2008/08/14/lamports-bakery-algorithm/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>

