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

<channel>
	<title>Topper's Blog &#187; github</title>
	<atom:link href="http://blog.toppingdesign.com/tag/github/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.toppingdesign.com</link>
	<description>Usability, Information Management, Rails, Javascript &#38; (oh no) Web 2.0</description>
	<lastBuildDate>Tue, 24 Jan 2012 19:52:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Resque. Two things to think about.</title>
		<link>http://blog.toppingdesign.com/2010/11/05/resque-two-things-to-think-about/</link>
		<comments>http://blog.toppingdesign.com/2010/11/05/resque-two-things-to-think-about/#comments</comments>
		<pubDate>Fri, 05 Nov 2010 14:09:41 +0000</pubDate>
		<dc:creator>Topper</dc:creator>
				<category><![CDATA[General Web work - technical]]></category>
		<category><![CDATA[background jobs]]></category>
		<category><![CDATA[fork]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[resque]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[rubyonrails]]></category>

		<guid isPermaLink="false">http://blog.toppingdesign.com/?p=230</guid>
		<description><![CDATA[We started using the redis-backed Resque for background jobs. So far it&#8217;s been pretty great to work with. The syntax is clear and the whole thing just works. There are very good articles describing how to actually code Resque. Here&#8217;s one. I won&#8217;t bother with yet-another-walk-through. However, I do want to talk about one gotcha [...]]]></description>
			<content:encoded><![CDATA[<p>We started using the redis-backed <a href="http://blog.toppingdesign.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cHM6Ly9naXRodWIuY29tL2RlZnVua3QvcmVzcXVl">Resque</a> for background jobs. So far it&#8217;s been pretty great to work with. The syntax is clear and the whole thing <em>just works</em>. There are very good articles describing how to actually code Resque.  <a href="http://blog.toppingdesign.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5kZXZtdWxsLm5ldC9hcnRpY2xlcy9yZXNxdWUtaW1wbGVtZW50YXRpb24td2Fsa3Rocm91Z2g=">Here&#8217;s one</a>. I won&#8217;t bother with yet-another-walk-through.</p>
<p>However, I do want to talk about one gotcha and one thing you should think about.</p>
<p><strong>The Gotcha: Possible Message Failure</strong></p>
<p>Messages in Resque are <em>not necessarily going to run</em>. There is an, admittedly edge, case where a worker can pop a message off of a queue and then die. The message never gets put in a fail queue and it never actually runs. The message is gone. I have a fork that fixes this (makes it so messages can&#8217;t be lost unless Redis loses &#8216;em) <a href="http://blog.toppingdesign.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cHM6Ly9naXRodWIuY29tL3RvYm93ZXJzL3Jlc3F1ZQ==">https://github.com/tobowers/resque</a>. However, that&#8217;s awaiting a merge.</p>
<p>Until my branch (or some other fix) gets merged, make sure you think about what&#8217;s going to happen if your job doesn&#8217;t run. For many apps this can be &#8220;ok&#8221; (since it won&#8217;t happen very often). Just make sure it&#8217;s OK for yours.</p>
<p><strong>One Thing You Should Think About: Tracking Message State</strong></p>
<p>Since you can&#8217;t reach into a Resque queue and say &#8220;talk to me about this job,&#8221; tracking message state is up to your application. We happen to do this in our database.</p>
<p>We put a &#8220;job&#8221; record into the database with body, result, state columns. The body is there so we can always re-create a message from the database if something goes wrong. The result keeps track of what happened and the state lets us track it along its merry way.</p>
<p>If you have to make <strong>absolutely sure</strong> that your messages get processed, you&#8217;ll have to think about how you&#8217;re using Resque.</p>
 <img src="http://blog.toppingdesign.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=230" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.toppingdesign.com/2010/11/05/resque-two-things-to-think-about/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Free git training course</title>
		<link>http://blog.toppingdesign.com/2009/03/01/free-git-training-course/</link>
		<comments>http://blog.toppingdesign.com/2009/03/01/free-git-training-course/#comments</comments>
		<pubDate>Sun, 01 Mar 2009 20:53:19 +0000</pubDate>
		<dc:creator>Topper</dc:creator>
				<category><![CDATA[business]]></category>
		<category><![CDATA[General Web work - technical]]></category>
		<category><![CDATA[education]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[scm]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://blog.toppingdesign.com/2009/03/01/free-git-training-course/</guid>
		<description><![CDATA[h/t to Ruby Flow: Rubylearning.com is offering a free git and github training course. I don&#8217;t have any personal experience with RubyLearning, but I hear good things and it might be a good introductory course for anyone that is just getting used to git. http://rubylearning.com/blog/2009/02/10/git-and-github-a-free-course/]]></description>
			<content:encoded><![CDATA[<p>h/t to <a href="http://blog.toppingdesign.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ydWJ5Zmxvdy5jb20v">Ruby Flow</a>:</p>
<p><a href="http://blog.toppingdesign.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3J1YnlsZWFybmluZy5jb20=">Rubylearning.com</a> is offering a f<a href="http://blog.toppingdesign.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3J1YnlsZWFybmluZy5jb20vYmxvZy8yMDA5LzAyLzEwL2dpdC1hbmQtZ2l0aHViLWEtZnJlZS1jb3Vyc2Uv">ree git and github training course</a>.  I don&#8217;t have any personal experience with RubyLearning, but I hear good things and it might be a good introductory course for anyone that is just getting used to git.</p>
<p><a href="http://blog.toppingdesign.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3J1YnlsZWFybmluZy5jb20vYmxvZy8yMDA5LzAyLzEwL2dpdC1hbmQtZ2l0aHViLWEtZnJlZS1jb3Vyc2Uv">http://rubylearning.com/blog/2009/02/10/git-and-github-a-free-course/</a></p>
 <img src="http://blog.toppingdesign.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=160" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.toppingdesign.com/2009/03/01/free-git-training-course/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

