<?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>{} succ(succ(zero())) C &#60;&#60;</title>
	<atom:link href="http://jbgreer.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://jbgreer.wordpress.com</link>
	<description>because the world needs another tech blog</description>
	<lastBuildDate>Thu, 28 Apr 2011 21:55:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='jbgreer.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>{} succ(succ(zero())) C &#60;&#60;</title>
		<link>http://jbgreer.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://jbgreer.wordpress.com/osd.xml" title="{} succ(succ(zero())) C &#60;&#60;" />
	<atom:link rel='hub' href='http://jbgreer.wordpress.com/?pushpress=hub'/>
		<item>
		<title>ZigBee</title>
		<link>http://jbgreer.wordpress.com/2011/04/10/zigbee/</link>
		<comments>http://jbgreer.wordpress.com/2011/04/10/zigbee/#comments</comments>
		<pubDate>Sun, 10 Apr 2011 21:48:37 +0000</pubDate>
		<dc:creator>jbgreer</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jbgreer.wordpress.com/?p=42</guid>
		<description><![CDATA[Note to self: the Digi Series 2 ZigBee chips (XB24) require the XB24-ZB selection in X-CTU. You need to pick ZigBee Router AT and ZigBee Coordinator AT in order to update them to the latest firmware revision. Also, to use picocom as suggested in the Wireless Sensor book, download and compile from source. The version [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jbgreer.wordpress.com&amp;blog=1030810&amp;post=42&amp;subd=jbgreer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Note to self:</strong> the <a href="http://www.digi.com/">Digi</a> <a href="http://www.digi.com/products/model.jsp?lid=EN&amp;pgid=227&amp;pfid=179&amp;mtid=3008&amp;amtid=3008&amp;pm=Y">Series 2 ZigBee chips</a> (XB24) require the XB24-ZB selection in X-CTU.  You need to pick ZigBee Router AT and ZigBee Coordinator AT in order to update them to the latest firmware revision.</p>
<p>Also, to use <a href="http://code.google.com/p/picocom/">picocom</a> as suggested in the <a href="http://oreilly.com/catalog/9780596807740/">Wireless Sensor book</a>, download and compile from source.  The version available in Ubuntu is stale (1.4 vs. 1.6) and doesn&#8217;t support the &#8211;echo command.</p>
<p>Finally, note that the ATDL address for the two chips should be that of the <em>other</em> chip.  You are specifying the destination address.</p>
<p>Got my two ZigBee&#8217;s to talk to one another!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jbgreer.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jbgreer.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jbgreer.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jbgreer.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jbgreer.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jbgreer.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jbgreer.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jbgreer.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jbgreer.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jbgreer.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jbgreer.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jbgreer.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jbgreer.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jbgreer.wordpress.com/42/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jbgreer.wordpress.com&amp;blog=1030810&amp;post=42&amp;subd=jbgreer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jbgreer.wordpress.com/2011/04/10/zigbee/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5181a4264adf8d287873d022e99a0777?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jbgreer</media:title>
		</media:content>
	</item>
		<item>
		<title>Accessible Hardware Hacking</title>
		<link>http://jbgreer.wordpress.com/2011/03/13/accessible-hardware-hacking/</link>
		<comments>http://jbgreer.wordpress.com/2011/03/13/accessible-hardware-hacking/#comments</comments>
		<pubDate>Sun, 13 Mar 2011 21:24:48 +0000</pubDate>
		<dc:creator>jbgreer</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jbgreer.wordpress.com/?p=35</guid>
		<description><![CDATA[The Age of the Maker may be hand. Who knows whether this will be a flash in the pan, but there is an amazing number and variety of openly available design, plans, examples, forums, tools, and kits available for those who want to tinker. I don&#8217;t want to debate whether past efforts (e.g. Basic Stamp) [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jbgreer.wordpress.com&amp;blog=1030810&amp;post=35&amp;subd=jbgreer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.etsy.com/">Age</a> <a href="http://www.diynetwork.com/">of</a> <a href="http://www.buglabs.net/">the</a> <a href="http://makezine.com/">Maker</a> may be hand.  Who knows whether this will be a flash in the pan, but there is an amazing number and variety of openly available design, plans, examples, forums, tools, and kits available for those who want to tinker.</p>
<p>I don&#8217;t want to debate whether past efforts (e.g. <a href="http://www.parallax.com/Store/Microcontrollers/BASICStampModules/tabid/134/List/0/CategoryID/9/Level/a/SortField/0/Default.aspx">Basic Stamp</a>) have been accessible or inaccessible, but a newer effort has certainly garnered a lot of <a href="http://www.technologyreview.com/computing/32392/">attention</a> <a href="http://www.technologyreview.com/video/?vid=659">in</a> <a href="http://www.adafruit.com/blog/2010/09/26/the-state-of-arduino-talk-at-makerfaire-2010/">recent</a> months: <a href="http://www.arduino.cc/">Arduino</a>.  Not that Arduino is new; if anything, they are merely refining their designs these days.  </p>
<p>While I&#8217;ve had a couple of Arduinos for over a year now, I haven&#8217;t really done anything with them lately.  The processors in Arduinos are limited, <a href="http://www.atmel.com/dyn/resources/prod_documents/doc8161.pdf">8-bit</a> <a href="http://www2.atmel.com/">Atmels</a> that harken back to an earlier, more limited age of computing.  One could argue that is what makes them an good basis for an introduction to electronics and programming, but I don&#8217;t think that is what makes them so special, as there are plenty of similar efforts.  Instead, I think that Arduino has hit critical mass.  For some reasons &#8211; economic or artistic, a <a href="http://www.sparkfun.com/search/results?term=arduino&amp;what=products">cottage</a> <a href="http://www.adafruit.com/index.php?main_page=index&amp;cPath=17_21">industry</a> has <a href="http://www.makershed.com/SearchResults.asp?Cat=43">grown</a> up around them, and they seem to be (by <a href="http://www.google.com/#hl=en&amp;sugexp=ldymls&amp;xhr=t&amp;q=arduino">popular mention</a>) the dominant hardware hacking platform of the day.  This largely online community is now largely self-sustaining.</p>
<p> I&#8217;ve made a couple of Arduino shields (daughterboards), but lately they have lain idle.  <a href="http://www.faludi.com/">Robert Fauldi</a>&#8216;s recently book, <a href="http://oreilly.com/catalog/9780596807733">Building Wireless Sensor Networks</a>, renewed my interest in using them in conjunction with <a href="http://www.zigbee.org/">ZigBee</a> radios, low power transmitter/receivers that are a perfect match to the Arduino philosophy. There are many <a href="http://arduino.cc/en/Main/ArduinoXbeeShield">ZigBee shields</a> that allow you to connect an Arduino board to the radio, and Fauldi&#8217;s book can walk you through not only that, but several example uses of increasing complexity.</p>
<p>In the weeks to come I&#8217;ll be documenting my own experiments.  Stay tuned!  </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jbgreer.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jbgreer.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jbgreer.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jbgreer.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jbgreer.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jbgreer.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jbgreer.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jbgreer.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jbgreer.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jbgreer.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jbgreer.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jbgreer.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jbgreer.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jbgreer.wordpress.com/35/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jbgreer.wordpress.com&amp;blog=1030810&amp;post=35&amp;subd=jbgreer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jbgreer.wordpress.com/2011/03/13/accessible-hardware-hacking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5181a4264adf8d287873d022e99a0777?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jbgreer</media:title>
		</media:content>
	</item>
		<item>
		<title>Erlang Remote Shells and Hot Swapping Code</title>
		<link>http://jbgreer.wordpress.com/2009/09/12/erlang-remote-shells-and-hot-swapping-code/</link>
		<comments>http://jbgreer.wordpress.com/2009/09/12/erlang-remote-shells-and-hot-swapping-code/#comments</comments>
		<pubDate>Sat, 12 Sep 2009 22:12:24 +0000</pubDate>
		<dc:creator>jbgreer</dc:creator>
				<category><![CDATA[functional]]></category>
		<category><![CDATA[programming languages]]></category>
		<category><![CDATA[erlang]]></category>

		<guid isPermaLink="false">http://jbgreer.wordpress.com/?p=10</guid>
		<description><![CDATA[Michael Hashimoto over at spawn_link is doing a wonderful service in providing examples of Erlang code.  One of his examples, Rules of Hot Code Swapping,  explains details behind one of the cooler features of the Erlang runtime &#8211; the ability to &#8220;hot swap&#8221;, that is change out executing code without stopping the service that using [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jbgreer.wordpress.com&amp;blog=1030810&amp;post=10&amp;subd=jbgreer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://mitchellhashimoto.com/">Michael Hashimoto</a> over at <a href="http://spawnlink.com/">spawn_link</a> is doing a wonderful service in providing examples of Erlang code.  One of his examples, <a href="http://spawnlink.com/articles/rules-of-hot-code-swapping/">Rules of Hot Code Swapping</a>,  explains details behind one of the cooler features of the Erlang runtime &#8211; the ability to &#8220;hot swap&#8221;, that is change out executing code without stopping the service that using it.  In doing so, he glosses over a few steps that a beginning Erlang programmer might need, so I&#8217;ve augmented his example with a few instructions that can help a novice get his example to work.  You can pull the example from my git repository  (git clone <a href="http://github.com/jbgreer/Erlang">git://github.com/jbgreer/Erlang.git</a>), where I&#8217;ve added these instructions as comments.</p>
<p>First, I assume that you&#8217;ve installed a fairly recent version of <a href="http://www.erlang.org/download.html">Erlang</a> and that erl and erlc are executable from your prompt.</p>
<ol>
<li>Edit hotswap.erl
<p>Bump the version number in <i>-define(VERSION, 3).</i></p>
<p>Edit the message in the <i>io:format</i> to something distinctive.
  </li>
<li>Compile the module
<p><code>erlc hotswap.erl</code>
  </li>
<li>Start a Erlang shell.  Here I set use two command-line options, sname and setcookie.  Sname sets the &#8220;shortname&#8221; of the node; setting the node&#8217;s name is necessary if I want to connect to it later (and we do, so we can update the code running in it).   Setcookie is a security mechanism used in connecting to nodes.  Setting it like this on the command-line is an unrecommended practice but necessary if you don&#8217;t have a <a href="http://www.erlang.org/doc/reference_manual/distributed.html">cookie file</a>.
<p>Note that the values for sname and the cookie are arbitrary.</p>
<p><code>erl -sname node1 -setcookie foo</code>
  </li>
<li>In the shell, start the server and test.  You should get a response back formatted according to your <i>io:format</i> line.  After you&#8217;ve tested this <b>do not exit the Erlang shell</b>.  We will use it again in a minute.
<p><code>Pid = hotswap:start().</code></p>
<p><code>Pid ! {echo, "foo"}.</code>
  </li>
<li>Open another command-line shell/terminal.</li>
<li>Repeat steps 1 &amp; 2.  Try to edit the <i>io:format</i> string to make it visually distinctive from the current value.</li>
<li>Connect to the current (remote) Erlang Shell.  It&#8217;s called a remote shell even it isn&#8217;t on another machine because it is running on a separate node.  By default, if you start an Erlang shell you&#8217;re starting a new node.
<p><code>erl -sname node2 -remsh node1@MACHINENAME -setcookie foo</code></p>
<p>where MACHINENAME should be replaced with your host&#8217;s name.
  </li>
<li>In the connected shell perform the code swap
<p><code>code:load_file(hotswap).</code>
  </li>
<li>Test the change in the original Erlang shell.  The first echo will likely show the existing message, while the second will show the new message.
<p><code>Pid ! {echo, "foo"}.</code></p>
<p><code> Pid ! {echo, "foo"}.</code>
  </li>
</ol>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jbgreer.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jbgreer.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jbgreer.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jbgreer.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jbgreer.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jbgreer.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jbgreer.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jbgreer.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jbgreer.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jbgreer.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jbgreer.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jbgreer.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jbgreer.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jbgreer.wordpress.com/10/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jbgreer.wordpress.com&amp;blog=1030810&amp;post=10&amp;subd=jbgreer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jbgreer.wordpress.com/2009/09/12/erlang-remote-shells-and-hot-swapping-code/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5181a4264adf8d287873d022e99a0777?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jbgreer</media:title>
		</media:content>
	</item>
		<item>
		<title>RESTlet and JSR-311</title>
		<link>http://jbgreer.wordpress.com/2008/03/11/restlet-and-jsr-311/</link>
		<comments>http://jbgreer.wordpress.com/2008/03/11/restlet-and-jsr-311/#comments</comments>
		<pubDate>Tue, 11 Mar 2008 23:39:44 +0000</pubDate>
		<dc:creator>jbgreer</dc:creator>
				<category><![CDATA[architecture]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[standards]]></category>

		<guid isPermaLink="false">http://jbgreer.wordpress.com/?p=7</guid>
		<description><![CDATA[Like many others I&#8217;ve been playing around with REST, an HTTP-based convention for performing CRUD calls against resources. One thing I&#8217;ve done is download RESTlet, a Java implementation of a REST framework. Of course, one concern in the tech world is that you&#8217;ll choose some approach only to discover that a competing technology disrupts the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jbgreer.wordpress.com&amp;blog=1030810&amp;post=7&amp;subd=jbgreer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Like many others I&#8217;ve been playing around with <a href="http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm" title="REST">REST</a>, an HTTP-based convention for performing CRUD calls against resources.  One thing I&#8217;ve done is download <a href="http://www.restlet.org" title="RESTlet">RESTlet</a>, a Java implementation of  a REST framework.  Of course, one concern in the tech world is that you&#8217;ll choose some approach only to discover that a competing technology disrupts the marketplace of ideas, or that an alternate approach becomes a standard.  In the case of Java and REST the proposed standard is <a href="https://jsr311.dev.java.net/" title="JSR-311">JSR-311</a>.  Looking back on it, I got lucky, in that I didn&#8217;t see any specific mention of JSR-311 on the RESTlet site, but I didn&#8217;t care: I was just playing around and wanted to see how light (or heavy) the framework was.   Today I serendipitously found a mention of RESTlet and JSR-311 on the Noelios site <a href="http://blog.noelios.com/2007/04/25/restlet-api-and-jsr-311-api/" title="here">here</a>.    If you&#8217;re looking for an example to get your feet wet, then try the RESTlet wiki, which has a short sample bit <a href="http://wiki.restlet.org/docs_1.1/g1/13-restlet/28-restlet/57-restlet.html" title="here">here</a>.</p>
<p>So, in the words of Bill Murray, it&#8217;s got that going for it.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jbgreer.wordpress.com/7/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jbgreer.wordpress.com/7/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jbgreer.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jbgreer.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jbgreer.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jbgreer.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jbgreer.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jbgreer.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jbgreer.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jbgreer.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jbgreer.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jbgreer.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jbgreer.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jbgreer.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jbgreer.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jbgreer.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jbgreer.wordpress.com&amp;blog=1030810&amp;post=7&amp;subd=jbgreer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jbgreer.wordpress.com/2008/03/11/restlet-and-jsr-311/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5181a4264adf8d287873d022e99a0777?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jbgreer</media:title>
		</media:content>
	</item>
		<item>
		<title>Paul Graham on Programming Language Design</title>
		<link>http://jbgreer.wordpress.com/2008/02/04/paul-graham-on-programming-language-design/</link>
		<comments>http://jbgreer.wordpress.com/2008/02/04/paul-graham-on-programming-language-design/#comments</comments>
		<pubDate>Mon, 04 Feb 2008 15:24:24 +0000</pubDate>
		<dc:creator>jbgreer</dc:creator>
				<category><![CDATA[programming languages]]></category>
		<category><![CDATA[arc]]></category>
		<category><![CDATA[language design]]></category>
		<category><![CDATA[lisp]]></category>
		<category><![CDATA[paul graham]]></category>
		<category><![CDATA[prolog]]></category>

		<guid isPermaLink="false">http://jbgreer.wordpress.com/?p=6</guid>
		<description><![CDATA[Some of you know that Paul Graham of ViaWeb/Yahoo Stores fame has released his work-to-date on Arc, his new Lisp dialect. The response has been underwhelming(!), so much so that he felt compelled to respond to some of his detractors. After waxing lyrical on the beauties of append in Prolog last week, though, it was [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jbgreer.wordpress.com&amp;blog=1030810&amp;post=6&amp;subd=jbgreer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Some of you know that <a href="http://www.paulgraham.com/bio.html">Paul Graham</a> of ViaWeb/Yahoo Stores fame has released his work-to-date on Arc, his new Lisp dialect.  The response has been underwhelming(!), so much so that he felt compelled to <a href="http://www.paulgraham.com/arcchallenge.html" target="_blank">respond</a> to some of his detractors.  After waxing lyrical on the beauties of append in Prolog last week, though, it was this paragraph that sank my battleship:</p>
<blockquote><p>&#8220;This is one reason the source code of Arc itself is so short, incidentally. I did the same thing to it. But my first priority was making applications shorter, not the language. There are features, most notably Prolog-style pattern-matching, that seem to promise great savings in length, but turn out only to be useful for writing a few basic sequence operations like append, remove, and so on. Prolog is a great language for writing append; after that it&#8217;s all downhill.&#8221;</p></blockquote>
<p>Ouch!  Still, his arguments make for a good read of language design motivation and issues.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jbgreer.wordpress.com/6/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jbgreer.wordpress.com/6/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jbgreer.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jbgreer.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jbgreer.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jbgreer.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jbgreer.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jbgreer.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jbgreer.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jbgreer.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jbgreer.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jbgreer.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jbgreer.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jbgreer.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jbgreer.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jbgreer.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jbgreer.wordpress.com&amp;blog=1030810&amp;post=6&amp;subd=jbgreer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jbgreer.wordpress.com/2008/02/04/paul-graham-on-programming-language-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5181a4264adf8d287873d022e99a0777?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jbgreer</media:title>
		</media:content>
	</item>
		<item>
		<title>Scala</title>
		<link>http://jbgreer.wordpress.com/2008/01/28/scala/</link>
		<comments>http://jbgreer.wordpress.com/2008/01/28/scala/#comments</comments>
		<pubDate>Mon, 28 Jan 2008 02:46:58 +0000</pubDate>
		<dc:creator>jbgreer</dc:creator>
				<category><![CDATA[programming languages]]></category>
		<category><![CDATA[scala code LaTeX]]></category>

		<guid isPermaLink="false">http://jbgreer.wordpress.com/?p=5</guid>
		<description><![CDATA[This is mainly a test to confirm that WordPress respects the pre tag such that I can post code snippets and that WordPress&#8217; functionality works. package fibonnaci; object RecursiveFibonnaci { // Fibonnacci using if/else. Note implicit return def fib(n: int): int = { if (n == 0) 0 else if (n == 1) 1 else [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jbgreer.wordpress.com&amp;blog=1030810&amp;post=5&amp;subd=jbgreer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This is mainly a test to confirm that WordPress respects the pre tag such that I can post code snippets and that WordPress&#8217; <img src='http://s0.wp.com/latex.php?latex=%5CLaTeX&amp;bg=ffffff&amp;fg=000&amp;s=0' alt='&#92;LaTeX' title='&#92;LaTeX' class='latex' /> functionality works.</p>
<pre>
package fibonnaci;

object RecursiveFibonnaci {

    // Fibonnacci using if/else.  Note implicit return
    def fib(n: int): int = {
        if (n == 0)  0
        else if (n == 1) 1
        else fib(n-2) + fib(n-1)
    };
}</pre>
<p>That&#8217;s a simple example of the Fibonnaci function <img src='http://s0.wp.com/latex.php?latex=f%28n%29+%3D+f%28n-2%29+%2B+f%28n-1%29&amp;bg=ffffff&amp;fg=000&amp;s=0' alt='f(n) = f(n-2) + f(n-1)' title='f(n) = f(n-2) + f(n-1)' class='latex' /> with <img src='http://s0.wp.com/latex.php?latex=f%280%29+%3D+0&amp;bg=ffffff&amp;fg=000&amp;s=0' alt='f(0) = 0' title='f(0) = 0' class='latex' /> and <img src='http://s0.wp.com/latex.php?latex=f%281%29+%3D+1&amp;bg=ffffff&amp;fg=000&amp;s=0' alt='f(1) = 1' title='f(1) = 1' class='latex' />.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jbgreer.wordpress.com/5/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jbgreer.wordpress.com/5/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jbgreer.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jbgreer.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jbgreer.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jbgreer.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jbgreer.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jbgreer.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jbgreer.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jbgreer.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jbgreer.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jbgreer.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jbgreer.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jbgreer.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jbgreer.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jbgreer.wordpress.com/5/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jbgreer.wordpress.com&amp;blog=1030810&amp;post=5&amp;subd=jbgreer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jbgreer.wordpress.com/2008/01/28/scala/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5181a4264adf8d287873d022e99a0777?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jbgreer</media:title>
		</media:content>
	</item>
	</channel>
</rss>
