<?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>Benjamin Halsted</title>
	<atom:link href="http://benjaminhalsted.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://benjaminhalsted.com</link>
	<description>// [bgh] todo, add something clever here.</description>
	<lastBuildDate>Fri, 12 Mar 2010 17:00:58 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Erlang Programming Exercise: 3-2</title>
		<link>http://benjaminhalsted.com/2010/03/erlang-programming-exercise-3-2/</link>
		<comments>http://benjaminhalsted.com/2010/03/erlang-programming-exercise-3-2/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 16:38:47 +0000</pubDate>
		<dc:creator>halzy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Erlang]]></category>
		<category><![CDATA[exercise]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://benjaminhalsted.com/?p=80</guid>
		<description><![CDATA[Exercise 3-2 is also 2 questions:
Write a function that returns a list of the format [1,2,..,N-1,N].
Write a function that returns a list of the format [N, N-1,..,2,1]
I've created 4 functions, create/1, create/2, reverse_create/1, and reverse_create/2. The /1 functions set up the arguments for the /2 worker functions to loop on. 
[erlang]
-module(threetwo).
-export([create/1, reverse_create/1]).
create(1, [1&#124;_T]=List) ->
	List;
create(Num, List) [...]]]></description>
			<content:encoded><![CDATA[<p>Exercise 3-2 is also 2 questions:</p>
<p style="padding-left: 30px;">Write a function that returns a list of the format [1,2,..,N-1,N].</p>
<p style="padding-left: 30px;">Write a function that returns a list of the format [N, N-1,..,2,1]</p>
<p>I've created 4 functions, create/1, create/2, reverse_create/1, and reverse_create/2. The /1 functions set up the arguments for the /2 worker functions to loop on. </p>
<p>[erlang]<br />
-module(threetwo).<br />
-export([create/1, reverse_create/1]).</p>
<p>create(1, [1|_T]=List) -><br />
	List;<br />
create(Num, List) -><br />
	Next = Num-1,<br />
	create(Next, [Next|List]).</p>
<p>create(Num) when Num > 0 -><br />
	create(Num, [Num]).</p>
<p>reverse_create_list(Num, [Num|_T]=List) -><br />
	List;<br />
reverse_create_list(Num, [H|_T]=List) -><br />
	reverse_create_list(Num, [H+1|List]).</p>
<p>reverse_create(Num) when Num > 0 -><br />
	reverse_create_list(Num, [1]).<br />
[/erlang]</p>
<p>An example run:<br />
[shell]<br />
4> threetwo:create(10).<br />
[1,2,3,4,5,6,7,8,9,10]<br />
5> threetwo:reverse_create(10).<br />
[10,9,8,7,6,5,4,3,2,1]<br />
[/shell]</p>
<p>The key in is to pass your target number along and to build the list from right to left. In each iteration we peak at the head of the list, modify that value and then prepend the result to the head of the full list.<br />
[erlang]<br />
[H|_T]=List<br />
[/erlang]<br />
<strong>H</strong> is the first item in the list.<br />
<strong>List</strong> is the full List.</p>
<p>Cheers,<br />
  Ben</p>
]]></content:encoded>
			<wfw:commentRss>http://benjaminhalsted.com/2010/03/erlang-programming-exercise-3-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Erlang Programming Exercise: 3-1</title>
		<link>http://benjaminhalsted.com/2010/03/erlang-programming-exercise-3-1/</link>
		<comments>http://benjaminhalsted.com/2010/03/erlang-programming-exercise-3-1/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 17:14:57 +0000</pubDate>
		<dc:creator>halzy</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Erlang]]></category>
		<category><![CDATA[exercise]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://benjaminhalsted.com/?p=66</guid>
		<description><![CDATA[I'm posting the exercises starting with chapter 3. The previous chapters have you work in the shell and don't require much file work. Exercise 3-1 is:
Write a function sum/1 which, given a positive integer N, will return the sum of all the integers between 1 and N.
And the second part:
Write a function sum/2 which, given two [...]]]></description>
			<content:encoded><![CDATA[<p>I'm posting the exercises starting with chapter 3. The previous chapters have you work in the shell and don't require much file work. Exercise 3-1 is:</p>
<p style="padding-left: 30px;">Write a function sum/1 which, given a positive integer N, will return the sum of all the integers between 1 and N.</p>
<p>And the second part:</p>
<p style="padding-left: 30px;">Write a function sum/2 which, given two integers N and M, where N =&lt; M, will return the sum of the interval between N and M. If N &gt; M, you want your process to terminate abnormally.</p>
<p>Here is my solution: threeone.erl</p>
<p>[erlang]<br />
-module(threeone).<br />
-export([sum/1, sum/2]).</p>
<p>sum(1) -><br />
	1;<br />
sum(Number) -><br />
	Number + sum(Number - 1).</p>
<p>sum(Lower, Lower) -><br />
	Lower;<br />
sum(Lower, Upper) when Lower =< Upper -><br />
	Upper + sum(Lower, Upper-1).<br />
[/erlang]</p>
<p>If you give sum/1 a number less than 1, you'll infinite loop.</p>
<p>The above solution doesn't use Erlang's tail call optimizations. If you give them a very large set of numbers to add up, they keep eating up memory. I wanted to see what would happen when it ran out of memory or stack space, so I told it to sum up a billion. After my system started swapping and started to crawl I killed the process. Maybe next time.</p>
<p>Here is the reworked version that takes advantage of tail call optimization and can sum up numbers from 1 to a billion without making my system swap. The beam.smp process stays around 10mb of memory.</p>
<p>[erlang]<br />
-module(threeone_tco).<br />
-export([sum/1, sum/2]).</p>
<p>sum_range(Sum, Lower, Lower) -><br />
	Sum + Lower;<br />
sum_range(Sum, Lower, Upper) -><br />
	sum_range(Sum + Upper, Lower, Upper-1).</p>
<p>sum(Number) when Number > 0 -><br />
	sum_range(0, 1, Number).</p>
<p>sum(Lower, Upper) when Lower =< Upper -><br />
	sum_range(0, Lower, Upper).<br />
[/erlang]</p>
<p>The big change comes from passing the Sum as an argument to the next function call. To use TCO (Tail Call Optimization) you want to leave no work to be done in your function, and the last thing your function does, should be calling itself. Previously, the function would still have to add two numbers after it's recursion finished. </p>
<p>Cheers,<br />
 -Halzy</p>
]]></content:encoded>
			<wfw:commentRss>http://benjaminhalsted.com/2010/03/erlang-programming-exercise-3-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Learning Erlang</title>
		<link>http://benjaminhalsted.com/2010/03/learning-erlang/</link>
		<comments>http://benjaminhalsted.com/2010/03/learning-erlang/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 16:23:20 +0000</pubDate>
		<dc:creator>halzy</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Erlang]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://benjaminhalsted.com/?p=61</guid>
		<description><![CDATA[It all started way back when I was doing concurrent programming in Java for the MMORPG when a buddy of mine pointed out CouchDB. It's a neat project, but was written in some strange language called Erlang. I started to look more into Erlang and found that the language was designed to addressed some of [...]]]></description>
			<content:encoded><![CDATA[<p>It all started way back when I was doing concurrent programming in Java for the MMORPG when a buddy of mine pointed out <a href="http://couchdb.apache.org/" target="_blank">CouchDB</a>. It's a neat project, but was written in some strange language called Erlang. I started to <a href="http://en.wikipedia.org/wiki/Erlang_(programming_language)" target="_blank">look more</a> into Erlang and found that the language was designed to addressed some of the more complicated aspects of concurrent programming. This appealed to me because those were my current pain points with the game. When do we lock around what data, which threads are changing what, do I need to use volatile for this variable too. It's a lot to think about, it's hard to get right, and Erlang solves those problems for you if you're willing to think differently.</p>
<p>I started by reading <a href="http://www.pragprog.com/titles/jaerlang/programming-erlang" target="_blank">Programming Erlang</a> by Joe Armstrong and now I'm reading through <a href="http://www.erlangprogramming.org/" target="_blank">Erlang Programming</a> by Francesco Cesarini and Simon Thompson. I'm enjoying the second book more than the first one, but this could be a side effect of being more comfortable with Erlang because I read the first book. I'm so taken with this bizarre language that I've decided to work through all of the exercises in Erlang Programming. I'll be posting my solutions and hopefully, by the time I get through all of them I'll feel comfortable enough with Erlang to build something with it.</p>
<p>Cheers,<br />
- Halzy</p>
]]></content:encoded>
			<wfw:commentRss>http://benjaminhalsted.com/2010/03/learning-erlang/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Subversion loves Araxis Merge (or, How I finally configured subversion to use Araxis Merge in a not so stupid way.)</title>
		<link>http://benjaminhalsted.com/2010/03/subversion-lovesaraxis-merge-subversion/</link>
		<comments>http://benjaminhalsted.com/2010/03/subversion-lovesaraxis-merge-subversion/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 16:52:17 +0000</pubDate>
		<dc:creator>halzy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[araxis merge]]></category>
		<category><![CDATA[configuration]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://benjaminhalsted.com/?p=37</guid>
		<description><![CDATA[Araxis suggests modifying subversions diff-cmd and diff3-cmd settings to get it to use Araxis Merge instead of the defaults. Here is a snippet from their docs. (You can skip it, it's just here to make my post look bigger.):

Open your ‘SVN configuration area’ configuration file in a text editor. The default location for this file [...]]]></description>
			<content:encoded><![CDATA[<p>Araxis suggests modifying subversions diff-cmd and diff3-cmd settings to get it to use Araxis Merge instead of the defaults. Here is a snippet from their docs. (You can skip it, it's just here to make my post look bigger.):</p>
<blockquote>
<p style="text-align: left; max-width: 520px; white-space: normal; margin-top: 5px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px;">Open your ‘SVN configuration area’ configuration file in a text editor. The default location for this file is <em>~/.subversion</em>.</p>
<p style="text-align: left; max-width: 520px; white-space: normal; margin-top: 5px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px;">Uncomment the line that specifies the <code style="font-family: 'Courier New', Courier, monospace; white-space: normal; font-size: 12px;">diff-cmd</code> and set its value to the path of the Merge <em>araxissvndiff</em> executable that you have installed on your machine:</p>
<blockquote style="margin-top: 5px; margin-right: 2.5em; margin-bottom: 5px; margin-left: 2.5em; font-style: normal; text-align: left; max-width: 520px; white-space: normal;">
<pre style="font-family: 'Courier New', Courier, monospace; margin-top: 5px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; font-size: 12px;">diff-cmd = /Users/&lt;userid&gt;/bin/araxissvndiff</pre>
</blockquote>
<p style="text-align: left; max-width: 520px; white-space: normal; margin-top: 5px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px;">Note: in the above path, replace <em>/Users/&lt;userid&gt;/bin/araxissvndiff</em> with the full path to the Merge Merge <em>araxissvndiff</em> command-line utility that you have installed on your machine.</p>
<p style="text-align: left; max-width: 520px; white-space: normal; margin-top: 5px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px;">Also uncomment the line that specifies the <code style="font-family: 'Courier New', Courier, monospace; white-space: normal; font-size: 12px;">diff-cmd3</code> and set its value to the path of the Merge <em>araxissvndiff3</em> executable that you have installed on your machine:</p>
<blockquote style="margin-top: 5px; margin-right: 2.5em; margin-bottom: 5px; margin-left: 2.5em; font-style: normal; text-align: left; max-width: 520px; white-space: normal;">
<pre style="font-family: 'Courier New', Courier, monospace; margin-top: 5px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; font-size: 12px;">diff3-cmd = /Users/&lt;userid&gt;/bin/araxissvndiff3</pre>
</blockquote>
<p style="text-align: left; max-width: 520px; white-space: normal; margin-top: 5px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px;">Note: in the above path, replace <em>/Users/&lt;userid&gt;/bin/araxissvndiff3</em> with the full path to the Merge Merge <em>araxissvndiff3</em> command-line utility that you have installed on your machine.</p>
</blockquote>
<p style="text-align: left; max-width: 520px; white-space: normal; margin-top: 5px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px;">By doing what they say, you tell svn to use Araxis Merge every time it needs to merge a file. The problem with this is that svn will open Araxis Merge to make <strong>every</strong> merge. When you have a couple hundred files, you want svn to merge everything it can without opening Araxis Merge, and to only open it when there is a conflict. There is a way to do this, but it is not obvious.</p>
<p style="text-align: left; max-width: 520px; white-space: normal; margin-top: 5px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px;"><span id="more-37"></span></p>
<p style="text-align: left; max-width: 520px; white-space: normal; margin-top: 5px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px;">These instructions are specific to OSX, but should be enough of a hint for getting set up on any platform.</p>
<p style="text-align: left; max-width: 520px; white-space: normal; margin-top: 5px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px;">We need to create a shell script that we can use as a merge tool. It needs to be somewhere in your execution PATH. I've added ~/bin to my execution PATH and have put the script there, but you could put it in a directory that is already in your path, such as /usr/local/bin.</p>
<p>Here is the script, it is named araxishelper.sh:</p>
<blockquote>
<pre>#!/bin/sh

araxissvndiff3 $2 $1 $3 &gt; $4
exit $?</pre>
</blockquote>
<p>Make sure it's executable bit is set:</p>
<blockquote>
<pre>chmod +x araxishelper.sh</pre>
</blockquote>
<p>Now we need to configure subversion to use this new merge script. Edit your subversion configuration file ~/.subversion/config, and add the line:</p>
<pre>
<blockquote>
<pre>merge-tool-cmd = araxishelper.sh</pre>
</blockquote>
</pre>
<p>Thats it! Well, almost. If you try doing a merge now, nothing different happens. What gives? You have to tell subversion to use the merge-tool-cmd setting by adding '--accept launch' to your svn merge command.</p>
<blockquote>
<pre>svn merge svn+ssh://mrhalzy@foobar.com/code/branch/awesome <strong>--accept launch</strong></pre>
</blockquote>
<p>It is important to know that we are using the default merge tool (probably diff3) for the bulk of the merging and only using araxismerge when diff3 can't handle it. Because araxis does a bit more than diff3, you might not have any conflicts to resolve when it pops up. This means that diff3 couldn't handle it, but araxis could. Just save, close and continue.</p>
<p>Cheers,<br />
Halzy</p>
<p>"Wait!", screams the pseudo-technical guy in the back of the room. "What is it that the script is doing?"</p>
<p>Well, it's remapping the argument order. Subversion isn't consistent in it's argument order for diff3-cmd and merge-tool-cmd. So we have to use this proxy script to make it work. The arguments are: $1 = base, $2 = theirs, $3 = mine, $4=merge result location.</p>
]]></content:encoded>
			<wfw:commentRss>http://benjaminhalsted.com/2010/03/subversion-lovesaraxis-merge-subversion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Shock &amp; Awe @ Google</title>
		<link>http://benjaminhalsted.com/2009/10/shock-awe-google/</link>
		<comments>http://benjaminhalsted.com/2009/10/shock-awe-google/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 15:00:12 +0000</pubDate>
		<dc:creator>halzy</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://benjaminhalsted.com/?p=44</guid>
		<description><![CDATA[Today Googles homepage has a nice look to it, so much different that I was shocked when I arrived. The navigation and footer links faded in when you move your mouse. Very nice Google, I applaud you.
]]></description>
			<content:encoded><![CDATA[<div id="attachment_43" class="wp-caption aligncenter" style="width: 420px"><img class="size-full wp-image-43 " title="Google barcode" src="http://benjaminhalsted.com/wp-content/uploads/2009/10/Picture-6.png" alt="2009.10.7 Google Homepage" width="410" height="303" /><p class="wp-caption-text">2009.10.7 Google Homepage</p></div>
<p>Today Googles homepage has a nice look to it, so much different that I was shocked when I arrived. The navigation and footer links faded in when you move your mouse. Very nice Google, I applaud you.</p>
]]></content:encoded>
			<wfw:commentRss>http://benjaminhalsted.com/2009/10/shock-awe-google/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Meh&#8230; new web host.</title>
		<link>http://benjaminhalsted.com/2009/09/hello-world/</link>
		<comments>http://benjaminhalsted.com/2009/09/hello-world/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 04:40:08 +0000</pubDate>
		<dc:creator>halzy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://benjaminhalsted.com/?p=1</guid>
		<description><![CDATA[&#62;:D&#60;
]]></description>
			<content:encoded><![CDATA[<p>&gt;:D&lt;</p>
]]></content:encoded>
			<wfw:commentRss>http://benjaminhalsted.com/2009/09/hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I&#8217;ll be late&#8230;</title>
		<link>http://benjaminhalsted.com/2009/03/ill-be-late/</link>
		<comments>http://benjaminhalsted.com/2009/03/ill-be-late/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 19:42:55 +0000</pubDate>
		<dc:creator>halzy</dc:creator>
				<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://benjaminhalsted.com/?p=26</guid>
		<description><![CDATA[Dearest Love of My Life,
I know how much it can negatively affect life at home when I'm unable to arrive at a reasonable hour. Please understand my regrets that I will be late this evening..

A) There's an issue at work and I must save the company from certain doom B) I'm staying late to help [...]]]></description>
			<content:encoded><![CDATA[<p><span class="yshortcuts">Dearest Love of My Life</span>,</p>
<p>I know how much it can negatively affect life at home when I'm unable to arrive at a reasonable hour. Please understand my regrets that I will be late this evening..</p>
<p><span id="more-26"></span><br />
<br />A) There's an issue at work and I must save the company from certain doom<br /> B) I'm staying late to help someone else with such an issue<br /> C) There's been a terrible accident that<br /> &nbsp;&nbsp; i) I was involved in, but will contact you as soon as I can<br /> &nbsp;&nbsp; ii) I was witness to, and will contact you as soon as I can<br /> D) I'm playing a game that <br /> &nbsp;&nbsp; i) won't be too long, I should be home sometime tonight<br /> &nbsp;&nbsp; ii) will be continued until I realize that strange light in the corner of my eye is the <span class="yshortcuts">rising sun</span><br /> E) I'm dead.</p>
<p> Thank you for your understanding and patience. I hate to worry you so.<br /> Much love,<br /> Your  Devoted Spouse.</p>
]]></content:encoded>
			<wfw:commentRss>http://benjaminhalsted.com/2009/03/ill-be-late/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick math game.</title>
		<link>http://benjaminhalsted.com/2009/02/quick-math-game/</link>
		<comments>http://benjaminhalsted.com/2009/02/quick-math-game/#comments</comments>
		<pubDate>Tue, 17 Feb 2009 12:55:27 +0000</pubDate>
		<dc:creator>halzy</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Fun]]></category>

		<guid isPermaLink="false">http://benjaminhalsted.com/?p=25</guid>
		<description><![CDATA[Yesterday I made a quick math game to help with some math studies. You have to click on the game, then type in the answer and hit enter (or click GO!).
&#160;
]]></description>
			<content:encoded><![CDATA[<p>Yesterday I made <a title="MathGame" target="_blank" href="http://benjaminhalsted.com/flash/MathGame/index.html">a quick math game</a> to help with some math studies. You have to click on the game, then type in the answer and hit enter (or click GO!).</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://benjaminhalsted.com/2009/02/quick-math-game/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I&#8217;ve got your back.</title>
		<link>http://benjaminhalsted.com/2008/03/ive-got-your-back/</link>
		<comments>http://benjaminhalsted.com/2008/03/ive-got-your-back/#comments</comments>
		<pubDate>Sat, 29 Mar 2008 00:00:01 +0000</pubDate>
		<dc:creator>halzy</dc:creator>
				<category><![CDATA[Fun]]></category>

		<guid isPermaLink="false">http://benjaminhalsted.com/?p=22</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><img alt="wow_lvl_45_war.gif" src="http://benjaminhalsted.com/images/wow/wow_lvl_45_war.gif" width="490" height="270" /></p>
]]></content:encoded>
			<wfw:commentRss>http://benjaminhalsted.com/2008/03/ive-got-your-back/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>@twitter feature request?</title>
		<link>http://benjaminhalsted.com/2008/03/twitter-feature-request/</link>
		<comments>http://benjaminhalsted.com/2008/03/twitter-feature-request/#comments</comments>
		<pubDate>Wed, 26 Mar 2008 00:00:01 +0000</pubDate>
		<dc:creator>halzy</dc:creator>
				<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://benjaminhalsted.com/?p=21</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><img alt="twitter_daily_digest.gif" src="http://benjaminhalsted.com/images/fun/twitter_daily_digest.gif" width="425" height="166" /></p>
]]></content:encoded>
			<wfw:commentRss>http://benjaminhalsted.com/2008/03/twitter-feature-request/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
