<?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>Un maño entre gaúchos &#187; Trabalho</title>
	<atom:link href="http://blog.luisbosque.com/category/trabalho/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.luisbosque.com</link>
	<description></description>
	<lastBuildDate>Thu, 12 May 2011 15:38:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>En The Cocktail buscamos un Administrador de Sistemas Senior</title>
		<link>http://blog.luisbosque.com/2011/05/12/en-the-cocktail-buscamos-un-administrador-de-sistemas-senior/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=en-the-cocktail-buscamos-un-administrador-de-sistemas-senior</link>
		<comments>http://blog.luisbosque.com/2011/05/12/en-the-cocktail-buscamos-un-administrador-de-sistemas-senior/#comments</comments>
		<pubDate>Thu, 12 May 2011 15:38:30 +0000</pubDate>
		<dc:creator>luis</dc:creator>
				<category><![CDATA[Madrid]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[trabajo]]></category>
		<category><![CDATA[Trabalho]]></category>
		<category><![CDATA[administrador de sistemas senior]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://blog.luisbosque.com/?p=448</guid>
		<description><![CDATA[En The Cocktail buscamos un Administrador de Sistemas Senior al que le apasione su trabajo y tenga habilidades y ganas para superar los desafíos del día a día. El equipo técnico de The Cocktail desarrolla y administra varias de las aplicaciones Ruby on Rails con más tráfico de España. Trabajamos en un entorno joven y [...]]]></description>
			<content:encoded><![CDATA[<p>En <a href="http://the-cocktail.com/">The Cocktail</a> buscamos un Administrador de Sistemas Senior al que le apasione su trabajo y tenga habilidades y ganas para superar los desafíos del día a día.</p>
<p>El equipo técnico de The Cocktail desarrolla y administra varias de las aplicaciones Ruby on Rails con más tráfico de España.<br />
Trabajamos en un entorno joven y distendido, con un alto nivel de profesionalidad, donde se fomenta la responsabilidad individual.</p>
<p>Si eres la persona indicada para este equipo seguro que te encanta trabajar con todo esto:</p>
<ul>
<li>Virtualización y Cloud Computing</li>
<li>Automatización e integración de sistemas</li>
<li>Fine tunning (nginx, mysql, TCP/IP,&#8230;)</li>
<li>Backups</li>
<li>Alta disponibilidad</li>
<li>Seguridad de servidores</li>
<li>Scripting</li>
<li>Monitorización</li>
<li>Diagnósticos e interpretación de gráficas de sistemas</li>
</ul>
<p>Requisitos:</p>
<ul>
<li>Mínimo 3 años de experiencia con sistemas web basados en Linux</li>
<li>Experiencia con sistemas webs de alto rendimiento y balanceo de carga</li>
<li>Experiencia con servidores web Apache y Nginx</li>
<li>Conocimientos avanzados de TCP/IP y concretamente de HTTP</li>
<li>Experiencia con algún sistema de configuración de servidores (Chef, Puppet, cfengine, &#8230;)</li>
<li>Experiencia con alguna tecnología de virtualización (Xen, KVM, &#8230;)</li>
<li>Experiencia con MySQL Server</li>
<li>Experiencia en el trato con proveedores de infraestructura</li>
<li>Experiencia con servicios comunes de internet como DNS, SMTP, &#8230;</li>
<li>Experiencia con sistemas de control de versiones (SVN, GIT, &#8230;)</li>
<li>Facilidad para desarrollar scripts (Bash, Ruby, Python, Perl, &#8230;)</li>
<li>Indispensable tener buenas cualidades para el trabajo en equipo</li>
<li>Buenas cualidades para resolución de problemas</li>
<li>Proactividad, carácter y decisión.</li>
<li>Interés por el Open Source</li>
<li>Buen nivel de inglés leído y escrito</li>
</ul>
<p>Bonus:</p>
<ul>
<li>Experiencia administrando sistemas Ruby on Rails</li>
</ul>
<p>Si te gusta lo que has leído no dudes en mandarnos tu CV a:<br />
jobs <em>ARROBA</em> the-cocktail <em>PUNTO</em> com</p>
<p>Si no nos conoces y quieres saber un poco más, puedes hacerlo en <a href="http://the-cocktail.com/">http://the-cocktail.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.luisbosque.com/2011/05/12/en-the-cocktail-buscamos-un-administrador-de-sistemas-senior/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Buscamos un Administrador de Sistemas Junior</title>
		<link>http://blog.luisbosque.com/2011/04/18/buscamos-un-administrador-de-sistemas-junior/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=buscamos-un-administrador-de-sistemas-junior</link>
		<comments>http://blog.luisbosque.com/2011/04/18/buscamos-un-administrador-de-sistemas-junior/#comments</comments>
		<pubDate>Mon, 18 Apr 2011 17:25:55 +0000</pubDate>
		<dc:creator>luis</dc:creator>
				<category><![CDATA[Madrid]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[trabajo]]></category>
		<category><![CDATA[Trabalho]]></category>
		<category><![CDATA[job]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[oferta]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[system administrator]]></category>
		<category><![CDATA[the cocktail]]></category>

		<guid isPermaLink="false">http://blog.luisbosque.com/?p=437</guid>
		<description><![CDATA[En The Cocktail buscamos un Administrador de Sistemas Junior al que le apasione su trabajo y tenga habilidades y ganas para superar los desafíos del día a día. El equipo técnico de The Cocktail desarrolla y administra varias de las aplicaciones Ruby on Rails con más tráfico de España. Trabajamos en un entorno joven y [...]]]></description>
			<content:encoded><![CDATA[<p>En <a href="http://the-cocktail.com">The Cocktail</a> buscamos un Administrador de Sistemas Junior al que le apasione su trabajo y tenga habilidades y ganas para superar los desafíos del día a día.</p>
<p>El equipo técnico de The Cocktail desarrolla y administra varias de las aplicaciones Ruby on Rails con más tráfico de España.<br />
Trabajamos en un entorno joven y distendido, con un alto nivel de profesionalidad, donde se fomenta la responsabilidad individual.</p>
<p>Si eres la persona indicada para este equipo seguro que te encanta trabajar con todo esto:</p>
<ul>
<li>Virtualización y Cloud Computing</li>
<li>Automatización e integración de sistemas</li>
<li>Fine tunning (nginx, mysql, TCP/IP,&#8230;)</li>
<li>Backups</li>
<li>Alta disponibilidad</li>
<li>Seguridad de servidores</li>
<li>Scripting</li>
<li>Monitorización</li>
<li>Diagnósticos e interpretación de gráficas de sistemas</li>
</ul>
<p><strong>Requisitos:</strong></p>
<ul>
<li>Que te sientas agusto con una shell Linux delante. Va a ser tu medio de trabajo la mayor parte del tiempo. Debería de gustarte y saber desenvolverte bien con ella y con las herramientas necesarias para la administración Linux del día a día.</li>
<li>Conocimientos básico de Linux internals. Casi el 100% de nuestros servidores son Linux, principalmente Debian. Debes de saber al menos lo básico del funcionamiento de un servidor Linux.</li>
<li>Conocimientos básicos de TCP/IP y concretamente del protocolo HTTP. Aquí, al final, tratamos básicamente con aplicaciones web. Es necesario saber, al menos, lo básico sobre el protocolo y sobre servidores web.</li>
<li>Scripting. No importa si estás acostumbrado a hacer scripts de Bash, Ruby, Python, Perl o lo que sea. La cuestión es que tengas soltura manejando scripts.</li>
<li>Interés por el open source. Casi todas las herramientas que usamos para montar nuestros servidores son open source. Nos gusta el open source y también solemos colaborar de varias formas.</li>
<li>Facilidad con el inglés. Como mínimo has de saber leer y escribir en inglés.</li>
<li>Team player. Somos un equipo. Ya de paso, como también desarrollamos en equipo es bueno conocer algún sistema de control de versiones (SVN, Git,..)</li>
<li>Proactividad, carácter y decisión.</li>
</ul>
<p><strong>Bonus:</strong></p>
<ul>
<li>Conocer Ruby on Rails. Si tienes algo de experiencia con este framework, ya sea a nivel de administración o de desarrollo es un gran extra point.</li>
<li>Experiencia con alguna herramienta de automatización de servidores (chef, puppet, cfengine,&#8230;)</li>
<li>Experiencia con sistemas web distribuidos</li>
</ul>
<p>Si te gusta lo que has leído no dudes en mandarnos tu CV a:<br />
<em>andrea.hidalgo <strong>ARROBA</strong> the-cocktail <strong>PUNTO</strong> com</em></p>
<p>o a través de nuestra página:<br />
<a href="http://the-cocktail.com/es/jobs/administrador-de-sistemas-junior-21">http://the-cocktail.com/es/jobs/administrador-de-sistemas-junior-21</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.luisbosque.com/2011/04/18/buscamos-un-administrador-de-sistemas-junior/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oferta de becario para el área de sistemas de The Cocktail</title>
		<link>http://blog.luisbosque.com/2008/09/30/oferta-de-becario-para-el-area-de-sistemas-de-the-cocktail/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oferta-de-becario-para-el-area-de-sistemas-de-the-cocktail</link>
		<comments>http://blog.luisbosque.com/2008/09/30/oferta-de-becario-para-el-area-de-sistemas-de-the-cocktail/#comments</comments>
		<pubDate>Tue, 30 Sep 2008 16:46:49 +0000</pubDate>
		<dc:creator>luis</dc:creator>
				<category><![CDATA[Madrid]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[trabajo]]></category>
		<category><![CDATA[Trabalho]]></category>
		<category><![CDATA[aprender]]></category>
		<category><![CDATA[becario]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[oferta]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[tecnologia]]></category>
		<category><![CDATA[the cocktail]]></category>
		<category><![CDATA[trabajar]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://lbosque.wordpress.com/?p=140</guid>
		<description><![CDATA[En The Cocktail Experience, empresa dedicada a la consultoría web, estamos interesados en contratar becarios para el área de sistemas. Gente con muchas ganas de trabajar y aprender. El perfil que estamos buscando es el siguiente: Experiencia con sistemas GNU/Linux, especialmente Debian Conocimientos básicos de scripting (en algún interprete tipo bash, ruby, perl, python, &#8230;.) [...]]]></description>
			<content:encoded><![CDATA[<p>En <a href="http://www.the-cocktail.com/">The Cocktail Experience</a>, empresa dedicada a la consultoría web, estamos interesados en contratar becarios para el área de sistemas. Gente con muchas ganas de trabajar y aprender.</p>
<p>El perfil que estamos buscando es el siguiente:</p>
<ul>
<li>Experiencia con sistemas GNU/Linux, especialmente Debian</li>
<li>Conocimientos básicos de scripting (en algún interprete tipo bash, ruby, perl, python, &#8230;.)</li>
<li>Conocimientos básicos de servidores web y servidores de bases de datos (por ejemplo MySQL, Apache&#8230;.)</li>
<li>Interés y compromiso por el software libre</li>
<li>Estudios relacionados (Informática, Telecomunicaciones&#8230;.)</li>
</ul>
<p>Si estás interesado, envía tu CV a: andrea.hidalgo <em><strong>ARROBA</strong></em> the-cocktail <em><strong>PUNTO</strong></em> com</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.luisbosque.com/2008/09/30/oferta-de-becario-para-el-area-de-sistemas-de-the-cocktail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ActiveLDAP, validaciones y callbacks</title>
		<link>http://blog.luisbosque.com/2008/08/05/activeldap-validaciones-y-callbacks/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=activeldap-validaciones-y-callbacks</link>
		<comments>http://blog.luisbosque.com/2008/08/05/activeldap-validaciones-y-callbacks/#comments</comments>
		<pubDate>Tue, 05 Aug 2008 10:25:42 +0000</pubDate>
		<dc:creator>luis</dc:creator>
				<category><![CDATA[programación]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[Trabalho]]></category>
		<category><![CDATA[activeldap]]></category>
		<category><![CDATA[boolean]]></category>
		<category><![CDATA[callback]]></category>
		<category><![CDATA[gnarwl]]></category>
		<category><![CDATA[ldap]]></category>
		<category><![CDATA[postfix]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[vacation]]></category>
		<category><![CDATA[validation]]></category>

		<guid isPermaLink="false">http://lbosque.wordpress.com/?p=122</guid>
		<description><![CDATA[Mientras intentaba implementar el soporte de vacaciones con gnarwl y postfix en una aplicación Rails de gestión de usuarios en LDAP me he encontrado con una situación que no me esperaba. Primero he de comentar por encima en que consiste gnarwl. Se trata de un script al que se le pasa por la entrada standard [...]]]></description>
			<content:encoded><![CDATA[<p>Mientras intentaba implementar el soporte de vacaciones con <a href="http://www.onyxbits.de/gnarwl">gnarwl</a> y <a href="http://www.postfix.org/">postfix</a> en una aplicación <a href="http://www.rubyonrails.org/">Rails</a> de gestión de usuarios en <a href="http://es.wikipedia.org/wiki/LDAP">LDAP</a> me he encontrado con una situación que no me esperaba.</p>
<p>Primero he de comentar por encima en que consiste gnarwl. Se trata de un script al que se le pasa por la entrada standard un correo en texto plano, con su remitente y destinatario. Después el script busca el destinatario del correo en el árbol LDAP donde está guardada toda su información y comprueba si el atributo vacationActive está activado. Si lo está, le envía al remitente del correo un mail con el texto indicado en el atributo vacationInfo.</p>
<p>Al grano. En el modelo del usuario, gracias a <a href="http://ruby-activeldap.rubyforge.org/">ActiveLDAP</a>, tenía indicado que uno de los objectClass que definen a todo usuario en esta aplicación en concreto es el objectClass Vacation.</p>
<p><code></p>
<pre>
ldap_mapping :dn_attribute =&gt; 'uid', :prefix =&gt; 'ou=Usuarios',
             :classes =&gt; ['top', 'person', 'qmailUser', 'inetOrgPerson', 'Vacation']
</pre>
<p></code></p>
<p>Como no quería sobrecargar el formulario de creación de usuario con un campo/checkbox &#8220;Vacaciones&#8221;, he metido un <a href="http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html">callback</a> before_create en el modelo del usuario, de la siguiente forma:</p>
<p><code></p>
<pre>
before_create :set_vacation

def set_vacation
  self.vacationActive = false
end
</pre>
<p></code></p>
<p>De esta forma, la propia definición de objectClass Vacation del usuario se iba a encargar de asignarle ese objectClass y el before_create se iba a encargar de crear el atributo vacationActive y de ponerlo a false.</p>
<p>Cual ha sido mi sorpresa al ir a crear un usuario nuevo y recibir un mensaje típico de validación que no esperaba:</p>
<p><code></p>
<pre>
<strong>1 error prohibited this user from being saved</strong>

There were problems with the following fields:

    * vacationActive is required attribute by objectClass 'Vacation'
</pre>
<p></code></p>
<p>Al principio me ha despistado un poco, pero al final he visto cual era el problema.<br />
Obviamente sabía que cuando una entrada en LDAP tiene el objectClass Vacation, se exige que como mínimo tenga también el atributo vacationActive definido. Lo que no sabía era que ActiveLDAP genera las validaciones en tiempo real consultando primero los objectClass de esa entrada y generandose su lista con los atributos de los que dependen esos objectClass.</p>
<p>Por lo tanto el before_create añadido anteriormente no sirve, ya que es necesario crear ese atributo antes de la validación. Lo correcto sería:</p>
<pre>
before_validation_on_create :set_vacation
</pre>
<p>Además de este detalle se había juntado otro problema que hacía que me costase un poco con la solución. Este problema es que ActiveLDAP no acepta una definición de un booleano de la forma clásica:</p>
<pre>vacationActive = false</pre>
<p>ActiveLDAP acepta valores booleanos de la siguiente en forma de cadenas de la forma &#8220;TRUE&#8221; o &#8220;FALSE&#8221;.<br />
Mirando un poco las tripas de ActiveLDAP he visto que tiene una función para normalizar los valores en el caso de que se le pase true o false. No obstante parece que no aplica esa función a nivel interno, por lo que resulta totalmente inutil en caso de desconocimiento del programador, como en este caso me ha pasado a mi.</p>
<p>Por lo tanto, el callback correcto en esta situación no sería el que he indicado anteriormente, sino que sería este:<br />
<code></p>
<pre>
before_validation_on_create :set_vacation

def set_vacation
  self.vacationActive = "FALSE"
end
</pre>
<p></code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.luisbosque.com/2008/08/05/activeldap-validaciones-y-callbacks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Caracteres inválidos en el parametro page de will_paginate</title>
		<link>http://blog.luisbosque.com/2008/07/23/caracteres-invalidos-en-el-parametro-page-de-will_paginate/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=caracteres-invalidos-en-el-parametro-page-de-will_paginate</link>
		<comments>http://blog.luisbosque.com/2008/07/23/caracteres-invalidos-en-el-parametro-page-de-will_paginate/#comments</comments>
		<pubDate>Wed, 23 Jul 2008 19:44:31 +0000</pubDate>
		<dc:creator>luis</dc:creator>
				<category><![CDATA[programación]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[Trabalho]]></category>
		<category><![CDATA["caracter invalido"]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[will_paginate]]></category>

		<guid isPermaLink="false">http://lbosque.wordpress.com/?p=109</guid>
		<description><![CDATA[Hoy me han llegado al correo varias notificaciones de excepciones una aplicación Rails. Estos errores se han generado por no indicar el parámetro page del will_paginate, de la siguiente forma: http://localhost:3000/fotos?page= El código de will_paginate no contempla eso, por lo que tenía dos opciones. Una poner un filtro en mis controladores para asegurarme de que [...]]]></description>
			<content:encoded><![CDATA[<p>Hoy me han llegado al correo varias <a href="http://agilewebdevelopment.com/plugins/exception_notifier">notificaciones de excepciones</a> una aplicación Rails. Estos errores se han generado por no indicar el parámetro page del <a href="http://github.com/mislav/will_paginate/tree/master">will_paginate</a>, de la siguiente forma:<br />
</p>
<pre>http://localhost:3000/fotos?page=</pre>
<p>
El código de will_paginate no contempla eso, por lo que tenía dos opciones. Una poner un filtro en mis controladores para asegurarme de que hubiese algún número de pagina. Esa opción es muy poco DRY, así que he hecho el siguiente cambio en el collection.rb del plugin de will_paginate:<br />
<br />
<code></p>
<pre>
Index: vendor/plugins/will_paginate/lib/will_paginate/collection.rb
===================================================================
--- vendor/plugins/will_paginate/lib/will_paginate/collection.rb        (revisión: 65)
+++ vendor/plugins/will_paginate/lib/will_paginate/collection.rb        (copia de trabajo)
@@ -16,7 +16,7 @@
     # populating the collection using the +replace+ method.
     #
     def initialize(page, per_page, total = nil)
-      @current_page = page.to_i
+      @current_page = !page.blank? &amp;&amp; page != 0 &amp;&amp; page.to_i != 0 ? page.to_i : 1
       @per_page     = per_page.to_i

       self.total_entries = total if total
</pre>
<p></code><br />
<br />
La verdad es que no se, ni si eso está contemplado en versiones posteriores a la que estoy usando, ni si es una buena solución, pero a mi me ha servido para resolver el problema rápidamente y sin tirar apenas código.<br />
Con ese cambio, además de asegurarme de que la aplicación no de 500 al no poner ningún número en el parámetro page, también me aseguro de que no se rompa por poner un parámetro que no sea un número, como por ejemplo:<br />
</p>
<pre>http://localhost:3000/fotos?page=foobar</pre>
<p>
Pos eso.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.luisbosque.com/2008/07/23/caracteres-invalidos-en-el-parametro-page-de-will_paginate/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Soporte de Syslog para Nginx</title>
		<link>http://blog.luisbosque.com/2008/07/10/soporte-de-syslog-para-nginx/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=soporte-de-syslog-para-nginx</link>
		<comments>http://blog.luisbosque.com/2008/07/10/soporte-de-syslog-para-nginx/#comments</comments>
		<pubDate>Thu, 10 Jul 2008 09:06:08 +0000</pubDate>
		<dc:creator>luis</dc:creator>
				<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[Trabalho]]></category>
		<category><![CDATA["logs centralizados"]]></category>
		<category><![CDATA["Marlon de Boer"]]></category>
		<category><![CDATA[compilar]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[parche]]></category>
		<category><![CDATA[syslog]]></category>

		<guid isPermaLink="false">http://lbosque.wordpress.com/?p=95</guid>
		<description><![CDATA[Estos días tenía la necesidad de hacer que nginx mandase sus logs al syslog local. Nginx no tiene soporte nativo para usar syslog. Puede escribir los logs o en fichero o mandarlos a un pipe. Estuve bsucando y encontré un parche de la versión 0.6.31 que resuelve el problema. Aquí habla también un poco del [...]]]></description>
			<content:encoded><![CDATA[<p>Estos días tenía la necesidad de hacer que <a href="http://nginx.net/">nginx</a> mandase sus logs al syslog local.<br />
Nginx no tiene soporte nativo para usar syslog. Puede escribir los logs o en fichero o mandarlos a un pipe.<br />
Estuve bsucando y encontré un <a href="http://bugs.gentoo.org/show_bug.cgi?id=222373">parche</a> de la versión 0.6.31 que resuelve el problema. <a href="http://www.ruby-forum.com/topic/153141">Aquí</a> habla también un poco del parche.</p>
<p>A pesar de que en ese último link explica por encima como hacerlo, lo voy a contar yo también.</p>
<ul>
<li>Bajamos la versión 0.6.31 de nginx en <a href="http://sysoev.ru/nginx/nginx-0.6.31.tar.gz">http://sysoev.ru/nginx/nginx-0.6.31.tar.gz</a>. Según el comentario de Marlon (el creador del parche) debería funcionar también con las versiones 0.6.30 y 0.6.29, y mirando los changelogs pienso que tambíen debería funcionar en la última que es la 0.6.32. Si alguien lo prueba que me lo diga.</li>
<li>Descomprimimos:
<pre>
# cd /usr/src/
# tar xvzf nginx-0.6.31.tar.gz
</pre>
</li>
<li>Bajamos el parche:
<pre># wget http://bugs.gentoo.org/attachment.cgi?id=153345 -O nginx_syslog.patch</pre>
</li>
<li>Parcheamos:
<pre># patch -p0 &lt; nginx_syslog.patch</pre>
</li>
<li>Compilamos e instalamos nginx:
<pre># cd nginx-0.6.31
# ./configure --with-syslog
# make
# make install</code></li>
</ul>

En mi caso antes de compilar he tenido que hacer un cambio en una linea de los fuentes del nginx. He tenido que substituir en el fichero <em>auto/cc/gcc</em> la siguiente linea:
<pre>CFLAGS="$CFLAGS -Werror"</pre>
<p>por:</p>
<pre>CFLAGS="$CFLAGS"</pre>
<p>Esto únicamente hace que no se rompa la compilación al encontrar algun warning. En mi caso los warning que lanza la compilación se pueden ignorar tranquilamente, por lo que resulta seguro continuar con ellos.</p>
<p>Si todo ha ido bien deberíamos de tener funcionando nginx. Faltaría unicamente configurarlo y ponerlo en marcha. En el fichero de configuración no hace falta indicar nada para que mande correctamente los logs al syslog. Por defecto los manda a la facility daemon.</p>
<p>Yo lo he probado ya en servidores en producción y por el momento funciona estupendamente.</p>
<p>Desde aquí agradezco el esfuerzo a <a href="http://mjdeboer.hyves.nl/">Marlon de Boer</a>, que no he conseguido encontrar un blog suyo donde hacerlo.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.luisbosque.com/2008/07/10/soporte-de-syslog-para-nginx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nueva versión del site del centenario del Internacional de Porto Alegre</title>
		<link>http://blog.luisbosque.com/2008/07/08/nueva-version-del-site-del-centenario-del-internacional-de-porto-alegre/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=nueva-version-del-site-del-centenario-del-internacional-de-porto-alegre</link>
		<comments>http://blog.luisbosque.com/2008/07/08/nueva-version-del-site-del-centenario-del-internacional-de-porto-alegre/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 12:48:37 +0000</pubDate>
		<dc:creator>luis</dc:creator>
				<category><![CDATA[Trabalho]]></category>
		<category><![CDATA[centenario]]></category>
		<category><![CDATA[e21]]></category>
		<category><![CDATA[inter]]></category>
		<category><![CDATA[internacional]]></category>
		<category><![CDATA[Porto Alegre]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://lbosque.wordpress.com/?p=84</guid>
		<description><![CDATA[Update: Este site ya no existe. Fue eliminado una vez pasado el año del centenario. Ayer por la noche se sustituyó en producción el site del Centenario do Inter que estaba funcionando desde Marzo. Las características destacables de esta nueva versión son: Interfaz totalmente renovada. La versión anterior estaba basada en tablas y tenía muchísimas [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Update: Este site ya no existe. Fue eliminado una vez pasado el año del centenario.</strong></p>
<p>Ayer por la noche se sustituyó en producción el site del Centenario do Inter que estaba funcionando desde Marzo.<br />
Las características destacables de esta nueva versión son:</p>
<ul>
<li>Interfaz totalmente renovada. La versión anterior estaba basada en tablas y tenía muchísimas imagenes que podían ser sustituidas perfectamente por texto con estilo.</li>
<li>Galería de fotos. Del mismo estilo que la sección de historias, un usuario puede mandar una foto e indicar una descripcción de la misma. Otros usuarios podrán ver las fotos y votarlas.</li>
<li>Pronto habrá una sección &#8220;Quiz&#8221; en el que todo el mundo podrá participar y demostrar sus conocimientos del club.</li>
</ul>
<p>Todos estos cambios se han realizado con la intención de acercar más el site al usuario y mejorar la interacción. También gracias a esta nueva versión resultará más facil ir incorporando nuevas funcionalidades de forma rápida y menos costosa.</p>
<p>Por supuesto esta versión sigue estando desarrollada en Ruby on Rails y demuestra una vez más que es una de las mejores tecnologías para el desarrollo web, independientemente del proposito o del tamaño del proyecto.</p>
<p>Como hasta ahora este proyecto ha sido fruto de un esfuerzo conjunto con <a href="http://www.e21.com.br">e21</a>, la cual sigue demostrando que es capaz de crear estrategias de marketing y publicidad adaptadas al entorno digital.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.luisbosque.com/2008/07/08/nueva-version-del-site-del-centenario-del-internacional-de-porto-alegre/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VPS de Slicehost</title>
		<link>http://blog.luisbosque.com/2008/06/17/vps-de-slicehost/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=vps-de-slicehost</link>
		<comments>http://blog.luisbosque.com/2008/06/17/vps-de-slicehost/#comments</comments>
		<pubDate>Tue, 17 Jun 2008 13:10:59 +0000</pubDate>
		<dc:creator>luis</dc:creator>
				<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[Trabalho]]></category>
		<category><![CDATA[barato]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[Slicehost]]></category>
		<category><![CDATA[VPS]]></category>
		<category><![CDATA[xen]]></category>

		<guid isPermaLink="false">http://lbosque.wordpress.com/?p=78</guid>
		<description><![CDATA[Hace un tiempo me cogí un VPS (Virtual Private Server) de Slicehost. Había oido hablar de esta empresa por medio de algunos colegas de trabajo, y tenía buenas referencias. En un principio me pillé el 512 slice y lo he estado usando hasta ahora como servidor de producción del site del centenario del Internacional de [...]]]></description>
			<content:encoded><![CDATA[<p>Hace un tiempo me cogí un <a href="http://en.wikipedia.org/wiki/Virtual_private_server">VPS</a> (Virtual Private Server) de <a href="http://www.slicehost.com/">Slicehost</a>.<br />
Había oido hablar de esta empresa por medio de algunos colegas de <a href="http://www.the-cocktail.com/">trabajo</a>, y tenía buenas referencias.</p>
<p>En un principio me pillé el 512 slice y lo he estado usando hasta ahora como servidor de producción del site del centenario del Internacional de Porto Alegre (<strong>ya no existe el site</strong>).</p>
<p>Hace un par de semanas decidí coger otro slice para usarlo como servidor de desarrollo con control de versiones y entorno de pruebas. En un principio elegí el slice 256. Al cabo de unos días vi que iba a terminar metiendole un poco más de caña y con el de 256 me iba a quedar corto. Así que decidí ampliarlo al de 512.<br />
Estoy gratamente sorprendido con el resultado. A través de la web y con un par de clicks, se realizó automáticamente el cambio. Estando el servidor en caliente (es mejor asumir un downtime por si acaso), y con una barra de progreso en la web, vi como en cuestión de 10 minutos el servidor estaba funcionando perfectamente y con su memoria y disco incrementados hasta los valores del 512. En cuanto al incremento de precio, según las explicaciones de la web, realizan un prorateo de los dias que faltan hasta acabar el ciclo de facturación y te lo cargan, por lo tanto no te cobran nada de más.</p>
<p>Aunque como todo, hay cosas que se pueden mejorar, estoy realmente contento con el servicio ofrecido por esta empresa, tanto por la calidad técnica, precios y facilidad de uso.</p>
<p>Ahora es cuando tengo que aprender de ellos y hacer que los Xen de la empresa estén tan currados y automatizados como los de Slicehost. Dentro de poco&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.luisbosque.com/2008/06/17/vps-de-slicehost/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruby, MD5 y OpenLDAP</title>
		<link>http://blog.luisbosque.com/2008/05/31/ruby-md5-y-openldap/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ruby-md5-y-openldap</link>
		<comments>http://blog.luisbosque.com/2008/05/31/ruby-md5-y-openldap/#comments</comments>
		<pubDate>Sat, 31 May 2008 07:45:27 +0000</pubDate>
		<dc:creator>luis</dc:creator>
				<category><![CDATA[Madrid]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[Trabalho]]></category>
		<category><![CDATA[activeldap]]></category>
		<category><![CDATA[Base64]]></category>
		<category><![CDATA[digest]]></category>
		<category><![CDATA[md5]]></category>
		<category><![CDATA[openLDAP]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[SASL]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[seguridad]]></category>
		<category><![CDATA[SSL]]></category>
		<category><![CDATA[TLS]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://lbosque.wordpress.com/?p=74</guid>
		<description><![CDATA[Si lo que quieres es almacenar las contraseñas de usuarios de OpenLDAP encriptadas con el algoritmo MD5, hay que tener en cuenta tres cosas. La primera es que muchos clientes utilizan un recurso para saber de forma automática en que algoritmo está encriptada la contraseña contra la que van a intentar autenticarse. Este recurso, es [...]]]></description>
			<content:encoded><![CDATA[<p>Si lo que quieres es almacenar las contraseñas de usuarios de OpenLDAP encriptadas con el algoritmo MD5, hay que tener en cuenta tres cosas.<br />
La primera es que muchos clientes utilizan un recurso para saber de forma automática en que algoritmo está encriptada la contraseña contra la que van a intentar autenticarse. Este recurso, es añadir el nombre del algoritmo delante de la contraseña, por ejemplo:<br />
<code>{MD5}OFj2IjCsPJFfMAxmQxLGPw==</code></p>
<p>Si no se le fuerza al cliente a que use un algoritmo u otro para autenticarse, mirará (si el cliente está bien implementado) si la contraseña de LDAP tiene entre llaves el nombre del algoritmo y usará en consecuencia ese algoritmo para enviar la contraseña.</p>
<p>Otro tema  a tener en cuenta, es el tipo de encriptación MD5. Normalmente la mayoría de librerías de MD5 permiten la encriptación de una cadena en formato hexadecimal y en binario. Para OpenLDAP, no nos sirve ninguno de los dos formatos a pelo. Lo que debemos hacer para que la contraseña esté en el formato correcto en el árbol LDAP, es encriptarla en MD5 binario y codificarla después en Base64 para que sea legible. La implementación de esto en ruby, y más concretamente en un modelo de Rails sería así:</p>
<p><code></p>
<pre>
require 'digest/md5'
require 'base64'
class User &lt; ActiveLdap::Base
  before_save :encrypt_password

  def encrypt_password
    self.userPassword = "{MD5}" + Base64.encode64(Digest::MD5.digest(self.userPassword))
  end
end
</pre>
<p></code></p>
<p>De ActiveLDAP hablaré un poco otro día.</p>
<p>Lo último a tener en cuenta es que el hecho de guardar contraseñas en MD5 en el árbol LDAP no quiere decir que nuestro sistema sea seguro. Sin contar con todos esos temas de desencriptación por fuerza bruta y todo eso, está el tema del envío de la contraseña por un medio no seguro. Si nuestro cliente (podría ser en este caso una web), no está en la misma máquina que el árbol LDAP, al autenticarse con el método SIMPLE, la contraseña viajará en claro por la red hasta el LDAP.<br />
Para evitar esto tenemos dos opciones. O hacemos que las autenticaciones sean con el método SASL (con DIGEST-MD5 por ejemplo) o simplemente le damos soporte SSL/TLS al slapd, de forma que todo tipo de flujo de paquetes entre el servidor y el cliente vayan encriptados.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.luisbosque.com/2008/05/31/ruby-md5-y-openldap/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Trabajar en The Cocktail</title>
		<link>http://blog.luisbosque.com/2008/05/30/trabajar-en-the-cocktail/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=trabajar-en-the-cocktail</link>
		<comments>http://blog.luisbosque.com/2008/05/30/trabajar-en-the-cocktail/#comments</comments>
		<pubDate>Fri, 30 May 2008 16:16:29 +0000</pubDate>
		<dc:creator>luis</dc:creator>
				<category><![CDATA[Madrid]]></category>
		<category><![CDATA[Ocio]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[Trabalho]]></category>
		<category><![CDATA[brillantes]]></category>
		<category><![CDATA[chocolate]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[galletas]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[limon]]></category>
		<category><![CDATA[maggie]]></category>
		<category><![CDATA[maquetación]]></category>
		<category><![CDATA[perturbados]]></category>
		<category><![CDATA[ruby on rails]]></category>
		<category><![CDATA[the cocktail]]></category>
		<category><![CDATA[trabajo]]></category>
		<category><![CDATA[usabilidad]]></category>

		<guid isPermaLink="false">http://lbosque.wordpress.com/?p=73</guid>
		<description><![CDATA[En The Cocktail estamos buscando nuevas mentes brillantes (con que sean un poco perturbadas es suficiente). Concretamente andamos detrás de maquetadores y programadores Ruby on Rails. No hace falta que seas un gurú, pero sí que le eches ganas. No me voy a extender mucho. Solo puedo decir que hace poco más de 4 meses [...]]]></description>
			<content:encoded><![CDATA[<p>En <a href="http://the-cocktail.com/">The Cocktail</a> <a href="http://www.tecnoempleo.com/ofertas-empleo/the-cocktail/162678">estamos buscando nuevas mentes brillantes</a> (con que sean un poco perturbadas es suficiente). Concretamente andamos detrás de maquetadores y programadores Ruby on Rails. No hace falta que seas un gurú, pero sí que le eches ganas.</p>
<p>No me voy a extender mucho. Solo puedo decir que hace poco más de 4 meses que estoy aquí y no me he arrepentido ni un poquico.</p>
<p>Hacemos un trabajo de calidad, para clientes de calidad. Trabajamos con las últimas tecnologías del entorno web y primamos la innovación y las ganas. Tenemos un gran equipo, agradable y también tenemos galletas de chocolate y de limón.</p>
<p>Así que si te mola el plan o sabes de alguien a quien le vaya a molar, ponte en contacto con nosotros.</p>
<p>PD.: Mejor si no tienes alergia a los perros.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.luisbosque.com/2008/05/30/trabajar-en-the-cocktail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

