<?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: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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Ruby Inside</title>
	
	<link>http://www.rubyinside.com</link>
	<description />
	<pubDate>Thu, 02 Jul 2009 20:42:27 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/RubyInside" type="application/rss+xml" /><feedburner:emailServiceId>RubyInside</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Easy Web Spidering in Ruby with Anemone</title>
		<link>http://feedproxy.google.com/~r/RubyInside/~3/KcuAT9TKJgk/web-spidering-with-anemone-1927.html</link>
		<comments>http://www.rubyinside.com/web-spidering-with-anemone-1927.html#comments</comments>
		<pubDate>Thu, 02 Jul 2009 20:40:06 +0000</pubDate>
		<dc:creator>Ric Roberts</dc:creator>
		
		<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.rubyinside.com/?p=1927</guid>
		<description><![CDATA[<p><img style="float:left;margin-right:12px;margin-bottom:12px" src="http://www.rubyinside.com/wp-content/uploads/2009/07/anemone.jpg" alt="anemone" /> <a href="http://anemone.rubyforge.org/">Anemone</a> is a free, multi-threaded Ruby web spider framework from <a href="http://www.chriskite.com/">Chris Kite</a>, which is useful for collecting information about websites. With Anemone you can write tasks to generate some interesting statistics on a site just by giving it the URL.</p>
<p>Its only dependency is <a href="http://github.com/tenderlove/nokogiri/tree/master">Nokogiri</a> (an HTML and XML parser). Other than that, you just need to install the gem to get started using Anemone's simple syntax which, among other things, allows you to tell it which pages to include (based on regular&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p><img style="float:left;margin-right:12px;margin-bottom:12px" src="http://www.rubyinside.com/wp-content/uploads/2009/07/anemone.jpg" alt="anemone" /> <a href="http://anemone.rubyforge.org/">Anemone</a> is a free, multi-threaded Ruby web spider framework from <a href="http://www.chriskite.com/">Chris Kite</a>, which is useful for collecting information about websites. With Anemone you can write tasks to generate some interesting statistics on a site just by giving it the URL.</p>
<p>Its only dependency is <a href="http://github.com/tenderlove/nokogiri/tree/master">Nokogiri</a> (an HTML and XML parser). Other than that, you just need to install the gem to get started using Anemone's simple syntax which, among other things, allows you to tell it which pages to include (based on regular expressions) or define callbacks.</p>
<p>This example taken from Anemone's homepage prints out the URL of every page on a site:</p>
<pre>require 'anemone'

Anemone.crawl("http://www.example.com/") do |anemone|
  anemone.on_every_page do |page|
    puts page.url
  end
end</pre>
<p>The bin folder in the project contains some more in-depth examples, including tasks for counting the number of unique pages on a site, the number of pages at a certain depth in a site, or a list of urls encountered.  There's also a combined-task which wraps up a few of these, intended to be run as a daily cron job.</p>
<p>You can install Anemone as a gem or get the source from <a href="http://github.com/chriskite/anemone/tree/master">Github</a> of course, and there's some fairly comprehensive RDoc documentation available in the source or <a href="http://rdoc.info/projects/chriskite/anemone">online</a>.</p>
<div style="background-color: #ffd; padding: 8px; font-family: verdana; font-size: 12px"><a href="http://mobileorchard.com/inside" rel="nofollow"><img src="http://www.rubyinside.com/wp-content/uploads/2009/06/rupho.png" width="74" height="40" alt="rupho.png" style="float:left; margin-right:12px;" /></a><em>Also worth seeing.. </em> <strong>Mobile Orchard's <a href="http://mobileorchard.com/ri">Beginning iPhone Programming Workshop</a>.</strong>  Bay Area/July 30-31.  Seattle/Aug 20-21. Ruby Inside discount of $200 -- use "ri" discount code.</div>
<p></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RubyInside?a=KcuAT9TKJgk:S6ljhQ9W6f0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RubyInside?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=KcuAT9TKJgk:S6ljhQ9W6f0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=KcuAT9TKJgk:S6ljhQ9W6f0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=KcuAT9TKJgk:S6ljhQ9W6f0:3H-1DwQop_U"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=KcuAT9TKJgk:S6ljhQ9W6f0:3H-1DwQop_U" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=KcuAT9TKJgk:S6ljhQ9W6f0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=KcuAT9TKJgk:S6ljhQ9W6f0:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RubyInside/~4/KcuAT9TKJgk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rubyinside.com/web-spidering-with-anemone-1927.html/feed</wfw:commentRss>
		<feedburner:origLink>http://www.rubyinside.com/web-spidering-with-anemone-1927.html</feedburner:origLink></item>
		<item>
		<title>Integrity: A Fun And Easy Continuous Integration Server</title>
		<link>http://feedproxy.google.com/~r/RubyInside/~3/1ChWZBCT3Gk/integrity-a-fun-and-easy-continuous-integration-server-1890.html</link>
		<comments>http://www.rubyinside.com/integrity-a-fun-and-easy-continuous-integration-server-1890.html#comments</comments>
		<pubDate>Wed, 01 Jul 2009 15:10:09 +0000</pubDate>
		<dc:creator>Matt Sears</dc:creator>
		
		<category><![CDATA[Miscellaneous]]></category>

		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.rubyinside.com/?p=1890</guid>
		<description><![CDATA[<p><img class="alignleft size-medium wp-image-1891" src="http://www.rubyinside.com/wp-content/uploads/2009/07/integrity.png" style="margin-right: 12px; margin-bottom: 12px; float: left" alt="Integrity" width="90" height="70" /><a href="http://integrityapp.com">Integrity</a> is a simple and lightweight <a href="http://en.wikipedia.org/wiki/Continuous_integration">Continuous Integration</a> server written in Sinatra (a DSL for quickly creating web-applications in Ruby). When commits are pushed to a Git repository, Integrity builds, runs tests, and reports the build status to each team member. It supports a variety of notifiers including Email, IRC, and Twitter.</p>
<p>When it comes to developing large projects with multiple team members, it’s common nowadays to set up a Continuous Integration (CI) server. CI is a development practice where developers combine their&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-medium wp-image-1891" src="http://www.rubyinside.com/wp-content/uploads/2009/07/integrity.png" style="margin-right: 12px; margin-bottom: 12px; float: left" alt="Integrity" width="90" height="70" /><a href="http://integrityapp.com">Integrity</a> is a simple and lightweight <a href="http://en.wikipedia.org/wiki/Continuous_integration">Continuous Integration</a> server written in Sinatra (a DSL for quickly creating web-applications in Ruby). When commits are pushed to a Git repository, Integrity builds, runs tests, and reports the build status to each team member. It supports a variety of notifiers including Email, IRC, and Twitter.</p>
<p>When it comes to developing large projects with multiple team members, it’s common nowadays to set up a Continuous Integration (CI) server. CI is a development practice where developers combine their work frequently and run tests over the whole project in order to identify errors early. Wikipedia has <a href="http://en.wikipedia.org/wiki/Continuous_integration">a good summary</a> of the practice.</p>
<p>Integrity makes it easy to setup a CI server for your Ruby apps.  It lowers the barrier for people starting out with Continuous Integration, as well as provide a simpler and minimal alternative. The project’s <a href="http://integrityapp.com">homepage</a> includes helpful installation instructions for Phusion Passenger, Thin, and Heroku.</p>
<div style="background-color: #cef; padding: 4px"><em><a href="http://mattsears.com">Matt Sears</a> is a Ruby developer and co-founder of <a href="http://littlelines.com">Littlelines</a>, a Rails development and web design company. </em></div>
<p></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RubyInside?a=1ChWZBCT3Gk:OAYhs6EaUvc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RubyInside?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=1ChWZBCT3Gk:OAYhs6EaUvc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=1ChWZBCT3Gk:OAYhs6EaUvc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=1ChWZBCT3Gk:OAYhs6EaUvc:3H-1DwQop_U"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=1ChWZBCT3Gk:OAYhs6EaUvc:3H-1DwQop_U" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=1ChWZBCT3Gk:OAYhs6EaUvc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=1ChWZBCT3Gk:OAYhs6EaUvc:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RubyInside/~4/1ChWZBCT3Gk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rubyinside.com/integrity-a-fun-and-easy-continuous-integration-server-1890.html/feed</wfw:commentRss>
		<feedburner:origLink>http://www.rubyinside.com/integrity-a-fun-and-easy-continuous-integration-server-1890.html</feedburner:origLink></item>
		<item>
		<title>Getting Started with MongoDB and Ruby</title>
		<link>http://feedproxy.google.com/~r/RubyInside/~3/i1pVw4jtmSk/getting-started-mongodb-ruby-1875.html</link>
		<comments>http://www.rubyinside.com/getting-started-mongodb-ruby-1875.html#comments</comments>
		<pubDate>Tue, 30 Jun 2009 23:45:33 +0000</pubDate>
		<dc:creator>Ric Roberts</dc:creator>
		
		<category><![CDATA[Miscellaneous]]></category>

		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.rubyinside.com/?p=1875</guid>
		<description><![CDATA[<p><img class="alignnone size-medium wp-image-1874" style="float:left; margin-bottom: 12px; margin-right: 12px;" title="mongomapper_logo" src="http://www.rubyinside.com/wp-content/uploads/2009/06/mongomapper_logo.jpg" alt="mongo mapper" /> <a href="http://www.mongodb.org/">MongoDB</a> a is a high-performance, open source, schema-free, document-oriented database written in C++. It's sort of a cross between scalable key/value stores and traditional functionality-rich relational databases.</p>
<p>MongoDB might be useful as a fast, simple, non-transactional data store for a web application, or as a caching mechanism.  You don't ever need to worry about migrations due to Mongo's schema-less nature.</p>
<p>Getting started with MongoDB using Ruby is now fairly straightforward thanks to the <a href="http://github.com/mongodb/mongo-ruby-driver/tree/master">Mongo Ruby driver</a>. This provides access to the core Mongo&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-medium wp-image-1874" style="float:left; margin-bottom: 12px; margin-right: 12px;" title="mongomapper_logo" src="http://www.rubyinside.com/wp-content/uploads/2009/06/mongomapper_logo.jpg" alt="mongo mapper" /> <a href="http://www.mongodb.org/">MongoDB</a> a is a high-performance, open source, schema-free, document-oriented database written in C++. It's sort of a cross between scalable key/value stores and traditional functionality-rich relational databases.</p>
<p>MongoDB might be useful as a fast, simple, non-transactional data store for a web application, or as a caching mechanism.  You don't ever need to worry about migrations due to Mongo's schema-less nature.</p>
<p>Getting started with MongoDB using Ruby is now fairly straightforward thanks to the <a href="http://github.com/mongodb/mongo-ruby-driver/tree/master">Mongo Ruby driver</a>. This provides access to the core Mongo database operations, and natively supports many Ruby objects without requiring conversion (including nested hashes).  There's even an <a href="http://github.com/mongodb/activerecord-mongo-adapter/tree/master">ActiveRecord connection adapter for Mongo</a>.</p>
<p>Earlier this week, John Nunemaker announced his <a href="http://railstips.org/2009/6/27/mongomapper-the-rad-mongo-wrapper">MongoMapper</a>, a wrapper for MongoDB which includes typecasting, callbacks, validations and other ActiveRecord-like features. The project is heading towards drop-in Rails compatibility.</p>
<p>MongoMapper uses a default connection from the Ruby driver, and to create a MongoMapper model you just need to include <code>MongoMapper::Document</code> in the class (as opposed to ActiveRecord's inheritance pattern).  From there, it's simple to define your document's keys, validations and callbacks.</p>
<p>The MongoMapper gem is available from RubyForge or <a href="http://github.com/jnunemaker/mongomapper/tree/master">Github</a>, and you can read more on <a href="http://railstips.org/2009/6/27/mongomapper-the-rad-mongo-wrapper">RailsTips</a>.</p>
<div style="background-color: #ffd; padding: 8px; font-family: verdana; font-size: 12px"><a href="http://mobileorchard.com/inside" rel="nofollow"><img src="http://www.rubyinside.com/wp-content/uploads/2009/06/rupho.png" width="74" height="40" alt="rupho.png" style="float:left; margin-right:12px;" /></a><em>Also worth seeing.. </em> <strong>Mobile Orchard's <a href="http://mobileorchard.com/ri">Beginning iPhone Programming Workshop</a>.</strong>  Bay Area/July 30-31.  Seattle/Aug 20-21. Ruby Inside discount of $200 -- use "ri" discount code.</div>
<p></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RubyInside?a=i1pVw4jtmSk:KUwQgSfILO4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RubyInside?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=i1pVw4jtmSk:KUwQgSfILO4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=i1pVw4jtmSk:KUwQgSfILO4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=i1pVw4jtmSk:KUwQgSfILO4:3H-1DwQop_U"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=i1pVw4jtmSk:KUwQgSfILO4:3H-1DwQop_U" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=i1pVw4jtmSk:KUwQgSfILO4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=i1pVw4jtmSk:KUwQgSfILO4:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RubyInside/~4/i1pVw4jtmSk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rubyinside.com/getting-started-mongodb-ruby-1875.html/feed</wfw:commentRss>
		<feedburner:origLink>http://www.rubyinside.com/getting-started-mongodb-ruby-1875.html</feedburner:origLink></item>
		<item>
		<title>Hirb: An Easy-to-Use View Framework for irb</title>
		<link>http://feedproxy.google.com/~r/RubyInside/~3/narLdfQH3nU/hirb-an-easy-to-use-view-framework-for-irb-1853.html</link>
		<comments>http://www.rubyinside.com/hirb-an-easy-to-use-view-framework-for-irb-1853.html#comments</comments>
		<pubDate>Sun, 28 Jun 2009 19:23:19 +0000</pubDate>
		<dc:creator>Ric Roberts</dc:creator>
		
		<category><![CDATA[Miscellaneous]]></category>

		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.rubyinside.com/?p=1853</guid>
		<description><![CDATA[<p><a href="http://www.rubyinside.com/wp-content/uploads/2009/06/hirb.jpg"><img style="float:left;margin-right:12px; margin-bottom:12px;" title="hirb" src="http://www.rubyinside.com/wp-content/uploads/2009/06/hirb.jpg" alt="hirb" width="60" height="61" /></a> The Interactive Ruby Shell (<a href="http://en.wikipedia.org/wiki/Interactive_Ruby_Shell">irb</a>) and the Rails console are great for interacting and experimenting with your ruby application code, but sometimes it's hard to visualize the output. Gabriel Horner has come to the rescue with <a title="Hirb" href="http://tagaholic.me/hirb/">Hirb</a>: a 'mini view framework' for irb which is designed to improve the default output to make it more human-readable.</p>
<p>Hirb does this by formatting console output according to its type, and paging if there's more than a screenful to display. For example, Hirb will automatically display&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.rubyinside.com/wp-content/uploads/2009/06/hirb.jpg"><img style="float:left;margin-right:12px; margin-bottom:12px;" title="hirb" src="http://www.rubyinside.com/wp-content/uploads/2009/06/hirb.jpg" alt="hirb" width="60" height="61" /></a> The Interactive Ruby Shell (<a href="http://en.wikipedia.org/wiki/Interactive_Ruby_Shell">irb</a>) and the Rails console are great for interacting and experimenting with your ruby application code, but sometimes it's hard to visualize the output. Gabriel Horner has come to the rescue with <a title="Hirb" href="http://tagaholic.me/hirb/">Hirb</a>: a 'mini view framework' for irb which is designed to improve the default output to make it more human-readable.</p>
<p>Hirb does this by formatting console output according to its type, and paging if there's more than a screenful to display. For example, Hirb will automatically display ActiveRecord model instances in a non-wrapping, table-like view.<br />
<code><br />
irb&gt;&gt; Tag.last<br />
+-----+-------------------------+-------------+<br />
| id  | created_at              | description |<br />
+-----+-------------------------+-------------+<br />
| 907 | 2009-03-06 21:10:41 UTC | blah        |<br />
+-----+-------------------------+-------------+<br />
1 row in set<br />
</code><br />
There's also a helper provided which displays a collection of arrays or hashes as a tree. This might be useful for visualizing class inheritance trees, nested classes or relationships between ActiveRecord models (as <a href="http://tagaholic.me/2009/03/18/ruby-class-trees-rails-plugin-trees-with-hirb.html">this blog post</a> describes).</p>
<p>In addition to the defaults you can specify your own reusable views, <a href="http://tagaholic.me/hirb/doc/classes/Hirb/Helpers/Tree.html">as the author explains</a> in the documentation, leading you through an example of displaying hashes as <a href="http://en.wikipedia.org/wiki/YAML">YAML</a>.</p>
<p>Hirb prints to the standard output by default, but you can configure it to write to anywhere you like, such as a log file.</p>
<p>The source code is on <a href="http://github.com/cldwalker/hirb/tree/master">Github</a> (or it can be installed as a gem), with documentation available on the <a href="http://tagaholic.me/hirb/doc/index.html">author's site</a>. Hirb users are invited to share any views they have written by forking the Github repository and adding them into the project structure.</p>
<p></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RubyInside?a=narLdfQH3nU:k0JBRazoBOU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RubyInside?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=narLdfQH3nU:k0JBRazoBOU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=narLdfQH3nU:k0JBRazoBOU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=narLdfQH3nU:k0JBRazoBOU:3H-1DwQop_U"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=narLdfQH3nU:k0JBRazoBOU:3H-1DwQop_U" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=narLdfQH3nU:k0JBRazoBOU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=narLdfQH3nU:k0JBRazoBOU:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RubyInside/~4/narLdfQH3nU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rubyinside.com/hirb-an-easy-to-use-view-framework-for-irb-1853.html/feed</wfw:commentRss>
		<feedburner:origLink>http://www.rubyinside.com/hirb-an-easy-to-use-view-framework-for-irb-1853.html</feedburner:origLink></item>
		<item>
		<title>Interesting Ruby Tidbits That Don’t Need Separate Posts #26</title>
		<link>http://feedproxy.google.com/~r/RubyInside/~3/AP9aGCFJB_0/interesting-ruby-tidbits-that-don%e2%80%99t-need-separate-posts-26-1850.html</link>
		<comments>http://www.rubyinside.com/interesting-ruby-tidbits-that-don%e2%80%99t-need-separate-posts-26-1850.html#comments</comments>
		<pubDate>Mon, 22 Jun 2009 17:40:12 +0000</pubDate>
		<dc:creator>Peter Cooper</dc:creator>
		
		<category><![CDATA[Compilation Posts]]></category>

		<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.rubyinside.com/interesting-ruby-tidbits-that-don%e2%80%99t-need-separate-posts-26-1850.html</guid>
		<description><![CDATA[<p>The latest installment of the series of posts crammed with random Ruby links, articles, and resources to kick off your week!</p>
<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/06/gogaruco.png" width="111" height="70" alt="gogaruco.png" style="float:right; margin-bottom:12px; margin-left:12px;" /></p>
<h3>17 High Quality Videos from GoGaRuCo</h3>
<p>Earlier this month, <a href="http://pivotallabs.com/gogaruco/talks">the videos</a> from the <a href="http://gogaruco.com/">GoGaRuCo</a> (Golden Gate Ruby Conference) conference that took place back in April went online. The talks are all available in MPEG 4 video and MP3 audio formats. Video and audio quality are really good overall (no annoying humming or reverb that often plague such undertakings).</p>]]></description>
			<content:encoded><![CDATA[<p>The latest installment of the series of posts crammed with random Ruby links, articles, and resources to kick off your week!</p>
<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/06/gogaruco.png" width="111" height="70" alt="gogaruco.png" style="float:right; margin-bottom:12px; margin-left:12px;" /></p>
<h3>17 High Quality Videos from GoGaRuCo</h3>
<p>Earlier this month, <a href="http://pivotallabs.com/gogaruco/talks">the videos</a> from the <a href="http://gogaruco.com/">GoGaRuCo</a> (Golden Gate Ruby Conference) conference that took place back in April went online. The talks are all available in MPEG 4 video and MP3 audio formats. Video and audio quality are really good overall (no annoying humming or reverb that often plague such undertakings).</p>
<p>Talks include <a href="http://pivotallabs.com/gogaruco/talks/62-using-ruby-to-fight-aids">Using Ruby to Fight AIDS</a>, <a href="http://pivotallabs.com/gogaruco/talks/50-macruby-and-hotcocoa">MacRuby and HotCocoa</a>, <a href="http://pivotallabs.com/gogaruco/talks/55-building-custom-web-proxies-in-ruby">Building Custom Web Proxies in Ruby</a>, and <a href="http://pivotallabs.com/gogaruco/talks/51-sinatra-the-framework-within">Sinatra: The Framework Within</a>, although there are 17 to check out overall.</p>
<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/06/totally-weird-ass-phusion-logo.png" width="109" height="53" alt="totally-weird-ass-phusion-logo.png" style="float:right; margin-bottom:12px; margin-left:12px;" /></p>
<h3>Phusion Passenger 2.2.4 Released - Stability and Bug Fixes</h3>
<p>Yesterday Phusion <a href="http://blog.phusion.nl/2009/06/21/phusion-passenger-224-released/">released version 2.2.4 of Passenger</a> - the de facto Rails and Rack-based Web app deployment module for Apache and nginx. It's the latest in a line of security and stability releases so you might want to get up to date. Crucially, a 8KB-per-request memory leak has been fixed since 2.2.3. Upgrading is as easy as with all previous point releases.</p>
<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/06/api-warm-32.gif" width="32" height="32" alt="API_warm_32.gif" style="float:right; margin-bottom:12px; margin-left:12px;" /></p>
<h3>"Enterprise" Ruby - Write Ruby in XML?</h3>
<p>Perhaps the most horrible Ruby project I've seen in some time but, luckily, an entirely tongue in cheek one - <a href="http://github.com/tenderlove/enterprise/tree/master">Enterprise</a> by Aaron Patterson (of <a href="http://www.rubyinside.com/nokogiri-ruby-html-parser-and-xml-parser-1288.html">Nokogiri</a> fame). <i>Enterprise</i> suggests that writing Ruby in XML yields all sorts of "enterprise" benefits. I wasn't going to link to it, but it blew up on both Reddit and del.icio.us, so someone must find it entertaining. If it keeps Aaron entertained enough to keep developing awesome libraries like Nokogiri, I'm grudgingly for it..</p>
<h3>Eventful - Improvements for Observable, Adding Events To Your Objects</h3>
<p><a href="http://github.com/jcoglan/eventful/tree/master">Eventful</a> is a small extension for Ruby's <a href="http://www.ruby-doc.org/stdlib/libdoc/observer/rdoc/index.html">Observable</a> module that adds named events, block listeners and event bubbling features. If you haven't used Observable before, it basically provides a simple mechanism for objects to inform other objects of state changes - Eventful builds upon that basic functionality. The <a href="http://github.com/jcoglan/eventful/tree/master">basic Eventful page</a> has a few simple examples to whet your appetite.</p>
<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/06/newrelicrack.png" width="114" height="79" alt="newrelicrack.png" style="float:right; margin-bottom:12px; margin-left:12px;" /></p>
<h3>Free Rack &amp; Rails Metal Screencast</h3>
<p>Gregg Pollack of RailsEnvy has produced a new, free screencast for the New Relic <a href="http://railslab.newrelic.com/">RailsLab</a> site called <a href="http://railslab.newrelic.com/2009/06/05/episode-14-rack-metal">Rack &amp; Metal</a>. In about twenty minutes Gregg covers the basics of Rack and Rack middleware before moving on to showing how Rack fits into the Rails stack. It's a great primer if Rack and Rails Metal are still new to you or you want to see how they fit together in the grand scheme of things.</p>
<p></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RubyInside?a=AP9aGCFJB_0:FMd1MfWY324:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RubyInside?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=AP9aGCFJB_0:FMd1MfWY324:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=AP9aGCFJB_0:FMd1MfWY324:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=AP9aGCFJB_0:FMd1MfWY324:3H-1DwQop_U"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=AP9aGCFJB_0:FMd1MfWY324:3H-1DwQop_U" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=AP9aGCFJB_0:FMd1MfWY324:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=AP9aGCFJB_0:FMd1MfWY324:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RubyInside/~4/AP9aGCFJB_0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rubyinside.com/interesting-ruby-tidbits-that-don%e2%80%99t-need-separate-posts-26-1850.html/feed</wfw:commentRss>
		<feedburner:origLink>http://www.rubyinside.com/interesting-ruby-tidbits-that-don%e2%80%99t-need-separate-posts-26-1850.html</feedburner:origLink></item>
		<item>
		<title>Publish Your Ruby Documentation on Github with Rdoc.info</title>
		<link>http://feedproxy.google.com/~r/RubyInside/~3/3Twy4pzxHnA/publish-your-ruby-documentation-on-github-with-rdocinfo-1844.html</link>
		<comments>http://www.rubyinside.com/publish-your-ruby-documentation-on-github-with-rdocinfo-1844.html#comments</comments>
		<pubDate>Fri, 19 Jun 2009 19:40:20 +0000</pubDate>
		<dc:creator>Peter Cooper</dc:creator>
		
		<category><![CDATA[Miscellaneous]]></category>

		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.rubyinside.com/publish-your-ruby-documentation-on-github-with-rdocinfo-1844.html</guid>
		<description><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/06/cthuluoooo.png" width="91" height="83" alt="cthuluoooo.png" style="float:left; margin-right:12px; margin-bottom:12px; border:1px #000000 solid;" /><em>This post is by <a href="http://mattsears.com/">Matt Sears</a> of <a href="http://littlelines.com/">Littlelines</a>.</em></p>
<p><a href="http://rdoc.info">Rdoc.info</a> is simple web service that uses <a href="http://yard.soen.ca">YARD</a> (a documentation generation tool for Rubyists) to generate documentation for Ruby libraries hosted on <a href="http://www.github.com/">Github.</a> If you’re not familiar with YARD, it allows you to add metadata to Ruby documentation similar to other languages such as Java and Objective-C. Another cool thing about YARD is its extensibility and allowing you to plug in custom handlers and output.</p>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/06/cthuluoooo.png" width="91" height="83" alt="cthuluoooo.png" style="float:left; margin-right:12px; margin-bottom:12px; border:1px #000000 solid;" /><em>This post is by <a href="http://mattsears.com/">Matt Sears</a> of <a href="http://littlelines.com/">Littlelines</a>.</em></p>
<p><a href="http://rdoc.info">Rdoc.info</a> is simple web service that uses <a href="http://yard.soen.ca">YARD</a> (a documentation generation tool for Rubyists) to generate documentation for Ruby libraries hosted on <a href="http://www.github.com/">Github.</a> If you’re not familiar with YARD, it allows you to add metadata to Ruby documentation similar to other languages such as Java and Objective-C. Another cool thing about YARD is its extensibility and allowing you to plug in custom handlers and output.</p>
<p>Rdoc.info, <a href="http://blog.zerosum.org/2009/4/29/rdoc-info">announced</a> in April, was launched as a side project by Nick Plante. Nick leveraged Github’s <a href="http://github.com/guides/post-receive-hooks">post-receive-hooks</a> to automatically generate and host Ruby documentation each time a Github project receives a commit. As a standalone work, Rdoc.info is a smart and simple idea. But wait, there’s more!</p>
<p>Nick teamed up with Jeff Rafter and took the project a step further by making the documentation available on Github itself. Jeff put together <a href="http://neverlet.be/2009/5/14/github-has-an-apps-platform">Github Has An Apps Platform</a>, a splendid article on how they made this possible. The end result, a sleek RDoc browser hosted at <a href="http://docs.github.com">docs.github.com</a> allowing you to quickly view methods, namespaces, and the source code all within Github.</p>
<p>While still young, this project shows a lot of promise. Many popular Ruby libraries have already added their documentation to Github. Projects like <a href="http://docs.github.com/rack/rack/">Rack</a>, <a href="http://docs.github.com/dchelimsky/rspec">Rspec</a>, and <a href="http://docs.github.com/sinatra/sinatra/">Sinatra</a> to name a few.</p>
<p>To get your documentation on Github, check out the instructions available on the <a href="http://docs.github.com">docs.github.com</a>.</p>
<div style="background-color: #ffd; padding: 8px; font-family: verdana; font-size: 12px"><a href="http://mobileorchard.com/inside" rel="nofollow"><img src="http://www.rubyinside.com/wp-content/uploads/2009/06/rupho.png" width="74" height="40" alt="rupho.png" style="float:left; margin-right:12px;" /></a><em>Also worth seeing.. </em> <strong>Mobile Orchard's <a href="http://mobileorchard.com/ri">Beginning iPhone Programming Workshop</a>.</strong>  Bay Area/July 30-31.  Seattle/Aug 20-21. Ruby Inside discount of $200 -- use "ri" discount code.</div>
<p></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RubyInside?a=3Twy4pzxHnA:b8EgQL9dx_A:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RubyInside?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=3Twy4pzxHnA:b8EgQL9dx_A:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=3Twy4pzxHnA:b8EgQL9dx_A:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=3Twy4pzxHnA:b8EgQL9dx_A:3H-1DwQop_U"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=3Twy4pzxHnA:b8EgQL9dx_A:3H-1DwQop_U" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=3Twy4pzxHnA:b8EgQL9dx_A:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=3Twy4pzxHnA:b8EgQL9dx_A:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RubyInside/~4/3Twy4pzxHnA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rubyinside.com/publish-your-ruby-documentation-on-github-with-rdocinfo-1844.html/feed</wfw:commentRss>
		<feedburner:origLink>http://www.rubyinside.com/publish-your-ruby-documentation-on-github-with-rdocinfo-1844.html</feedburner:origLink></item>
		<item>
		<title>Generate Ruby Profiling Charts With Perftools</title>
		<link>http://feedproxy.google.com/~r/RubyInside/~3/72KeN6K44-A/ruby-profiling-charts-with-perftools-1841.html</link>
		<comments>http://www.rubyinside.com/ruby-profiling-charts-with-perftools-1841.html#comments</comments>
		<pubDate>Wed, 17 Jun 2009 20:03:51 +0000</pubDate>
		<dc:creator>Peter Cooper</dc:creator>
		
		<category><![CDATA[Miscellaneous]]></category>

		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.rubyinside.com/ruby-profiling-charts-with-perftools-1841.html</guid>
		<description><![CDATA[<p>&#160;&#160;<img src="http://www.rubyinside.com/wp-content/uploads/2009/06/perftools.png" width="400" height="100" alt="perftools.png" style="margin-top:0px; margin-right:0px; margin-left:0px; border:1px #000000 solid;" /></p>
<p>Ilya Grigorik has written an interesting article called <a href="http://www.igvita.com/2009/06/13/profiling-ruby-with-googles-perftools/">Profiling Ruby with Google's Perftools</a> about using a port of <a href="http://code.google.com/p/google-perftools/">Google's Perftools</a> (<a href="http://github.com/tmm1/perftools.rb/tree/master">perftools.rb</a>) to build graphs showing the results of profiling sessions on your Ruby code. As with all of Ilya's great posts, it's punchy and to the point.</p>
<p>Ilya starts by explaining what Perftools is and shows how to use its regular profiling features from Ruby, which are impressive enough, but then moves on to showing how to generate graphic profiling charts that graphically&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>&nbsp;&nbsp;<img src="http://www.rubyinside.com/wp-content/uploads/2009/06/perftools.png" width="400" height="100" alt="perftools.png" style="margin-top:0px; margin-right:0px; margin-left:0px; border:1px #000000 solid;" /></p>
<p>Ilya Grigorik has written an interesting article called <a href="http://www.igvita.com/2009/06/13/profiling-ruby-with-googles-perftools/">Profiling Ruby with Google's Perftools</a> about using a port of <a href="http://code.google.com/p/google-perftools/">Google's Perftools</a> (<a href="http://github.com/tmm1/perftools.rb/tree/master">perftools.rb</a>) to build graphs showing the results of profiling sessions on your Ruby code. As with all of Ilya's great posts, it's punchy and to the point.</p>
<p>Ilya starts by explaining what Perftools is and shows how to use its regular profiling features from Ruby, which are impressive enough, but then moves on to showing how to generate graphic profiling charts that graphically demonstrate where your application is spending most of its time. Aman Gupta, the developer of Perftools.rb, has produced such graphs for <a href="http://perftools-rb.rubyforge.org/examples/rubygems.gif">RubyGems</a>, <a href="http://perftools-rb.rubyforge.org/examples/merb.gif">Merb</a>, <a href="http://perftools-rb.rubyforge.org/examples/rails.gif">Rails</a>, and <a href="http://perftools-rb.rubyforge.org/examples/eventmachine-epoll+nothreads.gif">EventMachine</a>, which you might find interesting. Unsurprisingly, Rails and Merb apps seem to spend most of their time at the IO stage.</p>
<div style="background-color: #ffd; padding: 8px; font-family: verdana; font-size: 12px">
  <a href="http://www.interkonect.com/job.html"><img src="http://www.rubyinside.com/wp-content/uploads/2009/06/ruby-job.jpg" width="100" height="40" alt="ruby-job.jpg" style="float:left; margin-right:12px; margin-bottom:12px;" /></a><strong>Job!</strong> <a href="http://www.interkonect.com/">Interkonect</a>, a web app consultancy in Nottingham, UK, is <a href="http://www.interkonect.com/job.html">looking for a part-time junior Rails developer</a> - working from home/freelancing is fine but you should be in the UK in order to attend occasional meetings. <a href="http://www.interkonect.com/job.html">Click here to learn more.</a>
</div>
<p></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RubyInside?a=72KeN6K44-A:tNzgtUzT5XM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RubyInside?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=72KeN6K44-A:tNzgtUzT5XM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=72KeN6K44-A:tNzgtUzT5XM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=72KeN6K44-A:tNzgtUzT5XM:3H-1DwQop_U"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=72KeN6K44-A:tNzgtUzT5XM:3H-1DwQop_U" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=72KeN6K44-A:tNzgtUzT5XM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=72KeN6K44-A:tNzgtUzT5XM:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RubyInside/~4/72KeN6K44-A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rubyinside.com/ruby-profiling-charts-with-perftools-1841.html/feed</wfw:commentRss>
		<feedburner:origLink>http://www.rubyinside.com/ruby-profiling-charts-with-perftools-1841.html</feedburner:origLink></item>
		<item>
		<title>Rip: A Next Generation Ruby Packaging System - Watch Out RubyGems!</title>
		<link>http://feedproxy.google.com/~r/RubyInside/~3/duzpaH0kS4g/rip-ruby-packaging-system-1837.html</link>
		<comments>http://www.rubyinside.com/rip-ruby-packaging-system-1837.html#comments</comments>
		<pubDate>Fri, 12 Jun 2009 21:55:00 +0000</pubDate>
		<dc:creator>Peter Cooper</dc:creator>
		
		<category><![CDATA[Cool]]></category>

		<category><![CDATA[News]]></category>

		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.rubyinside.com/rip-ruby-packaging-system-1837.html</guid>
		<description><![CDATA[<p><a href="http://hellorip.com/about.html"><img src="http://www.rubyinside.com/wp-content/uploads/2009/06/rip.png" width="61" height="46" alt="rip.png" style="float:left; margin-right:12px; margin-bottom:12px;" /></a>Earlier this week, <a href="http://hellorip.com/">Rip</a> quietly made its way into the world. It's a "next generation" Ruby packaging system, clearly meant to both work around some of the problems with RubyGems and also introduce some fresh ideas of its own. If you want to immediately jump and learn more, check out <a href="http://hellorip.com/about.html">the official About us page</a> for a tour.</p>
<p>Rip comes from the Github and Sinatra stables with the primary contributors being Chris Wanstrath, Jeff Hodges, Tom Preston-Werner, John Barnette, Blake Mizerany, Ryan Tomayko&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://hellorip.com/about.html"><img src="http://www.rubyinside.com/wp-content/uploads/2009/06/rip.png" width="61" height="46" alt="rip.png" style="float:left; margin-right:12px; margin-bottom:12px;" /></a>Earlier this week, <a href="http://hellorip.com/">Rip</a> quietly made its way into the world. It's a "next generation" Ruby packaging system, clearly meant to both work around some of the problems with RubyGems and also introduce some fresh ideas of its own. If you want to immediately jump and learn more, check out <a href="http://hellorip.com/about.html">the official About us page</a> for a tour.</p>
<p>Rip comes from the Github and Sinatra stables with the primary contributors being Chris Wanstrath, Jeff Hodges, Tom Preston-Werner, John Barnette, Blake Mizerany, Ryan Tomayko and Pat Nakajima. This is no "crazy renegade" project, although the developers are keen to stress the existing version is only a "development alpha" to be tested and built upon - not used in production.</p>
<p>Rip has a number of compelling features that make it worth considering for the future. Firstly, it provides another level of abstraction above existing RubyGems, Git repositories, and file structures, in the form of <i>packages</i>. It also supports the creation of <i>virtual environments</i> that can exist simultaneously but wherein different sets of libraries can be installed. Taking a cue from Git, Rip is also decentralized. There's no canonical server for Rip packages - they'll be retrieved from wherever the library developer specifies. This means you won't be able to do anything quite as simple as <i>gem install library</i>, but we're already used to using URLs for other forms of content, so why not library files?</p>
<p>Basically, Rip's a new tool with a whole new way of looking at Ruby packaging and library distribution, but it has a killer team behind it, some solid ideas, and it could well supersede RubyGems in many ways in the near future. We've had rapid tool switches before in the Ruby world (think how quickly Git became entrenched) so I wouldn't be surprised if Rip becomes a big deal over the next several months..</p>
<div style="background-color: #ffd; padding: 8px; font-family: verdana; font-size: 12px"><a href="http://mobileorchard.com/inside" rel="nofollow"><img src="http://www.rubyinside.com/wp-content/uploads/2009/06/rupho.png" width="74" height="40" alt="rupho.png" style="float:left; margin-right:12px;" /></a><em>Also worth seeing.. </em><strong><a href="http://mobileorchard.com/inside" rel="nofollow">Beginning iPhone Programming Workshop For Rubyists</a>.</strong> A companion class to the FutureRuby conference. Toronto, July 9-10, <del>$1200</del> $699.</div>
<p></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RubyInside?a=duzpaH0kS4g:K1lWiZFYSKM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RubyInside?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=duzpaH0kS4g:K1lWiZFYSKM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=duzpaH0kS4g:K1lWiZFYSKM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=duzpaH0kS4g:K1lWiZFYSKM:3H-1DwQop_U"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=duzpaH0kS4g:K1lWiZFYSKM:3H-1DwQop_U" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=duzpaH0kS4g:K1lWiZFYSKM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=duzpaH0kS4g:K1lWiZFYSKM:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RubyInside/~4/duzpaH0kS4g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rubyinside.com/rip-ruby-packaging-system-1837.html/feed</wfw:commentRss>
		<feedburner:origLink>http://www.rubyinside.com/rip-ruby-packaging-system-1837.html</feedburner:origLink></item>
		<item>
		<title>Whenever: A Ruby DSL for Defining Cron Jobs</title>
		<link>http://feedproxy.google.com/~r/RubyInside/~3/Z9xXKpyJk5g/whenever-a-ruby-dsl-for-defining-cron-jobs-1835.html</link>
		<comments>http://www.rubyinside.com/whenever-a-ruby-dsl-for-defining-cron-jobs-1835.html#comments</comments>
		<pubDate>Tue, 09 Jun 2009 21:37:53 +0000</pubDate>
		<dc:creator>Peter Cooper</dc:creator>
		
		<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.rubyinside.com/whenever-a-ruby-dsl-for-defining-cron-jobs-1835.html</guid>
		<description><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/06/clock.png" width="48" height="48" alt="clock.png" style="float:left; margin-right:12px; margin-bottom:12px;" /> It has always been a trend with Rubyists to take things that have poor interfaces and give them better ones. Javan Makhmali from <a href="http://inklingmarkets.com">Inkling Markets</a> has lived up to this trend, and given us <strong><a href="http://github.com/javan/whenever/tree/master">Whenever</a></strong><strong>, a library that wraps</strong> <a href="http://en.wikipedia.org/wiki/Cron#crontab_syntax"><strong>cron's syntax</strong></a> <strong>with a Ruby API</strong> (<a href="http://en.wikipedia.org/wiki/Cron">cron</a> being a UNIX task scheduling tool).</p>
<p><em>Whenever</em> can be tightly integrated with Rails (providing application specific commands such as "rake" and "runner" from the API – see an example <a href="http://wiki.github.com/javan/whenever/instructions-and-examples">here</a>), but can also be run as a standalone program. Whenever outputs&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/06/clock.png" width="48" height="48" alt="clock.png" style="float:left; margin-right:12px; margin-bottom:12px;" /> It has always been a trend with Rubyists to take things that have poor interfaces and give them better ones. Javan Makhmali from <a href="http://inklingmarkets.com">Inkling Markets</a> has lived up to this trend, and given us <strong><a href="http://github.com/javan/whenever/tree/master">Whenever</a></strong><strong>, a library that wraps</strong> <a href="http://en.wikipedia.org/wiki/Cron#crontab_syntax"><strong>cron's syntax</strong></a> <strong>with a Ruby API</strong> (<a href="http://en.wikipedia.org/wiki/Cron">cron</a> being a UNIX task scheduling tool).</p>
<p><em>Whenever</em> can be tightly integrated with Rails (providing application specific commands such as "rake" and "runner" from the API – see an example <a href="http://wiki.github.com/javan/whenever/instructions-and-examples">here</a>), but can also be run as a standalone program. Whenever outputs valid crontab syntax, and can even write the crontab file for you!</p>
<p>Whenever helps you keep your cron jobs with your code so that there is no separation of logic. Since Whenever is a wrapper for cron, however, it's really focused on on UNIX and UNIX-like machines. While there are some cron implementations for Windows, Whenever wasn't really designed for this purpose.</p>
<p>If Whenever is of interest to you, check out the <a href="http://github.com/javan/whenever/tree/master">GitHub page</a>, the <a href="http://blog.inklingmarkets.com/2009/02/whenever-easy-way-to-do-cron-jobs-from.html">blog post</a> of Javan's workplace, and the <a href="http://railscasts.com/episodes/164-cron-in-ruby">Railscast</a> by Ryan Bates.</p>
<p><em>Note: This post was written by Ari Brown.</em></p>
<p></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RubyInside?a=Z9xXKpyJk5g:G8YeB-cCBKk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RubyInside?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=Z9xXKpyJk5g:G8YeB-cCBKk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=Z9xXKpyJk5g:G8YeB-cCBKk:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=Z9xXKpyJk5g:G8YeB-cCBKk:3H-1DwQop_U"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=Z9xXKpyJk5g:G8YeB-cCBKk:3H-1DwQop_U" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=Z9xXKpyJk5g:G8YeB-cCBKk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=Z9xXKpyJk5g:G8YeB-cCBKk:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RubyInside/~4/Z9xXKpyJk5g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rubyinside.com/whenever-a-ruby-dsl-for-defining-cron-jobs-1835.html/feed</wfw:commentRss>
		<feedburner:origLink>http://www.rubyinside.com/whenever-a-ruby-dsl-for-defining-cron-jobs-1835.html</feedburner:origLink></item>
		<item>
		<title>14 Videos from LA Ruby 2009: Some Great Weekend Watching</title>
		<link>http://feedproxy.google.com/~r/RubyInside/~3/Qg3vXHHK06c/la-ruby-2009-videos-1830.html</link>
		<comments>http://www.rubyinside.com/la-ruby-2009-videos-1830.html#comments</comments>
		<pubDate>Fri, 05 Jun 2009 18:23:34 +0000</pubDate>
		<dc:creator>Peter Cooper</dc:creator>
		
		<category><![CDATA[Cool]]></category>

		<category><![CDATA[Elsewhere]]></category>

		<guid isPermaLink="false">http://www.rubyinside.com/la-ruby-2009-videos-1830.html</guid>
		<description><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/06/larubyconf-logo.jpg" width="400" height="138" alt="larubyconf-logo.jpg.jpeg" /></p>
<p><a href="http://www.larubyconf.com/">LA Ruby</a> was a single track Ruby conference that took place in Los Angeles (<em>Orange County really, but we'll let them off..</em>) at the start of April. The crack conference recording team <a href="http://www.confreaks.com/">Confreaks</a> was in attendance and they've released <a href="http://larubyconf2009.confreaks.com/">14 awesome videos from the event</a>. Most of the videos are about 30 minutes long and you can watch them directly in your browser, download HD or SD MP4 files, or subscribe to the <a href="http://feeds2.feedburner.com/larubyconf2009ipod-Confreaks">iTunes video podcast</a> or <a href="http://subscribe.getMiro.com/?url1=http%3A%2F%2Ffeeds2.feedburner.com%2Flarubyconf2009-Confreaks">Miro feed</a>.</p>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/06/larubyconf-logo.jpg" width="400" height="138" alt="larubyconf-logo.jpg.jpeg" /></p>
<p><a href="http://www.larubyconf.com/">LA Ruby</a> was a single track Ruby conference that took place in Los Angeles (<em>Orange County really, but we'll let them off..</em>) at the start of April. The crack conference recording team <a href="http://www.confreaks.com/">Confreaks</a> was in attendance and they've released <a href="http://larubyconf2009.confreaks.com/">14 awesome videos from the event</a>. Most of the videos are about 30 minutes long and you can watch them directly in your browser, download HD or SD MP4 files, or subscribe to the <a href="http://feeds2.feedburner.com/larubyconf2009ipod-Confreaks">iTunes video podcast</a> or <a href="http://subscribe.getMiro.com/?url1=http%3A%2F%2Ffeeds2.feedburner.com%2Flarubyconf2009-Confreaks">Miro feed</a>.</p>
<p>The overall set list:</p>
<ul>
<li><a href="http://larubyconf2009.confreaks.com/04-apr-2009-10-10-resource-oriented-architecture-and-why-it-matters-and-how-waves-make-it-easier-dan-yoder.html">Resource Oriented Architecture, and Why it Matters, and How Waves Make it Easier</a> by Dan Yoder</li>
<li><a href="http://larubyconf2009.confreaks.com/04-apr-2009-10-45-journey-through-a-pointy-forest-the-state-of-xml-parsing-in-ruby-aaron-patterson.html">Journey through a pointy forest: The state of XML parsing in Ruby</a> by Aaron Patterson</li>
<li><a href="http://larubyconf2009.confreaks.com/04-apr-2009-11-20-sequel-jeremy-evans.html">Sequel</a> by Jeremy Evans</li>
<li><a href="http://larubyconf2009.confreaks.com/04-apr-2009-12-05-herding-tigers-software-development-and-the-art-of-war-danny-blitz.html">Herding Tigers - Software Development and the Art of War</a> by Danny Blitz</li>
<li><a href="http://larubyconf2009.confreaks.com/04-apr-2009-12-40-scaling-most-popular-lists-a-plugin-solution-wolfram-arnold.html">Scaling 'most popular' lists: a plugin solution</a> by Wolfram Arnold</li>
<li><a href="http://larubyconf2009.confreaks.com/04-apr-2009-14-40-sinatra-the-ultimate-rack-citizen-blake-mizerany.html">Sinatra: The ultimate rack citizen</a> by Blake Mizerany</li>
<li><a href="http://larubyconf2009.confreaks.com/04-apr-2009-15-15-poolparty-jump-in-the-pool-get-in-the-clouds-ari-lerner-michael-fairchild.html">Poolparty - jump in the pool, get in the clouds</a> by Ari Lerner and Michael Fairchild</li>
<li><a href="http://larubyconf2009.confreaks.com/04-apr-2009-15-50-managing-ruby-on-rails-for-high-performance-bill-lapcevic.html">Managing Ruby on Rails for High Performance</a> by Bill Lapcevic</li>
<li><a href="http://larubyconf2009.confreaks.com/04-apr-2009-16-25-flying-robot-unmanned-aerial-vehicles-using-ruby-and-arduino-damen-evans-ron-evans.html">Flying Robot: Unmanned Aerial Vehicles Using Ruby and Arduino</a> by Damen Evans and Ron Evans</li>
<li><a href="http://larubyconf2009.confreaks.com/04-apr-2009-17-10-johnson-aaron-patterson-john-barnette.html">Johnson</a> by Aaron Patterson and John Barnette</li>
<li><a href="http://larubyconf2009.confreaks.com/04-apr-2009-17-45-fast-and-scalable-frontback-end-services-using-ruby-rails-and-xmpp-pradeep-elankumaran.html">Fast and Scalable Front/Back-end Services using Ruby, Rails and XMPP</a> by Pradeep Elankumaran</li>
<li><a href="http://larubyconf2009.confreaks.com/04-apr-2009-18-20-mobilize-your-rails-application-brendan-lim.html">Mobilize your Rails Application</a> by Brendan Lim</li>
<li><a href="http://larubyconf2009.confreaks.com/04-apr-2009-19-05-rhodes-framework-for-mobile-client-development-adam-blum.html">Rhodes Framework for Mobile Client Development</a> by Adam Blum</li>
<li><a href="http://larubyconf2009.confreaks.com/04-apr-2009-19-40-the-building-blocks-of-modularity-jim-weirich.html">The Building Blocks of Modularity</a> by Jim Weirich</li>
</ul>
<p>The only downside to these videos compared to most Confreaks efforts is there's a lot of reverb and buzzing on the audio tracks, but the picture quality is great and ultimately the content wins out.</p>
<p></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RubyInside?a=Qg3vXHHK06c:49j-7N5NYIM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RubyInside?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=Qg3vXHHK06c:49j-7N5NYIM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=Qg3vXHHK06c:49j-7N5NYIM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=Qg3vXHHK06c:49j-7N5NYIM:3H-1DwQop_U"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=Qg3vXHHK06c:49j-7N5NYIM:3H-1DwQop_U" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=Qg3vXHHK06c:49j-7N5NYIM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=Qg3vXHHK06c:49j-7N5NYIM:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RubyInside/~4/Qg3vXHHK06c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rubyinside.com/la-ruby-2009-videos-1830.html/feed</wfw:commentRss>
		<feedburner:origLink>http://www.rubyinside.com/la-ruby-2009-videos-1830.html</feedburner:origLink></item>
	</channel>
</rss>
