<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Open Minded</title>
	
	<link>http://nacho.larrateguy.com.ar</link>
	<description>lo que pueda decir, que no se haya dicho ya...</description>
	<lastBuildDate>Wed, 01 Sep 2010 02:35:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/n/openminded" /><feedburner:info uri="n/openminded" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Kathy, La reina del Saloon</title>
		<link>http://feedproxy.google.com/~r/n/openminded/~3/__NBWu6jWHU/</link>
		<comments>http://nacho.larrateguy.com.ar/2010/08/31/kathy-reina-saloon-les-luthier/#comments</comments>
		<pubDate>Wed, 01 Sep 2010 02:35:43 +0000</pubDate>
		<dc:creator>nacho</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Humor]]></category>
		<category><![CDATA[les luthiers]]></category>

		<guid isPermaLink="false">http://nacho.larrateguy.com.ar/?p=410</guid>
		<description><![CDATA[&#8220;Casi reina.. por un pelito nomás&#8221;&#8230; Es imposible cansarse de verlos. Los maestros de siempre, Les Luthiers, aconsejados sabiamente por el nunca visto Iohan Sebastian Mastropiero. Muchos comprenderán donde se inspira mi fino humor a pesar de todo&#8230; o en realidad ahora se estarán preguntando &#8220;fana de LesLu y con esos chistes?&#8221;. Bueno, no llego [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" src="http://nacho.larrateguy.com.ar/wp-content/uploads/HLIC/f7b7bab783fd4fc60a21c9f121fb8779.jpg" alt="Les Luthiers" width="181" height="278" />&#8220;Casi reina.. por un pelito nomás&#8221;&#8230; Es imposible cansarse de verlos. Los maestros de siempre, Les Luthiers, aconsejados sabiamente por el nunca visto Iohan Sebastian Mastropiero. Muchos comprenderán donde se inspira mi fino humor a pesar de todo&#8230; o en realidad ahora se estarán preguntando &#8220;fana de LesLu y con esos chistes?&#8221;. Bueno, no llego ni a los tobillos, pero seguiré intentando.</p>
<p>Les dejo &#8220;Kathy, La reina del Saloon&#8221; jajajajaja versión para &#8220;Piano solo&#8221;. Excelente! Uno de los mejores.</p>
<p>Amigos fanáticos de Les Luthiers, los animo a que hagamos uno de esos &#8220;memes&#8221;, o que me manden el link de su video favorito de Les Luthiers y los agregan en el comentario o bien los incorporo al post. Hay unos viejitos que todavía tengo en VHS :-S donde está Ernesto Hacher!!!</p>
<p>Bueno, acá el video.</p>
<p><a href="http://nacho.larrateguy.com.ar/2010/08/31/kathy-reina-saloon-les-luthier/"><em>Pinche aquí para ver el vídeo</em></a></p>
<p><a href="http://feedads.g.doubleclick.net/~a/JLPU5VnK-tQeb9-Me5KtExx_aio/0/da"><img src="http://feedads.g.doubleclick.net/~a/JLPU5VnK-tQeb9-Me5KtExx_aio/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/JLPU5VnK-tQeb9-Me5KtExx_aio/1/da"><img src="http://feedads.g.doubleclick.net/~a/JLPU5VnK-tQeb9-Me5KtExx_aio/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/n/openminded/~4/__NBWu6jWHU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://nacho.larrateguy.com.ar/2010/08/31/kathy-reina-saloon-les-luthier/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://nacho.larrateguy.com.ar/2010/08/31/kathy-reina-saloon-les-luthier/</feedburner:origLink></item>
		<item>
		<title>El día después de Fibertel</title>
		<link>http://feedproxy.google.com/~r/n/openminded/~3/H9cOKlxMTJE/</link>
		<comments>http://nacho.larrateguy.com.ar/2010/08/31/el-dia-despues-de-fibertel/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 18:48:56 +0000</pubDate>
		<dc:creator>nacho</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[conflicto]]></category>
		<category><![CDATA[fibertel]]></category>
		<category><![CDATA[gobierno]]></category>

		<guid isPermaLink="false">http://nacho.larrateguy.com.ar/?p=440</guid>
		<description><![CDATA[Vía Fabio.com.ar me encuentro con este video. Lamentablemente&#8230; Fuente original: Altasierra.com.ar]]></description>
			<content:encoded><![CDATA[<p>Vía  <a href="http://www.fabio.com.ar/verpost.php?id_noticia=4053">Fabio.com.ar</a> me encuentro con este video.</p>
<p>Lamentablemente&#8230;</p>
<p><a href="http://nacho.larrateguy.com.ar/2010/08/31/el-dia-despues-de-fibertel/"><em>Pinche aquí para ver el vídeo</em></a></p>
<p>Fuente original: <a href="http://www.cordobes.com/30dias/2010/08/el-dia-despues-de-fibertel">Altasierra.com.ar</a></p>
<p><a href="http://feedads.g.doubleclick.net/~a/j61ECturfr3zvKBz0vHvGiCTgF0/0/da"><img src="http://feedads.g.doubleclick.net/~a/j61ECturfr3zvKBz0vHvGiCTgF0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/j61ECturfr3zvKBz0vHvGiCTgF0/1/da"><img src="http://feedads.g.doubleclick.net/~a/j61ECturfr3zvKBz0vHvGiCTgF0/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/n/openminded/~4/H9cOKlxMTJE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://nacho.larrateguy.com.ar/2010/08/31/el-dia-despues-de-fibertel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://nacho.larrateguy.com.ar/2010/08/31/el-dia-despues-de-fibertel/</feedburner:origLink></item>
		<item>
		<title>Traducir un archivo PO con Google Translator y Python</title>
		<link>http://feedproxy.google.com/~r/n/openminded/~3/LnNMsz5I5Lg/</link>
		<comments>http://nacho.larrateguy.com.ar/2010/02/22/traducir-archivo-po-python/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 12:27:30 +0000</pubDate>
		<dc:creator>nacho</dc:creator>
				<category><![CDATA[Código Experimental]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Software Libre]]></category>

		<guid isPermaLink="false">http://nacho.larrateguy.com.ar/?p=400</guid>
		<description><![CDATA[Mediante el uso de POedit, uno puedo crear traducciones para internacionalización sobre un archivo base, el cuál contiene las cadenas de texto de cierto software. Sin embargo si las cadenas son muchas, podemos hacer uso de alguna herramienta de traducción, y limitarnos a luego revisar y encontrar la traducción más adecuada para el contexto en [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" src="http://nacho.larrateguy.com.ar/wp-content/uploads/HLIC/e4a68e0fa541a98b68c918e92ada95bc.jpg" alt="" width="263" height="245" />Mediante el uso de POedit, uno puedo crear traducciones para internacionalización sobre un archivo base, el cuál contiene las cadenas de texto de cierto software. Sin embargo si las cadenas son muchas, podemos hacer uso de alguna herramienta de traducción, y limitarnos a luego revisar y encontrar la traducción más adecuada para el contexto en el que se encuentra cada texto.</p>
<p>Particularmente necesitaba traducir un tema de WordPress que traía su propio archivo .po en inglés (en-EN.po). Hice un pequeño script en Python que hace uso de <a href="http://code.google.com/p/py-gtranslate">py-translate</a>. Este módulo hace uso de la API de Google Translate. Quizá a alguno le resulte útil o pueda adaptarlo a sus necesidades (ya que está todo harcodeado dentro <img src='http://nacho.larrateguy.com.ar/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> ).</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;"># coding=utf-8</span>
<span style="color: #ff7700;font-weight:bold;">import</span> gtrans
&nbsp;
fo = <span style="color: #008000;">open</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;en_EN.po&quot;</span>,<span style="color: #483d8b;">&quot;r&quot;</span><span style="color: black;">&#41;</span>
fi = <span style="color: #008000;">open</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;es_ES.po&quot;</span>,<span style="color: #483d8b;">&quot;w&quot;</span><span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">for</span> line <span style="color: #ff7700;font-weight:bold;">in</span> fo:
    <span style="color: #ff7700;font-weight:bold;">if</span> line.<span style="color: black;">find</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;msgid&quot;</span><span style="color: black;">&#41;</span> == <span style="color: #ff4500;">0</span>:
        cad = gtrans.<span style="color: black;">translate</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;en&quot;</span>,<span style="color: #483d8b;">&quot;es&quot;</span>,line.<span style="color: black;">split</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span><span style="color: black;">&#41;</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
        <span style="color: #808080; font-style: italic;">#print line.encode(&quot;utf-8&quot;),</span>
        fi.<span style="color: black;">write</span><span style="color: black;">&#40;</span>line.<span style="color: black;">encode</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;utf-8&quot;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
        fi.<span style="color: black;">write</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;msgstr <span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span>+cad.<span style="color: black;">rstrip</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>.<span style="color: black;">encode</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;utf-8&quot;</span><span style="color: black;">&#41;</span>+<span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\&quot;</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">elif</span> line.<span style="color: black;">find</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;msgstr&quot;</span><span style="color: black;">&#41;</span> == <span style="color: #ff4500;">0</span>:
        <span style="color: #ff7700;font-weight:bold;">pass</span>
    <span style="color: #ff7700;font-weight:bold;">else</span>:
        <span style="color: #808080; font-style: italic;">#print line.encode(&quot;utf-8&quot;),</span>
        fi.<span style="color: black;">write</span><span style="color: black;">&#40;</span>line.<span style="color: black;">encode</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;utf-8&quot;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
&nbsp;
fo.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
fi.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>Sé que Mancho hizo algo parecido en PHP. Apenas pueda lo enlazo.<br />
<a href="http://www.manchoweb.com.ar/automatizar-la-traduccion-de-un-archivo-po-i18n/trackback">Enlace al artículo de Mancho</a></p>
<p><a href="http://feedads.g.doubleclick.net/~a/K4byAoqBRB7EhKUJDgW6mX02fMY/0/da"><img src="http://feedads.g.doubleclick.net/~a/K4byAoqBRB7EhKUJDgW6mX02fMY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/K4byAoqBRB7EhKUJDgW6mX02fMY/1/da"><img src="http://feedads.g.doubleclick.net/~a/K4byAoqBRB7EhKUJDgW6mX02fMY/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/n/openminded/~4/LnNMsz5I5Lg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://nacho.larrateguy.com.ar/2010/02/22/traducir-archivo-po-python/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://nacho.larrateguy.com.ar/2010/02/22/traducir-archivo-po-python/</feedburner:origLink></item>
		<item>
		<title>OLAP explicado en video</title>
		<link>http://feedproxy.google.com/~r/n/openminded/~3/y0QBlcMPrX0/</link>
		<comments>http://nacho.larrateguy.com.ar/2010/02/22/olap-explicado-en-video/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 12:08:36 +0000</pubDate>
		<dc:creator>nacho</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Humor]]></category>

		<guid isPermaLink="false">http://nacho.larrateguy.com.ar/?p=396</guid>
		<description><![CDATA[Slice &#38; Dice, en español tajar y rotar, son una de las operaciones que se pueden hacer mediante consultas MDX en un cubo OLAP. Algunas de estas cuestiones mostramos con Milton cómo lograrlas con Pentaho en la charla que dimos en 5to año de ISI en el 2009 (Sistemas de Gestión II) y en la [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" src="http://nacho.larrateguy.com.ar/wp-content/uploads/HLIC/bf2dae61c2bcc818132f0d55bce94190.jpg" alt="" width="250" height="244" />Slice &amp; Dice, en español tajar y rotar, son una de las operaciones que se pueden hacer mediante consultas MDX en un cubo OLAP. Algunas de estas cuestiones mostramos con Milton cómo lograrlas con Pentaho en la charla que dimos en 5to año de ISI en el 2009 (Sistemas de Gestión II) y en la Maestría de Sistemas de Información el mismo año. Pueden encontrar algo de código de ejemplo en el <a href="http://code.google.com/p/gsl-utn-frsf/source/browse/#hg/proyectos/pentaho">repositorio del Gabinete de Software Libre</a>. No somos expertos BI, pero nos gustaría serlo apenas tengamos la oportunidad <img src='http://nacho.larrateguy.com.ar/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</p>
<p>Mientras tanto, me encuentro con esto mediante <a href="http://todobi.blogspot.com/2010/02/olap-en-lenguaje-natural.html">Todo BI</a>. Una analogía de cómo una ama de casa hace Slice &amp; Dice a diario jeje.</p>
<p><a href="http://nacho.larrateguy.com.ar/2010/02/22/olap-explicado-en-video/"><em>Pinche aquí para ver el vídeo</em></a></p>
<p><a href="http://feedads.g.doubleclick.net/~a/HkhGh_tRLkcw1bGL7s-C8Y32YDM/0/da"><img src="http://feedads.g.doubleclick.net/~a/HkhGh_tRLkcw1bGL7s-C8Y32YDM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/HkhGh_tRLkcw1bGL7s-C8Y32YDM/1/da"><img src="http://feedads.g.doubleclick.net/~a/HkhGh_tRLkcw1bGL7s-C8Y32YDM/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/n/openminded/~4/y0QBlcMPrX0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://nacho.larrateguy.com.ar/2010/02/22/olap-explicado-en-video/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://nacho.larrateguy.com.ar/2010/02/22/olap-explicado-en-video/</feedburner:origLink></item>
		<item>
		<title>Google Buzz!! Bzzz!!!! bzzz!!!!!</title>
		<link>http://feedproxy.google.com/~r/n/openminded/~3/OIDLeEVicnM/</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>
<p><a href="http://feedads.g.doubleclick.net/~a/rxaeY78z8fzSOH51ItJGxRUN9Gc/0/da"><img src="http://feedads.g.doubleclick.net/~a/rxaeY78z8fzSOH51ItJGxRUN9Gc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/rxaeY78z8fzSOH51ItJGxRUN9Gc/1/da"><img src="http://feedads.g.doubleclick.net/~a/rxaeY78z8fzSOH51ItJGxRUN9Gc/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/n/openminded/~4/OIDLeEVicnM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://nacho.larrateguy.com.ar/2010/02/10/google-buzz-bzzz-bzzz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://nacho.larrateguy.com.ar/2010/02/10/google-buzz-bzzz-bzzz/</feedburner:origLink></item>
		<item>
		<title>¡¿Dharma Initiative quiere reclutarme?!</title>
		<link>http://feedproxy.google.com/~r/n/openminded/~3/tKbEWwrbDoo/</link>
		<comments>http://nacho.larrateguy.com.ar/2010/01/14/dharma-initiative-quiere-reclutarme/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 18:25:02 +0000</pubDate>
		<dc:creator>nacho</dc:creator>
				<category><![CDATA[Humor]]></category>

		<guid isPermaLink="false">http://nacho.larrateguy.com.ar/?p=381</guid>
		<description><![CDATA[A semanas de comenzar la 6ta temporada de LOST , me vengo a encontrar mientras cargaba nafta en Alsina y Carbó en Paraná con la Van (camionetita) de Dharma Initiative&#8230; ¿Cómo llegó ahí? ¿Habrá venido ayer? mmmm&#8230; me limité a sacarle fotos por si mis amigos no me creían&#8230; ¡aunque fíjense! le falta el Cisne la palabrita [...]]]></description>
			<content:encoded><![CDATA[<p>A <a href="http://en.wikipedia.org/wiki/Lost_(season_6)">semanas de comenzar la 6ta temporada de LOST </a>, me vengo a encontrar mientras cargaba nafta en Alsina y Carbó en Paraná con la Van (camionetita) de <a href="http://en.wikipedia.org/wiki/Dharma_Initiative">Dharma Initiative</a>&#8230; ¿Cómo llegó ahí? ¿Habrá venido ayer? mmmm&#8230; me limité a sacarle fotos por si mis amigos no me creían&#8230; ¡aunque fíjense! le falta el Cisne la palabrita Dharma dentro. El cisne era sólo de una de las estaciones. <img src='http://nacho.larrateguy.com.ar/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> </p>
<p style="text-align: center;"><a href="http://nacho.larrateguy.com.ar/wp-content/uploads/2010/01/dharma_van1.jpg"><img class="size-full wp-image-382 aligncenter" title="dharma_van1" src="http://nacho.larrateguy.com.ar/wp-content/uploads/2010/01/dharma_van1.jpg" alt="" width="500" /></a></p>
<p style="text-align: center;"><a href="http://nacho.larrateguy.com.ar/wp-content/uploads/2010/01/dharma_van1.jpg"><img class="size-full wp-image-382 aligncenter" title="dharma_van2" src="http://nacho.larrateguy.com.ar/wp-content/uploads/2010/01/dharma_van2.jpg" alt="" width="500" /></a></p>
<p style="text-align: left;">Milton, no te mueras de la envidia jajaja <img src='http://nacho.larrateguy.com.ar/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> </p>
<p><a href="http://feedads.g.doubleclick.net/~a/O7mnjZalyRsWJ4P3i2PjMpTQIuE/0/da"><img src="http://feedads.g.doubleclick.net/~a/O7mnjZalyRsWJ4P3i2PjMpTQIuE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/O7mnjZalyRsWJ4P3i2PjMpTQIuE/1/da"><img src="http://feedads.g.doubleclick.net/~a/O7mnjZalyRsWJ4P3i2PjMpTQIuE/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/n/openminded/~4/tKbEWwrbDoo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://nacho.larrateguy.com.ar/2010/01/14/dharma-initiative-quiere-reclutarme/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://nacho.larrateguy.com.ar/2010/01/14/dharma-initiative-quiere-reclutarme/</feedburner:origLink></item>
		<item>
		<title>Libros sapienciales</title>
		<link>http://feedproxy.google.com/~r/n/openminded/~3/d38wB51O5Sg/</link>
		<comments>http://nacho.larrateguy.com.ar/2009/10/17/libros-sapienciales/#comments</comments>
		<pubDate>Sat, 17 Oct 2009 13:38:06 +0000</pubDate>
		<dc:creator>nacho</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://nacho.larrateguy.com.ar/?p=360</guid>
		<description><![CDATA[Este tema lo escuché nuevamente hace poco tiempo. Me recordó tanto a mi infancia y adolescencia, cuando mi viejo me lo cantaba a cappella, recordando los tiempos en que escuchaba los long play (y los discos que tenían un tema por cara). Eriza la piel&#8230; Aquí la letra para que lo disfruten. De sol a [...]]]></description>
			<content:encoded><![CDATA[<p>Este tema lo escuché nuevamente hace poco tiempo. Me recordó tanto a mi infancia y adolescencia, cuando mi viejo me lo cantaba <em>a cappella</em>, recordando los tiempos en que escuchaba los long play (y los discos que tenían un tema por cara). Eriza la piel&#8230;</p>
<p><a href="http://nacho.larrateguy.com.ar/2009/10/17/libros-sapienciales/"><em>Pinche aquí para ver el vídeo</em></a></p>
<p>Aquí la letra para que lo disfruten.</p>
<p>De sol a sol<br />
labrando tierra tendrás tu pan.<br />
Todos los ríos van al mar<br />
pero éste nunca se llenará.<br />
Todos los ríos<br />
siempre volverán a donde salieron<br />
para comenzar a correr de nuevo.<br />
Lo que siempre fue lo mismo será,<br />
lo que siempre hicieron repetirán.<br />
No olvidar<br />
lo que ves ya se ha visto ya,<br />
tal vez un día lo sabrás<br />
todo tiene un tiempo bajo el sol.<br />
Porque habrá siempre<br />
tiempo de plantar y de cosechar<br />
tiempo de hablar, también de callar.<br />
Hay tiempo para guerra y tiempo de paz<br />
tiempo para el tiempo y un rato más.<br />
Buenas y malas son<br />
cosas que vivo hoy.<br />
No es esta tierra, no<br />
sueño color azul.</p>
<p>¿No es quizás que no se mirar?<br />
¿Cuánto, cuánto hay a mi alrededor?<br />
Más de lo que mis ojos pueden mirar<br />
y llegar a ver.<br />
Estas son razones que dicen que:<br />
sólo sé<br />
que sé querer<br />
y que tengo Dios<br />
y tengo fe<br />
y que doy amor<br />
y puedo ser</p>
<p>Sé que en algún lugar<br />
alguien me espera hoy.<br />
Sé que ahora tengo yo<br />
alguien a quien buscar.</p>
<p>¿No es quizás que no se mirar?<br />
¿Cuánto, cuánto hay a mi alrededor?<br />
Más de lo que mis ojos pueden mirar<br />
y llegar a ver.<br />
Estas son razones que dicen que:<br />
sólo sé<br />
que sé querer<br />
y que tengo Dios<br />
y tengo fe<br />
y que doy amor<br />
y puedo ser.</p>
<p><a href="http://feedads.g.doubleclick.net/~a/QiTuDNwatAyY3NupxWXIxkosu4I/0/da"><img src="http://feedads.g.doubleclick.net/~a/QiTuDNwatAyY3NupxWXIxkosu4I/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/QiTuDNwatAyY3NupxWXIxkosu4I/1/da"><img src="http://feedads.g.doubleclick.net/~a/QiTuDNwatAyY3NupxWXIxkosu4I/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/n/openminded/~4/d38wB51O5Sg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://nacho.larrateguy.com.ar/2009/10/17/libros-sapienciales/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://nacho.larrateguy.com.ar/2009/10/17/libros-sapienciales/</feedburner:origLink></item>
		<item>
		<title>Funciones anónimas recursivas</title>
		<link>http://feedproxy.google.com/~r/n/openminded/~3/pW6tcaQ7lmQ/</link>
		<comments>http://nacho.larrateguy.com.ar/2009/09/29/funciones-anonimas-recursivas/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 16:03:46 +0000</pubDate>
		<dc:creator>nacho</dc:creator>
				<category><![CDATA[Programación Funcional]]></category>
		<category><![CDATA[calculo lambda]]></category>
		<category><![CDATA[funcional]]></category>
		<category><![CDATA[scheme]]></category>

		<guid isPermaLink="false">http://nacho.larrateguy.com.ar/?p=348</guid>
		<description><![CDATA[Hace un tiempo ya que estoy dando clases como ayudante en Paradigmas de Programación. En dicha cátedra se pretende que el alumno tenga una visión con la cuál contemple los problemas a resolver con el paradigma más adecuado. Hay cosas que modelarlas orientadas a objetos o en objetos con Smalltalk, son mucho más sencillas que [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://nacho.larrateguy.com.ar/wp-content/uploads/2009/09/lambda_lc.jpg" alt="lambda_lc" title="lambda_lc" width="109" height="112" class="alignright size-full wp-image-354" />Hace un tiempo ya que estoy dando clases como ayudante en Paradigmas de Programación. En dicha cátedra se pretende que el alumno tenga una visión con la cuál contemple los problemas a resolver con el paradigma más adecuado. Hay cosas que modelarlas orientadas a objetos o en objetos con Smalltalk, son mucho más sencillas que pensando en el paradigma imperativo. O problemas netamente lógicos, con soluciones recursivas e incluso de naturaleza declarativa, se resuelven mejor con el paradigma lógico, son swi-prolog por ejemplo.</p>
<p>Cabe destacar que los paradigmas, como la palabra lo indica, es una forma de pensar, un patrón, un modelo. Es independiente del lenguaje que usemos. Sin embargo, intentar programar orientado a objetos en C, puede ser más complicado que en C++, en Java o Smalltalk. Lo mismo con el lógico y con el funcional.</p>
<p>Por ejemplo, una de las características del paradigma funcional, es que se basa en el cálculo lambda. Mediante el cálculo lambda puedo definir abstracciones funcionales, las cuales no necesitan tener nombre si sólo quiero evaluarlas una vez. Puedo hacerlo de la forma</p>

<div class="wp_syntax"><div class="code"><pre class="scheme" style="font-family:monospace;"> <span style="color: #66cc66;">&#40;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">*</span> x x<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>   <span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>obteniendo el cuadrado del número.</p>
<p>Luego de la corta introducción, voy al problema que intenté resolver luego de una charla con un docente de la cátedra. En general cuando uno plantea una función recursiva, necesita de un nombre en la función para referenciarla. Por ejemplo:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">sumatoria<span style="color: #7a0874; font-weight: bold;">&#40;</span>L<span style="color: #7a0874; font-weight: bold;">&#41;</span>:
      si vacia L luego
           <span style="color: #000000;">0</span>
      sino
           cabeza<span style="color: #7a0874; font-weight: bold;">&#40;</span>L<span style="color: #7a0874; font-weight: bold;">&#41;</span> + sumatoria<span style="color: #7a0874; font-weight: bold;">&#40;</span> cola <span style="color: #7a0874; font-weight: bold;">&#40;</span>L<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#41;</span></pre></div></div>

<p>Si quisiera aprovechar lo que me provee el paradigma funcional, el cálculo lambda para abstraer dicha función recursiva para generar otras, me encontraría con el problema que necesito hacer referencia al nombre. Eso podría solucionarlo definiendo varios nombres de funciones. Ej:</p>

<div class="wp_syntax"><div class="code"><pre class="scheme" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> reduce <span style="color: #66cc66;">&#40;</span> <span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">f</span> <span style="color: #b1b100;">d</span> <span style="color: #b1b100;">L</span><span style="color: #66cc66;">&#41;</span>
                  <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">null?</span> <span style="color: #b1b100;">L</span><span style="color: #66cc66;">&#41;</span>
                      <span style="color: #b1b100;">d</span>
                      <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">f</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">car</span> <span style="color: #b1b100;">L</span><span style="color: #66cc66;">&#41;</span>  <span style="color: #66cc66;">&#40;</span>reduce <span style="color: #b1b100;">f</span> <span style="color: #b1b100;">d</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cdr</span> <span style="color: #b1b100;">L</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>
                      <span style="color: #66cc66;">&#41;</span>
                  <span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> productoria <span style="color: #66cc66;">&#40;</span> <span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">L</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span> reduce <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">1</span> <span style="color: #b1b100;">L</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>productoria '<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span> <span style="color: #cc66cc;">2</span> <span style="color: #cc66cc;">3</span> <span style="color: #cc66cc;">4</span> <span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>Sin embargo sigo atado al espacio de nombres. ¿Podría definir de alguna manera una recursión sin necesitar de un espacio de nombres?</p>
<p>Para esto, pensé en unas soluciones posibles, quizá alguno tenga otras o se le ocurran otras en base a estas.<br />
Podría definir una función, cuyos argumentos son una lista de números (o lo que necesite) y además una copia de si misma. Por ejemplo, veamos la siguiente abstracción funcional:</p>

<div class="wp_syntax"><div class="code"><pre class="scheme" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">f</span> <span style="color: #b1b100;">L</span><span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">null?</span> <span style="color: #b1b100;">L</span><span style="color: #66cc66;">&#41;</span>
      <span style="color: #cc66cc;">0</span>
      <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">+</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">car</span> <span style="color: #b1b100;">L</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">f</span> <span style="color: #b1b100;">f</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cdr</span> <span style="color: #b1b100;">L</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>
      <span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>Esta abstracción, recibe como argumento una abstracción funcional (AF) y una lista. La AF que recibe, espera que se pueda aplicar a dos argumentos que, por lo que se puede ver en la definición, deberá ser una AF y una lista. De esta manera obtendré la recursión, si puedo asignar de alguna manera, una copia de sí misma como primer argumento.</p>
<p>Para esto, creo una nueva abstracción funcional, que aplica una AF como la que definimos a sí misma junto con una lista.</p>

<div class="wp_syntax"><div class="code"><pre class="scheme" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">f</span> <span style="color: #b1b100;">L</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">f</span> <span style="color: #b1b100;">f</span> <span style="color: #b1b100;">L</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">f</span> <span style="color: #b1b100;">L</span><span style="color: #66cc66;">&#41;</span>
                          <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">null?</span> <span style="color: #b1b100;">L</span><span style="color: #66cc66;">&#41;</span>
                              <span style="color: #cc66cc;">0</span>
                              <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">+</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">car</span> <span style="color: #b1b100;">L</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">f</span> <span style="color: #b1b100;">f</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cdr</span> <span style="color: #b1b100;">L</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>
                              <span style="color: #66cc66;">&#41;</span>
                          <span style="color: #66cc66;">&#41;</span> '<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span> <span style="color: #cc66cc;">2</span> <span style="color: #cc66cc;">3</span> <span style="color: #cc66cc;">4</span> <span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>Da como resultado 15.</p>
<p>Un concepto similar, pero ya con un espacio de nombres sería el siguiente:</p>

<div class="wp_syntax"><div class="code"><pre class="scheme" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span> <span style="color: #b1b100;">define</span> <span style="color: #b1b100;">t</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">f</span> <span style="color: #b1b100;">L</span><span style="color: #66cc66;">&#41;</span>
             <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">null?</span> <span style="color: #b1b100;">L</span><span style="color: #66cc66;">&#41;</span>
                 <span style="color: #cc66cc;">0</span>
                 <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">+</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">car</span> <span style="color: #b1b100;">L</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">f</span> <span style="color: #b1b100;">f</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cdr</span> <span style="color: #b1b100;">L</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>   <span style="color: #66cc66;">&#41;</span>
                 <span style="color: #66cc66;">&#41;</span>
             <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">t</span> <span style="color: #b1b100;">t</span> '<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span> <span style="color: #cc66cc;">2</span> <span style="color: #cc66cc;">3</span> <span style="color: #cc66cc;">4</span> <span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>Otra forma de hacerlo, pero utilizando sólo un argumento y siguiendo la misma idea sería</p>

<div class="wp_syntax"><div class="code"><pre class="scheme" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">f</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">f</span> <span style="color: #b1b100;">f</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">f</span><span style="color: #66cc66;">&#41;</span>
                        <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">L</span><span style="color: #66cc66;">&#41;</span>
                          <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">null?</span> <span style="color: #b1b100;">L</span><span style="color: #66cc66;">&#41;</span>
                              <span style="color: #cc66cc;">0</span>
                              <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">+</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">car</span> <span style="color: #b1b100;">L</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">f</span> <span style="color: #b1b100;">f</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cdr</span> <span style="color: #b1b100;">L</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>
                              <span style="color: #66cc66;">&#41;</span>
                          <span style="color: #66cc66;">&#41;</span>
                        <span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> '<span style="color: #66cc66;">&#40;</span> <span style="color: #cc66cc;">1</span> <span style="color: #cc66cc;">2</span> <span style="color: #cc66cc;">3</span> <span style="color: #cc66cc;">4</span> <span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>Personalmente creo que ésta última forma de declararlo es la más clara y entendible. Podríamos abstraer más en este caso la aplicación quitando el valor por defecto 0, y el &#8220;+&#8221;, obteniendo una función fold o reduce sin nombre <img src='http://nacho.larrateguy.com.ar/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . Leyendo un poco en Internet, luego de un tiempo encontré lo que se conoce como Y combinator.<br />
Más info en <a title="Y combinator explained" href=" http://goodmath.blogspot.com/2006/05/why-oh-why-y.html">http://goodmath.blogspot.com/2006/05/why-oh-why-y.html</a>.</p>
<p>Si tienen alternativas u otras curiosidades que les interese discutir, ¡adelante!</p>
<p><a href="http://feedads.g.doubleclick.net/~a/PTCU1l3aV-JelGmZvO8TSW_JpJY/0/da"><img src="http://feedads.g.doubleclick.net/~a/PTCU1l3aV-JelGmZvO8TSW_JpJY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/PTCU1l3aV-JelGmZvO8TSW_JpJY/1/da"><img src="http://feedads.g.doubleclick.net/~a/PTCU1l3aV-JelGmZvO8TSW_JpJY/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/n/openminded/~4/pW6tcaQ7lmQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://nacho.larrateguy.com.ar/2009/09/29/funciones-anonimas-recursivas/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://nacho.larrateguy.com.ar/2009/09/29/funciones-anonimas-recursivas/</feedburner:origLink></item>
		<item>
		<title>Eliminar contenido XSS (cross site scripting)</title>
		<link>http://feedproxy.google.com/~r/n/openminded/~3/LTcoYxXiZ6A/</link>
		<comments>http://nacho.larrateguy.com.ar/2009/09/21/eliminar-contenido-xss-cross-site-scripting/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 14:31:49 +0000</pubDate>
		<dc:creator>nacho</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[quick-fixes]]></category>

		<guid isPermaLink="false">http://nacho.larrateguy.com.ar/?p=338</guid>
		<description><![CDATA[Mini post: Encontré en uno de los sitios web que mantengo, un código de XSS (cross site scripting). Aún no determiné el punto de entrada, pero me enteré gracias a un mail de Google. Con grep y sed es bastante sencillo eliminarlo, ni que hablar con un script en Python Con grep busco los archivos, [...]]]></description>
			<content:encoded><![CDATA[<p>Mini post:</p>
<p>Encontré en uno de los sitios web que mantengo, un código de XSS (cross site scripting). Aún no determiné el punto de entrada, pero me enteré gracias a un mail de Google.</p>
<p>Con grep y sed es bastante sencillo eliminarlo, ni que hablar con un script en Python <img src='http://nacho.larrateguy.com.ar/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> </p>
<p>Con grep busco los archivos, y con xargs convierto la salida el pipe en un parámetro para sed, y con sed reemplazo el código. Como el código insertado está al final del archivo, la expresión regular hubiese podido ser mucho más sencilla.</p>

<div class="wp_syntax"><div class="code"><pre class="sh" style="font-family:monospace;">grep ./ -l  -R -e &quot;http://reycross.com/lib/index.php&quot;  | xargs sed -i  -e &quot;s/&lt;iframe.*reycross.*&gt;.*&lt;\/iframe&gt;/ /g&quot;</pre></div></div>

<p>El código a eliminar era este (no agrego los tags de apertura a propósito):</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">iframe
src=&quot;http://reycross.com/lib/index.php&quot; width=0 height=0 style=&quot;hidden&quot; framebord
er=0 marginheight=0 marginwidth=0 scrolling=no
iframe</pre></div></div>

<p>¿Alguien que le haya ocurrido esto?</p>
<p><a href="http://feedads.g.doubleclick.net/~a/BLM5WtZwn5eDqJQydQvYW4qvsj0/0/da"><img src="http://feedads.g.doubleclick.net/~a/BLM5WtZwn5eDqJQydQvYW4qvsj0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/BLM5WtZwn5eDqJQydQvYW4qvsj0/1/da"><img src="http://feedads.g.doubleclick.net/~a/BLM5WtZwn5eDqJQydQvYW4qvsj0/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/n/openminded/~4/LTcoYxXiZ6A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://nacho.larrateguy.com.ar/2009/09/21/eliminar-contenido-xss-cross-site-scripting/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://nacho.larrateguy.com.ar/2009/09/21/eliminar-contenido-xss-cross-site-scripting/</feedburner:origLink></item>
		<item>
		<title>¿Necesitan los sitios web verse igual en cada navegador?</title>
		<link>http://feedproxy.google.com/~r/n/openminded/~3/aLXYnkOUKgs/</link>
		<comments>http://nacho.larrateguy.com.ar/2009/09/18/%c2%bfnecesitan-los-sitios-web-verse-igual-en-cada-navegador/#comments</comments>
		<pubDate>Fri, 18 Sep 2009 03:22:46 +0000</pubDate>
		<dc:creator>nacho</dc:creator>
				<category><![CDATA[Aplicaciones Web]]></category>
		<category><![CDATA[crossbrowser]]></category>
		<category><![CDATA[Humor]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://nacho.larrateguy.com.ar/?p=334</guid>
		<description><![CDATA[Según explican en el enlace que les dejo debajo, la respuesta es clara y concisa para la pregunta: ¿Necesitan los sitios web verse igual en cada navegador? ¿Ustedes? ¿Qué opinan? http://dowebsitesneedtolookexactlythesameineverybrowser.com/ (más claro echale agua)]]></description>
			<content:encoded><![CDATA[<p><a href="http://nacho.larrateguy.com.ar/wp-content/uploads/2009/09/browsers-icons.jpg"></a><img style="float: right; display: block; margin-left: auto; margin-right: auto; border: 0px initial initial;" title="browsers-icons" src="http://nacho.larrateguy.com.ar/wp-content/uploads/2009/09/browsers-icons.jpg" alt="browsers-icons" width="425" height="308" />Según explican en el enlace que les dejo debajo, la respuesta es clara y concisa para la pregunta: ¿Necesitan los sitios web verse igual en cada navegador?</p>
<p><a href="http://nacho.larrateguy.com.ar/wp-content/uploads/2009/09/browsers-icons.jpg"></a></p>
<p style="text-align: center; ">¿Ustedes? ¿Qué opinan?</p>
<p style="text-align: left;"><a href="http://dowebsitesneedtolookexactlythesameineverybrowser.com/">http://dowebsitesneedtolookexactlythesameineverybrowser.com/</a></p>
<p>(más claro echale agua)</p>
<p><a href="http://feedads.g.doubleclick.net/~a/K8EBeE2DC__vN-hejkoFOBz9mMs/0/da"><img src="http://feedads.g.doubleclick.net/~a/K8EBeE2DC__vN-hejkoFOBz9mMs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/K8EBeE2DC__vN-hejkoFOBz9mMs/1/da"><img src="http://feedads.g.doubleclick.net/~a/K8EBeE2DC__vN-hejkoFOBz9mMs/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/n/openminded/~4/aLXYnkOUKgs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://nacho.larrateguy.com.ar/2009/09/18/%c2%bfnecesitan-los-sitios-web-verse-igual-en-cada-navegador/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://nacho.larrateguy.com.ar/2009/09/18/%c2%bfnecesitan-los-sitios-web-verse-igual-en-cada-navegador/</feedburner:origLink></item>
	</channel>
</rss>
