<?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>Lane&#039;s Blog</title>
	<atom:link href="http://blog.downstairspeople.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.downstairspeople.org</link>
	<description>A blog of fleshlings and robots.</description>
	<lastBuildDate>Wed, 25 Jan 2012 12:42:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blog.downstairspeople.org' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Lane&#039;s Blog</title>
		<link>http://blog.downstairspeople.org</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blog.downstairspeople.org/osd.xml" title="Lane&#039;s Blog" />
	<atom:link rel='hub' href='http://blog.downstairspeople.org/?pushpress=hub'/>
		<item>
		<title>ANN: Roguestar 0.6.0.0</title>
		<link>http://blog.downstairspeople.org/2011/04/02/ann-roguestar-0-6-0-0/</link>
		<comments>http://blog.downstairspeople.org/2011/04/02/ann-roguestar-0-6-0-0/#comments</comments>
		<pubDate>Sun, 03 Apr 2011 02:04:34 +0000</pubDate>
		<dc:creator>Christopher Lane Hinson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.downstairspeople.org/?p=321</guid>
		<description><![CDATA[Roguestar 0.6.0.0 is now up on hackage.  You can install and run with: The latest version brings: New monsters: Hellions and Dust Vortexes Underground dungeons Power-ups (hidden in the aforementioned dungeons) that serve to level-up the player&#8217;s character. Improved walking &#8230; <a href="http://blog.downstairspeople.org/2011/04/02/ann-roguestar-0-6-0-0/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.downstairspeople.org&amp;blog=16567664&amp;post=321&amp;subd=clanehin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Roguestar 0.6.0.0 is now up on hackage.  You can install and run with:</p>
<p><pre class="brush: plain;">
$ cabal install roguestar roguestar-glut roguestar-engine
&amp; ~/.cabal/bin/roguestar
</pre></p>
<p>The latest version brings:</p>
<ul>
<li>New monsters: Hellions and Dust Vortexes</li>
<li>Underground dungeons</li>
<li>Power-ups (hidden in the aforementioned dungeons) that serve to level-up the player&#8217;s character.</li>
<li>Improved walking animation.</li>
<li>It&#8217;s no longer possible to spawn with zero sight range.</li>
<li>Fixed some of the worst of the user interface glitches.</li>
</ul>
<p>Under the hood, I&#8217;ve also split RSAGL into a few topic-specific libraries and implemented value recursion in rsagl-frp.  There is an experimental GTK-based client, but I don&#8217;t recommend it just yet, which is why it isn&#8217;t on hackage.</p>
<p>I&#8217;ve also migrated the project to <a href="https://github.com/clanehin/roguestar">github</a>, which includes source code, the <a href="https://github.com/clanehin/roguestar/wiki/Manual">manual</a>, and the <a href="https://github.com/clanehin/roguestar/issues">issue tracker</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/clanehin.wordpress.com/321/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/clanehin.wordpress.com/321/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/clanehin.wordpress.com/321/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/clanehin.wordpress.com/321/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/clanehin.wordpress.com/321/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/clanehin.wordpress.com/321/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/clanehin.wordpress.com/321/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/clanehin.wordpress.com/321/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/clanehin.wordpress.com/321/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/clanehin.wordpress.com/321/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/clanehin.wordpress.com/321/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/clanehin.wordpress.com/321/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/clanehin.wordpress.com/321/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/clanehin.wordpress.com/321/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.downstairspeople.org&amp;blog=16567664&amp;post=321&amp;subd=clanehin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.downstairspeople.org/2011/04/02/ann-roguestar-0-6-0-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/68435a17514570d7c6144d91a0915139?s=96&#38;d=monsterid&#38;r=G" medium="image">
			<media:title type="html">clanehin</media:title>
		</media:content>
	</item>
		<item>
		<title>The One Function per Typeclass Rule</title>
		<link>http://blog.downstairspeople.org/2011/03/16/type-coercion-in-haskell/</link>
		<comments>http://blog.downstairspeople.org/2011/03/16/type-coercion-in-haskell/#comments</comments>
		<pubDate>Wed, 16 Mar 2011 08:00:21 +0000</pubDate>
		<dc:creator>Christopher Lane Hinson</dc:creator>
				<category><![CDATA[Haskell]]></category>

		<guid isPermaLink="false">http://clanehin.wordpress.com/?p=293</guid>
		<description><![CDATA[After about five years programming in Haskell, I think we need a rule:  Only put one function in a typeclass. Why?  Because inevitably someone comes along with a data type for which one or the other function of a typeclass &#8230; <a href="http://blog.downstairspeople.org/2011/03/16/type-coercion-in-haskell/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.downstairspeople.org&amp;blog=16567664&amp;post=293&amp;subd=clanehin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>After about five years programming in Haskell, I think we need a rule:  Only put one function in a typeclass.</p>
<p>Why?  Because inevitably someone comes along with a data type for which one or the other function of a typeclass is perfectly suited, and yet another function of the same typeclass is not implementable.</p>
<p>Here are some examples of consequences of breaking the rule:</p>
<ol>
<li><a href="http://www.randomhacks.net/articles/2007/03/15/data-set-monad-haskell-macros">The Infamous Set Monad</a>, which requires splitting Monad in half. (Monad)</li>
<li>All of the abstract ways to construct Nothing: fail (Monad), mempty (Monoid), mzero (MonadPlus), empty (Alternative).  Not surprisingly, all of these typeclasses are subtly related.</li>
<li>The natural numbers, which have a minBound, but not a maxBound (Bounded) . . .</li>
<li>. . . and which support addition and multiplication, but aren&#8217;t closed under subtraction and for which the concept of a sign does not exist (Num).</li>
<li>My own <a href="http://blog.downstairspeople.org/2010/07/17/memoized-dataflow-streams/">memoizable message</a> type, which would like to implement Applicative, but needs a monadic computation to implement pure. (Applicative)</li>
</ol>
<p>It&#8217;s a little extra typing to write multiple &#8220;class . . . where&#8221; clauses for each type that needs to implement a large number of type-indexed functions, but it&#8217;s quite easy to combine related typeclasses when appropriate, as follows:</p>
<p><pre class="brush: plain;">
class Foo a where
    foo :: a -&gt; b

class Bar a where
    bar :: a -&gt; b

class (Foo a,Bar a) =&gt; FooBar a where
    {this space intentionally left blank}
</pre></p>
<p>In conclusion, you should definitely follow this rule if I have convinced you that it is a good idea to follow it.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/clanehin.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/clanehin.wordpress.com/293/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/clanehin.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/clanehin.wordpress.com/293/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/clanehin.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/clanehin.wordpress.com/293/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/clanehin.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/clanehin.wordpress.com/293/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/clanehin.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/clanehin.wordpress.com/293/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/clanehin.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/clanehin.wordpress.com/293/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/clanehin.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/clanehin.wordpress.com/293/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.downstairspeople.org&amp;blog=16567664&amp;post=293&amp;subd=clanehin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.downstairspeople.org/2011/03/16/type-coercion-in-haskell/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/68435a17514570d7c6144d91a0915139?s=96&#38;d=monsterid&#38;r=G" medium="image">
			<media:title type="html">clanehin</media:title>
		</media:content>
	</item>
		<item>
		<title>But does it crawl?</title>
		<link>http://blog.downstairspeople.org/2010/09/06/but-does-it-crawl/</link>
		<comments>http://blog.downstairspeople.org/2010/09/06/but-does-it-crawl/#comments</comments>
		<pubDate>Mon, 06 Sep 2010 18:06:22 +0000</pubDate>
		<dc:creator>Christopher Lane Hinson</dc:creator>
				<category><![CDATA[Roguestar]]></category>

		<guid isPermaLink="false">http://blog.downstairspeople.org/?p=189</guid>
		<description><![CDATA[Roguestar is officially a dungeon crawl now, as it actually has dungeons: For the moment I&#8217;m ok with the empty black pits, but I want to do something with the skylights.  Maybe slant them at an angle?  I&#8217;ll probably also &#8230; <a href="http://blog.downstairspeople.org/2010/09/06/but-does-it-crawl/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.downstairspeople.org&amp;blog=16567664&amp;post=189&amp;subd=clanehin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Roguestar is officially a dungeon crawl now, as it actually has dungeons:</p>
<div id="attachment_190" class="wp-caption aligncenter" style="width: 310px"><a href="http://clanehin.files.wordpress.com/2010/09/roguestar-dungeon11.png"><img class="size-medium wp-image-190" title="roguestar-dungeon1" src="http://clanehin.files.wordpress.com/2010/09/roguestar-dungeon11.png?w=300&#038;h=204" alt="An Androsynth visits the dungeon." width="300" height="204" /></a><p class="wp-caption-text">An Androsynth visits the dungeon.</p></div>
<p>For the moment I&#8217;m ok with the empty black pits, but I want to do something with the skylights.  Maybe slant them at an angle?  I&#8217;ll probably also change the dungeon lighting to some kind of red-orange shining up with the camera light at half-brightness.</p>
<p>I have a lot less free time now than I used to, so I&#8217;m trying to focus on specific game features and spend less time fiddling with stuff (like FRP semantics) under the hood.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/clanehin.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/clanehin.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/clanehin.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/clanehin.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/clanehin.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/clanehin.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/clanehin.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/clanehin.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/clanehin.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/clanehin.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/clanehin.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/clanehin.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/clanehin.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/clanehin.wordpress.com/189/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.downstairspeople.org&amp;blog=16567664&amp;post=189&amp;subd=clanehin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.downstairspeople.org/2010/09/06/but-does-it-crawl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/68435a17514570d7c6144d91a0915139?s=96&#38;d=monsterid&#38;r=G" medium="image">
			<media:title type="html">clanehin</media:title>
		</media:content>

		<media:content url="http://clanehin.files.wordpress.com/2010/09/roguestar-dungeon11.png?w=300" medium="image">
			<media:title type="html">roguestar-dungeon1</media:title>
		</media:content>
	</item>
	</channel>
</rss>
