<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Global Nerdy &#187; Arduino progamming language</title>
	<atom:link href="http://www.globalnerdy.com/tag/arduino-progamming-language/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.globalnerdy.com</link>
	<description>Tech Evangelist Joey deVilla on software development, tech news and other nerdy stuff</description>
	<lastBuildDate>Thu, 19 Nov 2009 02:16:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Going Down Memory Lane with C</title>
		<link>http://www.globalnerdy.com/2008/09/16/going-down-memory-lane-with-c/</link>
		<comments>http://www.globalnerdy.com/2008/09/16/going-down-memory-lane-with-c/#comments</comments>
		<pubDate>Tue, 16 Sep 2008 04:00:03 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[What Joey Did]]></category>
		<category><![CDATA[Arduino progamming language]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[my sordid past]]></category>
		<category><![CDATA[Objective-C]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/?p=1417</guid>
		<description><![CDATA[The July 25, 1994 issue of Time magazine.
The computer science student phase of my academic career (the less said about the previous phase, in which I was an electrical engineering student, the better) ran from 1991 to a successful conclusion in 1994. 
If you are like me, you strongly connect memories with the music of [...]]]></description>
			<content:encoded><![CDATA[<p></p><p class="center"><a href="http://www.time.com/time/magazine/0,9263,7601940725,00.html"><img src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2008/09/time_magazine_july_25_1994.jpg" alt="July 25, 1994 issue of Time magazine" title="July 25, 1994 issue of Time magazine" width="300" height="395" /></a><br /><span class="caption">The July 25, 1994 issue of <cite>Time</cite> magazine.</span></p>
<p>The computer science student phase of my academic career (the less said about the previous phase, in which I was an electrical engineering student, the better) ran from 1991 to a successful conclusion in 1994. </p>
<p>If you are like me, you strongly connect memories with the music of the time; you could say that my computer science student phase ran from the time of Nirvana&#8217;s <a href="http://en.wikipedia.org/wiki/Nevermind"><cite>Nevermind</cite></a> and Soundgarden&#8217;s <a href="http://en.wikipedia.org/wiki/Badmotorfinger"><cite>Badmotorfinger</cite></a> to Green Day&#8217;s <a href="http://en.wikipedia.org/wiki/Dookie"><cite>Dookie</cite></a> and The Offspring&#8217;s <a href="http://en.wikipedia.org/wiki/Smash_(album)"><cite>Smash</cite></a>. Let&#8217;s just say that I often showed up to my classes and labs in a flannel shirt.</p>
<p class="center"><img src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2008/09/nirvana_nevermind_green_day_dookie.jpg" alt="Album covers: Nirvana&#039;s &quot;Nevermind&quot; and Green Day&#039;s &quot;Dookie&quot;" title="Album covers: Nirvana&#039;s &quot;Nevermind&quot; and Green Day&#039;s &quot;Dookie&quot;" width="500" height="250" /></p>
<p>(If that last paragraph makes you think &#8220;Whoa, that was a long time ago!&#8221;, you&#8217;ll be blown away by the fact that the initial work on C ran from the time of the Beatles&#8217; <a href="http://en.wikipedia.org/wiki/Abbey_Road_(album)"><cite>Abbey Road</cite></a> to Led Zeppelin&#8217;s <a href="http://en.wikipedia.org/wiki/Houses_of_the_Holy"><cite>Houses of the Holy</cite></a>. A fair number of you probably weren&#8217;t even born then.)</p>
<h3>My Student Language of Choice</h3>
<p>I don&#8217;t know what the situation was like at other schools, but at the time, computer science students at <a href="http://queensu.ca/">Crazy Go Nuts University</a> were allowed to hand in programming assignments using the following languages:</p>
<ul>
<li><a href="http://en.wikipedia.org/wiki/Pascal_programming_language">Pascal</a></li>
<li><a href="http://en.wikipedia.org/wiki/Turing_(programming_language)">Turing</a></li>
<li><a href="http://en.wikipedia.org/wiki/C_(programming_language)">C</a></li>
</ul>
<p>(Remember, there was no Java back then. The <a href="http://www.cafeaulait.org/slides/hope/02.html">Green Project</a>, from which the language/platform sprang, was still ongoing at this time, and Java was still going by its <a href="http://ei.cs.vt.edu/book/chap1/java_hist.html">&#8220;Oak&#8221;</a> codename.)</p>
<p>The general recommendation that came from most of my professors was to use Turing. They told us that it was a kinder, gentler language than Pascal and even more so than C, which they implied was designed by dyslexic aliens. When some of us suggested that it might be better to use a language that saw actual use in the real world, many of them countered with the argument that learning principles of computing was more important than learning specific languages. We might&#8217;ve responded by pointing out that <a href="http://research.cs.queensu.ca/~cordy/">one of our professors</a> was a co-creator of Turing and probably got a <a href="http://en.wikipedia.org/wiki/Vigorish">vig</a> for every Turing installation (it was a commercial language), but that might have been an academic career-limiting move.</p>
<p>I ignored their recommendations and went with C. In the lab, I used good ol&#8217; <code>cc</code>. At home, it was <a href="http://en.wikipedia.org/wiki/Turbo_C">Turbo C</a> at first, and later, when I got my first Mac (a <a href="http://www.everymac.com/systems/apple/mac_quadra/stats/mac_quadra_660av.html">Quadra 660AV</a> bought with money from DJing), <a href="http://www.mactech.com/articles/mactech/Vol.07/07.09/ThinkC5.0/">Think C</a>.</p>
<p>I never used C in my professional career. <a href="http://craphound.com/nonfic/mackerel.html">My first job out of school</a> took me away from a world where input and output was all <code>printf()</code> and <code>scanf()</code> to interactive CD-ROMs and Macromedia Director (now <a href="http://www.adobe.com/products/director/">Adobe Director</a> and 7 versions later), and after that, the languages remained pretty high level: Visual Basic, Python, Java, C#, <a href="http://www.nsbasic.com/palm/">NSBasic</a>, PHP and Ruby, with only a slight detour through through Visual C++ and C++Builder.</p>
<h3>My C Books Back Then</h3>
<p class="center"><a href="http://cm.bell-labs.com/cm/cs/cbook/"><img src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2008/09/the_c_programming_language.jpg" alt="Cover of &quot;The C Programming Language&quot;" title="Cover of &quot;The C Programming Language&quot;" width="220" height="287" /></a></p>
<p>It&#8217;s almost impossible to talk about C without mentioning &#8220;K&#038;R&#8221;, the nickname for what is considered to be the official bible of C, <a href="http://cm.bell-labs.com/cm/cs/cbook/"><strong><cite>The C Programming Language</cite></strong></a>, which was written by <a href="http://en.wikipedia.org/wiki/Brian_Kernighan">Brian Kernighan</a> and <a href="http://en.wikipedia.org/wiki/Dennis_Ritchie">Dennis Ritchie</a>. The latest edition of the book &#8212; the second edition &#8212; is a bit long in the tooth as it was written in 1988, but for the most part, everything in this book should still apply to the current <a href="http://en.wikipedia.org/wiki/C99">C99</a> standard.</p>
<p>I never owned a copy of the book in my student days. I signed it out when necessary from the electrical engineering/computer science library in <a href="http://www.queensu.ca/secretariat/History/bldgs/walt.html">Walter Light Hall</a>. I <em>did</em> own a copy for a brief period in 2002 when my <a href="http://www.joeydevilla.com/2007/11/14/forgiving-the-deadbeat-ex-housemates-debt/">deadbeat ex-housemate</a> left a lot of his stuff behind, but I sold it (along with most of his stuff) in order to recoup some of the money lost from his stiffing me on rent, utilities, groceries and the largest domestic phone bill I&#8217;ve ever grappled with.</p>
<p class="center"><a href="http://www.cs.ucsc.edu/~pohl/abc4.html"><img src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2008/09/a_book_on_c.jpg" alt="Cover of &quot;A Book on C&quot;" title="Cover of &quot;A Book on C&quot;" width="220" height="318" /></a></p>
<p>The books I had while at Crazy Go Nuts University were the second edition of <a href="http://www.cs.ucsc.edu/~pohl/abc4.html"><strong><cite>A Book on C</cite></strong></a> and <cite>Understanding C Pointers</cite> (a book that seems to be no longer in print). I liked <cite>A Book on C</cite> enough to pick up the fourth edition on sale a couple of years ago, and someone out there has forgotten to give me back my copy of <cite>Understanding C Pointers</cite> (you know who you are!).</p>
<h3>Back to C</h3>
<p>I&#8217;ve decided to get back into C for a number of reasons.</p>
<p class="center"><img src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2008/09/internet_tough_guy_magazine.jpg" alt="&quot;Internet Tough Guy&quot; Magazine" title="&quot;Internet Tough Guy&quot; Magazine" width="300" height="440" /></p>
<p>I have to admit that one of those reasons is completely irrational: it&#8217;s ego. There&#8217;s certain geek cred that comes with having at least some proficiency in C. While I had those bragging rights back in school, I can&#8217;t honestly claim them now; I haven&#8217;t even written a file whose name ends in <code>.c</code> in over a decade. Luckily, I had a pretty good grasp of C back in school, and the noodling I&#8217;ve been doing with good old <code>gcc</code> suggests that I&#8217;ve still got it, which is pretty reassuring. </p>
<p class="center"><img src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2008/09/iphone_arduino_mac_guy.jpg" alt="iPhone, Arduino 480 and the &quot;Mac Guy&quot;" title="iPhone, Arduino 480 and the &quot;Mac Guy&quot;" width="487" height="273" /></p>
<p>I&#8217;ve also been meaning to do some development with things that are programmed in C or C dialects:</p>
<ul>
<li>The <a href="http://arduino.cc/"><strong>Arduino</strong></a> electronics prototyping platform has its own programming language based on C. I&#8217;ve been meaning to try out hardware hacking with the folks at the local group <a href="http://hackerspaces.org/wiki/HackLabTO">HacklabTO</a>.</li>
<li>I&#8217;ve also been thinking about putting together some <strong>Mac OS X</strong> and <strong>iPhone</strong> apps, which require <a href="http://en.wikipedia.org/wiki/Objective-C">Objective-C</a>.</li>
<li>I&#8217;ve even been thinking about doing some <strong>GTK</strong> noodling, which is done in good ol&#8217; C.</li>
</ul>
<p class="center"><img src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2008/09/homer_simpson_brain.jpg" alt="Homer Simpson&#039;s brain x-ray" title="Homer Simpson&#039;s brain x-ray" width="410" height="307" /></p>
<p>Finally, there&#8217;s the matter of just making myself a better programmer by working in C by refreshing my knowledge of the low-level stuff that C requires you to work with, and also the &#8220;brain stretch&#8221; that comes with working with a language and environment (what with going back to strong typing, compiling and <strong>make</strong>) that I haven&#8217;t worked in for some time.</p>
<p>I&#8217;ll be doing some C coding in my spare time, as well as noodling with the Arduino programming languane and Objective-C, and I&#8217;ll be posting my notes, observations and experiences here. As I&#8217;m fond of saying on this blog, watch this space!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2008/09/16/going-down-memory-lane-with-c/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
