<?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>Open Minded &#187; Probando herramientas</title>
	<atom:link href="http://nacho.larrateguy.com.ar/category/probando-herramientas/feed/" rel="self" type="application/rss+xml" />
	<link>http://nacho.larrateguy.com.ar</link>
	<description>lo que pueda decir, que no se haya dicho ya...</description>
	<lastBuildDate>Wed, 09 Nov 2011 13:35:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Google Buzz!! Bzzz!!!! bzzz!!!!!</title>
		<link>http://nacho.larrateguy.com.ar/2010/02/10/google-buzz-bzzz-bzzz/</link>
		<comments>http://nacho.larrateguy.com.ar/2010/02/10/google-buzz-bzzz-bzzz/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 21:40:33 +0000</pubDate>
		<dc:creator>nacho</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Humor]]></category>
		<category><![CDATA[Probando herramientas]]></category>

		<guid isPermaLink="false">http://nacho.larrateguy.com.ar/?p=393</guid>
		<description><![CDATA[Ajjj Google Buzz! un nuevo servicio que se agregó dentro de mi Gmail. Hoy no tengo ganas de probar nada nuevo! ningún beta nada. Menos algo invasivo que se me metió de golpe ahí tan visible. Creo que igual le di aceptar cuando me logueé en el sistema, pero no recuerdo. Por suerte existe un [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" src="http://nacho.larrateguy.com.ar/wp-content/uploads/HLIC/040b47973e0a2359dee903f83b58912b.png" alt="google buzz logo" width="286" height="68" />Ajjj Google Buzz! un nuevo servicio que se agregó dentro de mi Gmail. Hoy no tengo ganas de probar nada nuevo! ningún beta nada. Menos algo invasivo que se me metió de golpe ahí tan visible. Creo que igual le di aceptar cuando me logueé en el sistema, pero no recuerdo. Por suerte existe un link al pie de página para desactivarlo. <strong>Turn Off Buzz</strong> <img src='http://nacho.larrateguy.com.ar/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> </p>
<p>Lo que aplaudo por ahora es el nombre. Nada más sincero que llamarlo Google Buzz. En el norte le llaman Buzz o a lo que hace &#8220;ruido&#8221;*. Claro, viene de la onomatopeya <em>buzzzz</em> ruido de abejas o algo así. Luego aparecen las Buzz Words, los Buzz Topics, etc. AJAX, The Cloud, Cloud Computing, Business Intelligence (bueno.. este.. esta me gusta ja). Términos acuñados para hacer un poco de ruido con cosas existentes&#8230; meterle un poco de márketing.</p>
<p>En fin&#8230; contradictoriamente, que vivan las buzzwords que muchas veces nos dan de que hablar  jajaja <img src='http://nacho.larrateguy.com.ar/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>* Me entero que a veces se usa<a href="http://en.wikipedia.org/wiki/Buzzword"> con otras intenciones</a> o puede tener otras connotaciones.</p>]]></content:encoded>
			<wfw:commentRss>http://nacho.larrateguy.com.ar/2010/02/10/google-buzz-bzzz-bzzz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Combinación de comandos útiles para Linux</title>
		<link>http://nacho.larrateguy.com.ar/2009/06/02/combinacion-de-comandos-utiles-para-linux/</link>
		<comments>http://nacho.larrateguy.com.ar/2009/06/02/combinacion-de-comandos-utiles-para-linux/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 17:14:15 +0000</pubDate>
		<dc:creator>nacho</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Probando herramientas]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[scripts]]></category>
		<category><![CDATA[snippets]]></category>

		<guid isPermaLink="false">http://nacho.larrateguy.com.ar/?p=279</guid>
		<description><![CDATA[En este post voy a ir agregando comandos útiles que vamos encontrando entre los conocidos (y los que aporten), que permiten realizar tareas desde la consola sin tener que recurrir a programas sofisticados. Confirmar todas las acciones que pregunte un programa interactivo. $ yes &#124; programa devuelve una &#8220;y&#8221; cada vez que el programa quiere [...]]]></description>
			<content:encoded><![CDATA[<p>En este post voy a ir agregando comandos útiles que vamos encontrando entre los conocidos (y los que aporten), que permiten realizar tareas desde la consola sin tener que recurrir a programas sofisticados.</p>
<h2>Confirmar todas las acciones que pregunte un programa interactivo.</h2>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">yes</span> <span style="color: #000000; font-weight: bold;">|</span> programa</pre></div></div>

<p>devuelve una &#8220;y&#8221; cada vez que el programa quiere leer de la entrada estandar</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">yes</span> s <span style="color: #000000; font-weight: bold;">|</span> programa</pre></div></div>

<p>devuelve una &#8220;s&#8221; cada vez que el programa quiere leer de la entrada estandar</p>
<h2>Encontrar archivos duplicados y conservar uno.</h2>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">yes</span> <span style="color: #000000;">1</span> <span style="color: #000000; font-weight: bold;">|</span> fdupes <span style="color: #660033;">-d</span> .<span style="color: #000000; font-weight: bold;">/</span></pre></div></div>

<p>fdupes encuentra mediante md5 archivos duplicados en la carpeta indicada. El parámetro d, le dice que borre el resto conservando el que le indiquemos. Mediante &#8220;yes 1&#8243; le decimos que conserve el primero que encuentra. Cuidado con md5 <img src='http://nacho.larrateguy.com.ar/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</p>
<h2>Generar un PDF con varias páginas en una sola partiendo de otro PDF.</h2>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ pdfnup salida.pdf <span style="color: #660033;">--nup</span> 2x5 <span style="color: #660033;">--orient</span> portrait <span style="color: #660033;">--frame</span> <span style="color: #c20cb9; font-weight: bold;">true</span></pre></div></div>

<p>Dai me contó acerca de una aplicación llamada<strong> pdfnup</strong>. Permite hacer lo que uno quiera con un PDF, como recortarlo (cortarle los márgenes excesivos), agrupar en disposición de tabla varias páginas dentro de cada una (para poder imprimir por ejemplo 2&#215;3 páginas or carilla). Tiene muchas opciones, pero a la vez configuradas por defecto para no necesitar agregar muchas cosas. El archivo de salida se llamará igual que el de entrada más la disposición, por ejemplo &#8220;salida-2&#215;5.pdf&#8221;.</p>
<h2>Recortar varias imágenes y convertirlas en PDF (una por página).</h2>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ convert <span style="color: #660033;">-crop</span> <span style="color: #ff0000;">'750x350+110+200'</span> +repage resp?<span style="color: #000000; font-weight: bold;">/*</span>.png salida.pdf</pre></div></div>

<p>convert es una de las aplicaciones de ImageMagick. Conserva los originales, permitiendo mientras convertimos de formato, modificarle brillo, contraste, recortarla, rotarla, y muchos etcéteras. Si quisieramos que convierta cada imagen en un archivo separado, bastaría con combinarlo con</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">find</span> .<span style="color: #000000; font-weight: bold;">/</span> <span style="color: #660033;">-iname</span> <span style="color: #ff0000;">'*.png'</span> <span style="color: #660033;">-exec</span> convert <span style="color: #ff0000;">'{}'</span> <span style="color: #ff0000;">'{}.pdf'</span> <span style="color: #ff0000;">';'</span></pre></div></div>

<p>donde {} representa el nombre del archivo y &#8216;;&#8217; finaliza el comando.</p>]]></content:encoded>
			<wfw:commentRss>http://nacho.larrateguy.com.ar/2009/06/02/combinacion-de-comandos-utiles-para-linux/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Autocompletado en bash personalizado (para tus programas!)</title>
		<link>http://nacho.larrateguy.com.ar/2009/04/09/autocompletado-bash-personalizado-programas/</link>
		<comments>http://nacho.larrateguy.com.ar/2009/04/09/autocompletado-bash-personalizado-programas/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 23:32:20 +0000</pubDate>
		<dc:creator>nacho</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Probando herramientas]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[scripts]]></category>

		<guid isPermaLink="false">http://nacho.larrateguy.com.ar/?p=218</guid>
		<description><![CDATA[Bash incorpora una característica que permite el autocompletado en una terminal de los parámetros que acepta un programa. Para esto utiliza un script con diversas funciones, y permite que incorporando un archivo y ciertos comandos, podamos definir como se autcompletarán los programas que querramos. Por ejemplo, tenemos hecho un programa con Milton y Daiana, que [...]]]></description>
			<content:encoded><![CDATA[<p>Bash incorpora una característica que permite el autocompletado en una terminal de los parámetros que acepta un programa. Para esto utiliza un script con diversas funciones, y permite que incorporando un archivo y ciertos comandos, podamos definir como se autcompletarán los programas que querramos.</p>
<p>Por ejemplo, tenemos hecho un programa con Milton y Daiana, que acepta varios parámetros. Hay algunos que no los usamos hace tiempo, y para no estar consultando la ayuda, pensamos que estaría bueno que se autocompletara.</p>
<p>El programa está hecho en mono, y se ejecuta haciendo</p>

<div class="wp_syntax"><div class="code"><pre class="sh" style="font-family:monospace;">$ ./programa.exe</pre></div></div>

<p>o bien</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ mono programa.exe</pre></div></div>

<p>Aquí el archivo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># Author: Nacho</span>
<span style="color: #666666; font-style: italic;"># /etc/bash_completion.d/programa</span>
<span style="color: #666666; font-style: italic;"># copy it there and enjoy magic, compadre!</span>
<span style="color: #666666; font-style: italic;">#</span>
_programa<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> 
<span style="color: #7a0874; font-weight: bold;">&#123;</span>
    <span style="color: #7a0874; font-weight: bold;">local</span> cur prev opts
&nbsp;
    <span style="color: #007800;">COMPREPLY</span>=<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
    <span style="color: #007800;">cur</span>=<span style="color: #ff0000;">&quot;<span style="color: #007800;">${COMP_WORDS[COMP_CWORD]}</span>&quot;</span>
    <span style="color: #007800;">prev</span>=<span style="color: #ff0000;">&quot;<span style="color: #007800;">${COMP_WORDS[COMP_CWORD-1]}</span>&quot;</span>
    <span style="color: #007800;">opts</span>=<span style="color: #ff0000;">&quot;-h -? --help -r --reemp -e -f --extrae-flex -c -g -d --vft&quot;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${cur}</span>&quot;</span> == -<span style="color: #000000; font-weight: bold;">*</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> ; <span style="color: #000000; font-weight: bold;">then</span>
        <span style="color: #007800;">COMPREPLY</span>=<span style="color: #7a0874; font-weight: bold;">&#40;</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">compgen</span> <span style="color: #660033;">-W</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${opts}</span>&quot;</span> <span style="color: #660033;">--</span> <span style="color: #800000;">${cur}</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#41;</span>
    <span style="color: #000000; font-weight: bold;">else</span>
        _filedir  <span style="color: #ff0000;">'@(xml|sql)'</span>
    <span style="color: #000000; font-weight: bold;">fi</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
<span style="color: #7a0874; font-weight: bold;">complete</span> <span style="color: #660033;">-F</span> _programa <span style="color: #007800;">$filenames</span> programa.exe
<span style="color: #7a0874; font-weight: bold;">complete</span> <span style="color: #660033;">-F</span> _command <span style="color: #007800;">$filenames</span> mono</pre></td></tr></table></div>

<p>La línea 12 indica las opciones que acepta el programa.<br />
La línea 17 indica que se listen (si no es que estoy intentando poner alguna opción) los directorios y archivos pero los XML y SQL únicamente.<br />
La línea 20 indica bajo que nombre de ejecutable se completará y qué función es la encargada de tal tarea.<br />
La línea 21 es la que indica que &#8220;mono&#8221; es un &#8220;command&#8221; al igual que otros definidos (sudo, fakeroot, nohup) que requieren autocompletado luego para el programa que le sigue.</p>
<p>En vez de listar la línea 12, se podría haber hecho que el programa en cuestión devuelva por defecto la lista de los parámetros que acepta. La forma de hacer esto sería reemplazar esa línea por:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>12
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">    <span style="color: #007800;">opts</span>=<span style="color: #000000; font-weight: bold;">`</span>mono programa.exe -p<span style="color: #000000; font-weight: bold;">`</span></pre></td></tr></table></div>

<p>Python tiene un módulo para realizar esto en forma más sencilla: <a href="http://furius.ca/optcomplete/">optcomplete</a>.</p>
<p>Espero les sea de utilidad!</p>]]></content:encoded>
			<wfw:commentRss>http://nacho.larrateguy.com.ar/2009/04/09/autocompletado-bash-personalizado-programas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Retornando arrays con PlPython</title>
		<link>http://nacho.larrateguy.com.ar/2009/04/09/retornando-arrays-con-plpython/</link>
		<comments>http://nacho.larrateguy.com.ar/2009/04/09/retornando-arrays-con-plpython/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 20:01:35 +0000</pubDate>
		<dc:creator>nacho</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Probando herramientas]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[bases de datos]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://nacho.larrateguy.com.ar/?p=224</guid>
		<description><![CDATA[PlPython es un lenguaje procedural (PL) que permite utilizar Python en una base de datos PostreSQL para poder escribir los procedimientos almacenados. En realidad actualmente es un lenguaje no confiado (untrusted). Se puede leer más aquí: PlPythonu. Si bien Python maneja listas, diccionarios y otras estructuras de datos con bastante simpleza, no encontramos una manera [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.postgresql.org/docs/8.2/interactive/plpython.html">PlPython</a> es un lenguaje procedural (PL) que permite utilizar Python en una base de datos PostreSQL para poder escribir los procedimientos almacenados. En realidad actualmente es un lenguaje no confiado (untrusted). Se puede leer más aquí: <a href="http://www.python.com.ar/moin/PlPython">PlPythonu</a>.</p>
<p>Si bien Python maneja listas, diccionarios y otras estructuras de datos con bastante simpleza, no encontramos una manera de hacer casting a un array o vector de PostgreSQL. Particularmente, en el ejemplo debajo, se puede ver que implementamos un wrapper para poder utilizar el motor de expresiones regulares de Python, dentro de la DB, ya que tiene algunas cuestiones más avanzadas que el que trae PgSQL por defecto.</p>
<p>Lo que hicimos fue crear una cadena, con la representación serializada de un Array y dejar que haga el casting PgSQL. Les dejo el código para que lo adapten a sus necesidades. En este caso devuelve un vector de TEXT (TEXT[]) con la idea de emular el resultado devuelto por <em>regexp_matches()</em> en <em>plsql</em>. la signatura de la función es esta:</p>

<div class="wp_syntax"><div class="code"><pre class="plsql" style="font-family:monospace;">regexp_python<span style="color: #00F;">&#40;</span>text<span style="color: #00F;">,</span>text<span style="color: #00F;">&#41;</span>  RETURNS text<span style="color: #00F;">&#91;</span><span style="color: #00F;">&#93;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="plsql" style="font-family:monospace;"><span style="color: #080; font-style: italic;">-- Function: regexp_python(text, text)</span>
&nbsp;
<span style="color: #080; font-style: italic;">-- DROP FUNCTION regexp_python(text, text);</span>
&nbsp;
<span style="color: #00F;">CREATE</span> <span style="color: #00F;">OR</span> <span style="color: #000;">REPLACE</span> <span style="color: #00F;">FUNCTION</span> regexp_python<span style="color: #00F;">&#40;</span>p_str text<span style="color: #00F;">,</span> p_ereg text<span style="color: #00F;">&#41;</span>
  RETURNS TEXT<span style="color: #00F;">&#91;</span><span style="color: #00F;">&#93;</span> <span style="color: #00F;">AS</span>
$BODY$import re
import string
m <span style="color: #00F;">=</span> re<span style="color: #00F;">.</span>search<span style="color: #00F;">&#40;</span>p_ereg<span style="color: #00F;">,</span> p_str<span style="color: #00F;">,</span>re<span style="color: #00F;">.</span>I<span style="color: #00F;">&#41;</span>
<span style="color: #00F;">IF</span> m <span style="color: #00F;">IS</span> None<span style="color: #00F;">:</span>
    <span style="color: #00F;">RETURN</span> None
<span style="color: #00F;">ELSE</span><span style="color: #00F;">:</span>
    <span style="color: #00F;">RETURN</span> <span style="color: #00F;">&#40;</span><span style="color: #F00;">'{&quot;'</span><span style="color: #00F;">+</span><span style="color: #F00;">'&quot;,&quot;'</span><span style="color: #00F;">.</span>join<span style="color: #00F;">&#40;</span><span style="color: #00F;">&#91;</span>re<span style="color: #00F;">.</span>escape<span style="color: #00F;">&#40;</span>x<span style="color: #00F;">&#41;</span> <span style="color: #00F;">FOR</span> x <span style="color: #00F;">IN</span> m<span style="color: #00F;">.</span>groups<span style="color: #00F;">&#40;</span><span style="color: #F00;">'NULL'</span><span style="color: #00F;">&#41;</span><span style="color: #00F;">&#93;</span><span style="color: #00F;">&#41;</span><span style="color: #00F;">+</span><span style="color: #F00;">'&quot;}'</span><span style="color: #00F;">&#41;</span><span style="color: #00F;">.</span><span style="color: #000;">REPLACE</span><span style="color: #00F;">&#40;</span><span style="color: #F00;">'&quot;NULL&quot;'</span><span style="color: #00F;">,</span><span style="color: #F00;">'NULL'</span><span style="color: #00F;">&#41;</span>$BODY$
  LANGUAGE <span style="color: #F00;">'plpythonu'</span> VOLATILE
  COST <span style="color: #800;">100</span><span style="color: #00F;">;</span>
<span style="color: #00F;">ALTER</span> <span style="color: #00F;">FUNCTION</span> regexp_python<span style="color: #00F;">&#40;</span>text<span style="color: #00F;">,</span> text<span style="color: #00F;">&#41;</span> OWNER <span style="color: #00F;">TO</span> postgres<span style="color: #00F;">;</span></pre></div></div>

<p>Los arrays en PgSQL son serializados como una colección de datos entre llaves:<br />
<strong>{&#8216;text1&#8242;,&#8217;text2&#8242;}</strong>.</p>
<p>Gracias <a href="http://www.miltonpividori.com.ar">Milton</a> y <a href="http://daianamurgan.blogspot.com">Daiana</a> por investigar y aplicar todas estas cosas conmigo <img src='http://nacho.larrateguy.com.ar/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>]]></content:encoded>
			<wfw:commentRss>http://nacho.larrateguy.com.ar/2009/04/09/retornando-arrays-con-plpython/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Convirtiendo de rm a mp3 usando ffmpeg</title>
		<link>http://nacho.larrateguy.com.ar/2009/04/09/convirtiendo-rm-to-mp-ffmpeg/</link>
		<comments>http://nacho.larrateguy.com.ar/2009/04/09/convirtiendo-rm-to-mp-ffmpeg/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 19:45:16 +0000</pubDate>
		<dc:creator>nacho</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Probando herramientas]]></category>
		<category><![CDATA[conversion]]></category>
		<category><![CDATA[ffmpeg]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[rm]]></category>

		<guid isPermaLink="false">http://nacho.larrateguy.com.ar/?p=225</guid>
		<description><![CDATA[En realidad se puede utilizar para convertir a cualquier formato que soporte ffmpeg. Lo cómodo es que no necesite un archivo fifo y pude hacerlo bastante sencillo y con una sola línea en la consola. find ./ -iname *.rm -exec ffmpeg -i &#34;{}&#34; -acodec libmp3lame -aq 9 &#34;{}.mp3&#34; -y ';' El comando find encuentra los [...]]]></description>
			<content:encoded><![CDATA[<p>En realidad se puede utilizar para convertir a cualquier formato que soporte ffmpeg. Lo cómodo es que no necesite un archivo fifo y pude hacerlo bastante sencillo y con una sola línea en la consola.</p>

<div class="wp_syntax"><div class="code"><pre class="sh" style="font-family:monospace;">find ./ -iname *.rm -exec ffmpeg -i &quot;{}&quot; -acodec libmp3lame -aq 9 &quot;{}.mp3&quot; -y ';'</pre></div></div>

<p>El comando <em>find</em> encuentra los archivos, y por cada uno ejecuta <em>ffmpeg&#8230;</em>. Los &#8220;{}&#8221; se reemplazan por el nombre del archivo.</p>]]></content:encoded>
			<wfw:commentRss>http://nacho.larrateguy.com.ar/2009/04/09/convirtiendo-rm-to-mp-ffmpeg/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Postgresql y update muy lentos (cuando hay alta carga)</title>
		<link>http://nacho.larrateguy.com.ar/2009/02/10/postgresql-update-insert-lentos/</link>
		<comments>http://nacho.larrateguy.com.ar/2009/02/10/postgresql-update-insert-lentos/#comments</comments>
		<pubDate>Wed, 11 Feb 2009 02:39:16 +0000</pubDate>
		<dc:creator>nacho</dc:creator>
				<category><![CDATA[Probando herramientas]]></category>
		<category><![CDATA[bases de datos]]></category>
		<category><![CDATA[optimización db]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[Software Libre]]></category>

		<guid isPermaLink="false">http://nacho.larrateguy.com.ar/?p=192</guid>
		<description><![CDATA[Este es un mini post, para tenerlo a mano y que alguno que busque lo encuentre. Postgresql en los escenarios que la he probado, ha resultado más lenta que MySQL usando MyISAM e InnoDB. Por supuesto esto con la configuración que trae de base en una instalación Debian, Ubuntu o con el instalador (con perfiles) [...]]]></description>
			<content:encoded><![CDATA[<p>Este es un <span style="text-decoration: line-through;">mini</span> post, para tenerlo a mano y que alguno que busque lo encuentre. Postgresql en los escenarios que la he probado, ha resultado más lenta que MySQL usando MyISAM e InnoDB. Por supuesto esto con la configuración que trae de base en una instalación Debian, Ubuntu o con el instalador (con perfiles) en Windows. O modificándole muy pocos parámetros.</p>
<p>Hace un tiempo ya que para un trabajo que estamos haciendo buscábamos la forma de acelerar los updates en Postgres. No es que fuera algo intolerable, pero a veces necesitabamos correr varias consultas que actualizaban unos 2M registros en base a si cumplían o no unas 40 expresiones regulares bastante complejas.</p>
<p>Bueno, me dirán, por qué no usaste MySQL entonces. Bueno, porque no je. En realidad porque en cuanto a extensibilidad usando los lenguajes en Postgres (plpythonu, plpgsql,plphp y quizá pljava) teníamos más flexibilidad. Tenía mejores capacidades de gestión de expresiones regulares y posibilidad de usar tipos de datos vectores (para los matching de las reg. exp.).</p>
<p>El post corto se está alargando y me voy a explayar en otros. Lo que intentamos fue meter commits entre medio de los updates, pero de nada servía. Incluso encerrar en una transacción varios updates. Tampoco.</p>
<p>Leyendo encontré que tiene que ver en la performance de  PgSQL las copias que se genera de cada tabla que se está accediendo para mantener consistencia en cuanto a las consultas d ediferentes usuarios. Los checkpoints que va haciendo en el log (log de transacciones, no el log de errores) del sistema son los que estaban afectando. En definitiva aumentando el tamaño de los segmentos de los checkpoints debería haber una mejora en performance.</p>
<p>Este parámetro se cambia en</p>
<p>/etc/postgresql/8.3/main/postgresql.conf</p>
<p style="padding-left: 30px;">checkpoint_segments = 256</p>
<p>Si hubiese mirado el log (avisos y errores) de PgSQL quizá me hubiese dado cuenta. Se la pasaba imprimiendo:</p>
<p style="padding-left: 30px;">2009-02-10 11:23:09 ARST LOG:  los checkpoints están ocurriendo con demasiada frecuencia (cada 2 segundos)<br />
2009-02-10 11:23:09 ARST HINT:  Considere incrementar el parámetro de configuración «checkpoint_segments».</p>
<p>Prometo en otro post contar los resultados y ordenar esto.</p>
<p>Fuentes:<br />
<a href="http://pugs.postgresql.org/node/499">http://pugs.postgresql.org/node/499</a><br />
<a href="http://www.linux-es.org/node/660">http://www.linux-es.org/node/660</a><br />
Por qué: <a href="http://www.network-theory.co.uk/docs/postgresql/vol1/Increasecheckpoint_segments.html">http://www.network-theory.co.uk/docs/postgresql/vol1/Increasecheckpoint_segments.html</a><br />
<a href="http://archives.postgresql.org/pgsql-performance/2008-06/msg00119.php">http://archives.postgresql.org/pgsql-performance/2008-06/msg00119.php</a></p>]]></content:encoded>
			<wfw:commentRss>http://nacho.larrateguy.com.ar/2009/02/10/postgresql-update-insert-lentos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dreamhost Apps, un servicio de aplicaciones web gratuito (por ahora)</title>
		<link>http://nacho.larrateguy.com.ar/2009/02/07/dreamhost-apps-un-servicio-de-aplicaciones-web-gratuito-por-ahora/</link>
		<comments>http://nacho.larrateguy.com.ar/2009/02/07/dreamhost-apps-un-servicio-de-aplicaciones-web-gratuito-por-ahora/#comments</comments>
		<pubDate>Sat, 07 Feb 2009 23:52:52 +0000</pubDate>
		<dc:creator>nacho</dc:creator>
				<category><![CDATA[Aplicaciones Web]]></category>
		<category><![CDATA[Probando herramientas]]></category>
		<category><![CDATA[dreamhost]]></category>
		<category><![CDATA[dreamhost apps]]></category>
		<category><![CDATA[free hosting]]></category>
		<category><![CDATA[free space]]></category>

		<guid isPermaLink="false">http://nacho.larrateguy.com.ar/?p=189</guid>
		<description><![CDATA[Dreamhost, la empresa norteamericana de hosting, está ofreciendo en su etapa beta (fase 2 actualmente) su servicio Dreamhost Apps en forma gratuita. Los que se registren ahora en la beta podrán continuar el servicio sin pagar, según se explica en este post. Pero&#8230; ¿de qué se trata este servicio? Bien, uno puede tener un dominio [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.dreamhost.com/">Dreamhost</a>, la empresa norteamericana de hosting, está ofreciendo en su etapa beta (fase 2 actualmente) su servicio <a href="http://www.dreamhostapps.com/">Dreamhost Apps</a> en forma gratuita. Los que se registren ahora en la beta podrán continuar el servicio sin pagar, según se explica en este post.</p>
<p>Pero&#8230; ¿de qué se trata este servicio?</p>
<p>Bien, uno puede tener un dominio propio, un <a href="http://www.nic.ar">.com.ar</a>, o comprarles un .com a USD 9,90. Luego con ese dominio u otros más, puede comenzar a utilizar el servicio, previo registro de la cuenta. El servicio ofrece instalación con un sólo click varias aplicaciones web, apenas indicando cómo queremos accederlas. Por ejemplo se puede instalar Media Wiki, WordPress, Zend photo, PHPbb y Drupal hasta ahora <a href="http://www.dreamhostapps.com/free-web-app-hosting.html">(http://www.dreamhostapps.com/free-web-app-hosting.html</a>). Las actualizaciones de las nuevas versiones son automáticas y se encarga la empresa.</p>
<p>Además se puede utilizar en forma integrada el servicio de Google Apps, que brinda Google Docs, Google Sites, GMail y Google Calendar para nuestro dominio. Una descripción de <a href="http://www.google.com/a/help/intl/es/index.html">Google Apps pueden leer aquí</a>.</p>
<p>La diferencia con el servicio pago que ofrece la misma empresa, es que Dreamhost Apps no provee de acceso FTP o Shell, no tenemos gestión de Cron Jobs, etc. En realidad los clientes pagos gozan de muchos beneficios y además de Dreamhos Apps (que dentro del panel se llaman <a href="http://www.dreamhost.com/hosting-features.html#oneclick">One Click Installs</a>).</p>
<p>Creo que todo este servicio es una buena movida, así salga unos pesos (o dólares) luego, ya que muchas personas podrán tener su sitio web completo, con varias aplicaciones por (posiblemente) poco dinero y sin conocer como gestionar una cuenta de hosting. Cuando necesiten un poco más se pueden actualizar a un <a href="http://www.dreamhostapps.com/managed-web-hosting.html">hosting pago que ofrecen</a>.</p>
<p>En este momento quedan unas 9000 cuentas gratuitas, saquen una los interesados y compartimos las experiencias! No hace falta tener dominio propio, ya que se puede utilizar el dominio dreamhoster.com usando subdominios para nosotros.</p>
<p>Link <a href="https://panel.dreamhostapps.com/signup/">https://panel.dreamhostapps.com/signup/</a></p>
<p>Si se quieren registrar acá tienen un descuento de USD 50 para cualquier servicio pago de la empresa. Es el máximo de descuento que pueden obtener (cambio en las políticas&#8230; .</p>
<p>Dreamhost Promo Code: <strong>NAGRUM4CODE</strong></p>
<p><strong><br />
</strong></p>]]></content:encoded>
			<wfw:commentRss>http://nacho.larrateguy.com.ar/2009/02/07/dreamhost-apps-un-servicio-de-aplicaciones-web-gratuito-por-ahora/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dividir líneas: Plugin para Gedit</title>
		<link>http://nacho.larrateguy.com.ar/2008/05/17/dividir-lineas-plugin-para-gedit/</link>
		<comments>http://nacho.larrateguy.com.ar/2008/05/17/dividir-lineas-plugin-para-gedit/#comments</comments>
		<pubDate>Sun, 18 May 2008 00:35:21 +0000</pubDate>
		<dc:creator>Nacho</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Probando herramientas]]></category>
		<category><![CDATA[Software Libre]]></category>

		<guid isPermaLink="false">http://nacho.larrateguy.com.ar/?p=104</guid>
		<description><![CDATA[Existe un plugin o complemento para Gedit (el editor por defecto en Gnome) que permite unir/dividir líneas en un texto. Esto permite que si tenemos un texto con líneas demasiado largas, podamos dividirlas en líneas de por ejemplo 80 caracteres. Este plugin me estaba siendo muy útil para manejar los textos en LATEX. Sin embargo, [...]]]></description>
			<content:encoded><![CDATA[<p>Existe un plugin o complemento para <a href="http://live.gnome.org/Gedit">Gedit</a> (el editor por defecto en Gnome) que permite <a href="http://live.gnome.org/GeditPlugins">unir/dividir líneas</a> en un texto. Esto permite que si tenemos un texto con líneas demasiado largas, podamos dividirlas en líneas de por ejemplo 80 caracteres. Este plugin me estaba siendo muy útil para manejar los textos en L<sup>A</sup>T<sub>E</sub>X. Sin embargo, debía ir haciendo la separación de líneas párrafo a párrafo, ya que el plugin sino mezclaba todos los parrafos en uno sólo. Para comprender lo que les digo, inténten usarlo.</p>
<p>Lo que hice fue hacer un parche para el plugin para que soporte párrafos. No es que haya tenido algún error ni nada, sino que esta funcionalidad me resulta más útil. Les dejo el parche, y adjunto además, un nuevo plugin igual al Unir/Dividir líneas pero con el parche aplicado para los que no quieran parchear el original. Éste tiene las mismas combinaciones de teclas, por lo que no será compatible a la vez con el otro (le cambie apenas el nombre para que no haya conflictos). Para utilizarlo cópienlo en su <strong>$HOME/.gno</strong><strong>me2/gedit/plugins/</strong></p>
<p>El plugin si se selecciona todo (CTRL+A), y se presiona la combinación de teclas (CTRL+SHIFT+J) funcionando logra lo siguiente (espero que las imagenes expliquen más que las palabras)</p>
<p>(CTRL+A)<br />
<a href="http://nacho.larrateguy.com.ar/wp-content/uploads/2008/05/sin_aplicar_dividir.jpg"><img class="aligncenter size-medium wp-image-109" title="sin_aplicar_dividir" src="http://nacho.larrateguy.com.ar/wp-content/uploads/2008/05/sin_aplicar_dividir-300x235.jpg" alt="" width="300" height="235" /></a></p>
<p>(CTRL+SHIFT+J)<br />
<a href="http://nacho.larrateguy.com.ar/wp-content/uploads/2008/05/al_aplicar_dividir.jpg"><img class="aligncenter size-medium wp-image-108" title="al_aplicar_dividir" src="http://nacho.larrateguy.com.ar/wp-content/uploads/2008/05/al_aplicar_dividir-300x235.jpg" alt="" width="300" height="235" /></a></p>
<p>El parche a aplicar sobre /usr/lib/gedit-2/plugins/joinlines.py</p>

<div class="wp_syntax"><div class="code"><pre class="diff" style="font-family:monospace;"><span style="color: #440088;">220c220,221</span>
<span style="color: #991111;">&lt;     while ord<span style="">&#40;</span>char<span style="">&#41;</span> and <span style="">&#40;</span>not <span style="">&#40;</span>char in <span style="">&#40;</span>' ', '\t', '\n', '\r'<span style="">&#41;</span><span style="">&#41;</span><span style="">&#41;</span>:</span>
<span style="color: #888822;">---
<span style="color: #00b000;">&gt;     twoBL = False</span></span>
<span style="color: #00b000;">&gt;     while ord<span style="">&#40;</span>char<span style="">&#41;</span> and <span style="">&#40;</span>not twoBL<span style="">&#41;</span> and <span style="">&#40;</span>not <span style="">&#40;</span>char in <span style="">&#40;</span>' ', '\t'<span style="">&#41;</span><span style="">&#41;</span><span style="">&#41;</span>:           </span>
<span style="color: #440088;">222a224,233</span>
<span style="color: #00b000;">&gt;         if <span style="">&#40;</span>char in <span style="">&#40;</span>'\n', '\r'<span style="">&#41;</span><span style="">&#41;</span>:</span>
<span style="color: #00b000;">&gt;             text_iter.forward_char<span style="">&#40;</span><span style="">&#41;</span></span>
<span style="color: #00b000;">&gt;             char = text_iter.get_char<span style="">&#40;</span><span style="">&#41;</span></span>
<span style="color: #00b000;">&gt;             if <span style="">&#40;</span>char in <span style="">&#40;</span>'\n', '\r'<span style="">&#41;</span><span style="">&#41;</span>:</span>
<span style="color: #00b000;">&gt;                 while <span style="">&#40;</span>char in <span style="">&#40;</span>'\n', '\r'<span style="">&#41;</span><span style="">&#41;</span>:</span>
<span style="color: #00b000;">&gt;                     text_iter.forward_char<span style="">&#40;</span><span style="">&#41;</span></span>
<span style="color: #00b000;">&gt;                     char = text_iter.get_char<span style="">&#40;</span><span style="">&#41;</span></span>
<span style="color: #00b000;">&gt;             else:</span>
<span style="color: #00b000;">&gt;                 text_iter.backward_char<span style="">&#40;</span><span style="">&#41;</span></span>
<span style="color: #00b000;">&gt;             twoBL = True</span></pre></div></div>

<p>Archivos del complemento modificados. Además el patch.<br />
<a href="http://nacho.larrateguy.com.ar/wp-content/uploads/2008/05/joinlines2.tar.gz">joinlines2.tar.gz</a></p>
<p>Actualización:<br />
El que subí tenía un error (además que el parche era reverso). Ahora joinlines2.tar.gz apunta al script corregido. El parche anteriormente publicado se puede aplicar sobre el joinlines.py que trae Gedit. Debajo dejo un parche para corregir el error sobre mi script si ya lo están utilizando (o sea sobre joinlines2.py)</p>

<div class="wp_syntax"><div class="code"><pre class="diff" style="font-family:monospace;"><span style="color: #440088;">231d230</span>
<span style="color: #991111;">&lt;                 twoBL = True</span>
<span style="color: #440088;">234c233</span>
<span style="color: #991111;">&lt; </span>
<span style="color: #888822;">---
<span style="color: #00b000;">&gt;             twoBL = True</span></span></pre></div></div>]]></content:encoded>
			<wfw:commentRss>http://nacho.larrateguy.com.ar/2008/05/17/dividir-lineas-plugin-para-gedit/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Wine RC 1.0 y winepreloader</title>
		<link>http://nacho.larrateguy.com.ar/2008/05/13/wine-rc-10-y-winepreloader/</link>
		<comments>http://nacho.larrateguy.com.ar/2008/05/13/wine-rc-10-y-winepreloader/#comments</comments>
		<pubDate>Wed, 14 May 2008 02:55:26 +0000</pubDate>
		<dc:creator>Nacho</dc:creator>
				<category><![CDATA[Probando herramientas]]></category>
		<category><![CDATA[Software Libre]]></category>

		<guid isPermaLink="false">http://nacho.larrateguy.com.ar/?p=103</guid>
		<description><![CDATA[En un post anterior, escribí acerca de un &#8220;bug&#8221; que tenía el winepreloader, el cual no permitía ejecutar aplicaciones de 16 bit o aquellas que requirieran el área de memoria ahora protegida por el kernel. Sin embargo en su release candidate 1.0 esto fue solucionado. En este artículo donde muestro como correr Smalltalk Express con [...]]]></description>
			<content:encoded><![CDATA[<p>En un <a href="http://nacho.larrateguy.com.ar/2008/04/16/wine-preloader-failed-to-reserve-range/">post anterior</a>, escribí acerca de un &#8220;bug&#8221; que tenía el winepreloader, el cual no permitía ejecutar aplicaciones de 16 bit o aquellas que requirieran el área de memoria ahora protegida por el kernel. Sin embargo en su release candidate 1.0 esto fue solucionado.</p>
<p>En este artículo donde muestro como correr Smalltalk Express con Wine, se explica como actualizar el respositorio para tener la última versión de Wine.</p>
<p><a href="http://nacho.larrateguy.com.ar/2008/03/04/smalltalk-express-corriendo-con-wine-de-nuevo/">http://nacho.larrateguy.com.ar/2008/03/04/smalltalk-express-corriendo-con-wine-de-nuevo/</a></p>
<p>Actualización:<br />
La solución al bug, <a href="http://winehq.org/?announce=1.0-rc1">se puede ver acá</a></p>
<blockquote><p>winevdm: Move the DOS memory range check to not trigger for Win16 apps.</p></blockquote>]]></content:encoded>
			<wfw:commentRss>http://nacho.larrateguy.com.ar/2008/05/13/wine-rc-10-y-winepreloader/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wine: preloader  failed to reserve range 00000000-60000000</title>
		<link>http://nacho.larrateguy.com.ar/2008/04/16/wine-preloader-failed-to-reserve-range/</link>
		<comments>http://nacho.larrateguy.com.ar/2008/04/16/wine-preloader-failed-to-reserve-range/#comments</comments>
		<pubDate>Wed, 16 Apr 2008 19:26:32 +0000</pubDate>
		<dc:creator>Nacho</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Probando herramientas]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[quick-fixes]]></category>
		<category><![CDATA[wine]]></category>

		<guid isPermaLink="false">http://nacho.larrateguy.com.ar/?p=98</guid>
		<description><![CDATA[Que lindo encontrarse con este error, más estando con una distribución que se va a convertir seguro en la principal en mi PC de escritorio y en el portátil. Estoy hablando de Hardy Heron, la nueva distro de Ubuntu. Aunque según estuve investigando, el error se debe a una nueva política de seguridad en el [...]]]></description>
			<content:encoded><![CDATA[<p>Que lindo encontrarse con este error, más estando con una distribución que se va a convertir seguro en la principal en mi PC de escritorio y en el portátil. Estoy hablando de Hardy Heron, la nueva distro de Ubuntu.</p>
<p>Aunque según estuve investigando, el error se debe a una nueva política de seguridad en el Kernel. <a title="protegiendo un rango de memoria como seguridad en el kernel" href="http://www.linuxinsight.com/proc_sys_vm_mmap_min_addr.html">Acá se explica el por qué del cambio.</a> Este error o mejor dicho advertencia (warning) es visible cuando quiero ejecutar cualquier programa mediante el Wine preloader. Especificamente me comenzó a ocurrir cuando quise probar el Smalltalk Express (que documenté aquí como hacerlo correr en GNU/Linux). Para mi desgracia luego de estos warnings terminó en un error.</p>
<p>Para ir al grano. La aplicación es de 16 bits, por lo tanto seguramente el error es reproducible con otras. Les pego el error que obtengo:</p>

<div class="wp_syntax"><div class="code"><pre class="sh" style="font-family:monospace;">nacho@nacho-laptop:~/programas/oSTEXPRES$ wine VW.EXE
preloader: Warning: failed to reserve range 00000000-60000000
preloader: Warning: failed to reserve range 00000000-60000000
preloader: Warning: failed to reserve range 00000000-60000000
err:dosmem:setup_dos_mem Cannot use first megabyte for DOS address space, please report
preloader: Warning: failed to reserve range 00000000-60000000
err:dosmem:setup_dos_mem Cannot use first megabyte for DOS address space, please report
err:dosmem:setup_dos_mem Cannot use first megabyte for DOS address space, please report
preloader: Warning: failed to reserve range 00000000-60000000
err:dosmem:setup_dos_mem Cannot use first megabyte for DOS address space, please report
err:dosmem:load_winedos Could not load winedos.dll, DOS subsystem unavailable
winevdm: unable to exec '--app-name': 16-bit support missing</pre></div></div>

<p>Buscando por la red encontré varios bugs anteriores que daban el mismo error. Pero fue <a title="preloader error en Wine 0.9.59" href="https://bugs.edge.launchpad.net/ubuntu/+source/wine/+bug/114025">éste</a> y precisamente <a title="comentario acerca del espacio protegido" href="https://bugs.edge.launchpad.net/ubuntu/+source/wine/+bug/114025/comments/31">éste comentario</a>, el que me enseñó la luz. En <a title="kernel 2.4.36" href="http://kerneltrap.org/Linux/2.4.36_Stable_Release">un artículo de Kerneltrap</a> se puede leer que se decidió para evitar futuros ataques, proteger ese espacio de memoria. Sin embargo hay un mínimo que se puede utilizar, continuando con la protección, y que permite que se ejecuten en este caso, las aplicaciones de 16 bits con Wine sin problemas.</p>
<p>Hay que editar el archivo /etc/sysctl.conf y modificar la línea con el valor 4096 (0 desactiva la protección)</p>

<div class="wp_syntax"><div class="code"><pre class="sh" style="font-family:monospace;"># protect bottom 64k of memory from mmap to prevent NULL-dereference
# attacks against potential future kernel security vulnerabilities.
# (Added in kernel 2.6.23.)
# vm.mmap_min_addr = 65536
vm.mmap_min_addr = 4096</pre></div></div>

<p>para que el cambio se efectúe permanentemente. Si lo queremos hacer temporal, se puede hacer con</p>

<div class="wp_syntax"><div class="code"><pre class="sh" style="font-family:monospace;"># echo 4096 &amp;gt; /proc/sys/vm/mmap_min_addr
o bien
# sysctl -w vm.mmap_min_addr=4096</pre></div></div>

<p>En cuanto al proyecto Wine, <a title="preloader: Warning: failed to reserve range %p-%p. You may need to edit /etc/sysctl.conf to give Wine access to this memory" href="http://www.winehq.org/pipermail/wine-patches/2008-April/053264.html">están proponiendo un parche que al menos informe</a> sobre esta incompatibilidad con el cambio en el parámetro del Kernel.</p>]]></content:encoded>
			<wfw:commentRss>http://nacho.larrateguy.com.ar/2008/04/16/wine-preloader-failed-to-reserve-range/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

