<?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 &#187; RSAGL</title>
	<atom:link href="http://blog.downstairspeople.org/category/rsagl/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 &#187; RSAGL</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.4.0.1</title>
		<link>http://blog.downstairspeople.org/2010/06/17/ann-roguestar-0-4-0-1/</link>
		<comments>http://blog.downstairspeople.org/2010/06/17/ann-roguestar-0-4-0-1/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 02:32:08 +0000</pubDate>
		<dc:creator>Christopher Lane Hinson</dc:creator>
				<category><![CDATA[Roguestar]]></category>
		<category><![CDATA[RSAGL]]></category>

		<guid isPermaLink="false">http://blog.downstairspeople.org/?p=150</guid>
		<description><![CDATA[Roguestar is a science fiction roguelike game written using Haskell and OpenGL.  It is in the early stages of development.  At this time, it is not a winnable game. $ cabal install roguestar-engine $ cabal install roguestar-gl $ ~/.cabal/bin/roguestar - &#8230; <a href="http://blog.downstairspeople.org/2010/06/17/ann-roguestar-0-4-0-1/">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=150&amp;subd=clanehin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Roguestar is a science fiction roguelike game written using Haskell and OpenGL.  It is in the early stages of development.  At this time, it is not a winnable game.</p>
<pre>$ cabal install roguestar-engine
$ cabal install roguestar-gl
$ ~/.cabal/bin/roguestar</pre>
<p>- or -</p>
<pre>$ git clone http://www.downstairspeople.org/git/roguestar.git
$ cd roguestar
$ git checkout 0.4.0.1
$ make install</pre>
<p>New gameplay features:</p>
<ul>
<li>Melee combat, sundering and disarming attacks</li>
<li>Weapons can sometimes overheat or explode</li>
<li>Gateway teleportation between planets</li>
<li>Use material-spheres to craft new tools</li>
<li>Use material-spheres to heal</li>
<li>Tab-completion of typed commands</li>
<li>Compass directions to significant artifacts</li>
<li>&#8220;Jump&#8221; short distances by teleporting</li>
</ul>
<p>New objects:</p>
<ul>
<li>Chromalite material spheres</li>
<li>Metallic material spheres</li>
<li>Gaseous material spheres</li>
<li>Energy sabres and fleurets</li>
<li>Gateways</li>
<li>Monoliths</li>
</ul>
<p>New graphics features:</p>
<ul>
<li>Randomly generated sky spheres and landscapes</li>
<li>Unique fractal trees</li>
<li>Zoom-in/zoom-out</li>
</ul>
<p>Changes under the hood:</p>
<ul>
<li>Major re-write of the RSAGL FRP architecture</li>
<li>Multi-threaded 3D scene assembly and rendering</li>
<li>Multi-threaded, anticipatory engine</li>
<li>Various OpenGL performance improvements</li>
</ul>
<p>For more information, links to the manual and git repository, visit <a href="http://roguestar.downstairspeople.org">http://roguestar.downstairspeople.org</a>.</p>
<p>Check it out!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/clanehin.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/clanehin.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/clanehin.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/clanehin.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/clanehin.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/clanehin.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/clanehin.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/clanehin.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/clanehin.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/clanehin.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/clanehin.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/clanehin.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/clanehin.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/clanehin.wordpress.com/150/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.downstairspeople.org&amp;blog=16567664&amp;post=150&amp;subd=clanehin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.downstairspeople.org/2010/06/17/ann-roguestar-0-4-0-1/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>FactoryArrow</title>
		<link>http://blog.downstairspeople.org/2009/08/09/factoryarrow/</link>
		<comments>http://blog.downstairspeople.org/2009/08/09/factoryarrow/#comments</comments>
		<pubDate>Sun, 09 Aug 2009 19:21:29 +0000</pubDate>
		<dc:creator>Christopher Lane Hinson</dc:creator>
				<category><![CDATA[Haskell]]></category>
		<category><![CDATA[RSAGL]]></category>

		<guid isPermaLink="false">http://blog.downstairspeople.org/?p=87</guid>
		<description><![CDATA[I&#8217;ve been playing around with an Arrow concept, which to my knowledge is original. I&#8217;ve decided to call this a FactoryArrow: newtype FactoryArrow m n a b = FactoryArrow { runFactory :: m (Kleisli n a b) } Where m &#8230; <a href="http://blog.downstairspeople.org/2009/08/09/factoryarrow/">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=87&amp;subd=clanehin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been playing around with an Arrow concept, which <em>to my knowledge</em> is original.  I&#8217;ve decided to call this a FactoryArrow:</p>
<p><code><br />
newtype FactoryArrow m n a b = FactoryArrow { runFactory :: m (Kleisli n a b) }<br />
</code></p>
<p>Where <tt>m</tt> and <tt>n</tt> are Monads.  <tt>m</tt> is a single-pass initialization monad, while <tt>n</tt> is a multiple-pass working monad.  The arrow supports all of the standard accessory arrow typeclasses, including <tt>ArrowLoop</tt> if <tt>n</tt> implements <tt>MonadFix</tt>, and <tt>ArrowApply</tt> if <tt>m</tt> and <tt>n</tt> are the same.</p>
<p>This arrow simply captures a two-phase initialize-and-run design pattern.</p>
<p>To the best of my imagination, there cannot be a corresponding useful FactoryMonad.  I would be extremely interested if anyone can contradict me on that point.</p>
<p>My current interest is in using the FactoryArrow as a replacement for the mealy-style arrows by using IORefs (or potentially even STM transaction variables) to store automaton states instead of unevaluated thunks.</p>
<p>The <a href="http://roguestar.downstairspeople.org/gitweb?p=rsagl.git;a=blob;f=RSAGL/FRP2/FactoryArrow.hs;h=1b6b74732da7ef803819602a892adf3bfb5551e0;hb=d3a506aca2bd244596f6b8879ca16bc4bda44c49">corresponding implementation</a> as of the time of this writing.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/clanehin.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/clanehin.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/clanehin.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/clanehin.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/clanehin.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/clanehin.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/clanehin.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/clanehin.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/clanehin.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/clanehin.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/clanehin.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/clanehin.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/clanehin.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/clanehin.wordpress.com/87/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.downstairspeople.org&amp;blog=16567664&amp;post=87&amp;subd=clanehin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.downstairspeople.org/2009/08/09/factoryarrow/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>Vec is Good</title>
		<link>http://blog.downstairspeople.org/2009/05/05/vec-is-good/</link>
		<comments>http://blog.downstairspeople.org/2009/05/05/vec-is-good/#comments</comments>
		<pubDate>Tue, 05 May 2009 19:45:47 +0000</pubDate>
		<dc:creator>Christopher Lane Hinson</dc:creator>
				<category><![CDATA[Haskell]]></category>
		<category><![CDATA[RSAGL]]></category>

		<guid isPermaLink="false">http://blog.downstairspeople.org/?p=84</guid>
		<description><![CDATA[Last night I checked out Scott E. Dillard&#8217;s Vec library. It&#8217;s a good, fast, pure implementation of the basic matrix operations applicable to 3D graphics. Switching to Vec has shaved off quite a bit of time from one of my &#8230; <a href="http://blog.downstairspeople.org/2009/05/05/vec-is-good/">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=84&amp;subd=clanehin&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Last night I checked out Scott E. Dillard&#8217;s <a href="http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Vec-0.9.6">Vec</a> library.  It&#8217;s a good, fast, pure implementation of the basic matrix operations applicable to 3D graphics.  Switching to Vec has shaved off quite a bit of time from one of my demo apps and relieved me of the need to maintain my own matrix manipulation code, which was causing me repeated headaches.</p>
<p>It&#8217;s very heavy with MPTCs, fundeps, and type families, which will cause ghc to render some pretty inane error messages, but if you&#8217;re already accustomed to this then it&#8217;s actually very straightforward to use.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/clanehin.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/clanehin.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/clanehin.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/clanehin.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/clanehin.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/clanehin.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/clanehin.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/clanehin.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/clanehin.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/clanehin.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/clanehin.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/clanehin.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/clanehin.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/clanehin.wordpress.com/84/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.downstairspeople.org&amp;blog=16567664&amp;post=84&amp;subd=clanehin&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.downstairspeople.org/2009/05/05/vec-is-good/feed/</wfw:commentRss>
		<slash:comments>1</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>
	</channel>
</rss>
