<?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>while coding &#187; wheeler</title>
	<atom:link href="http://www.youell.com/matt/writing/?cat=34&#038;feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.youell.com/matt/writing</link>
	<description>simplify</description>
	<lastBuildDate>Wed, 31 Oct 2018 04:08:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Wheeler &#8211; The Name</title>
		<link>http://www.youell.com/matt/writing/?p=1350</link>
		<comments>http://www.youell.com/matt/writing/?p=1350#comments</comments>
		<pubDate>Tue, 07 Jul 2015 00:16:27 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[wheeler]]></category>

		<guid isPermaLink="false">http://www.youell.com/matt/writing/?p=1350</guid>
		<description><![CDATA[Work on my programming language Wheeler continues slowly. Even side projects can be exhausting so I don&#8217;t work on it non-stop. I spend perhaps 3 months of side-project-time per year on it. I&#8217;ve been poking at it since the fall of 2009, so we&#8217;re coming up on six years. Napkin math suggests I have somewhere [...]]]></description>
			<content:encoded><![CDATA[<p>Work on my programming language <a href="https://github.com/built/wheeler">Wheeler</a> continues slowly. Even side projects can be exhausting so I don&#8217;t work on it non-stop. I spend perhaps 3 months of side-project-time per year on it. I&#8217;ve been poking at it since the fall of 2009, so we&#8217;re coming up on six years. Napkin math suggests I have somewhere between 600-1100 hours invested in the project which is less than half a year of full-time work.</p>
<p>For the most part I don&#8217;t talk about Wheeler on the blog because I have a hard time communicating what I&#8217;m trying to do. It&#8217;s also taken far longer to make progress than I originally anticipated. But some things about the project are easy to talk about. One of those is the name, which <a href="https://twitter.com/stevej">Steve</a> asked about on Twitter the other day. </p>
<p><center></p>
<blockquote class="twitter-tweet" lang="en"><p lang="en" dir="ltr"><a href="https://twitter.com/built">@built</a> what is your favorite book about John Wheeler&#39;s ideas? was he the wheeler you named your language after?</p>
<p>&mdash; Steve Jenson (@stevej) <a href="https://twitter.com/stevej/status/615041924206997504">June 28, 2015</a></p></blockquote>
<p><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script><br />
</center></p>
<p><strong>From my notes:</strong></p>
<p>Wheeler was supposed to be a placeholder name. It refers to <a href="https://en.wikipedia.org/wiki/John_Archibald_Wheeler">John Archibald Wheeler</a>, the physicist. This was a nod to Bertrand, a constraint-programming language named for Bertrand Russell. I just wanted a name of some kind. Who did I respect? Physicists came to mind. Einstein was obviously problematic. Feynman would have been too arrogant. And I’d heard that for a time Wheeler had this notion that perhaps all subatomic particles are really just electrons. Or something like that. And I identified with that desire to find a simpler underlying model, even though it didn’t pan out. There really wasn&#8217;t much more thought given to the name than that.</p>
<p>After I’d done a couple of presentations, someone (I think it was <a href="https://twitter.com/hallettj">Jesse Hallett</a>, but I’m not 100% sure) asked if I had named it because of Wheeler’s “<a href="http://en.wikipedia.org/wiki/Digital_physics">It From Bit</a>” concept. I was unfamiliar with that, and was amazed how apropos it was to the language concept I was working on.</p>
<p>Later on I found out that Wheeler is an incredibly common family name in the US. I had no idea. Hopefully I&#8217;m not pissing off a bunch of people. Next time I&#8217;ll just go with Smith. I did try to get suggestions from others to name the language something else but everyone seems to like the name as it is. </p>
<p>At one point I wanted to call the language “What”, so that people could have Who’s On First wordplay with it. “You program in What?” “Yes!&#8221; To make things worse I thought the interpreter should be named &#8220;huh&#8221;.</p>
<p><strong>Other Wheelers (for fun)</strong></p>
<p>There is a Wheeler street in Portland, Oregon, where I live.</p>
<p><a href="http://en.wikipedia.org/wiki/William_A._Wheeler">The 19th U.S. Vice President</a> was named Wheeler</p>
<p>A <a href="http://en.wikipedia.org/wiki/Anna_Johnson_Pell_Wheeler">notable American mathematician</a> was named Wheeler (from her last husband)</p>
<p>My favorite, and my backup story for when people ask about the name: Wheeler is the surname of <a href="http://www.trixie-belden.com/chars/honey.htm">Honey Wheeler</a>, a character from the Trixie Belden girl-detective books I read as a child.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.youell.com/matt/writing/?feed=rss2&amp;p=1350</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Quick Note About Wheeler</title>
		<link>http://www.youell.com/matt/writing/?p=835</link>
		<comments>http://www.youell.com/matt/writing/?p=835#comments</comments>
		<pubDate>Mon, 13 Feb 2012 09:38:27 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[wheeler]]></category>

		<guid isPermaLink="false">http://www.youell.com/matt/writing/?p=835</guid>
		<description><![CDATA[Several people have asked me over the past few months about the status of Wheeler, the programming language I&#8217;ve been working on. Wheeler is still alive, though it has been largely dormant since last summer. This has been the pattern since its inception: Long periods of dormancy and then short, furious bursts of development.
Wheeler is [...]]]></description>
			<content:encoded><![CDATA[<p>Several people have asked me over the past few months about the status of Wheeler, the programming language I&#8217;ve been working on. Wheeler is still alive, though it has been largely dormant since last summer. This has been the pattern since its inception: Long periods of dormancy and then short, furious bursts of development.</p>
<p>Wheeler is not a practical project. It is not intended as a better way forward, or as a better paradigm, or as an improvement in how we program. Wheeler&#8217;s sole purpose is to spark questions in your mind. If I am very, very lucky, Wheeler may inspire you to think a little differently about how you program.</p>
<p>Wheeler is a work of conceptual art. Like any art project, there is a vision, and there is also a muse. When the muse is present, things are good. Ideas flow. The path forward is clear. When the muse is absent, the path forward is blocked. I&#8217;ve tried to force it. I&#8217;ve tried to make the language reveal itself. That only made things worse.</p>
<p>With all of that said, there is plenty of work that can actively be done. I&#8217;ve been asked for some sort of tutorial and also for a roadmap. I&#8217;m working on both of these now. My hope is that I can accurately communicate my ideas to interested people and get some help bringing what I see in my head into reality.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.youell.com/matt/writing/?feed=rss2&amp;p=835</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introduction To Wheeler, Part 3: Transitions and Mutual Dispatch</title>
		<link>http://www.youell.com/matt/writing/?p=665</link>
		<comments>http://www.youell.com/matt/writing/?p=665#comments</comments>
		<pubDate>Thu, 22 Jul 2010 00:59:10 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Road To Wheeler]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[programming languages]]></category>
		<category><![CDATA[wheeler]]></category>

		<guid isPermaLink="false">http://www.youell.com/matt/writing/?p=665</guid>
		<description><![CDATA[Hey, quick, watch this video before you read any further. It&#8217;s under 2 minutes long and it is *fascinating*.

That video is about how cell membranes work. Did you notice how proteins, enzymes, etc. can only pass through the cell membrane if they are the right shape (and flavor)? That&#8217;s how values trigger transitions in Wheeler.
Transitions
If [...]]]></description>
			<content:encoded><![CDATA[<p>Hey, quick, watch this video before you read any further. It&#8217;s under 2 minutes long and it is *fascinating*.</p>
<p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/owEgqrq51zY&amp;hl=en_US&amp;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/owEgqrq51zY&amp;hl=en_US&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
<p>That video is about how cell membranes work. Did you notice how proteins, enzymes, etc. can only pass through the cell membrane if they are the right shape (and flavor)? That&#8217;s how values trigger transitions in Wheeler.</p>
<h3>Transitions</h3>
<p>If categories are the most minimal representation of state, then transitions are the most minimal representation of action. Transitions are how computation happens in Wheeler. After all, organizing data is only half the battle with programming. Once you have the data in the form you want, you have to actually <em>do something</em>.</p>
<p>You can think of transitions as being very much like an event handler. You define a transition to trigger when an interaction between one or more categories happens.</p>
<p>Since Wheeler is still a work in progress, transitions are not yet native. Instead, transitions are created in Python, the language Wheeler is built on.</p>
<p>Remember our Hello example?</p>
<p><img src="http://www.youell.com/matt/writing/wp-content/uploads/2010/07/hello_world_363x174.png" alt=""  style="float: none"/></p>
<p>Here&#8217;s the transition defined for it in Python:</p>
<pre class="syntax-highlight:php">
def printer(category):
	for item in category:
		print item.name[1:-1],
	print
	return []

ROOT.create(&#039;print&#039;).add_handler( STRING, printer )
</pre>
<p>(I&#8217;ve omitted some unimportant details for clarity.)</p>
<p>What you might be able to suss out here is that there is a ROOT category that all categories live within, and I&#8217;ve created a &#8220;print&#8221; category within that. In addition, I&#8217;ve added a transition (with add_handler) which knows to watch for interactions with items in the string category. If the transition finds an interaction that matches, it executes the printer() function, which simply calls Python&#8217;s &#8216;print&#8217; function.</p>
<h3>Mutual Dispatch</h3>
<p>When more than one transition is triggered by an expression, the transitions all execute AND &#8211; at least in concept &#8211; they all execute *at the same time*.</p>
<p>This is very much like the real world. If two objects collide you don&#8217;t say that one or the other of them collided first. The collision is mutual and simultaneous. In that same way, when categories interact, the interaction is mutual and simultaneous.</p>
<p>Here&#8217;s the final snippet of Wheeler for this introduction:</p>
<p><img src="http://www.youell.com/matt/writing/wp-content/uploads/2010/07/mutual_dispatch.png" alt=""  style="float: none"/></p>
<p>In case it&#8217;s not clear what is going on here, we have some numbers, which are in the category &#8216;number&#8217;, some text in the category &#8217;string&#8217;, and some other categories (&#8217;print&#8217;, &#8216;+&#8217;) which give it all meaning with transitions. One transition knows to add all of the numbers in the expression when the plus sign is present. Another transition knows to print all of the strings in the expression to stdout when the &#8216;print&#8217; category is present.</p>
<p>When presented with this jumble of categories, Wheeler figures out what to do based on the criteria of the transitions. This effectively creates a typed-dispatch mechanism. I call this simultaneous, polymorphic behavior &#8220;Mutual Dispatch&#8221;.</p>
<p>That sums up Wheeler as currently implemented. </p>
<p>There&#8217;s still a lot of work to be done. I&#8217;ve covered what Wheeler is currently capable of. There are other planned features that I didn&#8217;t cover and hope to implement soon. I will provide more info here as new features are added.</p>
<p>I hope you find it as oddly fascinating as I do! Feedback is not just requested, it is begged for. I also strongly encourage you to <a href="http://github.com/built/wheeler">grab the code</a>, play, and contribute.</p>
<p>(Thanks to Westside Programmers and #pdxfunc for letting me present on Wheeler a few times over the past year. Having the chance to present and receive feedback has firmed up the concepts in my mind and made them easier to distill into this introduction.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.youell.com/matt/writing/?feed=rss2&amp;p=665</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Introduction To Wheeler, Part 2: Values &amp; Types</title>
		<link>http://www.youell.com/matt/writing/?p=663</link>
		<comments>http://www.youell.com/matt/writing/?p=663#comments</comments>
		<pubDate>Wed, 21 Jul 2010 23:57:31 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Road To Wheeler]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[programming languages]]></category>
		<category><![CDATA[wheeler]]></category>

		<guid isPermaLink="false">http://www.youell.com/matt/writing/?p=663</guid>
		<description><![CDATA[(Note: It may be helpful to read the posts I did on types several months ago.)
Someone recently asked me if Wheeler had types. My answer was &#8220;No. Uhhh&#8230; and yes.&#8221; What a terrible answer! I&#8217;ll try to do better in this post.
Wheeler has no explicit type system. You will never declare a value to be [...]]]></description>
			<content:encoded><![CDATA[<p>(Note: It may be helpful to read the <a href="http://www.youell.com/matt/writing/?p=601">posts I did on types</a> several months ago.)</p>
<p>Someone recently asked me if Wheeler had types. My answer was &#8220;No. Uhhh&#8230; and yes.&#8221; What a terrible answer! I&#8217;ll try to do better in this post.</p>
<p>Wheeler has no explicit type system. You will never declare a value to be of a certain type. You might, however, associate a value with a particular category through an interaction. In that way you&#8217;re establishing a relationship that will allow typing *behavior*.</p>
<h3>What is a value?</h3>
<p>Values are the imaginary, interstitial things floating between categories. When you establish a relationship between categories in Wheeler, you&#8217;re creating values.</p>
<h3>What is a type?</h3>
<p>I won&#8217;t attempt to answer this in general. I am not a type theorist. From the perspective of Wheeler we might say that a type is determined by a graph&#8217;s &#8220;shape&#8221; and &#8220;flavor&#8221;. Shape is the actual form of the graph we create in memory (tree, ring, object, etc.). Flavor is what specific categories are being connected by that graph.</p>
<h3>What the hell is the difference?</h3>
<p>Context. It&#8217;s all context. A value will trigger typing behavior when something matching that shape and flavor is being watched for. At that point it could be considered a type. The rest of the time, a value.</p>
<h3>Layering values into types</h3>
<p>Have you ever seen an artist paint a landscape? First they&#8217;ll paint the background&#8230; the sky, the horizon, the land. Then they start to layer on more and more detail. At what point does their work become a painting? Existential arguments aside, you might say that the work is a painting when it meets the criteria of the artist. Criteria will vary from artist to artist. Everyone has their own objectives, aesthetics, etc. In other words, everyone brings their own point of view or <em>context</em> to a situation. This idea is so fundamental in Wheeler that it is a core value of the language:</p>
<p><strong>Context Drives Behavior</strong></p>
<p>To help understand this, let&#8217;s look at a Venn diagram. (Venn diagrams are quite handy for discussing concepts in Wheeler.)</p>
<p><img style="float: none" src="http://www.youell.com/matt/writing/wp-content/uploads/2010/07/value_cars.png" alt="" /></p>
<p>Here you see we&#8217;ve got just a category, Cars. You could think of that as a type. Let&#8217;s pile on some more specifics:</p>
<p><img style="float: none" src="http://www.youell.com/matt/writing/wp-content/uploads/2010/07/value_cars_honda.png" alt="" /></p>
<p><img style="float: none" src="http://www.youell.com/matt/writing/wp-content/uploads/2010/07/value_cars_honda_element.png" alt="" /></p>
<p>Now we&#8217;ve got all cars that are Honda Elements. That&#8217;s more specific, but it&#8217;s still more like a type than anything.</p>
<p><img style="float: none" src="http://www.youell.com/matt/writing/wp-content/uploads/2010/07/value_cars_honda_element_vin.png" alt="" /></p>
<p>Ah, but now that we have a VIN, the unique Vehicle Identification Number. That&#8217;s so unique as to specify a particular vehicle. That seems more like a concrete value now. Yay.</p>
<p><img style="float: none" src="http://www.youell.com/matt/writing/wp-content/uploads/2010/07/value_cars_honda_element_vin_actual.png" alt="" /></p>
<p><a href="http://www.youell.com/matt/writing/?p=665">Next time</a> we&#8217;ll look at <em>Transitions</em> which allow computation in Wheeler. Then we&#8217;ll exercise our type and value scheme.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.youell.com/matt/writing/?feed=rss2&amp;p=663</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Introduction To Wheeler, Part 1: Categories &amp; Interactions</title>
		<link>http://www.youell.com/matt/writing/?p=659</link>
		<comments>http://www.youell.com/matt/writing/?p=659#comments</comments>
		<pubDate>Thu, 08 Jul 2010 16:07:39 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Road To Wheeler]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[programming languages]]></category>
		<category><![CDATA[wheeler]]></category>

		<guid isPermaLink="false">http://www.youell.com/matt/writing/?p=659</guid>
		<description><![CDATA[I started my &#8220;Road to Wheeler&#8221; series last year to introduce some of the ideas behind Wheeler, a new programming language I&#8217;ve been developing. Instead of continuing that discussion I&#8217;m going to explain through demonstration. This is the first in a series of posts that will introduce the basic ideas behind Wheeler.
(You can play along [...]]]></description>
			<content:encoded><![CDATA[<p>I started my &#8220;Road to Wheeler&#8221; series last year to introduce some of the ideas behind Wheeler, a new programming language I&#8217;ve been developing. Instead of continuing that discussion I&#8217;m going to explain through demonstration. This is the first in a series of posts that will introduce the basic ideas behind Wheeler.</p>
<p>(You can play along at home by grabbing <a href="http://github.com/built/wheeler">the latest code</a> and running the examples. You&#8217;ll need Python 2.5 and patience.)</p>
<p>First, let&#8217;s fire up &#8220;bigwheel&#8221;, the Wheeler interpreter:</p>
<p><img style="float: none" src="http://www.youell.com/matt/writing/wp-content/uploads/2010/07/bigwheel_349x150.png" alt="" /></p>
<p>Here is &#8220;Hello, world&#8221; in Wheeler:</p>
<p><img style="float: none" src="http://www.youell.com/matt/writing/wp-content/uploads/2010/07/hello_world_363x174.png" alt="" /></p>
<p>Wheeler is flexible though, so you could also say:</p>
<p><img style="float: none" src="http://www.youell.com/matt/writing/wp-content/uploads/2010/07/hello_world2_355x150.png" alt="" /></p>
<p>More on that later.</p>
<h3>Categories</h3>
<p>Wheeler is different from many languages you may be familiar with. All languages have abstractions. Some common examples are functions, lists, collections, stacks, pointers, and objects. In Wheeler, <strong>state</strong> is the fundamental abstraction.</p>
<p>State is represented by an abstraction called a Category. Categories are lightweight, atomic things. In Wheeler, <em>everything</em> is a category. Here are some sample categories:</p>
<ul>
<li>Fred</li>
<li>blue</li>
<li>5.3</li>
<li>&#8220;Hello, world!&#8221;</li>
<li>number</li>
<li>3/15/10</li>
<li>send</li>
<li>05:10:59</li>
<li>AM</li>
<li>PM</li>
<li>true</li>
<li>print</li>
</ul>
<p>Categories express boolean state. You&#8217;re either in a category or you&#8217;re not. Here&#8217;s an example:</p>
<p><img style="float: none" src="http://www.youell.com/matt/writing/wp-content/uploads/2010/07/apple_red.png" alt="" /></p>
<p>Do you see that? No? Good. What you do not see is &#8216;apple&#8217; being put into the &#8216;red&#8217; category. That is happening behind the scenes through an <em>interaction</em> between apple and red.</p>
<p>Categories aren&#8217;t containers, but from a practical standpoint they act like containers. This allows you to make statements about the world. We can pile some more attributes on &#8220;apple&#8221;:</p>
<p><img style="float: none" src="http://www.youell.com/matt/writing/wp-content/uploads/2010/07/apple_red2.png" alt="" /></p>
<h3>Interactions</h3>
<p>Interactions are expressions that combine categories to create new states. Our &#8220;Hello, world!&#8221; was an example of an interaction. Making our apple red was another interaction. Interaction is a mutual, simultaneous event where a connection (graph edge) is created between each item in the expression.</p>
<p>Wheeler has a &#8220;dump&#8221; command that will let you see (in GraphViz) the relationships you&#8217;ve created. Let&#8217;s dump &#8220;apple&#8221; and see the relationships:</p>
<p><img style="float: none" src="http://www.youell.com/matt/writing/wp-content/uploads/2010/07/apple_dump.png" alt="" /></p>
<p>And the relationships as diagrammed in GraphViz:</p>
<p><img style="float: none" src="http://www.youell.com/matt/writing/wp-content/uploads/2010/07/apple_graph.png" alt="" /></p>
<p>Here you can see that &#8220;apple&#8221; is related to &#8220;red&#8221;, &#8220;tasty&#8221;, and &#8220;sweet&#8221;. (You might notice that it is also related to &#8220;dump&#8221;, the category it interacted with to generate our diagram, and &#8220;metadata&#8221;, a built-in category.)</p>
<p>You can see that not only is &#8216;apple&#8217; connected to &#8216;red&#8217;, but &#8216;red&#8217; is also connected to &#8216;apple&#8217;. In Wheeler all relationships are bidirectional. This may seem odd if you&#8217;re used to typical hierarchical relationships in programming. Wheeler doesn&#8217;t think about the world that way. Wheeler has a few strongly-held beliefs, and one of these is:</p>
<p><strong>Hierarchy Is Bullshit</strong></p>
<p><a href="http://www.youell.com/matt/writing/?p=663">Next time</a> we&#8217;ll talk about composing categories into types.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.youell.com/matt/writing/?feed=rss2&amp;p=659</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Road to Wheeler</title>
		<link>http://www.youell.com/matt/writing/?p=583</link>
		<comments>http://www.youell.com/matt/writing/?p=583#comments</comments>
		<pubDate>Tue, 27 Oct 2009 17:43:35 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Road To Wheeler]]></category>
		<category><![CDATA[wheeler]]></category>

		<guid isPermaLink="false">http://www.youell.com/matt/writing/?p=583</guid>
		<description><![CDATA[Over the summer I sketched out a new programming language which I&#8217;ve tentatively named Wheeler. I&#8217;m still working on the implementation, though I have a crude prototype which I presented last month to the Westside Programmer&#8217;s group in Beaverton. The limited feedback I&#8217;ve received so far (aside from &#8220;WTF?&#8221;) has included comparisons with Prolog and [...]]]></description>
			<content:encoded><![CDATA[<p>Over the summer I sketched out a new programming language which I&#8217;ve tentatively named Wheeler. I&#8217;m still working on the implementation, though I have a crude prototype which I presented last month to the Westside Programmer&#8217;s group in Beaverton. The limited feedback I&#8217;ve received so far (aside from &#8220;WTF?&#8221;) has included comparisons with Prolog and Haskell. I&#8217;d like to talk more about this new language here, but before I do I want to pave the way with some short posts highlighting some of the thinking and motivation behind the language. This is the first post in that series.</p>
<p>From Vonnegut&#8217;s &#8220;Slaughterhouse Five&#8221;:</p>
<blockquote>
<p>Billy couldn&#8217;t read Tralfamadorian, of course, but he could at least see how the books were laid out &#8211; in brief clumps of symbols separated by stars. Billy commented that the clumps might be telegrams.</p>
<p>&#8220;Exactly,&#8221; said the voice.</p>
<p>&#8220;They <em><strong>are</strong></em> telegrams?&#8221;</p>
<p>&#8220;There are no telegrams on Tralfamadore. But you&#8217;re right: each clump of symbols is a brief, urgent message &#8211; describing a situation, a scene. We Tralfamadorians read them all at once, not one after the other. There isn&#8217;t any particular relationship between all the messages, except that the author has chosen them carefully, so that, when seen all at  once, they produce an image of life that is beautiful and surprising and deep. There is no beginning, no middle, no end, no suspense, no moral, no causes, no effects. What we love in our books are the depths of the many marvelous moments seen all at one time.&#8221;</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.youell.com/matt/writing/?feed=rss2&amp;p=583</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
