<?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/"
	xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
>

<channel>
	<title>Don Quicong&#039;s lair</title>
	<atom:link href="http://blog.donquicong.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.donquicong.com</link>
	<description></description>
	<lastBuildDate>Fri, 23 Apr 2010 20:43:06 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/es/</creativeCommons:license>
		<item>
		<title>Redireccionar todas las peticiones a un puerto hacia localhost</title>
		<link>http://blog.donquicong.com/124/redireccionar-todas-las-peticiones-a-un-puerto-hacia-localhost/</link>
		<comments>http://blog.donquicong.com/124/redireccionar-todas-las-peticiones-a-un-puerto-hacia-localhost/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 20:38:11 +0000</pubDate>
		<dc:creator>Quico</dc:creator>
				<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[localhost]]></category>
		<category><![CDATA[subdominios]]></category>

		<guid isPermaLink="false">http://blog.donquicong.com/?p=124</guid>
		<description><![CDATA[El proyecto en el trabajo actualmente utiliza subdominios del dominio principal, y limita las capacidades o redirige a otro dominio en función del punto de entrada o del usuario, por lo que cuando desarrollo en local necesito que mi ordenador responda las peticiones a todos esos dominios como si fuera al localhost.
La solución rápida con [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">El proyecto en el trabajo actualmente utiliza subdominios del dominio principal, y limita las capacidades o redirige a otro dominio en función del punto de entrada o del usuario, por lo que cuando desarrollo en local necesito que mi ordenador responda las peticiones a todos esos dominios como si fuera al localhost.</p>
<p style="text-align: justify;">La solución rápida con la que he estado trabajando hasta ahora es modificar el fichero /etc/hosts y añadir tantos nombres a la IP 127.0.0.1 como dominios necesito. Algo como esto:</p>
<pre class="brush: plain;">
127.0.0.1 myproject.com www.myproject.com company1.myproject.com
</pre>
<p style="text-align: justify;">Como digo, es la solución rápida, pero no la más cómoda, ya que para cada dominio nuevo que necesite tengo que modificar el fichero hosts, reiniciar el navegador (supongo que habría que limpiar la cache de DNS en lugar de hacer esto) y volver a probar.</p>
<p style="text-align: justify;">Cansado de tener que hacerlo cada dos por tres (si repito algo más de 3 veces, siempre busco una solución para no tener que hacerlo más), he estado buscando una forma de agilizar el proceso, pero no daba con la solución.</p>
<p style="text-align: justify;">En primer lugar intenté ver si con un proxy local me podía valer, pero no encontré ninguno que me permitiera cambiar la dirección IP destino en función del dominio. Por lo que me fui al tema de servidores de DNS locales, y ahí encontré una solución intermedia con <a href="http://www.thekelleys.org.uk/dnsmasq/doc.html">Dnsmasq</a>, mediante el cual podía tener dominios &#8220;*.myproject.dev&#8221; que se redirigían al servidor local, pero que no acababa de convencerme.</p>
<p style="text-align: justify;">Al fin, Alex me dio la solución: usar <a href="http://www.netfilter.org/">iptables</a>. La idea es que todas las URLs que vayan a un puerto determinado, en lugar de ir al destino original, acaben en mi ordenador. Por ejemplo, si escribo <em>http://www.google.com:3000</em> en la barra de direcciones, en lugar de ir a google, se hará una petición a mi ordenador en el puerto 3000. Mola.</p>
<p style="text-align: justify;">La solución es ejecutar  la siguiente linea:</p>
<pre class="brush: bash;">
sudo iptables -t nat -I OUTPUT -p tcp \
      --dport 3000 -j DNAT --to-destination 127.0.0.1
</pre>
<p style="text-align: justify;">et voila!. Todas las peticiones salientes al puerto 3000 se reencaminarán a mi ordenador.</p>
<p style="text-align: justify;">Si en lugar de redirigir todas las peticiones, sólo quisiéramos redirigir las de un servidor determinado, se le puede indicar mediante la IP. Por ejemplo, con la siguiente línea redirigiría todas las peticiones al puerto 3000 de <em>www.google.es</em> a mi ordenador:</p>
<pre class="brush: bash;">
sudo iptables -t nat -I OUTPUT -p tcp -d 216.239.59.104 \
      --dport 3000 -j DNAT --to-destination 127.0.0.1
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.donquicong.com/124/redireccionar-todas-las-peticiones-a-un-puerto-hacia-localhost/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/es/</creativeCommons:license>
	</item>
		<item>
		<title>Actualizando un rails congelado bajo subversion</title>
		<link>http://blog.donquicong.com/98/actualizando-un-rails-congelado-bajo-subversion/</link>
		<comments>http://blog.donquicong.com/98/actualizando-un-rails-congelado-bajo-subversion/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 13:17:04 +0000</pubDate>
		<dc:creator>Quico</dc:creator>
				<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[frozen]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://blog.donquicong.es/?p=98</guid>
		<description><![CDATA[Últimamente estoy actualizando algunos proyectos que tienen rails congelado bajo el directorio vendor -que es lo habitual cuando tienes varios proyectos en una máquina y no quieres estar pendiente de actualizar la aplicación cada vez que rails se actualiza en la máquina-, y lo primero que estoy haciendo es actualizar la versión de rails.
A primera [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Últimamente estoy actualizando algunos proyectos que tienen <a title="Freezing rails" href="http://support.tigertech.net/freeze-rails" target="_blank">rails congelado</a> bajo el directorio vendor -que es lo habitual cuando tienes varios proyectos en una máquina y no quieres estar pendiente de actualizar la aplicación cada vez que rails se actualiza en la máquina-, y lo primero que estoy haciendo es actualizar la versión de rails.</p>
<p style="text-align: justify;">A primera vista, la actualización parece algo trivial:</p>
<pre class="brush: bash;">
rake rails:freeze:gems
rake rails:update
</pre>
<p style="text-align: justify;">Pero cuando tienes el proyecto bajo subversion, en seguida te das cuenta del error: la tarea de rake lo primero que hace es</p>
<pre class="brush: bash;">
rm -rf vendor/rails
mkdir -p vendor/rails
</pre>
<p style="text-align: justify;">con lo que se ha cargado el directorio .svn con toda la información que subversion almacena allí. En cuanto intentas hacer algo con subversion, te encuentras con problemas:</p>
<pre class="brush: bash;">
$ svn st
~       rails
$ svn add rails/
svn: warning: 'rails' is already under version control
$ svn commit rails/
svn: '/home/frsantos/project/vendor/rails' is not a working copy
$ svn del rails/
svn: Directory 'rails/.svn' containing working copy admin area is missing
</pre>
<p style="text-align: justify;">con lo que te toca volver a la versión anterior y volver a empezar:</p>
<pre class="brush: bash;">
rm -rv vendor/rails/
svn up vendor
</pre>
<p style="text-align: justify;">Lo sencillo en este caso es hacer <em>svn delete</em>, <em>svn commit</em> y hacer el freeze de nuevo, pero con esto estamos introduciendo una versión en el repositorio que no es consistente. Para la gente, como yo, a los que les gusta hacer un <em>commit</em> atómico con todos los ficheros que se han modificado para una funcionalidad, he preparado un script de shell que actualiza el directorio rails con los cambios de la última versión rails.</p>
<p><table style="border: 1px solid #CCC;" cellpadding="3" width="100%">
  <tr>
    <td width="35">
      <img src="http://blog.donquicong.com/wp-content/plugins/downloads-manager/img/icons/shell.png" alt="http://blog.donquicong.com/wp-content/plugins/downloads-manager/img/icons/shell.png"/>
    </td>
    <td>
      <b>download:</b> <a href="http://blog.donquicong.com/?file_id=1">upgrade_rails_in_svn.sh</a> <small>(1.79KB)</small><br />
      <b>added:</b> 16/03/2010 <br />
      <b>clicks:</b> 22 <br />
      <b>description:</b> Actualiza una instalación de rails congelada cuando está controlada por subversion <br />
    </td>
  </tr>
</table>
</p>
<p style="text-align: justify;">Además, tiene el extra añadido de que crea un changelist con todos los ficheros modificados en ese directorio, por lo que si usas un entorno gráfico como <a title="Ruby on Rails IDE RubyMine" href="http://www.jetbrains.com/ruby/" target="_blank">RubyMine</a>, te saldrá automáticamente en la pestaña de <em>Changes</em> el <em>changelist</em> con el nombre apropiado con todos los ficheros modificados (si usas este entorno, un consejo: crea un <em>changelist</em> y márcalo como el <em>changelist</em> por defecto. Cuando acabe el proceso, todos los ficheros modificados que no se hayan marcado con un <em>changelist</em> en subversion irán automáticamente a ese sitio).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donquicong.com/98/actualizando-un-rails-congelado-bajo-subversion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/es/</creativeCommons:license>
	</item>
		<item>
		<title>Usando múltiples Rubies con RVM</title>
		<link>http://blog.donquicong.com/69/usando-multiples-rubies-con-rvm/</link>
		<comments>http://blog.donquicong.com/69/usando-multiples-rubies-con-rvm/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 11:16:39 +0000</pubDate>
		<dc:creator>Quico</dc:creator>
				<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://blog.donquicong.es/?p=69</guid>
		<description><![CDATA[Lo primero que hice, incluso antes de empezar a trabajar en la empresa, fue instalarme Ruby 1.8.7 en mi Ubuntu, junto con Rails 2.3.5 y algunas gemas como mongrel. Para ello, seguí los howtos que fui encontrando por internet, como este de Hakido. Tras dejarlo todo configurado, al arrancar Eclipse te configura algunas gemas más [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify; ">Lo primero que hice, incluso antes de empezar a trabajar en la empresa, fue instalarme Ruby 1.8.7 en mi Ubuntu, junto con Rails 2.3.5 y algunas gemas como mongrel. Para ello, seguí los howtos que fui encontrando por internet, como este de <a title="Rails en Karmic" href="http://www.hackido.com/2009/11/install-ruby-on-rails-on-ubuntu-karmic.html">Hakido</a>. Tras dejarlo todo configurado, al arrancar Eclipse te configura algunas gemas más como linecache, ruby-debug-ide y ruby-debug-base, con lo que ya tenía todo configurado para empezar a trabajar.</p>
<p style="text-align: justify; ">Sin embargo, en seguida te das cuenta de que si vas a tener que trabajar en varios proyectos, cada uno iniciado en un momento distinto con distintas versiones de Ruby y/o Rails, entonces cambiar de proyecto se puede hacer algo incómodo. La solución para ello, por supuesto, ya está pensada y es <a title="RVM" href="http://rvm.beginrescueend.com/">RVM</a> (Ruby Version Manager).</p>
<p style="text-align: justify; ">RVM te permite tener distintas versiones de Ruby funcionando al mismo tiempo, con sus gemas particulares, y lo que es mejor, puedes tener todas las combinaciones de ruby/gemas que quieras. De esta forma, podemos tener un Ruby 1.8.6 con Rails 2.3.4, otro 1.8.6-2.3.5, otro 1.8.7-2.3.5 y otro 1.9.2-3.0.0. Simplemente cambias de configuración con un solo comando y a trabajar.</p>
<p style="text-align: justify; ">Al final, he desinstalado todo lo que tenía instalado de ruby en el sistema y lo he vuelto a instalar con RVM de la siguiente forma:</p>
<p style="text-align: justify; ">En primer lugar, instalamos las dependencias necesarias:</p>
<pre class="brush: bash;">sudo apt-get install git-core curl zlib1g-dev libreadline5-dev</pre>
<p style="text-align: justify; ">Después instalamos RMV. Como por ahora no hay un paquete .deb para ubuntu, lo bajamos desde Github:</p>
<pre class="brush: bash;">
mkdir -p ~/.rvm/src/rvm/
cd ~/.rvm/src
git clone http://github.com/wayneeseguin/rvm.git
cd rvm
./install
</pre>
<p>Ahora hay que añadir la siguiente línea en los ficheros ~/.bashrc y ~/.bash_profile</p>
<pre class="brush: bash;">if [[ -s ~/.rvm/scripts/rvm ]] ; then source ~/.rvm/scripts/rvm ; fi</pre>
<p>Cerramos y volvemos a abrir la shell para que nos pille los cambios, y ya estamos listos para instalar las versiones de ruby que necesitemos. Por ejemplo, si queremos instalar las versiones 1.8.7, 1.9.1 y jruby, haremos lo siguiente:</p>
<pre class="brush: bash;">rvm install 1.8.7,1.9.1,jruby</pre>
<p>Lo cual tardará un rato, pues debe descargar y compilar todas las versiones que les hemos dicho. Para seleccionar una versión en concreto:</p>
<pre class="brush: bash;">rvm use 1.8.7</pre>
<p>Y para hacer que una versión en concreto esté seleccionada siempre por defecto:</p>
<pre class="brush: bash;">rvm use 1.8.7 --default</pre>
<p>Ahora ya podemos instalar las gemas que necesitemos en esta versión de ruby, como rails, mongrel, &#8230;</p>
<pre class="brush: bash;">gem install rails mongrel linecache ruby-debug-base ruby-debug-ide</pre>
<p style="text-align: justify;">que se instalarán sólo en la versión de ruby que esté actualmente activa.</p>
<p style="text-align: justify;">Eclipse, sin embargo, tiene problemas para pillar el entorno de desarrollo correcto, por lo que tenemos que modificar el script de arranque y poner algo como esto para arrancar eclipse con la versión por defecto de ruby (podemos sustituir default por una versión concreta si queremos):</p>
<pre class="brush: bash;">[/bash]bash -cl &quot;rvm default; eclipse&quot;[bash]</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.donquicong.com/69/usando-multiples-rubies-con-rvm/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/es/</creativeCommons:license>
	</item>
		<item>
		<title>Tiene narices</title>
		<link>http://blog.donquicong.com/33/tiene-narices/</link>
		<comments>http://blog.donquicong.com/33/tiene-narices/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 19:57:41 +0000</pubDate>
		<dc:creator>Quico</dc:creator>
				<category><![CDATA[ASPGems]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[SGAE]]></category>

		<guid isPermaLink="false">http://blog.donquicong.es/?p=33</guid>
		<description><![CDATA[que habiendo estado casi 6 años trabajando para la SGAE, haya tenido que ver su sede principal en Madrid (alias El Marquesado) al pasar esta mañana camino a mi primera reunión de empresa en ASPGems
]]></description>
			<content:encoded><![CDATA[<p>que habiendo estado casi 6 años trabajando para la SGAE, haya tenido que ver su sede principal en Madrid (alias <em>El Marquesado</em>) al pasar esta mañana camino a mi primera reunión de empresa en ASPGems</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donquicong.com/33/tiene-narices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/es/</creativeCommons:license>
	</item>
		<item>
		<title>Jornadas de formación interna en ASPGems</title>
		<link>http://blog.donquicong.com/23/jornadas-de-formacion-interna-en-aspgems/</link>
		<comments>http://blog.donquicong.com/23/jornadas-de-formacion-interna-en-aspgems/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 13:36:52 +0000</pubDate>
		<dc:creator>Quico</dc:creator>
				<category><![CDATA[ASPGems]]></category>
		<category><![CDATA[escalabilidad]]></category>
		<category><![CDATA[formación]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://blog.donquicong.es/?p=23</guid>
		<description><![CDATA[Aprovechando que tengo un par de semanas de vacaciones entre mi anterior trabajo en Utende y el nuevo en ASPGems, ayer me acerqué a la sede de Madrid On Rails para asistir a una de las charlas de formación interna que hace ASPGems, en este caso,
Lecciones aprendidas desarrollando “webs un poco grandes” con Rails, impartida [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Aprovechando que tengo un par de semanas de vacaciones entre mi anterior trabajo en <a title="Utende" href="http://utende.com">Utende</a> y el nuevo en <a title="ASPGems" href="http://aspgems.com">ASPGems</a>, ayer me acerqué a la sede de <a title="Madrid On Rails" href="http://madridonrails.com">Madrid On Rails</a> para asistir a una de las charlas de formación interna que hace ASPGems, en este caso,<br />
<a title="Enlace Permanente a Lecciones aprendidas desarrollando “webs un poco grandes” con Rails" rel="bookmark" href="http://blog.aspgems.com/2010/01/11/lecciones-aprendidas-desarrollando-webs-un-poco-grandes-con-rails/"><em>Lecciones aprendidas desarrollando “webs un poco grandes” con Rails</em></a>, impartida por <a href="http://diec123.blogspot.com">Diego</a>. La charla en sí estuvo bastante interesante, y siempre viene bien conocer los problemas de rendimiento que han tenido otros en sus webs para cuando te tengas que pelear con la misma situación. Claro que a algunas de las optimizaciones que afectaban a Rails no les saqué todo el jugo posible, porque mi conocimiento de Rails está todavía un poco verde, así que tendré que revisarme la presentación en unos meses, cuando me haya puesto las pilas.</p>
<p style="text-align: justify;">Aparte de la charla, ese día tocaban varias reuniones de empresa, a las que me sumé para conocer el equipo con el que voy a trabajar en breve. A muchos de ellos ya los conocía de mis tiempos de Qarana e incluso de Utende (Javi y yo fuimos cofundadores, entre otros) por lo que sé cómo piensa Agustín y no me sorprendió demasiado su forma de trabajar o la transparencia de la empresa -de hecho, esas han sido algunas de las razones que hicieron que me cambiara de trabajo-. Pero lo que sí me ha sorprendido, y mucho, es lo online que han llegado a estar.</p>
<p style="text-align: justify;">Acostumbrado a trabajar durante 5 años para la SGAE en sus oficinas, donde todo está alojado en sus servidores, es un soplo de aire fresco comprobar que en mi nueva empresa muchas cosas las hacen online, como por ejemplo el correo y los documentos en Gmail, el tracker en <a title="Pivotal Tracker" href="http://www.pivotaltracker.com">Pivotal Tracker</a>, la participación interna con <a title="Yammer" href="http://www.yammer.com">Yammer</a>&#8230;, aparte, por supuesto, de usar <a title="Twitter" href="http://twitter.com">Twitter</a>, messengers, blog personales&#8230; Si ahora mismo, antes de conocer a fondo a ASPGems me pidieran que la definiera con una palabra, esa sería <em>online</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donquicong.com/23/jornadas-de-formacion-interna-en-aspgems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/es/</creativeCommons:license>
	</item>
		<item>
		<title>Hello world!</title>
		<link>http://blog.donquicong.com/1/hello-world/</link>
		<comments>http://blog.donquicong.com/1/hello-world/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 20:48:14 +0000</pubDate>
		<dc:creator>Quico</dc:creator>
				<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://blog.donquicong.es/?p=1</guid>
		<description><![CDATA[Aunque hacer un &#8220;¡Hola Mundo!&#8221; en WordPress ha resultado facilito (sudo aptitude install wordpress), el ponerle unos colorines que me gustasen ha echo que mi propósito de año nuevo de tener un blog público se haya quedado en agua de borrajas. Pero como no es serio tener el blog en construcción durante 2 semanas, al [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Aunque hacer un &#8220;¡Hola Mundo!&#8221; en WordPress ha resultado facilito (<code>sudo aptitude install wordpress</code>), el ponerle unos colorines que me gustasen ha echo que mi propósito de año nuevo de tener un blog público se haya quedado en agua de borrajas. Pero como no es serio tener el <em>blog en construcción</em> durante 2 semanas, al final me he forzado a elegir el tema y poner en funcionamiento el blog. <em>Et voila!</em></p>
<p style="text-align: justify;">Lo dicho, <em>¡Hola Mundo!</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donquicong.com/1/hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/es/</creativeCommons:license>
	</item>
	</channel>
</rss>
