<?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>Spork Code</title>
	<atom:link href="http://sporkcode.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://sporkcode.wordpress.com</link>
	<description>Code. Randomness. Sporks.</description>
	<lastBuildDate>Fri, 05 Aug 2011 07:59:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='sporkcode.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Spork Code</title>
		<link>http://sporkcode.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://sporkcode.wordpress.com/osd.xml" title="Spork Code" />
	<atom:link rel='hub' href='http://sporkcode.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Run Your Own Virtual Lisp Machine</title>
		<link>http://sporkcode.wordpress.com/2009/07/12/run-your-own-virtual-lisp-machine/</link>
		<comments>http://sporkcode.wordpress.com/2009/07/12/run-your-own-virtual-lisp-machine/#comments</comments>
		<pubDate>Sun, 12 Jul 2009 22:02:55 +0000</pubDate>
		<dc:creator>John Gunderman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Lisp]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://sporkcode.wordpress.com/?p=86</guid>
		<description><![CDATA[I came across a really interesting project the other day (while browsing Hacker News) by a guy named Brad Parker. Basically, he is writing a specialized virtual machine for CADR (which was an OS for the now defunct Lisp Machines of the 80s). The project has plenty of bugs left for squashing, but in its [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sporkcode.wordpress.com&amp;blog=8378790&amp;post=86&amp;subd=sporkcode&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I came across a <a href="http://www.unlambda.com/lisp/cadr.page">really interesting project</a> the other day  (while browsing <a href="http://news.ycombinator.com/">Hacker News</a>) by a guy named Brad Parker. Basically, he is writing a specialized virtual machine for CADR (which was an OS for the now defunct <a href="http://en.wikipedia.org/wiki/Lisp_machine">Lisp Machines</a> of the 80s). The project has plenty of bugs left for squashing, but in its current state it works quite well. Here&#8217;s how to set up your own virtual Lisp Machine.</p>
<p>As always, we have some tarballs to grab:<br />
<pre class="brush: bash;">
# this is the VM itself
wget http://www.unlambda.com/download/cadr/usim.tar.gz

# this is a disk image for the VM. If you prefer, you can
# build one of these yourself (there is some documentation on the website)
wget http://www.unlambda.com/download/cadr/disks/disk-with-state.tgz
</pre></p>
<p>Now let&#8217;s untar them:<br />
<pre class="brush: bash;">
tar -xvvf usim.tar.gz
tar -xvvf disk-with-state.tgz
</pre></p>
<p>We need to copy the resulting disk.img and usim.state into the /usim directory, because otherwise the ./usim executable we will be using complains about missing .bin files. The usim.state file contains the state of the disk.img; without it you wouldn&#8217;t be able to boot the image.<br />
<pre class="brush: bash;">
cp disk.img usim/disk.img
cp usim.state usim/usim.state
</pre></p>
<p>Ok, now all that is left is to boot up your virtual Lisp Machine:<br />
<pre class="brush: bash;">
cp usim/

# this command boots your Lisp Machine in a X window.
./usim -w
</pre></p>
<p>The VM should prompt you for the current time, which you can enter in plain English and it will parse for you. Unfortunately, It doesn&#8217;t seem as though the original creators of the OS thought that anyone would be using it in 2009, as when you enter 2009 as the year, it thinks you are living some time in the 19000th century. Yes, with 3 zeros. Be forwarned that there are some graphical glitches with the VM, but nothing that a ^C or two won&#8217;t fix.</p>
<p>If you are feeling particularly rebellious and you don&#8217;t want to use the default disk.img and supplied disk state, you can always make your own. Generating a new disk state is a simple <code>./usim -S</code> away. Making a new disk is slightly more complicated, but still not particularly bad. you can find documentation on how to do so <a href="http://www.unlambda.com/download/cadr/disks/README">here</a>. </p>
<p>If you are interested in reading up on CADR, <a href="http://dspace.mit.edu/bitstream/handle/1721.1/5718/AIM-528.pdf?sequence=2">here</a> is the original paper on it (be forewarned, it is quite technical).</p>
<p><b>What Now?</b><br />
So now you have your beautiful Lisp Machine up and running, its time to learn some LISP. The manual for programming this Lisp Machine can be found <a href="http://www.unlambda.com/lmman/lmman_1.html">here</a>.</p>
<br /> Tagged: Lisp, Programming <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sporkcode.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sporkcode.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sporkcode.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sporkcode.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sporkcode.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sporkcode.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sporkcode.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sporkcode.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sporkcode.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sporkcode.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sporkcode.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sporkcode.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sporkcode.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sporkcode.wordpress.com/86/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sporkcode.wordpress.com&amp;blog=8378790&amp;post=86&amp;subd=sporkcode&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sporkcode.wordpress.com/2009/07/12/run-your-own-virtual-lisp-machine/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b2887803258bc958e1219f7eb3fbd810?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">John Gunderman</media:title>
		</media:content>
	</item>
		<item>
		<title>Installing the Haskell Platform in Ubuntu</title>
		<link>http://sporkcode.wordpress.com/2009/07/11/installing-the-haskell-platform-in-ubuntu/</link>
		<comments>http://sporkcode.wordpress.com/2009/07/11/installing-the-haskell-platform-in-ubuntu/#comments</comments>
		<pubDate>Sun, 12 Jul 2009 01:16:33 +0000</pubDate>
		<dc:creator>John Gunderman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Cabal]]></category>
		<category><![CDATA[Haskell]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://sporkcode.wordpress.com/?p=73</guid>
		<description><![CDATA[After my previous article about installing Haskell&#8217;s Cabal package in Ubuntu, I decided to do a bit more research on using Haskell in Ubuntu. It turns out that the debian packages in the Ubuntu repositories for Haskell and GHC are hopelessly out of date, excluding not only the added functionality of new releases, but also [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sporkcode.wordpress.com&amp;blog=8378790&amp;post=73&amp;subd=sporkcode&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>After my previous article about <a href="http://sporkcode.wordpress.com/2009/07/05/haskell-cabal-in-ubuntu/">installing Haskell&#8217;s Cabal package in Ubuntu</a>, I decided to do a bit more research on using <a href="http://haskell.org/">Haskell</a> in Ubuntu. It turns out that the debian packages in the Ubuntu repositories for Haskell and GHC are hopelessly out of date, excluding not only the added functionality of new releases, but also the Haskell Platform, which is effectively an extended set of standard libraries surrounding Haskell. Funnily enough, the Haskell platform actually includes Cabal, which effectively makes my previous post useless. In its stead, I present to you a guide on installing <a href="http://haskell.org/ghc/">GHC</a> and the <a href="http://hackage.haskell.org/platform/">Haskell platform</a> on your Ubuntu system (though these steps should work equally well on any Linux system with apt-get as a package manager).</p>
<p>First things first, lets get the dependencies out of the way.</p>
<p><pre class="brush: bash;">
sudo apt-get install libedit2 libedit-dev freeglut3-dev libglu1-mesa-dev
</pre></p>
<p>Now let&#8217;s remove any haskell packages we may have installed, as these will cause conflicts.<br />
<pre class="brush: bash;">
sudo apt-get autoremove ghc6
</pre></p>
<p>Note that if you installed cabal as per my previous post, you can remove the executable from your <a href="http://www.linfo.org/path_env_var.html">$PATH</a> by executing the following:<br />
<pre class="brush: bash;">
sudo rm /usr/local/sbin/cabal 
</pre><br />
This will not delete the executable, which is stored in $HOME/.cabal/bin/.  This just removes the <a href="http://http://en.wikipedia.org/wiki/Symbolic_link">sym-link</a> that was in your <a href="http://www.linfo.org/path_env_var.html">$PATH</a>.</p>
<p>Next, lets grab the source for GHC 6.10.3 (which is required to build the Haskell Platform)<br />
<pre class="brush: bash;">
wget http://haskell.org/ghc/dist/6.10.3/ghc-6.10.3-i386-unknown-linux-n.tar.bz2
</pre></p>
<p>and untar it.<br />
<pre class="brush: bash;">
tar -xvvf http://haskell.org/ghc/dist/6.10.3/ghc-6.10.3-i386-unknown-linux-n.tar.bz2
</pre></p>
<p>next, lets configure it and build it:<br />
<pre class="brush: bash;">
cd ghc-6.10.3/
./configure 
sudo make install
</pre></p>
<p>After this, installing the Haskell Platform is just more of the same:<br />
<pre class="brush: bash;">
#grab the tarball
wget http://hackage.haskell.org/platform/2009.2.0.1/haskell-platform-2009.2.0.1.tar.gz

# untar it
tar -xvvf http://hackage.haskell.org/platform/2009.2.0.1/haskell-platform-2009.2.0.1.tar.gz


# ... and install it.
cd haskell-platform-2009.2.0.1/
./configure 
make 
sudo make install
</pre></p>
<p>Along the way, the install scripts for the Haskell Platform will give you prompts for the next step to take.</p>
<p>Enjoy your Haskell Platform, and happy developing!</p>
<br /> Tagged: Cabal, Haskell, Programming <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sporkcode.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sporkcode.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sporkcode.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sporkcode.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sporkcode.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sporkcode.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sporkcode.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sporkcode.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sporkcode.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sporkcode.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sporkcode.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sporkcode.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sporkcode.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sporkcode.wordpress.com/73/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sporkcode.wordpress.com&amp;blog=8378790&amp;post=73&amp;subd=sporkcode&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sporkcode.wordpress.com/2009/07/11/installing-the-haskell-platform-in-ubuntu/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b2887803258bc958e1219f7eb3fbd810?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">John Gunderman</media:title>
		</media:content>
	</item>
		<item>
		<title>Weak References in Java: Working around the Garbage Collector</title>
		<link>http://sporkcode.wordpress.com/2009/07/10/weak-references-in-java-working-around-the-garbage-collector/</link>
		<comments>http://sporkcode.wordpress.com/2009/07/10/weak-references-in-java-working-around-the-garbage-collector/#comments</comments>
		<pubDate>Sat, 11 Jul 2009 02:02:51 +0000</pubDate>
		<dc:creator>John Gunderman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sporkcode.wordpress.com/?p=70</guid>
		<description><![CDATA[Weak References are a slightly obscure, but extremely useful, feature of Java. They effectively give you a reference to an object that is ignored by the garbage collector! What does this mean? This means that if an object only has weak references pointing at it, it is eligible for GC. Weak references come in three [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sporkcode.wordpress.com&amp;blog=8378790&amp;post=70&amp;subd=sporkcode&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Weak References are a slightly obscure, but extremely useful, feature of Java. They effectively give you a reference to an object that <i>is ignored by the garbage collector</i>! What does this mean? This means that if an object only has weak references pointing at it, it is eligible for GC. Weak references come in three types: WeakReference, SoftReference, and PhantomReference. Now, I could give you a detailed analysis of all of these types, but instead I will point you to the very well written <a href="http://weblogs.java.net/blog/enicholas/archive/2006/05/understanding_w.html">blog post by Ethan Nicholas</a>.</p>
<p>Read away!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sporkcode.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sporkcode.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sporkcode.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sporkcode.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sporkcode.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sporkcode.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sporkcode.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sporkcode.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sporkcode.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sporkcode.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sporkcode.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sporkcode.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sporkcode.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sporkcode.wordpress.com/70/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sporkcode.wordpress.com&amp;blog=8378790&amp;post=70&amp;subd=sporkcode&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sporkcode.wordpress.com/2009/07/10/weak-references-in-java-working-around-the-garbage-collector/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b2887803258bc958e1219f7eb3fbd810?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">John Gunderman</media:title>
		</media:content>
	</item>
		<item>
		<title>Haskell Cabal in Ubuntu</title>
		<link>http://sporkcode.wordpress.com/2009/07/05/haskell-cabal-in-ubuntu/</link>
		<comments>http://sporkcode.wordpress.com/2009/07/05/haskell-cabal-in-ubuntu/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 04:18:00 +0000</pubDate>
		<dc:creator>John Gunderman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Cabal]]></category>
		<category><![CDATA[Haskell]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://sporkcode.wordpress.com/?p=27</guid>
		<description><![CDATA[EDIT: You may prefer to install the entire haskell platform in one go, which includes cabal. Detailed instructions can be found here. Recently I&#8217;ve begun to learn Haskell, the lazy functional language. Haskell is backed by a large library of packages, called Hackage. On Hackage, libraries and programs in a wide variety of genres are [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sporkcode.wordpress.com&amp;blog=8378790&amp;post=27&amp;subd=sporkcode&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><i><b>EDIT:</b> You may prefer to install the entire haskell platform in one go, which includes cabal. Detailed instructions can be found <a href="http://sporkcode.wordpress.com/2009/07/11/installing-the-haskell-platform-in-ubuntu/">here</a>.</i></p>
<p>Recently I&#8217;ve begun to learn <a href="http://www.haskell.org">Haskell</a>, the lazy functional language. Haskell is backed by a large library of packages, called <a href="http://hackage.haskell.org/packages/hackage.html">Hackage</a>. On Hackage, libraries and programs in a wide variety of genres are available for download. In order to simplify the download and install process for these packages a tool was born to allow command line grab/install maneuver. Think <a href="http://en.wikipedia.org/wiki/Advanced_Packaging_Tool">apt-get</a> for Haskell.</p>
<p>The tool in question is called cabal, and it&#8217;s quite useful during Haskell development. Unfortunately, I&#8217;ve run into some issues while using it, mainly to do with resolving dependencies. I&#8217;ll get to that later.</p>
<p><strong>Installing Cabal</strong><br />
Installing cabal was not as straight-forward as I had hoped. I first went to the <a href="http://haskell.org/cabal/download.html">offical cabal download page</a>, to see what my options were. The only option on that page was to download a tarball and install it by hand. Of course, having been pampered by the power of apt-get, I figured there had to be a better way. Unfortunately, it seems as there is not. No cabal package exists in the Ubuntu repositories. I downloaded the tarball and prepared to install. The install from the tarball was painless as manual installs go, but unfortunately I had to resolve multiple dependencies to get the build to succeed. Here were the steps I took:</p>
<p><pre class="brush: bash;">
#get our dependant libraries (this assumes we already have ghc6 installed)
sudo apt-get install libghc6-network-dev libghc6-parsec-dev libghc6-mtl-dev libghc6-zlib-dev

#grab the source
wget http://haskell.org/cabal/release/cabal-install-0.6.2/cabal-install-0.6.2.tar.gz

#untar it
tar -xvvf cabal-install-0.6.2.tar.gz

#install it
sh cabal-install-0.6.2/bootstrap.sh

#link the executable into our path
sudo ln -s $HOME/.cabal/bin/cabal /usr/local/bin/cabal

</pre></p>
<p><strong>Using Cabal</strong></p>
<p>Cabal is not limited to simply downloading libraries. It can also allow you to easily create libraries of your own and upload them to Hackage, and also build projects (similar to make).</p>
<p><code>cabal --help</code> will bring up your main options, which is always a good starting place. Let&#8217;s look at installing a package using cabal.</p>
<p><code>cabal install [package-name]</code> installs the given package name. This should be very familiar to anyone who has used a package manager such as apt-get.</p>
<p><code>cabal list [string]</code> is like apt-cache; it searches Hackage for packages pertaining to the string you entered.</p>
<p>Explore! Have fun! there&#8217;s plenty more features of cabal that I won&#8217;t be covering now, yet are plenty awesome.</p>
<p><strong>Problems</strong><br />
I&#8217;ve had some strange dependency issues; for example, installing bloxorz -<br />
<code>cabal install bloxorz</code><br />
gives me an error while trying to build a dependency that in turn depends on a C library which is not auto-resolved. Fun. Fortunately, such errors seem to be few and far between.</p>
<br /> Tagged: Cabal, Haskell, Programming <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sporkcode.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sporkcode.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sporkcode.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sporkcode.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sporkcode.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sporkcode.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sporkcode.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sporkcode.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sporkcode.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sporkcode.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sporkcode.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sporkcode.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sporkcode.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sporkcode.wordpress.com/27/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sporkcode.wordpress.com&amp;blog=8378790&amp;post=27&amp;subd=sporkcode&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sporkcode.wordpress.com/2009/07/05/haskell-cabal-in-ubuntu/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b2887803258bc958e1219f7eb3fbd810?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">John Gunderman</media:title>
		</media:content>
	</item>
		<item>
		<title>On Writing Blog Posts</title>
		<link>http://sporkcode.wordpress.com/2009/07/05/on-writing-blog-posts/</link>
		<comments>http://sporkcode.wordpress.com/2009/07/05/on-writing-blog-posts/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 00:13:15 +0000</pubDate>
		<dc:creator>John Gunderman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sporkcode.wordpress.com/?p=30</guid>
		<description><![CDATA[When I first started this blog, I felt enthused about writing a wide range of interesting articles. Every day, I would learn something new, and then I would blog about it (or so I thought). It turns out that I under-estimated a fear I have apparently harboured: sounding like a stupid ass. Seriously &#8211; I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sporkcode.wordpress.com&amp;blog=8378790&amp;post=30&amp;subd=sporkcode&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When I first started this blog, I felt enthused about writing a wide range of interesting articles. Every day, I would learn something new, and then I would blog about it (or so I thought). It turns out that I under-estimated a fear I have apparently harboured: sounding like a stupid ass. Seriously &#8211; I was afraid of writing about the things I was learning because I felt that I didn&#8217;t know enough about whatever it was to actually sound intelligent. I&#8217;ve been there before, reading something I wrote and realising that I sounded clueless. Today I mean to change that. With all my future blog posts, I suppose I will have plenty of opportunities to sound like an ass, but I&#8217;m just giving you all a disclaimer: read at your own risk. Hopefully I can learn and write enough to get some good posts out there. We&#8217;ll have to see.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sporkcode.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sporkcode.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sporkcode.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sporkcode.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sporkcode.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sporkcode.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sporkcode.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sporkcode.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sporkcode.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sporkcode.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sporkcode.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sporkcode.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sporkcode.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sporkcode.wordpress.com/30/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sporkcode.wordpress.com&amp;blog=8378790&amp;post=30&amp;subd=sporkcode&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sporkcode.wordpress.com/2009/07/05/on-writing-blog-posts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b2887803258bc958e1219f7eb3fbd810?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">John Gunderman</media:title>
		</media:content>
	</item>
		<item>
		<title>HTTP Posts in Apache&#8217;s new HttpClient 4.0 (with Lighttpd)</title>
		<link>http://sporkcode.wordpress.com/2009/06/30/http-posts-in-apaches-new-httpclient-4-0-with-lighttpd/</link>
		<comments>http://sporkcode.wordpress.com/2009/06/30/http-posts-in-apaches-new-httpclient-4-0-with-lighttpd/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 04:50:19 +0000</pubDate>
		<dc:creator>John Gunderman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://sporkcode.wordpress.com/?p=8</guid>
		<description><![CDATA[Apache is developing a new HTTP library which is not based on the current Commons libraries. The documentation on the new libraries can be found here. I came across the new library while developing for Google&#8217;s Android platform, which uses HttpClient 4.0 for its HTTP protocol handling. The new libraries work well, but I spent [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sporkcode.wordpress.com&amp;blog=8378790&amp;post=8&amp;subd=sporkcode&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Apache is developing a new HTTP library which is not based on the current Commons libraries. The documentation on the new libraries can be found <a href="http://hc.apache.org/">here</a>. I came across the new library while developing for Google&#8217;s <a href="http://www.android.com">Android</a> platform, which uses HttpClient 4.0 for its HTTP protocol handling. The new libraries work well, but I spent a considerable amount of time trying to figure out why it was that I couldn&#8217;t get my server to accept the information I had POSTed to it. I finally discovered that the issue was with <a href="http://www.lighttpd.net/">Lighttpd</a>. Lighttpd was the web server used for the service I was POSTing to. It turns out that Lighttpd has had a long-standing issue with the <a href="http://redmine.lighttpd.net/issues/1017">Expect 100-Continue</a> header. Fortunately, this issue has been resolved in Lighttpd 1.5, but for earlier versions it had never been patched. I had to turn, instead to a rather obscure function which disabled that header. Here is the code:</p>
<p><pre class="brush: java;">
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(url);

//THIS IS THE LINE WE CARE ABOUT TO FIX LIHTTPD POSTS
HttpProtocolParams.setUseExpectContinue(params, false);
try {
   StringEntity se = new StringEntity( /* post params went here */ );
   post.setEntity(se);
} catch (UnsupportedEncodingException e1) {
   e1.printStackTrace();
}
try {
   HttpResponse resp =  client.execute(post);
} catch (ClientProtocolException e) {
   e.printStackTrace();
} catch (IOException e) {
   e.printStackTrace();
}
</pre></p>
<br /> Tagged: Android, Apache, Java, Programming <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sporkcode.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sporkcode.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sporkcode.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sporkcode.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sporkcode.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sporkcode.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sporkcode.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sporkcode.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sporkcode.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sporkcode.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sporkcode.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sporkcode.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sporkcode.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sporkcode.wordpress.com/8/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sporkcode.wordpress.com&amp;blog=8378790&amp;post=8&amp;subd=sporkcode&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sporkcode.wordpress.com/2009/06/30/http-posts-in-apaches-new-httpclient-4-0-with-lighttpd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b2887803258bc958e1219f7eb3fbd810?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">John Gunderman</media:title>
		</media:content>
	</item>
		<item>
		<title>Write Yourself a Scheme in 48 Hours</title>
		<link>http://sporkcode.wordpress.com/2009/06/30/write-yourself-a-scheme-in-48-hours/</link>
		<comments>http://sporkcode.wordpress.com/2009/06/30/write-yourself-a-scheme-in-48-hours/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 04:46:41 +0000</pubDate>
		<dc:creator>John Gunderman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Haskell]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Scheme]]></category>

		<guid isPermaLink="false">http://sporkcode.wordpress.com/?p=3</guid>
		<description><![CDATA[I&#8217;ve always had issues with finishing projects I start, but I think I&#8217;ve found something that I will be able to finish. It is a handy little Wikibook called Write Yourself a Scheme in 48 Hours. Now I tend to be skeptical of any book that purports to teach a topic so many days, or [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sporkcode.wordpress.com&amp;blog=8378790&amp;post=3&amp;subd=sporkcode&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve always had issues with finishing projects I start, but I think I&#8217;ve found something that I will be able to finish. It is a handy little Wikibook called <a href="http://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours">Write Yourself a Scheme in 48 Hours</a>. Now I tend to be skeptical of any book that purports to teach a topic so many days, or so many hours. However, WYaS is not quite of the same variety as those boastful primers. WYaS is a book with a dual purpose. As the title states, it teaches the reader how to write the majority of a real Scheme interpreter. The language it is presented in is Haskell. According to the author of the book. the reader should end up learning both Haskell and Scheme. Personally, I am inclined to believe him, because I&#8217;ve read through the first chapter or so and have been suitably impressed. Hopefully I&#8217;ll be able to keep it going and actually finish a programming book for once. If you are even remotely interested in either of these languages or if you simply want a good book to read, I would definitely suggest reading through WYaS and seeing how you like it. I&#8217;ll keep you all updated if I come across anything interesting while reading it.</p>
<br /> Tagged: Haskell, Programming, Scheme <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sporkcode.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sporkcode.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sporkcode.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sporkcode.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sporkcode.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sporkcode.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sporkcode.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sporkcode.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sporkcode.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sporkcode.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sporkcode.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sporkcode.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sporkcode.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sporkcode.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sporkcode.wordpress.com&amp;blog=8378790&amp;post=3&amp;subd=sporkcode&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sporkcode.wordpress.com/2009/06/30/write-yourself-a-scheme-in-48-hours/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b2887803258bc958e1219f7eb3fbd810?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">John Gunderman</media:title>
		</media:content>
	</item>
	</channel>
</rss>
