<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:yt="http://gdata.youtube.com/schemas/2007" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
   <channel>
      <title>davidSmalley: Combined Feed</title>
      <description>Pipes Output</description>
      <link>http://pipes.yahoo.com/pipes/pipe.info?_id=Pk0tC_6W3BGid5Tr1fC6Jw</link>
      <pubDate>Tue, 10 Nov 2009 19:11:52 -0800</pubDate>
      <generator>http://pipes.yahoo.com/pipes/</generator>
      <geo:lat>53.827</geo:lat><geo:long>-1.621</geo:long><creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/DavidsBrainBlog" type="application/rss+xml" /><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site.</feedburner:browserFriendly><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
         <title>Talk at NWRUG on Rails and Varnish</title>
         <link>http://feedproxy.google.com/~r/DavidsBrainBlog/~3/itu8mXzrb0U/talk-at-nwrug-on-rails-and-varnish</link>
         <description>&lt;p&gt;Last night I talked at the &lt;a rel="nofollow" target="_blank" href="http://nwrug.org/"&gt;Northwest Ruby User Group&lt;/a&gt; on the subject of caching with Rails and Varnish, and our experiences with Doctype.&lt;/p&gt; &lt;p&gt;As promised I’m going to post the talk and our varnish config file -I don’t know if the notes will make much sense, I tend to make brief notes relevant to me to remind me on what to say next. Hopefully you get the gist.&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://davidsmalley.com/assets/2009/9/18/NWRUG.pdf"&gt;The talk&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Doctype varnish config&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=itu8mXzrb0U:IFNVCI6Dp40:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=itu8mXzrb0U:IFNVCI6Dp40:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=itu8mXzrb0U:IFNVCI6Dp40:aKCwKftKxY0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?i=itu8mXzrb0U:IFNVCI6Dp40:aKCwKftKxY0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=itu8mXzrb0U:IFNVCI6Dp40:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=itu8mXzrb0U:IFNVCI6Dp40:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=itu8mXzrb0U:IFNVCI6Dp40:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>David</author>
         <guid isPermaLink="false">tag:davidsmalley.com,2009-09-18:5938</guid>
         <pubDate>Fri, 18 Sep 2009 04:10:00 -0700</pubDate>
      <feedburner:origLink>http://davidsmalley.com/2009/9/18/talk-at-nwrug-on-rails-and-varnish</feedburner:origLink></item>
      <item>
         <title>Doctype Launched</title>
         <link>http://feedproxy.google.com/~r/DavidsBrainBlog/~3/bVfvhiiZGac/doctype-launched</link>
         <description>&lt;p&gt;I’ve been working on this project for a while now, since starting full time on Litmus in June – so it’s great to see it finally come to fruition.&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://doctype.com"&gt;Doctype&lt;/a&gt; is our new Q&amp;A site for web designers.&lt;/p&gt; &lt;p&gt;We’ve been lucky enough to get accepted into the &lt;a rel="nofollow" target="_blank" href="http://blog.stackoverflow.com/2009/08/stack-overflow-and-doctype"&gt;StackOverflow League of web Justice&lt;/a&gt; – everyone at &lt;a rel="nofollow" target="_blank" href="http://litmusapp.com"&gt;Litmus&lt;/a&gt; loves StackOverflow and is stoked to be a partner site.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=bVfvhiiZGac:ZKmsCRF5mDg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=bVfvhiiZGac:ZKmsCRF5mDg:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=bVfvhiiZGac:ZKmsCRF5mDg:aKCwKftKxY0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?i=bVfvhiiZGac:ZKmsCRF5mDg:aKCwKftKxY0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=bVfvhiiZGac:ZKmsCRF5mDg:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=bVfvhiiZGac:ZKmsCRF5mDg:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=bVfvhiiZGac:ZKmsCRF5mDg:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>David</author>
         <guid isPermaLink="false">tag:davidsmalley.com,2009-08-12:5924</guid>
         <pubDate>Wed, 12 Aug 2009 07:15:00 -0700</pubDate>
      <feedburner:origLink>http://davidsmalley.com/2009/8/12/doctype-launched</feedburner:origLink></item>
      <item>
         <title>Rebuilding the living room: Half plastered - nearly there now.</title>
         <link>http://feedproxy.google.com/~r/DavidsBrainBlog/~3/AsduPapudBM/156822518</link>
         <description>&lt;img src="http://10.media.tumblr.com/eU3xwLFxJqse8v27hFW6r3xBo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Rebuilding the living room:&lt;/b&gt; &lt;p&gt;Half plastered - nearly there now.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=AsduPapudBM:PoUmeWbwqw4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=AsduPapudBM:PoUmeWbwqw4:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=AsduPapudBM:PoUmeWbwqw4:aKCwKftKxY0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?i=AsduPapudBM:PoUmeWbwqw4:aKCwKftKxY0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=AsduPapudBM:PoUmeWbwqw4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=AsduPapudBM:PoUmeWbwqw4:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=AsduPapudBM:PoUmeWbwqw4:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">http://tumble.davidsmalley.com/post/156822518</guid>
         <pubDate>Wed, 05 Aug 2009 19:08:47 -0700</pubDate>
      <feedburner:origLink>http://tumble.davidsmalley.com/post/156822518</feedburner:origLink></item>
      <item>
         <title>Rebuilding the living room: Half plastered - nearly there now.</title>
         <link>http://feedproxy.google.com/~r/DavidsBrainBlog/~3/CaP-pUW16k0/156822394</link>
         <description>&lt;img src="http://17.media.tumblr.com/eU3xwLFxJqse8nj41TIB87mso1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Rebuilding the living room:&lt;/b&gt; &lt;p&gt;Half plastered - nearly there now.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=CaP-pUW16k0:_0XUQ0mGegM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=CaP-pUW16k0:_0XUQ0mGegM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=CaP-pUW16k0:_0XUQ0mGegM:aKCwKftKxY0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?i=CaP-pUW16k0:_0XUQ0mGegM:aKCwKftKxY0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=CaP-pUW16k0:_0XUQ0mGegM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=CaP-pUW16k0:_0XUQ0mGegM:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=CaP-pUW16k0:_0XUQ0mGegM:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">http://tumble.davidsmalley.com/post/156822394</guid>
         <pubDate>Wed, 05 Aug 2009 19:08:37 -0700</pubDate>
      <feedburner:origLink>http://tumble.davidsmalley.com/post/156822394</feedburner:origLink></item>
      <item>
         <title>Rebuilding the living room: Half plastered - nearly there now.</title>
         <link>http://feedproxy.google.com/~r/DavidsBrainBlog/~3/PdKDIdRaGtQ/156822307</link>
         <description>&lt;img src="http://14.media.tumblr.com/eU3xwLFxJqse8ih03xDC6vB6o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Rebuilding the living room:&lt;/b&gt; &lt;p&gt;Half plastered - nearly there now.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=PdKDIdRaGtQ:RVXwIIPIQXo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=PdKDIdRaGtQ:RVXwIIPIQXo:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=PdKDIdRaGtQ:RVXwIIPIQXo:aKCwKftKxY0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?i=PdKDIdRaGtQ:RVXwIIPIQXo:aKCwKftKxY0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=PdKDIdRaGtQ:RVXwIIPIQXo:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=PdKDIdRaGtQ:RVXwIIPIQXo:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=PdKDIdRaGtQ:RVXwIIPIQXo:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">http://tumble.davidsmalley.com/post/156822307</guid>
         <pubDate>Wed, 05 Aug 2009 19:08:30 -0700</pubDate>
      <feedburner:origLink>http://tumble.davidsmalley.com/post/156822307</feedburner:origLink></item>
      <item>
         <title>Rebuilding the living room: Half plastered - nearly there now.</title>
         <link>http://feedproxy.google.com/~r/DavidsBrainBlog/~3/FNE_JhXyvfc/156822230</link>
         <description>&lt;img src="http://21.media.tumblr.com/eU3xwLFxJqse8dh9XgmHa4VSo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Rebuilding the living room:&lt;/b&gt; &lt;p&gt;Half plastered - nearly there now.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=FNE_JhXyvfc:q5s_qHACoOY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=FNE_JhXyvfc:q5s_qHACoOY:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=FNE_JhXyvfc:q5s_qHACoOY:aKCwKftKxY0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?i=FNE_JhXyvfc:q5s_qHACoOY:aKCwKftKxY0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=FNE_JhXyvfc:q5s_qHACoOY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=FNE_JhXyvfc:q5s_qHACoOY:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=FNE_JhXyvfc:q5s_qHACoOY:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">http://tumble.davidsmalley.com/post/156822230</guid>
         <pubDate>Wed, 05 Aug 2009 19:08:24 -0700</pubDate>
      <feedburner:origLink>http://tumble.davidsmalley.com/post/156822230</feedburner:origLink></item>
      <item>
         <title>Rebuilding the living room: Half plastered - nearly there now.</title>
         <link>http://feedproxy.google.com/~r/DavidsBrainBlog/~3/4BPBbmiDPGM/156822132</link>
         <description>&lt;img src="http://12.media.tumblr.com/eU3xwLFxJqse87d90sYEDzkbo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Rebuilding the living room:&lt;/b&gt; &lt;p&gt;Half plastered - nearly there now.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=4BPBbmiDPGM:6zMdXthA5iA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=4BPBbmiDPGM:6zMdXthA5iA:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=4BPBbmiDPGM:6zMdXthA5iA:aKCwKftKxY0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?i=4BPBbmiDPGM:6zMdXthA5iA:aKCwKftKxY0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=4BPBbmiDPGM:6zMdXthA5iA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=4BPBbmiDPGM:6zMdXthA5iA:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=4BPBbmiDPGM:6zMdXthA5iA:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">http://tumble.davidsmalley.com/post/156822132</guid>
         <pubDate>Wed, 05 Aug 2009 19:08:16 -0700</pubDate>
      <feedburner:origLink>http://tumble.davidsmalley.com/post/156822132</feedburner:origLink></item>
      <item>
         <title>The Bricks: Whoever thought it was a good idea to build...</title>
         <link>http://feedproxy.google.com/~r/DavidsBrainBlog/~3/4B9yK2gFbbg/156426506</link>
         <description>&lt;img src="http://15.media.tumblr.com/eU3xwLFxJqrpq4gedelDAEVjo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;b&gt;The Bricks:&lt;/b&gt; &lt;p&gt;Whoever thought it was a good idea to build something with so many bricks in such a small room.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=4B9yK2gFbbg:fegNcLBfckI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=4B9yK2gFbbg:fegNcLBfckI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=4B9yK2gFbbg:fegNcLBfckI:aKCwKftKxY0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?i=4B9yK2gFbbg:fegNcLBfckI:aKCwKftKxY0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=4B9yK2gFbbg:fegNcLBfckI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=4B9yK2gFbbg:fegNcLBfckI:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=4B9yK2gFbbg:fegNcLBfckI:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">http://tumble.davidsmalley.com/post/156426506</guid>
         <pubDate>Wed, 05 Aug 2009 07:42:22 -0700</pubDate>
      <feedburner:origLink>http://tumble.davidsmalley.com/post/156426506</feedburner:origLink></item>
      <item>
         <title>Dell 27” Monitor: Just setup my new Dell 27”...</title>
         <link>http://feedproxy.google.com/~r/DavidsBrainBlog/~3/xioI9flRqXQ/134202342</link>
         <description>&lt;img src="http://23.media.tumblr.com/eU3xwLFxJpf6t9ekJZ5VAEyzo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Dell 27” Monitor:&lt;/b&gt; &lt;p&gt;Just setup my new Dell 27” Monitor - beautiful. Should hold off my desire for a 30” Apple Cinema display for a few years.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=xioI9flRqXQ:mEAacttjlqQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=xioI9flRqXQ:mEAacttjlqQ:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=xioI9flRqXQ:mEAacttjlqQ:aKCwKftKxY0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?i=xioI9flRqXQ:mEAacttjlqQ:aKCwKftKxY0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=xioI9flRqXQ:mEAacttjlqQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=xioI9flRqXQ:mEAacttjlqQ:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=xioI9flRqXQ:mEAacttjlqQ:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">http://tumble.davidsmalley.com/post/134202342</guid>
         <pubDate>Thu, 02 Jul 2009 08:39:56 -0700</pubDate>
      <feedburner:origLink>http://tumble.davidsmalley.com/post/134202342</feedburner:origLink></item>
      <item>
         <title>Dell 27” Monitor: Just setup my new Dell 27”...</title>
         <link>http://feedproxy.google.com/~r/DavidsBrainBlog/~3/8RR1DRsL1QU/134202281</link>
         <description>&lt;img src="http://9.media.tumblr.com/eU3xwLFxJpf6t6bkO1rpEXyUo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Dell 27” Monitor:&lt;/b&gt; &lt;p&gt;Just setup my new Dell 27” Monitor - beautiful. Should hold off my desire for a 30” Apple Cinema display for a few years.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=8RR1DRsL1QU:JNE-Cth5M-Y:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=8RR1DRsL1QU:JNE-Cth5M-Y:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=8RR1DRsL1QU:JNE-Cth5M-Y:aKCwKftKxY0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?i=8RR1DRsL1QU:JNE-Cth5M-Y:aKCwKftKxY0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=8RR1DRsL1QU:JNE-Cth5M-Y:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=8RR1DRsL1QU:JNE-Cth5M-Y:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=8RR1DRsL1QU:JNE-Cth5M-Y:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">http://tumble.davidsmalley.com/post/134202281</guid>
         <pubDate>Thu, 02 Jul 2009 08:39:52 -0700</pubDate>
      <feedburner:origLink>http://tumble.davidsmalley.com/post/134202281</feedburner:origLink></item>
      <item>
         <title>New Display: My new Samsung T260 26” display. Took...</title>
         <link>http://feedproxy.google.com/~r/DavidsBrainBlog/~3/QZKLJvlismE/132843979</link>
         <description>&lt;img src="http://4.media.tumblr.com/eU3xwLFxJpc0j38looFIi4O0o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;b&gt;New Display:&lt;/b&gt; &lt;p&gt;My new Samsung T260 26” display. Took a while to get configured with my mac and still feels a little too ‘blue’&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=QZKLJvlismE:YKFwJ_-JV1I:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=QZKLJvlismE:YKFwJ_-JV1I:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=QZKLJvlismE:YKFwJ_-JV1I:aKCwKftKxY0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?i=QZKLJvlismE:YKFwJ_-JV1I:aKCwKftKxY0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=QZKLJvlismE:YKFwJ_-JV1I:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=QZKLJvlismE:YKFwJ_-JV1I:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=QZKLJvlismE:YKFwJ_-JV1I:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">http://tumble.davidsmalley.com/post/132843979</guid>
         <pubDate>Tue, 30 Jun 2009 03:20:46 -0700</pubDate>
      <feedburner:origLink>http://tumble.davidsmalley.com/post/132843979</feedburner:origLink></item>
      <item>
         <title>Funny little thing</title>
         <link>http://feedproxy.google.com/~r/DavidsBrainBlog/~3/vnNAJeHlOV0/132242851</link>
         <description>&lt;img src="http://2.media.tumblr.com/eU3xwLFxJpapgzh2o10hW6gQo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;b&gt;Funny little thing&lt;/b&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=vnNAJeHlOV0:iTfN01uZjVs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=vnNAJeHlOV0:iTfN01uZjVs:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=vnNAJeHlOV0:iTfN01uZjVs:aKCwKftKxY0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?i=vnNAJeHlOV0:iTfN01uZjVs:aKCwKftKxY0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=vnNAJeHlOV0:iTfN01uZjVs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=vnNAJeHlOV0:iTfN01uZjVs:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=vnNAJeHlOV0:iTfN01uZjVs:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">http://tumble.davidsmalley.com/post/132242851</guid>
         <pubDate>Mon, 29 Jun 2009 05:23:27 -0700</pubDate>
      <feedburner:origLink>http://tumble.davidsmalley.com/post/132242851</feedburner:origLink></item>
      <item>
         <title>Our new coat rack: I fitted it myself! It’s level as well.</title>
         <link>http://feedproxy.google.com/~r/DavidsBrainBlog/~3/ycoMvXl5opg/124547148</link>
         <description>&lt;img src="http://6.media.tumblr.com/eU3xwLFxJos4qmz4uyrKK4peo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;b&gt;Our new coat rack:&lt;/b&gt; I fitted it myself! It’s level as well.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=ycoMvXl5opg:FD3z3COYX6o:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=ycoMvXl5opg:FD3z3COYX6o:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=ycoMvXl5opg:FD3z3COYX6o:aKCwKftKxY0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?i=ycoMvXl5opg:FD3z3COYX6o:aKCwKftKxY0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=ycoMvXl5opg:FD3z3COYX6o:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=ycoMvXl5opg:FD3z3COYX6o:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=ycoMvXl5opg:FD3z3COYX6o:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">http://tumble.davidsmalley.com/post/124547148</guid>
         <pubDate>Tue, 16 Jun 2009 05:23:12 -0700</pubDate>
      <feedburner:origLink>http://tumble.davidsmalley.com/post/124547148</feedburner:origLink></item>
      <item>
         <title>Sun bathing time: Tess does like to sun bathe.</title>
         <link>http://feedproxy.google.com/~r/DavidsBrainBlog/~3/dPe4WpZ5Iww/124547124</link>
         <description>&lt;img src="http://22.media.tumblr.com/eU3xwLFxJos4qk6dqGo9tQWno1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;b&gt;Sun bathing time:&lt;/b&gt; Tess does like to sun bathe.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=dPe4WpZ5Iww:x5jfW7Dzi0E:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=dPe4WpZ5Iww:x5jfW7Dzi0E:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=dPe4WpZ5Iww:x5jfW7Dzi0E:aKCwKftKxY0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?i=dPe4WpZ5Iww:x5jfW7Dzi0E:aKCwKftKxY0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=dPe4WpZ5Iww:x5jfW7Dzi0E:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=dPe4WpZ5Iww:x5jfW7Dzi0E:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=dPe4WpZ5Iww:x5jfW7Dzi0E:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">http://tumble.davidsmalley.com/post/124547124</guid>
         <pubDate>Tue, 16 Jun 2009 05:23:09 -0700</pubDate>
      <feedburner:origLink>http://tumble.davidsmalley.com/post/124547124</feedburner:origLink></item>
      <item>
         <title>Not the day to leave your towels out</title>
         <link>http://feedproxy.google.com/~r/DavidsBrainBlog/~3/2ZMXhkFA1A8/123941756</link>
         <description>&lt;img src="http://17.media.tumblr.com/eU3xwLFxJoqr9cyvKugUsM4co1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;b&gt;Not the day to leave your towels out&lt;/b&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=2ZMXhkFA1A8:kNJIh8Fjoik:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=2ZMXhkFA1A8:kNJIh8Fjoik:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=2ZMXhkFA1A8:kNJIh8Fjoik:aKCwKftKxY0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?i=2ZMXhkFA1A8:kNJIh8Fjoik:aKCwKftKxY0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=2ZMXhkFA1A8:kNJIh8Fjoik:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=2ZMXhkFA1A8:kNJIh8Fjoik:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=2ZMXhkFA1A8:kNJIh8Fjoik:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">http://tumble.davidsmalley.com/post/123941756</guid>
         <pubDate>Mon, 15 Jun 2009 06:18:06 -0700</pubDate>
      <feedburner:origLink>http://tumble.davidsmalley.com/post/123941756</feedburner:origLink></item>
      <item>
         <title>Lizards</title>
         <link>http://feedproxy.google.com/~r/DavidsBrainBlog/~3/KpgzFCBPRzQ/120051916</link>
         <description>&lt;img src="http://6.media.tumblr.com/eU3xwLFxJoh0qrlln8NPfrdzo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;b&gt;Lizards&lt;/b&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=KpgzFCBPRzQ:L6jE63r22F4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=KpgzFCBPRzQ:L6jE63r22F4:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=KpgzFCBPRzQ:L6jE63r22F4:aKCwKftKxY0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?i=KpgzFCBPRzQ:L6jE63r22F4:aKCwKftKxY0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=KpgzFCBPRzQ:L6jE63r22F4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=KpgzFCBPRzQ:L6jE63r22F4:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=KpgzFCBPRzQ:L6jE63r22F4:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">http://tumble.davidsmalley.com/post/120051916</guid>
         <pubDate>Mon, 08 Jun 2009 10:45:53 -0700</pubDate>
      <feedburner:origLink>http://tumble.davidsmalley.com/post/120051916</feedburner:origLink></item>
      <item>
         <title>Hounds: Outside Bab Doukkla</title>
         <link>http://feedproxy.google.com/~r/DavidsBrainBlog/~3/5AYyxQTiA5A/120020998</link>
         <description>&lt;img src="http://2.media.tumblr.com/eU3xwLFxJogyltn3GB1bJvmto1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;b&gt;Hounds:&lt;/b&gt; Outside Bab Doukkla&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=5AYyxQTiA5A:_cRSG1BvGqc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=5AYyxQTiA5A:_cRSG1BvGqc:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=5AYyxQTiA5A:_cRSG1BvGqc:aKCwKftKxY0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?i=5AYyxQTiA5A:_cRSG1BvGqc:aKCwKftKxY0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=5AYyxQTiA5A:_cRSG1BvGqc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=5AYyxQTiA5A:_cRSG1BvGqc:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=5AYyxQTiA5A:_cRSG1BvGqc:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">http://tumble.davidsmalley.com/post/120020998</guid>
         <pubDate>Mon, 08 Jun 2009 09:46:03 -0700</pubDate>
      <feedburner:origLink>http://tumble.davidsmalley.com/post/120020998</feedburner:origLink></item>
      <item>
         <title>Hound: Outside Bab Doukkla</title>
         <link>http://feedproxy.google.com/~r/DavidsBrainBlog/~3/oSZXKfZaXus/120020970</link>
         <description>&lt;img src="http://3.media.tumblr.com/eU3xwLFxJogylqjuH3bYTTN7o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;b&gt;Hound:&lt;/b&gt; Outside Bab Doukkla&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=oSZXKfZaXus:3SrSPOwGOFo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=oSZXKfZaXus:3SrSPOwGOFo:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=oSZXKfZaXus:3SrSPOwGOFo:aKCwKftKxY0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?i=oSZXKfZaXus:3SrSPOwGOFo:aKCwKftKxY0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=oSZXKfZaXus:3SrSPOwGOFo:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=oSZXKfZaXus:3SrSPOwGOFo:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=oSZXKfZaXus:3SrSPOwGOFo:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">http://tumble.davidsmalley.com/post/120020970</guid>
         <pubDate>Mon, 08 Jun 2009 09:45:59 -0700</pubDate>
      <feedburner:origLink>http://tumble.davidsmalley.com/post/120020970</feedburner:origLink></item>
      <item>
         <title>Les Epices</title>
         <link>http://feedproxy.google.com/~r/DavidsBrainBlog/~3/PK7pj_RXz8c/120020922</link>
         <description>&lt;img src="http://2.media.tumblr.com/eU3xwLFxJogylksbt1y5nzRFo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;b&gt;Les Epices&lt;/b&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=PK7pj_RXz8c:zBs3wqTGxsM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=PK7pj_RXz8c:zBs3wqTGxsM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=PK7pj_RXz8c:zBs3wqTGxsM:aKCwKftKxY0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?i=PK7pj_RXz8c:zBs3wqTGxsM:aKCwKftKxY0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=PK7pj_RXz8c:zBs3wqTGxsM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=PK7pj_RXz8c:zBs3wqTGxsM:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=PK7pj_RXz8c:zBs3wqTGxsM:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">http://tumble.davidsmalley.com/post/120020922</guid>
         <pubDate>Mon, 08 Jun 2009 09:45:51 -0700</pubDate>
      <feedburner:origLink>http://tumble.davidsmalley.com/post/120020922</feedburner:origLink></item>
      <item>
         <title>Lizards</title>
         <link>http://feedproxy.google.com/~r/DavidsBrainBlog/~3/W9d3NWDgnZU/120020886</link>
         <description>&lt;img src="http://19.media.tumblr.com/eU3xwLFxJogylh3zhqdDQ1wBo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;b&gt;Lizards&lt;/b&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=W9d3NWDgnZU:RgHEgZPnUok:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=W9d3NWDgnZU:RgHEgZPnUok:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=W9d3NWDgnZU:RgHEgZPnUok:aKCwKftKxY0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?i=W9d3NWDgnZU:RgHEgZPnUok:aKCwKftKxY0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=W9d3NWDgnZU:RgHEgZPnUok:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=W9d3NWDgnZU:RgHEgZPnUok:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=W9d3NWDgnZU:RgHEgZPnUok:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">http://tumble.davidsmalley.com/post/120020886</guid>
         <pubDate>Mon, 08 Jun 2009 09:45:47 -0700</pubDate>
      <feedburner:origLink>http://tumble.davidsmalley.com/post/120020886</feedburner:origLink></item>
      <item>
         <title>Flowers &amp; Fountain: At Majorelle Gardens</title>
         <link>http://feedproxy.google.com/~r/DavidsBrainBlog/~3/IdMZpfFUO1E/119992647</link>
         <description>&lt;img src="http://13.media.tumblr.com/eU3xwLFxJogwg8fpzd1dMnwzo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;b&gt;Flowers &amp; Fountain:&lt;/b&gt; At Majorelle Gardens&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=IdMZpfFUO1E:NsjvTo5uTLI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=IdMZpfFUO1E:NsjvTo5uTLI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=IdMZpfFUO1E:NsjvTo5uTLI:aKCwKftKxY0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?i=IdMZpfFUO1E:NsjvTo5uTLI:aKCwKftKxY0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=IdMZpfFUO1E:NsjvTo5uTLI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=IdMZpfFUO1E:NsjvTo5uTLI:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=IdMZpfFUO1E:NsjvTo5uTLI:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">http://tumble.davidsmalley.com/post/119992647</guid>
         <pubDate>Mon, 08 Jun 2009 08:45:43 -0700</pubDate>
      <feedburner:origLink>http://tumble.davidsmalley.com/post/119992647</feedburner:origLink></item>
      <item>
         <title>Bird fying from fountain: At Majorelle Gardens</title>
         <link>http://feedproxy.google.com/~r/DavidsBrainBlog/~3/eFXhmXFu1ks/119965355</link>
         <description>&lt;img src="http://13.media.tumblr.com/eU3xwLFxJogub2m9FJ0JTHdpo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;b&gt;Bird fying from fountain:&lt;/b&gt; At Majorelle Gardens&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=eFXhmXFu1ks:7A7N5I8cW9c:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=eFXhmXFu1ks:7A7N5I8cW9c:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=eFXhmXFu1ks:7A7N5I8cW9c:aKCwKftKxY0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?i=eFXhmXFu1ks:7A7N5I8cW9c:aKCwKftKxY0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=eFXhmXFu1ks:7A7N5I8cW9c:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=eFXhmXFu1ks:7A7N5I8cW9c:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=eFXhmXFu1ks:7A7N5I8cW9c:2mJPEYqXBVI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=2mJPEYqXBVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">http://tumble.davidsmalley.com/post/119965355</guid>
         <pubDate>Mon, 08 Jun 2009 07:45:42 -0700</pubDate>
      <feedburner:origLink>http://tumble.davidsmalley.com/post/119965355</feedburner:origLink></item>
      <item>
         <title>Ready for Ruby 1.9?</title>
         <link>http://feedproxy.google.com/~r/DavidsBrainBlog/~3/2NHsXxjFtT0/ready-for-ruby-1-9</link>
         <description>&lt;p&gt;Today the &lt;a rel="nofollow" target="_blank" href="http://www.brightbox.co.uk"&gt;Brightbox&lt;/a&gt; team launched a site to help out.&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://isitruby19.com/"&gt;isitruby19.com&lt;/a&gt; has a full import of the Rubyforge gem repository and lets you leave comments and your opinion of whether a particular gem is ready for Ruby 1.9.&lt;/p&gt; &lt;p&gt;I’ve got a ton of features I’d like to add to make the user experience much better and make the huge task of ensuring we’re ready for Ruby 1.9 that little bit easier to co-ordinate. Please drop by &lt;a rel="nofollow" target="_blank" href="http://forum.brightbox.co.uk/forums/isitruby19-com"&gt;our forum&lt;/a&gt; if you have any suggestions for the site. &lt;/p&gt; &lt;p&gt;Currently on my radar: &lt;ul&gt;
&lt;li&gt;A javascript badge like &lt;a rel="nofollow" target="_blank" href="http://drnicwilliams.com/2008/05/03/github-badge-for-your-blog/"&gt;Dr. Nics github badge&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Pull in the Github gem list&lt;/li&gt;
&lt;li&gt;Let people add their own code entries (plugins etc.)&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt; &lt;p&gt;Let make the move to Ruby 1.9 faster than the move to &lt;span class="caps"&gt;IP6&lt;/span&gt; :)&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=2NHsXxjFtT0:h62SX_SgyVs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=2NHsXxjFtT0:h62SX_SgyVs:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=2NHsXxjFtT0:h62SX_SgyVs:aKCwKftKxY0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?i=2NHsXxjFtT0:h62SX_SgyVs:aKCwKftKxY0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=2NHsXxjFtT0:h62SX_SgyVs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=2NHsXxjFtT0:h62SX_SgyVs:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>David</author>
         <guid isPermaLink="false">tag:davidsmalley.com,2009-02-05:5792</guid>
         <pubDate>Thu, 05 Feb 2009 07:35:59 -0800</pubDate>
      <feedburner:origLink>http://davidsmalley.com/2009/2/5/ready-for-ruby-1-9</feedburner:origLink></item>
      <item>
         <title>Quick tip: Block .svn directories in nginx</title>
         <link>http://feedproxy.google.com/~r/DavidsBrainBlog/~3/rKuKoNvarV8/quick-tip-block-svn-directories-in-nginx</link>
         <description>&lt;p&gt;You might not know that by default, nginx doesn’t block the hidden .svn directories from being served up over the web, whereas Apache normally does by default. This means if you’re using the checkout or cached checkout strategy with Capistrano then you may be exposing information about your application.&lt;/p&gt; &lt;p&gt;There is a quick fix to this, but it took me a while to pin it down exactly. Just make sure that you include this statement somewhere inside your &lt;code&gt;server {}&lt;/code&gt; block.&lt;/p&gt; &lt;code&gt;&lt;pre&gt; # Block all svn access if ($request_uri ~* ^.*&amp;#92;.svn.*$) { return 404; }
&lt;/pre&gt;&lt;/code&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=rKuKoNvarV8:4detI0bTDC8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=rKuKoNvarV8:4detI0bTDC8:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=rKuKoNvarV8:4detI0bTDC8:aKCwKftKxY0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?i=rKuKoNvarV8:4detI0bTDC8:aKCwKftKxY0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=rKuKoNvarV8:4detI0bTDC8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=rKuKoNvarV8:4detI0bTDC8:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>David</author>
         <guid isPermaLink="false">tag:davidsmalley.com,2009-01-28:5791</guid>
         <pubDate>Wed, 28 Jan 2009 12:59:53 -0800</pubDate>
      <feedburner:origLink>http://davidsmalley.com/2009/1/28/quick-tip-block-svn-directories-in-nginx</feedburner:origLink></item>
      <item>
         <title>Geek Volunteering</title>
         <link>http://feedproxy.google.com/~r/DavidsBrainBlog/~3/tlPNc1nFong/geek-volunteering</link>
         <description>&lt;p&gt;&lt;img src="http://davidsmalley.com/assets/2009/1/27/IMG_0336.jpg" height="440" alt="Volunteering at Old Broadcasting House" width="600"/&gt;&lt;/p&gt;&lt;p&gt;This weekend I assembled a group of volunteers to work on a coding project for &lt;a rel="nofollow" target="_blank" href="http://www.justcoffeepeople.co.uk"&gt;Just Coffee People&lt;/a&gt;, a social enterprise in Leeds who sell some of the best tea and coffee I’ve ever had the pleasure of drinking. We worked to redesign and rebuild their website so they can sell their products online. Whilst the site is not quite ready to go live, we made significant progress and worked on a &lt;a rel="nofollow" target="_blank" href="http://github.com/davidsmalley/spree/tree/master"&gt;modified version&lt;/a&gt; of the open source Ruby on Rails ecommerce project &lt;a rel="nofollow" target="_blank" href="http://github.com/schof/spree/tree/master"&gt;Spree&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Extra special thanks to everyone who gave up their Saturday and Sunday to donate their skills to a worthy cause. &lt;a rel="nofollow" target="_blank" href="http://johnleach.co.uk/"&gt;John&lt;/a&gt;, &lt;a rel="nofollow" target="_blank" href="http://swedishcampground.com/"&gt;Caius&lt;/a&gt;, &lt;a rel="nofollow" target="_blank" href="http://thinkwhere.wordpress.com/"&gt;Tim&lt;/a&gt;, Matt, Matt, &lt;a rel="nofollow" target="_blank" href="http://twitter.com/Squiggle"&gt;Jonathan&lt;/a&gt;, &lt;a rel="nofollow" target="_blank" href="http://deaddeadgood.com/"&gt;Paul&lt;/a&gt;, &lt;a rel="nofollow" target="_blank" href="http://www.linkedin.com/pub/9/598/a3b"&gt;Edward&lt;/a&gt;. More thanks to &lt;a rel="nofollow" target="_blank" href="http://twitter.com/lindabroughton"&gt;Linda&lt;/a&gt; from &lt;a rel="nofollow" target="_blank" href="http://www.ntileeds.co.uk/"&gt;nti Leeds&lt;/a&gt; who let us use their wonderful &lt;a rel="nofollow" target="_blank" href="http://www.oldbroadcastinghouse.com/"&gt;Old Broadcasting House co-working space&lt;/a&gt; for the weekend. It was an ideal environment for organised geeking, we’d have been lost without such a great space to work in.&lt;/p&gt; &lt;p&gt;Hopefully soon we’ll be selling their great tea and coffee to the world, more announcements here as we get close to the launch.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=tlPNc1nFong:SZ8Uf6ijYFc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=tlPNc1nFong:SZ8Uf6ijYFc:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=tlPNc1nFong:SZ8Uf6ijYFc:aKCwKftKxY0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?i=tlPNc1nFong:SZ8Uf6ijYFc:aKCwKftKxY0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=tlPNc1nFong:SZ8Uf6ijYFc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=tlPNc1nFong:SZ8Uf6ijYFc:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>David</author>
         <guid isPermaLink="false">tag:davidsmalley.com,2009-01-27:5790</guid>
         <pubDate>Tue, 27 Jan 2009 01:42:06 -0800</pubDate>
      <feedburner:origLink>http://davidsmalley.com/2009/1/27/geek-volunteering</feedburner:origLink></item>
      <item>
         <title>A brief interruption</title>
         <link>http://feedproxy.google.com/~r/DavidsBrainBlog/~3/cB9k8I1l5gY/a-brief-interruption</link>
         <description>&lt;p&gt;Annoyingly I forgot to renew my davidsmalley.com domain name, so I woke up this morning to find some scheduled emails hadn’t arrived – digging further into the cause I found it’s because the registrar reseller had hijacked the &lt;span class="caps"&gt;DNS&lt;/span&gt; record and pointed it to one of its spamvertisement sites.&lt;/p&gt; &lt;p&gt;Big thanks to &lt;a rel="nofollow" target="_blank" href="http://www.mneylon.com/blog/"&gt;Michele&lt;/a&gt; of &lt;a rel="nofollow" target="_blank" href="http://www.blacknight.com/"&gt;Blacknight Solutions&lt;/a&gt; who reregistered the domain for me very quickly.&lt;/p&gt; &lt;p&gt;I think I’ll get this registration extended for the next 10 years now.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=cB9k8I1l5gY:xNN89EZuqP8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=cB9k8I1l5gY:xNN89EZuqP8:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=cB9k8I1l5gY:xNN89EZuqP8:aKCwKftKxY0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?i=cB9k8I1l5gY:xNN89EZuqP8:aKCwKftKxY0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=cB9k8I1l5gY:xNN89EZuqP8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=cB9k8I1l5gY:xNN89EZuqP8:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>David</author>
         <guid isPermaLink="false">tag:davidsmalley.com,2009-01-21:5789</guid>
         <pubDate>Wed, 21 Jan 2009 01:18:59 -0800</pubDate>
      <feedburner:origLink>http://davidsmalley.com/2009/1/21/a-brief-interruption</feedburner:origLink></item>
      <item>
         <title>Using Passenger on OS X</title>
         <link>http://feedproxy.google.com/~r/DavidsBrainBlog/~3/1d4jmXL4kZc/using-passenger-on-os-x</link>
         <description>&lt;p&gt;Despite having been reluctant to ditch my ‘tried and tested’ method of Rails deployment using nginx/mongrel/monit I decided that I couldn’t ignore &lt;a rel="nofollow" target="_blank" href="http://www.modrails.org"&gt;Phusion Passenger&lt;/a&gt; anymore and gave it a spin on my local machine for development work.&lt;/p&gt; &lt;p&gt;The &lt;a rel="nofollow" target="_blank" href="http://www.fngtps.com/2008/06/putting-the-pane-back-into-deployment"&gt;passenger pref pane for &lt;span class="caps"&gt;OS X&lt;/span&gt;&lt;/a&gt; made setting up &lt;a rel="nofollow" target="_blank" href="http://www.modrails.org"&gt;Passenger&lt;/a&gt; super easy and I was even able to set it up to respond to some wildcard subdomain apps I work on. Best of all it works with the default &lt;span class="caps"&gt;OS X&lt;/span&gt; Apache install so it makes for very few moving parts in your local development setup.&lt;/p&gt; &lt;p&gt;Based on the super success of using &lt;a rel="nofollow" target="_blank" href="http://www.modrails.org"&gt;Passenger&lt;/a&gt; for development I’ve deployed a production application server for &lt;a rel="nofollow" target="_blank" href="http://litmusapp.com"&gt;Litmus&lt;/a&gt; using Apache2/&lt;a rel="nofollow" target="_blank" href="http://www.modrails.org"&gt;Passenger&lt;/a&gt;/&lt;a rel="nofollow" target="_blank" href="http://www.rubyenterpriseedition.com/"&gt;Ruby Enterprise&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;There’s another post in the works which outlines how we’ve scaled &lt;a rel="nofollow" target="_blank" href="http://litmusapp.com"&gt;Litmus&lt;/a&gt; recently to handle a 500% growth in subscribers, the outline will be on the &lt;a rel="nofollow" target="_blank" href="http://litmusapp.com/blog/"&gt;Litmus blog&lt;/a&gt; going into more detail on this site.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=1d4jmXL4kZc:Ri5kGfA7XPU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=1d4jmXL4kZc:Ri5kGfA7XPU:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=1d4jmXL4kZc:Ri5kGfA7XPU:aKCwKftKxY0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?i=1d4jmXL4kZc:Ri5kGfA7XPU:aKCwKftKxY0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=1d4jmXL4kZc:Ri5kGfA7XPU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=1d4jmXL4kZc:Ri5kGfA7XPU:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>David</author>
         <guid isPermaLink="false">tag:davidsmalley.com,2008-12-05:5506</guid>
         <pubDate>Fri, 05 Dec 2008 05:06:13 -0800</pubDate>
      <feedburner:origLink>http://davidsmalley.com/2008/12/5/using-passenger-on-os-x</feedburner:origLink></item>
      <item>
         <title>Learning erlang</title>
         <link>http://feedproxy.google.com/~r/DavidsBrainBlog/~3/KFFn5GQBOvk/learning-erlang</link>
         <description>&lt;p&gt;I’ve recently been trying to learn &lt;a rel="nofollow" target="_blank" href="http://www.erlang.org/"&gt;erlang&lt;/a&gt; for some infrastructure projects that will benefit from being written in a language better suited to long running data processing and queueing than Ruby ever will be. Hopefully we’ll have these projects up and running behind the scenes for &lt;a rel="nofollow" target="_blank" href="http://litmusapp.com"&gt;Litmus&lt;/a&gt; in the near future.&lt;/p&gt; &lt;p&gt;Invaluable resources to me so far have been&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://pragprog.com/titles/jaerlang/programming-erlang"&gt;Programming Erlang&lt;/a&gt; book by one of Erlang’s creators &lt;a rel="nofollow" target="_blank" href="http://armstrongonsoftware.blogspot.com/"&gt;Joe Armstrong&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://pragprog.com/screencasts/v-kserl/erlang-in-practice"&gt;Erlang in Practice&lt;/a&gt; by &lt;a rel="nofollow" target="_blank" href="http://weblog.hypotheticalabs.com/"&gt;Kevin Smith&lt;/a&gt; – Kevin works with me at &lt;a rel="nofollow" target="_blank" href="http://www.engineyard.com"&gt;Engine Yard&lt;/a&gt; and is a great teacher and all round nice guy. These screencasts really got me going on the road to understanding and learning erlang. I highly recommend the entire series.&lt;/li&gt; &lt;/ul&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=KFFn5GQBOvk:jV3Tn7p9af4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=KFFn5GQBOvk:jV3Tn7p9af4:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=KFFn5GQBOvk:jV3Tn7p9af4:aKCwKftKxY0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?i=KFFn5GQBOvk:jV3Tn7p9af4:aKCwKftKxY0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=KFFn5GQBOvk:jV3Tn7p9af4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=KFFn5GQBOvk:jV3Tn7p9af4:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>David</author>
         <guid isPermaLink="false">tag:davidsmalley.com,2008-09-03:2637</guid>
         <pubDate>Wed, 03 Sep 2008 06:23:37 -0700</pubDate>
      <feedburner:origLink>http://davidsmalley.com/2008/9/3/learning-erlang</feedburner:origLink></item>
      <item>
         <title>Mark in the sand</title>
         <link>http://feedproxy.google.com/~r/DavidsBrainBlog/~3/l8vdxfdryuQ/mark-in-the-sand</link>
         <description>&lt;p&gt;Today I found an application just ready to launch which is exactly the same as a project I’ve been planning and building recently.&lt;/p&gt; &lt;p&gt;I thought I’d leave a mark in the sand here so if I ever do get round to releasing it – open source or paid – then I’ll have something to point back to and say “look, look – I had already thought of it and started work on it!”.&lt;/p&gt; &lt;p&gt;I won’t go into any detail now, I’m not a fan of vapourware.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Every sod in the entire world is now implementing the idea I had. Oh well, onto the next one now then :)&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=l8vdxfdryuQ:W4U8xkwduNU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=l8vdxfdryuQ:W4U8xkwduNU:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=l8vdxfdryuQ:W4U8xkwduNU:aKCwKftKxY0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?i=l8vdxfdryuQ:W4U8xkwduNU:aKCwKftKxY0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=l8vdxfdryuQ:W4U8xkwduNU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=l8vdxfdryuQ:W4U8xkwduNU:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>David</author>
         <guid isPermaLink="false">tag:davidsmalley.com,2008-08-06:2580</guid>
         <pubDate>Wed, 06 Aug 2008 15:08:00 -0700</pubDate>
      <feedburner:origLink>http://davidsmalley.com/2008/8/6/mark-in-the-sand</feedburner:origLink></item>
      <item>
         <title>Allow some paths when your app is in maintenance</title>
         <link>http://feedproxy.google.com/~r/DavidsBrainBlog/~3/JZQa5ToJLWo/allow-some-paths-when-your-app-is-in-maintenance</link>
         <description>&lt;p&gt;Those of you who already follow &lt;a rel="nofollow" target="_blank" href="http://brainspl.at/articles/2006/08/23/nginx-my-new-favorite-front-end-for-mongrel-cluster"&gt;Ezra's great guidance on setting up nginx&lt;/a&gt; as a front end to a mongrel cluster will know that it already includes a nice block to enable maintenance mode when you trigger it in capistrano (creates a /shared/system/maintenance.html page and rewrites all requests to it).&lt;/p&gt; &lt;code&gt;&lt;pre&gt; if (-f $document_root/system/maintenance.html) { rewrite ^(.*)$ /system/maintenance.html last; break; }
&lt;/pre&gt;&lt;/code&gt; &lt;p&gt;However, we had a customer the other day who wanted to put his application into maintenance mode but still get to the admin area. After much tinkering with nginx rewrite rules we came up with a solution that worked and also let you host your images and css from the same application without having those calls rewritten as well. Basically it just required a reordering of the rewrite rules within the location block to a more sane order.&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow"&gt;See an example nginx config which implements this&lt;/a&gt; - based on &lt;a rel="nofollow" target="_blank" href="http://brainspl.at/nginx.conf.txt"&gt;Ezra's original&lt;/a&gt; to give the customer complete anonymity.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;One important thing to note&lt;/strong&gt; about this config is that if you serve images or css via processing in your mongrels this will skip processing them - indeed, anything that ends css, jpg, png or gif will never make it to mongrels and be served by nginx instead. Consider this and remove the relevant if statement if this applies to you. In particular this will apply to Mephisto which serves css via controller processing in order to then cache it out statically to disk.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=JZQa5ToJLWo:mO990hRDy3U:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=JZQa5ToJLWo:mO990hRDy3U:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=JZQa5ToJLWo:mO990hRDy3U:aKCwKftKxY0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?i=JZQa5ToJLWo:mO990hRDy3U:aKCwKftKxY0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=JZQa5ToJLWo:mO990hRDy3U:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=JZQa5ToJLWo:mO990hRDy3U:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>David</author>
         <guid isPermaLink="false">tag:davidsmalley.com,2008-08-05:2579</guid>
         <pubDate>Tue, 05 Aug 2008 05:23:00 -0700</pubDate>
      <feedburner:origLink>http://davidsmalley.com/2008/8/5/allow-some-paths-when-your-app-is-in-maintenance</feedburner:origLink></item>
      <item>
         <title>Shafted by FastHosts</title>
         <link>http://feedproxy.google.com/~r/DavidsBrainBlog/~3/tbQIP7ffR7U/shafted-by-fasthosts</link>
         <description>&lt;p&gt;As most people will know, as well as my full time job at &lt;a rel="nofollow" target="_blank" href="http://engineyard.com"&gt;Engine Yard&lt;/a&gt; I am a co-founder of &lt;a rel="nofollow" target="_blank" href="http://litmusapp.com"&gt;Litmus&lt;/a&gt; along with Paul and Matt.&lt;/p&gt; &lt;p&gt;We re-launched our previous product SiteVista as &lt;a rel="nofollow" target="_blank" href="http://litmusapp.com"&gt;Litmus&lt;/a&gt; pretty much a year ago in August 2007, anniversaries are normally such a happy affair but in our case it has become anything but. As a small self-funded start up company running a service that is very hardware intensive we had to make some careful decisions – sure we’d love to have kicked off hosting with our own custom built cluster with the best hosting company in the business but it just wasn’t possible if we wanted to retain total ownership of the company.&lt;/p&gt; &lt;p&gt;Paul and Matt had both hosted applications with &lt;a rel="nofollow" target="_blank" href="http://www.google.com/search?q=fasthosts"&gt;Fasthosts&lt;/a&gt; before, they had some of the best value servers at the time and meant we were able to get the servers we needed with the budget that we had. Just to be sure here, at no point have we scrimped on budget with &lt;a rel="nofollow" target="_blank" href="http://litmusapp.com"&gt;Litmus&lt;/a&gt; or tried to just get the cheapest servers we can find. The service requires nearly 10 physical servers to run, all need to be a reasonable spec as nearly all of them have to run Windows operating systems and keep the UI very responsive. As you can imagine this is a fairly big financial burden for a start-up to bare, I’m very proud that we’ve managed this so well and coped with the massive increase in capacity as we’ve grown – this is a testament to Matt and his ace .net coding.&lt;/p&gt;
&lt;p&gt;Back to the problem in hand. A couple of days ago Matt noticed some sucky speeds on a couple of our servers and ran some speed tests – they all kept returning upload speeds that consistently capped off at just below 1024kbps. Tests from our other servers were bringing in pretty much symmetrical speeds so we started to find out what was particularly special about the servers getting low connection speeds. Turns these servers had just passed their 12 month contract expiration date and the first sign of this was the advert inserted into our server control panel…&lt;/p&gt; &lt;p&gt;&lt;img alt=""/&gt;&lt;/p&gt; &lt;p&gt;So immediately on the phone to &lt;a rel="nofollow" target="_blank" href="http://www.google.com/search?q=fasthosts"&gt;Fasthosts&lt;/a&gt; to find out what was going on Paul discovered that indeed we’d reached the end of our 12 month contract and had apparently been shifted from a “10242kbps pipe” to a “1024kbps pipe”. The incentive here was to get another 12 months of connection from us or face paying for an unusable level of service. Sounds like plain blackmail to me, its as if my mobile phone company cut me down to 1 bar of signal because I dared to let my contract expire.&lt;/p&gt; &lt;p&gt;First the issue of the &lt;a rel="nofollow" target="_blank" href="http://www.google.com/search?hl=en&amp;amp;#38;rls=en-gb&amp;amp;#38;q=fasthosts+virtual+data+pipe&amp;amp;#38;btnG=Search"&gt;virtual data pipes&lt;/a&gt; that Fasthosts offer, looks like a damned fine job of selling a terrible restriction to the customer as a feature. The deal seems to be, cap your maximum throughput in exchange for unlimited bandwidth. Surely even someone with the tiniest spark of intelligence can see that with capped throughput there is now a theoretical maximum amount of bandwidth that a server can use per month anyway. They even have the cheek to suggest that this “feature” normally costs between 500-600 &lt;span class="caps"&gt;GBP&lt;/span&gt; per month – maybe if you’re running a physical leased line to someone’s premises, but not for a cable in a data centre buddy.&lt;/p&gt; &lt;p&gt;Tied into the insanity of these &lt;a rel="nofollow"&gt;virtual data pipes&lt;/a&gt; they also seem to be pushing another major crippling drawback as a feature and this is one we also hit having multiple servers in their data centre. Your servers are completely unfirewalled from the outside world – but are &lt;strong&gt;completely firewalled&lt;/strong&gt; from each other. Read that line again. Yes there is zero access between servers in the same data centre, this is of course unless you pay their &lt;a rel="nofollow" target="_blank" href="http://www.google.com/search?hl=en&amp;amp;#38;client=safari&amp;amp;#38;rls=en-gb&amp;amp;#38;q=fasthosts+Private+LAN+for+every+customer&amp;amp;#38;btnG=Search"&gt;private lan&lt;/a&gt; tax per server that you want to be able to communicate. This again is nothing short of blackmail in my opinion, their marketing material has the audacity to sell this with the text “No server outside your &lt;span class="caps"&gt;LAN&lt;/span&gt; can communicate directly with yours.” Of course this is totally fucking useless for any other purpose than extorting more money out of you because every other sodding host on the internet &lt;em&gt;can&lt;/em&gt; access your server. They wax lyrical about the &lt;a rel="nofollow" target="_blank" href="http://www.google.com/search?hl=en&amp;amp;#38;client=safari&amp;amp;#38;rls=en-gb&amp;amp;#38;q=fasthosts+First+to+market+with+new+Cisco+switching+and+dedicated+virtual+pipe+technology&amp;amp;#38;btnG=Search"&gt;new networking equipment they are the first to market with&lt;/a&gt; thank god and lets hope they are the only ones to market with whatever oppressive network device they are using.&lt;/p&gt; &lt;p&gt;Back to our immediate predicament – Paul checked the &lt;a rel="nofollow" target="_blank" href="http://www.archive.org"&gt;Way Back Machine&lt;/a&gt; for the &lt;a rel="nofollow" target="_blank" href="http://web.archive.org/web/20070502220627/http://www.fasthosts.co.uk/dedicatedservers/unlimited-bandwidth-offer/"&gt;signup page during the time period that we signed up&lt;/a&gt; and came across the evidence that we were supposed to get this data pipe deal for the life of our server subscription.&lt;/p&gt; &lt;pre&gt;&lt;code&gt;&lt;img alt=""/&gt;&lt;/code&gt;&lt;/pre&gt; &lt;p&gt;This page even came with the offer terms and conditions, there it is in black and white – 12 months minimum term and a &lt;em&gt;usable internet connection&lt;/em&gt; for the “life of the dedicated server package”.&lt;/p&gt; &lt;p&gt;&lt;img alt=""/&gt;&lt;/p&gt; &lt;p&gt;Armed with this he rang back and spoke to someone until they escalated him up to a team leader. Despite being a year long customer with many servers spending a lot of money with them they were totally unwilling to do anything until the team leader had ascertained which package we had signed up for in the first place. To do this she maintained that she needed to contact a developer the following day (tomorrow), I have no idea why a developer needs to get involved in this issue – it sounds like the old days of administering SiteVista, perhaps she’d reached the limits of what she could achieve with MySQL Query Browser herself.&lt;/p&gt; &lt;p&gt;Our pleas to have service restored to full capacity in the meantime so we can run our business, an actual going concern with real life customers who have real life expectations of our service, fell on deaf ears – they even told Paul at one point that he was “expecting this to be resolved more quickly than it will be. ” Totally and completely unacceptable. The last word today was being told that someone would ‘call us back tomorrow’ and that “we can only go back to the previous speed &lt;strong&gt;automatically and immediately&lt;/strong&gt; by signing for another 12 months”.&lt;/p&gt; &lt;p&gt;Tomorrow is another day, and will be a day of Fasthosts receiving call after call from us until they resolve this issue properly. I hope you will spread the word around everyone you know – Fasthosts are not the good deal they seem and one day they might also let you down when you have come to rely on them.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; So we received an email back from &lt;a rel="nofollow" target="_blank" href="http://www.linkedin.com/pub/4/80A/116"&gt;Jo Ryall&lt;/a&gt; and who is he? Director of Customer Experience at Fasthosts. Jo said he would attempt to circumvent whatever went wrong in the billing system and restore our service to full capacity. This was done a few hours later and we’ve been promised that it will not happen again – with a number to quote if we ever need to reference this particular problem. We aren’t willing to discuss our future plans for hosting at the moment – we’re just glad FastHosts responded to our crisis in a timely manner and saved us a whole week of unplanned emergency migration work.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=tbQIP7ffR7U:D5INCTvpUUg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=tbQIP7ffR7U:D5INCTvpUUg:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=tbQIP7ffR7U:D5INCTvpUUg:aKCwKftKxY0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?i=tbQIP7ffR7U:D5INCTvpUUg:aKCwKftKxY0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=tbQIP7ffR7U:D5INCTvpUUg:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=tbQIP7ffR7U:D5INCTvpUUg:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>David</author>
         <guid isPermaLink="false">tag:davidsmalley.com,2008-08-04:2575</guid>
         <pubDate>Mon, 04 Aug 2008 14:45:00 -0700</pubDate>
      <feedburner:origLink>http://davidsmalley.com/2008/8/4/shafted-by-fasthosts</feedburner:origLink></item>
      <item>
         <title>MetaWebLog API returns to Mephisto</title>
         <link>http://feedproxy.google.com/~r/DavidsBrainBlog/~3/u5YKlHCKEm0/metaweblog-api-returns-to-mephisto</link>
         <description>&lt;p&gt;At long last it looks like the MetaWebLog &lt;span class="caps"&gt;API&lt;/span&gt; has made it back into Mephisto as a plugin. I had &lt;a rel="nofollow" target="_blank" href="http://github.com/davidsmalley/mephisto_xmlrpc_replacement/tree/master"&gt;started working on this myself&lt;/a&gt; but it was just too low priority for me with all the &lt;a rel="nofollow" target="_blank" href="http://litmusapp.com"&gt;various&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://engineyard.com"&gt;things&lt;/a&gt; I have going on at the moment.&lt;/p&gt; &lt;p&gt;I know it was the intention of the Mephisto core team to stop this &lt;span class="caps"&gt;API&lt;/span&gt; from depending on the now deprecated ActionWebService framework and have someone else move it onto its own independent xmlrpc code. But to be honest this has been too long coming to turn down the plugin, even if it is still relying on ActionWebService (there seems to be a &lt;a rel="nofollow" target="_blank" href="http://github.com/datanoise/actionwebservice/tree/master"&gt;newish port of it on GitHub&lt;/a&gt; that might keep up with the rest of Rails with a new committing team).&lt;/p&gt; &lt;p&gt;And so onto the plugin itself, just drop by the &lt;a rel="nofollow" target="_blank" href="http://www.railshacks.com/2008/7/21/mephisto-xmlrpc-plugin-released-for-mephisto-0-8-and-mephisto-edge"&gt;RailsHacks&lt;/a&gt; blog to pickup the code and instructions for use. If you can see this post then it definitely works as I’ve just written it in the awesome &lt;a rel="nofollow" target="_blank" href="http://www.red-sweater.com/marsedit/"&gt;MarsEdit&lt;/a&gt; and posted directly to this blog using it.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=u5YKlHCKEm0:QtY39lHxX5A:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=u5YKlHCKEm0:QtY39lHxX5A:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=u5YKlHCKEm0:QtY39lHxX5A:aKCwKftKxY0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?i=u5YKlHCKEm0:QtY39lHxX5A:aKCwKftKxY0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=u5YKlHCKEm0:QtY39lHxX5A:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=u5YKlHCKEm0:QtY39lHxX5A:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>David</author>
         <guid isPermaLink="false">tag:davidsmalley.com,2008-07-22:2560</guid>
         <pubDate>Tue, 22 Jul 2008 03:19:00 -0700</pubDate>
      <feedburner:origLink>http://davidsmalley.com/2008/7/22/metaweblog-api-returns-to-mephisto</feedburner:origLink></item>
      <item>
         <title>Me in Denmark</title>
         <link>http://feedproxy.google.com/~r/DavidsBrainBlog/~3/VZpIrhRJaeI/me-in-denmark</link>
         <description>&lt;p&gt;On Wednesday I will be flying out to Copenhagen to attend the &lt;a rel="nofollow" target="_blank" href="http://reboot.dk"&gt;Reboot&lt;/a&gt; conference on Thursday the 26th and Friday the 27th of June.&lt;/p&gt; &lt;p&gt;If you’re there – or nearby – and want to meet up with me or Paul (CEO of &lt;a rel="nofollow" target="_blank" href="http://litmusapp.com"&gt;Litmus&lt;/a&gt; ) then just drop me an email from my &lt;a rel="nofollow" target="_blank" href="http://davidsmalley.com/contact_form"&gt;contact form&lt;/a&gt; – we’d love to speak to you!&lt;/p&gt; &lt;p&gt;You’ll spot me possibly in my black &lt;a rel="nofollow" target="_blank" href="http://engineyard.com"&gt;Engine Yard&lt;/a&gt; t-shirt or you can recognise me from &lt;a rel="nofollow" target="_blank" href="http://www.flickr.com/photos/davidsmalley/2523360679/"&gt;my picture&lt;/a&gt; otherwise.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=VZpIrhRJaeI:BoOErPYCY1M:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=VZpIrhRJaeI:BoOErPYCY1M:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=VZpIrhRJaeI:BoOErPYCY1M:aKCwKftKxY0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?i=VZpIrhRJaeI:BoOErPYCY1M:aKCwKftKxY0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=VZpIrhRJaeI:BoOErPYCY1M:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=VZpIrhRJaeI:BoOErPYCY1M:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>David</author>
         <guid isPermaLink="false">tag:davidsmalley.com,2008-06-23:2541</guid>
         <pubDate>Mon, 23 Jun 2008 16:20:00 -0700</pubDate>
      <feedburner:origLink>http://davidsmalley.com/2008/6/23/me-in-denmark</feedburner:origLink></item>
      <item>
         <title>Setting up Background Job (BJ) Properly</title>
         <link>http://feedproxy.google.com/~r/DavidsBrainBlog/~3/sd0GALPYTyE/setting-up-background-job-bj-properly</link>
         <description>&lt;p&gt;I dealt with a customer today who was a bit miffed that his &lt;a rel="nofollow" target="_blank" href="http://codeforpeople.rubyforge.org/svn/bj/trunk/README"&gt;Background Job&lt;/a&gt;tasks were taking a while to kick off after the Rails app submitted them to the queue.&lt;/p&gt; &lt;p&gt;I dug a little deeper into the problem - he was using our standard configuration, moving control of the runner out to cron instead of being controlled from within the app itself.&lt;/p&gt; &lt;table class="CodeRay"&gt;&lt;tr&gt; &lt;td class="line_numbers"&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt; &lt;td class="code"&gt;&lt;pre&gt;&lt;span class="co"&gt;Bj&lt;/span&gt;.config[&lt;span class="s"&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="k"&gt;production.no_tickle&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;/span&gt;] = &lt;span class="pc"&gt;true&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt; &lt;p&gt;and then a cronjob such as&lt;/p&gt; &lt;p&gt;&lt;code&gt;*/2 * * * * bj run --forever --rails_env=production --rails_root=/data/user/current&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;One of the features of Bj is that is signals the runner via a &lt;code&gt;HUP&lt;/code&gt; when a new job is ready to collect, breaking the standard 42 second sleep between checking for jobs and processing the job immediately, this did not seem to be the case for this customer however.&lt;/p&gt; &lt;p&gt;The first place I checked &lt;em&gt;/bj-1.0.1/lib/bj/api.rb&lt;/em&gt; where the magic job submit command action happens, glancing at the submit method I saw the following...&lt;/p&gt; &lt;table class="CodeRay"&gt;&lt;tr&gt; &lt;td class="line_numbers"&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;3&lt;tt&gt;
&lt;/tt&gt;4&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;5&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;6&lt;tt&gt;
&lt;/tt&gt;7&lt;tt&gt;
&lt;/tt&gt;8&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt; &lt;td class="code"&gt;&lt;pre&gt;&lt;span class="r"&gt;def&lt;/span&gt; &lt;span class="fu"&gt;submit&lt;/span&gt; jobs, options = {}, &amp;amp;block&lt;tt&gt;
&lt;/tt&gt; options.to_options!&lt;tt&gt;
&lt;/tt&gt; &lt;span class="co"&gt;Bj&lt;/span&gt;.transaction(options) &lt;span class="r"&gt;do&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt; table.job.submit jobs, options, &amp;amp;block&lt;tt&gt;
&lt;/tt&gt; &lt;span class="r"&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt; &lt;span class="r"&gt;ensure&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt; &lt;span class="co"&gt;Bj&lt;/span&gt;.runner.tickle &lt;span class="r"&gt;unless&lt;/span&gt; options[&lt;span class="sy"&gt;:no_tickle&lt;/span&gt;]&lt;tt&gt;
&lt;/tt&gt; &lt;span class="r"&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt; &lt;p&gt;Uh-oh, looks like we turned &lt;em&gt;tickle&lt;/em&gt; off in order to move the runner out of the control of our app, we should probably check what that method does...&lt;/p&gt; &lt;p&gt;&lt;em&gt;/bj-1.0.1/lib/bj/runner.rb&lt;/em&gt;&lt;/p&gt;
&lt;table class="CodeRay"&gt;&lt;tr&gt; &lt;td class="line_numbers"&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;3&lt;tt&gt;
&lt;/tt&gt;4&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt; &lt;td class="code"&gt;&lt;pre&gt;&lt;span class="r"&gt;def&lt;/span&gt; &lt;span class="fu"&gt;tickle&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt; &lt;span class="r"&gt;return&lt;/span&gt; &lt;span class="pc"&gt;nil&lt;/span&gt; &lt;span class="r"&gt;if&lt;/span&gt; &lt;span class="co"&gt;Bj&lt;/span&gt;.config[&lt;span class="co"&gt;Runner&lt;/span&gt;.no_tickle_key]&lt;tt&gt;
&lt;/tt&gt; ping &lt;span class="r"&gt;or&lt;/span&gt; start&lt;tt&gt;
&lt;/tt&gt; &lt;span class="r"&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt; &lt;p&gt;Again, looks like we're checking if the tickle option is turned off before allowing the tickle method to continue further and then calling ping or start.&lt;/p&gt; &lt;p&gt;The ping method has what we're looking for, down on line 85 of &lt;em&gt;runner.rb&lt;/em&gt;&lt;/p&gt; &lt;table class="CodeRay"&gt;&lt;tr&gt; &lt;td class="line_numbers"&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt; &lt;td class="code"&gt;&lt;pre&gt;process.kill &lt;span class="co"&gt;Runner&lt;/span&gt;.hup_signal, pid&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt; &lt;p&gt;So it definitely looks like when the runner is not under the direct control of the app we lose our auto start and job signalling abilities - this is probably wise, if we didn't start the runner directly then its pid would be an educated guess and not signalling seems to fit the model of running the job runner outside of the influence of the submitting application. &lt;/p&gt; &lt;p&gt;Now, how would you go about cutting down on the potential 42 second delay before jobs being picked up if you use cron to start the runner. It's simple really, with a bit more digging it turns out that there is an option which doesn't pop up on the &lt;em&gt;./bin/bj run&lt;/em&gt; command syntax which lets you over-ride the 42 second sleep time and avoid job delay.&lt;/p&gt; &lt;table class="CodeRay"&gt;&lt;tr&gt; &lt;td class="line_numbers"&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt; &lt;td class="code"&gt;&lt;pre&gt;&lt;span class="r"&gt;def&lt;/span&gt; &lt;span class="fu"&gt;run&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt; wait = options[&lt;span class="sy"&gt;:wait&lt;/span&gt;] || &lt;span class="i"&gt;42&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt; &lt;p&gt;Bingo! We set that option to 2 second on our cronjob line (2 seconds isn't an unreasonably short amount of time to do a single sql query on the job table) and the problem was fixed!&lt;/p&gt; &lt;p&gt;&lt;code&gt;*/2 * * * * bj run --forever --wait=2 --rails_env=production --rails_root=/data/user/current&lt;/code&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=sd0GALPYTyE:0wWPuuLYadY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=sd0GALPYTyE:0wWPuuLYadY:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=sd0GALPYTyE:0wWPuuLYadY:aKCwKftKxY0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?i=sd0GALPYTyE:0wWPuuLYadY:aKCwKftKxY0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=sd0GALPYTyE:0wWPuuLYadY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=sd0GALPYTyE:0wWPuuLYadY:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>David</author>
         <guid isPermaLink="false">tag:davidsmalley.com,2008-06-23:2540</guid>
         <pubDate>Mon, 23 Jun 2008 12:35:00 -0700</pubDate>
      <feedburner:origLink>http://davidsmalley.com/2008/6/23/setting-up-background-job-bj-properly</feedburner:origLink></item>
      <item>
         <title>FireFox 3 triggers an OpenSSL bug</title>
         <link>http://feedproxy.google.com/~r/DavidsBrainBlog/~3/FONP7easnw4/firefox-3-triggers-an-openssl-bug</link>
         <description>&lt;code&gt;
Secure Connection Failed
An error occurred during a connection to xyz-abe.com
SSL received an unexpected Change Cipher Spec record.
(Error code: ssl_error_rx_unexpected_change_cipher)
&lt;/code&gt; &lt;p&gt;I’ve been seeing more and more customers report this in the lead up to FireFox 3 going live…now the release has come I think the only thing you can do is try and get your production servers upgraded to the latest OpenSSL (0.9.8h) as soon as possible. Unfortunately the only other work around involve users disabling something in about:config or disabling SSLv3 on your server.&lt;/p&gt; &lt;p&gt;Some background reading on the bug:&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://forums.mozillazine.org/viewtopic.php?t=650683&amp;amp;#38;sid=617b3aba8c09e092bde118ca1e660307"&gt;Original report&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?query_format=specific&amp;amp;#38;order=relevance+desc&amp;amp;#38;bug_status=__open__&amp;amp;#38;id=430703"&gt;Mozilla bug report&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://cvs.openssl.org/chngview?cn=17088"&gt;OpenSSL fix&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Additionally I’ve seen FireFox 3 introduce another bug related to incorrectly signed &lt;a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/HMAC"&gt;&lt;span class="caps"&gt;HMAC&lt;/span&gt;&lt;/a&gt; codes in &lt;span class="caps"&gt;SSL&lt;/span&gt; transactions. After some digging around I noticed that FireFox 3 supports the &lt;a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/Camellia_%28cipher%29"&gt;Camellia&lt;/a&gt; cipher which &lt;span class="caps"&gt;AFAIK&lt;/span&gt; isn’t widely supported amongst other browers yet. During &lt;span class="caps"&gt;SSL&lt;/span&gt; negotiation the browser seems to end up using &lt;a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/Camellia_%28cipher%29"&gt;Camellia&lt;/a&gt; even though it could have negotiated the more familiar &lt;span class="caps"&gt;AES&lt;/span&gt; cipher. I hacked around this in one clients nginx configuration by adding the following to their http block:&lt;/p&gt; &lt;p&gt;&lt;code&gt;ssl_ciphers ALL:!CAMELLIA;&lt;/code&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=FONP7easnw4:HP7KY611RgA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=FONP7easnw4:HP7KY611RgA:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=FONP7easnw4:HP7KY611RgA:aKCwKftKxY0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?i=FONP7easnw4:HP7KY611RgA:aKCwKftKxY0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=FONP7easnw4:HP7KY611RgA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DavidsBrainBlog?a=FONP7easnw4:HP7KY611RgA:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DavidsBrainBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <author>David</author>
         <guid isPermaLink="false">tag:davidsmalley.com,2008-06-22:2536</guid>
         <pubDate>Sun, 22 Jun 2008 00:59:00 -0700</pubDate>
      <feedburner:origLink>http://davidsmalley.com/2008/6/22/firefox-3-triggers-an-openssl-bug</feedburner:origLink></item>
   </channel>
</rss><!-- fe1.pipes.re3.yahoo.com uncompressed/chunked Tue Nov 10 19:11:51 PST 2009 -->
