<?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>occasionally useful &#187; ruby</title>
	<atom:link href="http://blog.maxaller.name/category/ruby/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.maxaller.name</link>
	<description>ruby, ubuntu, etc</description>
	<lastBuildDate>Sun, 30 Oct 2011 18:00:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>AutoPull: you push, it pulls</title>
		<link>http://blog.maxaller.name/2011/01/autopull-you-push-it-pulls/</link>
		<comments>http://blog.maxaller.name/2011/01/autopull-you-push-it-pulls/#comments</comments>
		<pubDate>Sun, 16 Jan 2011 22:07:03 +0000</pubDate>
		<dc:creator>Max</dc:creator>
				<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blog.maxaller.name/?p=461</guid>
		<description><![CDATA[So you use GitHub and some compiled language, but not everyone can or wants to compile the source, they just want the artifacts. I made a tiny app that aids in this sort of thing. If you have ever wanted to execute an event in Ruby in response to a push to a repo via [...]]]></description>
		<wfw:commentRss>http://blog.maxaller.name/2011/01/autopull-you-push-it-pulls/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Time matcher for RSpec2</title>
		<link>http://blog.maxaller.name/2010/11/time-matcher-for-rspec2/</link>
		<comments>http://blog.maxaller.name/2010/11/time-matcher-for-rspec2/#comments</comments>
		<pubDate>Sun, 21 Nov 2010 18:15:19 +0000</pubDate>
		<dc:creator>Max</dc:creator>
				<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blog.maxaller.name/?p=390</guid>
		<description><![CDATA[I've found myself reusing this matcher a bit for time-sensitive tests, so I thought I'd share it. It allows you to verify that a block took a certain amount of time to execute. Here: Drop that into a file "spec/spec_custom_matchers.rb", then in your spec_helper.rb file add require &#34;spec_custom_matchers&#34; RSpec.configure do &#124;config&#124; config.include CustomMatchers end Usage [...]]]></description>
		<wfw:commentRss>http://blog.maxaller.name/2010/11/time-matcher-for-rspec2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruby Monitor Basics, or, How the heck do I synchronize producers/consumers</title>
		<link>http://blog.maxaller.name/2010/10/ruby-monitor-basics-or-how-the-heck-do-i-synchronize-producersconsumers/</link>
		<comments>http://blog.maxaller.name/2010/10/ruby-monitor-basics-or-how-the-heck-do-i-synchronize-producersconsumers/#comments</comments>
		<pubDate>Sat, 30 Oct 2010 05:46:48 +0000</pubDate>
		<dc:creator>Max</dc:creator>
				<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blog.maxaller.name/?p=376</guid>
		<description><![CDATA[Have you ever written something like this? threads = &#91;&#93; threads &#60;&#60; Thread.new &#123; something_slow &#125; threads &#60;&#60; Thread.new &#123; something_really_slow &#125; threads &#60;&#60; Thread.new &#123; go_take_a_coffee_break &#125; threads.each &#123;&#124;t&#124; t.join&#125; puts &#34;all done!&#34; This works fine, but...it's expensive to start up and stop threads (even green ones), and what if you instead used/needed Ruby's [...]]]></description>
		<wfw:commentRss>http://blog.maxaller.name/2010/10/ruby-monitor-basics-or-how-the-heck-do-i-synchronize-producersconsumers/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>ReReplay: Replay production traffic</title>
		<link>http://blog.maxaller.name/2010/10/rereplay-replay-production-traffic/</link>
		<comments>http://blog.maxaller.name/2010/10/rereplay-replay-production-traffic/#comments</comments>
		<pubDate>Tue, 26 Oct 2010 01:23:31 +0000</pubDate>
		<dc:creator>Max</dc:creator>
				<category><![CDATA[internet]]></category>
		<category><![CDATA[just for fun]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blog.maxaller.name/?p=370</guid>
		<description><![CDATA[Ever wonder if your change is going to slow down the website? "Performance impact will probably be negligible", you might say. Well, now you can know for sure. First, take a slice of your production logs and transform it into a particular format. Then run ReReplay with this snapshot to generate a baseline. Next apply [...]]]></description>
		<wfw:commentRss>http://blog.maxaller.name/2010/10/rereplay-replay-production-traffic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Announcing Crow, a path-finding library in Javascript</title>
		<link>http://blog.maxaller.name/2010/09/announcing-crow-a-path-finding-library-in-javascript/</link>
		<comments>http://blog.maxaller.name/2010/09/announcing-crow-a-path-finding-library-in-javascript/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 07:00:37 +0000</pubDate>
		<dc:creator>Max</dc:creator>
				<category><![CDATA[crow]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[just for fun]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blog.maxaller.name/?p=304</guid>
		<description><![CDATA[Announcing Crow, a path-finding library in javascript.  I also describe some of the basic API design, my experience with Google Closure, and QUnit.]]></description>
		<wfw:commentRss>http://blog.maxaller.name/2010/09/announcing-crow-a-path-finding-library-in-javascript/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>A brief introduction to Ruby, Sinatra, and Haml</title>
		<link>http://blog.maxaller.name/2010/01/a-brief-introduction-to-ruby-sinatra-and-haml/</link>
		<comments>http://blog.maxaller.name/2010/01/a-brief-introduction-to-ruby-sinatra-and-haml/#comments</comments>
		<pubDate>Sat, 23 Jan 2010 20:01:05 +0000</pubDate>
		<dc:creator>Max</dc:creator>
				<category><![CDATA[ruby]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[webapp]]></category>

		<guid isPermaLink="false">http://blog.maxaller.name/?p=251</guid>
		<description><![CDATA[Ruby and Sinatra make it ludicrously easy to make a webapp, but getting started, as with any new language or framework, can be daunting. By the end of this part, you'll have a simple template that talks back to you! I'm not going to go over how to install Ruby here (it's probably been done [...]]]></description>
		<wfw:commentRss>http://blog.maxaller.name/2010/01/a-brief-introduction-to-ruby-sinatra-and-haml/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Destructors in Ruby?  Not quite&#8230;</title>
		<link>http://blog.maxaller.name/2009/12/destructors-in-ruby-not-quite/</link>
		<comments>http://blog.maxaller.name/2009/12/destructors-in-ruby-not-quite/#comments</comments>
		<pubDate>Sun, 13 Dec 2009 00:54:35 +0000</pubDate>
		<dc:creator>Max</dc:creator>
				<category><![CDATA[ruby]]></category>
		<category><![CDATA[destructor]]></category>
		<category><![CDATA[jruby]]></category>

		<guid isPermaLink="false">http://blog.maxaller.name/?p=247</guid>
		<description><![CDATA[So I was curious to see how destructors work in Ruby, and...they don't. Or rather, the method we do have, ObjectSpace.define_finalizer, is rather restrictive. But it does leave a loophole -- the callback method receives an object_id. If you're thinking this is a bad idea, you might be right -- this is just a proof [...]]]></description>
		<wfw:commentRss>http://blog.maxaller.name/2009/12/destructors-in-ruby-not-quite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cool free hosted tools for your Ruby webapp</title>
		<link>http://blog.maxaller.name/2009/11/cool-free-hosted-tools-for-your-ruby-webapp/</link>
		<comments>http://blog.maxaller.name/2009/11/cool-free-hosted-tools-for-your-ruby-webapp/#comments</comments>
		<pubDate>Sun, 08 Nov 2009 02:15:51 +0000</pubDate>
		<dc:creator>Max</dc:creator>
				<category><![CDATA[ruby]]></category>
		<category><![CDATA[webapp]]></category>

		<guid isPermaLink="false">http://blog.maxaller.name/?p=211</guid>
		<description><![CDATA[Some of these are obvious (i.e. get exceptional, hoptoad), many of these aren't Ruby-specific, but I thought it might be nice to put all these in one place, at least for my sake. Exception tracking Get Exceptional limit: 1 app Hoptoad limit: 1 project, 2 users Bug tracking: there's github, of course, if you're already [...]]]></description>
		<wfw:commentRss>http://blog.maxaller.name/2009/11/cool-free-hosted-tools-for-your-ruby-webapp/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Design pattern/flow for building a website</title>
		<link>http://blog.maxaller.name/2009/07/design-patternflow-for-building-a-website/</link>
		<comments>http://blog.maxaller.name/2009/07/design-patternflow-for-building-a-website/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 02:55:55 +0000</pubDate>
		<dc:creator>Max</dc:creator>
				<category><![CDATA[musing]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blog.maxaller.name/?p=155</guid>
		<description><![CDATA[So here's how I normally do things: Do as much of the models as possible in this first pass, skipping validation but including schema stuff Stick a couple things into the controllers that I think I'll need Build out some of the views, giving them some basic styles Revisit the models to add validation, helper [...]]]></description>
		<wfw:commentRss>http://blog.maxaller.name/2009/07/design-patternflow-for-building-a-website/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Announcing: Ramastic, a skeleton for Ramaze</title>
		<link>http://blog.maxaller.name/2009/04/announcing-ramastic-a-skeleton-for-ramaze/</link>
		<comments>http://blog.maxaller.name/2009/04/announcing-ramastic-a-skeleton-for-ramaze/#comments</comments>
		<pubDate>Sat, 18 Apr 2009 08:01:09 +0000</pubDate>
		<dc:creator>Max</dc:creator>
				<category><![CDATA[ramaze]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blog.maxaller.name/?p=130</guid>
		<description><![CDATA[This is something I've been working on since slightly before my original call for suggestions a while back.  It's not done yet (I'd say it's somewhere around 75% done) but I want to get it out there before I totally lose steam on it.  There are a few inline styles I was planning on removing, [...]]]></description>
		<wfw:commentRss>http://blog.maxaller.name/2009/04/announcing-ramastic-a-skeleton-for-ramaze/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

