<?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>Mostly λazy…a Clojure podcast</title>
	<atom:link href="http://mostlylazy.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://mostlylazy.com</link>
	<description>(when we get around to it)</description>
	<lastBuildDate>Tue, 15 Jan 2013 10:43:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='mostlylazy.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Mostly λazy…a Clojure podcast</title>
		<link>http://mostlylazy.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://mostlylazy.com/osd.xml" title="Mostly λazy…a Clojure podcast" />
	<atom:link rel='hub' href='http://mostlylazy.com/?pushpress=hub'/>
		<item>
		<title>Episode 9 with Kevin Lynagh and Paul deGrandis: web dev ennui, CRDTs, and core.logic</title>
		<link>http://mostlylazy.com/2013/01/04/episode-9-with-kevin-lynagh-and-paul-degrandis-web-dev-ennui-crdts-and-core-logic/</link>
		<comments>http://mostlylazy.com/2013/01/04/episode-9-with-kevin-lynagh-and-paul-degrandis-web-dev-ennui-crdts-and-core-logic/#comments</comments>
		<pubDate>Fri, 04 Jan 2013 05:26:08 +0000</pubDate>
		<dc:creator>Chas Emerick</dc:creator>
				<category><![CDATA[Conversation]]></category>
		<category><![CDATA[Episode]]></category>

		<guid isPermaLink="false">http://mostlylazy.com/?p=117</guid>
		<description><![CDATA[Paul deGrandis (@ohpauleez) and Kevin Lynagh (@lynaghk) are two anchors of the Clojure community, perhaps especially of the ClojureScript wing.  Both Portlanders, they&#8217;ve been elbow-deep in core.logic and a ton of ClojureScript tools and libraries like shoreleave, cljx, c2, and more.  They&#8217;ve stormed the Clojure world in the past year or two, going from zero [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mostlylazy.com&#038;blog=29079899&#038;post=117&#038;subd=mostlylazy&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><img class="alignright" title="Paul deGrandis" alt="Paul deGrandis" src="http://mostlylazy.files.wordpress.com/2013/01/paul-degrandis.jpg?w=150&#038;h=112" width="150" height="112" /><img class="alignright" style="margin:10px;" title="Kevin Lynagh" alt="Kevin Lynagh" src="http://www.gravatar.com/avatar/55ddf2ec93de8a2a31a0f99d0e874ff9.jpg?s=128" width="128" height="128" /></p>
<p><a href="http://www.pauldee.org/blog/">Paul deGrandis</a> (<a href="https://twitter.com/ohpauleez">@ohpauleez</a>) and Kevin Lynagh (<a href="https://twitter.com/lynaghk">@lynaghk</a>) are two anchors of the Clojure community, perhaps especially of the ClojureScript wing.  Both Portlanders, they&#8217;ve been elbow-deep in <a href="https://github.com/clojure/core.logic">core.logic</a> and a ton of ClojureScript tools and libraries like <a href="https://github.com/shoreleave/">shoreleave</a>, <a href="https://github.com/lynaghk/cljx">cljx</a>, <a href="https://github.com/lynaghk/c2">c2</a>, and more.  They&#8217;ve stormed the Clojure world in the past year or two, going from zero to taking up residence in #clojure to speaking about Clojure and ClojureScript everywhere.</p>
<p>Kevin is the founder of <a href="http://keminglabs.com/">Keming Labs</a>, which specializes in &#8220;building data-driven UIs&#8221;; Paul has worked at all sorts of places like Etsy, Comcast, and TutorSpree.</p>
<p>Enjoy!</p>
<p>(Recorded on December 14th, 2012.  Apologies for the clipping on Paul&#8217;s audio. Donations welcome to help get him get an internet connection that doesn&#8217;t use carrier pigeons. <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Listen:</p>
<span style='text-align:left;display:block;'><p>				<object id='wp-as-117_1-flash' type='application/x-shockwave-flash' data='http://s0.wp.com/wp-content/plugins/audio-player/player.swf' width='290' height='24'>
					<param name='movie' value='http://s0.wp.com/wp-content/plugins/audio-player/player.swf' />
					<param name='FlashVars' value='bg=0xF8F8F8&amp;leftbg=0xEEEEEE&amp;lefticon=0x666666&amp;rightbg=0xCCCCCC&amp;rightbghover=0x999999&amp;righticon=0x666666&amp;righticonhover=0xFFFFFF&amp;text=0x666666&amp;slider=0x666666&amp;track=0xFFFFFF&amp;border=0x666666&amp;loader=0x9FFFB8&amp;soundFile=http%3A%2F%2Fdownloads.mostlylazy.com%2Fepisodes%2Fmostly-lazy-009.mp3' />
					<param name='quality' value='high' />
					<param name='menu' value='false' />
					<param name='bgcolor' value='#FFFFFF' />
					<param name='wmode' value='opaque' />
					Download: <a href="http://downloads.mostlylazy.com/episodes/mostly-lazy-009.mp3">mostly-lazy-009.mp3</a><br />
				</object></p></span>
<p>Or, <a href="http://downloads.mostlylazy.com/episodes/mostly-lazy-009.mp3">download the mp3 directly</a>.</p>
<h3>Discrete Topics</h3>
<p>Many questions and topics came from tweets to <a href="http://twitter.com/MostlyLazy">@MostlyLazy</a> <strong>(watch for scheduled show announcements and send us topics and questions!)</strong></p>
<ul>
<li>Abusing <code>pmap</code></li>
<li><a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/package-summary.html">java.util.concurrent</a> (learn it, use it!)</li>
<li>&#8220;JavaScript |ˈʤɑːvəˌskrɪpt| (n.): Super janky shit.&#8221;</li>
<li>The rise of the &#8220;JavaScript Craftsman&#8221;</li>
<li>&#8220;What was the first piece of software you sold?&#8221;</li>
<li>Running ClojureScript on top of node.js</li>
<li><a href="http://www.lisperati.com/">Conrad Barski</a>&#8216;s <a href="https://github.com/drcode/webfui">WebFui</a> (<a href="http://clojure-conj.org/speakers/barski.html">presented at Clojure Conj 2012</a>)</li>
<li>Separating code and content or not
<ul>
<li><a href="https://github.com/cgrand/enlive">Enlive</a> vs. <a href="https://github.com/weavejester/hiccup">Hiccup</a>, Enlive + Hiccup</li>
</ul>
</li>
<li><a href="https://en.wikipedia.org/wiki/Functional_reactive_programming">Functional Reactive Programming</a> &amp; co.
<ul>
<li><a href="http://www.flapjax-lang.org/">flapjax</a></li>
<li><a href="http://c2.com/cgi/wiki?ReactiveDemandProgramming">Reactive Demand Programming</a>
<ul>
<li><a href="http://axisofeval.blogspot.com/2012/09/reactive-demand-programming.html">A reasonable lightweight summary of RDP</a></li>
<li><a href="https://awelonblue.wordpress.com/2011/05/21/comparing-frp-to-rdp/">…compared to FRP</a></li>
<li>An (the only?) implementation: <a href="https://github.com/dmbarbour/Sirea">Sirea</a></li>
</ul>
</li>
<li><a href="http://www.wisdom.weizmann.ac.il/~bprogram/">Behavioural Programming</a></li>
</ul>
</li>
<li><a href="http://awelonblue.wordpress.com/2012/10/21/local-state-is-poison/">&#8220;Local state is poison&#8221;</a></li>
<li>&#8220;FRP is like MVC&#8221;
<ul>
<li><a href="https://github.com/lynaghk/todoFRP">TodoFRP</a> (post your implementations now!!!11!)</li>
</ul>
</li>
<li><a href="https://github.com/lynaghk/reflex">reflex</a>: &#8220;Automatic state propagation in ClojureScript&#8221;</li>
<li>&#8220;Web application development ennui&#8221;</li>
<li>&#8220;The web was built by amateurs&#8221; (alan kay)</li>
<li><a href="http://cemerick.com/2011/09/01/mccarthy-on-the-w3c/">John McCarthy on the W3C</a>: &#8220;When w3c decided to not use [s-expressions], but instead imitate SGML [for HTML], that showed a certain capacity to make mistakes — which, probably, they haven’t lost.&#8221;</li>
<li><a href="https://code.google.com/p/nativeclient/">NaCl (Google Native Client)</a></li>
<li>Commutative Replicated Data Types (CRDTs)
<ul>
<li>Mark Shapiro et al., <a href="http://hal.inria.fr/docs/00/55/55/88/PDF/techreport.pdf">&#8220;A comprehensive study of Convergent and Commutative Replicated Data Types&#8221;</a> (pdf)
<ul>
<li><a href="http://research.microsoft.com/apps/video/dl.aspx?id=153540">A presentation by Marc Shapiro @ Microsoft Research</a> surveying the content of this paper</li>
</ul>
</li>
<li>Eventual consistency vs. strong consistency vs. strong eventual consistency</li>
<li>Implementations
<ul>
<li><a href="https://github.com/mochi/statebox">statebox</a></li>
<li><a href="https://github.com/basho/riak_dt">riak_dt</a>: &#8220;Riak core app for storing convergent data types&#8221;</li>
<li><a href="http://github.com/reiddraper/knockbox">knockbox</a> (Clojure, in-process)</li>
<li><a href="http://www.bloom-lang.net/">Bloom</a> and <a href="http://www.eecs.berkeley.edu/Pubs/TechRpts/2012/EECS-2012-167.pdf">BloomL</a> (pdf) are languages (~ Ruby DSLs) that use CRDTs / <a href="https://en.wikipedia.org/wiki/Join-semilattice">lattices</a> as their primary data types</li>
<li><a href="http://vimeo.com/53904989">&#8220;Keep CALM and Query On&#8221;</a>, a presentation by Joe Hellerstein from <a href="http://basho.com/community/ricon2012/">RICON 2012</a> discussing lattices, CRDTs, Bloom, etc.</li>
</ul>
</li>
<li>Related: <a href="https://en.wikipedia.org/wiki/Operational_transformation">operational transforms</a></li>
</ul>
</li>
<li><a href="http://craftsmanship.sv.cmu.edu/exercises/coin-change-kata">Coin-change kata</a></li>
<li><a href="https://github.com/clojure/test.generative/">test.generative</a></li>
<li><a href="https://github.com/clojure/core.logic">core.logic</a> (provides an <em>awesome</em> unifier)
<ul>
<li><a href="https://github.com/jonase/kibit">kibit</a>: a static code analysis / linter tool for Clojure</li>
<li><a href="https://github.com/lynaghk/cljx">cljx</a>: &#8220;Smart Clojure/ClojureScript code sharing&#8221;</li>
</ul>
</li>
<li>Websockets
<ul>
<li>superseded by <a href="http://www.webrtc.org/">WebRTC</a>?</li>
<li><a href="http://socket.io/">socket.io</a> — dynamic transport fallbacks for web app communications</li>
<li><a href="http://www.google.com/chromeframe">Chrome Frame</a> — replaces the guts of IE with Chrome</li>
</ul>
</li>
<li>ClojureScript miscellanea</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mostlylazy.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mostlylazy.wordpress.com/117/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mostlylazy.com&#038;blog=29079899&#038;post=117&#038;subd=mostlylazy&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mostlylazy.com/2013/01/04/episode-9-with-kevin-lynagh-and-paul-degrandis-web-dev-ennui-crdts-and-core-logic/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
<enclosure url="http://downloads.mostlylazy.com/episodes/mostly-lazy-009.mp3" length="0" type="audio/mpeg" />
<enclosure url="http://downloads.mostlylazy.com/episodes/mostly-lazy-009.mp3" length="0" type="audio/mpeg" />
<enclosure url="http://downloads.mostlylazy.com/episodes/mostly-lazy-009.mp3" length="0" type="audio/mpeg" />
	
		<media:content url="http://2.gravatar.com/avatar/b8ee952abb6620c1c93b3acb46cd391c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cemerick</media:title>
		</media:content>

		<media:content url="http://mostlylazy.files.wordpress.com/2013/01/paul-degrandis.jpg?w=150" medium="image">
			<media:title type="html">Paul deGrandis</media:title>
		</media:content>

		<media:content url="http://www.gravatar.com/avatar/55ddf2ec93de8a2a31a0f99d0e874ff9.jpg?s=128" medium="image">
			<media:title type="html">Kevin Lynagh</media:title>
		</media:content>

		<media:content url="http://downloads.mostlylazy.com/episodes/mostly-lazy-009.mp3" medium="audio">
			<media:player url="http://mostlylazy.com/wp-content/plugins/audio-player/player.swf?soundFile=http://downloads.mostlylazy.com/episodes/mostly-lazy-009.mp3" />
		</media:content>
	</item>
		<item>
		<title>Episode 8: Phil Hagelberg; empowering userspace in Heroku, Leiningen, and Emacs</title>
		<link>http://mostlylazy.com/2012/09/21/episode-8-phil-hagelberg-empowering-userspace-in-heroku-leiningen-and-emacs/</link>
		<comments>http://mostlylazy.com/2012/09/21/episode-8-phil-hagelberg-empowering-userspace-in-heroku-leiningen-and-emacs/#comments</comments>
		<pubDate>Fri, 21 Sep 2012 13:16:26 +0000</pubDate>
		<dc:creator>Chas Emerick</dc:creator>
				<category><![CDATA[Conversation]]></category>
		<category><![CDATA[Episode]]></category>

		<guid isPermaLink="false">http://mostlylazy.com/?p=113</guid>
		<description><![CDATA[Phil Hagelberg (a.k.a. technomancy just about everywhere) has been a constant presence in the Clojure world for years.  Best known for starting the Leiningen project — which he continues to maintain as part of his duties at Heroku — Phil has had his fingers in all sorts of open source pots, including Clojure itself, a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mostlylazy.com&#038;blog=29079899&#038;post=113&#038;subd=mostlylazy&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><img class="alignright" title="Phil Hagelberg" src="http://www.gravatar.com/avatar/171a9b5755cdb090e0c2b3c20a521fbc.jpg?s=128" alt="Phil Hagelberg" width="128" height="128" /><a href="http://technomancy.us">Phil Hagelberg</a> (a.k.a. <a href="http://github.com/technomancy">technomancy</a> just about everywhere) has been a constant presence in the Clojure world for years.  Best known for starting the <a href="http://leiningen.org">Leiningen</a> project — which he continues to maintain as part of his duties at <a href="http://heroku.com">Heroku</a> — Phil has had his fingers in all sorts of open source pots, including Clojure itself, a big pile of Clojure libraries, and the <a href="http://technomancy.us/144">packaging and distribution infrastructure around Emacs</a> (thus foreshadowing Leiningen to a certain degree?).</p>
<p>We talked about many of these topics (recorded on 8/31/2012, BTW), but one theme that kept coming up throughout our conversation was the notion of <em>empowering userspace</em>; that is, ensuring that users of a system have nearly (or exactly?) as much power available to them as the system&#8217;s original creators.  This is something that <a href="http://technomancy.us/161">Phil has written about recently</a>, where he dubbed a particular approach to empowering userspace as the &#8220;Emacs Way&#8221;…a strategy that has yielded great dividends in Leiningen and Clojure both.</p>
<p>Enjoy!</p>
<p>Listen:</p>
<span style='text-align:left;display:block;'><p>				<object id='wp-as-113_2-flash' type='application/x-shockwave-flash' data='http://s0.wp.com/wp-content/plugins/audio-player/player.swf' width='290' height='24'>
					<param name='movie' value='http://s0.wp.com/wp-content/plugins/audio-player/player.swf' />
					<param name='FlashVars' value='bg=0xF8F8F8&amp;leftbg=0xEEEEEE&amp;lefticon=0x666666&amp;rightbg=0xCCCCCC&amp;rightbghover=0x999999&amp;righticon=0x666666&amp;righticonhover=0xFFFFFF&amp;text=0x666666&amp;slider=0x666666&amp;track=0xFFFFFF&amp;border=0x666666&amp;loader=0x9FFFB8&amp;soundFile=http%3A%2F%2Fdownloads.mostlylazy.com%2Fepisodes%2Fmostly-lazy-008.mp3' />
					<param name='quality' value='high' />
					<param name='menu' value='false' />
					<param name='bgcolor' value='#FFFFFF' />
					<param name='wmode' value='opaque' />
					Download: <a href="http://downloads.mostlylazy.com/episodes/mostly-lazy-008.mp3">mostly-lazy-008.mp3</a><br />
				</object></p></span>
<p>Or, <a href="http://downloads.mostlylazy.com/episodes/mostly-lazy-008.mp3">download the mp3 directly</a>.</p>
<h3>Discrete Topics</h3>
<ul>
<li>Many questions and topics came from tweets to <a href="http://twitter.com/MostlyLazy">@MostlyLazy</a> <strong>(watch for scheduled show announcements and send us topics and questions!)</strong></li>
<li>Heroku stuffs, including:
<ul>
<li><a href="https://github.com/mmcgrana/">Mark McGranahan</a> gave a talk at the Clojure Conj last year on <a href="http://blip.tv/clojure/mark-mcgranaghan-logs-as-data-5953857">&#8220;Logs as Data&#8221;</a> (inspired by <a href="https://github.com/heroku/pulse">Pulse</a>, a Clojure system for consuming log streams at Heroku)</li>
<li><a href="https://devcenter.heroku.com/articles/buildpacks">Buildpacks</a>, the way projects and apps deployed to Heroku are built</li>
</ul>
</li>
<li><a href="http://www.sonian.com/">Sonian</a></li>
<li><a href="http://lein-survey.herokuapp.com/results">The Leiningen survey</a>, which aimed to get a snapshot of how people use the tool</li>
<li><a href="https://github.com/technomancy/lein-gnome">Scripting Gnome 3 with ClojureScript</a></li>
<li><a href="http://technomancy.us/160">&#8220;The Great Samsung Laptop Fiasco of 2012&#8243;</a></li>
<li>&#8220;Ending is better than mending&#8221; (or not?)</li>
<li>Common tools for code pairing / swarming: <a href="http://linux.die.net/man/1/screen">screen</a> &amp; <a href="http://linux.die.net/man/1/tmux">tmux</a></li>
<li>&#8220;Emacs is a great operating system; if only it had a decent text editor…&#8221;</li>
<li><a href="http://github.com/clojure/tools.nrepl">nREPL</a>, and the Emacs support for it, <a href="https://github.com/kingtim/nrepl.el">nrepl.el</a></li>
<li><a href="http://gobby.0x539.de/trac/">Gobby</a>, a free collaborative editor</li>
<li>A <a href="http://leiningen.org">Leiningen</a> and <a href="http://clojars.org">Clojars</a> status update</li>
<li>The potential vulnerability of builds that rely upon remote / third-party artifact repositories</li>
<li>Maximizing community participation in open source projects</li>
<li>&#8220;Pull requests aren&#8217;t a joking matter, people!&#8221; <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </li>
<li>Empowering userspace, i.e. extending systems in the same way and language used to build the system itself viz. <a href="http://technomancy.us/161">&#8220;the Emacs way&#8221;</a></li>
<li>Phil&#8217;s current reading list:
<ul>
<li><a href="http://www.amazon.com/gp/product/0805071342?ie=UTF8&amp;camp=213733&amp;creative=393185&amp;creativeASIN=0805071342&amp;linkCode=shr&amp;tag=httpcemericom-20&amp;=books&amp;qid=1348228500&amp;sr=1-1&amp;keywords=lady+tasting+tea"><em>The Lady Tasting Tea</em></a> (&#8220;a pop-sci take on how statistics has influenced science&#8221;)</li>
<li><a href="http://www.amazon.com/gp/product/0312862075?ie=UTF8&amp;camp=213733&amp;creative=393185&amp;creativeASIN=0312862075&amp;linkCode=shr&amp;tag=httpcemericom-20"><em>True Names</em></a> (&#8220;sci-fi precursor to cyberpunk&#8221;)</li>
</ul>
</li>
<li>The extensibility and flexibility of the Heroku / buildpack model
<ul>
<li><a href="https://github.com/mariusaeriksen/heroku-buildpack-ocaml">OCaml</a>, <a href="https://github.com/ryanbrainard/heroku-buildpack-factor">Factor</a>, <a href="https://github.com/mbbx6spp/cabal-heroku-buildpack">Haskell</a>, <a href="https://github.com/technomancy/heroku-buildpack-emacs">elisp</a>, and even <a href="https://github.com/hone/heroku-buildpack-jsnes">buildpacks for NES roms</a></li>
<li>&#8220;Making sure we can <a href="https://www.youtube.com/watch?v=BhsTmiK7Q2M">push it to the limit</a>s&#8221; of maximizing the leverage available to users within the system.</li>
</ul>
</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mostlylazy.wordpress.com/113/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mostlylazy.wordpress.com/113/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mostlylazy.com&#038;blog=29079899&#038;post=113&#038;subd=mostlylazy&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mostlylazy.com/2012/09/21/episode-8-phil-hagelberg-empowering-userspace-in-heroku-leiningen-and-emacs/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
<enclosure url="http://downloads.mostlylazy.com/episodes/mostly-lazy-008.mp3" length="81324632" type="audio/mpeg" />
	
		<media:content url="http://2.gravatar.com/avatar/b8ee952abb6620c1c93b3acb46cd391c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cemerick</media:title>
		</media:content>

		<media:content url="http://www.gravatar.com/avatar/171a9b5755cdb090e0c2b3c20a521fbc.jpg?s=128" medium="image">
			<media:title type="html">Phil Hagelberg</media:title>
		</media:content>

		<media:content url="http://downloads.mostlylazy.com/episodes/mostly-lazy-008.mp3" medium="audio">
			<media:player url="http://mostlylazy.com/wp-content/plugins/audio-player/player.swf?soundFile=http://downloads.mostlylazy.com/episodes/mostly-lazy-008.mp3" />
		</media:content>
	</item>
		<item>
		<title>Episode 7: Anthony Grimes; tools and projects; minimum viable snippets</title>
		<link>http://mostlylazy.com/2012/08/30/episode-7-anthony-grimes-tools-and-projects-minimum-viable-snippets/</link>
		<comments>http://mostlylazy.com/2012/08/30/episode-7-anthony-grimes-tools-and-projects-minimum-viable-snippets/#comments</comments>
		<pubDate>Thu, 30 Aug 2012 18:09:00 +0000</pubDate>
		<dc:creator>Chas Emerick</dc:creator>
				<category><![CDATA[Conversation]]></category>
		<category><![CDATA[Episode]]></category>

		<guid isPermaLink="false">http://mostlylazy.com/?p=106</guid>
		<description><![CDATA[I had a lot of fun catching up with Anthony Grimes (@IORayne on Twitter and Raynes in #clojure irc). One of the most prolific Clojure programmers I know (in terms of project count anyway!), Anthony has been a fixture in the community for years, and was the &#8220;sponsoree&#8221; of the 2010 Clojure Conj scholarship. He [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mostlylazy.com&#038;blog=29079899&#038;post=106&#038;subd=mostlylazy&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><img class="alignright" style="margin:10px;" title="Chris Houser" src="http://www.gravatar.com/avatar/54222b6321f0504e0a312c24e97adfc1.jpg?s=128" alt="Chris Houser" width="128" height="128" />I had a lot of fun catching up with <a href="http://blog.raynes.me/">Anthony Grimes</a> (<a href="http://twitter.com/IORayne">@IORayne</a> on Twitter and Raynes in #clojure irc). One of the most prolific Clojure programmers I know (in terms of <a href="https://github.com/Raynes/">project count</a> anyway!), Anthony has been a fixture in the community for years, and was the &#8220;sponsoree&#8221; of the 2010 Clojure Conj scholarship. He works at <a href="http://geni.com">Geni</a>, helping to make their social ancestry site more awesome every day, but we talked about all sorts of stuffs.</p>
<p>Enjoy!</p>
<p>Listen:</p>
<span style='text-align:left;display:block;'><p>				<object id='wp-as-106_3-flash' type='application/x-shockwave-flash' data='http://s0.wp.com/wp-content/plugins/audio-player/player.swf' width='290' height='24'>
					<param name='movie' value='http://s0.wp.com/wp-content/plugins/audio-player/player.swf' />
					<param name='FlashVars' value='bg=0xF8F8F8&amp;leftbg=0xEEEEEE&amp;lefticon=0x666666&amp;rightbg=0xCCCCCC&amp;rightbghover=0x999999&amp;righticon=0x666666&amp;righticonhover=0xFFFFFF&amp;text=0x666666&amp;slider=0x666666&amp;track=0xFFFFFF&amp;border=0x666666&amp;loader=0x9FFFB8&amp;soundFile=http%3A%2F%2Fdownloads.mostlylazy.com%2Fepisodes%2Fmostly-lazy-007.mp3' />
					<param name='quality' value='high' />
					<param name='menu' value='false' />
					<param name='bgcolor' value='#FFFFFF' />
					<param name='wmode' value='opaque' />
					Download: <a href="http://downloads.mostlylazy.com/episodes/mostly-lazy-007.mp3">mostly-lazy-007.mp3</a><br />
				</object></p></span>
<p>Or, <a href="http://downloads.mostlylazy.com/episodes/mostly-lazy-007.mp3">download the mp3 directly</a>.</p>
<h3>Discrete Topics</h3>
<ul>
<li>Some questions and topics came from <a href="http://twitter.com/trptcolin">Colin Jones</a> via <a href="http://twitter.com/MostlyLazy">@MostlyLazy</a> <strong>(watch for scheduled show announcements and send us topics and questions!)</strong></li>
<li><a href="https://github.com/flatland/jiraph">Jiraph</a>, a Clojure graph database implemented at Geni</li>
<li><a href="https://github.com/flatland/">flatland</a>, Geni&#8217;s open source organization (including Anthony, <a href="https://github.com/amalloy/">Alan Malloy</a>, <a href="https://github.com/ninjudd">Justin Balthrop</a>, and <a href="https://github.com/lancepantz/">Lance Bradley</a>)</li>
<li><a href="https://github.com/Raynes/lein-newnew">lein-newnew</a>, <a href="http://leiningen.org">Leiningen</a>&#8216;s extensible scaffolding plugin</li>
<li><a href="http://tryclj.com/">Try Clojure</a>, a browser-based Clojure REPL</li>
<li><a href="http://refheap.com/">RefHeap</a>, a pastebin written in Clojure</li>
<li>Using your cell phone for your primary internet connection
<ul>
<li><a href="http://www.millenicom.com/">Millenicom</a>, dedicated 3G/4G internet access</li>
</ul>
</li>
<li>Whether a programming language should present a <a href="http://blog.fogus.me/2012/08/23/minimum-viable-snippet/">&#8220;minimum viable snippet&#8221;</a>or not
<ul>
<li>The <a href="http://jsoftware.com/">J programming language</a>, an <a href="https://en.wikipedia.org/wiki/APL_%28programming_language%29">APL</a>-style language that happens to <em>not</em> have an easy-to-find minimum viable snippet (<a href="http://www.jsoftware.com/jwiki/Studio/TasteofJPart1">here&#8217;s some</a>)</li>
<li>The impact of superficialities, e.g. rejecting Common Lisp in part due to its UPPER-CASE-SYMBOLS</li>
</ul>
</li>
<li><a href="https://github.com/ninjudd/cake/">Cake</a> (another Clojure project management tool whose contributors <a href="https://groups.google.com/group/leiningen/browse_thread/thread/5a79d02198a91b91">joined forces with the Leiningen team</a>)</li>
<li>Impact of the <a href="http://cemerick.com/2010/09/10/anthony-simpson-will-receive-his-clojure-scholarship-thanks-to-you/">2010 Clojure Conj Scholarship</a></li>
<li>Ambrose Bonnaire-Sergeant and his Google Summer of Code project, <a href="https://github.com/frenchy64/typed-clojure">Typed Clojure</a></li>
<li><a href="http://elixir-lang.org/">Elixir</a>, a Ruby-esque language implemented on top of Erlang with various Clojure influences</li>
<li><a href="https://github.com/rvirding/lfe">Lisp-flavoured Erlang</a></li>
<li>Erlang&#8217;s (lack of) support for Unicode strings</li>
<li>Anthony&#8217;s post on <a href="http://blog.raynes.me/blog/2012/02/01/i-code-with-things-and-stuff/">using Emacs, Sublime Text, and vim when programming in Clojure</a>
<ul>
<li><a href="http://gitorious.org/evil/pages/Home">evil-mode</a>, vim emulation in Emacs</li>
<li><a href="http://unix.rulez.org/~calver/pictures/curves.jpg">&#8220;Vim&#8217;s cliff-like learning curve&#8221;</a></li>
<li><a href="http://eclim.org/">Eclim</a>, a way to embed a vim editor within Eclipse</li>
</ul>
</li>
<li><a href="http://app.kodowa.com/playground">Light Table</a>
<ul>
<li>Uses <a href="codemirror.net">CodeMirror</a> as the basis of its editor</li>
<li><a href="https://c9.io/">Cloud9 IDE, which uses </a><a href="http://ace.ajax.org/">Ace</a><a href="https://c9.io/"> as its foundational editor component</a></li>
</ul>
</li>
<li>Browser-based code editors as a likely instance of an initially low-end technology moving upmarket to disrupt established players (viz. Christensen&#8217;s <a href="http://www.amazon.com/dp/0062060244/ref=as_li_ss_til?tag=httpcemericom-20&amp;camp=213381&amp;creative=390973&amp;linkCode=as4&amp;creativeASIN=0062060244&amp;adid=0Y0SY1Z75ZAHXWHGHAYC&amp;&amp;ref-refURL=http%3A%2F%2Frcm.amazon.com%2Fe%2Fcm%3Flt1%3D_blank%26bc1%3D000000%26IS2%3D1%26bg1%3DFFFFFF%26fc1%3D000000%26lc1%3D0000FF%26t%3Dhttpcemericom-20%26o%3D1%26p%3D8%26l%3Das4%26m%3Damazon%26f%3Difr%26ref%3Dss_til%26asins%3D0062060244"><em>The Innovator&#8217;s Dilemma</em></a>)</li>
<li>Cats. (Sorry, inside baseball there.)</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mostlylazy.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mostlylazy.wordpress.com/106/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mostlylazy.com&#038;blog=29079899&#038;post=106&#038;subd=mostlylazy&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mostlylazy.com/2012/08/30/episode-7-anthony-grimes-tools-and-projects-minimum-viable-snippets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://downloads.mostlylazy.com/episodes/mostly-lazy-007.mp3" length="65562317" type="audio/mpeg" />
<enclosure url="http://downloads.mostlylazy.com/episodes/mostly-lazy-007.mp3" length="65562317" type="audio/mpeg" />
<enclosure url="http://downloads.mostlylazy.com/episodes/mostly-lazy-007.mp3" length="65562317" type="audio/mpeg" />
<enclosure url="http://downloads.mostlylazy.com/episodes/mostly-lazy-007.mp3" length="65562317" type="audio/mpeg" />
<enclosure url="http://downloads.mostlylazy.com/episodes/mostly-lazy-007.mp3" length="65562317" type="audio/mpeg" />
	
		<media:content url="http://2.gravatar.com/avatar/b8ee952abb6620c1c93b3acb46cd391c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cemerick</media:title>
		</media:content>

		<media:content url="http://www.gravatar.com/avatar/54222b6321f0504e0a312c24e97adfc1.jpg?s=128" medium="image">
			<media:title type="html">Chris Houser</media:title>
		</media:content>

		<media:content url="http://downloads.mostlylazy.com/episodes/mostly-lazy-007.mp3" medium="audio">
			<media:player url="http://mostlylazy.com/wp-content/plugins/audio-player/player.swf?soundFile=http://downloads.mostlylazy.com/episodes/mostly-lazy-007.mp3" />
		</media:content>
	</item>
		<item>
		<title>Episode 6: Chris Houser; Clojure surveys; getting the &#8220;little things&#8221; right in languages; Yegge-rama; ClojureScript REPLs</title>
		<link>http://mostlylazy.com/2012/08/14/episode-6-chris-houser-clojure-surveys-getting-the-little-things-right-in-languages-yegge-rama-clojurescript-repls/</link>
		<comments>http://mostlylazy.com/2012/08/14/episode-6-chris-houser-clojure-surveys-getting-the-little-things-right-in-languages-yegge-rama-clojurescript-repls/#comments</comments>
		<pubDate>Tue, 14 Aug 2012 14:32:38 +0000</pubDate>
		<dc:creator>Chas Emerick</dc:creator>
				<category><![CDATA[Conversation]]></category>
		<category><![CDATA[Episode]]></category>

		<guid isPermaLink="false">http://mostlylazy.com/?p=87</guid>
		<description><![CDATA[I was stoked to reboot Mostly Lazy by talking yesterday with Chris Houser (a.k.a. Chouser), this time via Skype.  It&#8217;s good to be back! Enjoy! Listen: Or, download the mp3 directly. Discrete Topics The 2012 State of Clojure survey results came in recently Discussion on the effect of duplicate values in set literals (and duplicate [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mostlylazy.com&#038;blog=29079899&#038;post=87&#038;subd=mostlylazy&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><img class="alignright" style="margin:10px;" title="Chris Houser" src="http://www.gravatar.com/avatar/7a0192050ed6488670acfd3f59405c10?s=128" alt="Chris Houser" width="128" height="128" /></p>
<p>I was stoked to reboot <a href="http://twitter.com/MostlyLazy">Mostly Lazy</a> by talking yesterday with Chris Houser (a.k.a. Chouser), this time via Skype.  It&#8217;s good to be back!</p>
<p>Enjoy!</p>
<p>Listen:</p>
<span style='text-align:left;display:block;'><p>				<object id='wp-as-87_4-flash' type='application/x-shockwave-flash' data='http://s0.wp.com/wp-content/plugins/audio-player/player.swf' width='290' height='24'>
					<param name='movie' value='http://s0.wp.com/wp-content/plugins/audio-player/player.swf' />
					<param name='FlashVars' value='bg=0xF8F8F8&amp;leftbg=0xEEEEEE&amp;lefticon=0x666666&amp;rightbg=0xCCCCCC&amp;rightbghover=0x999999&amp;righticon=0x666666&amp;righticonhover=0xFFFFFF&amp;text=0x666666&amp;slider=0x666666&amp;track=0xFFFFFF&amp;border=0x666666&amp;loader=0x9FFFB8&amp;soundFile=http%3A%2F%2Fdownloads.mostlylazy.com%2Fepisodes%2Fmostly-lazy-006.mp3' />
					<param name='quality' value='high' />
					<param name='menu' value='false' />
					<param name='bgcolor' value='#FFFFFF' />
					<param name='wmode' value='opaque' />
					Download: <a href="http://downloads.mostlylazy.com/episodes/mostly-lazy-006.mp3">mostly-lazy-006.mp3</a><br />
				</object></p></span>
<p>Or, <a href="http://downloads.mostlylazy.com/episodes/mostly-lazy-006.mp3">download the mp3 directly</a>.</p>
<h3>Discrete Topics</h3>
<ul>
<li>The <a href="http://cemerick.com/2012/08/06/results-of-the-2012-state-of-clojure-survey/">2012 State of Clojure survey results</a> came in recently</li>
<li>Discussion on the effect of duplicate values in set literals (and duplicate keys in map literals) in Clojure (from <a href="http://groups.google.com/group/clojure/browse_frm/thread/6ebaec00817772">a thread on the main Clojure list</a>; here&#8217;s a link to <a href="http://groups.google.com/group/clojure/msg/777a8ce121002ca1">my post in that thread</a> that I described on twitter as a bit of &#8220;software archeology&#8221;)</li>
<li>Clojure&#8217;s &#8220;pace of development&#8221; / cadence and the failure modes of language development</li>
<li>Potentially customizing the characteristics of thread pools (and more?) used by agents and futures (from <a href="http://groups.google.com/group/clojure-dev/browse_frm/thread/854950db75373efe">a thread on the clojure-dev list</a>)</li>
<li>Rough corners around agents, multimethods, namespaces, etc., and the potential for alternative implementations of the same</li>
<li>The podcast has now been anthropomorphized into a Twitter account <a href="http://twitter.com/MostlyLazy">@MostlyLazy</a> — tweet your questions, topics, etc. there, and</li>
<li>Chouser&#8217;s precis re: <a href="http://lonocloud.com/">Lonocloud</a> now that he&#8217;s been working there for some months</li>
<li>The sad statuses of <a href="http://github.com/cemerick/raposo">Raposo</a> and Longbottom, related to Chas and Chris&#8217; respective talks at <a href="http://blip.tv/clojure/chas-emerick-modeling-the-world-probabilistically-using-bayesian-networks-in-clojure-5961126">Clojure Conj</a>and Clojure/West (link to Chris&#8217; talk pending the release of its video)
<ul>
<li>Check out <a href="https://github.com/mmcgrana/clj-stacktrace">clj-stacktrace</a>, the nexus for all improvements to Clojure stack traces</li>
</ul>
</li>
<li>Get your <a href="https://docs.google.com/spreadsheet/viewform?formkey=dEdOeDJtQUlpVFZwNE8ydEdSS1JuLVE6MQ">talk submissions for the third Clojure Conj</a> in; CFP closes August 24th</li>
<li><a href="http://www.infoq.com/presentations/What-Sucks-about-Clojure-and-Why-You-ll-Love-It-Anyway"><em>What sucks about Clojure…and why you&#8217;ll love it anyway</em></a>, from Clojure/West</li>
<li><a href="http://clojurewest.org/sessions#gabriel"><em>Engineering(,) A Path to Science: &#8220;I don’t want to die in a language I can’t understand&#8221;</em></a>, Richard Gabriel&#8217;s talk at Clojure/West (video link not yet available)</li>
<li>In the aftermath of Steve Yegge&#8217;s <a href="https://plus.google.com/u/0/110981030061712822816/posts/KaSKeg4vQtz">recent tenuous association of different approaches to solving problems in software with dubious terminology from the political sphere</a>:
<ul>
<li>Recognition of Yegge&#8217;s prior good works, e.g. <a href="http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html">Execution in the Kingdom of the Nouns</a></li>
<li><em><a href="http://www.yosefk.com/blog/what-worse-is-better-vs-the-right-thing-is-really-about.html?">What “Worse is Better vs The Right Thing” is really about</a></em>, talking about how economic choices influence technology choices</li>
</ul>
</li>
<li><a href="https://github.com/clojure-clutch/clutch#using-clojurescript-to-write-couchdb-views-">Using ClojureScript to write CouchDB views</a>, and writing PostgreSQL stored procedures via <a href="http://code.google.com/p/plv8js/">plv8</a></li>
<li><a href="https://github.com/cemerick/piggieback">Piggieback</a>, which enables any nREPL-based Clojure tools (e.g. <a href="http://leningen.org">Leiningen</a>, <a href="http://code.google.com/p/counterclockwise/">Counterclockwise</a>, <a href="https://github.com/kingtim/nrepl.el">nrepl.el</a>, <a href="https://github.com/trptcolin/reply/">REPL-y</a>, etc.) to start up and use a ClojureScript REPL as easily as one can from a Clojure REPL on a command-line terminal.</li>
<li><a href="https://github.com/kingtim/nrepl.el">nrepl.el</a> is looking like a decent, well-supported alternative to SLIME for Emacs users wanting to use nREPL</li>
<li>&#8220;I&#8217;ve been using Linux for a long time, I have low standards!&#8221;</li>
</ul>
<p>Finally, a non sequitur: Chris kindly responded to <a href="https://twitter.com/cemerick/status/234313038273064960">my RFY (Request for Yak)</a> with this fine example of an indecently-shaven specimen:</p>
<p><a href="http://mostlylazy.files.wordpress.com/2012/08/a13-yak.jpg"><img class="alignleft size-full wp-image-88" title="An indecently-shaved yak" src="http://mostlylazy.files.wordpress.com/2012/08/a13-yak.jpg?w=590" alt="An indecently-shaved yak"   /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mostlylazy.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mostlylazy.wordpress.com/87/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mostlylazy.com&#038;blog=29079899&#038;post=87&#038;subd=mostlylazy&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mostlylazy.com/2012/08/14/episode-6-chris-houser-clojure-surveys-getting-the-little-things-right-in-languages-yegge-rama-clojurescript-repls/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
<enclosure url="http://downloads.mostlylazy.com/episodes/mostly-lazy-006.mp3" length="88387838" type="audio/mpeg" />
<enclosure url="http://downloads.mostlylazy.com/episodes/mostly-lazy-006.mp3" length="88387838" type="audio/mpeg" />
<enclosure url="http://downloads.mostlylazy.com/episodes/mostly-lazy-006.mp3" length="88387838" type="audio/mpeg" />
	
		<media:content url="http://2.gravatar.com/avatar/b8ee952abb6620c1c93b3acb46cd391c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cemerick</media:title>
		</media:content>

		<media:content url="http://www.gravatar.com/avatar/7a0192050ed6488670acfd3f59405c10?s=128" medium="image">
			<media:title type="html">Chris Houser</media:title>
		</media:content>

		<media:content url="http://mostlylazy.files.wordpress.com/2012/08/a13-yak.jpg" medium="image">
			<media:title type="html">An indecently-shaved yak</media:title>
		</media:content>

		<media:content url="http://downloads.mostlylazy.com/episodes/mostly-lazy-006.mp3" medium="audio">
			<media:player url="http://mostlylazy.com/wp-content/plugins/audio-player/player.swf?soundFile=http://downloads.mostlylazy.com/episodes/mostly-lazy-006.mp3" />
		</media:content>
	</item>
		<item>
		<title>Episode 0.0.5: Chris Houser at Clojure Conj 2011</title>
		<link>http://mostlylazy.com/2012/03/13/episode-0-0-5-chris-houser-at-clojure-conj-2011/</link>
		<comments>http://mostlylazy.com/2012/03/13/episode-0-0-5-chris-houser-at-clojure-conj-2011/#comments</comments>
		<pubDate>Tue, 13 Mar 2012 17:40:39 +0000</pubDate>
		<dc:creator>Chas Emerick</dc:creator>
				<category><![CDATA[Clojure Conj]]></category>
		<category><![CDATA[Conversation]]></category>
		<category><![CDATA[Episode]]></category>

		<guid isPermaLink="false">http://mostlylazy.com/?p=78</guid>
		<description><![CDATA[Recorded November 12th, 2011, the fourth and final recording in a series of conversations from Clojure Conj 2011. Chris Houser (usually known as chouser online) has been working with Clojure longer than nearly anyone else; he started tinkering with the language in early 2008, and was a fixture in #clojure irc and on the mailing [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mostlylazy.com&#038;blog=29079899&#038;post=78&#038;subd=mostlylazy&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><em>Recorded November 12th, 2011, the fourth and final recording in a <a href="http://mostlylazy.com/category/clojure-conj/">series of conversations from <em>Clojure Conj 2011</em></a>.</em></p>
<p>Chris Houser (usually known as <a href="http://twitter.com/chrishouser">chouser</a> online) has been working with Clojure longer than nearly anyone else; he started tinkering with the language in early 2008, and was a fixture in <a href="http://webchat.freenode.net/?channels=#clojure">#clojure irc</a> and on the <a href="http://groups.google.com/group/clojure">mailing list</a> for years.  His contributions to the language, early libraries, and community through his always genial and insightful presence are hard to overstate.  More recently, he has coauthored the excellent <a href="http://www.joyofclojure.com/">Joy of Clojure</a> along with <a href="http://blog.fogus.me/">Michael Fogus</a>, and is now working with Clojure daily over at <a href="http://lonocloud.com/">Lonocloud</a>.</p>
<p>It&#8217;s been my privilege to know and work with Chris a bit over the years, and, as always, it was great to talk with him in person.</p>
<p>Enjoy!</p>
<p>Listen:</p>
<span style='text-align:left;display:block;'><p>				<object id='wp-as-78_5-flash' type='application/x-shockwave-flash' data='http://s0.wp.com/wp-content/plugins/audio-player/player.swf' width='290' height='24'>
					<param name='movie' value='http://s0.wp.com/wp-content/plugins/audio-player/player.swf' />
					<param name='FlashVars' value='bg=0xF8F8F8&amp;leftbg=0xEEEEEE&amp;lefticon=0x666666&amp;rightbg=0xCCCCCC&amp;rightbghover=0x999999&amp;righticon=0x666666&amp;righticonhover=0xFFFFFF&amp;text=0x666666&amp;slider=0x666666&amp;track=0xFFFFFF&amp;border=0x666666&amp;loader=0x9FFFB8&amp;soundFile=http%3A%2F%2Fdownloads.mostlylazy.com%2Fepisodes%2Fmostly-lazy-0.0.5.mp3' />
					<param name='quality' value='high' />
					<param name='menu' value='false' />
					<param name='bgcolor' value='#FFFFFF' />
					<param name='wmode' value='opaque' />
					Download: <a href="http://downloads.mostlylazy.com/episodes/mostly-lazy-0.0.5.mp3">mostly-lazy-0.0.5.mp3</a><br />
				</object></p></span>
<p>Or, <a href="http://downloads.mostlylazy.com/episodes/mostly-lazy-0.0.5.mp3">download the mp3 directly</a>.</p>
<h3>Discrete Topics</h3>
<ul>
<li>&#8220;Everything I learned, I [learned] on irc?!&#8221;</li>
<li>Macros (a.k.a. &#8220;compile time metaprogramming&#8221;) in Scala? <a href="http://scalamacros.org/">Project Kepler</a></li>
<li>Rich Hickey once made a visit to the Western Mass. Developer&#8217;s Group, and delivered one of his great early talks on Clojure, complete with an ants demo.  <a href="http://cemerick.com/2008/03/21/western-mass-developers-group-and-snowtide-host-rich-hickey-and-clojure/">My post on the event</a>, and <a href="http://blip.tv/clojure/clojure-concurrency-819147">video</a>.</li>
<li>&#8220;Tooling is a canard.&#8221;</li>
<li>Chouser wrote &#8220;the first ClojureScript&#8221; years ago, a proof of concept using JavaScript as a host for a Clojure implementation.  (Don&#8217;t go looking for it, I think it&#8217;s dropped off the internets by now; check out the &#8220;real&#8221; <a href="https://github.com/clojure/clojurescript">ClojureScript</a> if you want a Clojure for JavaScript.)</li>
<li><a href="http://clojure.github.com/clojure-contrib/error-kit-api.html">error-kit</a> — don&#8217;t use that though, you should almost surely use <a href="https://github.com/scgilardi/slingshot">Slingshot</a> instead for advanced error handling</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mostlylazy.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mostlylazy.wordpress.com/78/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mostlylazy.com&#038;blog=29079899&#038;post=78&#038;subd=mostlylazy&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mostlylazy.com/2012/03/13/episode-0-0-5-chris-houser-at-clojure-conj-2011/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
<enclosure url="http://downloads.mostlylazy.com/episodes/mostly-lazy-0.0.5.mp3" length="69483620" type="audio/mpeg" />
	
		<media:content url="http://2.gravatar.com/avatar/b8ee952abb6620c1c93b3acb46cd391c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cemerick</media:title>
		</media:content>

		<media:content url="http://downloads.mostlylazy.com/episodes/mostly-lazy-0.0.5.mp3" medium="audio">
			<media:player url="http://mostlylazy.com/wp-content/plugins/audio-player/player.swf?soundFile=http://downloads.mostlylazy.com/episodes/mostly-lazy-0.0.5.mp3" />
		</media:content>
	</item>
		<item>
		<title>Episode 0.0.4: Antoni Batchelli and Hugo Duncan at Clojure Conj 2011</title>
		<link>http://mostlylazy.com/2012/02/03/episode-0-0-4-antoni-batchelli-and-hugo-duncan-at-clojure-conj-2011/</link>
		<comments>http://mostlylazy.com/2012/02/03/episode-0-0-4-antoni-batchelli-and-hugo-duncan-at-clojure-conj-2011/#comments</comments>
		<pubDate>Fri, 03 Feb 2012 18:15:08 +0000</pubDate>
		<dc:creator>Chas Emerick</dc:creator>
				<category><![CDATA[Clojure Conj]]></category>
		<category><![CDATA[Conversation]]></category>
		<category><![CDATA[Episode]]></category>

		<guid isPermaLink="false">http://mostlylazy.wordpress.com/?p=67</guid>
		<description><![CDATA[Recorded November 12th, 2011, third in a series of conversations from Clojure Conj 2011. I caught up with Hugo Duncan and Antoni Batchelli (everyone calls him Toni during one of the lunch breaks at the Conj.  These guys have been on a tear with Pallet, an open source Clojure project that Hugo started in early [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mostlylazy.com&#038;blog=29079899&#038;post=67&#038;subd=mostlylazy&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><em>Recorded November 12th, 2011, third in a <a href="http://mostlylazy.com/category/clojure-conj/">series of conversations from <em>Clojure Conj 2011</em></a>.</em></p>
<p>I caught up with <a href="http://hugoduncan.org/">Hugo Duncan</a> and <a href="http://tbatchelli.org/">Antoni Batchelli</a> (everyone calls him Toni <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  during one of the lunch breaks at the Conj.  These guys have been on a tear with <a href="http://palletops.com/">Pallet</a>, an open source Clojure project that Hugo started in early 2010 to shave one of the hairiest yaks around, the automation of provisioning and management of computing infrastructure.  The result is a tool and library that provides a classically Clojure abstraction for controlling nearly any environment, from cloud nodes to virtual machines to the rackmounts you have downstairs.  Since it is their full-time job — Toni and Hugo have built a business around the project — most of our discussion centers on Pallet, its history, and how people are using it.</p>
<p>Near the end, Hugo and I talk some about his other work in the Clojure world, which has generally been related to tooling around Emacs and Maven.</p>
<p>Enjoy!</p>
<p>Listen:</p>
<span style='text-align:left;display:block;'><p>				<object id='wp-as-67_6-flash' type='application/x-shockwave-flash' data='http://s0.wp.com/wp-content/plugins/audio-player/player.swf' width='290' height='24'>
					<param name='movie' value='http://s0.wp.com/wp-content/plugins/audio-player/player.swf' />
					<param name='FlashVars' value='bg=0xF8F8F8&amp;leftbg=0xEEEEEE&amp;lefticon=0x666666&amp;rightbg=0xCCCCCC&amp;rightbghover=0x999999&amp;righticon=0x666666&amp;righticonhover=0xFFFFFF&amp;text=0x666666&amp;slider=0x666666&amp;track=0xFFFFFF&amp;border=0x666666&amp;loader=0x9FFFB8&amp;soundFile=http%3A%2F%2Fdownloads.mostlylazy.com%2Fepisodes%2Fmostly-lazy-0.0.4.mp3' />
					<param name='quality' value='high' />
					<param name='menu' value='false' />
					<param name='bgcolor' value='#FFFFFF' />
					<param name='wmode' value='opaque' />
					Download: <a href="http://downloads.mostlylazy.com/episodes/mostly-lazy-0.0.4.mp3">mostly-lazy-0.0.4.mp3</a><br />
				</object></p></span>
<p>Or, <a href="http://downloads.mostlylazy.com/episodes/mostly-lazy-0.0.4.mp3">download the mp3 directly</a>.</p>
<h3>Discrete Topics</h3>
<ul>
<li><a href="http://clojurewest.org/">Clojure/West</a>, happening March 16-17, 2012 — be there!</li>
<li><a href="http://disclojure.org/">Disclojure</a>, a great stream of links to Clojure tutorials and news maintained by Toni</li>
<li><a href="http://palletops.com/">Pallet</a>, representing computing infrastructure with Clojure abstractions
<ul>
<li>Chas has used pallet to automate provisioning and configuration of Clojure webapps and CouchDB clusters (<a href="http://cemerick.com/2010/11/02/continuous-deployment-of-clojure-web-applications/">old</a>, <a href="http://cemerick.com/2010/05/12/provisioning-administration-and-deployment-of-couchdb-java-tomcat/">OLD</a> links!)</li>
<li>Often mentioned in the same breath as Chef and Puppet on the now-defunct <em>IT Management and Cloud Podcast</em> (by <a href="http://coteindustries.com/">Michael Cote</a> and <a href="http://www.johnmwillis.com">John M. Willis</a>)</li>
<li><a href="https://github.com/nathanmarz/storm">Storm</a>, by <a href="http://nathanmarz.com/">Nathan Marz</a> @ Twitter — uses pallet to simplify deployment and operations</li>
<li><a href="http://palletops.com/create-hadoop-clusters-the-easy-peasy-way-wit/">pallet-hadoop</a> — uses pallet as a library to automate hadoop operations</li>
<li>Support for tons of different computing infrastructures:
<ul>
<li><a href="http://code.google.com/p/jclouds/">jclouds</a> — provision &amp; control resources on dozens? of different clouds</li>
<li><a href="https://github.com/tbatchelli/vmfest">vmfest</a> — layer on top of VirtualBox that allows you to use it as a local cloud &#8220;provider&#8221;</li>
<li><a href="http://palletops.com/working-with-non-cloud-servers-in-pallet/">node-list</a> — control non-cloud computing infrastructure, i.e. in-house resources</li>
</ul>
</li>
<li><a href="http://aws.amazon.com/elasticbeanstalk/">AWS&#8217; Elastic Beanstalk</a></li>
<li><a href="http://www.gogrid.com/">GoGrid</a> (using Clojure because of Pallet!)</li>
</ul>
</li>
<li><a href="https://github.com/technomancy/swank-clojure">swank-clojure</a></li>
<li><a href="http://docs.oracle.com/javase/6/docs/technotes/guides/jpda/index.html">JPDA</a> (Java Platform Debug Architecture), includes the Java Debug Interface</li>
<li><a href="http://georgejahad.com/clojure/cdt.html">Clojure Debug Toolkit</a></li>
<li>Alternative Maven support for Clojure, written in Clojure: <a href="http://palletops.com/zi-the-maven-plugin-in-clojure/">zi</a></li>
<li><a href="https://github.com/talios/clojure-maven-plugin">clojure-maven-plugin</a> (by <a href="https://twitter.com/#!/talios">Mark Derricut</a> a.k.a. talios)</li>
<li><a href="https://github.com/technomancy/leiningen">Leiningen</a></li>
</ul>
<h3>Outro</h3>
<p>This episode&#8217;s outro is a piece by <a href="http://literateprogrammer.blogspot.com/">Christopher Ford</a>. Using a <a href="https://github.com/ctford/overtunes/blob/master/src/overtunes/instruments/organ_cornet.clj">synthesized cornet by Jennifer Smith</a>, he produced an abbreviated version of a piece where a set of chords continually fall out of time with a simple five-note melody.  Of course, <a href="https://github.com/ctford/overtunes/blob/master/src/overtunes/songs/before.clj">full source to the piece</a> is available for your <a href="http://overtone.github.com/">Overtone</a> hacking delight.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mostlylazy.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mostlylazy.wordpress.com/67/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mostlylazy.com&#038;blog=29079899&#038;post=67&#038;subd=mostlylazy&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mostlylazy.com/2012/02/03/episode-0-0-4-antoni-batchelli-and-hugo-duncan-at-clojure-conj-2011/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
<enclosure url="http://downloads.mostlylazy.com/episodes/mostly-lazy-0.0.4.mp3" length="41396685" type="audio/mpeg" />
	
		<media:content url="http://2.gravatar.com/avatar/b8ee952abb6620c1c93b3acb46cd391c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cemerick</media:title>
		</media:content>

		<media:content url="http://downloads.mostlylazy.com/episodes/mostly-lazy-0.0.4.mp3" medium="audio">
			<media:player url="http://mostlylazy.com/wp-content/plugins/audio-player/player.swf?soundFile=http://downloads.mostlylazy.com/episodes/mostly-lazy-0.0.4.mp3" />
		</media:content>
	</item>
		<item>
		<title>Episode 0.0.3: Chris Granger at Clojure Conj 2011</title>
		<link>http://mostlylazy.com/2011/12/30/episode-0-0-3-chris-granger-at-clojure-conj-2011/</link>
		<comments>http://mostlylazy.com/2011/12/30/episode-0-0-3-chris-granger-at-clojure-conj-2011/#comments</comments>
		<pubDate>Fri, 30 Dec 2011 20:20:30 +0000</pubDate>
		<dc:creator>Chas Emerick</dc:creator>
				<category><![CDATA[Clojure Conj]]></category>
		<category><![CDATA[Conversation]]></category>
		<category><![CDATA[Episode]]></category>

		<guid isPermaLink="false">http://mostlylazy.com/?p=48</guid>
		<description><![CDATA[Recorded November 12th, 2011, second in a series of conversations from Clojure Conj 2011. I had a chance to sit down with Chris Granger on the last night of the Conj.  It&#8217;s been fun to watch him over the past months put out a set of really pleasant-to-use and extraordinarily well-documented and well-packaged libraries, and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mostlylazy.com&#038;blog=29079899&#038;post=48&#038;subd=mostlylazy&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><em>Recorded November 12th, 2011, second in a <a href="http://mostlylazy.com/category/clojure-conj/">series of conversations from <em>Clojure Conj 2011</em></a>.</em></p>
<p>I had a chance to sit down with <a href="http://chris-granger.com/">Chris Granger</a> on the last night of the Conj.  It&#8217;s been fun to watch him over the past months put out a set of really pleasant-to-use and extraordinarily well-documented and well-packaged libraries, and he&#8217;s turned into a great presence around the Clojure sphere in general.  Chris works with Clojure daily for his current employer, <a href="https://www.readyforzero.com/">ReadyForZero</a> — a <a href="http://ycombinator.com">Y Combinator</a>-funded startup that helps people get out of debt — where he helped port a Python &amp; Django codebase over to be 100% Clojure.  (Yup, the big tagline for this episode is, &#8220;Y Combinator startup bets business on Clojure!&#8221; <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />   In addition, he has a unique history, having recently worked as a program manager Microsoft, working on Visual Studio…so, our discussion was wide-ranging.</p>
<p>After we recorded this, it was announced that Chris will be teaching <a href="http://clojurewest.org/training-clojure-web/">two training sessions on Clojure web development</a> at the new <a href="http://clojurewest.org/">Clojure/West conference</a> in March.  If you&#8217;re new to Clojure and want to jump-start your skills for it in the web space, signing up for one of those sessions would likely be a good way to get further faster.</p>
<p>Enjoy!</p>
<p>(BTW, don&#8217;t miss the notes on the Overtone-produced intro and outro below…)</p>
<p>Listen:</p>
<span style='text-align:left;display:block;'><p>				<object id='wp-as-48_7-flash' type='application/x-shockwave-flash' data='http://s0.wp.com/wp-content/plugins/audio-player/player.swf' width='290' height='24'>
					<param name='movie' value='http://s0.wp.com/wp-content/plugins/audio-player/player.swf' />
					<param name='FlashVars' value='bg=0xF8F8F8&amp;leftbg=0xEEEEEE&amp;lefticon=0x666666&amp;rightbg=0xCCCCCC&amp;rightbghover=0x999999&amp;righticon=0x666666&amp;righticonhover=0xFFFFFF&amp;text=0x666666&amp;slider=0x666666&amp;track=0xFFFFFF&amp;border=0x666666&amp;loader=0x9FFFB8&amp;soundFile=http%3A%2F%2Fdownloads.mostlylazy.com%2Fepisodes%2Fmostly-lazy-0.0.3.mp3' />
					<param name='quality' value='high' />
					<param name='menu' value='false' />
					<param name='bgcolor' value='#FFFFFF' />
					<param name='wmode' value='opaque' />
					Download: <a href="http://downloads.mostlylazy.com/episodes/mostly-lazy-0.0.3.mp3">mostly-lazy-0.0.3.mp3</a><br />
				</object></p></span>
<p>Or, <a href="http://downloads.mostlylazy.com/episodes/mostly-lazy-0.0.3.mp3">download the mp3 directly</a>.</p>
<h3>Discrete Topics</h3>
<ul>
<li>Chris is known as <a href="http://twitter.com/ibdknox">ibdknox</a> on Twitter and elsewhere</li>
<li>Lead developer for:
<ul>
<li><a href="http://webnoir.org/">Noir</a>, a web microframework that sits on top of Ring and Compojure
<ul>
<li>similar in spirit to Ruby&#8217;s <a href="http://www.sinatrarb.com/">Sinatra</a>, provides &#8220;sensible defaults&#8221;</li>
</ul>
</li>
<li><a href="http://sqlkorma.com/">Korma</a>, a Clojure abstraction over SQL (<em>not</em>an ORM!)
<ul>
<li>Efficiently write composable SQL in Clojure</li>
<li>similar to LINQ to SQL, Python&#8217;s sqlalchemy<br />
<em></em></li>
<li><em>(We used Korma for some RDBMS examples in <a href="http://www.clojurebook.com/">the book</a>! — Chas)</em></li>
</ul>
</li>
<li><a href="https://github.com/ibdknox/pinot">Pinot</a>, a ClojureScript companion to Noir
<ul>
<li>Clojure-idiomatic browser DOM manipulation (instead of using gclosure directly) and canvas API</li>
</ul>
</li>
</ul>
</li>
<li>Chris was formerly a program manager for the Visual Basic and C# experience in <a href="https://www.microsoft.com/visualstudio/en-us">Visual Studio</a> at Microsoft</li>
<li><a href="http://code.google.com/p/counterclockwise/">Counterclockwise</a>, the Clojure plugin for Eclipse</li>
<li>Support for Clojure in TextMate via <a href="https://github.com/swannodette/textmate-clojure">textmate-clojure</a></li>
<li>clojure-jack-in, the newest (simpler) entry point for <a href="https://github.com/technomancy/swank-clojure">swank-clojure</a></li>
<li><a href="http://groups.google.com/group/leiningen/browse_frm/thread/5a79d02198a91b91#">Leiningen and cake have merged forces</a></li>
<li>cljs-watch, a ClojureScript directory watcher</li>
<li><a href="http://clojurewest.org/">Clojure/West</a></li>
</ul>
<h3>Bumpers</h3>
<p><a title="Episode 0.0.2: Sam Aaron and Overtone at Clojure Conj 2011" href="http://mostlylazy.com/2011/11/18/episode-0-0-2-sam-aaron-and-overtone-at-clojure-conj-2011/">Last episode</a>, I put the call out for people to send in <a href="http://overtone.github.com/">Overtone</a>-produced sounds to serve as intro and outro pieces.  Here&#8217;s some info on the clips used in this episode.</p>
<h4>Intro</h4>
<p><a href="http://twitter.com/jennifersmithco">Jen Smith</a> coded up bell sounds from scratch using Overtone&#8217;s sine-wave ugens, and then composed them to produce a rendition of <a href="https://www.youtube.com/watch?v=5QsRDpsItq0"><em>Troika</em></a>, the fourth movement of <a href="https://en.wikipedia.org/wiki/Lieutenant_Kij%C3%A9_%28Prokofiev%29">Lieutenant Kije</a> by <a href="https://en.wikipedia.org/wiki/Sergei_Prokofiev">Sergei Prokofiev</a>.  The code itself ended up being added as <a href="https://github.com/overtone/overtone/blob/master/examples/bells.clj">an example in the core Overtone repo</a>, and was discussed at some length on the Overtone mailing list <a href="http://groups.google.com/group/overtone/browse_frm/thread/46a95089dbb26506">here</a>.</p>
<p>(Note: when I recorded the results of Jen&#8217;s code, I used a bell metronome with a beat of 250; perhaps that&#8217;s not &#8220;correct&#8221;, but it suited my personal taste for the tune. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<h4>Outro</h4>
<p>Produced by <a href="http://damionjunk.com/">Damion Junk</a>, the intro was part of a <a href="http://soundcloud.com/moogatronic/descending-moon">longer track</a> <em>generated</em> by a bracketed <a href="https://en.wikipedia.org/wiki/L-system">L-system</a>, which is &#8220;a variant of a formal grammar, most famously used to model the growth processes of plant development&#8221;.  Damion used <a href="https://github.com/damionjunk/i601LSounder">a library he wrote for working with L-systems</a> to produce generated data for Overtone.  Here&#8217;s the source for the specific L-system he used for the intro track:</p>
<p><pre class="brush: clojure;">
(def descending-moon {:v &quot;RN+-&lt;&gt;[]&quot;
                      :omega &quot;&gt;&gt;&gt;[-----N][++N][++++++N][&lt;&lt;&lt;NR]&quot;
                      :productions {\N &quot;RN++NN----N&quot;
                                    \R &quot;RR&quot;
                                    \&gt; &quot;&gt;&quot;
                                    \&lt; &quot;&lt;&quot;
                                    \+ &quot;+&quot;
                                    \- &quot;-&quot;
                                    \[ &quot;[&quot;
                                    \] &quot;]&quot;}})
 </pre></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mostlylazy.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mostlylazy.wordpress.com/48/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mostlylazy.com&#038;blog=29079899&#038;post=48&#038;subd=mostlylazy&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mostlylazy.com/2011/12/30/episode-0-0-3-chris-granger-at-clojure-conj-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://downloads.mostlylazy.com/episodes/mostly-lazy-0.0.3.mp3" length="57393048" type="audio/mpeg" />
	
		<media:content url="http://2.gravatar.com/avatar/b8ee952abb6620c1c93b3acb46cd391c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cemerick</media:title>
		</media:content>

		<media:content url="http://downloads.mostlylazy.com/episodes/mostly-lazy-0.0.3.mp3" medium="audio">
			<media:player url="http://mostlylazy.com/wp-content/plugins/audio-player/player.swf?soundFile=http://downloads.mostlylazy.com/episodes/mostly-lazy-0.0.3.mp3" />
		</media:content>
	</item>
		<item>
		<title>Episode 0.0.2: Sam Aaron and Overtone at Clojure Conj 2011</title>
		<link>http://mostlylazy.com/2011/11/18/episode-0-0-2-sam-aaron-and-overtone-at-clojure-conj-2011/</link>
		<comments>http://mostlylazy.com/2011/11/18/episode-0-0-2-sam-aaron-and-overtone-at-clojure-conj-2011/#comments</comments>
		<pubDate>Fri, 18 Nov 2011 18:15:25 +0000</pubDate>
		<dc:creator>Chas Emerick</dc:creator>
				<category><![CDATA[Clojure Conj]]></category>
		<category><![CDATA[Conversation]]></category>
		<category><![CDATA[Episode]]></category>

		<guid isPermaLink="false">http://mostlylazy.com/?p=35</guid>
		<description><![CDATA[Recorded November 12th, 2011, first in a series of conversations from Clojure Conj 2011. I had the great pleasure of hanging out with Sam Aaron both before and after his presentation at the Conj.  In that presentation, he delivered a brief survey of the history and state of affairs in computer music and an overview [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mostlylazy.com&#038;blog=29079899&#038;post=35&#038;subd=mostlylazy&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><em>Recorded November 12th, 2011, first in <a href="http://mostlylazy.com/category/clojure-conj/">a series of conversations from <em>Clojure Conj 2011</em></a>.<br />
</em></p>
<p>I had the great pleasure of hanging out with <a href="http://sam.aaron.name/">Sam Aaron</a> both before and after <a href="http://clojure-conj.org/schedule#aaron">his presentation</a> at the <a href="http://clojure-conj.org/">Conj</a>.  In that presentation, he delivered a brief survey of the history and state of affairs in computer music and an overview of <a href="http://overtone.github.com/">Overtone</a> — an &#8220;open source audio environment&#8221; built with Clojure — with live, interactive musical performances interspersed throughout to demonstrate some of its capabilities.</p>
<p>This was the last talk of the Conj, and Sam and I recorded this very shortly afterwards.  I don&#8217;t know if the organizers were being purposeful about it, but that positioning was brilliant: I (and, I suspect, many others) were so completely blown away by what Sam and the rest of the Overtone team had achieved and by his palpable, absolutely riveting delivery and performance, that I&#8217;m not sure the conference could have carried on effectively had he been scheduled midway through.  The reaction of the crowd was jubilant throughout, helping Sam off the stage with a rousing standing ovation of the sort that you hear more often in concert halls and theatres and ballparks than at technical conferences.</p>
<p>For my part, I was stunned.  Totally beyond the cerebral appreciation for the application of Clojure and its powers of abstraction to a domain like music (something that many programmers likely view as &#8220;untouchable&#8221; in various ways), I always love seeing someone so clearly consumed with passion for their craft.  The sight is inspiring and humbling and I was on a high for the rest of the night.</p>
<p>So, if I sound more enthused than usual through the course of my conversation with Sam…that&#8217;s why. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>We talked a bit about his explorations with producing music using Ruby, his path to helping to combine Clojure and SuperCollider into Overtone, the connections between programming, musicality, creativity, and fearlessness, and what he has in mind to help us all make some music, have some fun doing it, and help our friends do the same.</p>
<blockquote><p>&#8220;Sam, you&#8217;re badass!&#8221;</p>
<p style="padding-left:30px;">— Rich Hickey, after Sam&#8217;s Overtone presentation</p>
</blockquote>
<p>Listen:</p>
<span style='text-align:left;display:block;'><p>				<object id='wp-as-35_8-flash' type='application/x-shockwave-flash' data='http://s0.wp.com/wp-content/plugins/audio-player/player.swf' width='290' height='24'>
					<param name='movie' value='http://s0.wp.com/wp-content/plugins/audio-player/player.swf' />
					<param name='FlashVars' value='bg=0xF8F8F8&amp;leftbg=0xEEEEEE&amp;lefticon=0x666666&amp;rightbg=0xCCCCCC&amp;rightbghover=0x999999&amp;righticon=0x666666&amp;righticonhover=0xFFFFFF&amp;text=0x666666&amp;slider=0x666666&amp;track=0xFFFFFF&amp;border=0x666666&amp;loader=0x9FFFB8&amp;soundFile=http%3A%2F%2Fdownloads.mostlylazy.com%2Fepisodes%2Fmostly-lazy-0.0.2.mp3' />
					<param name='quality' value='high' />
					<param name='menu' value='false' />
					<param name='bgcolor' value='#FFFFFF' />
					<param name='wmode' value='opaque' />
					Download: <a href="http://downloads.mostlylazy.com/episodes/mostly-lazy-0.0.2.mp3">mostly-lazy-0.0.2.mp3</a><br />
				</object></p></span>
<p>Or, <a href="http://downloads.mostlylazy.com/episodes/mostly-lazy-0.0.2.mp3">download the mp3 directly</a>.</p>
<p><em>(Note: while we were recording, we had a number of people stumble into the room we were recording in, so there are some hard stops and odd audio transitions here and there each time we restarted.)</em></p>
<p>Discrete topics mentioned:</p>
<ul>
<li>The <a href="http://monome.org/devices">monome</a>, which Sam used to control Overtone on stage</li>
<li><a href="https://en.wikipedia.org/wiki/Max_Mathews">Max Matthews</a>
<ul>
<li>&#8220;The Digital Computer as a Musical Instrument&#8221;, Science. 1963 Nov 1;142(3592):553-7. <a href="http://www.sciencemag.org/content/142/3592/553.full.pdf">$15 paywall</a>, or <a href="http://web.archive.org/web/20110726145958/http://projects.ischool.washington.edu/tabrooks/100/Documents/OnlineMusic/MVMathews.pdf">free PDF from the web archive</a>.</li>
</ul>
</li>
<li>Other tools
<ul>
<li><a href="http://supercollider.sourceforge.net/">SuperCollider</a> (which Overtone uses as a backend)</li>
<li><a href="http://impromptu.moso.com.au/">Impromptu</a></li>
<li><a href="https://github.com/digego/extempore">Extempore</a></li>
<li><a href="http://cycling74.com/products/max/">MAX/MSP</a></li>
</ul>
</li>
<li><a href="https://en.wikipedia.org/wiki/Unit_generator">ugen</a> (unit generator)</li>
<li><a href="http://lifeisagraph.com/">Jeff Rose</a>, Sam&#8217;s primary co-conspirator (along with a pile of other contributors listed on the <a href="http://overtone.github.com/">Overtone</a> site)</li>
<li><a href="http://www.mcld.co.uk/">Dan Stowell</a></li>
<li>&#8220;You can trade your programming skills in for musicality.&#8221; — Sam Aaron (a hypothesis)</li>
<li><a href="https://github.com/overtone/overtone/blob/master/src/overtone/music/pitch.clj">overtone.music.pitch</a> — a formalization of music theory, codified into Clojure</li>
<li><a href="http://www.cam.ac.uk/">Cambridge University</a></li>
<li><a href="http://www.nybooks.com/articles/archives/2010/feb/11/the-chess-master-and-the-computer/?pagination=false">Garry Kasparov: &#8220;Weak human + machine + better process was superior to a strong computer alone and, more remarkably, superior to a strong human + machine + inferior process.&#8221;</a></li>
<li><a href="http://www.freesound.org/">freesound</a>— Creative Commons-licensed samples
<ul>
<li>to be integrated with a forthcoming dedicated asset management system for Overtone</li>
</ul>
</li>
<li><a href="http://groups.google.com/group/overtone">Overtone mailing list</a></li>
</ul>
<p><a href="https://github.com/cemerick/mostly-lazy/tree/master/overtone-bumpers/0.0.2">Source code for this episode&#8217;s bumpers</a>, produced by Sam Aaron in Overtone:</p>
<ul>
<li><a href="https://github.com/cemerick/mostly-lazy/blob/master/overtone-bumpers/0.0.2/wubdub.clj">&#8220;Wubdub&#8221;</a> intro, produced entirely programmatically</li>
<li><a href="https://github.com/cemerick/mostly-lazy/blob/master/overtone-bumpers/0.0.2/satie.clj">&#8220;Satie&#8221; finale</a>, played by Sam using the Monome device</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mostlylazy.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mostlylazy.wordpress.com/35/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mostlylazy.com&#038;blog=29079899&#038;post=35&#038;subd=mostlylazy&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mostlylazy.com/2011/11/18/episode-0-0-2-sam-aaron-and-overtone-at-clojure-conj-2011/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
<enclosure url="http://downloads.mostlylazy.com/episodes/mostly-lazy-0.0.2.mp3" length="64382987" type="audio/mpeg" />
	
		<media:content url="http://2.gravatar.com/avatar/b8ee952abb6620c1c93b3acb46cd391c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cemerick</media:title>
		</media:content>

		<media:content url="http://downloads.mostlylazy.com/episodes/mostly-lazy-0.0.2.mp3" medium="audio">
			<media:player url="http://mostlylazy.com/wp-content/plugins/audio-player/player.swf?soundFile=http://downloads.mostlylazy.com/episodes/mostly-lazy-0.0.2.mp3" />
		</media:content>
	</item>
		<item>
		<title>I&#8217;m not a journalist</title>
		<link>http://mostlylazy.com/2011/11/08/im-not-a-journalist/</link>
		<comments>http://mostlylazy.com/2011/11/08/im-not-a-journalist/#comments</comments>
		<pubDate>Tue, 08 Nov 2011 18:21:38 +0000</pubDate>
		<dc:creator>Chas Emerick</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mostlylazy.com/?p=29</guid>
		<description><![CDATA[…and I can&#8217;t and don&#8217;t want to approximate one, either.  I think that&#8217;s pretty obvious, and might seem like a non sequitur, but you&#8217;ll see why it&#8217;s not in a second. One odd thing is that, in the process of emailing a couple of people to suggest that we record some material for the podcast [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mostlylazy.com&#038;blog=29079899&#038;post=29&#038;subd=mostlylazy&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>…and I can&#8217;t and don&#8217;t want to approximate one, either.  I think that&#8217;s pretty obvious, and might seem like a n<em>on sequitur</em>, but you&#8217;ll see why it&#8217;s not in a second.</p>
<p>One odd thing is that, in the process of emailing a couple of people to suggest that we record some material for the podcast at the <a href="http://clojure-conj.org">Conj</a>, I encountered a few jokes (expressed most definitely tongue-in-cheek) around the prospect that I&#8217;d be trying to run a hardcore interview.  I can picture it now, me sweating a Clojure library author with curveball questions and shooting for that perfect &#8216;gotcha&#8217; moment where they mispronounce &#8220;<a href="http://github.com/technomancy/leiningen">Leiningen</a>&#8220;. (Like I do sometimes. Not on purpose, I promise.) Yikes.</p>
<p>While people <em>were</em> joking, and I presume they don&#8217;t actually think that would happen (insofar as everyone I&#8217;ve approached has assented to being on the &#8216;cast), my mother always told me that there&#8217;s a kernel of truth in every jest.  Further, I can appreciate that being recorded for posterity can be anxiety-inducing, and I&#8217;ve now heard at least one story of someone being unpleasantly grilled by an aggressive podcast host.</p>
<p>So, as much as possible, I&#8217;d like to reassure anyone being recorded at the Conj, and anyone that might be on the podcast in the future that I am <em>sooooo</em> not looking to create or experience any stress of any kind.  I&#8217;m not interested in being a journalist (my biases and vested interests are too flaming obvious, anyway), and I&#8217;m certainly not interested in being a &#8216;gotcha&#8217; journalist.  I&#8217;m just someone that really, <em>really</em> likes Clojure, likes the people I know that use Clojure, and would like to know more people that use Clojure.  I&#8217;m not even super-interested in doing interviews per se; having a conversation with someone that I might have if the podcast didn&#8217;t exist at all is my main goal for when &#8220;guests&#8221; are on.  I&#8217;d rather just can the whole project than let things ever get &#8220;weird&#8221;, either for me or other hosts or &#8220;guests&#8221;.</p>
<p>If this has seemed like a bizarre digression…you&#8217;re right.  But, hopefully the above clarifies what I&#8217;m up to and what my intentions are.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mostlylazy.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mostlylazy.wordpress.com/29/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mostlylazy.com&#038;blog=29079899&#038;post=29&#038;subd=mostlylazy&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mostlylazy.com/2011/11/08/im-not-a-journalist/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/b8ee952abb6620c1c93b3acb46cd391c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cemerick</media:title>
		</media:content>
	</item>
		<item>
		<title>Episode 0.0.1: Sean Corfield, Clojure Contrib, and &#8220;real world Clojure&#8221;</title>
		<link>http://mostlylazy.com/2011/11/08/episode-0-0-1-sean-corfield-clojure-contrib-and-real-world-clojure/</link>
		<comments>http://mostlylazy.com/2011/11/08/episode-0-0-1-sean-corfield-clojure-contrib-and-real-world-clojure/#comments</comments>
		<pubDate>Tue, 08 Nov 2011 14:22:11 +0000</pubDate>
		<dc:creator>Chas Emerick</dc:creator>
				<category><![CDATA[Conversation]]></category>
		<category><![CDATA[Episode]]></category>
		<category><![CDATA[Real World Clojure]]></category>

		<guid isPermaLink="false">http://mostlylazy.com/?p=12</guid>
		<description><![CDATA[In our first episode, a conversation between Chas Emerick and Sean Corfield (@seancorfield), recorded November 7th, 2011. Listen: Or, download the mp3 directly. Topics included: Clojure Contrib and its transition since Clojure 1.3 was released Where did Clojure Contrib go? Not all replacements for &#8220;old contrib&#8221; libraries are in &#8220;new contrib&#8221;, e.g. Slingshot being the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mostlylazy.com&#038;blog=29079899&#038;post=12&#038;subd=mostlylazy&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>In our first episode, a conversation between Chas Emerick and <a href="http://corfield.org/blog/">Sean Corfield</a> (<a href="https://twitter.com/#!/seancorfield">@seancorfield</a>), recorded November 7th, 2011.</p>
<p>Listen:</p>
<span style='text-align:left;display:block;'><p>				<object id='wp-as-12_9-flash' type='application/x-shockwave-flash' data='http://s0.wp.com/wp-content/plugins/audio-player/player.swf' width='290' height='24'>
					<param name='movie' value='http://s0.wp.com/wp-content/plugins/audio-player/player.swf' />
					<param name='FlashVars' value='bg=0xF8F8F8&amp;leftbg=0xEEEEEE&amp;lefticon=0x666666&amp;rightbg=0xCCCCCC&amp;rightbghover=0x999999&amp;righticon=0x666666&amp;righticonhover=0xFFFFFF&amp;text=0x666666&amp;slider=0x666666&amp;track=0xFFFFFF&amp;border=0x666666&amp;loader=0x9FFFB8&amp;soundFile=http%3A%2F%2Fdownloads.mostlylazy.com%2Fepisodes%2Fmostly-lazy-0.0.1.mp3' />
					<param name='quality' value='high' />
					<param name='menu' value='false' />
					<param name='bgcolor' value='#FFFFFF' />
					<param name='wmode' value='opaque' />
					Download: <a href="http://downloads.mostlylazy.com/episodes/mostly-lazy-0.0.1.mp3">mostly-lazy-0.0.1.mp3</a><br />
				</object></p></span>
<p>Or, <a href="http://downloads.mostlylazy.com/episodes/mostly-lazy-0.0.1.mp3">download the mp3 directly</a>.</p>
<p>Topics included:</p>
<ul>
<li>Clojure Contrib and its transition since Clojure 1.3 was released</li>
<ul>
<li><a href="http://dev.clojure.org/display/design/Where+Did+Clojure.Contrib+Go">Where did Clojure Contrib go?</a></li>
<li>Not all replacements for &#8220;old contrib&#8221; libraries are in &#8220;new contrib&#8221;, e.g. <a href="https://github.com/scgilardi/slingshot">Slingshot</a> being the best replacement for <a href="http://clojure.github.com/clojure-contrib/condition-api.html">clojure.contrib.condition</a></li>
</ul>
<li>Dependency management</li>
<ul>
<li><a href="http://github.com/technomancy/leiningen">Leiningen</a></li>
<li>Should Clojure have a &#8220;blessed&#8221; build tool?</li>
<li><a href="https://github.com/harrah/xsbt">sbt</a> (Scala&#8217;s blessed build tooling)</li>
</ul>
<li>Clojure SQL libraries:</li>
<ul>
<li><a href="https://github.com/clojure/java.jdbc">java.jdbc</a></li>
<li><a href="http://sqlkorma.com">Korma</a></li>
<li><a href="http://www.clojureql.org/">ClojureQL</a></li>
</ul>
<li>Chas&#8217; extreme ignorance re: ColdFusion prior to &#8220;meeting&#8221; Sean <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </li>
<li>Sean&#8217;s experience bridging ColdFusion/CFML and Clojure</li>
<li>Sean&#8217;s <a href="https://github.com/seancorfield/fw1">FrameworkOne</a> and his <a href="https://github.com/seancorfield/fw1-clj">port of it to Clojure</a></li>
<li><a href="http://codebassradio.net/">Codebase Radio</a></li>
<li><a href="http://clojure-conj.org">Clojure Conj 2012</a></li>
<li><a href="http://clojurewest.org">Clojure West</a></li>
<li>&#8220;Real-world Clojure&#8221;</li>
<ul>
<li>Sean&#8217;s blog post series of the same name, on topics like:</li>
<ul>
<li><a href="http://corfield.org/blog/post.cfm/real-world-clojure-logging">Logging</a></li>
<li><a href="http://corfield.org/blog/post.cfm/real-world-clojure-i18n-resources">Internationalization</a></li>
<li><a href="http://corfield.org/blog/post.cfm/real-world-clojure-xml-generation">XML generation</a></li>
</ul>
</ul>
<li><a href="https://github.com/nathanmarz/cascalog">Cascalog</a>, <a href="https://github.com/nathanmarz/storm/">Storm</a></li>
<li>Sean&#8217;s work introducing Clojure to <a href="http://worldsingles.com/">World Singles</a> and using Clojure to solve internationalization and localization challenges there</li>
</ul>
<p>If you have any suggestions, questions, or comments, feel free to leave them below.  And, if you&#8217;d like to get your comments or questions out onto the podcast, feel free to send audio clips to the email address you see to the right — I can&#8217;t guarantee your clip will get used, but let&#8217;s see how it goes. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>BTW, thank you very much for all of the feedback in the comments <a title="Coming soon!" href="http://mostlylazy.com/2011/11/03/coming-soon/">here</a> and elsewhere.  All of the ideas are very appreciated, and many of them will hopefully be incorporated in future episodes as things progress and I get my podcasting legs.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mostlylazy.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mostlylazy.wordpress.com/12/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mostlylazy.com&#038;blog=29079899&#038;post=12&#038;subd=mostlylazy&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mostlylazy.com/2011/11/08/episode-0-0-1-sean-corfield-clojure-contrib-and-real-world-clojure/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
<enclosure url="http://downloads.mostlylazy.com/episodes/mostly-lazy-0.0.1.mp3" length="61850316" type="audio/mpeg" />
	
		<media:content url="http://2.gravatar.com/avatar/b8ee952abb6620c1c93b3acb46cd391c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cemerick</media:title>
		</media:content>

		<media:content url="http://downloads.mostlylazy.com/episodes/mostly-lazy-0.0.1.mp3" medium="audio">
			<media:player url="http://mostlylazy.com/wp-content/plugins/audio-player/player.swf?soundFile=http://downloads.mostlylazy.com/episodes/mostly-lazy-0.0.1.mp3" />
		</media:content>
	</item>
	</channel>
</rss>
