<?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:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Ruby Inside</title>
	
	<link>http://www.rubyinside.com</link>
	<description />
	<lastBuildDate>Wed, 16 Dec 2009 09:58:26 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/RubyInside" /><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>How Phusion Built A More Efficient Ruby 1.8 Interpreter</title>
		<link>http://feedproxy.google.com/~r/RubyInside/~3/XIFKBmHobJ0/how-phusion-built-a-more-efficient-ruby-1-8-interpreter-2906.html</link>
		<comments>http://www.rubyinside.com/how-phusion-built-a-more-efficient-ruby-1-8-interpreter-2906.html#comments</comments>
		<pubDate>Wed, 16 Dec 2009 09:58:26 +0000</pubDate>
		<dc:creator>Peter Cooper</dc:creator>
				<category><![CDATA[Cool]]></category>

		<guid isPermaLink="false">http://www.rubyinside.com/how-phusion-built-a-more-efficient-ruby-1-8-interpreter-2906.html</guid>
		<description><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/12/ninh-bui.png" width="96" height="113" alt="ninh-bui.png" style="float:left; margin-right:12px; margin-bottom:12px; border:1px #000000 solid;" /><a href="http://www.modrails.com/">Phusion Passenger</a> and <a href="http://www.rubyenterpriseedition.com/">Ruby Enterprise Edition</a> developers Ninh "Hernandez" Bui and Hongli Lai travelled to San Francisco last week and gave a 35 minute Google Tech Talk called <a href="http://www.youtube.com/watch?v=ghLCtCwAKqQ">Building A More Efficient Ruby Interpreter</a>.</p>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/12/ninh-bui.png" width="96" height="113" alt="ninh-bui.png" style="float:left; margin-right:12px; margin-bottom:12px; border:1px #000000 solid;" /><a href="http://www.modrails.com/">Phusion Passenger</a> and <a href="http://www.rubyenterpriseedition.com/">Ruby Enterprise Edition</a> developers Ninh "Hernandez" Bui and Hongli Lai travelled to San Francisco last week and gave a 35 minute Google Tech Talk called <a href="http://www.youtube.com/watch?v=ghLCtCwAKqQ">Building A More Efficient Ruby Interpreter</a>.</p>
<p>The talk focused on how the guys (with some help from other sources, including Joe Damato and Aman Gupta) have dug into MRI Ruby 1.8's internals to get some significant memory usage and thread performance improvements for their Ruby Enterprise Edition <i>branch</i> (they're not calling it a fork) of Ruby 1.8.</p>
<p>The video is presented in HD so the slides are easy to see and the audio is solid. If taking a small trip through Ruby's garbage collection, memory allocation, and threading system sounds good to you (or you just want to know what Ruby Enterprise Edition is all about), it's a must watch. If you want some practical Ruby stuff and don't care about what the interpreter's doing, give it a miss.</p>
<p><object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/ghLCtCwAKqQ&#038;hl=en_US&#038;fs=1&#038;hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/ghLCtCwAKqQ&#038;hl=en_US&#038;fs=1&#038;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object></p>
<p style="background-color:#ffd;padding:8px;font-family:verdana;font-size:12px"><img src="http://www.rubyinside.com/wp-content/uploads/2009/07/jslab.png"; width="32" height="35" alt="jslab.png" style="float:left;margin-left:12px; margin-right:8px; border:1px #000000 solid;"/><em>[ad]</em> <a href="http://jumpstartlab.com" rel="nofollow">Jumpstart Lab</a> is offering <a href="http://jumpstartlab.com/courses/custom-training/"; rel="nofollow">private and corporate training in <strong>Ruby</strong> and <strong>Rails</strong></a>.  Not just great programmers, they're experienced educators available worldwide. CC-Licensed tutorials including <a href="http://jumpstartlab.com/resources/ruby-jumpstart/ruby/"; rel="nofollow">"Ruby in 100 Minutes"</a> available at <a href="http://jumpstartlab.com/resources/"; rel="nofollow">JumpstartLab.com</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RubyInside?a=XIFKBmHobJ0:c7AHJYVq7FM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RubyInside?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=XIFKBmHobJ0:c7AHJYVq7FM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=XIFKBmHobJ0:c7AHJYVq7FM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=XIFKBmHobJ0:c7AHJYVq7FM:3H-1DwQop_U"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=XIFKBmHobJ0:c7AHJYVq7FM:3H-1DwQop_U" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=XIFKBmHobJ0:c7AHJYVq7FM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=XIFKBmHobJ0:c7AHJYVq7FM:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RubyInside/~4/XIFKBmHobJ0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rubyinside.com/how-phusion-built-a-more-efficient-ruby-1-8-interpreter-2906.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.rubyinside.com/how-phusion-built-a-more-efficient-ruby-1-8-interpreter-2906.html</feedburner:origLink></item>
		<item>
		<title>9 New Ruby Libraries To Check Out</title>
		<link>http://feedproxy.google.com/~r/RubyInside/~3/VchaFjX3Vqk/9-new-ruby-libraries-to-check-out-2902.html</link>
		<comments>http://www.rubyinside.com/9-new-ruby-libraries-to-check-out-2902.html#comments</comments>
		<pubDate>Thu, 10 Dec 2009 15:45:00 +0000</pubDate>
		<dc:creator>Peter Cooper</dc:creator>
				<category><![CDATA[Compilation Posts]]></category>
		<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.rubyinside.com/9-new-ruby-libraries-to-check-out-2902.html</guid>
		<description><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/12/love-your-library.png" width="112" height="102" alt="love-your-library.png" style="float:left; margin-right:12px; margin-bottom:12px; border:1px #000000 solid;" />I love checking out new Ruby libraries, and recently many new ones have passed my eyes. The most prominent releases get their own post on Ruby Inside, but often there are less significant libraries that I'd struggle to write 100 words about yet still contribute to Ruby's lifeblood. This post aims to round up a selection of my recent discoveries.</p>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/12/love-your-library.png" width="112" height="102" alt="love-your-library.png" style="float:left; margin-right:12px; margin-bottom:12px; border:1px #000000 solid;" />I love checking out new Ruby libraries, and recently many new ones have passed my eyes. The most prominent releases get their own post on Ruby Inside, but often there are less significant libraries that I'd struggle to write 100 words about yet still contribute to Ruby's lifeblood. This post aims to round up a selection of my recent discoveries.</p>
<h3>RConfig - Powerful Ruby configuration management</h3>
<p><a href="http://github.com/rahmal/rconfig">RConfig</a>, by Rahmal Conda, bills itself as a "complete solution for Ruby configuration management" and it certainly has a compelling feature-set. It supports YAML, XML, and properties files (a bit like INI files) and provides a short hand global access to application configurations in both enumeration-based and dot-notation/method forms. It also supports what it calls "overlays" where different configurations can be used within a single app (for different "environments", say). RConfig can be installed as a gem as it's <a href="http://gemcutter.org/gems/rconfig">hosted on Gemcutter</a>.</p>
<h3>Ruby-GMail - A Rubyesque interface to GMail</h3>
<p><a href="http://github.com/dcparker/ruby-gmail">Ruby-GMail</a> is an awesome new library by Daniel Parker that provides significant GMail-specific (Google Mail) functionality within your apps. You can read/retrieve e-mails via IMAP, fully handle attachments, deal with labels, mark items as spam/unread/read, and send e-mails (including MIME messages with images and attachments).</p>
<h3><b>Excelsior - Super fast CSV parsing</b></h3>
<p><a href="http://www.toastyapps.com/excelsior/">Excelsior</a> (<a href="http://github.com/toastyapps/excelsior">GitHub</a>) is a Ruby gem by Matthew Mongeau that binds to some C code that parses CSV (comma delimited) data <i>very</i> quickly. Matthew benchmarked Excelsior against the built in Ruby 1.9 'csv' parser (based on 1.8's FasterCSV) and a 1 million row CSV file was parsed in 4.44 seconds with Excelsior versus 54 seconds for the built-in library. As well as being a useful library, the <a href="http://github.com/toastyapps/excelsior">source</a> is useful to check out if writing a native extension of your own is of interest.</p>
<h3>Linkedin - Ruby Bindings for the LinkedIn API</h3>
<p>If you don't know about it, <a href="http://www.linkedin.com/">LinkedIn</a> is basically a Facebook for business contacts and relationships. You get profiles, can message other people, and build up "connections" with other people (as an aside, if you want to add me - Peter Cooper - on your LinkedIn, <a href="http://uk.linkedin.com/in/petercooper">my profile is here</a>). Wynn Netherland has put together <a href="http://wynnnetherland.com/2009/11/link-linkedin-into-your-next-ruby-application/">a tidy Ruby library to use LinkedIn's new API</a> features. His <a href="http://wynnnetherland.com/2009/11/link-linkedin-into-your-next-ruby-application/">blog post</a> highlights some uses for it.</p>
<h3><b>Ohm - Object-hash mapping library for Redis</b></h3>
<p><a href="http://code.google.com/p/redis/">Redis</a> is one of a growing number of persistent key-value database systems, and <a href="http://ohm.keyvalue.org/">Ohm</a> is a library for storing objects in a Redis database. It was built by Citrusbyte - the team behind the <a href="http://monkrb.com/">Monk</a> Ruby Web development framework. As an aside, <a href="http://ruby.jobamatic.com/a/jbb/job-details/151556">Citrusbyte are looking for a software engineer</a> to work with them in Los Angeles.</p>
<h3>Alchemist - Conversion between units</h3>
<p><a href="http://github.com/toastyapps/alchemist">Alchemist</a> is another library by Matthew Mongeau. It makes it easy to convert between different units - such as from miles to meters or celsius to kelvin with code like <code>8.meters.to.miles</code> or in operations like <code>10.kilometers + 1.mile</code>. It was mentioned in an <a href="http://www.rubyinside.com/ruby-tidbits-29-2780.html">earlier</a> Ruby Inside post but fits in well here too.</p>
<h3>Nanotest - Super lightweight testing</h3>
<p><a href="http://github.com/mynyml/nanotest">Nanotest</a> is, perhaps, the most lightweight testing library available for Rubyists today. Billing itself as "extremely minimal," it provides the bare minimum needed to test code in a constructive manner. When it was mentioned on RubyFlow recently, <a href="http://rubyflow.com/items/3132">Nanotest got quite a bit of flack</a>..</p>
<h3>Savon - "Heavy metal" SOAP client library</h3>
<p>Unlucky enough to need to use <a href="http://en.wikipedia.org/wiki/SOAP">SOAP</a> (Simple Object Access Protocol)? <a href="http://github.com/rubiii/savon">Savon</a> presents a new, intriguing alternative to <a href="http://dev.ctor.org/soap4r">Soap4R</a> (which few people seem to be particularly complimentary about). If your SOAP service is SOAP 1.1 compliant, has a WSDL file, and doesn't need WSSE authentication, you can be calling methods in just two lines of Ruby. You can do a lot more with further tweaks, however (including SOAP 1.2 and WSSE authentication).</p>
<h3>Versionomy - A "version number" library</h3>
<p><a href="http://github.com/dazuma/versionomy">Versionomy</a> by Daniel Azuma is a library that provides tools to represent, manipulate, parse, and compare version numbers in the wide variety of versioning schemes in use. In this sense, think of it as a <a href="http://www.rubyinside.com/chronic-natural-date-parsing-for-ruby-229.html">Chronic</a> for version numbers.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RubyInside?a=VchaFjX3Vqk:Y1gU0v0uQ2I:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RubyInside?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=VchaFjX3Vqk:Y1gU0v0uQ2I:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=VchaFjX3Vqk:Y1gU0v0uQ2I:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=VchaFjX3Vqk:Y1gU0v0uQ2I:3H-1DwQop_U"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=VchaFjX3Vqk:Y1gU0v0uQ2I:3H-1DwQop_U" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=VchaFjX3Vqk:Y1gU0v0uQ2I:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=VchaFjX3Vqk:Y1gU0v0uQ2I:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RubyInside/~4/VchaFjX3Vqk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rubyinside.com/9-new-ruby-libraries-to-check-out-2902.html/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		<feedburner:origLink>http://www.rubyinside.com/9-new-ruby-libraries-to-check-out-2902.html</feedburner:origLink></item>
		<item>
		<title>Ruby Gets An Official Spec: Heading To Become An ISO International Standard</title>
		<link>http://feedproxy.google.com/~r/RubyInside/~3/Vj1rDMKckH8/ruby-iso-spec-draft-2900.html</link>
		<comments>http://www.rubyinside.com/ruby-iso-spec-draft-2900.html#comments</comments>
		<pubDate>Mon, 07 Dec 2009 13:55:15 +0000</pubDate>
		<dc:creator>Peter Cooper</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.rubyinside.com/ruby-iso-spec-draft-2900.html</guid>
		<description><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/12/red-specs.png" width="99" height="89" alt="red-specs.png" style="float:left; margin-right:12px; margin-bottom:12px;" />It's long been a bone of contention in the Ruby world that Ruby, as a programming language, doesn't have an <i>official</i> spec (though <a href="http://rubyspec.org/">RubySpec</a> has been a noble, community effort to build an executable specification for Ruby). Now, though, there's <a href="http://ruby-std.netlab.jp/">a <i>draft</i>, official Ruby specification available</a> for you to check out- based on Ruby 1.8.7 (which <a href="http://joefiorini.com/post/266523563/the-ruby-draft-specification">some</a> aren't happy about).</p>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/12/red-specs.png" width="99" height="89" alt="red-specs.png" style="float:left; margin-right:12px; margin-bottom:12px;" />It's long been a bone of contention in the Ruby world that Ruby, as a programming language, doesn't have an <i>official</i> spec (though <a href="http://rubyspec.org/">RubySpec</a> has been a noble, community effort to build an executable specification for Ruby). Now, though, there's <a href="http://ruby-std.netlab.jp/">a <i>draft</i>, official Ruby specification available</a> for you to check out- based on Ruby 1.8.7 (which <a href="http://joefiorini.com/post/266523563/the-ruby-draft-specification">some</a> aren't happy about).</p>
<p>From the announcement:</p>
<blockquote>
<p>For wider and more application of Ruby language, "Ruby Standardization Working Group" has been established under Information-technology Promotion Agency, Japan (IPA) to define the specification of Ruby language on Oct. 2008. Since then the WG has been drafting the specification of Ruby language.</p>
<p>As the first draft of Ruby language specification has just recently completed, we'd like to request users and developers of Ruby communities to review it.</p>
<p>By gathering review comments widely from you, we are going to improve the draft of Ruby language specification further. Then we will propose the improved draft to Japanese Industrial Standards Committee (JISC) to be JIS. After JIS for Ruby has been published, <b>we will propose it to International Standardization Organization (ISO/IEC JTC1) to be International Standard.</b></p>
</blockquote>
<p>Why now? In <a href="http://www.ruby-forum.com/topic/169195">a ruby-core thread</a> about the forthcoming standard, Shugo Maeda spills the beans:</p>
<blockquote>
<p>In addition, one of reasons why we need open standard for Ruby is that the basic guideline for the government procurement in Japan require it. In that policy, we should refer to open standards instead of specific products for fair competition.</p>
</blockquote>
<p>While the prospect of getting cushy government contracts is appealing to Japanese Rubyists, it could also start to play a role elsewhere as governments start to ride their own open standards/open source bandwagons.</p>
<p>Ultimately, this news isn't going to matter to the majority of Rubyists yet, but becoming an international standard will ultimately lend more legitimacy to a language that has been flagging in popularity lately. If you want to jump right to checking out the standard (available only as a PDF at the moment), <a href="http://ruby-std.netlab.jp/draft_spec/agreement.html">click here</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RubyInside?a=Vj1rDMKckH8:_yNVk3p6Q0Y:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RubyInside?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=Vj1rDMKckH8:_yNVk3p6Q0Y:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=Vj1rDMKckH8:_yNVk3p6Q0Y:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=Vj1rDMKckH8:_yNVk3p6Q0Y:3H-1DwQop_U"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=Vj1rDMKckH8:_yNVk3p6Q0Y:3H-1DwQop_U" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=Vj1rDMKckH8:_yNVk3p6Q0Y:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=Vj1rDMKckH8:_yNVk3p6Q0Y:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RubyInside/~4/Vj1rDMKckH8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rubyinside.com/ruby-iso-spec-draft-2900.html/feed</wfw:commentRss>
		<slash:comments>17</slash:comments>
		<feedburner:origLink>http://www.rubyinside.com/ruby-iso-spec-draft-2900.html</feedburner:origLink></item>
		<item>
		<title>Ruby 1.9.1-p376 Released: Fixes A Heap Overflow Vulnerability And More</title>
		<link>http://feedproxy.google.com/~r/RubyInside/~3/fSeIBmSSTZA/ruby-1-9-1-p376-released-fixes-a-heap-overflow-vulnerability-and-more-2898.html</link>
		<comments>http://www.rubyinside.com/ruby-1-9-1-p376-released-fixes-a-heap-overflow-vulnerability-and-more-2898.html#comments</comments>
		<pubDate>Mon, 07 Dec 2009 12:28:46 +0000</pubDate>
		<dc:creator>Peter Cooper</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.rubyinside.com/ruby-1-9-1-p376-released-fixes-a-heap-overflow-vulnerability-and-more-2898.html</guid>
		<description><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/12/head-palm-slap.png" width="120" height="120" alt="head-palm-slap.png" style="float:left; margin-right:12px; margin-bottom:12px; border:1px #000000 solid;" /> Uh oh, it's upgrade time again. Today, the official Ruby 1.9 maintainer (Yuki Sonoda, a.k.a. Yugui) announced <a href="http://www.ruby-lang.org/en/news/2009/12/07/heap-overflow-in-string/">a heap overflow vulnerability in Ruby 1.9.1</a> and, subsequently, the <a href="http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/352175">release of Ruby 1.9.1-p376</a> (patch level 376). As the current production level release of Ruby, this is a crucial upgrade - unless you're still using Ruby 1.8.x, which isn't affected at all.</p>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/12/head-palm-slap.png" width="120" height="120" alt="head-palm-slap.png" style="float:left; margin-right:12px; margin-bottom:12px; border:1px #000000 solid;" /> Uh oh, it's upgrade time again. Today, the official Ruby 1.9 maintainer (Yuki Sonoda, a.k.a. Yugui) announced <a href="http://www.ruby-lang.org/en/news/2009/12/07/heap-overflow-in-string/">a heap overflow vulnerability in Ruby 1.9.1</a> and, subsequently, the <a href="http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/352175">release of Ruby 1.9.1-p376</a> (patch level 376). As the current production level release of Ruby, this is a crucial upgrade - unless you're still using Ruby 1.8.x, which isn't affected at all.</p>
<p>As well as fixing the vulnerability, Ruby 1.9.1-p376 also includes over 100 bug fixes on the previous release, none of which are particularly interesting. You can check <a href="http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_9_1/ChangeLog">this release's change log</a> to see if anything affects you.</p>
<p>If you want to download Ruby 1.9.1-p376 now, the following URLs will work direct:</p>
<ul>
<li><a href="http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p376.tar.bz2">http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p376.tar.bz2</a></li>
<li><a href="http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p376.tar.gz">http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p376.tar.gz</a></li>
<li><a href="http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p376.zip">http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p376.zip</a></li>
</ul>
<p>Further, Danny Tatom has put together <a href="http://gist.github.com/250699">a PKGBUILD file for Ruby 1.9.1-p376</a> for <a href="http://www.archlinux.org/">Arch Linux</a> users. As an aside, Arch Linux is worth a look if you haven't heard of it yet. It's basically a lightweight, heavily customizable, developer focused Linux distribution that's less annoying than Gentoo, and a little more BSD-like than the average Linux distro.</p>
<p style="background-color:#ffd;padding:8px;font-family:verdana;font-size:12px"><a href="http://devver.net/caliper" rel="nofollow"><img src="http://www.rubyinside.com/wp-content/uploads/2009/10/caliper-logo.png" width="98" height="42" alt="caliper-logo.png" style="float:right; margin-bottom:8px; margin-left:12px;" /></a><em>[ad]</em> Find duplication, code smells, complex code and more in your Ruby code with <a href="http://devver.net/caliper" rel="nofollow">Caliper!</a> The metrics are free and setup takes just one click. <a href="http://devver.net/caliper" rel="nofollow">Get started!</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RubyInside?a=fSeIBmSSTZA:5ZcP7XyHBJM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RubyInside?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=fSeIBmSSTZA:5ZcP7XyHBJM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=fSeIBmSSTZA:5ZcP7XyHBJM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=fSeIBmSSTZA:5ZcP7XyHBJM:3H-1DwQop_U"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=fSeIBmSSTZA:5ZcP7XyHBJM:3H-1DwQop_U" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=fSeIBmSSTZA:5ZcP7XyHBJM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=fSeIBmSSTZA:5ZcP7XyHBJM:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RubyInside/~4/fSeIBmSSTZA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rubyinside.com/ruby-1-9-1-p376-released-fixes-a-heap-overflow-vulnerability-and-more-2898.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.rubyinside.com/ruby-1-9-1-p376-released-fixes-a-heap-overflow-vulnerability-and-more-2898.html</feedburner:origLink></item>
		<item>
		<title>Pancake: How To Stack and Loosely Couple Rack-Based Webapps Together</title>
		<link>http://feedproxy.google.com/~r/RubyInside/~3/FF04qrXU7yk/pancake-rack-webapps-stacking-2863.html</link>
		<comments>http://www.rubyinside.com/pancake-rack-webapps-stacking-2863.html#comments</comments>
		<pubDate>Fri, 04 Dec 2009 14:11:13 +0000</pubDate>
		<dc:creator>grantmichaels</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.rubyinside.com/?p=2863</guid>
		<description><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/12/stack-o-pancakes-150x150.png" alt="stack-o-pancakes" title="stack-o-pancakes" width="120" class="alignleft size-thumbnail wp-image-2880" style="margin-right: 12px; margin-bottom: 12px" />Much of Merb's momentum has been merged into Rails 3, but one-time Engine Yard developer Daniel Neighman has found himself moving in a new direction, inspired by what they had once achieved with <a href="http://brainspl.at/articles/2008/05/21/merb-slices">Merb Slices.</a> Since then, he's taken fully-mountable Rack applications to the extreme in creating <a href="http://github.com/hassox/pancake">Pancake,</a> a tool &#38; framework to let you stack and loosely couple Rack-based webapps.</p>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/12/stack-o-pancakes-150x150.png" alt="stack-o-pancakes" title="stack-o-pancakes" width="120" class="alignleft size-thumbnail wp-image-2880" style="margin-right: 12px; margin-bottom: 12px" />Much of Merb's momentum has been merged into Rails 3, but one-time Engine Yard developer Daniel Neighman has found himself moving in a new direction, inspired by what they had once achieved with <a href="http://brainspl.at/articles/2008/05/21/merb-slices">Merb Slices.</a> Since then, he's taken fully-mountable Rack applications to the extreme in creating <a href="http://github.com/hassox/pancake">Pancake,</a> a tool &amp; framework to let you stack and loosely couple Rack-based webapps.</p>
<p>Daniel states that web <em>"applications should be self contained rack applications, able to function as gems, able to pick up an entire application and mount it inside another, able to inherit the whole application and take care of the low level plumbing,"</em> and also <em>"let you create your own type of application when required."</em> Pancake achieves this by building upon some excellent existing projects, including <a href="http://github.com/rtomayko/tilt">Tilt</a> for templating, <a href="http://github.com/joshbuddy/usher">Usher</a> for routing, and <a href="http://github.com/intridea/hashie">Hashie</a> to extend the features of Ruby's hashes and give them additional object-like functionality.</p>
<h3>Joining Apps With Rails (And Each Other..)</h3>
<p>Yehuda Katz was first seen using Usher in his blog entry <a href="http://yehudakatz.com/2009/08/26/how-to-build-sinatra-on-rails-3/">How to Build Sinatra in Rails 3</a> and it is being used for developing Pancake guaranteeing that anything you build with it is going to be mountable in Rails 3.  Pancake stacks can be used with the current versions of Rails via <a href="http://weblog.rubyonrails.org/2008/12/17/introducing-rails-metal">Metal</a>, and <a href="http://pancakestacks.wordpress.com/2009/11/23/mounted-web-apps-sites/">examples are given on Pancake's blog</a> for doing so.</p>
<p>Sinatra apps are mountable through Pancake, as are any other fully Rack-compliant parts, and Rack middleware can be applied to either the entire Pancake stack, or to individual stacks within the container app. One can first make gems of stacks, which can then be inherited by their containing app or stack.  While this sounds like it could become messy quickly, Pancake employs namespacing to keep everything distinct.</p>
<h3>Installation and Usage</h3>
<p>To get started with Pancake, I ended up installing via:</p>
<pre><code>sudo gem install usher rake pancake haml rcov rack-test rspec racksh</code></pre>
<p>I then created a stack by issuing:</p>
<pre><code>sudo pancake-gen short ri_example    ## pancake-gen {short || micro} </code></pre>
<p>To move further, check out two projects: <a href="http://github.com/jackdempsey/pancake-blog">Pancake Blog</a> (mountable basic blogging) and <a href="http://github.com/hassox/proxy_stack">CouchDB Proxy</a> (mountable couchdb proxy)</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RubyInside?a=FF04qrXU7yk:eAkJkZA8e88:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RubyInside?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=FF04qrXU7yk:eAkJkZA8e88:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=FF04qrXU7yk:eAkJkZA8e88:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=FF04qrXU7yk:eAkJkZA8e88:3H-1DwQop_U"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=FF04qrXU7yk:eAkJkZA8e88:3H-1DwQop_U" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=FF04qrXU7yk:eAkJkZA8e88:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=FF04qrXU7yk:eAkJkZA8e88:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RubyInside/~4/FF04qrXU7yk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rubyinside.com/pancake-rack-webapps-stacking-2863.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.rubyinside.com/pancake-rack-webapps-stacking-2863.html</feedburner:origLink></item>
		<item>
		<title>Rango: A New Modular Ruby Webapp Framework</title>
		<link>http://feedproxy.google.com/~r/RubyInside/~3/nUGyzb_qj18/rango-ruby-web-app-framework-2858.html</link>
		<comments>http://www.rubyinside.com/rango-ruby-web-app-framework-2858.html#comments</comments>
		<pubDate>Wed, 02 Dec 2009 13:32:57 +0000</pubDate>
		<dc:creator>grantmichaels</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.rubyinside.com/?p=2858</guid>
		<description><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/12/Screen-shot-2009-12-02-at-13.25.25-214x300.png" alt="Screen shot 2009-12-02 at 13.25.25" title="Screen shot 2009-12-02 at 13.25.25" width="120" class="alignleft size-medium wp-image-2871" style="margin-right: 12px; margin-bottom: 12px" /><a href="http://github.com/botanicus/rango">Rango</a> is a Rack-based lightweight Web framework by Jakub Šťastný that has seemingly borrowed a little bit less from past Ruby frameworks and a bit more from Django. Based on the 1.9 version of Ruby, Rango works with <a href="http://rvm.beginrescueend.com/">rvm</a>, <a href="http://www.rubyinside.com/rip-ruby-packaging-system-1837.html">Rip</a>, Usher, Warden, and both <a href="http://litanyagainstfear.com/blog/2009/10/14/gem-bundler-is-the-future/">the new Gem bundler</a> and the venerable DataMapper by default.</p>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/12/Screen-shot-2009-12-02-at-13.25.25-214x300.png" alt="Screen shot 2009-12-02 at 13.25.25" title="Screen shot 2009-12-02 at 13.25.25" width="120" class="alignleft size-medium wp-image-2871" style="margin-right: 12px; margin-bottom: 12px" /><a href="http://github.com/botanicus/rango">Rango</a> is a Rack-based lightweight Web framework by Jakub Šťastný that has seemingly borrowed a little bit less from past Ruby frameworks and a bit more from Django. Based on the 1.9 version of Ruby, Rango works with <a href="http://rvm.beginrescueend.com/">rvm</a>, <a href="http://www.rubyinside.com/rip-ruby-packaging-system-1837.html">Rip</a>, Usher, Warden, and both <a href="http://litanyagainstfear.com/blog/2009/10/14/gem-bundler-is-the-future/">the new Gem bundler</a> and the venerable DataMapper by default.</p>
<p>Philosophically, "Rango is attempting to be as agnostic as possible, valuing simple, readable code.  It intends to encourage explicit code rather than implicit magic."  Modularity is a top priority. In many ways it feels like <a href="http://ramaze.net/">Ramaze</a>, but with a newer "era of Rack" foundation. There's a good <a href="http://wiki.github.com/botanicus/rango/why-use-rango">"Why Use Rango"</a> article available if you want to get a feel for the project and why you might consider using it. There's also a <a href="http://101ideas.cz/Rango.pdf">PDF presentation that acts as an introduction</a> to the project.</p>
<h3>Serving, Routing and Templates</h3>
<p>Rango is <a href="http://www.modrails.com/">Passenger</a> friendly, and because Rango is designed for Ruby 1.9, using Mongrel is discouraged (although possible).  The router is pluggable and Usher is the default, but you can elect <a href="http://github.com/carllerche/rack-router">rack-router</a> or <a href="http://github.com/josh/rack-mount">rack-mount</a> via the generator.  At present, Rango plays nicely with <a href="http://haml.hamptoncatlin.com/">Haml</a>, but with the upcoming 0.2 version it will adopt <a href="http://github.com/rtomayko/tilt">Tilt</a>, which adds a number of formats, including Mustache, ERB, Erubis, and Liquid.</p>
<p>Rango has generators, but beyond that it employs a sub-project named "Simple-Templater" to assist developers in customizing project-specific code generation. Rango draws additional strength from "Pupu," a framework agnostic CLI (command-line interface) system which aids in managing <code>/public</code> directory content and functionality into modules - modules which can even include packaged javascript functionality.</p>
<p>Code reloading during development is made available by Shotgun, or if you are using Phusion Passenger, you can of course use <code>tmp/always_restart.txt</code>  to restart the app at every request.  If Racksh is installed, running <code>./init.rb -i</code> will start it, and it falls back to Irb otherwise.</p>
<h3>The Future</h3>
<p>Rango has a very aggressive <a href="http://wiki.github.com/botanicus/rango/roadmap">roadmap</a> for December 2009, and also boasts an impressive feature timeline within the wiki.  Rango offers a number of innovative departures which seem noteworthy at present.  To get updates on the Rango project, follow <a href="http://twitter.com/RangoProject">@RangoProject on Twitter.</a></p>
<p style="background-color:#ffd;padding:8px;font-family:verdana;font-size:12px"><a href="http://devver.net/caliper" rel="nofollow"><img src="http://www.rubyinside.com/wp-content/uploads/2009/10/caliper-logo.png" width="98" height="42" alt="caliper-logo.png" style="float:right; margin-bottom:8px; margin-left:12px;" /></a><em>[ad]</em> Find duplication, code smells, complex code and more in your Ruby code with <a href="http://devver.net/caliper" rel="nofollow">Caliper!</a> The metrics are free and setup takes just one click. <a href="http://devver.net/caliper" rel="nofollow">Get started!</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RubyInside?a=nUGyzb_qj18:X-Ql6_C1YWw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RubyInside?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=nUGyzb_qj18:X-Ql6_C1YWw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=nUGyzb_qj18:X-Ql6_C1YWw:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=nUGyzb_qj18:X-Ql6_C1YWw:3H-1DwQop_U"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=nUGyzb_qj18:X-Ql6_C1YWw:3H-1DwQop_U" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=nUGyzb_qj18:X-Ql6_C1YWw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=nUGyzb_qj18:X-Ql6_C1YWw:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RubyInside/~4/nUGyzb_qj18" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rubyinside.com/rango-ruby-web-app-framework-2858.html/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		<feedburner:origLink>http://www.rubyinside.com/rango-ruby-web-app-framework-2858.html</feedburner:origLink></item>
		<item>
		<title>Amp: A Revolution in Source Version Control (in Ruby!)</title>
		<link>http://feedproxy.google.com/~r/RubyInside/~3/j4Ian72QWW8/amp-ruby-source-control-revolution-2857.html</link>
		<comments>http://www.rubyinside.com/amp-ruby-source-control-revolution-2857.html#comments</comments>
		<pubDate>Fri, 27 Nov 2009 14:03:32 +0000</pubDate>
		<dc:creator>Peter Cooper</dc:creator>
				<category><![CDATA[Cool]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.rubyinside.com/amp-ruby-source-control-revolution-2857.html</guid>
		<description><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/11/amp.png" width="98" height="120" alt="amp.png" style="float:left; margin-right:12px; margin-bottom:12px;" /> <a href="http://amp.carboni.ca/">Amp</a> is a new Ruby based project that aims to "change the way we approach VCS" (version control systems). Currently it's basically a port of the <a href="http://en.wikipedia.org/wiki/Mercurial">Mercurial</a> version control system - a common alternative to the Git system that's more popular in Rubyland - but it aims to abstract things to the point where it could be used in place of Git, Bazaar, SVN, CVS, Darcs, and so forth.</p>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/11/amp.png" width="98" height="120" alt="amp.png" style="float:left; margin-right:12px; margin-bottom:12px;" /> <a href="http://amp.carboni.ca/">Amp</a> is a new Ruby based project that aims to "change the way we approach VCS" (version control systems). Currently it's basically a port of the <a href="http://en.wikipedia.org/wiki/Mercurial">Mercurial</a> version control system - a common alternative to the Git system that's more popular in Rubyland - but it aims to abstract things to the point where it could be used in place of Git, Bazaar, SVN, CVS, Darcs, and so forth.</p>
<p>The creators of Amp believe that while there are lots of great repository formats out there, none of the official clients are "truly good <i>software</i>" and so they're aiming to build something that abstracts away all of the pain into a heavily customizable Ruby library and client. Even now you can <a href="http://amp.carboni.ca/about/commands.html">add your own commands to Amp or adjust those that already exist</a>, meaning you can totally customize a powerful source control tool to your own taste.</p>
<p>One of the points that's constantly stressed on <a href="http://amp.carboni.ca/">Amp's rather well designed official site</a> is that the project is actively <a href="http://amp.carboni.ca/contribute/">looking for new contributors and help</a>. They have <a href="http://github.com/michaeledgar/amp">a repo on GitHub</a> if you want to fork and issue pull requests, as well as an IRC channel on Freenode, <a href="irc://irc.freenode.net/#amp">#amp</a>.</p>
<p style="background-color:#ffd;padding:8px;font-family:verdana;font-size:12px"><a href="http://devver.net/caliper" rel="nofollow"><img src="http://www.rubyinside.com/wp-content/uploads/2009/10/caliper-logo.png" width="98" height="42" alt="caliper-logo.png" style="float:right; margin-bottom:8px; margin-left:12px;" /></a><em>[ad]</em> Find duplication, code smells, complex code and more in your Ruby code with <a href="http://devver.net/caliper" rel="nofollow">Caliper!</a> The metrics are free and setup takes just one click. <a href="http://devver.net/caliper" rel="nofollow">Get started!</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RubyInside?a=j4Ian72QWW8:YI_4EUopPDI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RubyInside?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=j4Ian72QWW8:YI_4EUopPDI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=j4Ian72QWW8:YI_4EUopPDI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=j4Ian72QWW8:YI_4EUopPDI:3H-1DwQop_U"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=j4Ian72QWW8:YI_4EUopPDI:3H-1DwQop_U" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=j4Ian72QWW8:YI_4EUopPDI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=j4Ian72QWW8:YI_4EUopPDI:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RubyInside/~4/j4Ian72QWW8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rubyinside.com/amp-ruby-source-control-revolution-2857.html/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		<feedburner:origLink>http://www.rubyinside.com/amp-ruby-source-control-revolution-2857.html</feedburner:origLink></item>
		<item>
		<title>Racksh: A Rails-Console-A-Like for Rack-Based Ruby Apps</title>
		<link>http://feedproxy.google.com/~r/RubyInside/~3/SRqWlrHaCNU/racksh-rack-console-2796.html</link>
		<comments>http://www.rubyinside.com/racksh-rack-console-2796.html#comments</comments>
		<pubDate>Mon, 23 Nov 2009 13:46:25 +0000</pubDate>
		<dc:creator>Ric Roberts</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.rubyinside.com/?p=2796</guid>
		<description><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/10/rack-logo.png" style="float:left; margin-right:12px; margin-bottom:12px;"/> Have you ever yearned for something like Rails's <code>script/console</code> or Merb's <code>merb -i</code> in your other Rack based apps? If so, then <a href="http://sickill.net/">Marcin Kulik</a>'s <a href="http://github.com/sickill/racksh">racksh</a>, inspired by Heroku's console, might be for you.</p>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/10/rack-logo.png" style="float:left; margin-right:12px; margin-bottom:12px;"/> Have you ever yearned for something like Rails's <code>script/console</code> or Merb's <code>merb -i</code> in your other Rack based apps? If so, then <a href="http://sickill.net/">Marcin Kulik</a>'s <a href="http://github.com/sickill/racksh">racksh</a>, inspired by Heroku's console, might be for you.</p>
<p><strong>Racksh is a console for Rack based ruby web applications</strong>. It allows you run a console in the context of an application environment for Rails, Merb, Sinatra, Camping, Ramaze (or even your own framework) provided there is a <em>rackup</em> file in the root directory.  </p>
<p>When you run the <code>racksh</code> command, it loads the whole application environment just like a Rack web server, but instead of running the app it starts an <em>irb</em> session where you can invoke commands.</p>
<pre>
$ racksh
Rack::Shell v0.9.4 started in development environment.
> Article.all
=> # returns all articles...
</pre>
<p>As of version 0.9.4 (released this week), racksh uses Bryan Helmkamp's <a href="http://github.com/brynary/rack-test">rack-test</a> to simulate HTTP requests to your Rack application via the $rack variable.</p>
<pre>
$ racksh
Rack::Shell v0.9.4 started in development environment.
> $rack.get "/"
=> # returns a Rack::MockResponse
</pre>
<p>Racksh also allows you to apply configuration through a <em>.rackshrc</em> file.  This can be used to set headers which will be used for requests, or to make additional setup requests (e.g. to make sure a user is logged in).</p>
<p>Install as a gem from Gemcutter, or get <a href="http://github.com/sickill/racksh">the source</a> from Github.</p>
<pre>
gem install racksh -s http://gemcutter.org
</pre>
<p>For more details, check out the project's <a href="http://github.com/sickill/racksh/blob/master/README.markdown">README</a>, and <a href="http://sickill.net/blog/2009/11/19/more-rack-shell-goodies-for-all-rack-worshippers.html">these</a> recent <a href="http://sickill.net/blog/2009/11/15/rails-like-console-for-any-rack-based-ruby-web-app.html">posts</a> on Marcin's blog.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RubyInside?a=SRqWlrHaCNU:fyy3cbQYWgo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RubyInside?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=SRqWlrHaCNU:fyy3cbQYWgo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=SRqWlrHaCNU:fyy3cbQYWgo:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=SRqWlrHaCNU:fyy3cbQYWgo:3H-1DwQop_U"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=SRqWlrHaCNU:fyy3cbQYWgo:3H-1DwQop_U" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=SRqWlrHaCNU:fyy3cbQYWgo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=SRqWlrHaCNU:fyy3cbQYWgo:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RubyInside/~4/SRqWlrHaCNU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rubyinside.com/racksh-rack-console-2796.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.rubyinside.com/racksh-rack-console-2796.html</feedburner:origLink></item>
		<item>
		<title>MagLev Alpha Released: A New, Scalable Ruby Implementation</title>
		<link>http://feedproxy.google.com/~r/RubyInside/~3/LgSZgrVsaaU/maglev-alpha-released-2807.html</link>
		<comments>http://www.rubyinside.com/maglev-alpha-released-2807.html#comments</comments>
		<pubDate>Sat, 21 Nov 2009 02:20:32 +0000</pubDate>
		<dc:creator>Peter Cooper</dc:creator>
				<category><![CDATA[Cool]]></category>
		<category><![CDATA[Linux Specific]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[OS X Specific]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.rubyinside.com/maglev-alpha-released-2807.html</guid>
		<description><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/11/maglev.png" width="102" height="101" alt="maglev.png" style="float:left; margin-right:12px; margin-bottom:12px;" /><a href="http://ruby.gemstone.com/">MagLev</a> is a new(ish) Ruby implementation built by <a href="http://www.gemstone.com/">Gemstone Systems</a> that focuses on providing an integrated object persistence layer and a distributed shared cache - a truly scalable Ruby implementation. Maglev has, however, had an air of vaporware about it, having been hyped up in early 2008 and only available to a small group of alpha testers till now. That changes today with <a href="http://groups.google.com/group/maglev-discussion/browse_thread/thread/1102993e9e21492a">the first public, alpha release!</a></p>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/11/maglev.png" width="102" height="101" alt="maglev.png" style="float:left; margin-right:12px; margin-bottom:12px;" /><a href="http://ruby.gemstone.com/">MagLev</a> is a new(ish) Ruby implementation built by <a href="http://www.gemstone.com/">Gemstone Systems</a> that focuses on providing an integrated object persistence layer and a distributed shared cache - a truly scalable Ruby implementation. Maglev has, however, had an air of vaporware about it, having been hyped up in early 2008 and only available to a small group of alpha testers till now. That changes today with <a href="http://groups.google.com/group/maglev-discussion/browse_thread/thread/1102993e9e21492a">the first public, alpha release!</a></p>
<p>Back in early 2008, MagLev program manager Bob Walker did <a href="http://www.infoq.com/news/2008/04/maglev-gemstone-builds-ruby">an interview with InfoQ about the project</a> where he said that 8 people were working on MagLev, so this is a pretty big deal for them. Developer Avi Bryant then did <a href="http://www.vimeo.com/1147409">a short presentation at RailsConf 2008</a> where he gave a comprehensive overview of what MagLev is along with some live demonstrations.</p>
<h3>Why Should You Care?</h3>
<p>In short, MagLev is cool for a few reasons. Two key ones being that 1) MagLev runs on the SmallTalk virtual machine which, it is claimed, should yield significant performance increases for a language like Ruby, and 2) a MagLev environment allows multiple Ruby processes over multiple machines (if you wish) to use the same objects simultaneously for easy scalability. <a href="http://www.vimeo.com/1147409">Avi's video</a> is great if you want to get a grasp on it:</p>
<p><object width="400" height="302"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=1147409&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=1147409&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="302"></embed></object>
<p><a href="http://vimeo.com/1147409">MagLev presentation at RailsConf 2008</a> from <a href="http://vimeo.com/montywilliams">Monty Williams</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>Developer Monty Williams is keen to stress that this is an alpha, not a beta, so you can't expect it to run Rails or any gems that require C extensions. That said, it does run Sinatra, Rack, and RubyGems, plus a significant effort has been put into passing the <a href="http://rubyspec.org/">RubySpec</a>, so it's not as if it's a crippled implementation as such.</p>
<p>If you want to learn more, consider following the MagLev team on Twitter <a href="http://twitter.com/maglev">@MagLev</a> and checking out <a href="http://groups.google.com/group/maglev-discussion">the official mailing list "maglev-discussion."</a></p>
<h3>Installation (i.e. getting to an irb prompt that works)</h3>
<p>Bear in mind that MagLev will only work on 64 bit versions of OS X, Linux, and Solaris, so if you're in the 32 bit club, there's no point in going any further (yet).</p>
<p>If you download the <a href="http://maglev-discussion.googlegroups.com/web/MagLev-installer.zip">MagLev Installer script</a> (small ZIP file), you can run the <code>installMaglev.sh</code> script and install the latest version like so:</p>
<pre>./installMaglev.sh 22578</pre>
<p><em>The announcement post doesn't make it clear you need to provide a version number of what version number to provide. 22578 was mentioned earlier in the day though, and it seems to work.</em></p>
<p>Once installed, MagLev provides some info about environment variables you need to add to your .bashrc or .bash_profile. Follow these, then open a new terminal and here's how you get to an irb session:</p>
<pre>$ <strong>maglev start</strong>
startnetldi[Info]: Starting GemStone network server "gs64ldi".
startnetldi[Error]:  could not start server
startstone[Info]: Starting Stone repository monitor "maglev".
startstone[Info]: GemStone server 'maglev' has been started.

$ <strong>maglev-irb</strong>
irb(main):001:0> 20 + 20
=> 40
irb(main):002:0> exit
error , SystemExit Error,  nil,
          during /Users/peter/Downloads/MagLev-installer/MagLev-22578.MacOSX/bin/maglev-irb
SystemExit Error,  nil</pre>
<h3>Alternatively: GitHub installation</h3>
<p>MagLev <a href="http://github.com/MagLev/maglev">is also available from GitHub</a> to clone. To install MagLev from GitHub:</p>
<pre>git clone git://github.com/MagLev/maglev.git
cd maglev
./install.sh</pre>
<p>.. then follow the note about adding the path to your .bashrc or .bash_profile and running Rake in a new prompt (though still under the maglev project directory).</p>
<p>If you get any further with doing something interesting like, say, getting an IRB prompt up successfully on this, do post a comment ;-)</p>
<p style="background-color:#ffd;padding:8px;font-family:verdana;font-size:12px"><a href="http://devver.net/caliper" rel="nofollow"><img src="http://www.rubyinside.com/wp-content/uploads/2009/10/caliper-logo.png" width="98" height="42" alt="caliper-logo.png" style="float:right; margin-bottom:8px; margin-left:12px;" /></a><em>[ad]</em> Find duplication, code smells, complex code and more in your Ruby code with <a href="http://devver.net/caliper" rel="nofollow">Caliper!</a> The metrics are free and setup takes just one click. <a href="http://devver.net/caliper" rel="nofollow">Get started!</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RubyInside?a=LgSZgrVsaaU:PLJLBrhEOlc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RubyInside?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=LgSZgrVsaaU:PLJLBrhEOlc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=LgSZgrVsaaU:PLJLBrhEOlc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=LgSZgrVsaaU:PLJLBrhEOlc:3H-1DwQop_U"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=LgSZgrVsaaU:PLJLBrhEOlc:3H-1DwQop_U" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=LgSZgrVsaaU:PLJLBrhEOlc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=LgSZgrVsaaU:PLJLBrhEOlc:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RubyInside/~4/LgSZgrVsaaU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rubyinside.com/maglev-alpha-released-2807.html/feed</wfw:commentRss>
		<slash:comments>20</slash:comments>
		<feedburner:origLink>http://www.rubyinside.com/maglev-alpha-released-2807.html</feedburner:origLink></item>
		<item>
		<title>5 Top Ruby and Rails Jobs for November 2009</title>
		<link>http://feedproxy.google.com/~r/RubyInside/~3/UU3FYLbnwP8/5-top-ruby-and-rails-jobs-for-november-2009-2805.html</link>
		<comments>http://www.rubyinside.com/5-top-ruby-and-rails-jobs-for-november-2009-2805.html#comments</comments>
		<pubDate>Fri, 20 Nov 2009 06:49:20 +0000</pubDate>
		<dc:creator>Peter Cooper</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.rubyinside.com/5-top-ruby-and-rails-jobs-for-november-2009-2805.html</guid>
		<description><![CDATA[<p>Looking for a Ruby or Rails job in this economy? They're still there! They seem to be getting posted daily on <a href="http://jobs.rubynow.com/">jobs.rubynow.com</a> but we've got 5 of our own that have come in via <a href="http://ruby.jobamatic.com/a/jbb/find-jobs">the Ruby Inside jobs board</a>.</p>]]></description>
			<content:encoded><![CDATA[<p>Looking for a Ruby or Rails job in this economy? They're still there! They seem to be getting posted daily on <a href="http://jobs.rubynow.com/">jobs.rubynow.com</a> but we've got 5 of our own that have come in via <a href="http://ruby.jobamatic.com/a/jbb/find-jobs">the Ruby Inside jobs board</a>.</p>
<p>If you want to post a job to our job board <a href="http://www.rubyinside.com/post-a-job">check out our new Post A Job page</a>. It explains it all. It's $249 for 60 days of exposure with a link on all Ruby Inside and Rails Inside pages, exposure through Simply Hired, and inclusion on a post like this that goes out to all 22,000 subscribers. Most ads get 1-2,000 direct views during their run (and linked from about 240,000 pageviews on our sites in all). And if you post before the end of 2009.. <b>we have a discount code <i>2009deal</i> that gives you $50 off!</b></p>
<p>On to the jobs:</p>
<div style="margin-left: 1em">
<p><b><span style="font-weight: normal;"><img src="http://www.rubyinside.com/wp-content/uploads/2009/11/backchannelmedia.png" width="137" height="44" alt="backchannelmedia.png" style="float:left; margin-right:12px; margin-bottom:12px;" /></span><a href="http://ruby.jobamatic.com/a/jbb/job-details/134531">Ruby Developer @ Backchannelmedia</a></b> <b>(Boston, MA):</b> <a href="http://www.backchannelmedia.com/">Backchannelmedia's</a> mission is to "turn couch potatoes into consumer powerhouses." It develops technology that goes into set-top boxes. As a Ruby developer for them, you'd be working on backend code and applications. You'll need experience with Apache, Git, Rails and MySQL, and need a minimum of 3 years' experience as a software engineer. <a href="http://ruby.jobamatic.com/a/jbb/job-details/134531">Click here to learn more about the job.</a> <i>(Note: This listing expires on November 25, so hurry..)</i></p>
<p><b><span style="font-weight: normal;"><img src="http://www.rubyinside.com/wp-content/uploads/2009/11/shopittome.png" width="59" height="55" alt="shopittome.png" style="float:left; margin-right:12px; margin-bottom:12px;" /></span><a href="http://ruby.jobamatic.com/a/jbb/job-details/139059">Stellar Ruby on Rails Engineer @ Shop It To Me, Inc.</a></b> <b>(San Francisco, CA):</b> <a href="http://www.shopittome.com/">Shop It To Me, Inc</a> is a small, super-profitable startup in the online shopping space located near South Park in San Francisco. They're looking for a proactive Rails developer who's ready to get involved in "everything" from brainstorming and requirement setting through to design, coding, scaling, deployment, etc. Uniquely, they've put together <a href="http://bit.ly/ShopItToMeRubyInside">a Ruby version of their job posting too</a>, which is well worth looking at! <a href="http://ruby.jobamatic.com/a/jbb/job-details/139059">Click here to learn more about the job.</a>&nbsp;&nbsp;</p>
<p><b><span style="font-weight: normal;"><img src="http://www.rubyinside.com/wp-content/uploads/2009/11/citrusbyte.png" width="141" height="51" alt="citrusbyte.png" style="float:left; margin-right:12px; margin-bottom:12px;" /></span></b><b><a href="http://ruby.jobamatic.com/a/jbb/job-details/151556">Senior Software Engineer @ Citrusbyte</a> (Los Angeles, CA):</b> <a href="http://www.citrusbyte.com/">Citrusbyte</a> is a Los Angeles based Web app development shop that primarily uses Ruby to get the job done. They're looking for software engineers to join their team - Ruby experience is not mandatory as long as you're a hotshot in another relevant Web technology (such as Django, Catalyst, Ocsigen, etc). I've visited the Citrusbyte guys in LA before and they have a great work environment and ethos. Uniquely for a job on our board so far, Citrusbyte has given a little code test to pass while applying for the job :-) <a href="http://ruby.jobamatic.com/a/jbb/job-details/151556">Click here to learn more about the job.</a>&nbsp;&nbsp;</p>
<p><b><span style="font-weight: normal;"><img src="http://www.rubyinside.com/wp-content/uploads/2009/11/patientslikeme.png" width="141" height="41" alt="patientslikeme.png" style="float:left; margin-right:12px; margin-bottom:12px;" /></span><a href="http://ruby.jobamatic.com/a/jbb/job-details/149851">Ruby on Rails Developer @ PatientsLikeMe</a></b> <b>(Cambridge, MA):</b> <a href="http://www.patientslikeme.com/">PatientsLikeMe</a> is an exciting company in the social health space that is building a data-oriented patient community. They're looking for an experienced Ruby on Rails Developer who wants to work on a product that makes a difference in patients' lives. You'll need at least a year's experience with Rails, 2 years of experience with JavaScript, good test writing skills, and proficiency with CSS, HTML and version control. <a href="http://ruby.jobamatic.com/a/jbb/job-details/149851">Click here to learn more about the job.</a>&nbsp;&nbsp;</p>
<p><b><span style="font-weight: normal;"><img src="http://www.rubyinside.com/wp-content/uploads/2009/11/angrylapdog.png" width="142" height="51" alt="angrylapdog.png" style="float:left; margin-right:12px; margin-bottom:12px;" /></span><a href="http://ruby.jobamatic.com/a/jbb/job-details/149511">Ruby and Ruby On Rails Developer @ Angry Lapdog Productions</a></b> <b>(Seattle, WA):</b> <a href="http://www.angrylapdog.com/sites">Angry Lapdog Productions</a> is an early-stage startup developing innovative ways of finding and interacting with features on many of today's most popular Web sites. They're looking for an experienced Rails developer who also has experience developing standalone Ruby applications with unit and integration testing. <a href="http://ruby.jobamatic.com/a/jbb/job-details/149511">Click here to learn more about the job.</a></p>
</div>
<p><i>P.S. Just as a test to see if anyone gets as far as down here, we have another discount code.. "greatdeal" (without the quotes) that gives 50% off when you</i> <a href="http://www.rubyinside.com/post-a-job"><i>post a job</i></a><i>.. it also expires at the end of the year :-)</i></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RubyInside?a=UU3FYLbnwP8:GNbnNb5Ds94:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RubyInside?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=UU3FYLbnwP8:GNbnNb5Ds94:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=UU3FYLbnwP8:GNbnNb5Ds94:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=UU3FYLbnwP8:GNbnNb5Ds94:3H-1DwQop_U"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=UU3FYLbnwP8:GNbnNb5Ds94:3H-1DwQop_U" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=UU3FYLbnwP8:GNbnNb5Ds94:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=UU3FYLbnwP8:GNbnNb5Ds94:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RubyInside/~4/UU3FYLbnwP8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rubyinside.com/5-top-ruby-and-rails-jobs-for-november-2009-2805.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.rubyinside.com/5-top-ruby-and-rails-jobs-for-november-2009-2805.html</feedburner:origLink></item>
	</channel>
</rss>
