<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Paul Goscicki</title>
	<atom:link href="http://paulgoscicki.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://paulgoscicki.com</link>
	<description>Random pieces of code, thoughts and movie reviews</description>
	<lastBuildDate>Mon, 25 Feb 2013 14:50:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Stubbing Time.now in Ruby</title>
		<link>http://paulgoscicki.com/archives/2013/02/stubbing-time-now-in-ruby/</link>
		<comments>http://paulgoscicki.com/archives/2013/02/stubbing-time-now-in-ruby/#comments</comments>
		<pubDate>Mon, 25 Feb 2013 14:50:28 +0000</pubDate>
		<dc:creator>Paul Goscicki</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://paulgoscicki.com/?p=444</guid>
		<description><![CDATA[Yeah, sure, we could do that. We could also use timecop. But both solutions seems overkill when all you need is to check if some attribute got updated with the result of `Time.now`. What you should do instead, is use the power of RSpec (or rspec-expectations to be more exact): post.published_at.should be_within(1.second).of(Time.now) Doesn&#8217;t it look [...]]]></description>
			<content:encoded><![CDATA[<p>Yeah, sure, we could do that. We could also use <a href="https://github.com/travisjeffery/timecop">timecop</a>. But both solutions seems overkill when all you need is to check if some attribute got updated with the result of `Time.now`. What you should do instead, is use the power of <a href="https://github.com/rspec/rspec">RSpec</a> (or <a href="https://github.com/rspec/rspec-expectations/">rspec-expectations</a> to be more exact):</p>
<pre class="code">
post.published_at.should be_within(1.second).of(Time.now)
</pre>
<p>Doesn&#8217;t it look just beautiful?</p>
]]></content:encoded>
			<wfw:commentRss>http://paulgoscicki.com/archives/2013/02/stubbing-time-now-in-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VI mode indicator in ZSH prompt</title>
		<link>http://paulgoscicki.com/archives/2012/09/vi-mode-indicator-in-zsh-prompt/</link>
		<comments>http://paulgoscicki.com/archives/2012/09/vi-mode-indicator-in-zsh-prompt/#comments</comments>
		<pubDate>Sun, 23 Sep 2012 11:50:49 +0000</pubDate>
		<dc:creator>Paul Goscicki</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[zsh]]></category>

		<guid isPermaLink="false">http://paulgoscicki.com/?p=433</guid>
		<description><![CDATA[Here is my take on VI mode indicator in zsh&#8217;s prompt. This is useful only for people who use the vi mode (bindkey -v) in ZSH. vim_ins_mode="%{$fg[cyan]%}[INS]%{$reset_color%}" vim_cmd_mode="%{$fg[green]%}[CMD]%{$reset_color%}" vim_mode=$vim_ins_mode function zle-keymap-select { vim_mode="${${KEYMAP/vicmd/${vim_cmd_mode}}/(main&#124;viins)/${vim_ins_mode}}" zle reset-prompt } zle -N zle-keymap-select function zle-line-finish { vim_mode=$vim_ins_mode } zle -N zle-line-finish And then it&#8217;s a matter of adding ${vim_mode} [...]]]></description>
			<content:encoded><![CDATA[<p>Here is my take on VI mode indicator in zsh&#8217;s prompt. This is useful only for people who use the vi mode (<code>bindkey -v</code>) in ZSH.</p>
<pre class="code">
vim_ins_mode="%{$fg[cyan]%}[INS]%{$reset_color%}"
vim_cmd_mode="%{$fg[green]%}[CMD]%{$reset_color%}"
vim_mode=$vim_ins_mode

function zle-keymap-select {
  vim_mode="${${KEYMAP/vicmd/${vim_cmd_mode}}/(main|viins)/${vim_ins_mode}}"
  zle reset-prompt
}
zle -N zle-keymap-select

function zle-line-finish {
  vim_mode=$vim_ins_mode
}
zle -N zle-line-finish
</pre>
<p>And then it&#8217;s a matter of adding <code>${vim_mode}</code> somewhere in your prompt. For example like this:</p>
<pre class="code">
RPROMPT='${vim_mode}'
</pre>
<p>Other <a href="http://superuser.com/questions/151803/how-do-i-customize-zshs-vim-mode">examples on the web</a> use <code>zle reset-prompt</code> in the <code>zle-line-init</code>, which has a very nasty side effect of deleting last couple of lines on mode change (when going from <code>ins</code> to <code>cmd</code> mode) when using multi-line prompt. Using <code>zle-line-finish</code> works around that.</p>
<p>Unfortunately, it still suffers from one issue that so far I was unable to solve. When you press <code>Ctrl+c</code> while in <code>cmd</code> mode, the indicator will say you&#8217;re still in the <code>cmd</code> mode, while in fact you are in <code>ins</code> mode.</p>
<p>Perhaps someone will find a workaround for that as well?</p>
]]></content:encoded>
			<wfw:commentRss>http://paulgoscicki.com/archives/2012/09/vi-mode-indicator-in-zsh-prompt/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>ZSH vi mode with emacs keybindings</title>
		<link>http://paulgoscicki.com/archives/2012/09/zsh-vi-mode-with-emacs-keybindings/</link>
		<comments>http://paulgoscicki.com/archives/2012/09/zsh-vi-mode-with-emacs-keybindings/#comments</comments>
		<pubDate>Sun, 23 Sep 2012 11:45:26 +0000</pubDate>
		<dc:creator>Paul Goscicki</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[zsh]]></category>

		<guid isPermaLink="false">http://paulgoscicki.com/?p=435</guid>
		<description><![CDATA[This is my attempt at bringing emacs-style keybindings to vi mode in ZSH: # VI MODE KEYBINDINGS (ins mode) bindkey -M viins '^a' beginning-of-line bindkey -M viins '^e' end-of-line bindkey -M viins '^k' kill-line bindkey -M viins '^r' history-incremental-pattern-search-backward bindkey -M viins '^s' history-incremental-pattern-search-forward bindkey -M viins '^p' up-line-or-history bindkey -M viins '^n' down-line-or-history bindkey [...]]]></description>
			<content:encoded><![CDATA[<p>This is my attempt at bringing emacs-style keybindings to vi mode in ZSH:</p>
<pre class="code">
# VI MODE KEYBINDINGS (ins mode)
bindkey -M viins '^a'    beginning-of-line
bindkey -M viins '^e'    end-of-line
bindkey -M viins '^k'    kill-line
bindkey -M viins '^r'    history-incremental-pattern-search-backward
bindkey -M viins '^s'    history-incremental-pattern-search-forward
bindkey -M viins '^p'    up-line-or-history
bindkey -M viins '^n'    down-line-or-history
bindkey -M viins '^y'    yank
bindkey -M viins '^w'    backward-kill-word
bindkey -M viins '^u'    backward-kill-line
bindkey -M viins '^h'    backward-delete-char
bindkey -M viins '^?'    backward-delete-char
bindkey -M viins '^_'    undo
bindkey -M viins '^x^r'  redisplay
bindkey -M viins '\eOH'  beginning-of-line # Home
bindkey -M viins '\eOF'  end-of-line       # End
bindkey -M viins '\e[2~' overwrite-mode    # Insert
bindkey -M viins '\ef'   forward-word      # Alt-f
bindkey -M viins '\eb'   backward-word     # Alt-b
bindkey -M viins '\ed'   kill-word         # Alt-d                    

# VI MODE KEYBINDINGS (cmd mode)
bindkey -M vicmd '^a'    beginning-of-line
bindkey -M vicmd '^e'    end-of-line
bindkey -M vicmd '^k'    kill-line
bindkey -M vicmd '^r'    history-incremental-pattern-search-backward
bindkey -M vicmd '^s'    history-incremental-pattern-search-forward
bindkey -M vicmd '^p'    up-line-or-history
bindkey -M vicmd '^n'    down-line-or-history
bindkey -M vicmd '^y'    yank
bindkey -M vicmd '^w'    backward-kill-word
bindkey -M vicmd '^u'    backward-kill-line
bindkey -M vicmd '/'     vi-history-search-forward
bindkey -M vicmd '?'     vi-history-search-backward
bindkey -M vicmd '^_'    undo
bindkey -M vicmd '\ef'   forward-word                      # Alt-f
bindkey -M vicmd '\eb'   backward-word                     # Alt-b
bindkey -M vicmd '\ed'   kill-word                         # Alt-d
bindkey -M vicmd '\e[5~' history-beginning-search-backward # PageUp
bindkey -M vicmd '\e[6~' history-beginning-search-forward  # PageDown
</pre>
<p>You know, so that your muscle memory can rest in peace. Also see the commit adding the above <a href="https://github.com/pjg/dotfiles/commit/a931077e7ba65dec89e132ed58fdf1e763c33c61">emacs style keybindings</a> to my <a href="https://github.com/pjg/dotfiles">dotfiles</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://paulgoscicki.com/archives/2012/09/zsh-vi-mode-with-emacs-keybindings/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Testing CSRF protection in Rails</title>
		<link>http://paulgoscicki.com/archives/2012/06/testing-csrf-protection-in-rails/</link>
		<comments>http://paulgoscicki.com/archives/2012/06/testing-csrf-protection-in-rails/#comments</comments>
		<pubDate>Thu, 28 Jun 2012 12:25:18 +0000</pubDate>
		<dc:creator>Paul Goscicki</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://paulgoscicki.com/?p=426</guid>
		<description><![CDATA[Ever wanted to test your CSRF protection in a Rails app? For example, in a situation when you have a custom &#8220;remember me&#8221; cookie set and you need to overwrite Rails&#8217; handle_unverified_request to clear it so it does not open a big security hole in your app? I know I did and it took me [...]]]></description>
			<content:encoded><![CDATA[<p>Ever wanted to test your CSRF protection in a Rails app? For example, in a situation when you have a custom &#8220;remember me&#8221; cookie set and you need to <a href="http://weblog.rubyonrails.org/2011/2/8/csrf-protection-bypass-in-ruby-on-rails/">overwrite</a> Rails&#8217; <code>handle_unverified_request</code> to clear it so it does not open a big security hole in your app? I know I did and it took me a while to find out how to do that, so I figured it would be good to write about it.</p>
<p>Here&#8217;s how to do it (in Test::Unit, but it&#8217;s the same for RSpec):</p>
<pre class="code">
setup do
  # Enable CSRF protection in this test
  ActionController::Base.allow_forgery_protection = true
end                                                                

teardown do
  # Disable CSRF protection for all other tests
  ActionController::Base.allow_forgery_protection = false
end
</pre>
<p>Adding the above will make it so that the <code>authenticity_token</code> is added to each generated <code>&lt;form&gt;</code> element and will be required to be sent with each non GET request.</p>
]]></content:encoded>
			<wfw:commentRss>http://paulgoscicki.com/archives/2012/06/testing-csrf-protection-in-rails/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Heroku memory quota killing machine</title>
		<link>http://paulgoscicki.com/archives/2012/04/heroku-memory-quota-killing-machine/</link>
		<comments>http://paulgoscicki.com/archives/2012/04/heroku-memory-quota-killing-machine/#comments</comments>
		<pubDate>Wed, 04 Apr 2012 17:44:08 +0000</pubDate>
		<dc:creator>Paul Goscicki</dc:creator>
				<category><![CDATA[heroku]]></category>
		<category><![CDATA[hosting]]></category>

		<guid isPermaLink="false">http://paulgoscicki.com/?p=419</guid>
		<description><![CDATA[When I was migrating a suite of Exvo apps to Heroku&#8216;s Cedar stack I&#8217;ve noticed a very strange behaviour. For two apps during first &#8220;run&#8221; the main process spun out of control, trying to consume way too much memory. After doing a manual restart everything went back to normal and the problem was basically gone [...]]]></description>
			<content:encoded><![CDATA[<p>When I was migrating a suite of <a href="http://www.exvo.com/">Exvo</a> apps to <a href="http://heroku.com/">Heroku</a>&#8216;s <a href="http://devcenter.heroku.com/articles/cedar">Cedar stack</a> I&#8217;ve noticed a very strange behaviour. For two apps during first &#8220;run&#8221; the main process spun out of control, trying to consume way too much memory. After doing a manual restart everything went back to normal and the problem was basically gone (we haven&#8217;t seen it reoccuring).</p>
<p>Here is the log of such an out of control worker:</p>
<pre class="code">
2012-04-02T11:52:32+00:00 heroku[worker.1]: Process running mem=550M(107.5%)
2012-04-02T11:52:32+00:00 heroku[worker.1]: Error R14 (Memory quota exceeded)
2012-04-02T11:52:52+00:00 heroku[worker.1]: Process running mem=811M(158.5%)
2012-04-02T11:52:52+00:00 heroku[worker.1]: Error R14 (Memory quota exceeded)
2012-04-02T11:53:12+00:00 heroku[worker.1]: Process running mem=858M(167.7%)
2012-04-02T11:53:12+00:00 heroku[worker.1]: Error R14 (Memory quota exceeded)
2012-04-02T11:53:32+00:00 heroku[worker.1]: Process running mem=1099M(214.8%)
2012-04-02T11:53:32+00:00 heroku[worker.1]: Error R14 (Memory quota exceeded)
2012-04-02T11:53:52+00:00 heroku[worker.1]: Process running mem=1539M(300.6%)
2012-04-02T11:53:52+00:00 heroku[worker.1]: Error R14 (Memory quota exceeded)
2012-04-02T11:54:12+00:00 heroku[worker.1]: Process running mem=1580M(308.7%)
2012-04-02T11:54:12+00:00 heroku[worker.1]: Error R14 (Memory quota exceeded)
2012-04-02T11:54:32+00:00 heroku[worker.1]: Process running mem=1709M(333.8%)
2012-04-02T11:54:32+00:00 heroku[worker.1]: Error R14 (Memory quota exceeded)
2012-04-02T11:54:53+00:00 heroku[worker.1]: Process running mem=2115M(413.1%)
2012-04-02T11:54:53+00:00 heroku[worker.1]: Error R14 (Memory quota exceeded)
2012-04-02T11:55:13+00:00 heroku[worker.1]: Process running mem=2301M(449.6%)
2012-04-02T11:55:13+00:00 heroku[worker.1]: Error R14 (Memory quota exceeded)
2012-04-02T11:55:33+00:00 heroku[worker.1]: Process running mem=2302M(449.6%)
2012-04-02T11:55:33+00:00 heroku[worker.1]: Error R14 (Memory quota exceeded)
2012-04-02T11:55:53+00:00 heroku[worker.1]: Process running mem=2747M(536.6%)
2012-04-02T11:55:53+00:00 heroku[worker.1]: Error R15 (Memory quota vastly exceeded)
2012-04-02T11:55:53+00:00 heroku[worker.1]: Stopping process with SIGKILL
2012-04-02T11:55:54+00:00 heroku[worker.1]: Process exited with status 137
</pre>
<p>This is just a worker, but I&#8217;ve observed the same for web processes as well. Be aware that as soon as your application starts serving <code>R14</code>/<code>R15</code> errors it stops processing any new requests (they simply time out).</p>
<p>Previously: <a href="/archives/2011/11/introduction-to-heroku-h12-timeouts/">Introduction to Heroku H12 timeouts</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://paulgoscicki.com/archives/2012/04/heroku-memory-quota-killing-machine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Uninitialized constant Gem::Deprecate</title>
		<link>http://paulgoscicki.com/archives/2012/04/uninitialized-constant-gemdeprecate/</link>
		<comments>http://paulgoscicki.com/archives/2012/04/uninitialized-constant-gemdeprecate/#comments</comments>
		<pubDate>Mon, 02 Apr 2012 16:17:12 +0000</pubDate>
		<dc:creator>Paul Goscicki</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://paulgoscicki.com/?p=405</guid>
		<description><![CDATA[If you run into this problem, which by the way usually happens after upgrading the rubygems package (in my case it was to version 1.8.21), your best bet is to upgrade the gem from the backtrace of this error. In my case it was the old passenger version 3.0.9, which was causing this problem. Upgrading [...]]]></description>
			<content:encoded><![CDATA[<p>If you run into this problem, which by the way usually happens after upgrading the rubygems package (in my case it was to version <code>1.8.21</code>), your best bet is to upgrade the gem from the backtrace of this error. In my case it was the old <a href="http://www.modrails.com/">passenger</a> version <code>3.0.9</code>, which was causing this problem. Upgrading to <code>3.0.11</code> solved it.</p>
]]></content:encoded>
			<wfw:commentRss>http://paulgoscicki.com/archives/2012/04/uninitialized-constant-gemdeprecate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Compromised</title>
		<link>http://paulgoscicki.com/archives/2012/03/compromised/</link>
		<comments>http://paulgoscicki.com/archives/2012/03/compromised/#comments</comments>
		<pubDate>Sat, 03 Mar 2012 18:20:44 +0000</pubDate>
		<dc:creator>Paul Goscicki</dc:creator>
				<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://paulgoscicki.com/?p=407</guid>
		<description><![CDATA[This blog has been. But no more! Now restored from the dead (i.e. fresh installation and customization of the Kubrick template). It seems that running and outdated WordPress installation is not a very bright idea. Who would have thought? Oh WordPress and PHP&#8230; how much I loathe thee!]]></description>
			<content:encoded><![CDATA[<p>This blog has been. But no more! Now restored from the dead (i.e. fresh installation and customization of the Kubrick template).</p>
<p>It seems that running and outdated WordPress installation is not a very bright idea. Who would have thought?</p>
<blockquote><p>
Oh WordPress and PHP&#8230;<br />
how much I loathe thee!
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://paulgoscicki.com/archives/2012/03/compromised/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introduction to Heroku H12 timeouts</title>
		<link>http://paulgoscicki.com/archives/2011/11/introduction-to-heroku-h12-timeouts/</link>
		<comments>http://paulgoscicki.com/archives/2011/11/introduction-to-heroku-h12-timeouts/#comments</comments>
		<pubDate>Tue, 15 Nov 2011 18:45:12 +0000</pubDate>
		<dc:creator>Paul Goscicki</dc:creator>
				<category><![CDATA[heroku]]></category>
		<category><![CDATA[hosting]]></category>

		<guid isPermaLink="false">http://paulgoscicki.com/?p=393</guid>
		<description><![CDATA[At Exvo we were experiencing problems while trying to send an email to all of our 150K+ users. This lead to a careful investigation of what is exactly happening during this process. So we setup our loggers (heroku logs -t &#124; tee output.log), run heroku consoles, increased to 20 dynos and 10 workers and begun [...]]]></description>
			<content:encoded><![CDATA[<p>At <a href="http://www.exvo.com/">Exvo</a> we were experiencing problems while trying to send an email to all of our 150K+ users. This lead to a careful investigation of what is exactly happening during this process. So we setup our loggers (<code>heroku logs -t | tee output.log</code>), run heroku consoles, increased to 20 dynos and 10 workers and begun the sending process.</p>
<p>It all started with a POST request to send those emails:</p>
<pre class="code">
app[web.10]: Started POST ...
</pre>
<p>Which timed out and there was no:</p>
<pre class="code">
app[web.10]: Completed 200 OK ...
</pre>
<p>or similar log entry later on, just silence.</p>
<p>This is Heroku&#8217;s <a href="http://devcenter.heroku.com/articles/request-timeout">killing machine</a> in action. It silently kills every process, which runs for longer than 30 seconds (we&#8217;re using the Bamboo stack). This is more or less how Heroku deals with long running requests. I don&#8217;t blame them for this behavior, even though I very much dislike it. But I digress.</p>
<p>When Heroku kills such process it does so in a very nice way, i.e. it lets it <strong>finish its business</strong> first. In other words the process will continue in the background and after finishing it will just die/stop/restart. Our email collecting job (selecting 150K users from the database&#8230;) run uninterrupted for over 40 minutes. So this is the good part.</p>
<p>The bad part is that when this killed process is still running in the background the dyno which it was connected to will stop serving new requests until this process finally dies, but Heroku will <strong>keep sending new requests</strong> to it! This is observed by the infamous H12 timeouts:</p>
<pre class="code">
heroku[router]: Error H12 (Request timeout) -> GET auth.exvo.com/users/sign_in dyno=web.10 queue= wait= service=30000ms status=503 bytes=0
</pre>
<p>Also notice the 503 error code (<code>Unavailable</code>), which is returned by the Heroku router.</p>
<p>So this is really bad as all sorts of different/random web requests will just keep failing without you knowing what&#8217;s going on.</p>
<p>So while I greatly appreciate that Heroku lets such processes still run in the background, I really don&#8217;t like that it still keeps sending traffic their way.</p>
<p><strong>PS</strong>: Yes, sending emails should be done as a background action by the Heroku workers. I know. But it&#8217;s not. Yet.</p>
]]></content:encoded>
			<wfw:commentRss>http://paulgoscicki.com/archives/2011/11/introduction-to-heroku-h12-timeouts/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>11/11/11</title>
		<link>http://paulgoscicki.com/archives/2011/11/111111/</link>
		<comments>http://paulgoscicki.com/archives/2011/11/111111/#comments</comments>
		<pubDate>Fri, 11 Nov 2011 17:16:43 +0000</pubDate>
		<dc:creator>Paul Goscicki</dc:creator>
				<category><![CDATA[uncategorized]]></category>

		<guid isPermaLink="false">http://paulgoscicki.com/?p=390</guid>
		<description><![CDATA[Aka the &#8220;mandatory&#8221; 11/11/11 post. Nothing else here, move along.]]></description>
			<content:encoded><![CDATA[<p>Aka the &#8220;mandatory&#8221; 11/11/11 post.</p>
<p>Nothing else here, move along.</p>
]]></content:encoded>
			<wfw:commentRss>http://paulgoscicki.com/archives/2011/11/111111/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruby 1.9.2 via rvm installation woes</title>
		<link>http://paulgoscicki.com/archives/2011/11/ruby-1-9-2-via-rvm-installation-woes/</link>
		<comments>http://paulgoscicki.com/archives/2011/11/ruby-1-9-2-via-rvm-installation-woes/#comments</comments>
		<pubDate>Tue, 08 Nov 2011 14:29:42 +0000</pubDate>
		<dc:creator>Paul Goscicki</dc:creator>
				<category><![CDATA[uncategorized]]></category>

		<guid isPermaLink="false">http://paulgoscicki.com/?p=385</guid>
		<description><![CDATA[I&#8217;ve just had to upgrade Ruby to 1.9.2 (from 1.8.7) on the EC2 instance, but ran into a weird error while running rvm install 1.9.2: Compiling yaml in /home/ubuntu/.rvm/src/yaml-0.1.4. ERROR: Error running 'make ', please read /home/ubuntu/.rvm/log/ruby-1.9.2-p290/yaml/make.log Installing yaml to /home/ubuntu/.rvm/usr ERROR: Error running 'make install', please read /home/ubuntu/.rvm/log/ruby-1.9.2-p290/yaml/make.install.log and in the log: src/Makefile.am:2: Libtool [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just had to upgrade Ruby to 1.9.2 (from 1.8.7) on the EC2 instance, but ran into a weird error while running <code>rvm install 1.9.2</code>:</p>
<pre class="code">
Compiling yaml in /home/ubuntu/.rvm/src/yaml-0.1.4.
ERROR: Error running 'make ', please read /home/ubuntu/.rvm/log/ruby-1.9.2-p290/yaml/make.log
Installing yaml to /home/ubuntu/.rvm/usr
ERROR: Error running 'make install', please read /home/ubuntu/.rvm/log/ruby-1.9.2-p290/yaml/make.install.log
</pre>
<p>and in the log:</p>
<pre class="code">
src/Makefile.am:2: Libtool library used but `LIBTOOL' is undefined
src/Makefile.am:2:   The usual way to define `LIBTOOL' is to add `AC_PROG_LIBTOOL'
src/Makefile.am:2:   to `configure.ac' and run `aclocal' and `autoconf' again.
src/Makefile.am:2:   If `AC_PROG_LIBTOOL' is in `configure.ac', make sure
src/Makefile.am:2:   its definition is in aclocal's search path.
</pre>
<p>Fortunately the solution was rather simple, although Google was not really that helpful this time, hence this post:</p>
<pre class="code">
sudo aptitude install libtool
</pre>
<p>Basically the <code>libtool</code> library was not installed.</p>
]]></content:encoded>
			<wfw:commentRss>http://paulgoscicki.com/archives/2011/11/ruby-1-9-2-via-rvm-installation-woes/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>
