<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Kaboose Labs</title>
	<atom:link href="http://labs.kaboose.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://labs.kaboose.com</link>
	<description>Just another WordPress weblog</description>
	<pubDate>Fri, 28 Mar 2008 19:53:26 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Introducing Kaboose Queue</title>
		<link>http://labs.kaboose.com/2008/03/introducing-kaboose-queue/</link>
		<comments>http://labs.kaboose.com/2008/03/introducing-kaboose-queue/#comments</comments>
		<pubDate>Fri, 28 Mar 2008 19:46:41 +0000</pubDate>
		<dc:creator>mazdak</dc:creator>
		
		<category><![CDATA[Rails]]></category>

		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://labs.kaboose.com/2008/03/introducing-kaboose-queue/</guid>
		<description><![CDATA[The Kaboose Queue system is designed to handle asynchronous generic tasks (or messages). The main function of this system is to take the load off the request cycle. We use this system to send out e-mail, perform intensive image or video tasks, asynchronous network operations, etc.
We had a few important things in mind when desiging [...]]]></description>
			<content:encoded><![CDATA[<p>The Kaboose Queue system is designed to handle asynchronous generic tasks (or messages). The main function of this system is to take the load off the request cycle. We use this system to send out e-mail, perform intensive image or video tasks, asynchronous network operations, etc.</p>
<p>We had a few important things in mind when desiging this system:</p>
<ul>
<li>Performance</li>
<li>Scalibility</li>
<li>Reliability</li>
</ul>
<p>The first item is obvious. The system needs to be fast and relatively resource friendly. For this reason, we chose the Starling queue system from <a href="http://www.twitter.com">Twitter</a>.</p>
<p>The second item, scalibility, means that the system should:</p>
<ul>
<li>Be distributed. Many machines submitting tasks, and many machines processing these tasks.</li>
<li>Handle a large number of requests. Each photo upload spawns resize operations for frequently used sizes. Each resize spawns off additional S3 uploads, for example.</li>
<li>Support different priority tasks.</li>
</ul>
<p>The third item requires the system to handle failures, retry common errors, and notify us in case of major failures. Also, the system needs to surive the server dying and coming back and temporary network errors.</p>
<p>With the help of <a href="http://rubyforge.org/projects/starling/">Starling</a>, and our previous experience with a database-backed message queue system, I think we&#8217;ve achieved our goals. We look forward to the community&#8217;s feedback.</p>
<p><strong>Requirements</strong><br />
<code><br />
  sudo gem install starling<br />
  sudo gem install daemons<br />
</code></p>
<p><strong>Installation</strong><br />
<code><br/><br />
  script/plugin install http://kabqueue.googlecode.com/svn/trunk/kabqueue<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://labs.kaboose.com/2008/03/introducing-kaboose-queue/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Fixing Markaby in Edge Rails</title>
		<link>http://labs.kaboose.com/2008/02/fixing-markaby-in-edge-rails/</link>
		<comments>http://labs.kaboose.com/2008/02/fixing-markaby-in-edge-rails/#comments</comments>
		<pubDate>Wed, 13 Feb 2008 16:53:09 +0000</pubDate>
		<dc:creator>mazdak</dc:creator>
		
		<category><![CDATA[Rails]]></category>

		<guid isPermaLink="false">http://labs.kaboose.com/2008/02/fixing-markaby-in-edge-rails/</guid>
		<description><![CDATA[I really like Markaby a lot, but it seems like it hasn&#8217;t been updated in ages. Getting it to work with the post Rails 2 Edge (e.g. 8858) needed a bit of tweaking. Thanks fully it&#8217;s not much. Find the rails.rb inside vendor/plugins/markaby. Replace the ActionViewTemplateHandler class with this one.
    class ActionViewTemplateHandler [...]]]></description>
			<content:encoded><![CDATA[<p>I really like Markaby a lot, but it seems like it hasn&#8217;t been updated in ages. Getting it to work with the post Rails 2 Edge (e.g. 8858) needed a bit of tweaking. Thanks fully it&#8217;s not much. Find the rails.rb inside vendor/plugins/markaby. Replace the ActionViewTemplateHandler class with this one.</p>
<pre class="textmate-source minimal_theme"><span class="source source_ruby source_ruby_rails"><span class="meta meta_class meta_class_ruby">    <span class="keyword keyword_control keyword_control_class keyword_control_class_ruby">class</span> <span class="entity entity_name entity_name_type entity_name_type_class entity_name_type_class_ruby">ActionViewTemplateHandler<span class="entity entity_other entity_other_inherited-class entity_other_inherited-class_ruby"> <span class="punctuation punctuation_separator punctuation_separator_inheritance punctuation_separator_inheritance_ruby">&lt;</span> ActionView::TemplateHandler</span></span></span> <span class="comment comment_line comment_line_number-sign comment_line_number-sign_ruby"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_ruby">#</span> :nodoc:
</span>      <span class="meta meta_function meta_function_method meta_function_method_with-arguments meta_function_method_with-arguments_ruby"><span class="keyword keyword_control keyword_control_def keyword_control_def_ruby">def</span> <span class="entity entity_name entity_name_function entity_name_function_ruby">render</span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_ruby">(</span><span class="variable variable_parameter variable_parameter_function variable_parameter_function_ruby">template<span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby">,</span> local_assigns</span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_ruby">)</span></span>
        <span class="variable variable_other variable_other_readwrite variable_other_readwrite_instance variable_other_readwrite_instance_ruby"><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_ruby">@</span>markaby_template</span> <span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby">=</span> <span class="support support_class support_class_ruby">Template</span><span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby">.</span><span class="keyword keyword_other keyword_other_special-method keyword_other_special-method_ruby">new</span><span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby">(</span>template<span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby">)</span>
        <span class="variable variable_other variable_other_readwrite variable_other_readwrite_instance variable_other_readwrite_instance_ruby"><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_ruby">@</span>markaby_template</span><span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby">.</span><span class="support support_function support_function_actionpack support_function_actionpack_rails">render</span><span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby">(</span><span class="variable variable_other variable_other_readwrite variable_other_readwrite_instance variable_other_readwrite_instance_ruby"><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_ruby">@</span>view</span><span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby">.</span>assigns<span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby">.</span>merge<span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby">(</span>local_assigns<span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby">)</span><span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby">,</span> <span class="variable variable_other variable_other_readwrite variable_other_readwrite_instance variable_other_readwrite_instance_ruby"><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_ruby">@</span>view</span><span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby">)</span>
      <span class="keyword keyword_control keyword_control_ruby">end</span>
    <span class="keyword keyword_control keyword_control_ruby">end</span>
</span></pre>
<p>Now, let&#8217;s get rid of the whole portion on top (from module ActionView to end). That&#8217;s it!</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.kaboose.com/2008/02/fixing-markaby-in-edge-rails/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
