<?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>Sat, 21 Nov 2009 04:02:55 +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" 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>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>5</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>
		<item>
		<title>MacRuby 0.5 Beta 2: AOT Compilation, Rack &amp; Sinatra Support, And More</title>
		<link>http://feedproxy.google.com/~r/RubyInside/~3/A5C9eplsvCM/macruby-0-5-beta-2-2794.html</link>
		<comments>http://www.rubyinside.com/macruby-0-5-beta-2-2794.html#comments</comments>
		<pubDate>Wed, 18 Nov 2009 15:00:56 +0000</pubDate>
		<dc:creator>Peter Cooper</dc:creator>
				<category><![CDATA[Cool]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[OS X Specific]]></category>

		<guid isPermaLink="false">http://www.rubyinside.com/macruby-0-5-beta-2-2794.html</guid>
		<description><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/11/macruby05.png" width="62" height="56" alt="macruby05.png" style="float:left; margin-right:12px; margin-bottom:12px;" /> <a href="http://www.macruby.org/">MacRuby</a>, a port of Ruby 1.9 to the Mac OS X Objective C common runtime, is today one step closer to a production-ready Ruby implementation with <a href="http://www.macruby.org/blog/2009/11/17/macruby05b2.html">the release of beta 2 of MacRuby 0.5</a>. MacRuby 0.5 has been highly anticipated since it was first mentioned back in March because it promises significant performance improvements, a new LLVM based virtual machine (replacing YARV), and significant compatibility improvements and bug fixes. Even still at this beta stage, 0.5 delivers on these promises.</p>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/11/macruby05.png" width="62" height="56" alt="macruby05.png" style="float:left; margin-right:12px; margin-bottom:12px;" /> <a href="http://www.macruby.org/">MacRuby</a>, a port of Ruby 1.9 to the Mac OS X Objective C common runtime, is today one step closer to a production-ready Ruby implementation with <a href="http://www.macruby.org/blog/2009/11/17/macruby05b2.html">the release of beta 2 of MacRuby 0.5</a>. MacRuby 0.5 has been highly anticipated since it was first mentioned back in March because it promises significant performance improvements, a new LLVM based virtual machine (replacing YARV), and significant compatibility improvements and bug fixes. Even still at this beta stage, 0.5 delivers on these promises.</p>
<p>New in MacRuby 0.5 so far:</p>
<ul>
<li>rdoc and ri now work - thanks to compatibility bug fixes</li>
<li>Rack and Sinatra support</li>
<li>Experimental support for BigDecimal, OpenSSL, and JSON extensions</li>
<li>Compiler with support for building fat binaries (i.e. universal binaries)</li>
<li>An all new <a href="http://llvm.org/">LLVM</a> based VM</li>
<li>A gazillion bug fixes and performance improvements - as always!</li>
</ul>
<p>At this stage, the MacRuby team want people to download MacRuby, give it a test, and report any bugs or issues encountered. If you're on OS X, don't be worried about installing it. It comes in a simple installer package and presents itself through the <code>macruby</code> and <code>macirb</code> binaries, so it doesn't clash with any existing Ruby implementations installed on your machine.</p>
<p>For me, perhaps the most exciting developments are the <code>macrubyc</code> compiler and <code>macruby_deploy</code> utility. In a basic benchmark I performed, compiling a Ruby script that does a <a href="http://www.haskell.org/haskellwiki/Shootout/Fannkuch">Fannkuch</a> benchmark yielded a 20% speed increase with MacRuby 0.5b2. Impressive, as the baseline interpreted version was on par with MRI 1.9.1 already! The <code>macruby_deploy</code> utility is a new addition to help you deploy your MacRuby applications as regular OS X apps. It puts the MacRuby framework along with your script's executable into an application bundle ready to be deployed to any other Mac - even those without MacRuby.</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=A5C9eplsvCM:vSLjJ4OYN-Y:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RubyInside?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=A5C9eplsvCM:vSLjJ4OYN-Y:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=A5C9eplsvCM:vSLjJ4OYN-Y:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=A5C9eplsvCM:vSLjJ4OYN-Y:3H-1DwQop_U"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=A5C9eplsvCM:vSLjJ4OYN-Y:3H-1DwQop_U" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=A5C9eplsvCM:vSLjJ4OYN-Y:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=A5C9eplsvCM:vSLjJ4OYN-Y:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RubyInside/~4/A5C9eplsvCM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rubyinside.com/macruby-0-5-beta-2-2794.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.rubyinside.com/macruby-0-5-beta-2-2794.html</feedburner:origLink></item>
		<item>
		<title>Torquebox: An All-In-One Java/JBoss Powered Ruby Webapp Platform</title>
		<link>http://feedproxy.google.com/~r/RubyInside/~3/Gn_aeOR0EfM/torquebox-an-all-in-one-javajboss-powered-ruby-webapp-platform-2783.html</link>
		<comments>http://www.rubyinside.com/torquebox-an-all-in-one-javajboss-powered-ruby-webapp-platform-2783.html#comments</comments>
		<pubDate>Wed, 11 Nov 2009 23:43:09 +0000</pubDate>
		<dc:creator>grantmichaels</dc:creator>
				<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.rubyinside.com/?p=2783</guid>
		<description><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/11/torquebox2-150x150.png" alt="torquebox2" title="torquebox2" width="120" height="120" class="alignleft size-thumbnail wp-image-2791" style="margin-right: 12px; margin-bottom: 12px; float: left" />In the past two years we've seen a number of changes in the world of Ruby webapp deployment, but have you heard of <a href="http://torquebox.org/">Torquebox</a>? Built upon the Red Hat Inc. JBoss middleware, Torquebox is an enterprise-grade application server that provides scale-oriented services to your Ruby webapps, including turn-key clustering. With its latest release, Torquebox supports all Rack-based Ruby frameworks.</p>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/11/torquebox2-150x150.png" alt="torquebox2" title="torquebox2" width="120" height="120" class="alignleft size-thumbnail wp-image-2791" style="margin-right: 12px; margin-bottom: 12px; float: left" />In the past two years we've seen a number of changes in the world of Ruby webapp deployment, but have you heard of <a href="http://torquebox.org/">Torquebox</a>? Built upon the Red Hat Inc. JBoss middleware, Torquebox is an enterprise-grade application server that provides scale-oriented services to your Ruby webapps, including turn-key clustering. With its latest release, Torquebox supports all Rack-based Ruby frameworks.</p>
<p>Torquebox comes with job scheduling and asynchronous task scheduling <em>out of the box</em> (no extra installs necessary), and while I've grown fond of <a href="http://www.rabbitmq.com/">RabbitMQ,</a> the ease of using the built-in <a href="http://java.sun.com/products/jms/">JMS</a> (Java Message Service) messaging is appealing, particularly if you're likely to deploy within a Java dominant environment. <strong>If you are having trouble convincing management to let you use Ruby, Torquebox is the most enterprise-oriented platform I've seen to date.</strong> Not just that, it's open-source and licensed under the LGPLv3. Their community site boasts that <a href="http://www.jboss.org/">JBoss</a> (upon which Torquebox is built) is <em>"the world's number one Java application server, and it was created by the community."</em></p>
<p>Torquebox 1.0.0.Beta18 was released within a day's time from the latest JRuby 1.4 release and you can download Torquebox from its download page, or build it yourself from <a href="http://github.com/torquebox/torquebox/">source easily obtained from GitHub</a>. If you are using Mac OS X, the following code sample will get you up and running with a simple cut and paste:</p>
<pre>
wget http://repository.torquebox.org/maven2/releases/org/torquebox/torquebox-bin/1.0.0.Beta18/torquebox-bin-1.0.0.Beta18.zip
unzip torquebox-bin-1.0.0.Beta18.zip
mv torquebox-1.0.0.Beta18-bin torquebox
export TORQUEBOX_HOME=~/torquebox
export JBOSS_HOME=$TORQUEBOX_HOME/jboss
export JRUBY_HOME=$TORQUEBOX_HOME/jruby
PATH=$JRUBY_HOME/bin:$PATH
sudo gem install jruby-openssl
sudo gem install activerecord-jdbcsqlite3-adapter
cd ~/torquebox/share/rails
rails -m template.rb ~/torquebox_rails_app
cd ~/torquebox_rails_app
rake rails:freeze:gems
emacs config/database.yml

# (now prefix sqlite3 with jdbc to become "jdbcsqlite3")

jruby -S rake gems:install
jruby -S rake db:migrate
jruby -S rake torquebox:rails:deploy
jruby -S rake torquebox:server:run</pre>
<p>While waiting for JBoss to unfurl, you can close your eyes and do a mental walk-through of installing Erlang, a RabbitMQ daemon, cron, HAProxy, etc. – because you won't have to do that with Torquebox – and when you open your eyes approximately two minutes later, you should be able to see the default Rails page at <code>http://localhost:8080</code>. While everything appears the same as if you were running on it on a Mongrel, you're really experiencing Rails as it's presented from within a JBoss AS appserver, more about that in a minute.</p>
<p>Handily, Torquebox contains tried-and-true JDBC drivers for a number of databases, including Derby, H2, HSQLDB, MySQL, PostgreSQL, and of course, SQLite3. Additionally, Torquebox is Capistrano friendly – so you probably won't need to learn any new tricks to deploy – and it also has built-in support for cryptographic key-storage.</p>
<p>With an application appropriately bundled into a WAR file, you can utilize Torquebox's farming to "deploy your app to one node of the cluster, and to have that node farm it out to all of its peers." Torquebox uses <code>httpd+mod_cluster</code> out in front, so it's "intelligently aware" of your JBoss cluster, and thus, if you have a two-node cluster running, and you start two more JBoss instances on the same subdomain, they'll auto-join the cluster and then the existing nodes will auto-farm the app to them. You're app now has twice the resources and didn't need to be restarted, which in and of itself, is pretty huge.</p>
<p>So, where does Torquebox fit in? One can make the argument that it fits "everywhere." The JVM comes pre-installed on Macs, is easy enough to add to Linux or a Windows desktop, and of course deploys to a number of hosts. Scaling the JVM isn't new, and finding the people to do so is probably easier than finding dedicated Ruby programmers. I would be remiss not to point out that JBoss is hungry for RAM, and I realized quickly that Torquebox wanted more cowbell than my <em>Linode 720</em> could afford. Engine Yard Cloud greatly simplifies deployment to EC2 instances (via Chef), and the smallest instance provides a whopping 1.7GB RAM, so scaling JRuby through the company that houses the JRuby core commiters just makes sense to me. If, however, you feel better qualified to deploy Torquebox yourself, you might look at JBoss Cloud.</p>
<p>I recommend taking 10 minutes to watch the pair (<a href="http://torquebox.org/news/2009/05/screencast-getting-started-with-torquebox">1</a>, <a href="http://torquebox.org/news/2009/05/screencast-scheduled-jobs-with-torquebox">2</a>) of screencasts by Bob McWhirter, which demonstrate all of what I've highlighted here in well under a half an hour.</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=Gn_aeOR0EfM:FfGsexDXpeM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RubyInside?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=Gn_aeOR0EfM:FfGsexDXpeM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=Gn_aeOR0EfM:FfGsexDXpeM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=Gn_aeOR0EfM:FfGsexDXpeM:3H-1DwQop_U"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=Gn_aeOR0EfM:FfGsexDXpeM:3H-1DwQop_U" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=Gn_aeOR0EfM:FfGsexDXpeM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=Gn_aeOR0EfM:FfGsexDXpeM:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RubyInside/~4/Gn_aeOR0EfM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rubyinside.com/torquebox-an-all-in-one-javajboss-powered-ruby-webapp-platform-2783.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.rubyinside.com/torquebox-an-all-in-one-javajboss-powered-ruby-webapp-platform-2783.html</feedburner:origLink></item>
		<item>
		<title>Mail: An All New Ruby E-mail Library</title>
		<link>http://feedproxy.google.com/~r/RubyInside/~3/sEoQMs5rIRY/ruby-email-library-2782.html</link>
		<comments>http://www.rubyinside.com/ruby-email-library-2782.html#comments</comments>
		<pubDate>Wed, 11 Nov 2009 15:02:04 +0000</pubDate>
		<dc:creator>Peter Cooper</dc:creator>
				<category><![CDATA[Cool]]></category>

		<guid isPermaLink="false">http://www.rubyinside.com/ruby-email-library-2782.html</guid>
		<description><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/11/emailIcon.png" width="84" height="88" alt="emailIcon.png" style="float:left; margin-right:12px; margin-bottom:12px;" />To date, the main ways to send e-mails from Ruby have been <a href="http://ruby-doc.org/stdlib/libdoc/net/smtp/rdoc/index.html">Net::SMTP</a>, <a href="http://tmail.rubyforge.org/">TMail</a>, and Rails' <a href="http://api.rubyonrails.org/classes/ActionMailer/Base.html">ActionMailer</a> (which uses TMail). Now, however, there's a fourth option, the simply named "<a href="http://github.com/mikel/mail">mail</a>" by Mikel Lindsaar.</p>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/11/emailIcon.png" width="84" height="88" alt="emailIcon.png" style="float:left; margin-right:12px; margin-bottom:12px;" />To date, the main ways to send e-mails from Ruby have been <a href="http://ruby-doc.org/stdlib/libdoc/net/smtp/rdoc/index.html">Net::SMTP</a>, <a href="http://tmail.rubyforge.org/">TMail</a>, and Rails' <a href="http://api.rubyonrails.org/classes/ActionMailer/Base.html">ActionMailer</a> (which uses TMail). Now, however, there's a fourth option, the simply named "<a href="http://github.com/mikel/mail">mail</a>" by Mikel Lindsaar.</p>
<p><a href="http://github.com/mikel/mail">Mail</a> is a new pure Ruby library designed to handle the generation, parsing, and sending of e-mail in a "Rubyesque" manner. Both the sending and receiving e-mails can be handled through the library and, where necessary, Mail proxies methods from libraries like Net::SMTP and Net::POP3. Ruby 1.9 support has been built in from day one so dealing with different text encodings in your e-mails is easier than ever (Mikel claims this is less than straightforward with TMail). Mikel also points out that Mail has 100% spec coverage.</p>
<p>There are lots of code examples on the Mail page but to give you an idea of how it works, here's a code example that sends an e-mail with an attachment:</p>
<pre><span class="constant">Mail</span><span class="punct">.</span><span class="ident">defaults</span> <span class="keyword">do</span>
  <span class="ident">smtp</span> <span class="punct">'</span><span class="string">127.0.0.1</span><span class="punct">'</span> <span class="comment"># Port 25 defult</span>
<span class="keyword">end</span>

<span class="ident">mail</span> <span class="punct">=</span> <span class="constant">Mail</span><span class="punct">.</span><span class="ident">new</span> <span class="keyword">do</span>
      <span class="ident">from</span> <span class="punct">'</span><span class="string">me@test.lindsaar.net</span><span class="punct">'</span>
        <span class="ident">to</span> <span class="punct">'</span><span class="string">you@test.lindsaar.net</span><span class="punct">'</span>
   <span class="ident">subject</span> <span class="punct">'</span><span class="string">Here is the image you wanted</span><span class="punct">'</span>
      <span class="ident">body</span> <span class="constant">File</span><span class="punct">.</span><span class="ident">read</span><span class="punct">('</span><span class="string">body.txt</span><span class="punct">')</span>
  <span class="ident">add_file</span> <span class="punct">{</span><span class="symbol">:filename</span> <span class="punct">=></span> <span class="punct">'</span><span class="string">somefile.png</span><span class="punct">',</span> <span class="symbol">:data</span> <span class="punct">=></span> <span class="constant">File</span><span class="punct">.</span><span class="ident">read</span><span class="punct">('</span><span class="string">/somefile.png</span><span class="punct">')}</span>
<span class="keyword">end</span>

<span class="ident">mail</span><span class="punct">.</span><span class="ident">deliver!</span></pre>
<p>As well as the main GitHub page for the Mail project, there's also <a href="http://groups.google.com/group/mail-ruby">a mail-ruby Google Group</a> where questions can be asked, etc.</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=sEoQMs5rIRY:Z-c-BZkDB34:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RubyInside?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=sEoQMs5rIRY:Z-c-BZkDB34:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=sEoQMs5rIRY:Z-c-BZkDB34:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=sEoQMs5rIRY:Z-c-BZkDB34:3H-1DwQop_U"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=sEoQMs5rIRY:Z-c-BZkDB34:3H-1DwQop_U" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=sEoQMs5rIRY:Z-c-BZkDB34:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=sEoQMs5rIRY:Z-c-BZkDB34:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RubyInside/~4/sEoQMs5rIRY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rubyinside.com/ruby-email-library-2782.html/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<feedburner:origLink>http://www.rubyinside.com/ruby-email-library-2782.html</feedburner:origLink></item>
		<item>
		<title>Interesting Ruby Tidbits That Don’t Need Separate Posts #29</title>
		<link>http://feedproxy.google.com/~r/RubyInside/~3/WunoI3kx2B8/ruby-tidbits-29-2780.html</link>
		<comments>http://www.rubyinside.com/ruby-tidbits-29-2780.html#comments</comments>
		<pubDate>Tue, 10 Nov 2009 03:09:03 +0000</pubDate>
		<dc:creator>Peter Cooper</dc:creator>
				<category><![CDATA[Compilation Posts]]></category>
		<category><![CDATA[Elsewhere]]></category>
		<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.rubyinside.com/ruby-tidbits-29-2780.html</guid>
		<description><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/11/rubies2-150x150.png" alt="rubies2" title="rubies2" width="120" height="120" class="alignleft size-thumbnail wp-image-2773" style="float: left; margin-right: 12px; margin-bottom: 12px;" />Welcome to the latest installment in the series of compilation posts summarizing some of my latest findings in the world of all things Ruby. Let's tackle those links..</p>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/11/rubies2-150x150.png" alt="rubies2" title="rubies2" width="120" height="120" class="alignleft size-thumbnail wp-image-2773" style="float: left; margin-right: 12px; margin-bottom: 12px;" />Welcome to the latest installment in the series of compilation posts summarizing some of my latest findings in the world of all things Ruby. Let's tackle those links..</p>
<h3>Alchemist: Easy Unit Conversion in Ruby</h3>
<p><a href="http://github.com/toastyapps/alchemist">Alchemist</a> is a new Ruby library that aims to take the pain out of performing translation with day to day units, such as miles, kilograms, kelvin, meters, and <a href="http://en.wikipedia.org/wiki/Becquerel">becquerels.</a> There are a few ways you can perform conversions such as explicitly with a method: <code>8.meters.to.miles</code> or inline: <code>10.kilometers + 1.mile</code>. The <a href="http://github.com/toastyapps/alchemist/blob/master/lib/alchemist.rb">library's source code</a> is quite something to look at - there are units I've never even heard of before.</p>
<h3>The Compleat Rubyist - An All-Star Ruby Training Event</h3>
<p>David A Black, of <a href="http://www.amazon.com/Well-Grounded-Rubyist-David-Black/dp/1933988657/?tag=rubyins-20">The Well Grounded Rubyist</a> fame, got in touch recently to promote his forthcoming <a href="http://thecompleatrubyist.com/">The Compleat Rubyist</a> training event. The instructors are David, Gregory Brown (of <a href="http://www.amazon.com/Ruby-Best-Practices-Gregory-Brown/dp/0596523009/?tag=rubyins-20">Ruby Best Practices</a> fame), and Jeremy McAnally (of, well, <a href="http://www.rubyinside.com/rubys-top-hitter-in-2008-jeremy-mcanally-1404.html">lots of fame</a>) and the event takes place on January 22-23, 2010 in Tampa, Florida. I initially wanted to do a series of interviews with the guys to help them spread the word but they'll come later (one word: <em>newborn</em>). Anyway, this is a great chance to learn a thing or two from three Ruby superstars.</p>
<h3>You're An Idiot For Not Using Heroku?</h3>
<p>In the dramatically titled <a href="http://railstips.org/2009/11/8/you-re-an-idiot-for-not-using-heroku">You're An Idiot For Not Using Heroku</a>, John Nunemaker relays how much fun he's been having with Ruby cloud hosting service <a href="http://heroku.com/">Heroku</a> which, you may recall, we <a href="http://www.rubyinside.com/heroku-gets-add-ons-serious-ruby-webapp-hosting-made-easy-2664.html">covered very recently</a> here on Ruby Inside.</p>
<h3>A First Look at Rails 3.0</h3>
<p>Dr Nic Williams has <a href="http://drnicwilliams.com/2009/11/03/first-look-at-rails-3-0-pre">put together a walkthrough of Rails 3.0.pre</a>, the embryonic version of the forthcoming Rails 3.0.</p>
<h3>JRuby 1.4 Released</h3>
<p>The latest significant release of JRuby, 1.4.0, <a href="http://groups.google.com/group/comp.lang.ruby/browse_thread/thread/1b630246f7f5c434">is now available!</a> <em>(linked to a newsgroup announcement as jruby.org is down at the time of writing)</em> The 1.4.0 release brings compatibility with Ruby 1.8.7p174, improved Java integration support, a Windows installer and native launcher, a new embedding framework, RubyGems 1.3.5, and a whole batch of bug fixes.</p>
<h3>Hacking Gems With GitHub and GemCutter</h3>
<p>Dr Nic Williams (who's proving rather popular in this post) asks: <em>"Ever used a rubygem, found a bug, and just wanted to quickly bust out the big guns and fix it quickly?</em> Surely, we all have.. so he's written <a href="http://drnicwilliams.com/2009/11/04/hacking-someones-gem-with-github-and-gemcutter/">Hacking someone's gem with github and gemcutter</a> to show us how to easily fork an existing gem, make our changes, and get it deployed on <a href="http://www.rubyinside.com/gemcutter-is-the-new-official-default-rubygem-host-2659.html">Gemcutter</a> <em>tout de suite.</em></p>
<h3>Building a Twitter Filter with Sinatra, Redis, and TweetStream</h3>
<p>Mirko Froehlich (a.k.a. DigitalHobbit) has written an awesomely in-depth <a href="http://www.digitalhobbit.com/2009/11/08/building-a-twitter-filter-with-sinatra-redis-and-tweetstream/">tutorial on how to build a &quot;Twitter filter&quot;</a> using Sinatra, Haml, jQuery, and some other funky tools. If you want to see the result, check out <a href="http://twatcher.com/">http://twatcher.com/</a></p>
<h3>The Official GitHub Command Line Tool</h3>
<p>I hadn't heard of it before, but Dr Nic Williams announced the release of <a href="http://github.com/defunkt/github-gem">version 0.4.0 of "github-gem",</a> an official GitHub <em>"command line helper for simplifying your GitHub experience."</em> If you're a GitHub user, this looks extremely useful. You can quickly deal with patches made on any forks of your project, fetch downstream changes, and so forth.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RubyInside?a=WunoI3kx2B8:klUsjO3vPpc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RubyInside?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=WunoI3kx2B8:klUsjO3vPpc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=WunoI3kx2B8:klUsjO3vPpc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=WunoI3kx2B8:klUsjO3vPpc:3H-1DwQop_U"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=WunoI3kx2B8:klUsjO3vPpc:3H-1DwQop_U" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=WunoI3kx2B8:klUsjO3vPpc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=WunoI3kx2B8:klUsjO3vPpc:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RubyInside/~4/WunoI3kx2B8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rubyinside.com/ruby-tidbits-29-2780.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.rubyinside.com/ruby-tidbits-29-2780.html</feedburner:origLink></item>
		<item>
		<title>Jekyll: A Ruby-Powered Static Site Generator</title>
		<link>http://feedproxy.google.com/~r/RubyInside/~3/u5ftlrkDeEg/jekyll-a-ruby-powered-static-site-generator-2716.html</link>
		<comments>http://www.rubyinside.com/jekyll-a-ruby-powered-static-site-generator-2716.html#comments</comments>
		<pubDate>Thu, 05 Nov 2009 21:34:22 +0000</pubDate>
		<dc:creator>Ric Roberts</dc:creator>
				<category><![CDATA[Cool]]></category>
		<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.rubyinside.com/?p=2716</guid>
		<description><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/11/jekyll.jpg" alt="jekyll" style="float:left; margin-right:12px; margin-bottom:12px" /><a href="http://github.com/mojombo/jekyll">Jekyll</a> is a simple Ruby-powered static site generator, originally by <a href="http://tom.preston-werner.com/">Tom Preston-Werner</a> (aka <em><a href="http://wiki.github.com/mojombo/">mojombo</a></em>) of Github fame.  It's focused around blogging, but it can be configured to generate any kind of static site.  <em>(Note: Jekyll has been around for about a year - <a href="http://tom.preston-werner.com/2008/11/17/blogging-like-a-hacker.html">Tom originally blogged about</a> it in November last year, so apologies if this is old news to some readers, but I've only recently discovered it!)</em></p>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/11/jekyll.jpg" alt="jekyll" style="float:left; margin-right:12px; margin-bottom:12px" /><a href="http://github.com/mojombo/jekyll">Jekyll</a> is a simple Ruby-powered static site generator, originally by <a href="http://tom.preston-werner.com/">Tom Preston-Werner</a> (aka <em><a href="http://wiki.github.com/mojombo/">mojombo</a></em>) of Github fame.  It's focused around blogging, but it can be configured to generate any kind of static site.  <em>(Note: Jekyll has been around for about a year - <a href="http://tom.preston-werner.com/2008/11/17/blogging-like-a-hacker.html">Tom originally blogged about</a> it in November last year, so apologies if this is old news to some readers, but I've only recently discovered it!)</em></p>
<p>Because Jekyll outputs a static site structure, it means you can host your blog (or site) from anywhere that you can serve static HTML, simply by using your favourite web server (e.g. Apache).  As Tom describes in his blog post, the idea came from wanting to be able to "Blog like a Hacker".  Jekyll lets you write from the comfort of your favourite text editor, and publish from the command line. Using familiar tools reduces the cognitive load involved with publishing a blog, and lets you focus on what you're writing. It doesn't hurt that even a pretty weak Web server could stand a pounding if it's just serving static files!</p>
<p>By default, Jekyll uses its own (slightly modified) flavour of <a href="http://github.com/tobi/liquid/">Liquid</a> templates, with help from <a href="http://pygments.org/">pygments</a> for syntax highlighting, and you can use textile or markdown for the content.  Each Jekyll blog article template needs a <a href="http://wiki.github.com/mojombo/jekyll/yaml-front-matter">header</a> containing some metadata about that article, such as what layout to use, the article's title, and any custom information you want to provide (such as tags for that article).</p>
<p>Generating your site is easy: just running the <code>jekyll</code> command turns your directory of templates into a complete website, ready to serve.  There's a Jekyll server that you can use for testing (passing <code>--auto</code> as an argument means it will automatically regenerate the site when things are changed).</p>
<pre>
jekyll --server --auto
</pre>
<p><em><a href="http://pages.github.com/">Github Pages</a></em> provides a neat way to publish your Jekyll-generated site.  Every Github page is actually run through Jekyll when you push content to your pages repo (this works because a normal static site is also a valid Jekyll site).</p>
<p>The easiest way to get started with Jekyll is by installing the gem (which is <a href="http://gemcutter.org/gems/jekyll">available on Gemcutter</a>), and checking out the <a href="http://wiki.github.com/mojombo/jekyll">wiki</a> on Github, where there's some great documentation.</p>
<pre>
sudo gem install jekyll
</pre>
<p>As you might expect, <a href="http://tom.preston-werner.com/">Tom Preson-Werner's personal blog</a> runs on Jekyll.  Its source is <a href="http://github.com/mojombo/tpw">publicly available on Github</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RubyInside?a=u5ftlrkDeEg:ZeXmuOgi24w:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RubyInside?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=u5ftlrkDeEg:ZeXmuOgi24w:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=u5ftlrkDeEg:ZeXmuOgi24w:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=u5ftlrkDeEg:ZeXmuOgi24w:3H-1DwQop_U"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=u5ftlrkDeEg:ZeXmuOgi24w:3H-1DwQop_U" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=u5ftlrkDeEg:ZeXmuOgi24w:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=u5ftlrkDeEg:ZeXmuOgi24w:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RubyInside/~4/u5ftlrkDeEg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rubyinside.com/jekyll-a-ruby-powered-static-site-generator-2716.html/feed</wfw:commentRss>
		<slash:comments>12</slash:comments>
		<feedburner:origLink>http://www.rubyinside.com/jekyll-a-ruby-powered-static-site-generator-2716.html</feedburner:origLink></item>
		<item>
		<title>Thinking Functionally In Ruby – A Great Presentation by Tom Stuart</title>
		<link>http://feedproxy.google.com/~r/RubyInside/~3/Z7Jr7EnuAWs/functional-programming-in-ruby-2713.html</link>
		<comments>http://www.rubyinside.com/functional-programming-in-ruby-2713.html#comments</comments>
		<pubDate>Tue, 03 Nov 2009 14:04:51 +0000</pubDate>
		<dc:creator>Peter Cooper</dc:creator>
				<category><![CDATA[Cool]]></category>
		<category><![CDATA[Elsewhere]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://www.rubyinside.com/functional-programming-in-ruby-2713.html</guid>
		<description><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/11/thinkfunc.png" width="110" height="107" alt="thinkfunc.png" style="float:left; margin-right:12px; margin-bottom:12px;" /><a href="http://skillsmatter.com/podcast/ajax-ria/enumerators">Thinking Functionally in Ruby</a> is a talk that British Ruby developer Tom Stuart gave at a recent <a href="http://lrug.org/">London Ruby Users Group</a> meeting. In it he covers what functional programming is, why it's a "pretty neat idea," and how to adopt <a href="http://en.wikipedia.org/wiki/Functional_programming">functional programming</a> principles in Ruby. Skills Matter took <a href="http://skillsmatter.com/podcast/ajax-ria/enumerators">a video of the entire 47 minute presentation</a> <i>(it's embedded on the right hand side of that page - Flash required.. just been told it might be limited to UK visitors only, if so <a href="http://experthuman.com/files/thinking-functionally-in-ruby.mp4">get the original MP4 file</a>)</i> but there's also <a href="http://experthuman.com/files/thinking-functionally-in-ruby.pdf">a 110 page PDF</a> <i>(1.5MB download)</i> you should have to hand too (with Tom's slides).</p>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/11/thinkfunc.png" width="110" height="107" alt="thinkfunc.png" style="float:left; margin-right:12px; margin-bottom:12px;" /><a href="http://skillsmatter.com/podcast/ajax-ria/enumerators">Thinking Functionally in Ruby</a> is a talk that British Ruby developer Tom Stuart gave at a recent <a href="http://lrug.org/">London Ruby Users Group</a> meeting. In it he covers what functional programming is, why it's a "pretty neat idea," and how to adopt <a href="http://en.wikipedia.org/wiki/Functional_programming">functional programming</a> principles in Ruby. Skills Matter took <a href="http://skillsmatter.com/podcast/ajax-ria/enumerators">a video of the entire 47 minute presentation</a> <i>(it's embedded on the right hand side of that page - Flash required.. just been told it might be limited to UK visitors only, if so <a href="http://experthuman.com/files/thinking-functionally-in-ruby.mp4">get the original MP4 file</a>)</i> but there's also <a href="http://experthuman.com/files/thinking-functionally-in-ruby.pdf">a 110 page PDF</a> <i>(1.5MB download)</i> you should have to hand too (with Tom's slides).</p>
<p><a href="http://skillsmatter.com/podcast/ajax-ria/enumerators"><img src="http://www.rubyinside.com/wp-content/uploads/2009/11/minecode.png" width="640" height="485" alt="minecode.png" /></a></p>
<p>I don't like to link to individual presentations on Ruby Inside too often, but in spite of poor audio quality on the video, Tom's presentation is top notch (the slides are particularly good) and Tom covers some interesting topics that I think Ruby developers could do with revising. If you've wanted to stay on the functional bandwagon but have found yourself slipping into <a href="http://en.wikipedia.org/wiki/Imperative_programming">imperative</a> ways where you shouldn't, this presentation is well worth a watch.</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=Z7Jr7EnuAWs:mK9FXSO2HAw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RubyInside?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=Z7Jr7EnuAWs:mK9FXSO2HAw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=Z7Jr7EnuAWs:mK9FXSO2HAw:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=Z7Jr7EnuAWs:mK9FXSO2HAw:3H-1DwQop_U"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=Z7Jr7EnuAWs:mK9FXSO2HAw:3H-1DwQop_U" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=Z7Jr7EnuAWs:mK9FXSO2HAw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=Z7Jr7EnuAWs:mK9FXSO2HAw:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RubyInside/~4/Z7Jr7EnuAWs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rubyinside.com/functional-programming-in-ruby-2713.html/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
<enclosure url="http://experthuman.com/files/thinking-functionally-in-ruby.mp4" length="97618311" type="video/mp4" />
		<feedburner:origLink>http://www.rubyinside.com/functional-programming-in-ruby-2713.html</feedburner:origLink></item>
		<item>
		<title>Riot: for fast, expressive and focused unit tests</title>
		<link>http://feedproxy.google.com/~r/RubyInside/~3/tfL7w9XuFZ0/riot-for-fast-expressive-and-focused-unit-tests-2669.html</link>
		<comments>http://www.rubyinside.com/riot-for-fast-expressive-and-focused-unit-tests-2669.html#comments</comments>
		<pubDate>Sat, 31 Oct 2009 16:57:28 +0000</pubDate>
		<dc:creator>Ric Roberts</dc:creator>
				<category><![CDATA[Cool]]></category>
		<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://www.rubyinside.com/?p=2669</guid>
		<description><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/10/justin.jpg" alt="Justin" style="float:left; margin-right:12px; margin-bottom:12px;"/><a href="http://github.com/thumblemonks/riot">Riot</a> is a new Ruby test framework by <a href="http://twitter.com/jaknowlden">Justin Knowlden</a> that focuses on <em>faster</em> testing.  Justin was frustrated with his slow running test suites, despite employing techniques such as using factories, mocks and avoiding database access.  He realized that a slow-running suite makes one reluctant to run it or expand it - not good.</p>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/10/justin.jpg" alt="Justin" style="float:left; margin-right:12px; margin-bottom:12px;"/><a href="http://github.com/thumblemonks/riot">Riot</a> is a new Ruby test framework by <a href="http://twitter.com/jaknowlden">Justin Knowlden</a> that focuses on <em>faster</em> testing.  Justin was frustrated with his slow running test suites, despite employing techniques such as using factories, mocks and avoiding database access.  He realized that a slow-running suite makes one reluctant to run it or expand it - not good.</p>
<p>With Riot, each test consists of a block which forms a single assertion on the <code>topic</code> of the test, keeping the tests focused. Tests run in a specific <code>context</code>, and the <code>setup</code> code is only run once per context, further contributing to the speed of your test suite, and unlike some Ruby test frameworks, such as <a href="http://www.thoughtbot.com/projects/shoulda/">Shoulda</a>, that rely on or are based on Test::Unit, Riot has taken a new approach for speed purposes. In Justin's own comparisons, Riot comes out about twice as fast as Test::Unit.  </p>
<p>Here's an example Riot test (from the README):</p>
<pre>
context "a new user" do
  setup { User.new(:email => 'foo@bar.com') }
  asserts("email address") { topic.email }.equals('foo@bar.com')
end
</pre>
<p>Riot's comprehensive <a href="http://github.com/thumblemonks/riot/blob/master/README.markdown">README</a> also includes lots of examples and details on how to modify your Rakefile to run your Riot test suite in different frameworks.  The full documentation is available online <a href="http://rdoc.info/projects/thumblemonks/riot">here</a>.</p>
<p>You can install Riot as a gem from <a href="http://gemcutter.org/">Gemcutter</a>:</p>
<pre>
sudo gem sources -a http://gemcutter.org
sudo gem install riot
</pre>
<p>Justin also has a spin-off project called <a href="http://github.com/thumblemonks/riot_rails">Riot Rails</a>, which includes some Rails-related macros for testing your Ruby On Rails code, and <a href="http://alexyoung.org/">Alex Young</a> has written a <a href="http://github.com/alexyoung/riotjs">Javascript port of Riot</a> which is worth checking out too. He also <a href="http://alexyoung.org/2009/10/26/riot-testing/">has his own look at Riot</a> and demonstrates how Riot can reduce redundancy in tests.</p>
<p style="background-color:#ffd;padding:8px;font-family:verdana;font-size:12px"><a href="http://www.codebasehq.com/?utm_source=rubyinside&amp;utm_medium=footer&amp;utm_campaign=sep09" rel="nofollow"><img src="http://www.rubyinside.com/wp-content/uploads/2009/09/CodebaseLogo-RI.png" width="118" height="37" style="float: right; margin-left: 12px; margin-bottom: 12px" alt="CodebaseLogo-RI.png" /></a><em>[ad]</em> <a href="http://www.codebasehq.com/?utm_source=rubyinside&amp;utm_medium=footer&amp;utm_campaign=sep09" rel="nofollow"><b>Codebase</b></a> is a fast &amp; reliable <b>git, mercurial &amp; subversion hosting</b> service with complete project management built-in - ticketing, milestones, wikis &amp; time tracking - all under one roof. <a href="http://www.codebasehq.com/?utm_source=rubyinside&amp;utm_medium=footer&amp;utm_campaign=sep09" rel="nofollow">Click here to try it - free.</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RubyInside?a=tfL7w9XuFZ0:sMu09AKRh08:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RubyInside?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=tfL7w9XuFZ0:sMu09AKRh08:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=tfL7w9XuFZ0:sMu09AKRh08:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=tfL7w9XuFZ0:sMu09AKRh08:3H-1DwQop_U"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=tfL7w9XuFZ0:sMu09AKRh08:3H-1DwQop_U" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=tfL7w9XuFZ0:sMu09AKRh08:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=tfL7w9XuFZ0:sMu09AKRh08:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RubyInside/~4/tfL7w9XuFZ0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rubyinside.com/riot-for-fast-expressive-and-focused-unit-tests-2669.html/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<feedburner:origLink>http://www.rubyinside.com/riot-for-fast-expressive-and-focused-unit-tests-2669.html</feedburner:origLink></item>
		<item>
		<title>Heroku Gets Add-Ons: Serious Ruby Webapp Hosting Made Easy</title>
		<link>http://feedproxy.google.com/~r/RubyInside/~3/1-3-gJPb35c/heroku-gets-add-ons-serious-ruby-webapp-hosting-made-easy-2664.html</link>
		<comments>http://www.rubyinside.com/heroku-gets-add-ons-serious-ruby-webapp-hosting-made-easy-2664.html#comments</comments>
		<pubDate>Wed, 28 Oct 2009 15:33:10 +0000</pubDate>
		<dc:creator>Peter Cooper</dc:creator>
				<category><![CDATA[Enterprise]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.rubyinside.com/heroku-gets-add-ons-serious-ruby-webapp-hosting-made-easy-2664.html</guid>
		<description><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/10/heroku.png" width="123" height="59" alt="heroku.png" style="float:left; margin-right:12px; margin-bottom:12px;" /><a href="http://heroku.com/">Heroku</a> is a Ruby webapp hosting service that <a href="http://www.rubyinside.com/heroku-an-online-rails-development-and-app-hosting-environment-647.html">we first mentioned</a> about two years ago. It started off as an online IDE of sorts, but is now a complete cloud platform for running Ruby webapps. You can develop locally and then, with a single command, deploy your app to their metered service. Well, Heroku got in touch with me last week to talk about <a href="http://addons.heroku.com/">their new "Add-Ons" feature</a> and they've really kicked things up a notch for people wanting to quickly roll out webapps online.</p>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.rubyinside.com/wp-content/uploads/2009/10/heroku.png" width="123" height="59" alt="heroku.png" style="float:left; margin-right:12px; margin-bottom:12px;" /><a href="http://heroku.com/">Heroku</a> is a Ruby webapp hosting service that <a href="http://www.rubyinside.com/heroku-an-online-rails-development-and-app-hosting-environment-647.html">we first mentioned</a> about two years ago. It started off as an online IDE of sorts, but is now a complete cloud platform for running Ruby webapps. You can develop locally and then, with a single command, deploy your app to their metered service. Well, Heroku got in touch with me last week to talk about <a href="http://addons.heroku.com/">their new "Add-Ons" feature</a> and they've really kicked things up a notch for people wanting to quickly roll out webapps online.</p>
<p>Till now, Heroku has provided basic functionality on a semi-metered basis. You pay a monthly fee for a basic rate of service and then pay an hourly rate for more concurrency. Now, you can also add on a bunch of other features which Heroku are calling "Add-ons." Here are just a few of the more interesting ones:</p>
<ul>
<li><a href="http://aws.amazon.com/rds/"><b>Amazon RDS</b></a> <b>(Relational Database Service)</b> - This add-on is free from Heroku's point of view but you'll be paying Amazon.</li>
<li><b>Bundles</b> - A "snapshot" type backup system. You get a single bundle for free or can pay $20 for unlimited bundles.</li>
<li><b>Cron</b> - Daily and hourly crons can be set up with a couple of clicks.</li>
<li><b>Memcached</b> - You can boost your app's performance with in-memory caching provided by Memcached. The key here is that Heroku totally manages the Memcached instance - no server setup needed, etc. Currently this feature is only in private beta though..</li>
<li><b>New Relic</b> - Most readers should be familiar with <a href="http://www.newrelic.com/">New Relic</a>'s application performance tools by now and Heroku makes it easy to get them running directly on your Heroku-hosted apps. (As an aside, New Relic rolled out <a href="http://blog.newrelic.com/2009/10/19/announcing-new-relic-rpm-version-2-with-enhanced-ui-support-for-java-hourly-billing-option-and-more/">a significant update</a> last week - version 2 of their flagship RPM system.)</li>
<li><b>SSL</b> - Get https:// URLs on your Heroku app with a choice between piggyback SSL (free), SNI SSL ($5 per month) or full-blown custom SSL ($100 per month).</li>
<li><b>Websolr</b> - A no-setup-needed Solr instance so you can get quick and easy full text indexing and search functionality in your apps.</li>
</ul>
<p><i>Note: You can learn more about all the different Add-ons at Heroku's dedicated</i> <a href="http://addons.heroku.com/"><i>Add-ons page</i></a><i>.</i></p>
<h3>Impressive but Expensive?</h3>
<p>As impressive as Heroku's one-command-deploy and add-ons features are, though, I can't quite put my finger on Heroku's market - they're kinda pricey. Perhaps it'd be good for professional developers who want to do a test deployment of an app on a live server without getting mired in server configuration?</p>
<p>For full time use, Heroku doesn't strike me as very competitive. For example, for the "Crane" 500MB storage option (billed as <i>"perfect for a small biz app"</i>) with the recommended 4 "Dynos" the fee comes to an estimated $158 per month, and that's without any add-ons. For the entry level "dedicated" option with the recommended 8 dynos, the cost goes to $452.</p>
<p>Despite the cost, though, what Heroku offers is a very simple "no hassles" hosting service that, crucially, can handle significant workloads. You could rig up something similar with VPSes, dedicated boxes elsewhere, or even Amazon EC2, but you're going to be spending time doing server configuration. If playing sysadmin isn't tricky for you (I enjoy it, personally), Heroku might not be for you and you should be looking at companies like <a href="http://www.webbynode.com/">Webbynode</a> or <a href="http://www.linode.com/">Linode.</a> But if you're just a 100% developer who wants to get something up and running and doesn't want to worry about scalability too much, Heroku could be worth the extra expense.</p>
<p><strong>Update: Oren Teich of Heroku got in touch with some notes regarding Heroku's value proposition versus the comparisons I made above. I quote verbatim:</strong></p>
<p>
<blockquote> I wanted to point out that we have many users running huge sites on the free version, serving up hundreds of thousands of hits per month, and that they pricing is deceptive - for that $150 you get an AMAZINGLY high powered service, capable of serving >10 millions requests per day.</p>
<p>We don't do a great job right now of making it clear just how powerful a single dyno is, or what you get with the platform.  We're working on improving the pricing to be clearer.  In the meantime, getting the right message out on this is really important to us.</p>
<p>Also keep in mind, that the DB pricing is for DB usage only - it doesn't include your code, files on disk, etc.  That said, we know we need to right size the DB pricing, but it's amazing how far 500, or even 50 MB of pure DB usage will take you.</p>
<p>Heroku has many users running huge sites on the free version, serving up hundreds of thousands of hits per month.  The pricing can be deceptive, for that $150 you get an AMAZINGLY high powered service, capable of serving >10 millions requests per day.</p></blockquote>
<p>He also noted that there's no charge for bandwidth, although there are some soft limits that haven't been hit by any users yet.</p>
<p><em>Disclaimer: Webbynode and Linode are currently Ruby Inside sponsors. Heroku, however, has no financial connection with Ruby Inside and vice versa.</em></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=1-3-gJPb35c:q1C9Q9xW9uA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RubyInside?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=1-3-gJPb35c:q1C9Q9xW9uA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=1-3-gJPb35c:q1C9Q9xW9uA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=1-3-gJPb35c:q1C9Q9xW9uA:3H-1DwQop_U"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=1-3-gJPb35c:q1C9Q9xW9uA:3H-1DwQop_U" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RubyInside?a=1-3-gJPb35c:q1C9Q9xW9uA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RubyInside?i=1-3-gJPb35c:q1C9Q9xW9uA:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RubyInside/~4/1-3-gJPb35c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.rubyinside.com/heroku-gets-add-ons-serious-ruby-webapp-hosting-made-easy-2664.html/feed</wfw:commentRss>
		<slash:comments>19</slash:comments>
		<feedburner:origLink>http://www.rubyinside.com/heroku-gets-add-ons-serious-ruby-webapp-hosting-made-easy-2664.html</feedburner:origLink></item>
	</channel>
</rss>
