<?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>johnbender.us</title>
	<atom:link href="http://johnbender.us/feed/" rel="self" type="application/rss+xml" />
	<link>http://johnbender.us</link>
	<description></description>
	<lastBuildDate>Tue, 08 May 2012 06:18:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Middleware as a General Purpose Abstraction</title>
		<link>http://johnbender.us/2012/04/28/middleware-as-a-general-purpose-abstraction/</link>
		<comments>http://johnbender.us/2012/04/28/middleware-as-a-general-purpose-abstraction/#comments</comments>
		<pubDate>Sat, 28 Apr 2012 21:51:56 +0000</pubDate>
		<dc:creator>John Bender</dc:creator>
				<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://johnbender.us/?p=1739</guid>
		<description><![CDATA[It was my pleasure to give this presentation at LARubyConf in February. You can find the code samples and the presentation slides on Github and a big thanks to the fine folks at Confreaks for posting the video.]]></description>
		<wfw:commentRss>http://johnbender.us/2012/04/28/middleware-as-a-general-purpose-abstraction/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Natural Transformation in JavaScript</title>
		<link>http://johnbender.us/2012/03/22/a-natural-transformation-in-javascript/</link>
		<comments>http://johnbender.us/2012/03/22/a-natural-transformation-in-javascript/#comments</comments>
		<pubDate>Thu, 22 Mar 2012 16:41:52 +0000</pubDate>
		<dc:creator>John Bender</dc:creator>
				<category><![CDATA[functional programming]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[maths]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[uncategorized]]></category>

		<guid isPermaLink="false">http://johnbender.us/?p=1682</guid>
		<description><![CDATA[Natural transformations are a foundational construct in category theory, so it seems fitting to follow up my last post by describing one using the categories Html and Jqry. As a result this post assumes the reader has covered the material from the last post. Also, as much as I wish that I could claim a [...]]]></description>
		<wfw:commentRss>http://johnbender.us/2012/03/22/a-natural-transformation-in-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Faster JavaScript Through Category Theory</title>
		<link>http://johnbender.us/2012/02/29/faster-javascript-through-category-theory/</link>
		<comments>http://johnbender.us/2012/02/29/faster-javascript-through-category-theory/#comments</comments>
		<pubDate>Wed, 29 Feb 2012 17:29:24 +0000</pubDate>
		<dc:creator>John Bender</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[maths]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://johnbender.us/?p=1613</guid>
		<description><![CDATA[This post started out as a gist meant to help work through what I&#8217;ve learned about category theory by applying it to something I already knew, JavaScript. The surprising result is a clearly defined set of JavaScript functions and jQuery helpers that can be optimized to reduce execution time. In the course of this post [...]]]></description>
		<wfw:commentRss>http://johnbender.us/2012/02/29/faster-javascript-through-category-theory/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Leveraging Your Insecurities</title>
		<link>http://johnbender.us/2012/02/22/leveraging-your-insecurities/</link>
		<comments>http://johnbender.us/2012/02/22/leveraging-your-insecurities/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 16:22:07 +0000</pubDate>
		<dc:creator>John Bender</dc:creator>
				<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://johnbender.us/?p=1545</guid>
		<description><![CDATA[update: This article has been posted to Hacker News. If you enjoy it and are a member there please upvote/comment. I believe mine is a fairly common condition as a software developer. I know, or at least believe, that I&#8217;m smart enough to be paid well for the work that I do, but the state [...]]]></description>
		<wfw:commentRss>http://johnbender.us/2012/02/22/leveraging-your-insecurities/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>jQuery is just a browser API</title>
		<link>http://johnbender.us/2011/11/25/jquery-is-just-a-browser-api/</link>
		<comments>http://johnbender.us/2011/11/25/jquery-is-just-a-browser-api/#comments</comments>
		<pubDate>Fri, 25 Nov 2011 17:35:32 +0000</pubDate>
		<dc:creator>John Bender</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[pattern]]></category>
		<category><![CDATA[jquery javascript prototype objects]]></category>

		<guid isPermaLink="false">http://johnbender.us/?p=1429</guid>
		<description><![CDATA[[Update] Thanks to Charlie in the comments for pointing me to jQuery&#8217;s $.fn.proxy method. Developers have traditionally used JavaScript for relatively simple DOM manipulations and XHR, but as more functionality moves to the client, the techniques used by those developers have been slow to evolve. One consequence of this slow evolution is systems comprised entirely [...]]]></description>
		<wfw:commentRss>http://johnbender.us/2011/11/25/jquery-is-just-a-browser-api/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>You got your type class in my jQuery: Applicative Functors</title>
		<link>http://johnbender.us/2011/07/20/you-got-your-type-class-in-my-jquery-applicative-functors/</link>
		<comments>http://johnbender.us/2011/07/20/you-got-your-type-class-in-my-jquery-applicative-functors/#comments</comments>
		<pubDate>Wed, 20 Jul 2011 21:27:45 +0000</pubDate>
		<dc:creator>John Bender</dc:creator>
				<category><![CDATA[functional programming]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[pattern]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://johnbender.us/?p=1364</guid>
		<description><![CDATA[Previously we saw how jQuery&#8217;s $() can behave like Haskell&#8217;s Functor typeclass, when it wraps raw DOM objects and how provides its own version of fmap ($.map) for lifting functions into that wrapper to work with those DOM objects. In this post I&#8217;ll explain Haskell&#8217;s Applicative typeclass, how it&#8217;s slightly different from the Functor, and [...]]]></description>
		<wfw:commentRss>http://johnbender.us/2011/07/20/you-got-your-type-class-in-my-jquery-applicative-functors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>You got your type class in my jQuery: Functors</title>
		<link>http://johnbender.us/2011/07/08/you-got-your-type-class-in-my-jquery-functors/</link>
		<comments>http://johnbender.us/2011/07/08/you-got-your-type-class-in-my-jquery-functors/#comments</comments>
		<pubDate>Fri, 08 Jul 2011 09:12:39 +0000</pubDate>
		<dc:creator>John Bender</dc:creator>
				<category><![CDATA[functional programming]]></category>
		<category><![CDATA[haskell]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[pattern]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[haskell functional jquery javascript learning]]></category>

		<guid isPermaLink="false">http://johnbender.us/?p=1190</guid>
		<description><![CDATA[I have previously described practical applications of common functional programming concepts in earlier posts: Rack&#8217;s Middleware and Vagrant&#8217;s Middleware. Next in this series I&#8217;ll cover how jQuery&#8217;s design leverages abstractions similar to Haskell&#8217;s better-known type classes: Functor, Applicative, and Monad. It draws heavily from Brent Yorgey&#8217;s Typeclassopedia from [PDF] The Monad Reader 13 (which was [...]]]></description>
		<wfw:commentRss>http://johnbender.us/2011/07/08/you-got-your-type-class-in-my-jquery-functors/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Snap setup from scratch the Vagrant way</title>
		<link>http://johnbender.us/2011/03/05/snap-setup-from-scratch-the-vagrant-way/</link>
		<comments>http://johnbender.us/2011/03/05/snap-setup-from-scratch-the-vagrant-way/#comments</comments>
		<pubDate>Sun, 06 Mar 2011 06:57:26 +0000</pubDate>
		<dc:creator>John Bender</dc:creator>
				<category><![CDATA[functional programming]]></category>
		<category><![CDATA[haskell]]></category>
		<category><![CDATA[vagrant]]></category>

		<guid isPermaLink="false">http://johnbender.us/?p=1119</guid>
		<description><![CDATA[A large group of web developers, otherwise ambivalent to Haskell, have recently found reason to learn the language thanks in part to the Snap web framework. Its really no surprise given Haskell&#8217;s brilliance as an all purpose programming language and the effort the Snap team has put into providing great documentation. For those interested in [...]]]></description>
		<wfw:commentRss>http://johnbender.us/2011/03/05/snap-setup-from-scratch-the-vagrant-way/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Contributing to jQuery Mobile</title>
		<link>http://johnbender.us/2011/02/08/contributing-to-jquery-mobile/</link>
		<comments>http://johnbender.us/2011/02/08/contributing-to-jquery-mobile/#comments</comments>
		<pubDate>Tue, 08 Feb 2011 14:16:30 +0000</pubDate>
		<dc:creator>John Bender</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[vagrant]]></category>

		<guid isPermaLink="false">http://johnbender.us/?p=1053</guid>
		<description><![CDATA[UPDATE: I&#8217;ve updated the vagrant branch used below to support the newest version of Vagrant. This is more substantial version of the lightning talk I gave at LA RubyConf last Saturday. If you&#8217;re a Vagrant user already, this will be familiar. If not, don&#8217;t worry, you&#8217;re about to get a quick introduction to its power [...]]]></description>
		<wfw:commentRss>http://johnbender.us/2011/02/08/contributing-to-jquery-mobile/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Haskell and Vagrant’s Middleware</title>
		<link>http://johnbender.us/2010/10/18/haskell-and-vagrants-middleware/</link>
		<comments>http://johnbender.us/2010/10/18/haskell-and-vagrants-middleware/#comments</comments>
		<pubDate>Mon, 18 Oct 2010 16:34:19 +0000</pubDate>
		<dc:creator>John Bender</dc:creator>
				<category><![CDATA[functional programming]]></category>
		<category><![CDATA[haskell]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[haskell ruby]]></category>

		<guid isPermaLink="false">http://nickelcode.com/?p=898</guid>
		<description><![CDATA[As a follow up to my last post on middleware and monads I&#8217;ll be going over how the Warden class, as implemented inside Vagrant, uses concepts derived from some of the basic monad combinators to achieve a rescuable middleware stack. As before, this article assumes you have some knowledge of the Haskell language and middleware [...]]]></description>
		<wfw:commentRss>http://johnbender.us/2010/10/18/haskell-and-vagrants-middleware/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

