<?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:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Random Thoughts</title>
	<atom:link href="http://manaris.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://manaris.wordpress.com</link>
	<description>Just a collection of ideas I want to preserve</description>
	<lastBuildDate>Wed, 05 Aug 2009 02:18:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='manaris.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Random Thoughts</title>
		<link>http://manaris.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://manaris.wordpress.com/osd.xml" title="Random Thoughts" />
	<atom:link rel='hub' href='http://manaris.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Antikythera: 2100-year-old computer rebooted&#8230;</title>
		<link>http://manaris.wordpress.com/2008/12/19/antikythera-2000-year-old-computer-rebooted/</link>
		<comments>http://manaris.wordpress.com/2008/12/19/antikythera-2000-year-old-computer-rebooted/#comments</comments>
		<pubDate>Fri, 19 Dec 2008 13:28:05 +0000</pubDate>
		<dc:creator>Bill Manaris</dc:creator>
				<category><![CDATA[Computing History]]></category>
		<category><![CDATA[CS education]]></category>
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://manaris.wordpress.com/?p=75</guid>
		<description><![CDATA[Hot off the presses&#8230; 2100-year-old computer is working again. &#8220;The Antikythera&#8217;s user interface is deceptively simple, operated by a simple knob on the side. This conceals the intricacy within, amounting to a complex mathematical model, tracking the movements of planetary bodies and incorporating a series of submechanisms to account for the eccentricities of their rotation&#8221;. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=manaris.wordpress.com&amp;blog=530835&amp;post=75&amp;subd=manaris&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hot off the presses&#8230;</p>
<p><a href="http://blog.wired.com/gadgets/2008/12/2000-year-old-a.html">2100-year-old computer is working again</a>.</p>
<p>&#8220;The Antikythera&#8217;s user interface is deceptively simple, operated by a simple knob on the side. This conceals the intricacy within, amounting to a complex mathematical model, tracking the movements of planetary bodies and incorporating a series of submechanisms to account for the eccentricities of their rotation&#8221;.</p>
<p>Here is the video:</p>
<span style="text-align:center; display: block;"><a href="http://manaris.wordpress.com/2008/12/19/antikythera-2000-year-old-computer-rebooted/"><img src="http://img.youtube.com/vi/ZrfMFhrgOFc/2.jpg" alt="" /></a></span>
<p>This suggests how little we know about the knowledge of the time, and <a href="http://manaris.wordpress.com/2006/11/30/antikythera-mechanism-the-first-known-computer/">how it was suppressed by the power struggles that followed</a> (Romans, early Christianity, etc.).  There is so much more in the Antikythera mechanism than meets the eye&#8230;</p>
<p><strong>An Ancient Solution to the Longitude Problem?</strong></p>
<p>The Antikythera mechanism indicates that the ancients had the necessary knowledge for navigating in the open sea (or the open desert).</p>
<p>To determine one&#8217;s exact position (in the absence of visible landmarks), one needs to know their <em>latitude </em>(their distance from the equator &#8211; north, south) and their <em>longitude </em>(their distance from a known location across the path traveled by the sun &#8211; east, west).</p>
<p>Latitude is relatively easy to determine by measuring the sun&#8217;s angle relative to the equator.  (Or the difference between (a) the sun&#8217;s angle at the traveler&#8217;s home during this season, and (b) the sun&#8217;s angle at the traveler&#8217;s current location.)  We know that the ancients had instruments to measure such angles.</p>
<p>However, longitude is harder to calculate [1].</p>
<ul>
<li>One solution requires <strong>detailed star charts and moon phases</strong>.  This solution was being explored by Halley and others in the 1700s (through measurements and studies of ancient charts).</li>
<li>Another solution requires the ability to keep perfect time while traveling (a clock set at the home port&#8217;s time), and the another adjusted every day to the local time based on the sun&#8217;s east-west position (when is noon here?).</li>
</ul>
<p>These solutions were not available until a couple of hundred years ago.  Consider Columbus, for example, who was off by a whole hemisphere (on the east-west axis &#8211; longitude) when he landed in America.</p>
<p>The Antikythera mechanism indicates that the ancients (Greeks?, Phoenicians?) had <strong>detailed star charts and moon phases</strong>.  It is perhaps no coincidence that they were known as great navigators.</p>
<p>Also (considering how Pythagoras studied in Egypt and Babylon before he returned to Greece as an old man to teach his mathematics to a few select students), one cannot help but think of the three Persian magi, who navigated the dessert three hundred years later, guided by the appearance of a new star.</p>
<p>Also see the earlier post, &#8220;<a title="Antikythera Mechanism: The First Known Computer?" href="http://manaris.wordpress.com/2006/11/30/antikythera-mechanism-the-first-known-computer/">Antikythera Mechanism: The First Known Computer?</a>&#8220;.</p>
<p><strong>Reference</strong></p>
<ol>
<li>Dava Sobel, &#8220;<a href="http://www.amazon.com/Longitude-Genius-Greatest-Scientific-Problem/dp/0140258795" target="_blank">Longitude</a>&#8220;, Walker &amp; Company, 1995.</li>
</ol>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/manaris.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/manaris.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/manaris.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/manaris.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/manaris.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/manaris.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/manaris.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/manaris.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/manaris.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/manaris.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/manaris.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/manaris.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/manaris.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/manaris.wordpress.com/75/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=manaris.wordpress.com&amp;blog=530835&amp;post=75&amp;subd=manaris&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://manaris.wordpress.com/2008/12/19/antikythera-2000-year-old-computer-rebooted/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b211d254bd642277062fda426576709f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">manaris</media:title>
		</media:content>
	</item>
		<item>
		<title>Anti-Spam: A Simple Algorithm for Handling Email Spam</title>
		<link>http://manaris.wordpress.com/2008/08/06/a-simple-algorithm-for-handling-email-spam/</link>
		<comments>http://manaris.wordpress.com/2008/08/06/a-simple-algorithm-for-handling-email-spam/#comments</comments>
		<pubDate>Wed, 06 Aug 2008 14:01:45 +0000</pubDate>
		<dc:creator>Bill Manaris</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[algorithm]]></category>
		<category><![CDATA[Anti-spam]]></category>
		<category><![CDATA[email]]></category>

		<guid isPermaLink="false">http://manaris.wordpress.com/?p=37</guid>
		<description><![CDATA[Yesterday I had more than 200 email messages from &#8220;System Administrator&#8221; &#8211; all sent within a minute.   They came through our university anti-spam filter.  This is getting too much&#8230; Here is a simple anti-spam algorithm: Create an email filter (say in Python) which checks every incoming email against a list of approved email addresses. If [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=manaris.wordpress.com&amp;blog=530835&amp;post=37&amp;subd=manaris&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Yesterday I had more than 200 email messages from &#8220;System Administrator&#8221; &#8211; all sent within a minute.    They came through our university anti-spam filter.  This is getting too much&#8230;</p>
<p>Here is a simple anti-spam algorithm:</p>
<p>Create an email filter (say in <a title="Python Email code samples" href="http://www.example-code.com/python/email.asp" target="_blank">Python</a>) which checks every incoming email against a list of approved email addresses.  <strong>If the sender address is NOT in the list of approved email addresses</strong>, it automatically sends back (something like) this:</p>
<blockquote><p>Hi,</p>
<p>If you are a real human, please reply with the word &#8220;pass&#8221;.  (Simply hit <em>Reply</em>, type &#8220;pass&#8221; as your response, and hit <em>Send</em>.)</p>
<p>This is an automated response from Bill Manaris&#8217;s anti-spam filter.</p>
<p>Thank you.</p></blockquote>
<p>This program can be placed within the .forward file on Unix systems (and eventually incorporated within email clients).  (The configuration is similar to the one used by the <a title="Unix vacation program" href="http://www.csamuel.org/software/vacation/" target="_blank">Unix vacation program</a>.)</p>
<p>The program maintains a list approved email addresses.  This list may be initialized with the user&#8217;s email contacts.  This list gets updated with addresses of people who pass the test.</p>
<p>The program automatically places in the incoming mailbox (e.g., .mail) any messages that complete the password exchange.  It strips the password exchange and leaves only the original message.</p>
<p>The password message is an external text file.  Also, there may be an external list of passwords to pick from.</p>
<p><strong>Special Cases</strong></p>
<p>A special case is when a spammer uses a person&#8217;s own email address to send that person spam.  If necessary, this could be handled by expecting a special password in self-sent messages.</p>
<p>The above handles the majority of spam messages I have received.</p>
<p>Another possibility is that spammers may use emails from people already approved for a certain person.  However, since these lists are different for different people, it is highly unlikely that a general automatic technique be developed by spammers to counteract it.</p>
<p><strong>Conclusion</strong></p>
<p><strong>The beauty of this algorithm is that it turns the table on spammers</strong>: Even if they catch on, the program can evolve its behavior (e.g., message, pass word (or pass phrase), etc.). Also different people will have different messages. So it&#8217;s hard to create an automatic anti-anti-spam mechanism.</p>
<p><strong>In terms of usability</strong>, it puts some strain on email senders &#8211; but only on those who have not communicated with you before, and only once. This usability strain is similar to the image-based passwords required by services like Google.</p>
<p>In conclusion, this may not be 100% foolproof, but it may effectively complement existing (and sometimes ineffective) anti-spam techniques.</p>
<p><strong>Reference</strong></p>
<ol>
<li>Chris Samuel, <a title="Unix vacation program" href="http://www.csamuel.org/software/vacation/" target="_blank">Vacation Email Responder</a> program, 20 Jan, 2007.</li>
</ol>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/manaris.wordpress.com/37/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/manaris.wordpress.com/37/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/manaris.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/manaris.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/manaris.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/manaris.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/manaris.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/manaris.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/manaris.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/manaris.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/manaris.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/manaris.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/manaris.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/manaris.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/manaris.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/manaris.wordpress.com/37/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=manaris.wordpress.com&amp;blog=530835&amp;post=37&amp;subd=manaris&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://manaris.wordpress.com/2008/08/06/a-simple-algorithm-for-handling-email-spam/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b211d254bd642277062fda426576709f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">manaris</media:title>
		</media:content>
	</item>
		<item>
		<title>A Changing World</title>
		<link>http://manaris.wordpress.com/2008/01/21/a-changing-world/</link>
		<comments>http://manaris.wordpress.com/2008/01/21/a-changing-world/#comments</comments>
		<pubDate>Mon, 21 Jan 2008 13:49:21 +0000</pubDate>
		<dc:creator>Bill Manaris</dc:creator>
				<category><![CDATA[CS education]]></category>

		<guid isPermaLink="false">http://manaris.wordpress.com/2008/01/21/a-changing-world/</guid>
		<description><![CDATA[As we are contemplating the future of computer science (education and curricula), this paper might provide some interesting insights into our changing world&#8230; the players are different, but the patterns remain. Change is inevitable. Disruptive technologies are not something new or different. To the buggy whip manufacturers of the 1890s, the automobile was hugely disruptive. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=manaris.wordpress.com&amp;blog=530835&amp;post=36&amp;subd=manaris&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As we are contemplating the future of computer science (education and curricula), this <a href="http://www.msu.edu/~michstlr/Symposium_2005/Vogel.pdf" title="Disruptive technologies and disruptive thinking" target="_blank">paper </a>might provide some interesting insights into our changing world&#8230; the players are different, but the patterns remain.  Change is inevitable.</p>
<blockquote><p>Disruptive technologies are not something new or different. To the buggy whip manufacturers of the 1890s, the automobile was hugely disruptive. The same could be said for telegraph operators coping with the invention of the telephone. If there is a difference today it is only in terms of greater speed of propagation of the disruption and in the widespread publicity about the existence of the technology itself.</p></blockquote>
<p>Harold L. Vogel (2005), &#8220;<a href="http://www.msu.edu/~michstlr/Symposium_2005/Vogel.pdf" title="Disruptive technologies and disruptive thinking" target="_blank">Disrpuptive Technologies and Disruptive Thinking</a>&#8220;, Michigan Law Review &#8211; Vol 2005, No. 1.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/manaris.wordpress.com/36/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/manaris.wordpress.com/36/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/manaris.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/manaris.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/manaris.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/manaris.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/manaris.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/manaris.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/manaris.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/manaris.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/manaris.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/manaris.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/manaris.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/manaris.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/manaris.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/manaris.wordpress.com/36/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=manaris.wordpress.com&amp;blog=530835&amp;post=36&amp;subd=manaris&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://manaris.wordpress.com/2008/01/21/a-changing-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b211d254bd642277062fda426576709f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">manaris</media:title>
		</media:content>
	</item>
		<item>
		<title>How Hard Is It to Program?</title>
		<link>http://manaris.wordpress.com/2006/12/16/how-hard-is-it-to-program/</link>
		<comments>http://manaris.wordpress.com/2006/12/16/how-hard-is-it-to-program/#comments</comments>
		<pubDate>Sat, 16 Dec 2006 15:35:52 +0000</pubDate>
		<dc:creator>Bill Manaris</dc:creator>
				<category><![CDATA[CS education]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Programming languages]]></category>
		<category><![CDATA[Usability and HCI]]></category>

		<guid isPermaLink="false">http://manaris.wordpress.com/2006/12/16/how-hard-is-it-to-program/</guid>
		<description><![CDATA[Alan Kay, in his paper &#8220;The Early History of Smalltalk&#8221; states: When teaching [programming] to 20 nonprogrammer adults, they were able to get through the initial material faster than children, but, just as it looked like an overwhelming success was at hand, they started to crash on problems that didn&#8217;t look to me to be [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=manaris.wordpress.com&amp;blog=530835&amp;post=26&amp;subd=manaris&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Alan Kay, in his paper &#8220;<a href="http://www.metaobject.com/papers/Smallhistory.pdf" target="_blank" class="urllink" rel="nofollow">The Early History of Smalltalk</a>&#8221; states:</p>
<blockquote>
<p class="indent">When teaching [programming] to 20 nonprogrammer adults, they were able to get through the initial material faster than children, but, just as it looked like an overwhelming success was at hand, they started to crash on problems that didn&#8217;t look to me to be much harder than the ones they had just been doing so well on. &#8230; E.g., make a little database system that would act like a card file or rolodex. They couldn&#8217;t even come close to programming it. Such a project was well below the mythical &#8216;two pages&#8217; for end-users we were working with. After showing them the solution, I realized this little program contained 17(!) nonobvious ideas. And some of them were like the concept of the <em>arch</em> in building design: very hard to discover, if you don&#8217;t already know it.</p>
</blockquote>
<p>In this context, here are two typical programs, in Java and in Python, to calculate length of the hypotenuse of a triangle given the length of the two legs.</p>
<p>Consider the number of new concepts/&#8221;nonobvious ideas&#8221; required to master in order to comprehend/write each of these programs.</p>
<h2>Java</h2>
<p><a href="http://manaris.files.wordpress.com/2006/12/pythagorean1java.jpg" title="pythagorean1java.jpg"><img src="http://manaris.files.wordpress.com/2006/12/pythagorean1java.jpg?w=450" alt="pythagorean1java.jpg" /></a></p>
<p>For the Java program, a programmer needs to master the following concepts/&#8221;nonobvious ideas&#8221;:</p>
<ol>
<li>libraries (i.e., <code>import java.util.*;</code>)</li>
<li>class</li>
<li>encapsulation and information hiding (e.g., <code>public</code> vs. <code>private</code>, etc.)</li>
<li>class name must be the same as program file name</li>
<li>blocks (i.e., <code>{ ... }</code>)</li>
<li>method</li>
<li>special method <code>main()</code> (i.e., program entry point by Java VM)</li>
<li>static vs. non-static methods</li>
<li>void vs. value returning methods</li>
<li>parameter passing</li>
<li>arrays (i.e., <code>String[] args</code>)</li>
<li>command-line parameter passing (i.e., <code>String[] args</code>)</li>
<li>class instantiation (class vs. object)</li>
<li>you may instantiate an object within its own class (i.e., <em>chicken-and-egg</em> paradox)</li>
<li>statement terminator (i.e., <code>;</code>)</li>
<li>data types</li>
<li>primitive data types vs. non-primitive data types</li>
<li>variable</li>
<li>assignment</li>
<li>variable declaration</li>
<li>input</li>
<li>special class <code>Scanner</code></li>
<li>input streams, e.g., <code>System.in</code></li>
<li>class member method invocation (e.g., <code>input.nextInt()</code>)</li>
<li>iterators (e.g., <code>nextInt()</code>)</li>
<li>output (i.e., <code>System.out.println</code>)</li>
<li>hierarchical composition (i.e., <code>System</code> constains object <code>out</code>)</li>
<li>algebraic expressions</li>
<li>Math library (i.e., <code>sqrt()</code>)</li>
<li>return statement</li>
</ol>
<h2>Python</h2>
<p><a href="http://manaris.files.wordpress.com/2006/12/pythagorean1python.jpg" title="pythagorean1python.jpg"><img src="http://manaris.files.wordpress.com/2006/12/pythagorean1python.jpg?w=450" alt="pythagorean1python.jpg" /></a></p>
<p>For the Python program, a programmer needs to master the following concepts/&#8221;nonobvious ideas&#8221;:</p>
<ol>
<li>module (i.e., <code>from math import *</code>)</li>
<li>function</li>
<li>blocks (i.e., indentation)</li>
<li>statement terminator (i.e., newline)</li>
<li>functions may or may not return a value</li>
<li>parameter passing</li>
<li>variable</li>
<li>assignment</li>
<li>input (i.e., <code>input()</code>)</li>
<li>output (i.e., <code>print</code>)</li>
<li>algebraic expressions</li>
<li>return statement</li>
</ol>
<h2>Conclusion</h2>
<p>The above is a generic, simple (rather typical?) programming task.  Given human cognitive limitations (e.g., the <a href="http://psychclassics.yorku.ca/Miller/" class="urllink" rel="nofollow">7 plus-or-minus 2 rule</a>), it is not surprising that programmers report at least a 3 times increase in productivity when they move from Java (or C/C++) to Python.</p>
<p>Also, the above comparison does not capture the amount of effort required to master each of the required concepts. Some concepts are easier to master than others (e.g., &#8220;statement terminator&#8221; vs. &#8220;class&#8221;). Also, a single concept may be easier to master in one language vs. another (e.g., &#8220;input&#8221; or &#8220;method/function&#8221;).</p>
<p>It would be interesting to generate a relative index of difficulty by, say, counting the number of lines used in a typical CS book to explain each of these concepts.</p>
<p>So &#8220;how hard is it to program&#8221;?</p>
<p>At some level, the answer depends on your language of choice.  Clearly, it is harder to program in <em>assembly</em> than in a <em>high-level</em> language.  But what might come as a surprise is that such distinctions exist even among high-level languages.</p>
<h2>References</h2>
<ol>
<li>Kay, A. &#8220;<a href="http://www.metaobject.com/papers/Smallhistory.pdf" class="urllink" rel="nofollow">The Early History of Smalltalk</a>&#8220;, ACM SIGPLAN Notices, Volume 28, Number 3, March 1993.</li>
<li>Miller, G.A. (1956), &#8220;<a href="http://psychclassics.yorku.ca/Miller/" class="urllink" rel="nofollow">The Magical Number Seven, Plus or Minus Two: Some Limits on Our Capacity for Processing Information</a>&#8220;, <em>The Psychological Review</em>, vol. 63, pp. 81-97.</li>
<li>McConnell, J.J. and Burhans, D.T. (2002), &#8220;<a href="http://fie.engrng.pitt.edu/fie2002/papers/1142.pdf" class="urllink" rel="nofollow">The Evolution of CS1 Textbooks</a>&#8220;, 32nd ASEE/IEEE Frontiers in Education Conference, November 6-9, 2002, Boston, MA, pp. T4G1-T4G6. <span style="font-size:83%;">&#8220;The average size for the Java books in our study is 2.25 times the average size of the Fortran books and 1.95 times the average size of the Pascal books. From the perspective of a course, the authors of three of the four Java books we examined expect that their entire book (averaging 880 pages) will be covered in one semester. This amounts to 22 pages per class or about 66 pages per week that a student is expected to prepare.&#8221;</span></li>
</ol>
<p><span style="font-size:83%;"><strong>Credits</strong></span></p>
<p><span style="font-size:83%;">The Pythagorean Theorem code was written by my students, Brian Smith and Jeff Shumard</span>.</p>
<p><span style="font-size:83%;"></span><a href="http://manaris.files.wordpress.com/2006/12/pythagoreanjava.jpg" title="pythagoreanjava.jpg"></a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/manaris.wordpress.com/26/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/manaris.wordpress.com/26/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/manaris.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/manaris.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/manaris.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/manaris.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/manaris.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/manaris.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/manaris.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/manaris.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/manaris.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/manaris.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/manaris.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/manaris.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/manaris.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/manaris.wordpress.com/26/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=manaris.wordpress.com&amp;blog=530835&amp;post=26&amp;subd=manaris&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://manaris.wordpress.com/2006/12/16/how-hard-is-it-to-program/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b211d254bd642277062fda426576709f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">manaris</media:title>
		</media:content>

		<media:content url="http://manaris.files.wordpress.com/2006/12/pythagorean1java.jpg" medium="image">
			<media:title type="html">pythagorean1java.jpg</media:title>
		</media:content>

		<media:content url="http://manaris.files.wordpress.com/2006/12/pythagorean1python.jpg" medium="image">
			<media:title type="html">pythagorean1python.jpg</media:title>
		</media:content>
	</item>
		<item>
		<title>Antikythera Mechanism: The First Known Computer?</title>
		<link>http://manaris.wordpress.com/2006/11/30/antikythera-mechanism-the-first-known-computer/</link>
		<comments>http://manaris.wordpress.com/2006/11/30/antikythera-mechanism-the-first-known-computer/#comments</comments>
		<pubDate>Fri, 01 Dec 2006 01:36:56 +0000</pubDate>
		<dc:creator>Bill Manaris</dc:creator>
				<category><![CDATA[Computing History]]></category>

		<guid isPermaLink="false">http://manaris.wordpress.com/2006/11/30/antikythera-mechanism-the-first-known-computer/</guid>
		<description><![CDATA[In today&#8217;s article &#8220;In search of lost time&#8220;, Nature 444, 534-538, Jo Marchant presents remarkable new findings on the Antikythera Mechanism. The Antikythera Mechanism is a mechanical computer (similar to Charles Babbage&#8217;s Analytical and Difference engines) designed to calculate astronomical positions, which was discovered in an ancient ship wreck (150-100 BC) off the Greek island [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=manaris.wordpress.com&amp;blog=530835&amp;post=3&amp;subd=manaris&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In today&#8217;s article &#8220;<a href="http://www.nature.com/nature/journal/v444/n7119/full/444534a.html" title="In search of lost time, Nature 444, 534-538 (30 November 2006)" target="_blank">In search of lost time</a>&#8220;, <em>Nature</em> <strong>444</strong>, 534-538, Jo Marchant presents remarkable new findings on the <strong>Antikythera Mechanism</strong>.  The Antikythera Mechanism is a mechanical computer (similar to Charles Babbage&#8217;s <a href="http://en.wikipedia.org/wiki/Analytical_engine" target="_blank">Analytical</a> and <a href="http://en.wikipedia.org/wiki/Difference_engine" target="_blank">Difference</a> engines) designed to calculate astronomical positions, which was discovered in an ancient ship wreck (150-100 BC) off the Greek island of <a href="http://www.antikythira.gr/en/index.php" title="Community of Antikythera website" target="_blank">Antikythera</a>.  What&#8217;s really intriguing about this &#8220;computer&#8221; is that was developed about 2000 years before Babbage&#8217;s model.</p>
<p>Here is a summary of the article and a few thoughts to provide context for photos taken while visiting the National Archaeological Museum in Athens, this summer.</p>
<p align="center"><a href="https://manaris.wordpress.com/wp-admin/upload.php?style=inline&amp;tab=browse&amp;post_id=3&amp;_wpnonce=43079748ae&amp;ID=5&amp;action=view&amp;paged=2" id="file-link-5" title="Antikythera Mechanism Fragements" class="file-link image"> </a><a href="http://manaris.files.wordpress.com/2006/11/101_15081.JPG" title="Direct link to file"><img src="https://manaris.files.wordpress.com/2006/11/101_15081.JPG?w=171&#038;h=114" alt="101_15081.JPG" height="114" width="171" /></a>  <a href="http://manaris.files.wordpress.com/2006/11/101_1515.JPG" title="Direct link to file"><img src="https://manaris.files.wordpress.com/2006/11/101_1515.JPG?w=171&#038;h=114" alt="101_1515.JPG" height="114" width="171" /></a></p>
<p align="center"><strong>Images 1-2.</strong> Front view of the Antikythera Mechanism fragments and<br />
official caption, as exhibited at the National Archaeological Museum in Athens, Greece (<em>click to enlarge</em>).</p>
<p><strong>First, about the Discovery&#8230;</strong></p>
<p>According to <a href="http://en.wikipedia.org/wiki/Antikythera_mechanism" target="_blank">Wikipedia</a>,</p>
<blockquote><p>Sometime before Easter 1900, Elias Stadiatos, a Greek sponge diver, discovered the wreck of an ancient cargo ship off Antikythera island at a depth of 42 m. Sponge divers retrieved several statues and other artifacts from the site.</p></blockquote>
<p align="center">&nbsp;</p>
<p align="center"><a href="https://manaris.files.wordpress.com/2006/11/101_1501.JPG" title="Direct link to file"><img src="https://manaris.files.wordpress.com/2006/11/101_1501.JPG?w=85&#038;h=128" alt="101_1501.JPG" height="128" width="85" /></a>   <a href="https://manaris.files.wordpress.com/2006/11/101_1498.JPG" title="Direct link to file"><img src="https://manaris.files.wordpress.com/2006/11/101_1498.JPG?w=85&#038;h=128" alt="101_1498.JPG" height="128" width="85" /></a>   <a href="https://manaris.files.wordpress.com/2006/11/101_1502.JPG" title="Direct link to file"><img src="https://manaris.files.wordpress.com/2006/11/101_1502.JPG?w=85&#038;h=128" alt="101_1502.JPG" height="128" width="85" /></a>   <a href="https://manaris.files.wordpress.com/2006/11/101_1503.JPG" title="Direct link to file"><img src="https://manaris.files.wordpress.com/2006/11/101_1503.JPG?w=171&#038;h=114" alt="101_1503.JPG" height="114" width="171" /></a>   <a href="https://manaris.files.wordpress.com/2006/11/101_1504.JPG" title="Direct link to file"><img src="https://manaris.files.wordpress.com/2006/11/101_1504.JPG?w=85&#038;h=128" alt="101_1504.JPG" height="128" width="85" /></a></p>
<p align="center"><strong>Images 3-7.</strong> One of the bronze statues found at the Antikythera wreck<br />
as exhibited at the National Archaeological Museum in Athens, Greece.
</p>
<p align="center">&nbsp;</p>
<p align="center"><a href="https://manaris.files.wordpress.com/2006/11/p6070150.JPG" title="Direct link to file"><img src="https://manaris.files.wordpress.com/2006/11/p6070150.JPG?w=170&#038;h=128" alt="p6070150.JPG" height="128" width="170" /></a>   <a href="https://manaris.files.wordpress.com/2006/11/p6070149.JPG" title="Direct link to file"><img src="https://manaris.files.wordpress.com/2006/11/p6070149.JPG?w=96&#038;h=128" alt="p6070149.JPG" height="128" width="96" /></a>  <a href="https://manaris.files.wordpress.com/2006/11/p6070151.JPG" title="Direct link to file"><img src="https://manaris.files.wordpress.com/2006/11/p6070151.JPG?w=96&#038;h=128" alt="p6070151.JPG" height="128" width="96" /></a></p>
<p align="center"><strong>Images 8-10.</strong> Another of the bronze statues found at the Antikythera wreck.</p>
<p align="center">&nbsp;</p>
<blockquote><p>The mechanism itself was discovered on May 17, 1902, when archaeologist <a href="http://en.wikipedia.org/wiki/Valerios_Stais" title="Valerios Stais">Valerios Stais</a><sup><a href="http://en.wikipedia.org/wiki/Antikythera_mechanism#_note-0">[1]</a></sup> noticed that a piece of rock recovered from the site had a gear wheel embedded in it. Examination revealed that the &#8220;rock&#8221; was in fact a heavily encrusted and corroded mechanism that had survived the shipwreck in three main parts and dozens of smaller fragments. The device itself was surprisingly thin, about 33 cm (13in) high, 17 cm (6.75in) wide and 9 cm (3.5in) thick, made of bronze and originally mounted in a wooden frame. It was inscribed with a text of over 2,000 characters, about 95% of which have been deciphered. The full text of the inscription has not yet been published.</p></blockquote>
<p><strong>Now, about its Functionality&#8230;</strong></p>
<p>According to <a href="http://www.nature.com/nature/journal/v444/n7119/full/444534a.html" target="_blank">Nature&#8217;s</a> article, the mechanism fragments</p>
<blockquote><p>contain at least 30 interlocking gear-wheels, along with copious astronomical inscriptions. Before its sojourn on the sea bed, it computed and displayed the movement of the Sun, the Moon and possibly the planets around Earth, and predicted the dates of future eclipses. It&#8217;s one of the most stunning artefacts we have from classical antiquity.</p>
<p>No earlier geared mechanism of any sort has ever been found. Nothing close to its technological sophistication appears again for well over a millennium, when astronomical clocks appear in medieval Europe. It stands as a strange exception, stripped of context, of ancestry, of descendants.</p></blockquote>
<p>Here are some more of the photos from the visit to the museum.</p>
<p><a href="https://manaris.wordpress.com/wp-admin/upload.php?style=inline&amp;tab=browse&amp;post_id=3&amp;_wpnonce=ec358d16da&amp;ID=6&amp;action=view&amp;paged" id="file-link-6" title="101_1507.JPG" class="file-link image"> 			</a></p>
<p align="center"><a href="http://manaris.files.wordpress.com/2006/11/101_1507.JPG" title="Direct link to file"><img src="https://manaris.files.wordpress.com/2006/11/101_1507.JPG?w=171&#038;h=114" alt="101_1507.JPG" height="114" width="171" /></a>   <a href="http://manaris.files.wordpress.com/2006/11/101_15081.JPG" title="Direct link to file"><img src="https://manaris.files.wordpress.com/2006/11/101_15081.JPG?w=171&#038;h=114" alt="101_15081.JPG" height="114" width="171" /></a>   <a href="http://manaris.files.wordpress.com/2006/11/101_1505.JPG" title="Direct link to file"><img src="https://manaris.files.wordpress.com/2006/11/101_1505.JPG?w=171&#038;h=114" alt="101_1505.JPG" height="114" width="171" /></a><a href="https://manaris.wordpress.com/wp-admin/upload.php?style=inline&amp;tab=browse&amp;post_id=3&amp;_wpnonce=ec358d16da&amp;ID=5&amp;action=view&amp;paged" id="file-link-5" title="Antikythera Mechanism Fragements" class="file-link image"></a><a href="https://manaris.wordpress.com/wp-admin/upload.php?style=inline&amp;tab=browse&amp;action=view&amp;ID=15&amp;post_id=3&amp;paged=1" id="file-link-15" title="101_1505.JPG" class="file-link image"></a><br />
<a href="https://manaris.files.wordpress.com/2006/11/101_1516.JPG" title="Direct link to file"><img src="https://manaris.files.wordpress.com/2006/11/101_1516.JPG?w=85&#038;h=128" alt="101_1516.JPG" height="128" width="85" /> </a> <a href="https://manaris.files.wordpress.com/2006/11/101_1517.JPG" title="Direct link to file"><img src="https://manaris.files.wordpress.com/2006/11/101_1517.JPG?w=85&#038;h=128" alt="101_1517.JPG" height="128" width="85" /></a>   <a href="https://manaris.files.wordpress.com/2006/11/101_1518.JPG" title="Direct link to file"><img src="https://manaris.files.wordpress.com/2006/11/101_1518.JPG?w=85&#038;h=128" alt="101_1518.JPG" height="128" width="85" /></a><br />
<a href="https://manaris.files.wordpress.com/2006/11/101_1511.JPG" title="Direct link to file"><img src="https://manaris.files.wordpress.com/2006/11/101_1511.JPG?w=124&#038;h=86" alt="101_1511.JPG" height="86" width="124" /></a>
</p>
<p align="center"><strong>Images 11-17.</strong> Various views of the mechanism fragments and X-rays.</p>
<p>The mechanism is an implementation of Hipparchus&#8217;s model of planetary motion.</p>
<blockquote>
<p class="norm">The researchers realized that the ratios of the gear-wheels involved produce a motion that closely mimics the varying motion of the Moon around Earth, as described by Hipparchus. When the Moon is close to us it seems to move faster. And the closest part of the Moon&#8217;s orbit itself makes a full rotation around the Earth about every nine years. Hipparchus was the first to describe this motion mathematically, working on the idea that the Moon&#8217;s orbit, although circular, was centred on a point offset from the centre of Earth that described a nine-year circle. In the Antikythera Mechanism, this theory is beautifully translated into mechanical form. &#8220;It&#8217;s an unbelievably sophisticated idea,&#8221; says Tony Freeth, a mathematician who worked out most of the mechanics for Edmunds&#8217; team. &#8220;I don&#8217;t know how they thought of it.&#8221;</p>
</blockquote>
<p class="norm" align="left">Here are photos of a reconstruction of the mechanism by Prof. Derek de Solla Price, Yale University:</p>
<p class="norm" align="center"><a href="https://manaris.files.wordpress.com/2006/11/101_1512.JPG" title="Direct link to file"><img src="https://manaris.files.wordpress.com/2006/11/101_1512.JPG?w=85&#038;h=128" alt="101_1512.JPG" height="128" width="85" /></a>  <a href="https://manaris.files.wordpress.com/2006/11/101_1513.JPG" title="Direct link to file"><img src="https://manaris.files.wordpress.com/2006/11/101_1513.JPG?w=85&#038;h=128" alt="101_1513.JPG" height="128" width="85" /></a>  <a href="https://manaris.files.wordpress.com/2006/11/101_1514.JPG" title="Direct link to file"><img src="https://manaris.files.wordpress.com/2006/11/101_1514.JPG?w=85&#038;h=128" alt="101_1514.JPG" height="128" width="85" /></a>  <a href="https://manaris.files.wordpress.com/2006/11/101_1515.JPG" title="Direct link to file"><img src="https://manaris.files.wordpress.com/2006/11/101_1515.JPG?w=171&#038;h=114" alt="101_1515.JPG" height="114" width="171" /></a></p>
<p class="norm" align="center"><strong>Images 18-21.</strong> Various views of the mechanism&#8217;s reconstruction, as exhibited  at the National Archaeological Museum in Athens, Greece.</p>
<blockquote></blockquote>
<p><strong>Where are the others?</strong></p>
<p>Given its sophistication, clearly this mechanism could not have been just a prototype.  If so, why haven&#8217;t we found more ancient devices like it?</p>
<p>Again, according to <a href="http://www.nature.com/nature/journal/v444/n7119/full/444534a.html" target="_blank">Nature&#8217;s</a> article,</p>
<blockquote><p>Cicero wrote of a similar mechanism that was said to have been built by Archimedes. That one was purportedly stolen in 212 <span class="scp">BC</span> by the Roman general Marcellus when Archimedes was killed in the sacking of the Sicilian city of Syracuse. The device was kept as an heirloom in Marcellus&#8217; family: as a friend of the family, Cicero may indeed have seen it.</p></blockquote>
<p class="norm">How could this knowledge die away?  Actually, it probably didn&#8217;t.  There is evidence that similar systems existed in the eastern Mediterranean in later years in the Byzantium, Persia, and Arabia. And then, in the 14th century mechanical clocks emerge in Europe.  Interestingly, these clocks were mainly used to drive astronomical displays &#8212; the time-telling functionality seemed somewhat secondary.</p>
<p class="norm"> It is possible that medieval craftsmen re-invented the wheel, so to speak.  But it is equally likely that the technique survived away from the critical eyes of the early Christian church, and possibly reached the west right after Baghdad was conquered by the Mongols in the 13th century.  Soon afterwards, clocks started being constructed in the West without much information about their origins.  If a medieval European craftsman had re-invented the technique, his name should have been recorded, and the technique would have probably remained proprietary for some period of time. Thus, one can safely argue that the &#8220;invention&#8221; of clocks in 14th-century Europe was not a revolutionary step (as it commonly believed), but rather an evolutionary one.</p>
<p class="norm">But if the Greeks had access to such powerful calculating technology, why don&#8217;t we see other useful artifacts of technical sophistication? Well, we do have the massive, architecturally intricate  buildings they left behind (many still standing).  But what about other technological gizmos, like the Antikythera one?</p>
<blockquote>
<p class="norm">So where are the other examples? A model of the workings of the heavens might have had value to a cultivated mind. Bronze had value for everyone. Most bronze artefacts were eventually melted down: the Athens museum has just ten major bronze statues from ancient Greece, of which nine are from shipwrecks. So in terms of the mechanism, &#8220;we&#8217;re lucky we have one&#8221;, points out Wright. &#8220;We only have this because it was out of reach of the scrap-metal man.&#8221;</p>
</blockquote>
<p class="norm">Bronze was a preferred medium for weapon making because of its strength and ease of casting.  Romans also used bronze for casting statues of their gods.  Why preserve a conquered, disgraced nation&#8217;s statues of philosophers and of strange delicate artifacts with no apparent practical use?  The bronze used in these artifacts was far more valuable to the conqueror.</p>
<p class="norm">Also, Greeks did not necessarily have the same needs/concerns that drive technological innovation in our modern, fast-paced, bottom-line society.  They were less concerned with accurate time keeping (similarly to most Mediterranean cultures) and more concerned with knowledge, philosophy, and a deeper understanding of life and the universe.   As anyone who has visited Greece can attest, that&#8217;s still rooted in the Greek psyche (especially the time keeping part&#8230; <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</p>
<p class="norm"><strong>References</strong></p>
<ol>
<li>Jo Marchant, &#8220;<a href="http://www.nature.com/nature/journal/v444/n7119/full/444534a.html" title="In search of lost time, Nature 444, 534-538 (30 November 2006)" target="_blank">In search of lost time</a>&#8220;, <em>Nature</em> <strong>444</strong>, 534-538, Nov. 30, 2006.</li>
<li>Derek J. de Solla Price, &#8220;<a href="http://www.giant.net.au/users/rupert/kythera/kythera3.htm" target="_blank">An Ancient Greek Computer</a>&#8220;, Scientific American, pp. 60-67, Jun. 1959.</li>
<li>Alun Salt, &#8220;<a href="http://archaeoastronomy.wordpress.com/2006/11/29/the-antikythera-mechanism/" target="_blank">The Antikythera Mechanism</a>&#8220;, Archaeoastronomy blog, Nov. 29, 2006.</li>
<li>The Antikythera Mechanism Research Project, <a href="http://www.antikythera-mechanism.gr/" target="_blank">http://www.antikythera-mechanism.gr/.</a></li>
<li>Philip Coppens, &#8220;<a href="http://www.philipcoppens.com/antikythera.html" target="_blank">The wheels of Greek astronomical science</a>&#8220;, accessed Nov. 30, 2006.</li>
<li><a href="http://en.wikipedia.org/wiki/Derek_J._de_Solla_Price" target="_blank">Derek J. de Solla Price</a>, Wikipedia entry, accessed Nov. 30, 2006.</li>
</ol>
<blockquote></blockquote>
<blockquote></blockquote>
<blockquote></blockquote>
<blockquote></blockquote>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/manaris.wordpress.com/3/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/manaris.wordpress.com/3/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/manaris.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/manaris.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/manaris.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/manaris.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/manaris.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/manaris.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/manaris.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/manaris.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/manaris.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/manaris.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/manaris.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/manaris.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/manaris.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/manaris.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=manaris.wordpress.com&amp;blog=530835&amp;post=3&amp;subd=manaris&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://manaris.wordpress.com/2006/11/30/antikythera-mechanism-the-first-known-computer/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b211d254bd642277062fda426576709f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">manaris</media:title>
		</media:content>

		<media:content url="https://manaris.files.wordpress.com/2006/11/101_15081.JPG" medium="image">
			<media:title type="html">101_15081.JPG</media:title>
		</media:content>

		<media:content url="https://manaris.files.wordpress.com/2006/11/101_1515.JPG" medium="image">
			<media:title type="html">101_1515.JPG</media:title>
		</media:content>

		<media:content url="https://manaris.files.wordpress.com/2006/11/101_1501.JPG" medium="image">
			<media:title type="html">101_1501.JPG</media:title>
		</media:content>

		<media:content url="https://manaris.files.wordpress.com/2006/11/101_1498.JPG" medium="image">
			<media:title type="html">101_1498.JPG</media:title>
		</media:content>

		<media:content url="https://manaris.files.wordpress.com/2006/11/101_1502.JPG" medium="image">
			<media:title type="html">101_1502.JPG</media:title>
		</media:content>

		<media:content url="https://manaris.files.wordpress.com/2006/11/101_1503.JPG" medium="image">
			<media:title type="html">101_1503.JPG</media:title>
		</media:content>

		<media:content url="https://manaris.files.wordpress.com/2006/11/101_1504.JPG" medium="image">
			<media:title type="html">101_1504.JPG</media:title>
		</media:content>

		<media:content url="https://manaris.files.wordpress.com/2006/11/p6070150.JPG" medium="image">
			<media:title type="html">p6070150.JPG</media:title>
		</media:content>

		<media:content url="https://manaris.files.wordpress.com/2006/11/p6070149.JPG" medium="image">
			<media:title type="html">p6070149.JPG</media:title>
		</media:content>

		<media:content url="https://manaris.files.wordpress.com/2006/11/p6070151.JPG" medium="image">
			<media:title type="html">p6070151.JPG</media:title>
		</media:content>

		<media:content url="https://manaris.files.wordpress.com/2006/11/101_1507.JPG" medium="image">
			<media:title type="html">101_1507.JPG</media:title>
		</media:content>

		<media:content url="https://manaris.files.wordpress.com/2006/11/101_15081.JPG" medium="image">
			<media:title type="html">101_15081.JPG</media:title>
		</media:content>

		<media:content url="https://manaris.files.wordpress.com/2006/11/101_1505.JPG" medium="image">
			<media:title type="html">101_1505.JPG</media:title>
		</media:content>

		<media:content url="https://manaris.files.wordpress.com/2006/11/101_1516.JPG" medium="image">
			<media:title type="html">101_1516.JPG</media:title>
		</media:content>

		<media:content url="https://manaris.files.wordpress.com/2006/11/101_1517.JPG" medium="image">
			<media:title type="html">101_1517.JPG</media:title>
		</media:content>

		<media:content url="https://manaris.files.wordpress.com/2006/11/101_1518.JPG" medium="image">
			<media:title type="html">101_1518.JPG</media:title>
		</media:content>

		<media:content url="https://manaris.files.wordpress.com/2006/11/101_1511.JPG" medium="image">
			<media:title type="html">101_1511.JPG</media:title>
		</media:content>

		<media:content url="https://manaris.files.wordpress.com/2006/11/101_1512.JPG" medium="image">
			<media:title type="html">101_1512.JPG</media:title>
		</media:content>

		<media:content url="https://manaris.files.wordpress.com/2006/11/101_1513.JPG" medium="image">
			<media:title type="html">101_1513.JPG</media:title>
		</media:content>

		<media:content url="https://manaris.files.wordpress.com/2006/11/101_1514.JPG" medium="image">
			<media:title type="html">101_1514.JPG</media:title>
		</media:content>

		<media:content url="https://manaris.files.wordpress.com/2006/11/101_1515.JPG" medium="image">
			<media:title type="html">101_1515.JPG</media:title>
		</media:content>
	</item>
		<item>
		<title>Usability of Programming Languages</title>
		<link>http://manaris.wordpress.com/2006/11/08/hello-world/</link>
		<comments>http://manaris.wordpress.com/2006/11/08/hello-world/#comments</comments>
		<pubDate>Wed, 08 Nov 2006 21:03:39 +0000</pubDate>
		<dc:creator>Bill Manaris</dc:creator>
				<category><![CDATA[CS education]]></category>
		<category><![CDATA[Programming languages]]></category>
		<category><![CDATA[Usability and HCI]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Programming languages are user interfaces.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=manaris.wordpress.com&amp;blog=530835&amp;post=1&amp;subd=manaris&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Wanna know which language really is the best???</p>
<p>Programming languages, when viewed as user interfaces, may be evaluated formally through usability techniques.</p>
<p>For example, see this <a href="http://oodt.jpl.nasa.gov/better-web-app.mov" title="a usability study of programming frameworks" target="_blank">usability study</a> from the NASA JPL site (35 mins).</p>
<p>In it, you will see the evaluator pick certain tasks, try to perform them with different programming frameworks, and in the end reporting quantitative results. Powerful!</p>
<p>&#8212;-<br />
If you are new to usability, see Jakob Nielsen&#8217;s <a href="http://www.useit.com/alertbox/20030825.html" title="a short intro to usability">Usability 101</a>. As you are read about <strong>websites </strong>and <strong>users, </strong>perhaps think about <strong>programming languages</strong> and <strong>students</strong>.<br />
&#8212;-</p>
<p>Clearly, the choice of tasks is essential.  You pick the wrong tasks and your results are misleading.</p>
<p>So, the other day, I selected a small task and wrote code both in language X and language Y.</p>
<p><strong>Results</strong></p>
<p>With language X, I had to look up two things in the API, had 9 compiler errors, one semantic error, and one &#8220;headache&#8221; error. (What is a &#8220;headache&#8221; error?  <a href="http://oodt.jpl.nasa.gov/better-web-app.mov" title="a usability study of programming frameworks" target="_blank">View the video</a>.)</p>
<p>With language Y, I had only one syntax error.</p>
<p>The number-of-lines ratio was 3 to 1 (X to Y).  <strong>Same task</strong>.</p>
<p>Before you ask me which languages I used and what the task was, <strong>I challenge you to do the same with your X and Y</strong>, and your task of choice.  Try a task from CS1, for example.  Just make sure it is not tied to syntax (e.g., inheritance vs. interfaces).</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/manaris.wordpress.com/1/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/manaris.wordpress.com/1/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/manaris.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/manaris.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/manaris.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/manaris.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/manaris.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/manaris.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/manaris.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/manaris.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/manaris.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/manaris.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/manaris.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/manaris.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/manaris.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/manaris.wordpress.com/1/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=manaris.wordpress.com&amp;blog=530835&amp;post=1&amp;subd=manaris&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://manaris.wordpress.com/2006/11/08/hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://oodt.jpl.nasa.gov/better-web-app.mov" length="396866253" type="video/quicktime" />
	
		<media:content url="http://1.gravatar.com/avatar/b211d254bd642277062fda426576709f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">manaris</media:title>
		</media:content>
	</item>
	</channel>
</rss>
