<?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>programming musings</title>
	<atom:link href="http://programming-musings.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://programming-musings.org</link>
	<description>random thoughts on programming and programming languages</description>
	<lastBuildDate>Tue, 03 Jan 2012 13:43:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='programming-musings.org' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>programming musings</title>
		<link>http://programming-musings.org</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://programming-musings.org/osd.xml" title="programming musings" />
	<atom:link rel='hub' href='http://programming-musings.org/?pushpress=hub'/>
		<item>
		<title>2010 in review</title>
		<link>http://programming-musings.org/2011/01/02/2010-in-review/</link>
		<comments>http://programming-musings.org/2011/01/02/2010-in-review/#comments</comments>
		<pubDate>Sun, 02 Jan 2011 17:04:12 +0000</pubDate>
		<dc:creator>jao</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://programming-musings.org/?p=382</guid>
		<description><![CDATA[This blog was viewed about 41,000 times in 2010.There were 7 new posts, growing the total archive of this blog to 148 posts. These are the posts and pages that got the most views in 2010. 1 A Haskell bookshelf March 2006 7 comments 2 A Scheme bookshelf January 2007 18 comments 3 Scheme lectures, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=programming-musings.org&amp;blog=59048&amp;post=382&amp;subd=jaortega&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This blog was viewed about <strong>41,000</strong> times in 2010.There were <strong>7</strong> new posts, growing the total archive of this blog to 148 posts.</p>
<p>These are the posts and pages that got the most views in 2010.</p>
<div style="clear:left;float:left;font-size:24pt;line-height:1em;margin:-5px 10px 20px 0;">1</div>
<p><a style="margin-right:10px;" href="http://programming-musings.org/2006/03/28/a-haskell-bookshelf/">A Haskell bookshelf</a> <span style="color:#999;font-size:8pt;">March 2006</span><br />
7 comments</p>
<div style="clear:left;float:left;font-size:24pt;line-height:1em;margin:-5px 10px 20px 0;">2</div>
<p><a style="margin-right:10px;" href="http://programming-musings.org/2007/01/31/a-scheme-bookshelf/">A Scheme bookshelf</a> <span style="color:#999;font-size:8pt;">January 2007</span><br />
18 comments</p>
<div style="clear:left;float:left;font-size:24pt;line-height:1em;margin:-5px 10px 20px 0;">3</div>
<p><a style="margin-right:10px;" href="http://programming-musings.org/2009/12/23/scheme-lectures-mostly/">Scheme lectures, mostly</a> <span style="color:#999;font-size:8pt;">December 2009</span><br />
7 comments</p>
<div style="clear:left;float:left;font-size:24pt;line-height:1em;margin:-5px 10px 20px 0;">4</div>
<p><a style="margin-right:10px;" href="http://programming-musings.org/2006/03/17/programmers-go-bananas/">Programmers go bananas</a> <span style="color:#999;font-size:8pt;">March 2006</span><br />
23 comments</p>
<div style="clear:left;float:left;font-size:24pt;line-height:1em;margin:-5px 10px 20px 0;">5</div>
<p><a style="margin-right:10px;" href="http://programming-musings.org/2009/05/14/geiser/">Geiser</a> <span style="color:#999;font-size:8pt;">May 2009</span><br />
35 comments</p>
<br />Filed under: <a href='http://programming-musings.org/category/programming/'>Programming</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jaortega.wordpress.com/382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jaortega.wordpress.com/382/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jaortega.wordpress.com/382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jaortega.wordpress.com/382/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jaortega.wordpress.com/382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jaortega.wordpress.com/382/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jaortega.wordpress.com/382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jaortega.wordpress.com/382/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jaortega.wordpress.com/382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jaortega.wordpress.com/382/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jaortega.wordpress.com/382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jaortega.wordpress.com/382/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jaortega.wordpress.com/382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jaortega.wordpress.com/382/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=programming-musings.org&amp;blog=59048&amp;post=382&amp;subd=jaortega&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://programming-musings.org/2011/01/02/2010-in-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7c022bc33898f25040a60cc441561c25?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">jaortega</media:title>
		</media:content>
	</item>
		<item>
		<title>The lord of the Lambdas redux</title>
		<link>http://programming-musings.org/2010/12/19/the-lord-of-the-lambdas-redux/</link>
		<comments>http://programming-musings.org/2010/12/19/the-lord-of-the-lambdas-redux/#comments</comments>
		<pubDate>Sun, 19 Dec 2010 21:12:10 +0000</pubDate>
		<dc:creator>jao</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://programming-musings.org/?p=372</guid>
		<description><![CDATA[From R2RS: Data and procedures and the values they amass, Higher-order functions to combine and mix and match, Objects with their local state, the messages they pass, A property, a package, the control point for a catch&#8211; In the Lambda Order they are all first-class. One Thing to name them all, One Thing to define [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=programming-musings.org&amp;blog=59048&amp;post=372&amp;subd=jaortega&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>From <a href="http://scheme-punks.org/wiki/index.php?title=Scheme_Standards#R2RS">R2RS</a>:</p>
<blockquote><p>
Data and procedures and the values they amass,<br />
Higher-order functions to combine and mix and match,<br />
Objects with their local state, the messages they pass,<br />
A property, a package, the control point for a catch&#8211;<br />
In the Lambda Order they are all first-class.<br />
One Thing to name them all, One Thing to define them,<br />
One Thing to place them in environments and bind them,<br />
In the Lambda order they are all first-class.
</p></blockquote>
<p>(Hat tip Mark H Weaver over at guile-devel)</p>
<br />Filed under: <a href='http://programming-musings.org/category/programming/'>Programming</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jaortega.wordpress.com/372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jaortega.wordpress.com/372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jaortega.wordpress.com/372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jaortega.wordpress.com/372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jaortega.wordpress.com/372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jaortega.wordpress.com/372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jaortega.wordpress.com/372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jaortega.wordpress.com/372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jaortega.wordpress.com/372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jaortega.wordpress.com/372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jaortega.wordpress.com/372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jaortega.wordpress.com/372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jaortega.wordpress.com/372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jaortega.wordpress.com/372/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=programming-musings.org&amp;blog=59048&amp;post=372&amp;subd=jaortega&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://programming-musings.org/2010/12/19/the-lord-of-the-lambdas-redux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7c022bc33898f25040a60cc441561c25?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">jaortega</media:title>
		</media:content>
	</item>
		<item>
		<title>At the workshop</title>
		<link>http://programming-musings.org/2010/08/23/at-the-workshop/</link>
		<comments>http://programming-musings.org/2010/08/23/at-the-workshop/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 06:31:03 +0000</pubDate>
		<dc:creator>jao</dc:creator>
				<category><![CDATA[Scheme]]></category>

		<guid isPermaLink="false">http://programming-musings.org/?p=363</guid>
		<description><![CDATA[I just came back from the Scheme and Functional Programming Workshop at Montréal, hosted by Marc Feeley and an excellent organisation team. It&#8217;s been a fun couple of days putting faces to emails and IRC nicks and attending a handful of pretty interesting talks. Here&#8217;s a quick report. My favourites were the two invited papers. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=programming-musings.org&amp;blog=59048&amp;post=363&amp;subd=jaortega&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.iro.umontreal.ca/~sfp2010/"><img class="alignleft" style="margin:5px;" title="SFP2010" src="http://www.iro.umontreal.ca/~sfp2010/logo.png" alt="" width="150" height="150" /></a>I just came back from the<a href="http://www.iro.umontreal.ca/~sfp2010"> Scheme and Functional Programming Workshop</a> at Montréal, hosted by Marc Feeley and an excellent organisation team. It&#8217;s been a fun couple of days putting faces to emails and IRC nicks and attending a handful of pretty interesting talks. Here&#8217;s a quick report.</p>
<p>My favourites were the two invited papers. The first day, Olin Shivers presented a pretty cool hack in a delicious talk consisting in actually writing the code he was explaining. Under the title <i>Eager parsing and user interaction with call/cc</i>, he showed us how call/cc is not just an academic toy, but can be put to good use in writing a self-correcting reader for s-expressions on top of the host scheme <code>read</code> (or any other parser, for that matter). He started from the very basics, explaining how input handling and buffering is usually delegated to the terminal driver, which offers a rather dumb, line-oriented service. Wouldn&#8217;t it be nice if, as soon as you typed an invalid character (say, a misplaced close paren) the reader complained, before waiting for the whole line to be submitted to <code>read</code>? Well, all we need to do is to implement the input driver in scheme, and he proceeded to show us how. As you know, reading s-expressions is a recursive task, meaning that when you detect invalid input in the middle of a partial s-expression, or want to delete a character, you might find yourself somewhere deep inside a stack of recursive calls and you&#8217;ll need to backtrack to a previous checkpoint. That&#8217;s an almost canonical use case for <code>call/cc</code>, provided you use it intelligently. Let me tell you that Olin is quite capable of using <code>call/cc</code> as it&#8217;s meant to be used, as he immediately demonstrated. I&#8217;m skipping the details in the hope that a paper will be available any time soon. As i mentioned, his talk was a beautiful example of live coding: he showed us the skeleton of the implementation and filled it up as he explained how it should work. Olin does know how to write good code, and it was a pleasure (and a lesson) seeing him doing just that. It was all so schemish: a terminal and emacs in the venerable twm: that&#8217;s all you need to create beauty.</p>
<p>The second invited talk was by Robby Findler, who gave us a tour of Racket&#8217;s contract system, how to use it and the subtleties of implementing it properly. The basic idea dates back to Meyer&#8217;s <i>design by contract</i> methodology of the early nineties, and was subsequently explored further by several authors, including Robby. Simple as they sound at first sight, good contracts are not trivial to implement. For instance, it&#8217;s vital to assign blame where&#8217;s blame is due, and Robby gave examples of how tricky that can get (and how Racket&#8217;s contracts do the right thing). Another subtlety arises when you try to write contracts assessing a property of an input data structure (say, you want to ensure that an argument is actually a binary search tree). The problem here is that checking the contract can alter the asymptotic complexity of the wrapped function (e.g., you can go from O(log n) to O(n) in a lookup, an exponential degradation). Racket provides an ingenious fix for that problem, by means of lazy contracts that are checked as the input is traversed by the &#8220;real&#8221; function.</p>
<p>There was also real-time scheme in Robby&#8217;s talk, although in a much more sophisticated way, thanks to Slideshow&#8217;s magic, which lets you embed code files and snippets in a presentation, evaluate them and show the results in the same or a new slide. Very elegant. He also used DrRacket a bit during the introductory part of his talk, and i&#8217;m starting to understand why some people are so happy with Racket&#8217;s IDE: it definitely felt, in his hands, professional and productive. And also kind of fun.</p>
<p>There were also lightning talks. I&#8217;m of course biased, but the one i enjoyed most was Andy Wingo&#8217;s <i>Guile is OK!</i>, where he showed us how Guile has overcome the problems, perceptual and real, of its first dozen years. For instance, he reminded us how Guile was traditionally a &#8220;defmacro scheme&#8221;, and he himself a &#8220;defmacro guy&#8221;&#8230; until he studied in earnest Dyvbig&#8217;s work and ported his syntax-case implementation to Guile, to become a &#8220;syntax-case man&#8221; as Guile gained full syntax-case support (i hope i&#8217;ll reach that nirvana some day; i still find syntax-case too complex and plagued by unintuitive corner cases (one of them was showed by Aaron Hsu in another lightning talk, where apparently none of us was able to correctly interpret 10 lines of scheme) that make me uneasy; but that&#8217;s surely just ignorance on my part). There are many other things that make Guile a respectable citizen of the Scheme Underground, which were also listed in Andy&#8217;s talk: i&#8217;ll ask him for a PDF, but in the meantime you can just try Guile and see :).</p>
<p>Although this time we didn&#8217;t have a talk by Will Clinger, to me it&#8217;s always a pleasure to listen to what he has to say, even if only as comments to other people&#8217;s talks. For instance, i enjoyed his introduction to Alex Shinn&#8217;s R7RS progress report. Will showed us three one dollar coins, of the same size and shape, but different, as he described, in almost everything else. And yet, all three were useful and recognised as (invalid) dollars by the Canadian vending machines at the entrance. He thinks that says something about standards, but he left to us to decide exactly what.</p>
<p>Finally, let me mention that this workshop has alleviated all my quibbles with what i&#8217;ve sometimes perceived as a fragmented, almost dysfunctional, community, made up of separate factions following their own path in relative isolation. My feeling during the workshop was nothing of the sort; rather, i&#8217;m back with the conviction that there&#8217;s much more uniting us that breaking us apart, and that there&#8217;s such a thing as a scheme underground ready to take over the world. Some day.</p>
<br />Filed under: <a href='http://programming-musings.org/category/scheme/'>Scheme</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jaortega.wordpress.com/363/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jaortega.wordpress.com/363/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jaortega.wordpress.com/363/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jaortega.wordpress.com/363/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jaortega.wordpress.com/363/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jaortega.wordpress.com/363/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jaortega.wordpress.com/363/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jaortega.wordpress.com/363/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jaortega.wordpress.com/363/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jaortega.wordpress.com/363/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jaortega.wordpress.com/363/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jaortega.wordpress.com/363/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jaortega.wordpress.com/363/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jaortega.wordpress.com/363/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=programming-musings.org&amp;blog=59048&amp;post=363&amp;subd=jaortega&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://programming-musings.org/2010/08/23/at-the-workshop/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7c022bc33898f25040a60cc441561c25?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">jaortega</media:title>
		</media:content>

		<media:content url="http://www.iro.umontreal.ca/~sfp2010/logo.png" medium="image">
			<media:title type="html">SFP2010</media:title>
		</media:content>
	</item>
		<item>
		<title>Censorzilla</title>
		<link>http://programming-musings.org/2010/08/11/censorzilla/</link>
		<comments>http://programming-musings.org/2010/08/11/censorzilla/#comments</comments>
		<pubDate>Wed, 11 Aug 2010 14:00:32 +0000</pubDate>
		<dc:creator>jao</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://programming-musings.org/?p=360</guid>
		<description><![CDATA[I guess this is old hat for most of you, but, anyway, here&#8216;s a mildly amusing page by Jamie Zawinski (he of the amusing homepage) on the &#8220;sanitization&#8221; process that Netscape&#8217;s code suffered prior to its release. Says Jamie: When we created mozilla.org and released (most of) the source code to Netscape Confusicator 4.x, Netscape&#8217;s [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=programming-musings.org&amp;blog=59048&amp;post=360&amp;subd=jaortega&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I guess this is old hat for most of you, but, anyway, <a href="http://www.jwz.org/doc/censorzilla.html">here</a>&#8216;s a mildly amusing page by Jamie Zawinski (he of the amusing <a href="http://www.jwz.org/">homepage</a>) on the &#8220;sanitization&#8221; process that Netscape&#8217;s code suffered prior to its release. Says Jamie:</p>
<blockquote><p>
When we created mozilla.org and released (most of) the source code to Netscape Confusicator 4.x, Netscape&#8217;s lawyers made us go through a big &#8220;sanitization&#8221; process on the source code. [...] they also made us take out all the dirty words. Specifically, &#8220;any text containing vulgar or offensive words or expressions; any text that might be slanderous or libelous to individuals and/or institutions.&#8221;
</p></blockquote>
<p>There follows a list of heavy swearing code snippets and comments. Strikingly, one of the censored words is <b>hack</b>. WTF?</p>
<br />Filed under: <a href='http://programming-musings.org/category/programming/'>Programming</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jaortega.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jaortega.wordpress.com/360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jaortega.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jaortega.wordpress.com/360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jaortega.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jaortega.wordpress.com/360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jaortega.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jaortega.wordpress.com/360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jaortega.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jaortega.wordpress.com/360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jaortega.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jaortega.wordpress.com/360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jaortega.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jaortega.wordpress.com/360/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=programming-musings.org&amp;blog=59048&amp;post=360&amp;subd=jaortega&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://programming-musings.org/2010/08/11/censorzilla/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7c022bc33898f25040a60cc441561c25?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">jaortega</media:title>
		</media:content>
	</item>
		<item>
		<title>Tim Daly on Lisp</title>
		<link>http://programming-musings.org/2010/08/06/tim-daly-on-lisp/</link>
		<comments>http://programming-musings.org/2010/08/06/tim-daly-on-lisp/#comments</comments>
		<pubDate>Fri, 06 Aug 2010 01:21:27 +0000</pubDate>
		<dc:creator>jao</dc:creator>
				<category><![CDATA[Common Lisp]]></category>
		<category><![CDATA[Lisp]]></category>

		<guid isPermaLink="false">http://programming-musings.org/?p=357</guid>
		<description><![CDATA[Tim Daly, Axiom&#8217;s lead developer, has a couple of things to say about building large applications in Lisp and on picking a language: Measure your OODA loop [observe, orient, decide and act loop] in all the languages you know. See which one cycles fastest. I&#8217;d bet that&#8217;s your favorite language. I also happen to like [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=programming-musings.org&amp;blog=59048&amp;post=357&amp;subd=jaortega&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Tim Daly, <a href="http://www.axiom-developer.org/">Axiom&#8217;s</a> lead developer, has a couple of things to say about <a href="http://article.gmane.org/gmane.comp.java.clojure.user/34269">building large applications in Lisp</a> and on <a href="http://article.gmane.org/gmane.comp.java.clojure.user/34272">picking a language</a>:</p>
<blockquote><p>Measure your <a href="http://en.wikipedia.org/wiki/OODA_loop">OODA loop</a> [observe, orient, decide and act loop] in all the languages you know. See which one cycles fastest. I&#8217;d bet that&#8217;s your favorite language.
</p></blockquote>
<p>I also happen to like the movies he recommends ;-)</p>
<br />Filed under: <a href='http://programming-musings.org/category/common-lisp/'>Common Lisp</a>, <a href='http://programming-musings.org/category/lisp/'>Lisp</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jaortega.wordpress.com/357/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jaortega.wordpress.com/357/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jaortega.wordpress.com/357/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jaortega.wordpress.com/357/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jaortega.wordpress.com/357/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jaortega.wordpress.com/357/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jaortega.wordpress.com/357/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jaortega.wordpress.com/357/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jaortega.wordpress.com/357/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jaortega.wordpress.com/357/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jaortega.wordpress.com/357/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jaortega.wordpress.com/357/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jaortega.wordpress.com/357/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jaortega.wordpress.com/357/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=programming-musings.org&amp;blog=59048&amp;post=357&amp;subd=jaortega&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://programming-musings.org/2010/08/06/tim-daly-on-lisp/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7c022bc33898f25040a60cc441561c25?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">jaortega</media:title>
		</media:content>
	</item>
		<item>
		<title>Patent stupidity</title>
		<link>http://programming-musings.org/2010/04/16/patent-stupidity/</link>
		<comments>http://programming-musings.org/2010/04/16/patent-stupidity/#comments</comments>
		<pubDate>Fri, 16 Apr 2010 21:03:02 +0000</pubDate>
		<dc:creator>jao</dc:creator>
				<category><![CDATA[Artificial Intelligence]]></category>

		<guid isPermaLink="false">http://programming-musings.org/?p=351</guid>
		<description><![CDATA[This patent made me wonder what kind of people is running the US Patent Office. This one dispelled all my doubts. Update: See also Patent Absurdity for a 30 min video where Eben Moglen, Karen Sandler and others talk about the history and present of software patents. Filed under: Artificial Intelligence<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=programming-musings.org&amp;blog=59048&amp;post=351&amp;subd=jaortega&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&amp;Sect2=HITOFF&amp;d=PALL&amp;p=1&amp;u=%2Fnetahtml%2FPTO%2Fsrchnum.htm&amp;r=1&amp;f=G&amp;l=50&amp;s1=7120900.PN.&amp;OS=PN/7120900&amp;RS=PN/7120900">This patent</a> made me wonder what kind of people is running the US Patent Office. <a href="http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&amp;Sect2=HITOFF&amp;d=PALL&amp;p=1&amp;u=%2Fnetahtml%2FPTO%2Fsrchnum.htm&amp;r=1&amp;f=G&amp;l=50&amp;s1=6,368,227.PN.&amp;OS=PN/6,368,227&amp;RS=PN/6,368,227">This one</a> dispelled all my doubts.</p>
<p><b>Update</b>: See also <a href="http://patentabsurdity.com/">Patent Absurdity</a> for a 30 min video where Eben Moglen, Karen Sandler and others talk about the history and present of software patents.</p>
<br />Filed under: <a href='http://programming-musings.org/category/artificial-intelligence/'>Artificial Intelligence</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jaortega.wordpress.com/351/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jaortega.wordpress.com/351/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jaortega.wordpress.com/351/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jaortega.wordpress.com/351/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jaortega.wordpress.com/351/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jaortega.wordpress.com/351/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jaortega.wordpress.com/351/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jaortega.wordpress.com/351/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jaortega.wordpress.com/351/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jaortega.wordpress.com/351/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jaortega.wordpress.com/351/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jaortega.wordpress.com/351/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jaortega.wordpress.com/351/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jaortega.wordpress.com/351/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=programming-musings.org&amp;blog=59048&amp;post=351&amp;subd=jaortega&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://programming-musings.org/2010/04/16/patent-stupidity/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7c022bc33898f25040a60cc441561c25?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">jaortega</media:title>
		</media:content>
	</item>
		<item>
		<title>The greatest program ever written</title>
		<link>http://programming-musings.org/2010/01/08/the-greatest-program-ever-written/</link>
		<comments>http://programming-musings.org/2010/01/08/the-greatest-program-ever-written/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 03:05:41 +0000</pubDate>
		<dc:creator>jao</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://programming-musings.org/?p=339</guid>
		<description><![CDATA[I&#8217;ve just stumbled upon (via a post in John Cook&#8217;s blog) an old article back at kuro5hin entitled the greatest program ever written. It describes 1k chess on the ZX81, a program capable of playing chess on the Sinclair ZX81, a computer endowed with a total memory of 1024 bytes, and written by David Horne. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=programming-musings.org&amp;blog=59048&amp;post=339&amp;subd=jaortega&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://users.ox.ac.uk/~uzdm0006/scans/1kchess/"><img alt="" src="http://users.ox.ac.uk/~uzdm0006/scans/1kchess/chess10a.gif" title="1k Chess" class="alignleft" width="261" height="185" /></a>I&#8217;ve just stumbled upon (via <a href="http://www.johndcook.com/blog/2010/01/07/weekend-miscellany-20/">a post</a> in John Cook&#8217;s blog) an old article back at kuro5hin entitled <a href="http://www.kuro5hin.org/story/2001/8/10/12620/2164">the greatest program ever written</a>. It describes <em>1k chess on the ZX81</em>, a program capable of playing chess on the <a href="http://en.wikipedia.org/wiki/ZX81">Sinclair ZX81</a>, a computer endowed with a total memory of 1024 <em>bytes</em>, and written by David Horne. I didn&#8217;t believe it either, until i <a href="http://users.ox.ac.uk/~uzdm0006/scans/1kchess/">saw it by myself</a>. Kids these days!</p>
<p><b>Update:</b>I&#8217;ve just learnt, thanks to a comment below, that there&#8217;s actually an earlier chess program, written by Peter Jennings, of similar characteristics: <a href="http://www.benlo.com/microchess/microchess.html">Microchess</a> for the <a href="http://www.benlo.com/microchess/microchess2.html">Kim-1 computer</a>. The linked webpages contain lots of information about the program, including listings. Pretty fun stuff.</p>
<br />Posted in Programming  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jaortega.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jaortega.wordpress.com/339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jaortega.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jaortega.wordpress.com/339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jaortega.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jaortega.wordpress.com/339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jaortega.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jaortega.wordpress.com/339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jaortega.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jaortega.wordpress.com/339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jaortega.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jaortega.wordpress.com/339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jaortega.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jaortega.wordpress.com/339/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=programming-musings.org&amp;blog=59048&amp;post=339&amp;subd=jaortega&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://programming-musings.org/2010/01/08/the-greatest-program-ever-written/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7c022bc33898f25040a60cc441561c25?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">jaortega</media:title>
		</media:content>

		<media:content url="http://users.ox.ac.uk/~uzdm0006/scans/1kchess/chess10a.gif" medium="image">
			<media:title type="html">1k Chess</media:title>
		</media:content>
	</item>
		<item>
		<title>Anniversary</title>
		<link>http://programming-musings.org/2010/01/06/anniversary/</link>
		<comments>http://programming-musings.org/2010/01/06/anniversary/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 22:30:46 +0000</pubDate>
		<dc:creator>jao</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://programming-musings.org/?p=335</guid>
		<description><![CDATA[Today is the anniversary of programming musings: it&#8217;s been 4 years, 141 posts, 429 comments and almost 300,000 visits since i wrote my first post. A drop in the web ocean, i know, but enough to make waves in my local pond, and much more than i expected. These are the twelve most visited entries [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=programming-musings.org&amp;blog=59048&amp;post=335&amp;subd=jaortega&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Today is the anniversary of programming musings: it&#8217;s been 4 years, 141 posts, 429 comments and almost 300,000 visits since i wrote my first post. A drop in the web ocean, i know, but enough to make waves in my local pond, and much more than i expected. These are the twelve most visited entries so far:</p>
<ul>
<li><a href="/2006/03/28/a-haskell-bookshelf/">A Haskell bookshelf</a></li>
<li><a href="/2006/03/17/programmers-go-bananas/">Programmers go bananas</a></li>
<li><a href="/2007/01/31/a-scheme-bookshelf/">A Scheme bookshelf</a></li>
<li><a href="/2006/02/05/beyond-mainstream-object-oriented-programming/">Beyond mainstream object-oriented programming</a></li>
<li><a href="/2006/10/13/the-object-oriented-cake/">The object-oriented cake</a></li>
<li><a href="/2007/07/10/erlang-now/">Erlang Now!</a></li>
<li><a href="/2008/07/21/vintage-clos/">Vintage CLOS</a></li>
<li><a href="2007/05/14/erlang-termite-and-a-blog/">Erlang, Termite and a blog</a></li>
<li><a href="/2006/02/12/continuation-kata/">Continuation kata</a></li>
<li><a href="/2009/06/20/heres-to-andy/">Here&#8217;s to Andy</a></li>
<li><a href="/2007/02/12/reinventing-programming/">Reinventing programming</a></li>
<li><a href="/2006/01/14/the-joy-of-repl/">The joy of REPL</a></li>
</ul>
<p>Thanks!</p>
<br />Posted in Programming  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jaortega.wordpress.com/335/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jaortega.wordpress.com/335/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jaortega.wordpress.com/335/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jaortega.wordpress.com/335/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jaortega.wordpress.com/335/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jaortega.wordpress.com/335/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jaortega.wordpress.com/335/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jaortega.wordpress.com/335/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jaortega.wordpress.com/335/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jaortega.wordpress.com/335/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jaortega.wordpress.com/335/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jaortega.wordpress.com/335/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jaortega.wordpress.com/335/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jaortega.wordpress.com/335/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=programming-musings.org&amp;blog=59048&amp;post=335&amp;subd=jaortega&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://programming-musings.org/2010/01/06/anniversary/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7c022bc33898f25040a60cc441561c25?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">jaortega</media:title>
		</media:content>
	</item>
		<item>
		<title>SICP distilled</title>
		<link>http://programming-musings.org/2009/12/29/sicp-distilled/</link>
		<comments>http://programming-musings.org/2009/12/29/sicp-distilled/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 02:36:40 +0000</pubDate>
		<dc:creator>jao</dc:creator>
				<category><![CDATA[Lisp]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Scheme]]></category>

		<guid isPermaLink="false">http://programming-musings.org/?p=330</guid>
		<description><![CDATA[If you&#8217;re still thinking about reading SICP, here&#8217;s an article, written by Abelson and Sussman shortly after publishing the first edition of the book, that may dispel your doubts: Lisp: A language for stratified design. It&#8217;s a quick distillation of some of the central themes discussed at length in SICP, with accompanying code. Some of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=programming-musings.org&amp;blog=59048&amp;post=330&amp;subd=jaortega&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re still thinking about reading SICP, here&#8217;s an article, written by Abelson and Sussman shortly after publishing the first edition of the book, that may dispel your doubts: <a href="http://dspace.mit.edu/bitstream/1721.1/6064/2/AIM-986.pdf">Lisp: A language for stratified design</a>. It&#8217;s a quick distillation of some of the central themes discussed at length in SICP, with accompanying code. Some of them may seem old hat these days (the article was published in 1987), but they&#8217;re as relevant as they were back in the day, and it&#8217;s difficult to find them exposed in as good (let alone a better) a way. Its dozen pages are full of quotable pearls of wisdom. For instance, right from the start:</p>
<blockquote><p>
Just as every day thoughts are expressed in natural language, and formal deductions are expressed in mathematical language, methodological thoughts are expressed in programming languages. A programming language is a method for communicating methods, not just a means for getting a computer to perform operations&#8211;programs are written for people to read as much as they are written for machines to execute.
</p></blockquote>
<p>and later on</p>
<blockquote><p>
[...]if a methodology is to be robust, it must have more generality than is needed for the particular application. The means for combining the parts must allow for after-the-fact changes in the design plan as bugs are discovered and as requirements change. It must be easy to substitute parts for one another and to vary the arrangement by which parts are combined
</p></blockquote>
<p>The examples include Henderson&#8217;s <a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_sec_2.2.4">picture language</a>, which motivates a discussion of metalinguistic abstraction (or DSLs, as rediscovered these days):</p>
<blockquote><p>
Part of the wonder of computation is that we have the freedom to change the framework by which the descriptions of processes are combined. If we can precisely describe a system in any well-defined notation, then we can build an interpreter to executed programs expressed in the new notation, or we can build a compiler to translate programs expressed in the new notation into any other programming language.
</p></blockquote>
<p>There&#8217;s also a synopsis of the implementation, in Scheme, of a rule language geared at simplifying algebraic expressions, and the accompanying interpreter. The conclusion is that you want to write languages and interpreters, in <a href="http://www.lisperati.com/landoflisp/panel01.html">a variety of paradigms</a>; and that you probably want to write them using Lisp:</p>
<blockquote><p>
The truth is that Lisp is not the right language for any particular problem. Rather, Lisp encourages one to attack a new problem by implementing new languages tailored to that problem. Such a language might embody an alternative computational paradigm [...] A linguistic approach to design is an essential aspect not only of programming but of engineering design in general. Perhaps that is why Lisp [...] still seems new and adaptable, and continues to accommodate current ideas about programming methodology.
</p></blockquote>
<p>As true today as it was twenty odd years ago, if you ask me.</p>
<br />Posted in Lisp, Programming, Scheme  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jaortega.wordpress.com/330/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jaortega.wordpress.com/330/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jaortega.wordpress.com/330/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jaortega.wordpress.com/330/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jaortega.wordpress.com/330/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jaortega.wordpress.com/330/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jaortega.wordpress.com/330/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jaortega.wordpress.com/330/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jaortega.wordpress.com/330/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jaortega.wordpress.com/330/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jaortega.wordpress.com/330/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jaortega.wordpress.com/330/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jaortega.wordpress.com/330/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jaortega.wordpress.com/330/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=programming-musings.org&amp;blog=59048&amp;post=330&amp;subd=jaortega&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://programming-musings.org/2009/12/29/sicp-distilled/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7c022bc33898f25040a60cc441561c25?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">jaortega</media:title>
		</media:content>
	</item>
		<item>
		<title>Scheme lectures, mostly</title>
		<link>http://programming-musings.org/2009/12/23/scheme-lectures-mostly/</link>
		<comments>http://programming-musings.org/2009/12/23/scheme-lectures-mostly/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 23:32:24 +0000</pubDate>
		<dc:creator>jao</dc:creator>
				<category><![CDATA[Scheme]]></category>

		<guid isPermaLink="false">http://programming-musings.org/?p=295</guid>
		<description><![CDATA[Here&#8217;s a list of (mostly) scheme video lectures, based on the links posted in this thread of the PLT mailing list, with some extra bits taken from my own collection: SICP lectures by Abelson and Sussman (see also here for more lightweight versions), still my all-time favourite lecture series on any field. Also based on [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=programming-musings.org&amp;blog=59048&amp;post=295&amp;subd=jaortega&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a list of (mostly) scheme video lectures, based on the links posted in <a href="http://groups.google.com/group/plt-scheme/browse_thread/thread/eea3b96bd0fd397a">this thread</a> of the PLT mailing list, with some extra bits taken from my own collection:</p>
<ul>
<li><a href="http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/">SICP lectures</a> by Abelson and Sussman (see also <a href="http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-001Spring-2005/VideoLectures/index.htm">here</a> for more lightweight versions), still my all-time favourite lecture series on any field.
</li>
<li>Also based on SICP, <a href="http://webcast.berkeley.edu/course_details_new.php?seriesid=2009-D-26266&amp;semesterid=2009-D">Brian Harvey&#8217;s course on UCB</a> is quite fun (and, while you&#8217;re at it, you may find interesting <a href="http://webcast.berkeley.edu/courses.php">other UCB courses</a> too). And <a href="http://aduni.org/courses/sicp/index.php?view=cw">the ADU course</a> comes with lots of additional notes and materials, although i&#8217;ve only skimmed over it and i don&#8217;t really know how good it is. But let me tell you that, if it&#8217;s as good as <a href="http://web.stonehill.edu/compsci/shai.htm">Shai Simonson</a>&#8216;s course on <a href="http://aduni.org/courses/theory/index.php?view=cw">Theory of computation</a>, it&#8217;s probably worth your time.
</li>
<li>All videos from this year&#8217;s ICFP are <a href="http://www.vimeo.com/album/126865">available online</a>. Among them, one can find Jay McCarthy&#8217;s talk on <a href="http://www.vimeo.com/6627041">RESTful webapps in Scheme</a> using serializable continuations; Matthew Flatt on PLT&#8217;s <a href="http://www.vimeo.com/6630691">Scribble documentation system</a>; Matthias Felleisen on how he and his collaborators are <a href="http://www.vimeo.com/6631514">using purely functional programming</a> for teaching kids and making them have fun; and Ralf Hinze&#8217;s <a href="http://www.vimeo.com/6653485">La Tour D’Hanoï</a>, which is not about scheme but is a pearl anyway (as is Ryan Newton&#8217;s report on how he used functional programming to <a href="http://www.vimeo.com/6654466">implement an embedded bird detector</a> via a parallel DSL with some metaprogramming for a good measure).
</li>
<li>During the latest <a href="http://www.gnu.org/ghm/2009/">GNU Hackers meeting</a>, <a href="http://wingolog.org">Andy Wingo</a> talked about <a href="http://www.gnu.org/ghm/2009/torrents/ghm2009-wingo-small.ogg.torrent">recent developments on Guile</a> (bittorrent file).
</li>
<li>Robby Findler on <em>Why macros matter</em> is a little nice introduction on how one can use macros not only in cases that lazy languages handle gracefully, but, more importantly, as a full-fledged language definition device.
<p><span style="text-align:center; display: block;"><a href="http://programming-musings.org/2009/12/23/scheme-lectures-mostly/"><img src="http://img.youtube.com/vi/GBpfOpk-ZBU/2.jpg" alt="" /></a></span>
</li>
<li>A clip featuring <a href="http://www.cs.brown.edu/~sk/">Shriram Khrisnamurthi</a>,  where he introduces <a href="http://www.wescheme.org">WeScheme</a>, a pretty interesting <em>scheme-in-a-browser</em> environment based on PLT&#8217;s Moby platform, which Shriram <a href="http://www.international-lisp-conference.org/2009/speakers#krishnamurthi_shriram"> presented</a> at the latest ILC; although there&#8217;s no video of that talk available, you can get the slides and a sound recording <a href="http://www.cs.brown.edu/~sk/Publications/Talks/Moby-Bootstrap/">here</a> (as is usually the case with Shriram, definitely worth your time).
</li>
<li>A talk by Matthias Felleisen on the evolution of Northeastern University&#8217;s CS curriculum, where scheme plays a central role.
<p><span style="text-align:center; display: block;"><a href="http://programming-musings.org/2009/12/23/scheme-lectures-mostly/"><img src="http://img.youtube.com/vi/efhh0Cf6sT8/2.jpg" alt="" /></a></span>
</li>
<li> The <a href="http://www.cs.indiana.edu/dfried_celebration.html">DanFest videos</a>, which i&#8217;ve  mentioned before <a href="http://programming-musings.org/2007/02/21/a-video-celebration/">one</a> or <a href="http://programming-musings.org/2007/02/25/scheme-loops/">two</a> times. Virtually all lectures in this series are worth watching, but, if Robby&#8217;s talk above picked your curiosity, don&#8217;t miss Ken Dyvbig&#8217;s <em>Macro Writer&#8217;s Bill of Rights</em> video and <a href="http://www.cs.indiana.edu/~chaynes/danfest/dyb.pdf">slides</a>.
<p><span style='text-align:center;display:block;'><object width='400' height='330' type='application/x-shockwave-flash' data='http://video.google.com/googleplayer.swf?docId=-6899972066795135270'><param name='allowScriptAccess' value='never' /><param name='movie' value='http://video.google.com/googleplayer.swf?docId=-6899972066795135270'/><param name='quality' value='best'/><param name='bgcolor' value='#ffffff' /><param name='scale' value='noScale' /><param name='wmode' value='opaque' /></object></span><br />
And i cannot help mentioning neither Gerry Sussman&#8217;s <em>The role of programming in the formulation of ideas</em></p>
<p><span style='text-align:center;display:block;'><object width='400' height='330' type='application/x-shockwave-flash' data='http://video.google.com/googleplayer.swf?docId=-2726904509434151616'><param name='allowScriptAccess' value='never' /><param name='movie' value='http://video.google.com/googleplayer.swf?docId=-2726904509434151616'/><param name='quality' value='best'/><param name='bgcolor' value='#ffffff' /><param name='scale' value='noScale' /><param name='wmode' value='opaque' /></object></span><br />
(and its <a href="http://dspace.mit.edu/bitstream/handle/1721.1/6707/AIM-2002-018.pdf?sequence=2">accompanying article</a>) nor Oleg Kiselyov&#8217;s <em>Normal-order syntax-rules and proving the fix-point of call/cc</em>:</p>
<p><span style='text-align:center;display:block;'><object width='400' height='330' type='application/x-shockwave-flash' data='http://video.google.com/googleplayer.swf?docId=-7990603720514207956'><param name='allowScriptAccess' value='never' /><param name='movie' value='http://video.google.com/googleplayer.swf?docId=-7990603720514207956'/><param name='quality' value='best'/><param name='bgcolor' value='#ffffff' /><param name='scale' value='noScale' /><param name='wmode' value='opaque' /></object></span>
</li>
<li>As an aside, if you like Gerry as much as i do, you might be interested in hearing him <a href="http://mitworld.mit.edu/video/126">sharing his enthusiasm for mechanical watches</a> for a change. Or, if insist staying (more or less) on topic, take a look at his <a href="http://aduni.org/colloquia/sussman/">The Legacy of Computer Science</a>, for Gerry&#8217;s take on how CS is making us smarter.
</li>
<li>Guy Steele&#8217;s <em>Designing by Accident</em> is a very interesting history on how Scheme came to life and its relationship with actors:
<p><span style='text-align:center;display:block;'><object width='400' height='330' type='application/x-shockwave-flash' data='http://video.google.com/googleplayer.swf?docId=2972857259372904575'><param name='allowScriptAccess' value='never' /><param name='movie' value='http://video.google.com/googleplayer.swf?docId=2972857259372904575'/><param name='quality' value='best'/><param name='bgcolor' value='#ffffff' /><param name='scale' value='noScale' /><param name='wmode' value='opaque' /></object></span><br />
for which you&#8217;ll need the <a href="http://research.sun.com/projects/plrg/JAOO-SchemeHistory-2006public.pdf">accompanying slides</a>. Although not specifically about Scheme, Steele&#8217;s <a href="http://video.google.com/videoplay?docid=-8860158196198824415">Growing a language</a> is also a must see.
</li>
<li>You will have to tell me how good Matthiew Flatt&#8217;s <a href="http://www.researchchannel.org/prog/displayevent.aspx?rID=3892">Processes without partitions</a> is, because it seems to be available only in formats that i cannot play on debian.
</li>
<li>In <em>The 90 minute Scheme to C compiler</em> talk Mark Feeley shows how closure conversion and CPS can be used to put together a Scheme compiler (ninety minutes being the time needed to <em>explain</em> it, mind you).
<p><span style='text-align:center;display:block;'><object width='400' height='330' type='application/x-shockwave-flash' data='http://video.google.com/googleplayer.swf?docId=-5325481895624358999'><param name='allowScriptAccess' value='never' /><param name='movie' value='http://video.google.com/googleplayer.swf?docId=-5325481895624358999'/><param name='quality' value='best'/><param name='bgcolor' value='#ffffff' /><param name='scale' value='noScale' /><param name='wmode' value='opaque' /></object></span>
</li>
<li>Those of you new to scheme and functional programming may enjoy this lecture by Jerry Cain, pertaining to Stanford&#8217;s course on Programming Paradigms, which discusses functional programming using Kawa scheme. Not stellar, but not bad as an introduction.
<p><span style="text-align:center; display: block;"><a href="http://programming-musings.org/2009/12/23/scheme-lectures-mostly/"><img src="http://img.youtube.com/vi/_cV8NWQCxnE/2.jpg" alt="" /></a></span>
</li>
<li>Finally (for now), some fun livecoding with <a href="http://www.pawfal.org/fluxus/">Fluxus</a>:
<p><span style="text-align:center; display: block;"><a href="http://programming-musings.org/2009/12/23/scheme-lectures-mostly/"><img src="http://img.youtube.com/vi/2O5DJTOy6EA/2.jpg" alt="" /></a></span><br />
And don&#8217;t miss <a href="http://impromptu.moso.com.au/gallery.html">this gallery</a> for some really beautiful ones.
</li>
</ul>
<br />Posted in Scheme  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jaortega.wordpress.com/295/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jaortega.wordpress.com/295/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jaortega.wordpress.com/295/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jaortega.wordpress.com/295/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jaortega.wordpress.com/295/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jaortega.wordpress.com/295/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jaortega.wordpress.com/295/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jaortega.wordpress.com/295/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jaortega.wordpress.com/295/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jaortega.wordpress.com/295/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jaortega.wordpress.com/295/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jaortega.wordpress.com/295/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jaortega.wordpress.com/295/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jaortega.wordpress.com/295/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=programming-musings.org&amp;blog=59048&amp;post=295&amp;subd=jaortega&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://programming-musings.org/2009/12/23/scheme-lectures-mostly/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7c022bc33898f25040a60cc441561c25?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">jaortega</media:title>
		</media:content>
	</item>
	</channel>
</rss>
