<?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>Rorra&#039;s blog</title>
	<atom:link href="http://www.rorra.com.ar/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.rorra.com.ar</link>
	<description>Senior Developer</description>
	<lastBuildDate>Mon, 30 Jan 2012 07:35:15 +0000</lastBuildDate>
	<language>ar</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Updating sitemap_generator to upload your files to s3 with aws-s3 and aws-sdk</title>
		<link>http://www.rorra.com.ar/ar/2012/01/30/updating-sitemap_generator-to-upload-your-files-to-s3-with-aws-s3-and-aws-sdk/</link>
		<comments>http://www.rorra.com.ar/ar/2012/01/30/updating-sitemap_generator-to-upload-your-files-to-s3-with-aws-s3-and-aws-sdk/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 07:35:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.rorra.com.ar/?p=238</guid>
		<description><![CDATA[Recently I had to do a job where I was suppose to either find a gem that was able to generate sitemaps in rails 3 and upload it to S3, or update the current behavior of the gem sitemap_generator (which is a great gem), so I ended updated the behavior of the gem. The gem [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I had to do a job where I was suppose to either find a gem that was able to generate sitemaps in rails 3 and upload it to S3, or update the current behavior of the gem <a href="https://github.com/kjvarga/sitemap_generator" target="_blank">sitemap_generator</a> (which is a great gem), so I ended updated the behavior of the gem.</p>
<p>The gem already supports uploads to S3, but the problem is that it ask you to install carrierwave, and if you are already using paperclip, aws-s3 and aws-sdk, that&#8217;s a problem, so what I did was to enhance the rake tasks of the gem in order to add behavior for the S3 upload and notification to the different search engines as well.</p>
<p>You can check my code in this here: <a href="https://gist.github.com/1693860" target="_blank">https://gist.github.com/1693860</a></p>
<p>Something important is to add this line of code to your file config/sitemap.rb</p>
<p>&lt;pre name=&#8221;code&#8221; class=&#8221;ruby&#8221;&gt;<br />
SitemapGenerator::Sitemap.public_path = File.join(Rails.root, &#8220;public&#8221;, &#8220;system&#8221;, &#8220;sitemaps&#8221;).to_s<br />
&lt;/pre&gt;</p>
<p>And here&#8217;s the code</p>
<p>&lt;pre name=&#8221;code&#8221;&gt;<br />
require &#8216;aws&#8217;</p>
<div>
<div id="LC3">class Rake::Task</div>
<div id="LC4">  def replace &amp;block</div>
<div id="LC5">    @actions.clear</div>
<div id="LC6">    prerequisites.clear</div>
<div id="LC7">    enhance &amp;block</div>
<div id="LC8">  end</div>
<div id="LC9">end</div>
<div id="LC10"></div>
<div id="LC11">namespace &#8216;sitemap&#8217; do</div>
<div id="LC12">  desc &#8216;Upload the sitemap files to S3 (using your configuration in config/s3.yml)&#8217;</div>
<div id="LC13">  task :upload_to_s3 =&gt; :environment do</div>
<div id="LC14">    if File.exist?(File.join(Rails.root, &#8220;config&#8221;, &#8220;s3.yml&#8221;))</div>
<div id="LC15"></div>
<div id="LC16">      # Load credentials</div>
<div id="LC17">      s3_options = YAML.load_file(File.join(Rails.root, &#8220;config&#8221;, &#8220;s3.yml&#8221;))[Rails.env].symbolize_keys</div>
<div id="LC18">      bucket_name = s3_options[:bucket]</div>
<div id="LC19">      s3_options.delete(:bucket)</div>
<div id="LC20"></div>
<div id="LC21">      # Establish S3 connection</div>
<div id="LC22">      AWS.config(s3_options)</div>
<div id="LC23"></div>
<div id="LC24">      Dir.entries(File.join(Rails.root, &#8220;public&#8221;, &#8220;system&#8221;, &#8220;sitemaps&#8221;)).each do |file_name|</div>
<div id="LC25">        next if ['.', '..'].include? file_name</div>
<div id="LC26">        path = &#8220;sitemaps/#{file_name}&#8221;</div>
<div id="LC27">        file = File.join(Rails.root, &#8220;public&#8221;, &#8220;system&#8221;, &#8220;sitemaps&#8221;, file_name)</div>
<div id="LC28"></div>
<div id="LC29">        begin</div>
<div id="LC30">          s3 = AWS::S3.new</div>
<div id="LC31">          bucket = s3.buckets.create(bucket_name)</div>
<div id="LC32"></div>
<div id="LC33"></div>
<div id="LC34">          object = bucket.objects[path]</div>
<div id="LC35">          object.write(:file =&gt; file)</div>
<div id="LC36">        rescue Exception =&gt; e</div>
<div id="LC37">          raise</div>
<div id="LC38">        end</div>
<div id="LC39">        puts &#8220;Saved #{file_name} to S3&#8243;</div>
<div id="LC40">      end</div>
<div id="LC41">    end</div>
<div id="LC42">  end</div>
<div id="LC43">end</div>
<div id="LC44"></div>
<div id="LC45">Rake::Task["sitemap:create"].enhance do</div>
<div id="LC46">  Rake::Task["sitemap:upload_to_s3"].invoke</div>
<div id="LC47">end</div>
<div id="LC48"></div>
<div id="LC49">Rake::Task[:'sitemap:refresh'].replace do</div>
<div id="LC50">  if File.exist?(File.join(Rails.root, &#8220;config&#8221;, &#8220;s3.yml&#8221;))</div>
<div id="LC51">    s3_options = YAML.load_file(File.join(Rails.root, &#8220;config&#8221;, &#8220;s3.yml&#8221;))[Rails.env].symbolize_keys</div>
<div id="LC52">    bucket_name = s3_options[:bucket]</div>
<div id="LC53">    SitemapGenerator::Sitemap.ping_search_engines(:sitemap_index_url =&gt; &#8220;https://#{bucket_name}.s3.amazonaws.com/sitemaps/sitemap_index.xml.gz&#8221;)</div>
<div id="LC54">  else</div>
<div id="LC55">    SitemapGenerator::Sitemap.ping_search_engines</div>
<div id="LC56">  end</div>
<div id="LC57">end</div>
<div>&lt;/pre&gt;</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.rorra.com.ar/ar/2012/01/30/updating-sitemap_generator-to-upload-your-files-to-s3-with-aws-s3-and-aws-sdk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tickets de ruby on rails migrados de lighthouse a github</title>
		<link>http://www.rorra.com.ar/ar/2011/05/09/rails-tickets-moved-from-lighthouse-to-github/</link>
		<comments>http://www.rorra.com.ar/ar/2011/05/09/rails-tickets-moved-from-lighthouse-to-github/#comments</comments>
		<pubDate>Mon, 09 May 2011 05:22:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.rorra.com.ar/?p=232</guid>
		<description><![CDATA[Hasta hace unos días, los tickets creados para ruby on rails debían reportarse en lighthouse . Pero ahora, los tickets fueron migrados a github y si querés reportar nuevos tickets, deberías de hacerlo en github .]]></description>
			<content:encoded><![CDATA[<p><br />
Hasta hace unos días, los tickets creados para ruby on rails debían reportarse en lighthouse <<a href="https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/overview">https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/overview</a>>.<br />
<br/><br />
<img src="https://img.skitch.com/20110509-8iwysa87e1yx2mqxi85ending2.jpg" alt="" /><br />
<br/><br />
Pero ahora, los tickets fueron migrados a github y si querés reportar nuevos tickets, deberías de hacerlo en github <<a href="https://github.com/rails/rails/issues">https://github.com/rails/rails/issues</a>>.<br />
<br/><br />
<img src="https://img.skitch.com/20110501-mdxymiiwnr1hr5ha5mmykg38qa.jpg" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.rorra.com.ar/ar/2011/05/09/rails-tickets-moved-from-lighthouse-to-github/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La instalación de xcode 4 se congela</title>
		<link>http://www.rorra.com.ar/ar/2011/03/11/xcode-4-freezes-on-installationla-instalacion-de-xcode-4-se-congela/</link>
		<comments>http://www.rorra.com.ar/ar/2011/03/11/xcode-4-freezes-on-installationla-instalacion-de-xcode-4-se-congela/#comments</comments>
		<pubDate>Fri, 11 Mar 2011 06:04:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.rorra.com.ar/?p=218</guid>
		<description><![CDATA[Están teniendo problemas para instalar XCode 4, porque se congela casi al final? Hay una solución muy sencilla, simplemente tienen que abrir el contenido del paquete, buscar dentro de Resources y ejecutar Xcode and iOS SDK.mpkg Esto lo que va a hacer es abrir el clásico instalador de xcode, con el cuál van a poder [...]]]></description>
			<content:encoded><![CDATA[<p></p>
<p>Están teniendo problemas para instalar XCode 4, porque se congela casi al final?<br />
<br/><br />
Hay una solución muy sencilla, simplemente tienen que abrir el contenido del paquete, buscar dentro de Resources y ejecutar Xcode and iOS SDK.mpkg<br />
<br/><br />
Esto lo que va a hacer es abrir el clásico instalador de xcode, con el cuál van a poder instalarlo sin problemas.<br />
<br/><br />
En el paso 1, van a Aplicaciones, y buscan por el programa &#8220;Install Xcode&#8221;.<br />
<br/><br />
<div id="attachment_219" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.rorra.com.ar/wp-content/uploads/xcode_step1.jpg"><img src="http://www.rorra.com.ar/wp-content/uploads/xcode_step1-300x214.jpg" alt="" title="Installation of XCode 4, step 1" width="300" height="214" class="size-medium wp-image-219" /></a><p class="wp-caption-text">Installation of XCode 4, step 1</p></div><br />
<br/><br />
En el paso 2, click derecho, y apretar en &#8220;Mostrar contenido del paquete&#8221;.<br />
<br/><br />
<div id="attachment_221" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.rorra.com.ar/wp-content/uploads/xcode_step2.jpg"><img src="http://www.rorra.com.ar/wp-content/uploads/xcode_step2-300x63.jpg" alt="" title="Installation of XCode 4, step 2" width="300" height="63" class="size-medium wp-image-221" /></a><p class="wp-caption-text">Installation of XCode 4, step 2</p></div><br />
<br/><br />
En el paso 3, doble click en &#8220;Xcode and iOS SDK.mpkg&#8221;.<br />
<div id="attachment_222" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.rorra.com.ar/wp-content/uploads/xcode_step3.jpg"><img src="http://www.rorra.com.ar/wp-content/uploads/xcode_step3-300x165.jpg" alt="" title="Installation of XCode 4, step 3" width="300" height="165" class="size-medium wp-image-222" /></a><p class="wp-caption-text">Installation of XCode 4, step 3</p></div><br />
Y finalmente, siguen los pasos para terminar la instalación.<br />
<br/><br />
<div id="attachment_223" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.rorra.com.ar/wp-content/uploads/xcode_step4.jpg"><img src="http://www.rorra.com.ar/wp-content/uploads/xcode_step4-300x204.jpg" alt="" title="Installation of XCode 4, step 4" width="300" height="204" class="size-medium wp-image-223" /></a><p class="wp-caption-text">Installation of XCode 4, step 4</p></div><br />
<br/><br />
<div id="attachment_224" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.rorra.com.ar/wp-content/uploads/xcode_step5.jpg"><img src="http://www.rorra.com.ar/wp-content/uploads/xcode_step5-300x198.jpg" alt="" title="Installation of XCode 4, step 5" width="300" height="198" class="size-medium wp-image-224" /></a><p class="wp-caption-text">Installation of XCode 4, step 5</p></div><br />
<br/><br />
<div id="attachment_225" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.rorra.com.ar/wp-content/uploads/xcode_step6.jpg"><img src="http://www.rorra.com.ar/wp-content/uploads/xcode_step6-300x207.jpg" alt="" title="Installation of XCode 4, step 6" width="300" height="207" class="size-medium wp-image-225" /></a><p class="wp-caption-text">Installation of XCode 4, step 6</p></div></p>
]]></content:encoded>
			<wfw:commentRss>http://www.rorra.com.ar/ar/2011/03/11/xcode-4-freezes-on-installationla-instalacion-de-xcode-4-se-congela/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Ruby on Rails 2.3.x video tutorial</title>
		<link>http://www.rorra.com.ar/ar/2010/09/21/ruby-on-rails-2-3-x-video-tutorial/</link>
		<comments>http://www.rorra.com.ar/ar/2010/09/21/ruby-on-rails-2-3-x-video-tutorial/#comments</comments>
		<pubDate>Tue, 21 Sep 2010 14:02:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.rorra.com.ar/?p=213</guid>
		<description><![CDATA[En la reunión que se hizo de pcmasmas.com, fui el encargado de dar una introducción avanzada a rails 3.2.x con haml, sass, authlogic, friendly_id y activescaffold. Prepare unos cuantos videos para dar esta charla y así introducir a unos cuantos desarrolladores al desarrollo de aplicaciones web con ruby on rails. Pueden encontrar esos videos en [...]]]></description>
			<content:encoded><![CDATA[<p></p>
<p>En la reunión que se hizo de <a href="http://www.pcmasmas.com">pcmasmas.com</a>, fui el encargado de dar una introducción avanzada a rails 3.2.x con haml, sass, authlogic, friendly_id y activescaffold.</p>
<p>Prepare unos cuantos videos para dar esta charla y así introducir a unos cuantos desarrolladores al desarrollo de aplicaciones web con ruby on rails.</p>
<p>Pueden encontrar esos videos en los siguientes links:</p>
<p><a href="http://blip.tv/file/4130315">Video 1 of 10: Creando la aplicación con rails</a><br />
<a href="http://blip.tv/file/4130348">Video 2 of 10: Configurando rails con github</a><br />
<a href="http://blip.tv/file/4130513">Video 3 of 10: Creando el layout con haml and sass</a><br />
<a href="http://blip.tv/file/4147906">Video 4 of 10: Implementando autentificación con authlogic</a><br />
<a href="http://blip.tv/file/4147810">Video 5 of 10: Creando los modelos categorías y productos</a><br />
<a href="http://blip.tv/file/4147836">Video 6 of 10: Creando el administrador con activescaffold</a><br />
<a href="http://blip.tv/file/4147846">Video 7 of 10: Navegando categorías y productos, parte 1 de 2</a><br />
<a href="http://blip.tv/file/4147873">Video 8 of 10: Navegando categorías y productos, parte 2 de 2</a><br />
<a href="http://blip.tv/file/4147915">Video 9 of 10: Mejorando la navegación con friendly_id</a><br />
<a href="http://blip.tv/file/4147962">Video 10 of 10: Retocando el administrador con activescaffold, implementando friendly_id en el administrador.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.rorra.com.ar/ar/2010/09/21/ruby-on-rails-2-3-x-video-tutorial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rails 3 released, bundler 1.0 released!!!!</title>
		<link>http://www.rorra.com.ar/ar/2010/08/30/rails-3-released-bundler-1-0-released/</link>
		<comments>http://www.rorra.com.ar/ar/2010/08/30/rails-3-released-bundler-1-0-released/#comments</comments>
		<pubDate>Mon, 30 Aug 2010 13:44:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.rorra.com.ar/?p=207</guid>
		<description><![CDATA[Rails 3.0 ha estado bajo desarrollo por dos años, así que es con un inmenso placer que podemos declarar que finalmente esta aquí. Hemos traído el trabajo recopilado de más de 1600 contribuidores para hacer todo mejor, más rápido, limpio y más hermoso. David Heinemeier Hansson En este momento, si ejecutan gem install rails, van [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Rails 3.0 ha estado bajo desarrollo por dos años, así que es con un inmenso placer que podemos declarar que finalmente esta aquí. Hemos traído el trabajo recopilado de más de 1600 contribuidores para hacer todo mejor, más rápido, limpio y más hermoso.
</p></blockquote>
<p>David Heinemeier Hansson</p>
<p>En este momento, si ejecutan gem install rails, van a ver que instala la versión 3 <img src='http://www.rorra.com.ar/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Por que? Porque es estable! (O debería de serlo (A)).</p>
<p>Donde empiezo?</p>
<p>Deberías de empezar revisando <a href="http://rubyonrails.org/screencasts/rails3/">&#8220;rails 3 screencasts&#8221;</a> que podes encontrar en el sitio de rails. Es una gran introducción para ver que cosas nuevas trae rails 3. Y como siempre, se puede encontrar una buena cantidad de material en <a href="http://railscasts.com/">railscasts</a> acerca de rails 3, como migrar a rails 3, etc.</p>
<p>Podes encontrar también todas las cosas nuevas que trae rails 3 en el sitio oficial, pero para resumir las mas importantes, en rails 3 vas a encontrar:</p>
<ol>
<li>Nuevo query engine para Active Record</li>
<li>Nuevo ruteo para el Action Controller</li>
<li>Nueva api para mails (Action Mailer)</li>
<li>Manejo de dependencias con Bundler</li>
<li>Protección XSS por defecto</li>
<li>Encoding soportado por ruby 1.9</li>
<li>Active Model: Validaciones, callbacks, etc. para todos los modelos, así se pueden usar otros ORM de manera muy fácil y transparente</li>
<li>API oficial para plugins (railties)</li>
<li>Reescritura del core de rails</li>
<li>Agnosticismo con jQuery, rSpec y Data Mapper</li>
<li>Documentación</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.rorra.com.ar/ar/2010/08/30/rails-3-released-bundler-1-0-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rails 3, mysql y UTF-8</title>
		<link>http://www.rorra.com.ar/ar/2010/07/30/rails-3-mysql-and-utf-8/</link>
		<comments>http://www.rorra.com.ar/ar/2010/07/30/rails-3-mysql-and-utf-8/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 18:01:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.rorra.com.ar/?p=192</guid>
		<description><![CDATA[Empezaron a trabajar con rails 3? Se dieron cuenta que las bases de datos con encoding UTF-8 no funcionan tan bien como esperan? Esto es porque la gema &#8220;mysql&#8221; trabaja con ASCII-8BIT encoding, pero ruby 1.9 y rails 3 trabajan con UTF-8, así que cuando crean un modelo se graba en la base de datos, [...]]]></description>
			<content:encoded><![CDATA[<p><br />
Empezaron a trabajar con rails 3? Se dieron cuenta que las bases de datos con encoding UTF-8 no funcionan tan bien como esperan? Esto es porque la gema &#8220;mysql&#8221; trabaja con ASCII-8BIT encoding, pero ruby 1.9 y rails 3 trabajan con UTF-8, así que cuando crean un modelo se graba en la base de datos, pero cuando recuperan esos modelos de la base de datos, no muestra la información que uds. originalmente grabaron.<br />
Cual es la solución? Bueno, hay 3, la más recomendada, usar la gema &#8220;mysql2&#8243;, para esto, editen el archivo Gemfile para incluirla:</p>
<pre name="code" class="ruby">
gem "mysql2"</pre>
<p>Y luego editen databases.yml y cambien el adaptador a mysql2</p>
<pre name="code" class="ruby">
development:
  adapter: mysql2
  database: fun_development
  user: root
  password:
  encoding: utf8</pre>
<p>Otra solución, es simplemente en vez de usar la gema &#8220;mysql&#8221; usen la gema &#8220;ruby-mysql&#8221;, pero es muy lenta porque es una gema 100% ruby.</p>
<pre name="code" class="ruby">
gem "ruby-mysql"</pre>
<p>La última solución, es un monkey patch para seguir utilizando la gema mysql, pero también es lenta, así que de nuevo, recomiendo usar la gema mysql 2.</p>
<pre name="code" class="ruby">
require 'mysql'

class Mysql::Result
  def encode(value, encoding = "utf-8")
    String === value ? value.force_encoding(encoding) : value
  end

  def each_utf8(&#038;block)
    each_orig do |row|
      yield row.map {|col| encode(col) }
    end
  end
  alias each_orig each
  alias each each_utf8

  def each_hash_utf8(&#038;block)
    each_hash_orig do |row|
      row.each {|k, v| row[k] = encode(v) }
      yield(row)
    end
  end
  alias each_hash_orig each_hash
  alias each_hash each_hash_utf8
end</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.rorra.com.ar/ar/2010/07/30/rails-3-mysql-and-utf-8/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Contribuir al fuente de rails es algo más fácil de lo que piensan</title>
		<link>http://www.rorra.com.ar/ar/2010/07/29/contributing-to-ruby-on-rails-source-code-is-so-easy/</link>
		<comments>http://www.rorra.com.ar/ar/2010/07/29/contributing-to-ruby-on-rails-source-code-is-so-easy/#comments</comments>
		<pubDate>Thu, 29 Jul 2010 16:59:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.rorra.com.ar/?p=186</guid>
		<description><![CDATA[Mi primera contribución a rails ya esta hecha Si leen mis posts anteriores, van a encontrar como instalar y trabajar con rails edge, ahora voy a explicar como configurar un buen environment de rails para vivir en rails edge y ayudar a la comunidad de rails revisando los problemas en lighthouseapp.com verificando si realmente son [...]]]></description>
			<content:encoded><![CDATA[<p><br />
<br/><br />
Mi primera <a href="http://github.com/rails/rails/commit/aa054c35f7809b57ecb105e485e4436d9fe37b1b">contribución a rails</a> ya esta hecha <img src='http://www.rorra.com.ar/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
<br/><br />
Si leen mis posts anteriores, van a encontrar como instalar y trabajar con rails edge, ahora voy a explicar como configurar un buen environment de rails para vivir en rails edge y ayudar a la comunidad de rails revisando los problemas en <a href="https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets">lighthouseapp.com</a> verificando si realmente son bugs o no, creando fixes para los bugs, o porque no, creando una nuevo feature para el framework.<br />
<br/><br />
Suponiendo que ya instalaron la ultima versión de rails (en este momento rails 3 rc), necesitan obtener el código fuente actualizado de rails desde github, y hacer que su proyecto de rails con el que van a trabajar use esa versión, así pueden modificarla para crear fixes, testear bugs, etc.</p>
<pre name="code" class="ruby">
git checkout http://github.com/rails/rails.git
</pre>
<p><br/><br />
Creamos la aplicación para hacer test/development</p>
<pre name="code" class="ruby">
rails new my_app
</pre>
<p><br/><br />
Editamos el archivo Gemfile de my_app (my_app/Gemfile) para usar el código fuente de rails con el que van a trabajar, pasando a &#8220;rails gem&#8221; el parámetro :path donde esta el código de rails instalado</p>
<pre name="code" class="ruby">
gem 'rails', :path => File.expand_path('../../rails',  __FILE__)
</pre>
<p><br/><br />
Y con eso terminamos, ahora pueden seguir esta <a href="http://edgeguides.rubyonrails.org/contributing_to_rails.html">guía</a> para ver como trabajar con git y así poder crear posts válidos de los patches en los que trabajen.patches.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rorra.com.ar/ar/2010/07/29/contributing-to-ruby-on-rails-source-code-is-so-easy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rails 3.0 RC Liberado!!!!</title>
		<link>http://www.rorra.com.ar/ar/2010/07/27/rails-3-0-rc-released/</link>
		<comments>http://www.rorra.com.ar/ar/2010/07/27/rails-3-0-rc-released/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 15:00:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.rorra.com.ar/?p=178</guid>
		<description><![CDATA[Finalmente, rails 3.0 RC fue liberado, lo cuál es una excelente noticia porque rails 3.0 trae un monton de updates muy copados, y va a ser más divertido que antes desarrollar en rails 3.0. Me pregunto la cantidad de trabajo que vamos a tener ahora migrando las aplicaciones de rails 2.3.x a rails 3.x. Rails [...]]]></description>
			<content:encoded><![CDATA[<p></p>
<p>Finalmente, rails 3.0 RC fue liberado, lo cuál es una excelente noticia porque rails 3.0 trae un monton de updates muy copados, y va a ser más divertido que antes desarrollar en rails 3.0. Me pregunto la cantidad de trabajo que vamos a tener ahora migrando las aplicaciones de rails 2.3.x a rails 3.x.<br />
Rails 3.0 RC fue liberado justo 21 horas después de que bundler 1.0.0.RC.1 fue liberado, realmente una coincidencia como dicen en el blog de rails? Mmmhhh..  Lo loco fue que hasta ayer a la noche, por unos cambios de último momento, bundler 1.0.0.beta.10 me tiraba errores, y ahora por arte de magia ya no tengo errores <img src='http://www.rorra.com.ar/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Como empezar a jugar con rails 3.0.RC? Muy sencillo, primero, instalamos <a href="http://rvm.beginrescueend.com/">rvm</a>, después de eso, vamos a instalar ruby 1.9.2 RC 2</p>
<pre name="code" class="ruby">
rvm install 1.9.2</pre>
<p>Ahora vamos a empezar a utilizar ruby 1.9.2</p>
<pre name="code" class="ruby">
rvm 1.9.2</pre>
<p>Seguimos con la instalación de bundler, y no vamos a utilizar sudo en ningún momento, porque estamos usando rvm</p>
<pre name="code" class="ruby">
gem install bundler -v 1.0.0.rc.1</pre>
<p>Ahora vamos a instalar rails rc 1</p>
<pre name="code" class="ruby">
gem install rails --pre</pre>
<p>Ya podemos empezar a jugar con rails 3.0</p>
<pre name="code" class="ruby">
rails app my_app_name
cd my_app_name
bundle install</pre>
<p>Finalmente, en lugar de congelar nuestra aplicación con rails 3.0.RC 1, vamos a trabajar con la ultima versión de rails que esta siendo desarrollada (porque vamos a encontrar bugs en la release candidate), editamos el archivo Gemfile y hacemos estas modificaciones:</p>
<pre name="code" class="ruby">
#gem 'rails', '3.0.0.rc'

# Bundle edge Rails instead:
gem 'rails', :git => 'git://github.com/rails/rails.git'</pre>
<p>Actualizamos la aplicación con la última versión de rails</p>
<pre name="code" class="ruby">
bundle install</pre>
<p>Y terminamos <img src='http://www.rorra.com.ar/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Pueden reportar todos los bugs que encuentren en <a href="https://rails.lighthouseapp.com/projects/8994-ruby-on-rails">https://rails.lighthouseapp.com/projects/8994-ruby-on-rails</a>, y también revisar los bugs que ya estan reportados, reproducirlos y confirmar si realmente es un bug o no, y no se olviden, al mismo tiempo están testeando bundler 1.0.0.RC.1, así que si encuentran problemas con bundler, pueden reportarlos en <a href="http://github.com/carlhuda/bundler/issues">http://github.com/carlhuda/bundler/issues</a>.<br />
<strong>Esta es su oportunidad para devolverle a la comunidad de rails algo de lo que la comunidad les da a ustedes todos los días!!!</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rorra.com.ar/ar/2010/07/27/rails-3-0-rc-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalando RubyDebug con ruby 1.9.2 y rails 3 para RubyMine</title>
		<link>http://www.rorra.com.ar/ar/2010/07/24/installing-rubydebug-with-ruby-1-9-2-and-rails-3-to-use-rubymine/</link>
		<comments>http://www.rorra.com.ar/ar/2010/07/24/installing-rubydebug-with-ruby-1-9-2-and-rails-3-to-use-rubymine/#comments</comments>
		<pubDate>Sat, 24 Jul 2010 20:26:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.rorra.com.ar/?p=171</guid>
		<description><![CDATA[Si están tratando de instalar ruby-debug para debugear sus aplicaciones en rails (o por ahí ruby-debug-ide para RubyMine) y están teniendo problemas, porque tienen instalado en el sistema ruby 1.8.7, y están usando rvm para poder testear rails edge con ruby 1.9.2 Lo primero a notar es que todos los sources que instalaron con rvm [...]]]></description>
			<content:encoded><![CDATA[<p><br />
Si están tratando de instalar ruby-debug para debugear sus aplicaciones en rails (o por ahí ruby-debug-ide para RubyMine) y están teniendo problemas, porque tienen instalado en el sistema ruby 1.8.7, y están usando rvm para poder testear rails edge con ruby 1.9.2</p>
<p>Lo primero a notar es que todos los sources que instalaron con rvm estan en $rvm_path/src, así que en caso de que estén usando ruby 1.9.2 rc2 como estoy haciendo yo en este momento, la instalación es muy sencilla.</p>
<pre name="code" class="ruby">
gem install ruby-debug-ide19 -- --with-ruby-include=$rvm_path/src/ruby-1.9.2-rc2/
</pre>
<p>Pero si están usando ruby 1.9.1 o cualquier otra versión, pueden fácilmente hacer un ls $rvm_path/src para encontrar la ubicación exacta para compilar ruby-debug-ide19 para su instalación de rvm.</p>
<p>Ahora pueden agregar la gem al archivo Gemfile si están planeando debugear desde la consola</p>
<pre name="code" class="ruby">
gem 'ruby-debug19', :require => 'ruby-debug', :group => :development
</pre>
<p>Y luego correr</p>
<pre name="code" class="ruby">
rails s --debug
</pre>
<p>O si están usando rubymine, el debug va a empezar, aunque todavía no esta soportado al 100% para ruby 1.9.x, con un poco de suerte lo arreglan antes de liberar la versión 2.3.5, porque creo que nadie quiere usar rails 3 sin ruby 1.9.2 o superior, o al menos, yo no quiero <img src='http://www.rorra.com.ar/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.rorra.com.ar/ar/2010/07/24/installing-rubydebug-with-ruby-1-9-2-and-rails-3-to-use-rubymine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Integrando radiant 0.9, globalize y GeoIP</title>
		<link>http://www.rorra.com.ar/ar/2010/01/10/integrating-radiant-globalize-and-geoip/</link>
		<comments>http://www.rorra.com.ar/ar/2010/01/10/integrating-radiant-globalize-and-geoip/#comments</comments>
		<pubDate>Sun, 10 Jan 2010 09:28:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.rorra.com.ar/?p=156</guid>
		<description><![CDATA[Después de bajar y usar radiant 0.9 con globalize, me di cuenta que además quería que los usuarios sean dirigidos por default al sitio del lenguaje correspondiente, checkeando el IP para saber desde adonde estaban navegando. Y obvio, necesitaba GeoIP. Instale GeoIP y después me quedaba hacer algunas modificaciones al plugin globalize para lograr mi [...]]]></description>
			<content:encoded><![CDATA[<p><br />
Después de <a href="http://www.rorra.com.ar/ar/2009/12/30/installing-radiant-09-with-multiple-language-support/">bajar y usar radiant 0.9 con globalize</a>, me di cuenta que además quería que los usuarios sean dirigidos por default al sitio del lenguaje correspondiente, checkeando el IP para saber desde adonde estaban navegando. Y obvio, necesitaba GeoIP.<br />
Instale <a href="http://github.com/cjheath/geoip/">GeoIP</a> y después me quedaba hacer algunas modificaciones al plugin globalize para lograr mi acometido.<br />
Primero edite config/environment.rb y agregue la linea para cargar GeoIP con la aplicación</p>
<pre name="code" class="ruby">
config.gem 'geoip'
</pre>
<p>Luego, modifique el archivo vendor/extensions/globalize2/lib/globalize2/application_controller_extensions.rb</p>
<pre name="code" class="ruby">
module Globalize2
  module ApplicationControllerExtensions
    def self.included(base)
      base.send(:include, InstanceMethods)
      base.class_eval do
        before_filter :set_locale
      end
    end

    module InstanceMethods
      def set_locale
        @locale = params[:locale] || session[:locale] || cookies[:locale] ||
                Globalize2Extension.ip_lookup(request.remote_ip) 

        session[:locale] = @locale
        cookies[:locale] = @locale
        I18n.locale = @locale
      end

      def reset_locale
        unless I18n.locale == Globalize2Extension.default_language
          locale = Globalize2Extension.default_language
          session[:locale] = locale
          I18n.locale = locale
          flash.now[:notice] = "The locale has been changed to default."
        end
      end
    end
  end
end
</pre>
<p></br><br />
Como pueden ver en el código, también checkeo si el usuario selecciono algún lenguaje alguna vez en la cookie, y cuando el usuario selecciona (u obtiene un lenguaje por su geo localización), seteo la cookie, así la próxima vez que vuelva al sitio, va a ver el sitio con el último lenguaje seleccionado.<br />
Finalmente, modifique el archivo vendor/extensions/globalize2/globalize2_extension.rb y agregue el siguiente método, donde obtengo el código del país del usuario, y después seteo el locale correspondiente a mi sitio en base a su IP, o el lenguaje por defecto.</p>
<pre name="code" class="ruby">
  def ip_lookup(ip)
    g = GeoIP.new( File.join(File.dirname(__FILE__), '..', '..', 'gems', 'geoip-0.8.6', 'GeoIP.dat'))
    r = g.country(ip)
    country_code = r[3]
    case country_code
      when 'DE'
        'de'
      when 'GB'
        'uk'
      when 'AU'
        'au'
      when 'FR'
        'fr'
      when ' US'
        'us'
      else
        'us'
    end
  end</pre>
<p>Y finalmente, tenemos que decirle a Radiant que cargue la librería GeoIP, así que en el mismo archivo agregamos</p>
<pre name="code" class="Ruby">
  extension_config do |config|
    config.gem 'geoip', :source => 'http://github.com'
  end</pre>
<p></br><br />
So that&#8217;s all, now you have GeoIP working with globalize and Radiant 0.9 <img src='http://www.rorra.com.ar/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.rorra.com.ar/ar/2010/01/10/integrating-radiant-globalize-and-geoip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

