<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments for Phusion Corporate Blog</title>
	<atom:link href="http://blog.phusion.nl/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.phusion.nl</link>
	<description></description>
	<lastBuildDate>Thu, 26 Jan 2012 22:32:32 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>Comment on Rendering Rails 3.1 assets to string by Ivan Vanderbyl</title>
		<link>http://blog.phusion.nl/2011/08/14/rendering-rails-3-1-assets-to-string/comment-page-1/#comment-85900</link>
		<dc:creator>Ivan Vanderbyl</dc:creator>
		<pubDate>Thu, 26 Jan 2012 22:32:32 +0000</pubDate>
		<guid isPermaLink="false">http://blog.phusion.nl/?p=1408#comment-85900</guid>
		<description>You can also simply use the Rails.application helper (in case the real ApplicationName is not available):

Rails.application.assets.find_asset(&#039;api.css.scss&#039;)</description>
		<content:encoded><![CDATA[<p>You can also simply use the Rails.application helper (in case the real ApplicationName is not available):</p>
<p>Rails.application.assets.find_asset(&#8216;api.css.scss&#8217;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on XCode 4 ships a buggy compiler by RSS</title>
		<link>http://blog.phusion.nl/2011/12/30/xcode-4-ships-a-buggy-compiler/comment-page-1/#comment-85853</link>
		<dc:creator>RSS</dc:creator>
		<pubDate>Thu, 26 Jan 2012 11:22:21 +0000</pubDate>
		<guid isPermaLink="false">http://blog.phusion.nl/?p=1432#comment-85853</guid>
		<description>It seems that apple is releasing more and more buggy development software. Everyone can see how much memory XCode is leaking. Also it seems that Mac OS Lion has new memory management problems. The only thing that apple keeps stable is the iOS operating system (May be because they don&#039;t want jailbreaks or so). I think that the reason for this is that they ACTUALLY DOESN&#039;T HAVE THAT MONEY for development. Strangely they report more money for spending than the US government :P :DDD</description>
		<content:encoded><![CDATA[<p>It seems that apple is releasing more and more buggy development software. Everyone can see how much memory XCode is leaking. Also it seems that Mac OS Lion has new memory management problems. The only thing that apple keeps stable is the iOS operating system (May be because they don&#8217;t want jailbreaks or so). I think that the reason for this is that they ACTUALLY DOESN&#8217;T HAVE THAT MONEY for development. Strangely they report more money for spending than the US government <img src='http://blog.phusion.nl/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  <img src='http://blog.phusion.nl/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> DD</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Efficient substring searching by Geoff&#039;s Site &#8250; Making Ag Faster: Profiling with Valgrind</title>
		<link>http://blog.phusion.nl/2010/12/06/efficient-substring-searching/comment-page-1/#comment-85557</link>
		<dc:creator>Geoff&#039;s Site &#8250; Making Ag Faster: Profiling with Valgrind</dc:creator>
		<pubDate>Mon, 23 Jan 2012 18:47:39 +0000</pubDate>
		<guid isPermaLink="false">http://blog.phusion.nl/?p=994#comment-85557</guid>
		<description>[...] I did some research on string-matching and found out about the Boyer-Moore algorithm. After some more reading, I decided to go with a simplified version of Boyer-Moore called [...]</description>
		<content:encoded><![CDATA[<p>[...] I did some research on string-matching and found out about the Boyer-Moore algorithm. After some more reading, I decided to go with a simplified version of Boyer-Moore called [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on XCode 4 ships a buggy compiler by Alexey Borzenkov</title>
		<link>http://blog.phusion.nl/2011/12/30/xcode-4-ships-a-buggy-compiler/comment-page-1/#comment-85160</link>
		<dc:creator>Alexey Borzenkov</dc:creator>
		<pubDate>Sat, 21 Jan 2012 20:49:30 +0000</pubDate>
		<guid isPermaLink="false">http://blog.phusion.nl/?p=1432#comment-85160</guid>
		<description>No, /usr/bin/gcc-4.2 is usually a leftover from older XCode installations. Unfortunately, after doing a reinstall of Lion and installing latest XCode gcc-4.2 is not there anymore. Only llvm-gcc and clang are available.</description>
		<content:encoded><![CDATA[<p>No, /usr/bin/gcc-4.2 is usually a leftover from older XCode installations. Unfortunately, after doing a reinstall of Lion and installing latest XCode gcc-4.2 is not there anymore. Only llvm-gcc and clang are available.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Bundler and public applications by Yehuda Katz</title>
		<link>http://blog.phusion.nl/2012/01/19/bundler-and-public-applications/comment-page-1/#comment-84812</link>
		<dc:creator>Yehuda Katz</dc:creator>
		<pubDate>Fri, 20 Jan 2012 16:54:26 +0000</pubDate>
		<guid isPermaLink="false">http://blog.phusion.nl/?p=1451#comment-84812</guid>
		<description>I actually like this proposal. Back in the 1.0 days, we talked about having something like:

&lt;pre&gt;group :sqlite, :optional =&gt; true do
  gem &quot;sqlite3&quot;
end&lt;/pre&gt;

You would then do: `bundle install --with sqlite`. However, this didn&#039;t feel entirely satisfying, because it didn&#039;t really hit the nail on the head for the use-cases in question. Your proposal does. I&#039;d want to talk with other Bundler folks before committing to anything, but I think that this actually satisfies an important use-case in an elegant way.

It&#039;s worth noting that bundler would still need to include all of the conditionals in the Gemfile.lock, and they would not be able to have conflicts. You can find more information about the rationale for that at http://gembundler.com/rationale.html#faq-3. However, in most cases where conditionals exist, like database drivers, the drivers don&#039;t conflict with each other, but you only want one, so it would work fine.</description>
		<content:encoded><![CDATA[<p>I actually like this proposal. Back in the 1.0 days, we talked about having something like:</p>
<pre>group :sqlite, <img src='http://blog.phusion.nl/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> ptional =&gt; true do
  gem "sqlite3"
end</pre>
<p>You would then do: `bundle install &#8211;with sqlite`. However, this didn&#8217;t feel entirely satisfying, because it didn&#8217;t really hit the nail on the head for the use-cases in question. Your proposal does. I&#8217;d want to talk with other Bundler folks before committing to anything, but I think that this actually satisfies an important use-case in an elegant way.</p>
<p>It&#8217;s worth noting that bundler would still need to include all of the conditionals in the Gemfile.lock, and they would not be able to have conflicts. You can find more information about the rationale for that at <a href="http://gembundler.com/rationale.html#faq-3" rel="nofollow">http://gembundler.com/rationale.html#faq-3</a>. However, in most cases where conditionals exist, like database drivers, the drivers don&#8217;t conflict with each other, but you only want one, so it would work fine.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Bundler and public applications by Robert</title>
		<link>http://blog.phusion.nl/2012/01/19/bundler-and-public-applications/comment-page-1/#comment-84704</link>
		<dc:creator>Robert</dc:creator>
		<pubDate>Fri, 20 Jan 2012 09:38:45 +0000</pubDate>
		<guid isPermaLink="false">http://blog.phusion.nl/?p=1451#comment-84704</guid>
		<description>This is actually a problem we have with shipping our open source app. We want to support both the application to be runnable as a standalone app as well as an includable Rails engine. Currently, we ship it with a checked in Gemfile.lock which requires a multitude of database drivers for different groups **and** different platforms (ruby, jruby). Especially if you want to support easy heroku deployments you have to include Postgres.

This can not be the desired pattern.

I wonder WWYD (What Would Yehuda Do)? :)</description>
		<content:encoded><![CDATA[<p>This is actually a problem we have with shipping our open source app. We want to support both the application to be runnable as a standalone app as well as an includable Rails engine. Currently, we ship it with a checked in Gemfile.lock which requires a multitude of database drivers for different groups **and** different platforms (ruby, jruby). Especially if you want to support easy heroku deployments you have to include Postgres.</p>
<p>This can not be the desired pattern.</p>
<p>I wonder WWYD (What Would Yehuda Do)? <img src='http://blog.phusion.nl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Bundler and public applications by rbq</title>
		<link>http://blog.phusion.nl/2012/01/19/bundler-and-public-applications/comment-page-1/#comment-84578</link>
		<dc:creator>rbq</dc:creator>
		<pubDate>Fri, 20 Jan 2012 00:22:01 +0000</pubDate>
		<guid isPermaLink="false">http://blog.phusion.nl/?p=1451#comment-84578</guid>
		<description>I think we need a standard installer for public Rails apps deployed by users on a single host. It should act similar to the installers popular PHP apps provide. If the app launches without being properly configured it should ask for certain variables the developer specifies, copy -dist files to the according destination and fill in the blanks, check for other dependencies (Ruby version, write permissions, Postgres/Mongo/Redis/Memcached, ...), re-run bundler and touch tmp/restart.txt. Maybe this could be integrated on a very basic level, even before Bundler runs, so it could catch most problems, even if something with the configuration is fundamentally wrong (old Ruby, Bundler not available, ...).

Just look at Wordpress and others. It&#039;s ridiculously easy these days to install them and upgrade to a new major version, including migrations being executed for you. Would be nice if there was a default way to add this to a public Rails app.</description>
		<content:encoded><![CDATA[<p>I think we need a standard installer for public Rails apps deployed by users on a single host. It should act similar to the installers popular PHP apps provide. If the app launches without being properly configured it should ask for certain variables the developer specifies, copy -dist files to the according destination and fill in the blanks, check for other dependencies (Ruby version, write permissions, Postgres/Mongo/Redis/Memcached, &#8230;), re-run bundler and touch tmp/restart.txt. Maybe this could be integrated on a very basic level, even before Bundler runs, so it could catch most problems, even if something with the configuration is fundamentally wrong (old Ruby, Bundler not available, &#8230;).</p>
<p>Just look at WordPress and others. It&#8217;s ridiculously easy these days to install them and upgrade to a new major version, including migrations being executed for you. Would be nice if there was a default way to add this to a public Rails app.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Bundler and public applications by Hongli Lai</title>
		<link>http://blog.phusion.nl/2012/01/19/bundler-and-public-applications/comment-page-1/#comment-84563</link>
		<dc:creator>Hongli Lai</dc:creator>
		<pubDate>Thu, 19 Jan 2012 23:05:18 +0000</pubDate>
		<guid isPermaLink="false">http://blog.phusion.nl/?p=1451#comment-84563</guid>
		<description>@Jonathan: How&#039;s shipping apps as an engine going to make things easier to install for the end user who&#039;s not a Ruby programmer? Where does the &#039;local app&#039; part come from?</description>
		<content:encoded><![CDATA[<p>@Jonathan: How&#8217;s shipping apps as an engine going to make things easier to install for the end user who&#8217;s not a Ruby programmer? Where does the &#8216;local app&#8217; part come from?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Bundler and public applications by Jonathan Rochkind</title>
		<link>http://blog.phusion.nl/2012/01/19/bundler-and-public-applications/comment-page-1/#comment-84562</link>
		<dc:creator>Jonathan Rochkind</dc:creator>
		<pubDate>Thu, 19 Jan 2012 23:01:44 +0000</pubDate>
		<guid isPermaLink="false">http://blog.phusion.nl/?p=1451#comment-84562</guid>
		<description>Redmine and Juvia are both Rails applications. 

In Rails 3.x, I think there should no longer BE &quot;shared&quot;/&quot;public&quot; rails apps -- all such apps should instead be delivered as engine gems. 

This keeps strictly seperate the &#039;shared codebase&#039; part (in the gem, which can specify dependencies in the usual way through it&#039;s gemspec), and the &#039;local app&#039; part, which includes any configuration (such as database.yml), as well as the Gemfile and Gemfile.lock. 

The &#039;local app&#039; might have nothing _but_ a database.yml, a Gemfile.lock and a skeleton rails app including the &#039;shared&#039; gem.  Or it could have some configuration too. Or it could have some over-rides and local functionality too. 

But anything that can be done in an app, in rails 3.x, can be done instead as a skeleton app + engine gem.   I think that&#039;s clearly the right way to distribute shared rails apps in 3.x, you should never actually distribute a shared app itself, it should be an engine gem.  That eliminates the sort of problems talked about here, has other ancillary benefits, and is what I&#039;ve done with all such things I develop. 

There&#039;s no reason you should ever be shipping a Gemfile.lock at all, in theory. You should be shipping a gem with dependencies, the Gemfile.lock should be the LOCAL record of _exactly_ which gems were used in last invocation, as opposed to your gem&#039;s gemspec, which is a listing of ranges of versions acceptable to it. You certainly could lock down to very specific gem versions in the gemspec if you wanted to, though, to get the same effect.</description>
		<content:encoded><![CDATA[<p>Redmine and Juvia are both Rails applications. </p>
<p>In Rails 3.x, I think there should no longer BE &#8220;shared&#8221;/&#8221;public&#8221; rails apps &#8212; all such apps should instead be delivered as engine gems. </p>
<p>This keeps strictly seperate the &#8216;shared codebase&#8217; part (in the gem, which can specify dependencies in the usual way through it&#8217;s gemspec), and the &#8216;local app&#8217; part, which includes any configuration (such as database.yml), as well as the Gemfile and Gemfile.lock. </p>
<p>The &#8216;local app&#8217; might have nothing _but_ a database.yml, a Gemfile.lock and a skeleton rails app including the &#8216;shared&#8217; gem.  Or it could have some configuration too. Or it could have some over-rides and local functionality too. </p>
<p>But anything that can be done in an app, in rails 3.x, can be done instead as a skeleton app + engine gem.   I think that&#8217;s clearly the right way to distribute shared rails apps in 3.x, you should never actually distribute a shared app itself, it should be an engine gem.  That eliminates the sort of problems talked about here, has other ancillary benefits, and is what I&#8217;ve done with all such things I develop. </p>
<p>There&#8217;s no reason you should ever be shipping a Gemfile.lock at all, in theory. You should be shipping a gem with dependencies, the Gemfile.lock should be the LOCAL record of _exactly_ which gems were used in last invocation, as opposed to your gem&#8217;s gemspec, which is a listing of ranges of versions acceptable to it. You certainly could lock down to very specific gem versions in the gemspec if you wanted to, though, to get the same effect.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Bundler and public applications by Hongli Lai</title>
		<link>http://blog.phusion.nl/2012/01/19/bundler-and-public-applications/comment-page-1/#comment-84560</link>
		<dc:creator>Hongli Lai</dc:creator>
		<pubDate>Thu, 19 Jan 2012 22:58:04 +0000</pubDate>
		<guid isPermaLink="false">http://blog.phusion.nl/?p=1451#comment-84560</guid>
		<description>@Matt:

Regarding shipping database drivers in Gemfile.lock: that may be the case, but Bundler is built around the notion that it knows your *entire* dependency graph, including the exact versions that you were using in development, and locks down your gem environment to exactly that. If you don&#039;t include your database drivers in your Gemfile.lock then you won&#039;t have any version guarantees anymore. The alternative is to specify exact versions directly in Gemfile (not Gemfile.lock) and allow the user to regenerate Gemfile.lock, but this makes life extremely hard for the developer. I&#039;ve been down this path and it ain&#039;t pretty.

I&#039;m not sure what you&#039;re getting at with your other statement. Of course the person is lost if something goes wrong, that&#039;s why I&#039;m suggesting a change that makes less things go wrong and less things confusing.</description>
		<content:encoded><![CDATA[<p>@Matt:</p>
<p>Regarding shipping database drivers in Gemfile.lock: that may be the case, but Bundler is built around the notion that it knows your *entire* dependency graph, including the exact versions that you were using in development, and locks down your gem environment to exactly that. If you don&#8217;t include your database drivers in your Gemfile.lock then you won&#8217;t have any version guarantees anymore. The alternative is to specify exact versions directly in Gemfile (not Gemfile.lock) and allow the user to regenerate Gemfile.lock, but this makes life extremely hard for the developer. I&#8217;ve been down this path and it ain&#8217;t pretty.</p>
<p>I&#8217;m not sure what you&#8217;re getting at with your other statement. Of course the person is lost if something goes wrong, that&#8217;s why I&#8217;m suggesting a change that makes less things go wrong and less things confusing.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

