<?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>Wisdom and Wonder &#187; Programming</title>
	<atom:link href="http://www.wisdomandwonder.com/tag/programming/feed" rel="self" type="application/rss+xml" />
	<link>http://www.wisdomandwonder.com</link>
	<description>Science and Philosophy</description>
	<lastBuildDate>Wed, 25 Jan 2012 05:09:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>How one class brought SICP back at MIT</title>
		<link>http://www.wisdomandwonder.com/link/6123/how-one-class-brought-sicp-back-at-mit</link>
		<comments>http://www.wisdomandwonder.com/link/6123/how-one-class-brought-sicp-back-at-mit#comments</comments>
		<pubDate>Wed, 18 Jan 2012 20:50:53 +0000</pubDate>
		<dc:creator>Grant</dc:creator>
				<category><![CDATA[Link]]></category>
		<category><![CDATA[Learning]]></category>
		<category><![CDATA[philosophy]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Scheme]]></category>
		<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://www.wisdomandwonder.com/?p=6123</guid>
		<description><![CDATA[Zombie-like, 6.001 rises from the dead to threaten students again. Unlike a zombie, though, it&#8217;s moving quite a bit faster than it did the first time. Like the original, don&#8217;t walk into the class expecting that it will teach you Scheme; instead, it attempts to teach thought patterns for computer science, and the structure and [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Zombie-like, 6.001 rises from the dead to threaten students again. Unlike a zombie, though, it&#8217;s moving quite a bit faster than it did the first time. Like the original, don&#8217;t walk into the class expecting that it will teach you Scheme; instead, it attempts to teach thought patterns for computer science, and the structure and interpretation of computer programs. Three projects will be assigned and graded. Prereq: some programming experience; high confusion threshold.</p></blockquote>
<p>(via <a href="http://web.mit.edu/alexmv/6.S184/">MIT</a> via <a href="http://mainisusuallyafunction.blogspot.com/2012/01/zombie-6001-starts-tomorrow.html">keegan</a> via <a href="http://planet.haskell.org/">planethaskell</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wisdomandwonder.com/link/6123/how-one-class-brought-sicp-back-at-mit/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The rational for returning the identity for expressions such as (*) and (+)</title>
		<link>http://www.wisdomandwonder.com/article/6014/the-rational-for-returning-the-identity-for-expressions-such-as-and</link>
		<comments>http://www.wisdomandwonder.com/article/6014/the-rational-for-returning-the-identity-for-expressions-such-as-and#comments</comments>
		<pubDate>Sun, 06 Nov 2011 16:08:09 +0000</pubDate>
		<dc:creator>Grant</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Programming Language]]></category>
		<category><![CDATA[Scheme]]></category>

		<guid isPermaLink="false">http://www.wisdomandwonder.com/?p=6014</guid>
		<description><![CDATA[This post in comp.lang.scheme brings up a question that inevitably everyone asks. Suppose the answer is obvious but John summed it up well: Well, if you interpret (apply + some-list) and (apply * some-other-list) as left-folds, then a starting point is needed, something to begin accumulating from. The identity is the only value that works [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://groups.google.com/group/comp.lang.scheme/browse_thread/thread/cb9a939dae529d9d/663865dfbb6d34cb?show_docid=663865dfbb6d34cb">This</a> post in comp.lang.scheme brings up a question that inevitably everyone asks. </p>
<p>Suppose the answer is obvious but John summed it up well:</p>
<blockquote><p>Well, if you interpret (apply + some-list) and (apply * some-other-list) as left-folds, then a starting point is needed, something to begin accumulating from.  The identity is the only value that works correctly, so it&#8217;s what gets returned when the list being folded over has length 0. Nobody would write (+) or (*) explicitly, but having them return the identity is the Right Thing nevertheless. </p>
<p>The same argument applies when expanding macros: in a degenerate case, a macro may expand to (+) or (*), and it&#8217;s usually not appropriate to raise an exception.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.wisdomandwonder.com/article/6014/the-rational-for-returning-the-identity-for-expressions-such-as-and/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SchemaSpy: A Graphical Database Schema Metadata Browser</title>
		<link>http://www.wisdomandwonder.com/link/5956/schemaspy-a-graphical-database-schema-metadata-browser</link>
		<comments>http://www.wisdomandwonder.com/link/5956/schemaspy-a-graphical-database-schema-metadata-browser#comments</comments>
		<pubDate>Mon, 03 Oct 2011 00:22:14 +0000</pubDate>
		<dc:creator>Grant</dc:creator>
				<category><![CDATA[Link]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Learning]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://www.wisdomandwonder.com/?p=5956</guid>
		<description><![CDATA[SchemaSpy is a Java-based tool that analyzes the metadata of a schema in a database and generates a visual representation of it in a browser-displayable format. It lets you click through the hierarchy of database tables via child and parent table relationships as represented by both HTML links and entity-relationship diagrams. It&#8217;s also designed to [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p><a href="http://schemaspy.sourceforge.net/">SchemaSpy</a> is a Java-based tool that analyzes the metadata of a schema in a database and generates a visual representation of it in a browser-displayable format. It lets you click through the hierarchy of database tables via child and parent table relationships as represented by both HTML links and entity-relationship diagrams. It&#8217;s also designed to help resolve the obtuse errors that a database sometimes gives related to failures due to constraints.</p></blockquote>
<p>This is an excellent tool in its own right; and if nothing else for its beautiful use of <a href="http://www.graphviz.org/">Graphviz</a>. </p>
<p>See the example(s) <a href="http://schemaspy.sourceforge.net/sample/relationships.html">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wisdomandwonder.com/link/5956/schemaspy-a-graphical-database-schema-metadata-browser/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GSL Shell</title>
		<link>http://www.wisdomandwonder.com/link/5930/gsl-shell</link>
		<comments>http://www.wisdomandwonder.com/link/5930/gsl-shell#comments</comments>
		<pubDate>Sun, 18 Sep 2011 17:10:11 +0000</pubDate>
		<dc:creator>Grant</dc:creator>
				<category><![CDATA[Link]]></category>
		<category><![CDATA[Lua]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Programming Language]]></category>
		<category><![CDATA[Science]]></category>

		<guid isPermaLink="false">http://www.wisdomandwonder.com/?p=5930</guid>
		<description><![CDATA[GSL Shell is an interactive interface that gives access to the GSL numerical routines by using Lua, an easy to learn and powerful programming language. With GSL Shell you can access very easily the functions provided by the GSL library without the need of writing and compile a stand-alone C application. In addition the power [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>GSL Shell is an interactive interface that gives access to the <a href="http://www.gnu.org/software/gsl/manual/gsl-ref.html">GSL numerical routines</a> by using <a href="http://www.lua.org/">Lua</a>, an easy to learn and powerful programming language. With GSL Shell you can access very easily the functions provided by the GSL library without the need of writing and compile a stand-alone C application. In addition the power and expressivity of the Lua language make easy to develop and tests complex procedures to treat your data and use effectively the GSL routines. You will be also able to create plot in real-time by using the powerful builtin graphical module.</p>
<p>GSL Shell is still a young project and it is currently not widely used. It still lacks some important features but we believe that it is very promising because it is built on top of three outstanding free software libraries: the GSL library, Lua and the AGG library. By using and combining together these software components GSL Shell gives the opportunity of doing advanced numerical calculations and produce beautiful plot of the data or mathematical functions.</p></blockquote>
<p>(via <a href="http://www.nongnu.org/gsl-shell/intro.html">GSL</a> via Mike K.)</p>
<p>Like Mike said, looks like a nice complement to Octave or MATLAB.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wisdomandwonder.com/link/5930/gsl-shell/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Little Schemer is on Google Books</title>
		<link>http://www.wisdomandwonder.com/link/5461/the-little-schemer-is-on-google-books</link>
		<comments>http://www.wisdomandwonder.com/link/5461/the-little-schemer-is-on-google-books#comments</comments>
		<pubDate>Mon, 20 Dec 2010 16:21:29 +0000</pubDate>
		<dc:creator>Grant</dc:creator>
				<category><![CDATA[Link]]></category>
		<category><![CDATA[Learning]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Scheme]]></category>
		<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://www.wisdomandwonder.com/?p=5461</guid>
		<description><![CDATA[The Little Schemer is now available on Google Books here. (via reddit)]]></description>
			<content:encoded><![CDATA[<p>The Little Schemer is now available on Google Books <a href="http://books.google.com/books?id=xyO-KLexVnMC&#038;printsec=frontcover&#038;dq=little+schemer&#038;source=bl&#038;ots=GIKIzO6SWA&#038;sig=9zKUgfx_LIME7CF_fleIpf_wybc&#038;hl=en&#038;ei=PbYOTcqzJsP_lgek5_H9Bw&#038;sa=X&#038;oi=book_result&#038;ct=result&#038;resnum=3&#038;ved=0CCkQ6AEwAg#v=onepage&#038;q&#038;f=false">here</a>.</p>
<p>(via <a href="http://www.reddit.com/r/programming/comments/eojl9/the_little_schemer_still_a_valuable_resource/">reddit</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wisdomandwonder.com/link/5461/the-little-schemer-is-on-google-books/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DrScheme Style Buffer Evaluation for OCaml in Emacs</title>
		<link>http://www.wisdomandwonder.com/article/4797/drscheme-style-buffer-evaluation-for-ocaml-in-emacs</link>
		<comments>http://www.wisdomandwonder.com/article/4797/drscheme-style-buffer-evaluation-for-ocaml-in-emacs#comments</comments>
		<pubDate>Thu, 27 May 2010 02:56:21 +0000</pubDate>
		<dc:creator>Grant</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[Emacs]]></category>
		<category><![CDATA[Ide]]></category>
		<category><![CDATA[ML]]></category>
		<category><![CDATA[OCaml]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Programming Language]]></category>

		<guid isPermaLink="false">http://www.wisdomandwonder.com/?p=4797</guid>
		<description><![CDATA[When you want to evaluate code inside of DrScheme, you hit the F5 key and the entire editor buffer gets evaluated inside of a new REPL. Unlike Emacs, the ability to send the current expression, region, or buffer to the REPL isn&#8217;t available. It might sound constricting, but in practice it is very nice because [...]]]></description>
			<content:encoded><![CDATA[<p>When you want to evaluate code inside of <a href="http://www.plt-scheme.org/">DrScheme</a>, you hit the F5 key and the entire editor buffer gets evaluated inside of a new REPL. Unlike Emacs, the ability to send the current expression, region, or buffer to the REPL isn&#8217;t available. It might sound constricting, but in practice it is very nice because you are always working with the most up-to-date versions of your definitions. It might sound slow to start a new REPL on each run, but it isn&#8217;t; on my older desktop the new REPL comes up before my finger even comes off of the F5 key. This approach seemed like a nice to have for working with OCaml in <a href="https://forge.ocamlcore.org/projects/tuareg/">Tuareg</a> mode on Emacs, so I pieced together a function to do so against Tuareg 1.45.6:</p>

<div class="wp_syntax"><div class="code"><pre class="lisp" style="font-family:monospace;"><span style="color: #000000; font-weight: bold; ">&#40;</span><span style="color: #000000; ">defun</span> tuareg-eval-buffer-drscheme-style <span style="color: #000000; font-weight: bold; ">&#40;</span><span style="color: #000000; font-weight: bold; ">&#41;</span>
  <span style="color: #000000; ">&quot;Send the buffer to a brand new Tuareg Interactive process.&quot;</span>
  <span style="color: #000000; font-weight: bold; ">&#40;</span>interactive<span style="color: #000000; font-weight: bold; ">&#41;</span>
  <span style="color: #000000; font-weight: bold; ">&#40;</span>tuareg-kill-caml<span style="color: #000000; font-weight: bold; ">&#41;</span>
  <span style="color: #000000; font-weight: bold; ">&#40;</span>sleep-for <span style="color: #000000; ">0.25</span><span style="color: #000000; font-weight: bold; ">&#41;</span>
  <span style="color: #000000; font-weight: bold; ">&#40;</span><span style="color: #000000; ">if</span> <span style="color: #000000; font-weight: bold; ">&#40;</span>get-buffer tuareg-interactive-buffer-<span style="color: #000000; ">name</span><span style="color: #000000; font-weight: bold; ">&#41;</span>
      <span style="color: #000000; font-weight: bold; ">&#40;</span>kill-buffer tuareg-interactive-buffer-<span style="color: #000000; ">name</span><span style="color: #000000; font-weight: bold; ">&#41;</span><span style="color: #000000; font-weight: bold; ">&#41;</span>
  <span style="color: #000000; font-weight: bold; ">&#40;</span>tuareg-eval-buffer<span style="color: #000000; font-weight: bold; ">&#41;</span>
  <span style="color: #000000; font-weight: bold; ">&#40;</span>switch-to-buffer tuareg-interactive-buffer-<span style="color: #000000; ">name</span><span style="color: #000000; font-weight: bold; ">&#41;</span><span style="color: #000000; font-weight: bold; ">&#41;</span></pre></div></div>

<p>Out of the box Tuareg mode will ask you what program name to run to start OCaml each and every time you evaluate the buffer, even when the variable storing that name is defined. I didn&#8217;t find a way to avoid this prompt so I patched Tuareg such that it will not ask you if a value is already defined for the program name. <a href="http://www.wisdomandwonder.com/wordpress/wp-content/uploads/2010/05/tuareg-1.45.6-interactive-program.patch.txt">Here</a> is the patch.</p>
<p>Thus far it has been nice to have the option of evaluating the whole buffer in a new REPL in addition to the existing incremental evaluation options.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wisdomandwonder.com/article/4797/drscheme-style-buffer-evaluation-for-ocaml-in-emacs/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tuareg mode has new maintainers</title>
		<link>http://www.wisdomandwonder.com/link/4788/tuareg-mode-has-new-maintainers</link>
		<comments>http://www.wisdomandwonder.com/link/4788/tuareg-mode-has-new-maintainers#comments</comments>
		<pubDate>Tue, 25 May 2010 16:51:32 +0000</pubDate>
		<dc:creator>Grant</dc:creator>
				<category><![CDATA[Link]]></category>
		<category><![CDATA[Emacs]]></category>
		<category><![CDATA[Ide]]></category>
		<category><![CDATA[ML]]></category>
		<category><![CDATA[OCaml]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Programming Language]]></category>

		<guid isPermaLink="false">http://www.wisdomandwonder.com/?p=4788</guid>
		<description><![CDATA[Maintenance of the Tuareg mode for Emacs has been taken over by some Jane Street Capital folks and can be found here on OCamlCore. (via caml-list)]]></description>
			<content:encoded><![CDATA[<p>Maintenance of the Tuareg mode for Emacs has been taken over by some Jane Street Capital folks and can be found <a href="https://forge.ocamlcore.org/projects/tuareg/">here</a> on OCamlCore.</p>
<p>(via <a href="http://groups.google.com/group/fa.caml/browse_thread/thread/f575a5d8b3d491/79ed60f63e3239f3?lnk=gst&#038;q=+new+emacs+tuareg+mode+release#79ed60f63e3239f3">caml-list</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wisdomandwonder.com/link/4788/tuareg-mode-has-new-maintainers/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Emacs 23.2 is out</title>
		<link>http://www.wisdomandwonder.com/link/4735/emacs-23-2-is-out</link>
		<comments>http://www.wisdomandwonder.com/link/4735/emacs-23-2-is-out#comments</comments>
		<pubDate>Sat, 08 May 2010 12:14:06 +0000</pubDate>
		<dc:creator>Grant</dc:creator>
				<category><![CDATA[Link]]></category>
		<category><![CDATA[Emacs]]></category>
		<category><![CDATA[Ide]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.wisdomandwonder.com/?p=4735</guid>
		<description><![CDATA[(via gmame via Alex)]]></description>
			<content:encoded><![CDATA[<p>(via <a href="http://permalink.gmane.org/gmane.emacs.announce/17">gmame</a> via <a href="http://alexott.blogspot.com/2010/05/gnu-emacs-232-released.html?utm_source=feedburner&#038;utm_medium=feed&#038;utm_campaign=Feed%3A+alexott+%28Alex+Ott%27s+blog%29">Alex</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wisdomandwonder.com/link/4735/emacs-23-2-is-out/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maven and Idea</title>
		<link>http://www.wisdomandwonder.com/link/4535/maven-and-idea</link>
		<comments>http://www.wisdomandwonder.com/link/4535/maven-and-idea#comments</comments>
		<pubDate>Thu, 04 Feb 2010 19:37:01 +0000</pubDate>
		<dc:creator>Grant</dc:creator>
				<category><![CDATA[Link]]></category>
		<category><![CDATA[Build]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.wisdomandwonder.com/?p=4535</guid>
		<description><![CDATA[Here is how to ask Maven to generate Idea project files for you: mvn idea:idea -DjdkName=1.5 (via Maven)]]></description>
			<content:encoded><![CDATA[<p>Here is how to ask Maven to generate Idea project files for you:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">mvn idea:idea <span style="color: #660033;">-DjdkName</span>=<span style="color: #000000; ">1.5</span></pre></div></div>

<p>(via <a href="http://maven.apache.org/plugins/maven-idea-plugin/usage.html">Maven</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wisdomandwonder.com/link/4535/maven-and-idea/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dynamic Languages Wizards Series</title>
		<link>http://www.wisdomandwonder.com/link/4451/dynamic-languages-wizards-series</link>
		<comments>http://www.wisdomandwonder.com/link/4451/dynamic-languages-wizards-series#comments</comments>
		<pubDate>Mon, 18 Jan 2010 21:12:53 +0000</pubDate>
		<dc:creator>Grant</dc:creator>
				<category><![CDATA[Link]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.wisdomandwonder.com/?p=4451</guid>
		<description><![CDATA[While I haven&#8217;t watched these yet; they do sound interesting. (via dhess)]]></description>
			<content:encoded><![CDATA[<p>While I haven&#8217;t watched <a href="http://www.ai.mit.edu/projects/dynlangs/wizards-panels.html">these</a> yet; they do sound interesting.</p>
<p>(via <a href="http://twitter.com/dhess/statuses/7888671051">dhess</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wisdomandwonder.com/link/4451/dynamic-languages-wizards-series/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

