<?xml version="1.0" encoding="utf-8"?><!-- generator="WordPress/2.9.2" -->
<rss version="0.92">
<channel>
	<title>Paul Kuliniewicz</title>
	<link>http://www.kuliniewicz.org/blog</link>
	<description>After all, it could only cost you your life, and you got that for free.</description>
	<lastBuildDate>Wed, 10 Mar 2010 03:40:24 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	
	<item>
		<title>Mega Man 10</title>
		<description><![CDATA[Mega Man 9 was a great game.  It took everything that made the early NES Mega Man games terrific and built on them, and avoided the traps that made the latter games me-too rehashes of the same basic gameplay.  It played off of the player&#8217;s expectations of how a Mega Man game plays [...]]]></description>
		<link>http://www.kuliniewicz.org/blog/archives/2010/03/09/mega-man-10/</link>
			</item>
	<item>
		<title>Rockman Paper Scissors</title>
		<description><![CDATA[Given that one of the core mechanics of the Mega Man series is the rock-paper-scissors style system of how each robot master is vulnerable to another robot master&#8217;s weapon, and given that the original game had robot masters that attacked by throwing rocks (Guts Man) and scissors (Cut Man) (and yes, rock beats scissors), it&#8217;s [...]]]></description>
		<link>http://www.kuliniewicz.org/blog/archives/2010/02/28/rockman-paper-scissors/</link>
			</item>
	<item>
		<title>School laptop spycams</title>
		<description><![CDATA[In case you&#8217;ve heard about the school-issued laptops that surreptitiously took webcam photos of the students using them and are wondering just how something like that works, here&#8217;s the technical details of what the school-installed spyware was doing.
]]></description>
		<link>http://www.kuliniewicz.org/blog/archives/2010/02/24/school-laptop-spycams/</link>
			</item>
	<item>
		<title>I hate snow</title>
		<description><![CDATA[No, seriously, I hate snow.
Fun fact: do you know what a car buried under two feet of snow looks like?  Pretty much like anything else buried under two feet of snow.
]]></description>
		<link>http://www.kuliniewicz.org/blog/archives/2010/02/06/i-hate-snow/</link>
			</item>
	<item>
		<title>Panflute 0.6.1 released</title>
		<description><![CDATA[Panflute 0.6.1 has been released. This version adds support for rating songs in Banshee 1.5.3 or later, and fixes a few bugs. It also expands the types of song information that can be displayed in the applet.
]]></description>
		<link>http://www.kuliniewicz.org/blog/archives/2010/01/31/panflute-0-6-1-released/</link>
			</item>
	<item>
		<title>Happstack and Streaming: Part 5: Modifying Happstack</title>
		<description><![CDATA[Modifying Happstack
So now that we&#8217;ve established that changes to Happstack are needed to support streaming, what should those changes look like?  Abstractly, there needs to be a way to give it a series of chunks that it can send to the browser individually via chunked transfer encoding, flushing the network buffer after each one [...]]]></description>
		<link>http://www.kuliniewicz.org/blog/archives/2010/01/29/happstack-and-streaming-part-5-modifying-happstack/</link>
			</item>
	<item>
		<title>Happstack and Streaming: Part 4: The Flaw</title>
		<description><![CDATA[The Fatal Flaw
All three approaches to generating a lazy ByteString from the IO monad actually do work, as you can verify by loading the source code into ghci and invoking them manually.  However, if you go through the web server and visit one of the finite stream paths, no output will appear until the [...]]]></description>
		<link>http://www.kuliniewicz.org/blog/archives/2010/01/27/happstack-and-streaming-part-4-the-flaw/</link>
			</item>
	<item>
		<title>Happstack and Streaming: Part 3: Implementation (Sort Of)</title>
		<description><![CDATA[Implementation
For our proof-of-concept for trying to do streaming with Happstack, here&#8217;s a simple web application that implements each of the three possible approaches discussed earlier.  To keep things simple, the data we&#8217;ll be streaming is a series of timestamps taken from the system clock at regular intervals.  Not a particularly useful application, but [...]]]></description>
		<link>http://www.kuliniewicz.org/blog/archives/2010/01/25/happstack-and-streaming-part-3-implementation-sort-of/</link>
			</item>
	<item>
		<title>Happstack and Streaming: Part 2: Lazy IO</title>
		<description><![CDATA[Two Haskell features complicate our attempt at streaming data from Happstack: lazy evaluation, and its handling of IO.
Laziness
Unlike more mainstream languages, Haskell evaluates expressions lazily; it doesn&#8217;t actually compute the value until it&#8217;s actually used.  This has some interesting benefits.  For example, it&#8217;s quite easy to create infinitely long lists without requiring infinite [...]]]></description>
		<link>http://www.kuliniewicz.org/blog/archives/2010/01/22/happstack-and-streaming-part-2-lazy-io/</link>
			</item>
	<item>
		<title>Happstack and Streaming: Part 1: Introduction</title>
		<description><![CDATA[Introduction
The question: is it possible to use Happstack to serve streaming data?
Spoiler alert: the answer is &#8220;no&#8221;.  At least, not with the current version of Happstack (0.4.1).  However, exploring the reasons why it isn&#8217;t possible sheds some light on what changes you&#8217;d need to make to Happstack to make it work.  This [...]]]></description>
		<link>http://www.kuliniewicz.org/blog/archives/2010/01/20/happstack-and-streaming-part-1-introduction/</link>
			</item>
</channel>
</rss>
