<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><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:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Picando Código</title>
	
	<link>http://picandocodigo.net</link>
	<description>Programando... Mi blog sobre programación, tecnología, web, software libre, videojuegos y más</description>
	<pubDate>Fri, 25 Jul 2008 04:21:00 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/3.0/</creativeCommons:license><image><link>http://creativecommons.org/licenses/by-nc-nd/3.0/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/picandocodigo" type="application/rss+xml" /><item>
		<title>Disponible GNU IceCat 3-g1</title>
		<link>http://feeds.feedburner.com/~r/picandocodigo/~3/345301324/</link>
		<comments>http://picandocodigo.net/2008/07/disponible-gnu-icecat-3-g1/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 04:21:00 +0000</pubDate>
		<dc:creator>fernando</dc:creator>
		
		<category><![CDATA[Browsers]]></category>

		<category><![CDATA[gnu]]></category>

		<category><![CDATA[gnu icecat]]></category>

		<guid isPermaLink="false">http://picandocodigo.net/?p=1020</guid>
		<description><![CDATA[
A pesar de haber encontrado un nuevo favorito a largo plazo en Arora, todavía guardo &#8220;cariño&#8221; por GNU IceCat.Su desarrollador, Giuseppe Scrivano, anunció la salida de la versión 3-g1.Así que les dejo el anuncio, y los links para las descargas. Ya saben, si quieren usar Firefox sin lo privativo, usen GNU IceCat (o Debian IceWeasel [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_549" class="wp-caption aligncenter" style="width: 276px"><a href="http://picandocodigo.net/wp-content/uploads/2008/02/logo-icecat.jpg"><img class="size-full wp-image-549" title="GNU IceCat" src="http://picandocodigo.net/wp-content/uploads/2008/02/logo-icecat.jpg" alt="GNU IceCat" width="266" height="196" /></a><p class="wp-caption-text">GNU IceCat</p></div>
<p>A pesar de haber encontrado un nuevo favorito a largo plazo en <a href="http://picandocodigo.net/2008/07/arora-web-browser-navegador-basado-en-webkit/"><strong>Arora</strong></a>, todavía guardo &#8220;cariño&#8221; por <strong>GNU IceCat</strong>.Su desarrollador, Giuseppe Scrivano, anunció la salida de la versión 3-g1.Así que les dejo el anuncio, y los links para las descargas. Ya saben, si quieren usar Firefox sin lo privativo, usen <strong>GNU IceCat</strong> (o <strong>Debian IceWeasel</strong> :P)</p>
<blockquote><p>GNU IceCat está basado en el código fuente de Mozilla Firefox. Mientras que el código fuente básico de Mozilla Firefox es software libre, y le agradecemos por sus significantes contribuciones a la comunidad, algunos archivos no-libres se distribuyen en el arbol de código de Firefox, y Firefox puede recomendar plugins no-libres. IceCat es totalmente Software Libre.</p>
<p>La nueva versión está basada en el nuevo código de Firefox 3. Diferente de otras versiones, las características adicionales de privacidad se movieron a una extensión aparte, gnuzilla_privacy.xpi.</p>
<p>Los links de descarga:</p>
<p><a href="ftp://ftp.gnu.org/gnu/gnuzilla/3-g1/icecat-3-g1.tar.bz2" target="_blank">ftp://ftp.gnu.org/gnu/gnuzilla/3-g1/icecat-3-g1.tar.bz2</a><br />
<a href="ftp://ftp.gnu.org/gnu/gnuzilla/3-g1/icecat-3-g1-i386.tar.bz2" target="_blank">ftp://ftp.gnu.org/gnu/gnuzilla/3-g1/icecat-3-g1-i386.tar.bz2</a><br />
<a href="ftp://ftp.gnu.org/gnu/gnuzilla/3-g1/gnuzilla_privacy.xpi" target="_blank">ftp://ftp.gnu.org/gnu/gnuzilla/3-g1/gnuzilla_privacy.xpi</a></p>
<p>MD5 y SHA1:</p>
<p>0562ea71d246402e313415302ad70f</p>
<div id=":186" class="ArwC7c ckChnd">5e  gnuzilla_privacy.xpi<br />
1b5d334d30c611a1b552232007feaf60  icecat-3-g1-i386.tar.bz2<br />
fe05ced547c67063e40598574d97cdae  icecat-3-g1.tar.bz2</p>
<p>af54b373f90355900284277c32794858c6ccb662  gnuzilla_privacy.xpi<br />
bb4e8fbb8e8a06af64d8080cb8d371e6413a6992  icecat-3-g1-i386.tar.bz2<br />
e00807cd31bbdfa635fbd4fe21eb4bc4e8067d37  icecat-3-g1.tar.bz2</p></div>
</blockquote>

<p><a href="http://feeds.feedburner.com/~a/picandocodigo?a=5DY5Z1"><img src="http://feeds.feedburner.com/~a/picandocodigo?i=5DY5Z1" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/picandocodigo?a=QvTbhJ"><img src="http://feeds.feedburner.com/~f/picandocodigo?i=QvTbhJ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/picandocodigo?a=IYjssj"><img src="http://feeds.feedburner.com/~f/picandocodigo?i=IYjssj" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/picandocodigo?a=YyFdxj"><img src="http://feeds.feedburner.com/~f/picandocodigo?i=YyFdxj" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/picandocodigo/~4/345301324" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://picandocodigo.net/2008/07/disponible-gnu-icecat-3-g1/feed/</wfw:commentRss>
		<feedburner:origLink>http://picandocodigo.net/2008/07/disponible-gnu-icecat-3-g1/</feedburner:origLink></item>
		<item>
		<title>WP-Syntax 0.9 - Hack aceptado :D</title>
		<link>http://feeds.feedburner.com/~r/picandocodigo/~3/345019136/</link>
		<comments>http://picandocodigo.net/2008/07/wp-syntax-09/#comments</comments>
		<pubDate>Thu, 24 Jul 2008 21:36:31 +0000</pubDate>
		<dc:creator>fernando</dc:creator>
		
		<category><![CDATA[WordPress]]></category>

		<category><![CDATA[plugins wordpress]]></category>

		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://picandocodigo.net/?p=1004</guid>
		<description><![CDATA[A raíz de los posts:
Cómo mostrar código fuente en los comentarios[0]
{WP-Syntax Hackeado} Cómo mostrar código fuente en los comentarios[1]
Estuve trabajando y metiendo mano en WP-Syntax, un plugin para WordPress que permite mostrar coloreado de sintaxis en los posts.
Me enorgullece contarles que a partir de la recién lanzada versión 0.9, se incluyó mi &#8220;parche&#8221;, &#8220;hack&#8221; o [...]]]></description>
			<content:encoded><![CDATA[<p>A raíz de los posts:<br />
<a title="Cómo mostrar código fuente en los comentarios[0]" rel="bookmark" href="../2008/07/como-mostrar-codigo-fuente-en-los-comentarios0/">Cómo mostrar código fuente en los comentarios[0]</a><br />
<a title="{WP-Syntax Hackeado} Cómo mostrar código fuente en los comentarios[1]" rel="bookmark" href="../2008/07/wp-syntax-hackeado-como-mostrar-codigo-fuente-en-los-comentarios1/">{WP-Syntax Hackeado} Cómo mostrar código fuente en los comentarios[1]</a></p>
<p>Estuve trabajando y metiendo mano en <a href="http://wordpress.org/extend/plugins/wp-syntax/"><strong>WP-Syntax</strong></a>, un plugin para WordPress que permite mostrar coloreado de sintaxis en los posts.</p>
<p>Me enorgullece contarles que a partir de la recién lanzada <strong>versión 0.9</strong>, se incluyó mi &#8220;parche&#8221;, &#8220;hack&#8221; o como quieran llamarlo. Ahora el plugin también permite a los usuarios anónimos usar el plugin en los comentarios mediante los tags &lt;pre&gt;, y mostrar código coloreado.</p>
<p>Pueden descargarlo del sitio de plugins de WordPress:<br />
<a href="http://wordpress.org/extend/plugins/wp-syntax/">http://wordpress.org/extend/plugins/wp-syntax/</a></p>
<p>Para ver ejemplos, pueden comentar en este blog y colocar su código entre los tags:<br />
<code>&lt;pre lang="L"&gt; código &lt;/pre&gt;</code><br />
Donde L es uno de los siguientes lenguajes:</p>
<p>abap, actionscript, actionscript3, ada, apache, applescript, asm, asp, autoit, bash, blitzbasic, bnf, c, c_mac, caddcl, cadlisp, cfdg, cfm, cpp-qt, cpp, csharp, css, d, delphi, diff, div, dos, dot, eiffel, fortran, freebasic, genero, gettext, glsl, gml, groovy, haskell, html4strict, idl, ini, inno, io, java, java5, javascript, kixtart, latex, lisp, lotusformulas, lotusscript, lua, m68k, matlab, mirc, mpasm, mxml, mysql, nsis, objc, ocaml-brief, caml, oobas, oracle8, pascal, per, perl, php-brief, php, plsql, python, qbasic, rails, reg, robots, ruby, sas, scala, scheme, sdlbasic, smalltalk, smarty, sql, tcl, text, thinbasic, tsql, vb, vbnet, verilog, vhdl, visualfoxpro, winbatch, xml, xpp, z80</p>
<div class="codigo"><code><strong>== Release Notes ==</strong></code></p>
<p><code>**0.9** : Added support for anonymous subscribers to use pre tags in their comments allowing for their own colored code snippets [Fernando Briano];</code></div>
<p>Fue todo una experiencia esto de modificar un plugin de WordPress, fue más complicado de lo que parece, aunque al final el código que agregué no fue tanto, pero aprendí mucho en el proceso. Próximos releases del plugin podrían incluir soporte para WP shortcodes.</p>
<p>Pueden seguir el avance, y algunas decisiones y porqué en los posts que menciono más arriba. ¡Úsenlo!</p>

<p><a href="http://feeds.feedburner.com/~a/picandocodigo?a=3DtIIT"><img src="http://feeds.feedburner.com/~a/picandocodigo?i=3DtIIT" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/picandocodigo?a=M9t08J"><img src="http://feeds.feedburner.com/~f/picandocodigo?i=M9t08J" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/picandocodigo?a=2hyZ0j"><img src="http://feeds.feedburner.com/~f/picandocodigo?i=2hyZ0j" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/picandocodigo?a=9zOHrj"><img src="http://feeds.feedburner.com/~f/picandocodigo?i=9zOHrj" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/picandocodigo/~4/345019136" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://picandocodigo.net/2008/07/wp-syntax-09/feed/</wfw:commentRss>
		<feedburner:origLink>http://picandocodigo.net/2008/07/wp-syntax-09/</feedburner:origLink></item>
		<item>
		<title>[Video] Jonathan Coulton - Code Monkey Unplugged</title>
		<link>http://feeds.feedburner.com/~r/picandocodigo/~3/344866508/</link>
		<comments>http://picandocodigo.net/2008/07/video-jonathan-coulton-code-monkey-unplugged/#comments</comments>
		<pubDate>Thu, 24 Jul 2008 18:15:05 +0000</pubDate>
		<dc:creator>fernando</dc:creator>
		
		<category><![CDATA[Video]]></category>

		<category><![CDATA[code monkey]]></category>

		<category><![CDATA[videos]]></category>

		<guid isPermaLink="false">http://picandocodigo.net/?p=992</guid>
		<description><![CDATA[¿Se acuerdan de la canción &#8220;Code Monkey&#8221; de Jonathan Coulton? Ayer navegando por YouTube me encontré con este video de Jonathan Coulton interpretando Code Monkey en vivo. Un temón:

Hay varios videos más de Code Monkey, tanto interpretaciones de su autor, como videos bizarros y divertidos. Un posible cover para hacer con Los Farzantes&#8230;
]]></description>
			<content:encoded><![CDATA[<p>¿Se acuerdan de la canción <a href="http://picandocodigo.net/2008/04/code-monkey-la-cancion-de-los-monos-del-codigo/"><strong>&#8220;Code Monkey&#8221;</strong> de <strong>Jonathan Coulton</strong></a>? Ayer navegando por YouTube me encontré con este video de Jonathan Coulton interpretando Code Monkey en vivo. Un temón:</p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="src" value="http://www.youtube.com/v/7s8S7QxpjeY&amp;hl=en&amp;fs=1" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/7s8S7QxpjeY&amp;hl=en&amp;fs=1" allowfullscreen="true"></embed></object></p>
<p>Hay varios videos más de Code Monkey, tanto interpretaciones de su autor, como videos bizarros y divertidos. Un posible cover para hacer con <a href="http://picandocodigo.net/2008/07/el-regreso-de-los-farzantes/"><strong>Los Farzantes</strong></a>&#8230;</p>

<p><a href="http://feeds.feedburner.com/~a/picandocodigo?a=FNNJ0g"><img src="http://feeds.feedburner.com/~a/picandocodigo?i=FNNJ0g" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/picandocodigo?a=XsfwNJ"><img src="http://feeds.feedburner.com/~f/picandocodigo?i=XsfwNJ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/picandocodigo?a=iqq7tj"><img src="http://feeds.feedburner.com/~f/picandocodigo?i=iqq7tj" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/picandocodigo?a=Hcqdfj"><img src="http://feeds.feedburner.com/~f/picandocodigo?i=Hcqdfj" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/picandocodigo/~4/344866508" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://picandocodigo.net/2008/07/video-jonathan-coulton-code-monkey-unplugged/feed/</wfw:commentRss>
		<feedburner:origLink>http://picandocodigo.net/2008/07/video-jonathan-coulton-code-monkey-unplugged/</feedburner:origLink></item>
		<item>
		<title>{WP-Syntax Hackeado} Cómo mostrar código fuente en los comentarios[1]</title>
		<link>http://feeds.feedburner.com/~r/picandocodigo/~3/344286302/</link>
		<comments>http://picandocodigo.net/2008/07/wp-syntax-hackeado-como-mostrar-codigo-fuente-en-los-comentarios1/#comments</comments>
		<pubDate>Thu, 24 Jul 2008 05:51:11 +0000</pubDate>
		<dc:creator>fernando</dc:creator>
		
		<category><![CDATA[Blog]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[código]]></category>

		<category><![CDATA[plugins]]></category>

		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://picandocodigo.net/?p=971</guid>
		<description><![CDATA[Bueno, ¡ahora sí! Después de unos cuantos comentarios y horas de workarounds, pude hacer funcionar el plugin WP-Syntax para los comentarios. Ante todo muchas gracias a todos los que comentaron en el post anterior, renombrado y actualizado: Como mostrar código fuente en los comentarios[0]

void main&#40;&#41;&#123;
printf&#40;&#34;Gracias por la paciencia que tuvieron, y las pruebas varias
que hicieron. [...]]]></description>
			<content:encoded><![CDATA[<p>Bueno, ¡ahora sí! Después de unos <a href="http://picandocodigo.net/2008/07/como-mostrar-codigo-fuente-en-los-comentarios0/">cuantos comentarios</a> y horas de workarounds, pude hacer funcionar el plugin <strong>WP-Syntax</strong> para los comentarios. Ante todo muchas gracias a todos los que comentaron en el post anterior, renombrado y actualizado: <a href="http://picandocodigo.net/2008/07/como-mostrar-codigo-fuente-en-los-comentarios0/"><strong>Como mostrar código fuente en los comentarios[0]</strong></a></p>

<div class="wp_syntax"><div class="code"><pre class="c"><span style="color: #993333;">void</span> main<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Gracias por la paciencia que tuvieron, y las pruebas varias
que hicieron. Si no fuera por los que intentaron dejar código en los
comentarios, nunca me hubiera dado cuenta que andaba mal. Los
invito a volver a comentar con código en este post.&quot;</span><span style="color: #009900;">&#41;</span>;
<span style="color: #009900;">&#125;</span></pre></div></div>

<div class="codigo"><strong>ACTUALIZACIÓN: Este post, así como el anterior sirvieron de &#8220;Sandbox&#8221; para probar el plugin. Ya tuvo varias idas y venidas. Al final, después de tantas vueltas volvimos al tag &lt;pre&gt;.</strong><strong><br />
</strong>¿Porqué? Simple, primero porque el escape de caracteres es mejor. <a href="http://kalmbach.wordpress.com/"><strong>jk</strong></a> me hizo notar en esta entrada que con &lt;code&gt; WordPress transformaba &#8220;&amp;&#8221; y &#8220;-&gt;&#8221; en “&amp; amp;” y “&amp; gt;” respectivamente. La otra razón, por la cual se había elegido pre desde un principio, es que si se desactiva el plugin, el código mantiene la indentación (aunque no los colores).<br />
Se perdió prácticamente todo el formato de los comentarios, voy a ver si lo arreglo. Espero que no se me enojen por todos los comentarios que dejaron :P.Aparentemente está cerca la versión 0.9 de WP-Syntax, ya tendré más información.</p>
<p>Dejo el post como historial de lo que había hecho&#8230;</p></div>
<p>Ahora paso a contar más o menos las cosas que fui haciendo, probando, y aprendiendo, hasta que logré una solución &#8220;linda&#8221; y prolija.</p>
<p><strong>El problema</strong>: Solamente el usuario admin del blog tenía permitido usar los tags &lt;pre&gt; en los comentarios. ¿Qué hacer al respecto? Mmmh&#8230; En verdad no sé en qué orden fui haciendo las cosas, pero hice de todo.</p>
<p>Como estoy desarrollando mi propio plugin para <strong>Wordpress</strong> (muy lentamente y sin stress en algún rato libre), ya tenía una idea del tema de los &#8220;hooks&#8221; con filtros y acciones. Resumidamente, esto son acciones y funciones de Wordpress que podemos reemplazar con las nuestras dentro de un plugin. De esta forma, cambiamos algo del comportamiento de Wordpress sin cambiar el &#8220;núcleo&#8221;, cosa que el cambio se mantenga en una actualización del CMS (y mantener la modularidad).</p>
<p>Así que se me ocurrió que una idea bastante obvia era sobreescribir la función que filtrara los <strong>pre</strong> de los comentarios, para que permitiera usarlos. Buscando por ahí, me encontré con el archivo <strong>kses.php</strong> dentro del directorio <strong>wp-includes</strong>. Este archivo es uno de los responsables de permitir o no ciertos tags y demás, aparte de devolver el valor de la función &#8220;allowed_tags();&#8221;  que comenté <a href="http://picandocodigo.net/2008/07/como-mostrar-codigo-fuente-en-los-comentarios0/#comment-3506">acá</a>:</p>
<blockquote><p>Ups!<br />
Mis disculpas, creo que ya se de donde viene el problema. Si se fijan a la derecha de la caja de texto donde se escriben los comentarios, muestra las tags permitidas para comentar. Esto no está escrito a mano, sino que llama a una función en PHP allowed_tags().</p>
<p>Lo que tengo que hacer, es buscar la forma de permitirles a los usuarios usar el tag pre…<br />
¡Perdón por el amague!<br />
¡Ya me pongo a solucionar eso!</p></blockquote>
<p>Lo que no encaré en el momento, fue que ahí estaba el array con todos los tags permitidos, tanto para postear como para comentar. Esto fue lo que me dí cuenta bien al final, pero cuando ya había probado todo lo que se les ocurra. No documento absolutamente todo acá por varias razones. Primero porque no me acuerdo todo lo que hice, segundo porque quedaría muy largo, y tercero, porque mas vale poner lo que aprendí nomás <img src='http://picandocodigo.net/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>Siguiendo con el tema, estuve por <span style="color: #0000ff;"><strong>#wordpress</strong></span> en <strong>irc.freenode.net</strong>, donde me recomendaron que hackeara el plugin para usar el tag &lt;code&gt; en vez de &lt;pre&gt;, ya que es más indicado para código. Ahora, el tag pre tiene la característica que mantiene los espacios, por lo que respeta la indentación. Para aplicar esto a &lt;code&gt; también, simplemente tuve que agregar el siguiente código al css del plugin:</p>
<p><code lang="css">code {white-space: nowrap;}</code></p>
<p>Eso y un poco de mano en el plugin, y ya tenía el tag pre reemplazado por el tag code. Agradezco mucho la ayuda de <a href="http://fullof.bs/"><strong>StoneCypher</strong></a>, quien me tiró pistas y recomendaciones para llegar al resultado final.</p>
<p>Sin embargo, seguía igual. Si bien el archivo <strong>kses.php</strong> permite que los usuarios posteen con &lt;code&gt;, no contemplaba &lt;code lang=&#8221;"&gt;. Para eso, tuve que agregar lang al array que define los tags y sub tags permitidos en dicho archivo (<a href="http://picandocodigo.pastebin.com/f414be7c">ver el código</a>). Pero esto no era una solución &#8220;linda&#8221;, debía incluirlo en el código del plugin. Además, fue una de las últimas cosas en las que me dí cuenta. <strong>Al final quedó con el tag &lt;pre&gt;&#8230;</strong></p>
<p>Aprovecho para comentar, hablando de soluciones &#8220;lindas&#8221;, que en algún momento comenté de dicho archivo la línea que filtraba el contenido de los comentarios, y si bien anduvo, dejaba totalmente vulnerable al blog. Esto es un buen ejemplo de <strong>LO QUE NO HAY QUE HACER</strong>. Sobre todo cuando no conocemos bien las repercusiones&#8230;</p>
<p>Bueno, leyendo bien ese bendito kses.php, se me prendió la lamparita al leer: <span class="coMULTI">Can be override by using CUSTOM_TAGS constant. Listo, ahí picó la solución, agregar code y lang a ese valor desde el plugin. ¡Así terminó andando!</span></p>
<p>Ya entré en contacto con <a href="http://ryan.mcgeary.org/"><strong>Ryan McGeary</strong></a>, el desarrollador de <strong>WP-Syntax</strong>, y hablando de todo este tema me comentó lo siguiente:</p>
<blockquote><p>Wordpress tiene muchas restricciones innecesarias e inevitables en su publicación de contenidos. WP intenta hacer lo &#8220;correcto&#8221; y prevenir a los que comentan de agregar formatos especiales y es complicado el workaround.</p></blockquote>
<p>Además, tenía pensado actualizar un poco el plugin cuando tuviera tiempo. Ya le envié un mail con los cambios que le hice. El plugin está publicado bajo <strong>GPL</strong>, pero quiero saber si quiere incluir los cambios en su plugin, o si hago un fork para publicarlos. Así que en unos días estará disponible o bien una nueva version de WP-Syntax, o un nuevo fork :D, obviamente el código disponible también.</p>
<p>Me está pasando lo mismo con <strong>WordPress</strong> que me pasó en algún momento con <strong>GNU/Linux</strong>. Por momentos me frustro porque no puedo lograr lo que quiero que haga, pero al final me doy cuenta que la culpa no es de WordPress, sino mía por no conocer la API lo suficiente&#8230; <strong>¡WordPress FTW!</strong> No es lo mismo una vez que se empieza a meter mano en el código.</p>

<p><a href="http://feeds.feedburner.com/~a/picandocodigo?a=i5E5y8"><img src="http://feeds.feedburner.com/~a/picandocodigo?i=i5E5y8" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/picandocodigo?a=5ZbLcJ"><img src="http://feeds.feedburner.com/~f/picandocodigo?i=5ZbLcJ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/picandocodigo?a=3e1bHj"><img src="http://feeds.feedburner.com/~f/picandocodigo?i=3e1bHj" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/picandocodigo?a=KsppSj"><img src="http://feeds.feedburner.com/~f/picandocodigo?i=KsppSj" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/picandocodigo/~4/344286302" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://picandocodigo.net/2008/07/wp-syntax-hackeado-como-mostrar-codigo-fuente-en-los-comentarios1/feed/</wfw:commentRss>
		<feedburner:origLink>http://picandocodigo.net/2008/07/wp-syntax-hackeado-como-mostrar-codigo-fuente-en-los-comentarios1/</feedburner:origLink></item>
		<item>
		<title>Cómo mostrar código fuente en los comentarios[0]</title>
		<link>http://feeds.feedburner.com/~r/picandocodigo/~3/344244746/</link>
		<comments>http://picandocodigo.net/2008/07/como-mostrar-codigo-fuente-en-los-comentarios0/#comments</comments>
		<pubDate>Wed, 23 Jul 2008 15:42:53 +0000</pubDate>
		<dc:creator>fernando</dc:creator>
		
		<category><![CDATA[Picando Código]]></category>

		<category><![CDATA[código fuente]]></category>

		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://picandocodigo.net/?p=966</guid>
		<description><![CDATA[
void postear&#40;&#41;&#123;
     printf&#40;&#34;
]]></description>
			<content:encoded><![CDATA[
<div class="wp_syntax"><div class="code"><pre class="c"><span style="color: #993333;">void</span> postear<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
     <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;
</span</pre></div></div>

<p>Lectores, comentadores, visitantes en general: <strong>¡Pueden escribir código en los comentarios!</strong><br />
Los que visitan seguido el blog habrán notado un nuevo recuadro al lado de la caja de comentarios. Esta indica cómo escribir código sin que el querido WordPress transforme sus signos de &lt; y &gt; y su indentación en papas fritas.</p>
<p>En varios posts hemos tenido el problema de querer <strong>mostrar código fuente</strong>, y no lograr los resultados que esperábamos. Destaco los posts sobre sintaxis, y más recientemente el <a href="http://picandocodigo.net/2008/07/awk-pasar-texto-a-minusculasmayusculas/">post de AWK</a>, o el de <a href="http://picandocodigo.net/2008/07/adaptar-el-theme-para-wordpress-26-caption/">Wordpress y caption</a>, donde pasó lo mismo (malditos &lt;&gt;).</p>
<p>Como estoy usando el plugin <strong><a href="http://wordpress.org/extend/plugins/wp-syntax/">WP-Syntax</a></strong> para mostrar código fuente, pueden hacer uso de él a la hora de comentar. Su código respetará la indentación, y se mostrará coloreado acorde al lenguaje que usen. En el recuadro del cual les hablaba pueden encontrar la forma de uso (no me hagan repetir <img src='http://picandocodigo.net/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> ).</p>
<p>Los lenguajes reconocidos hasta el momento se listan a continuación. A su vez, son los nombres que hay que poner para comentar en el tag &#8220;pre&#8221;: &lt;pre lang=&#8221;<strong>L</strong>&#8220;&gt;<code>código</code>&lt;/pre&gt; donde <strong>L</strong> es uno de los siguientes:</p>
<p>abap, actionscript, actionscript3, ada, apache, applescript, asm, asp, autoit, bash, blitzbasic, bnf, c, c_mac, caddcl, cadlisp, cfdg, cfm, cpp-qt, cpp, csharp, css, d, delphi, diff, div, dos, dot, eiffel, fortran, freebasic, genero, gettext, glsl, gml, groovy, haskell, html4strict, idl, ini, inno, io, java, java5, javascript, kixtart, latex, lisp, lotusformulas, lotusscript, lua, m68k, matlab, mirc, mpasm, mxml, mysql, nsis, objc, ocaml-brief, caml, oobas, oracle8, pascal, per, perl, php-brief, php, plsql, python, qbasic, rails, reg, robots, ruby, sas, scala, scheme, sdlbasic, smalltalk, smarty, sql, tcl, text, thinbasic, tsql, vb, vbnet, verilog, vhdl, visualfoxpro, winbatch, xml, xpp, z80</p>
<p>Espero que les guste, y cualquier sugerencia, crítica u opinión, me la hacen llegar. Gracias por leer!</p>

<div class="wp_syntax"><div class="code"><pre class="c"><span style="color: #ff0000;">&quot;);
}
</span</pre></div></div>


<p><a href="http://feeds.feedburner.com/~a/picandocodigo?a=LTBzM0"><img src="http://feeds.feedburner.com/~a/picandocodigo?i=LTBzM0" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/picandocodigo?a=ExaAkJ"><img src="http://feeds.feedburner.com/~f/picandocodigo?i=ExaAkJ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/picandocodigo?a=2kiMOj"><img src="http://feeds.feedburner.com/~f/picandocodigo?i=2kiMOj" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/picandocodigo?a=tvI3ij"><img src="http://feeds.feedburner.com/~f/picandocodigo?i=tvI3ij" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/picandocodigo/~4/344244746" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://picandocodigo.net/2008/07/como-mostrar-codigo-fuente-en-los-comentarios0/feed/</wfw:commentRss>
		<feedburner:origLink>http://picandocodigo.net/2008/07/como-mostrar-codigo-fuente-en-los-comentarios0/</feedburner:origLink></item>
		<item>
		<title>[Noticias Debian] ¡Se acerca Debian Lenny!</title>
		<link>http://feeds.feedburner.com/~r/picandocodigo/~3/343270068/</link>
		<comments>http://picandocodigo.net/2008/07/noticias-debian-%c2%a1se-acerca-debian-lenny/#comments</comments>
		<pubDate>Wed, 23 Jul 2008 06:30:30 +0000</pubDate>
		<dc:creator>fernando</dc:creator>
		
		<category><![CDATA[GNU/Linux]]></category>

		<category><![CDATA[debian]]></category>

		<category><![CDATA[gnu]]></category>

		<category><![CDATA[lenny]]></category>

		<guid isPermaLink="false">http://picandocodigo.net/?p=964</guid>
		<description><![CDATA[
De forma bastante original, y con poco tiempo, se anunció en la lista de desarrollo de debian el congelamiento de Debian Lenny para la próxima semana:
                    ______________________
          [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_317" class="wp-caption alignright" style="width: 110px"><a href="http://picandocodigo.net/wp-content/uploads/2007/11/debian.png"><img class="size-medium wp-image-317" title="Debian logo" src="http://picandocodigo.net/wp-content/uploads/2007/11/debian.png" alt="Debian Lenny 5.0" width="100" height="123" /></a><p class="wp-caption-text">Debian Powered</p></div>
<p>De forma bastante original, y con poco tiempo, se anunció en la lista de desarrollo de debian el congelamiento de <strong>Debian Lenny</strong> para la próxima semana:</p>
<pre>                    ______________________
                   &lt; We freeze next week! &gt;
                    ----------------------
                            \   ^__^
                             \  (oo)\_______
                                (__)\       )\/\
                                    ||----w |
                                    ||     ||</pre>
<p>A partir de la semana próxima, habrá un congelamiento, en el hecho que no se pasarán más paquetes desde Sid (unstable) a Lenny (testing), para concentrarse en resolver los bugs. Todo esto, ¡esperando a <strong>Debian Lenny 5.0</strong> para setiembre de 2008!</p>
<p>Si bien históricamente han habido atrasos, hay que tener confianza en los desarrolladores. Para los usuarios de Debian en general, no implica más que la celebración de una nueva versión, porque la mayoría ya usan <strong>Lenny</strong> o <strong>Sid</strong> como repositorios principales.</p>
<p>Algo realmente admirable de los desarrolladores de Debian son sus <strong>BSP - Bug Squashing Parties</strong> (fiestas de &#8220;reventar&#8221;[¿?] bugs). Se trata de reuniones donde se dedican exclusivamente a corregir bugs. Al haber 360 bugs de más que afectan a Lenny, se están organizando maratones de BSP&#8217;s.</p>
<p><strong>Versionado de lanzamientos</strong></p>
<p>También en la lista de desarrollo, hubo una propuesta para cambiar la forma en que Debian versiona sus lanzamientos. <strong>Martin Krafft</strong> propone aumentar el primer número con cada lanzamiento &#8220;punto&#8221; / r release, y el segundo con cada re lanzamiento que incluya paquetes arreglados, mientras que lanzamientos nuevos de la rama estable con nuevas características (se viene Etch y medio), deberían tener un 5 como segundo número para mostrar la &#8220;media actualización&#8221;.</p>
<p><strong>Lars Wirzenius</strong> recordó que Debian introdujo el esquema actual de versionado porque los vendedores de CD temían que las cajas viejas quedaran en los estantes tras un re lanzamiento. (Sus discos X.Y se verían desactualizados si salía la versión X.Y+1, aunque se pudieran actualizar perfectamente por la red).Otros prefirieron un esquema de versionado clásico con dos puntos, donde el primer número fuera aumentando con cada lanzamiento grande, el tercero con lanzamientos de bugs corregidos y el segundo con lanzamientos que agregara nuevas características.</p>
<p>Martin Kraff está llevando a cabo una encuesta en<br />
<a href="http://doodle.ch/participation.html?pollId=8zauai3nqges2ur8 "> http://doodle.ch/participation.html?pollId=8zauai3nqges2ur8 </a><br />
Donde por el momento viene ganando &#8220;a favor, así que existe una posibilidad de que el versionado cambie a partir de Lenny.</p>
<pre>         (__)
         (oo)
   /------\/
  / |    ||
 *  /\---/\
    ~~   ~~
...."Have you mooed today?"...</pre>

<p><a href="http://feeds.feedburner.com/~a/picandocodigo?a=do2zbx"><img src="http://feeds.feedburner.com/~a/picandocodigo?i=do2zbx" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/picandocodigo?a=eMAARJ"><img src="http://feeds.feedburner.com/~f/picandocodigo?i=eMAARJ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/picandocodigo?a=Fh9nFj"><img src="http://feeds.feedburner.com/~f/picandocodigo?i=Fh9nFj" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/picandocodigo?a=6RLYSj"><img src="http://feeds.feedburner.com/~f/picandocodigo?i=6RLYSj" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/picandocodigo/~4/343270068" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://picandocodigo.net/2008/07/noticias-debian-%c2%a1se-acerca-debian-lenny/feed/</wfw:commentRss>
		<feedburner:origLink>http://picandocodigo.net/2008/07/noticias-debian-%c2%a1se-acerca-debian-lenny/</feedburner:origLink></item>
		<item>
		<title>El regreso de Los Farzantes</title>
		<link>http://feeds.feedburner.com/~r/picandocodigo/~3/343091177/</link>
		<comments>http://picandocodigo.net/2008/07/el-regreso-de-los-farzantes/#comments</comments>
		<pubDate>Wed, 23 Jul 2008 01:53:00 +0000</pubDate>
		<dc:creator>fernando</dc:creator>
		
		<category><![CDATA[Fotos]]></category>

		<category><![CDATA[Ocio]]></category>

		<category><![CDATA[drunk rock]]></category>

		<category><![CDATA[farzantes]]></category>

		<guid isPermaLink="false">http://picandocodigo.net/?p=955</guid>
		<description><![CDATA[
En el día de ayer, Lunes 21 de Julio de 2008, se dio un evento histórico&#8230; Volvieron a reunirse los Farzantes! ¿Qué es &#8220;Los Farzantes&#8221;? Un trío de amigos &#8220;músicos&#8220; (no, en serio, resalto las comillas) que se juntaban a hacer sonar sus instrumentos intentando seguir una línea en común.
El 31 de diciembre de 2005, [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_956" class="wp-caption alignright" style="width: 210px"><img class="size-full wp-image-956" title="Cerveza farzante" src="http://picandocodigo.net/wp-content/uploads/2008/07/cerveza-farzante.jpg" alt="Cadáveres de Cerveza" width="200" height="151" /><p class="wp-caption-text">Cadáveres de Cerveza</p></div>
<p>En el día de ayer, Lunes 21 de Julio de 2008, se dio un evento histórico&#8230; Volvieron a reunirse <strong>los Farzantes</strong>! ¿Qué es &#8220;Los Farzantes&#8221;? Un trío de amigos <strong>&#8220;</strong>músicos<strong>&#8220;</strong> (no, en serio, resalto las comillas) que se juntaban a hacer sonar sus instrumentos intentando seguir una línea en común.</p>
<p>El 31 de diciembre de 2005, me junté con Leo Farzante y Maxi Farzante, y formamos este proyecto que se venía anunciando y gestando desde hacía tiempo. Lo llamamos Farzantes, ya que el adjetivo se ajusta muy bien a nuestras personalidades, y decimos que tocamos &#8220;<strong>Drunk Rock</strong>&#8221; (nunca faltaba el alcohol en los ensayos).</p>
<p>Nuestra primer y única presentación en vivo fue en el cumpleaños de Maxi, bajista y vocalista, el 20 de febrero de 2006. Ya entrado el 2006, las ocupaciones y responsabilidades nos llevaron a dejar de lado el proyecto.</p>
<p>Ayer lunes, después de comentarlo un poco y coordinar un día, volvimos a tocar juntos. Nos juntamos en la sala de ensayo/estudio de <strong><a href="http://www.myspace.com/gogosquat">Maxi Squat</a></strong>, quien además me prestó su guitarra. Repasamos los 5 temas propios que solíamos hacer, mas unos cuantos covers.</p>
<p>Leo Farzante en la batería, estaba bastante oxidado. No tocaba la batería desde nuestro último ensayo (actualmente toca el bajo en <strong><a href="http://www.myspace.com/nomeimportapunkrock">No Me Importa</a></strong>). Yo igual, las 3 horas que estuvimos &#8220;chiveando&#8221; me dejaron ardiendo las yemas de los dedos&#8230;  (además que no me acordaba la mitad de los temas). El que andaba mejor era Maxi Farzante, quien además se llevó todos los temas y los plagió con <strong><a href="http://www.myspace.com/electroshockmyspace">Electroshock</a></strong> <img src='http://picandocodigo.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /><br />
Como invitado, tocó con nosotros Chiki Electroshock.</p>
<p>Dejo algunas fotos de lo que fue &#8220;el regreso&#8221;:</p>
<table border="0" align="center">
<tbody>
<tr>
<td>
<p><div id="attachment_957" class="wp-caption aligncenter" style="width: 310px"><a href="http://picandocodigo.net/wp-content/uploads/2008/07/leo-farzante.jpg"><img class="size-medium wp-image-957" title="Leo Farzante" src="http://picandocodigo.net/wp-content/uploads/2008/07/leo-farzante-300x227.jpg" alt="Leo Farzante" width="300" height="227" /></a><p class="wp-caption-text">Leo Farzante</p></div></td>
<td>
<p><div id="attachment_959" class="wp-caption aligncenter" style="width: 237px"><a href="http://picandocodigo.net/wp-content/uploads/2008/07/fernando-farzante.jpg"><img class="size-medium wp-image-959" title="Fernando Farzante" src="http://picandocodigo.net/wp-content/uploads/2008/07/fernando-farzante-227x300.jpg" alt="Yo Farzante" width="227" height="300" /></a><p class="wp-caption-text">Yo Farzante</p></div></td>
</tr>
<tr>
<td>
<p><div id="attachment_958" class="wp-caption aligncenter" style="width: 237px"><a href="http://picandocodigo.net/wp-content/uploads/2008/07/maxi-farzante.jpg"><img class="size-medium wp-image-958" title="Maxi Farzante" src="http://picandocodigo.net/wp-content/uploads/2008/07/maxi-farzante-227x300.jpg" alt="Maxi Farzante" width="227" height="300" /></a><p class="wp-caption-text">Maxi Farzante</p></div></td>
<td>
<p><div id="attachment_960" class="wp-caption aligncenter" style="width: 237px"><a href="http://picandocodigo.net/wp-content/uploads/2008/07/chiki-electroshock.jpg"><img class="size-medium wp-image-960" title="Chiki Electroshock" src="http://picandocodigo.net/wp-content/uploads/2008/07/chiki-electroshock-227x300.jpg" alt="Chiki Electroshock" width="227" height="300" /></a><p class="wp-caption-text">Chiki Electroshock</p></div></td>
</tr>
</tbody>
</table>

<p><a href="http://feeds.feedburner.com/~a/picandocodigo?a=vkVuRH"><img src="http://feeds.feedburner.com/~a/picandocodigo?i=vkVuRH" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/picandocodigo?a=GoEAlJ"><img src="http://feeds.feedburner.com/~f/picandocodigo?i=GoEAlJ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/picandocodigo?a=izSHNj"><img src="http://feeds.feedburner.com/~f/picandocodigo?i=izSHNj" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/picandocodigo?a=7JgBtj"><img src="http://feeds.feedburner.com/~f/picandocodigo?i=7JgBtj" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/picandocodigo/~4/343091177" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://picandocodigo.net/2008/07/el-regreso-de-los-farzantes/feed/</wfw:commentRss>
		<feedburner:origLink>http://picandocodigo.net/2008/07/el-regreso-de-los-farzantes/</feedburner:origLink></item>
		<item>
		<title>AWK: Pasar texto a minúsculas/mayúsculas</title>
		<link>http://feeds.feedburner.com/~r/picandocodigo/~3/342966711/</link>
		<comments>http://picandocodigo.net/2008/07/awk-pasar-texto-a-minusculasmayusculas/#comments</comments>
		<pubDate>Tue, 22 Jul 2008 22:35:47 +0000</pubDate>
		<dc:creator>fernando</dc:creator>
		
		<category><![CDATA[Shell]]></category>

		<category><![CDATA[awk]]></category>

		<category><![CDATA[bash]]></category>

		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://picandocodigo.net/?p=952</guid>
		<description><![CDATA[Lo bueno de aprender AWK es que al tenerlo fresco, se convierte en una herramienta de uso diario en el shell. Últimamente lo uso mucho, por ejemplo hoy, lo usé en el siguiente caso que les voy a plantear. Necesitaba pasar un texto a minúsculas, que era algo que no sabía cómo hacer, hasta que [...]]]></description>
			<content:encoded><![CDATA[<p>Lo bueno de aprender <strong><abbr title="Aho, Weinberger, Kernighan">AWK</abbr></strong> es que al tenerlo fresco, se convierte en una herramienta de uso diario en el shell. Últimamente lo uso mucho, por ejemplo hoy, lo usé en el siguiente caso que les voy a plantear. Necesitaba <strong>pasar un texto a minúsculas</strong>, que era algo que no sabía cómo hacer, hasta que lo necesité. En verdad tenía un archivo de texto (items.txt) lleno de datos con el siguiente formato:</p>
<p><code>* TITULO DEL ITEM - Descripción del ítem.</code></p>
<p>Lo que necesitaba era obtener una lista así:<br />
<code>titulo del item 1, titulo del item 2, ... , titulo del item n.</code><br />
Y obviamente, lo primero que se me ocurrió fue usar AWK.</p>
<p><strong>&lt;</strong><strong>conceptosAWK&gt;</strong><br />
AWK es un lenguaje de programación interpretado orientado a datos. Recibe texto como entrada, y trabaja con eso. Ejecuta una acción por cada línea de texto, y a su vez, cada dato &#8220;separado&#8221; en esa linea de texto es un registro al que se accede con $1, $2, &#8230; , $n.<br />
El separador de registros es importante. Por defecto toma el espacio como separador.<br />
<strong>&lt;/conceptosAWK&gt;</strong></p>
<p>En este archivo en particular, opté empezar por separar el título de su descripción. Primero proceso el archivo para eliminar lo que hay después del guión. Para eso especifico que el separador de campo sea el guión &#8220;-&#8221;:</p>

<div class="wp_syntax"><div class="code"><pre class="bash"><span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'BEGIN{FS=&quot;-&quot;}{print $1}'</span> items.txt <span style="color: #000000; font-weight: bold;">&gt;</span> resultado.txt</pre></div></div>

<p>Lo que estoy haciendo acá, es especificando que separe los registros por &#8220;-&#8221;. Entonces $1 va a ser &#8220;<code>* TITULO DEL ITEM</code>&#8221; y $2 va a ser &#8220;<code>Descripción del ítem.</code>&#8220;. Le paso como parámetro items.txt, y voy guardando el resultado en resultado.txt. (Redirijo la salida del awk con &#8220;&gt;&#8221; a un archivo de texto resultado.txt).</p>
<p>El archivo resultado.txt me queda con el formato: &#8220;<code>* TITULO DEL ITEM</code>&#8221; para cada ítem. Ahora lo paso a minúsculas, y de paso saco el asterisco que no lo necesito:</p>

<div class="wp_syntax"><div class="code"><pre class="bash"><span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'BEGIN{FS=&quot;*&quot;}{print tolower($2&quot;, &quot;)}'</span> $<span style="color: #000000;">2</span></pre></div></div>

<p>Me quedó algo así:<br />
titulo del item 1 , titulo del item 2 , &#8230; , titulo del item n ,<br />
Ahora, lo que tengo que hacer sacar el espacio antes de las comas, para eso puedo usar <strong><abbr title="Stream EDitor">SED</abbr></strong>:</p>

<div class="wp_syntax"><div class="code"><pre class="bash"><span style="color: #c20cb9; font-weight: bold;">sed</span> s<span style="color: #000000; font-weight: bold;">/</span>\ ,<span style="color: #000000; font-weight: bold;">/</span>,<span style="color: #000000; font-weight: bold;">/</span></pre></div></div>

<p>Reemplazo los &#8221; ,&#8221; con &#8220;,&#8221; y listo. El archivo quedó:<br />
titulo del item 1 , titulo del item 2 , &#8230; , titulo del item n ,</p>
<p>Me hice un script, que recibe como parámetros dos archivos. El primer parámetro $1, es el archivo que hay que editar, y el segundo parámetro $2 va a ser el resultado:</p>

<div class="wp_syntax"><div class="code"><pre class="bash"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'BEGIN{FS=&quot;-&quot;}{print $1}'</span> $<span style="color: #000000;">1</span> <span style="color: #000000; font-weight: bold;">&gt;</span> $<span style="color: #000000;">2</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'BEGIN{FS=&quot;*&quot;}{print tolower($2&quot;, &quot;)}'</span> $<span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">`</span> <span style="color: #000000; font-weight: bold;">&gt;</span> $<span style="color: #000000;">2</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">sed</span> s<span style="color: #000000; font-weight: bold;">/</span>\ ,<span style="color: #000000; font-weight: bold;">/</span>,<span style="color: #000000; font-weight: bold;">/</span> $<span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">`</span> <span style="color: #000000; font-weight: bold;">&gt;</span> $<span style="color: #000000;">2</span></pre></div></div>

<p>Lo novedoso, por lo menos para mí, fue el uso de la función &#8220;<strong>tolower</strong>&#8221; en <strong>AWK</strong>. Así que para pasar un texto a minúsculas o a mayúsculas de forma bien sencilla, simplemente hay que usar esta función. Idem para pasar a mayúsculas: toupper. Los scripts quedarían algo así:</p>
<p><strong>Para pasar todo el texto a minúsculas:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="bash">tolower.<span style="color: #c20cb9; font-weight: bold;">sh</span>
<span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> $<span style="color: #000000; font-weight: bold;">@</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'{print tolower($0)}'</span>
<span style="color: #666666; font-style: italic;">#Este script pasa a minúsculas todos los parámetros que reciba.</span></pre></div></div>

<p><strong>Para pasar todo el texto a mayúsculas:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="bash">toupper.<span style="color: #c20cb9; font-weight: bold;">sh</span>
<span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> $<span style="color: #000000; font-weight: bold;">@</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'{print toupper($0)}'</span>
<span style="color: #666666; font-style: italic;">#Este script pasa a mayúsculas todos los parámetros que reciba.</span></pre></div></div>

<p>O directamente, si se acuerdan cómo usar AWK, lo más rápido es hacerlo derecho desde consola.</p>
<p>Y tá, eso es lo que estuve haciendo en un rato. Como estuvo divertido, lo documenté por acá <img src='http://picandocodigo.net/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /><br />
En una de esas a alguien le sirve.</p>

<p><a href="http://feeds.feedburner.com/~a/picandocodigo?a=J8gACR"><img src="http://feeds.feedburner.com/~a/picandocodigo?i=J8gACR" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/picandocodigo?a=bgCCuJ"><img src="http://feeds.feedburner.com/~f/picandocodigo?i=bgCCuJ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/picandocodigo?a=foFBtj"><img src="http://feeds.feedburner.com/~f/picandocodigo?i=foFBtj" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/picandocodigo?a=adaYdj"><img src="http://feeds.feedburner.com/~f/picandocodigo?i=adaYdj" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/picandocodigo/~4/342966711" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://picandocodigo.net/2008/07/awk-pasar-texto-a-minusculasmayusculas/feed/</wfw:commentRss>
		<feedburner:origLink>http://picandocodigo.net/2008/07/awk-pasar-texto-a-minusculasmayusculas/</feedburner:origLink></item>
		<item>
		<title>Git: Sistema de control de versiones distribuido</title>
		<link>http://feeds.feedburner.com/~r/picandocodigo/~3/342823765/</link>
		<comments>http://picandocodigo.net/2008/07/git-sistema-de-control-de-versiones-distribuido/#comments</comments>
		<pubDate>Tue, 22 Jul 2008 19:13:49 +0000</pubDate>
		<dc:creator>fernando</dc:creator>
		
		<category><![CDATA[Control de revisiones]]></category>

		<category><![CDATA[bazaar]]></category>

		<category><![CDATA[control de versiones]]></category>

		<category><![CDATA[git]]></category>

		<category><![CDATA[subersion]]></category>

		<guid isPermaLink="false">http://picandocodigo.net/?p=948</guid>
		<description><![CDATA[Ayer, por primera vez, tuve que usar Git, el sistema de control de versiones distribuido. Como he mencionado varias veces, el único sistema de control de versiones que he usado hasta ahora ha sido Subversion. Aunque en el blog ya he comentado también sobre Bazaar, todavía no he tenido oportunidad de probarlo. Teniendo una idea [...]]]></description>
			<content:encoded><![CDATA[<p><img title="Git Logo" src="http://picandocodigo.net/wp-content/uploads/2008/07/git-logo.png" alt="Git Logo" width="72" height="27" align="right" />Ayer, por primera vez, tuve que usar <strong>Git</strong>, el sistema de control de versiones distribuido. Como he mencionado varias veces, el único sistema de control de versiones que he usado hasta ahora ha sido <strong>Subversion</strong>. Aunque en el blog ya he comentado también sobre <a href="http://picandocodigo.net/2008/05/sistema-de-control-de-versiones-gnu-bazaar/"><strong>Bazaar</strong></a>, todavía no he tenido oportunidad de probarlo. Teniendo una idea (muy vaga por cierto) de qué es <strong>Git</strong>, y cómo funciona, me resultó bastante fácil comprenderlo. Lo fuí usando/aprendiendo a la carrera, la mejor forma de aprender&#8230;</p>
<p><strong>¿Qué es Git?</strong></p>
<blockquote><p>Git es un sistema de control de versiones diseñado para manejar proyectos muy grandes con velocidad y eficiencia, pero igual de apropiado para repositorios pequeños; es especialmente popular con la comunidad open source, sirviendo como plataforma de desarrollo para proyectos como el Kernel Linux, Ruby on Rails, WINE o X.org.</p>
<p>Git cae en la categoría de herramientas de manejo de código fuente distribuído, similar por ejemplo a Mercurial o Bazaar. Cada directorio de trabajo de Git es un repositorio completo con historial y capacidades totales de tracking de revisiones, independiente de acceso de red o un servidor central. Aún así, Git es extremadamente rápido y eficiente con el espacio.</p>
<p>Git es un proyecto Open Source cubierto por la GNU General Public License v2. Originalmente escrito por Linus Torvalds y mantenido por Junio C Hamano.</p></blockquote>
<div id="attachment_949" class="wp-caption alignright" style="width: 310px"><a href="http://git.or.cz/gitwiki/GitCheatSheet"><img class="size-full wp-image-949" title="Git Cheat Sheet" src="http://picandocodigo.net/wp-content/uploads/2008/07/git-cheat-sheet.jpg" alt="Git Cheat Sheet" width="300" height="232" /></a><p class="wp-caption-text">Git Cheat Sheet</p></div>
<p>Instalarlo no tiene muchas complicaciones. En mi caso con Debian:<br />
<code>apt-get install git-core</code><br />
Y ya tengo las herramientas para obtener código fuente y subirlo.</p>
<p>Hay una <strong><a href="http://git.or.cz/gitwiki/GitCheatSheet">CheatSheet</a></strong> (hoja de referencia, chuleta, trensito) de <strong>Git</strong> en su wiki, que me resultó extremadamente útil a la hora de obtener el código fuente de un proyecto.</p>
<p>En su sitio web pueden encontrar los &#8220;<a href="http://git.or.cz/course/index.html"><strong>Crash Courses</strong></a>&#8220;, algo así como cursos para comenzar a usar Git rápidamente. Estos son:</p>
<ul class="toc">
<li><a href="http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html">Git for everyone</a></li>
<li><a href="http://git.or.cz/course/stgit.html">Maintaining patches on top of Git tree</a></li>
<li><a href="http://git.or.cz/course/svn.html">Git for SVN users</a></li>
</ul>
<p>En mi caso, aprendí todo lo que sé de control de versiones con <strong><a title="Version Control with Subversion - Next Generation Open Source Version Control" href="http://picandocodigo.net/2008/03/libros-version-control-with-subversion-next-generation-open-source-version-control/">Version Control with Subversion</a></strong> por lo que <strong>Git for SVN users</strong> debe ser un buen lugar para empezar.</p>
<p>Además de empezar a familiarizarme con Git, conocí <a href="https://github.com/"><strong>github</strong></a>, un sitio para hostear código fuente con Git. Inscribirse toma unos segundos, y ya podemos empezar a usarlo, y recorrer otros repos.</p>

<p><a href="http://feeds.feedburner.com/~a/picandocodigo?a=OK8o81"><img src="http://feeds.feedburner.com/~a/picandocodigo?i=OK8o81" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/picandocodigo?a=gTjF9J"><img src="http://feeds.feedburner.com/~f/picandocodigo?i=gTjF9J" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/picandocodigo?a=vwo9fj"><img src="http://feeds.feedburner.com/~f/picandocodigo?i=vwo9fj" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/picandocodigo?a=bO7wWj"><img src="http://feeds.feedburner.com/~f/picandocodigo?i=bO7wWj" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/picandocodigo/~4/342823765" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://picandocodigo.net/2008/07/git-sistema-de-control-de-versiones-distribuido/feed/</wfw:commentRss>
		<feedburner:origLink>http://picandocodigo.net/2008/07/git-sistema-de-control-de-versiones-distribuido/</feedburner:origLink></item>
		<item>
		<title>Arora Web Browser - navegador basado en WebKit</title>
		<link>http://feeds.feedburner.com/~r/picandocodigo/~3/341775083/</link>
		<comments>http://picandocodigo.net/2008/07/arora-web-browser-navegador-basado-en-webkit/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 18:33:33 +0000</pubDate>
		<dc:creator>fernando</dc:creator>
		
		<category><![CDATA[Browsers]]></category>

		<category><![CDATA[arora]]></category>

		<category><![CDATA[navegadores]]></category>

		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://picandocodigo.net/?p=943</guid>
		<description><![CDATA[Hace unos meses probé el navegador web Arora, cuando se anunció la salida del proyecto. Probé la versión 0.1, en Windows y Debian. Ahora estoy usando la versión 0.2 en Debian. Lo primero que me llamó la atención fue que estuviera hecho con las bibliotecas Qt y WebKit. Realmente no me gusta mucho la apariencia [...]]]></description>
			<content:encoded><![CDATA[<p>Hace unos meses probé el navegador web <strong>Arora</strong>, cuando se anunció la salida del proyecto. Probé la versión 0.1, en <strong>Windows</strong> y <strong>Debian</strong>. Ahora estoy usando la versión <strong>0.2</strong> en <strong>Debian</strong>. Lo primero que me llamó la atención fue que estuviera hecho con las bibliotecas <strong>Qt</strong> y <strong>WebKit</strong>. Realmente no me gusta mucho la apariencia de <strong>GTK</strong>, o por lo menos prefiero Qt. En ambos casos, se adaptó perfectamente a la apariencia nativa de cada sistema.</p>
<h2>Historia y desarrollo:</h2>
<p>La descripción de <a href="http://code.google.com/p/arora/">su sitio web en Google Code</a> dice más o menos así:</p>
<p><img title="Arora Web Browser" src="http://picandocodigo.net/wp-content/uploads/2008/07/arora-logo.png" alt="Arora Web Browser" width="128" height="128" align="right" /><em>Arora es un navegador web <strong>simple y multi plataforma</strong>. Actualmente Arora es un navegador muy básico cuyas características incluyen &#8220;Historial&#8221; y &#8220;Bookmarks&#8221;. No tiene soporte para plugins de Netscape, así que no hay soporte para flash hasta Qt 4.5. Pero es pequeño, menos de 10.000 líneas de código, muy rápido, liviano, y divertido de hackear. Arora y QtWebKit están desarrollados para ser multi plataforma usando la biblioteca Qt. Originalmente se creó como demo para Qt para ayudar a testear el componente QtWebKit y encontrar problemas y bugs del API antes del lanzamiento. Se puede encontrar una versión más vieja todavía en el código fuente de Qt en el directorio demo/browser. Arora funciona en Linux, OS X, Windows y Linux embebido usando Qt Embedded.</em></p>
<p>Su desarrollador es <strong>Benjamin C Meyer</strong> (a.k.a. &#8220;icefox&#8221;), desarrollador de <strong>Trolltech</strong>, quien tras programar el demo, hizo el fork y lo nombró &#8220;Arora&#8221;. La <strong>meta principal</strong> del proyecto es enfocarse en crear un navegador open source sobre webkit, capaz de ser usado como navegador diario, con las características típicas: Historial, bookmarks, pestañas, y extensiones.</p>
<p>Hasta el momento, han logrado 3 de las 4 metas iniciales. Tiene pestañas, historial y favoritos. Parte de la idea también es que se mantenga totalmente abierto, rápido y estable, multi-plataforma y mantener un código fácil de entender.</p>
<p>Señalan como &#8220;<strong>lo que no quieren lograr</strong>&#8220;: volverse un navegador de KDE o Windows. O sea, pretenden mantener el navegador libre de plataforma, y en caso de integrar características específicas para algún entorno en particular, hacerlo a través de extensiones. Además, esperan &#8220;nunca volverse otro Mozilla&#8221;, implementando todas las características como extensiones por fuera del navegador.</p>
<h2>QtWebKit</h2>
<p><strong>WebKit</strong> es un framework open source con los cimientos para crear un navegador web. Originalmente se derivó de la biblioteca <strong>KHTML</strong> de <strong>Konqueror</strong> por <strong>Apple</strong> para su navegador <strong>Safari</strong>, y ahora está siendo desarrollado por Apple, Nokia (quien compró Trolltech, la empresa responsable de Qt), Google y otros. Pasa el <strong>Acid2 test</strong> y desde Marzo de 2008 pasa con 100/100 el <strong>Acid3 test</strong> (¡estándard!).</p>
<p><strong><a href="http://doc.trolltech.com/main-snapshot/qtwebkit.html">QtWebKit</a></strong> está basado en WebKit, provee un motor para navegador web que facilita embeder contenido de la World Wide Web en aplicaciones Qt. Al mismo tiempo, el contenido de la web puede ser mejorado con controles nativos.</p>
<h2>Instalar Arora</h2>
<p>Si usan <strong>Debian Lenny/Sid</strong> o <strong>ArchLinux</strong>, pueden encontrar Arora en los repositorios. Así que con apt-get o pacman (<a href="http://gcarrier.koon.fr/2008/05/19/try-arora-on-archlinux/">más info para ArchLinux</a>) pueden instalarlo resolviendo automáticamente las dependencias.</p>
<p>También pueden descargar Arora desde el siguiente enlace:<br />
<a href="http://code.google.com/p/arora/downloads/list">http://code.google.com/p/arora/downloads/list</a><br />
Está el código fuente en formato <strong>tar.gz</strong>, un paquete <strong>.deb</strong> para <strong>Ubuntu 8.04</strong> y un instalador en formato <strong>exe</strong> para <strong>Windows</strong>.</p>
<div id="attachment_945" class="wp-caption aligncenter" style="width: 310px"><a href="http://picandocodigo.net/wp-content/uploads/2008/07/acercade-arora.jpg"><img class="size-medium wp-image-945" title="Arora - Acerca de" src="http://picandocodigo.net/wp-content/uploads/2008/07/acercade-arora-300x220.jpg" alt="Arora - Acerca de" width="300" height="220" /></a><p class="wp-caption-text">Acerca de... Arora</p></div>
<h2>Usando Arora</h2>
<p>Lo primero que tengo que decir, es que para ir en la versión 0.2, el navegador es bastante estable y totalmente usable. A primera vista, encontramos algunas cosas familiares de la familia Mozilla: pestañas, colocación de botones y barras de herramientas, buscador de Google al costado. Está bien, no hay porqué reinventar la rueda en esto, y no apunta a la innovación. Pero lo primero que &#8220;agradece&#8221; la vista es la integración con la apariencia de KDE.</p>
<p>Es bien liviano, consume muy pocos recursos, aunque todavía no tiene extensiones para sumar al consumo de memoria&#8230; <img src='http://picandocodigo.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Probé abrir varias pestañas con distintos sitios web, y no llegué a enlentecerlo (tampoco probé con una cantidad exagerada). Me impresionó lo rápido que cargó GMail, lo que demuestra que tiene JavaScript bien clarito. Sin embargo, ya logueado en mi cuenta de GMail, se volvió un poco lento.</p>
<div id="attachment_946" class="wp-caption aligncenter" style="width: 310px"><a href="http://picandocodigo.net/wp-content/uploads/2008/07/arora-01.jpg"><img class="size-medium wp-image-946" title="Navegador Arora" src="http://picandocodigo.net/wp-content/uploads/2008/07/arora-01-300x225.jpg" alt="Navegador Arora" width="300" height="225" /></a><p class="wp-caption-text">Navegador Web Arora</p></div>
<p>El logo es bastante simpático, con tantos pingüinos en la vuelta, hacía falta un oso polar&#8230; (<strong><a href="http://en.wikipedia.org/wiki/Penguins_%26_Polarbears">Penguins &amp; Polarbears</a></strong>, temón!). Como se caracteriza en el Software Libre, se trata de tener opciones, y Arora es una opción más. Si bien todavía está en una etapa temprana de desarrollo, promete mucho. Se puede seguir su desarrollo en el blog <a href="http://arorabrowser.blogspot.com/">Arora Development</a>.</p>
<p>Sin dudas la rapidez y sencillez viene muy agradecida, en una época donde los navegadores acumulan cada vez más <a href="http://en.wikipedia.org/wiki/Software_bloat">bloat</a>, un comienzo de cero y con un motor así, viene de pelos. Le va a encantar a los usuarios de KDE, ya que se siente como parte de KDE, y se perfila como un competidor directo de Firefox, Konqueror, y demás participantes en &#8220;la guerra de los navegadores&#8221;.</p>
<p>Un usuario incluso <a href="https://bugzilla.novell.com/show_bug.cgi?id=400784">lo sugirió como navegador por defecto</a> en <strong>Open SuSE</strong>. Parece una idea descabellada para ser un navegador en estado tan prematuro, pero no me extrañaría que algo así pase en el futuro. Otro punto a favor que tiene, es la posibilidad de funcionar en equipos con sistemas embebidos, por lo que entra a la competencia de dispositivos móviles desde el principio.</p>
<p>Sin dudas es un navegador muy prometedor, y que tiene mucho futuro. Estén atentos a la salida de nuevas versiones:</p>
<p><a href="http://www.arora-browser.org/">http://www.arora-browser.org/</a></p>

<p><a href="http://feeds.feedburner.com/~a/picandocodigo?a=PHiYo7"><img src="http://feeds.feedburner.com/~a/picandocodigo?i=PHiYo7" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/picandocodigo?a=FGUWFJ"><img src="http://feeds.feedburner.com/~f/picandocodigo?i=FGUWFJ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/picandocodigo?a=18MP9j"><img src="http://feeds.feedburner.com/~f/picandocodigo?i=18MP9j" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/picandocodigo?a=1kiXDj"><img src="http://feeds.feedburner.com/~f/picandocodigo?i=1kiXDj" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/picandocodigo/~4/341775083" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://picandocodigo.net/2008/07/arora-web-browser-navegador-basado-en-webkit/feed/</wfw:commentRss>
		<feedburner:origLink>http://picandocodigo.net/2008/07/arora-web-browser-navegador-basado-en-webkit/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic Page Served (once) in 0.422 seconds --><!-- Cached page served by WP-Cache -->
