<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Blog personal de Rubén Gómez</title>
	<atom:link href="http://rubengomez.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://rubengomez.wordpress.com</link>
	<description>&#34;...comenzaba otro día de ajetreos...&#34; (Juan Salvador Gaviota)</description>
	<lastBuildDate>Sat, 08 Aug 2009 18:13:01 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='rubengomez.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/a6a5e59697b39413bf40c2f88040ca2d?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Blog personal de Rubén Gómez</title>
		<link>http://rubengomez.wordpress.com</link>
	</image>
			<item>
		<title>¿Qué es la programación?</title>
		<link>http://rubengomez.wordpress.com/2009/08/08/%c2%bfque-es-la-programacion/</link>
		<comments>http://rubengomez.wordpress.com/2009/08/08/%c2%bfque-es-la-programacion/#comments</comments>
		<pubDate>Sat, 08 Aug 2009 18:04:34 +0000</pubDate>
		<dc:creator>Rubén Gómez</dc:creator>
				<category><![CDATA[Ciencia]]></category>
		<category><![CDATA[Mi opinión]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[democoding]]></category>
		<category><![CDATA[opinión]]></category>

		<guid isPermaLink="false">http://rubengomez.wordpress.com/?p=200</guid>
		<description><![CDATA[¿Es una ingeniería? ¿dejó de serlo o siempre fue una labor artesanal? ¿O es una labor artística, poética?
Yo creo que en ese sentido los democoders y programadores de videojuegos (cuando no lo hacen víctimas de la &#8220;explotación&#8221; de un proyecto comercial) llevan (¿llevamos?) una ventaja al resto de la especie humana en esto de comprender [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=200&subd=rubengomez&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>¿Es una <a href="http://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_software">ingeniería</a>? ¿<a href="http://www.codinghorror.com/blog/archives/001288.html">dejó de serlo</a> o siempre fue una labor artesanal? ¿O es una labor artística, <a href="http://pouet.net">poética</a>?</p>
<p>Yo creo que en ese sentido los <a href="http://es.wikipedia.org/wiki/Demoscene"><em>democoders</em></a> y programadores de videojuegos (cuando no lo hacen víctimas de la <em>&#8220;explotación</em>&#8221; de un proyecto comercial) llevan (¿llevamos?) una ventaja al resto de la especie humana en esto de comprender la verdadera naturaleza de la programación.</p>
<p>La programación siempre ha sido, es y será una sola cosa:</p>
<p><strong>Enseñar a una máquina a <a href="http://es.wikipedia.org/wiki/%C2%BFSue%C3%B1an_los_androides_con_ovejas_el%C3%A9ctricas%3F">soñar con una oveja eléctrica</a>.</strong></p>
<p><strong><br />
</strong></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rubengomez.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rubengomez.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rubengomez.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rubengomez.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rubengomez.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rubengomez.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rubengomez.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rubengomez.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rubengomez.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rubengomez.wordpress.com/200/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=200&subd=rubengomez&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://rubengomez.wordpress.com/2009/08/08/%c2%bfque-es-la-programacion/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/09d1c501aa9546690fcad7bbea22eacb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Rubén</media:title>
		</media:content>
	</item>
		<item>
		<title>Script para interfaz común a sistemas de administración de paquetes</title>
		<link>http://rubengomez.wordpress.com/2009/05/06/script-para-interfaz-comun-a-sistemas-de-administracion-de-paquetes/</link>
		<comments>http://rubengomez.wordpress.com/2009/05/06/script-para-interfaz-comun-a-sistemas-de-administracion-de-paquetes/#comments</comments>
		<pubDate>Wed, 06 May 2009 17:13:07 +0000</pubDate>
		<dc:creator>Rubén Gómez</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[apt]]></category>
		<category><![CDATA[aptitude]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[pkg]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://rubengomez.wordpress.com/?p=151</guid>
		<description><![CDATA[Hace tiempo me rondaba la idea de compilar en un script una interfaz sencilla y unificada a los distintos comandos que empleo cada día para administrar los sistemas de paquetes, hoy me he animado y he escrito uno que crea un modo bastante sencillo de administrarlos en Ubuntu y FreeBSD&#8230; es una primera idea, he [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=151&subd=rubengomez&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Hace tiempo me rondaba la idea de compilar en un <em>script</em> una interfaz sencilla y unificada a los distintos comandos que empleo cada día para administrar los sistemas de paquetes, hoy me he animado y he escrito uno que crea un modo bastante sencillo de administrarlos en Ubuntu y FreeBSD&#8230; es una primera idea, he buscado a ver si había algo así ya hecho, no he visto nada (me extraña) pero bueno por si acaso aquí está, la herramienta se llama <em>pkt</em> y acepta los siguientes comandos:</p>
<ul>
<li><strong>d</strong>{elete}: borrado (suave), no borra datos de configuración en Ubuntu y no borra dependencias en FreeBSD</li>
<li><strong>D</strong>{elete}: borrado (duro), lo contrario de lo anterior</li>
<li><strong>f</strong>{iles}: muestra los archivos en un paquete</li>
<li><strong>p</strong>{acket}: busca paquete por nombre entre los instalados</li>
<li><strong>i</strong>{nstall}: instala paquete (Ubuntu: ligero, sin recomendaciones, FreeBSD sin variación)</li>
<li><strong>I</strong>{nstall}: instala paquete (Ubuntu: completo, con recomendaciones, FreeBSD sin variación)</li>
<li><strong>u</strong>{pgrade}: Actualizar paquetes instalados</li>
<li><strong>U</strong>{pdate}: Actualizar repositorio de paquetes/ports</li>
<li><strong>v</strong>{iew}: Ver información completa de paquete</li>
<li><strong>V</strong>{iew}: Ver todos los paquetes instalados</li>
</ul>
<p>Además valida que las herramientas necesarias estén instaladas, ejecuta adecuadamente <em>sudo</em> donde corresponde, y en cada acción muestra el comando ejecutado con lo que supongo que también tiene un cierto efecto &#8220;pedagógico&#8221;. Con una pequeña adaptación también valdría para OpenBSD, y supongo que para sistemas tipo Fedora&#8230;</p>
<p>Usa <em>arrays</em> de datos por lo que requiere una versión más o menos moderna de Bash, en mi Ubuntu estoy usando la 3.2.48.</p>
<p><em><strong>Actualización 29/05/2009:</strong> </em><a href="http://pkt-script.googlecode.com/files/pkt-0.7">Enlace de descarga</a> (v0.7) desde su <a href="http://pkt-script.googlecode.com/">repositorio en Google Code</a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rubengomez.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rubengomez.wordpress.com/151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rubengomez.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rubengomez.wordpress.com/151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rubengomez.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rubengomez.wordpress.com/151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rubengomez.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rubengomez.wordpress.com/151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rubengomez.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rubengomez.wordpress.com/151/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=151&subd=rubengomez&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://rubengomez.wordpress.com/2009/05/06/script-para-interfaz-comun-a-sistemas-de-administracion-de-paquetes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/09d1c501aa9546690fcad7bbea22eacb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Rubén</media:title>
		</media:content>
	</item>
		<item>
		<title>Procesando los típicos mensajes &#8216;ociosos&#8217; con anexos laaargos con procmail</title>
		<link>http://rubengomez.wordpress.com/2009/03/15/procesando-los-tipicos-mensajes-ociosos-con-anexos-laaargos-con-procmail/</link>
		<comments>http://rubengomez.wordpress.com/2009/03/15/procesando-los-tipicos-mensajes-ociosos-con-anexos-laaargos-con-procmail/#comments</comments>
		<pubDate>Sun, 15 Mar 2009 22:07:53 +0000</pubDate>
		<dc:creator>Rubén Gómez</dc:creator>
				<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[procmail]]></category>

		<guid isPermaLink="false">http://rubengomez.wordpress.com/?p=124</guid>
		<description><![CDATA[Creo que rara será la persona que lleve un tiempo usando el correo electrónico de manera profesional y no se sienta algo incómodo cuando algún bienintencionado familiar/amiguete le envíe a su correo de trabajo esa bonita presentación/animación de 25 megabytes para ver paisajes, las piruetas de un lindo gatito, etc&#8230; mediante este código en el [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=124&subd=rubengomez&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Creo que rara será la persona que lleve un tiempo usando el correo electrónico de manera profesional y no se sienta algo incómodo cuando algún bienintencionado familiar/amiguete le envíe a su correo de trabajo esa bonita presentación/animación de 25 megabytes para ver paisajes, las piruetas de un lindo gatito, etc&#8230; mediante este código en el directorio personal (<em>home</em>) en .procmailrc podemos reenviarlos sin guardarlos en el buzón de trabajo a otra dirección de correo más conveniente (más indicaciones mediante <em>man procmailrc</em>), las dos primeras líneas comentadas son útiles, opcionalmente, para el depurado del functionamiento del fichero de reglas:</p>
<pre>
# VERBOSE=YES
# LOGFILE='procmail.log'
:0w
* ^Content-Type: multipart
{
:0B
* ^Content-(Type|Disposition):(.|$[ ])*(\.|-)(pps|ppt|mpg|wmv|m4v|avi|flv)
! {direccion@email.alternativo}
}
</pre>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rubengomez.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rubengomez.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rubengomez.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rubengomez.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rubengomez.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rubengomez.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rubengomez.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rubengomez.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rubengomez.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rubengomez.wordpress.com/124/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=124&subd=rubengomez&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://rubengomez.wordpress.com/2009/03/15/procesando-los-tipicos-mensajes-ociosos-con-anexos-laaargos-con-procmail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/09d1c501aa9546690fcad7bbea22eacb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Rubén</media:title>
		</media:content>
	</item>
		<item>
		<title>Como convertir una memoria USB en un kit de reparación</title>
		<link>http://rubengomez.wordpress.com/2008/11/23/como-convertir-una-memoria-usb-en-un-kit-de-reparacion/</link>
		<comments>http://rubengomez.wordpress.com/2008/11/23/como-convertir-una-memoria-usb-en-un-kit-de-reparacion/#comments</comments>
		<pubDate>Sun, 23 Nov 2008 08:17:20 +0000</pubDate>
		<dc:creator>Rubén Gómez</dc:creator>
				<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[grub4dos]]></category>
		<category><![CDATA[iso]]></category>
		<category><![CDATA[kit]]></category>
		<category><![CDATA[pendrive]]></category>
		<category><![CDATA[ubcd]]></category>
		<category><![CDATA[ubcd4win]]></category>
		<category><![CDATA[usb]]></category>

		<guid isPermaLink="false">http://rubengomez.wordpress.com/?p=91</guid>
		<description><![CDATA[Hace unos días compré en una tienda un nuevo y flamante pendrive de 16GB, desde que lo tuve en la mano estuve dándole vueltas a cómo convertirlo en algo más que un dispositivo para almacenar toneladas de información. El objetivo, era llevar siempre encima todas las herramientas necesarias para reparar un PC (incluyendo portar encima [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=91&subd=rubengomez&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Hace unos días compré en una tienda un nuevo y flamante <em>pendrive</em> de 16GB, desde que lo tuve en la mano estuve dándole vueltas a cómo convertirlo en algo más que un dispositivo para almacenar toneladas de información. El objetivo, era llevar siempre encima todas las herramientas necesarias para reparar un PC (incluyendo portar encima Linux por si propietario del equipo se prestaba a que se lo arreglara definitivamente <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  ). Estoy bastante contento con el resultado. Las herramientas que lo han hecho posible:</p>
<ul>
<li><a href="http://www.ubcd4win.com/">Ultimate Boot CD 4 Windows</a>: Excelente para reparar un sistema Windows XP, múltiples plugins, puede incluir incluso aplicaciones comerciales como el antivirus Kaspersky o el conocido Norton Ghost. Incluye de por sí, de todo, antivirus, antispyware, antirootkits, exploradores de Internet, herramientas de diagnóstico, grabación, etc. Esta es la herramienta que serviría de base. Requiere por razones legales contar con una copia de XP para construir la ISO, para actualizar el Service Pack de la que tengamos en nuestro poder podemos hacerlo a mano mediante el siguiente comando:<br />
<code>$servicepack.exe /integrate:$unidad/$path_cd_de_xp_copiado_a_disco_duro</code><br />
o bien usar el programa <a href="http://www.nliteos.com/">nlite</a> muy útil por cierto para preparar una ISO personalizada de XP con drivers, Service Pack, y otros programas ya cargados por defecto.</li>
<li><a href="http://ubcd4win.com/forum/index.php?showtopic=11375">UBUSB</a>: Un plugin para UBCD4Windows que sin duda merecería ser alzado a la categoría de maravilla. Crea una mini imagen ISO de 40MB, a partir de la generada por UBCD4Win, apta para ser grabada en un CD tamaño tarjeta (que fácilmente se puede portar en la cartera), que arranca a una velocidad de vértigo (el arranque por USB en algunos equipos es bastante leeeeento pues aunque tengan USB 2.0 lo hacen a velocidad de 1.1) y da una compatibilidad total, un par notas sobre los problemas que me encontré (está en desarrollo) es que el formateo del USB no funcionaba bien, lo hice desde Windows directamente, y que requería haber creado la ISO de UBCD4Win para hacer correctamente el volcado a USB (no valía con crear simplemente la estructura de ficheros).</li>
<li>ISOs adicionales: Además he podido incluir sin problemas la ISO de <a href="http://www.ubuntu.com">Ubuntu</a> y la de <a href="http://www.ultimatebootcd.com/">UBCD</a>, este último proporciona muchas más herramientas interesantes en forma de disco de arranque DOS. Estas ISOs las puedo arrancar desde el menú de <em>boot</em> del USB (no desde el CD, <em>aún</em>) y también emplear las herramientas incluidas en UBCD4Win para grabarlas directamente usando el equipo a revisar, para esto sólo hace falta añadir este código en el archivo<em> menu.lst</em> en el raíz del dispositivo USB una vez cargado ahí el UBCD4Win, suponiendo que las coloquemos en el directorio \iso del USB, es código usando <a href="http://grub4dos.sourceforge.net/">Grub4dos</a> como gestor de arranque:<br />
<code><br />
title Ultimate Boot CD (ISO)<br />
find --set-root /iso/ubcd411.iso<br />
map /iso/ubcd411.iso (hd32)<br />
map --hook<br />
root (hd32)<br />
chainloader (hd32)<br />
</code><code><br />
</code><code>title Ubuntu Linux Desktop CD (ISO)<br />
find --set-root /iso/ubuntu-8.10-desktop-i386.iso<br />
map /iso/ubuntu-8.10-desktop-i386.iso (hd32)<br />
map --hook<br />
root (hd32)<br />
chainloader (hd32)</code></li>
<p></p>
<li>También es posible cargar directamente la distribución Ubuntu en el USB mediante otro plugin, en ese caso este sería el código a incluir para iniciarla:
<p><code>title Ubuntu Linux (plugin)<br />
root (hd0,0)<br />
kernel /casper/vmlinuz root=/dev/rd/0 pmedia=usbflash boot=casper<br />
PROMPT 0<br />
append file=/cdrom/preseed/ubuntu.seed<br />
initrd /casper/initrd.gz</code></li>
</ul>
<p>He probado a intentar incluir otra herramienta interesante <a href="http://www.sysresccd.org">System Rescue CD</a> no he conseguido que arrancara con el método anterior (directamente de la ISO), pero hay un plugin para UBCD4Win que mezcla el contenido de la distribución con el contenido del RescueCD. La que estaba incluída en UBCD4Win estaba anticuada con respecto a la última versión.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rubengomez.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rubengomez.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rubengomez.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rubengomez.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rubengomez.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rubengomez.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rubengomez.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rubengomez.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rubengomez.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rubengomez.wordpress.com/91/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=91&subd=rubengomez&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://rubengomez.wordpress.com/2008/11/23/como-convertir-una-memoria-usb-en-un-kit-de-reparacion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/09d1c501aa9546690fcad7bbea22eacb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Rubén</media:title>
		</media:content>
	</item>
		<item>
		<title>¿Qué es el Código Limpio?</title>
		<link>http://rubengomez.wordpress.com/2008/09/10/%c2%bfque-es-el-codigo-limpio/</link>
		<comments>http://rubengomez.wordpress.com/2008/09/10/%c2%bfque-es-el-codigo-limpio/#comments</comments>
		<pubDate>Wed, 10 Sep 2008 08:22:37 +0000</pubDate>
		<dc:creator>Rubén Gómez</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[código]]></category>
		<category><![CDATA[citas]]></category>
		<category><![CDATA[informática]]></category>

		<guid isPermaLink="false">http://rubengomez.wordpress.com/?p=52</guid>
		<description><![CDATA[De vez en cuando, tanto tiempo revisando webs sociales, blogs y demás merece la pena, hoy en DZone he encontrado un artículo con unas citas que son verdaderas joyas, condensando muchas ideas, conocimiento y experiencias interesantes en cada una de ellas, son la definición de gurús de la programación de lo que para ellos es [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=52&subd=rubengomez&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>De vez en cuando, tanto tiempo revisando webs sociales, blogs y demás merece la pena, hoy en <a href="http://www.dzone.com/links/111406.html">DZone</a> he encontrado <a href="http://www.informit.com/articles/article.aspx?p=1235624">un artículo con unas citas que son verdaderas joyas</a>, condensando muchas ideas, conocimiento y experiencias interesantes en cada una de ellas, son la definición de gurús de la programación de lo que para ellos es código limpio, o de calidad. Provienen del libro (<em>in english of course</em>) <a href="http://www.informit.com/store/product.aspx?isbn=0132350882">&#8220;What is Clean Code?&#8221;</a> de Robert C. Martin,  y es una lectura a la que me intentaré apuntarme <a href="http://safari.informit.com/">on-line</a> en cuanto tenga tiempo. <a href="http://www.informit.com/content/images/9780132350884/samplepages/0132350882_Sample.pdf">El primer capítulo está disponible</a> para ir abriendo boca, y aquí es donde están todas estas citas, cada una de ellas merece bastante reflexión (en el libro hay además explicaciones de las mismas por parte del autor, también bastante interesantes):</p>
<p><strong>Bjarne Stroustrup, inventor del lenguaje C++</strong></p>
<blockquote><p><em><strong></strong>Me gusta que mi código sea elegante y eficiente. La lógica debe ser directa para que le sea difícil encontrar escondite a los bugs, las dependencias mínimas para facilitar el mantenimiento, el manejo de errores completo, acorde a una estrategia articulada, y el rendimiento lo más óptimo posible para no tentar a la gente a hacer el código enrevesado con optimizaciones sin principios. <strong>El código limpio, hace una cosa bien</strong>.</em></p></blockquote>
<p><strong>Grady Booch, autor de</strong><strong><em> Object Oriented Analysis and Design with Applications</em></strong></p>
<blockquote><p><em><strong>El código limpio es sencillo y directo</strong>. El código limpio se lee como prosa bien redactada. El código limpio nunca oscurece las intenciones del diseñador, más bien está lleno de nítidas abstraciones y  líneas de control </em><em>directas</em><em>.</em></p></blockquote>
<p><strong>&#8220;Big&#8221; Dave Thomas, fundador de OTI, padrino de la iniciativa Eclipse</strong></p>
<blockquote><p><em><strong>El código limpio puede ser leído, y mejorado por un desarrollador que no es su autor original</strong>. Usa tests de unidad y aceptación. Tiene nombres con significado. Provee una manera, y no varias, de hacer una cosa. Tiene las mínimas dependencias posibles, las cuales están explícitamente definidas y ofrece una API clara y mínima. El código debe ser literario (N.d.T.: ampliamente documentado) porque dependiendo del lenguaje, no toda la información necesaria puede ser expresada claramente en el propio código.</em></p></blockquote>
<p><strong>Michael Feathers, autor de <em>Working Effectively with Legacy Code</em></strong></p>
<blockquote><p><em>Podría enumerar todas las características que observo en el código limpio, pero hay una sobresaliente, por encima de las demás. El código limpio siempre tiene el aspecto de haber sido escrito por alguien cuidadoso.<strong> No hay nada que obviamente se pudiera hacer mejor</strong>. Todas esas cosas ya fueron pensadas por el autor del código, y si tratas de imaginar mejoras, acabas de nuevo donde estabas, sintiéndote lleno de aprecio por el código que alguien te proporcionó &#8211; código proporcionado por alguien que se preocupaba profundamente por la artesanía de su oficio.</em></p></blockquote>
<p><strong>Ron Jeffries, autor de <em>Extreme Programming Installed and Extreme Programming Adventures in C#</em></strong><em><br />
</em></p>
<blockquote><p><em>En los últimos años empiezo y casi termino, con las reglas de código simple de Beck. En orden de prioridad, el código simple:</em></p>
<ul>
<li><em>Ejecuta y supera todos los tests</em></li>
<li><em>No contiene duplicidad</em></li>
<li><em>Expresa todas las ideas de diseño que están en el sistema</em></li>
<li><em>Minimiza el número de entidades tales como clases, métodos, funciones, etc.</em></li>
</ul>
<p><em>De todas estas, principalmente me centro en la duplicidad. Cuando lo mismo se hace vez tras vez, es un signo de que hay una idea en nuestra mente que no está bien representada en el código. Trato de averiguar qué es. Entonces trato de expresar esa idea con más claridad.</em></p>
<p><em>Expresividad para mí incluye nombres con un significado claro, y puede ser que tenga que cambiar los nombres de las cosas varias veces antes de darlos por válidos. Con herramientas modernas de codificación como Eclipse, renombrar es bastante económico, por lo que para mí no es un problema. La expresividad de todas formas, va más alla de los nombres. También observo si un objeto o método está haciendo más de una cosa. Si es un objeto, necesita ser dividido en dos o más objetos. Si es un método, siempre uso en él la refactorización de la Extracción del Método, resultando en un método que dice con más claridad lo que hace, algunos submétodos diciendo cómo lo hace.</em></p>
<p><em>Duplicidad y expresividad me toman largos periodos para conseguir lo que considero código limpio, y mejorar código sucio con simplemente estos dos conceptos en mente puede hacer una enorme diferencia. Hay no obstante otra cosa que de la que también estoy al tanto, que es más complicada de explicar.</em></p>
<p><em>Después de años en este trabajo, me da la sensación de que todos los programas están hechos de elementos similares. Un ejemplo es &#8220;encontrar cosas en una colección&#8221;. Ya sea que tengamos una base de datos de registros de empleados, o un mapa hash de claves y valores, o una matriz de elementos de alguna clase, a menudo nos encontramos buscando un item particular de esa colección. Cuando me encuentro en esa situación, a menudo adapto una implementación particular en un método o clase más abstracto. Esto me da una serie de interesantes ventajas.</em></p>
<p><em>Puedo implementar la funcionalidad ahora con algo simple, por ejemplo un mapa hash, pero desde ahora todas las referencias a esa búsqueda están cubiertas en mi pequeña abstración. Puedo cambiar esa implementación en el momento que quiera. Puedo avanzar rápidamente, mientras conservo mi capacidad para cambiarla posteriormente.</em></p>
<p><em>Adicionalemente la abstración a la colección a menudo centra mi atención a lo que &#8220;realmente&#8221; está ocurriendo, y me ayuda a evitar implementar un comportamiento arbitrario cuando lo que realmente necesito son simplemente unos pocos modos de encontrar lo que quiero en la colección.</em></p>
<p><em><strong>Reducir duplicidad, gran expresividad, y establecer con prontitud abstracciones simples. Esto es lo que hace el código limpio para mí.</strong></em></p></blockquote>
<p><strong>Ward Cunningham, inventor del Wiki, inventor del Fit, coinventor del <em>eXtreme Programming</em>. Fuerza motivadora tras los Design Patterns. Líder en el desarrollo de ideas para Smalltalk y programación orientada a objetos.<br />
</strong></p>
<blockquote><p><em>Sabes que estás trabajando con código limpio cuando cada rutina que lees parece exactamente lo que esperabas. Puedes llamarlo codigo bello cuando además <strong>hace parecer que el lenguaje está diseñado para resolver ese problema</strong>.</em></p></blockquote>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/rubengomez.wordpress.com/52/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/rubengomez.wordpress.com/52/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rubengomez.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rubengomez.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rubengomez.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rubengomez.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rubengomez.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rubengomez.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rubengomez.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rubengomez.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rubengomez.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rubengomez.wordpress.com/52/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=52&subd=rubengomez&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://rubengomez.wordpress.com/2008/09/10/%c2%bfque-es-el-codigo-limpio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/09d1c501aa9546690fcad7bbea22eacb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Rubén</media:title>
		</media:content>
	</item>
		<item>
		<title>10 razones por las que &#8220;el compilador&#8221; debería ser &#8220;la compiladora&#8221;</title>
		<link>http://rubengomez.wordpress.com/2008/05/29/10-razones-por-las-que-el-compilador-deberia-ser-la-compiladora/</link>
		<comments>http://rubengomez.wordpress.com/2008/05/29/10-razones-por-las-que-el-compilador-deberia-ser-la-compiladora/#comments</comments>
		<pubDate>Thu, 29 May 2008 08:42:28 +0000</pubDate>
		<dc:creator>Rubén Gómez</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Relatos]]></category>
		<category><![CDATA[chistes]]></category>
		<category><![CDATA[friqui]]></category>

		<guid isPermaLink="false">http://rubengomez.wordpress.com/?p=44</guid>
		<description><![CDATA[
Bastante susceptibles a mostrar avisos.
Escuchan lo que dices, pero no lo que tratas de decir.
Cuando notas algo erróneo y les preguntas qué anda mal, casi siempre responden: &#8220;Nada&#8221;.
En otras ocasiones, pueden reportar sin previo aviso incontables errores a una velocidad alarmante.
A menudo pequeñas declaraciones se acaban convirtiendo en trabajos muy complejos.
Charlar (smalltalk) se considera importante.
Puedes [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=44&subd=rubengomez&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><ol>
<li>Bastante susceptibles a mostrar avisos.</li>
<li>Escuchan lo que dices, pero no lo que tratas de decir.</li>
<li>Cuando notas algo erróneo y les preguntas qué anda mal, casi siempre responden: &#8220;Nada&#8221;.</li>
<li>En otras ocasiones, pueden reportar sin previo aviso incontables errores a una velocidad alarmante.</li>
<li>A menudo pequeñas declaraciones se acaban convirtiendo en trabajos muy complejos.</li>
<li>Charlar (smalltalk) se considera importante.</li>
<li>Puedes estar haciendo algo que se da por bueno durante años, y de repente es totalmente incorrecto.</li>
<li>Te piensas que se van a encargar de sacar la basura, pero al final la tienes que sacar tú.</li>
<li>Olvidarte de una regla te puede meter en un lío bastante gordo.</li>
<li>Tener la clase y el método apropiado a menudo es la clave del éxito.</li>
</ol>
<p>(Traducido/inspirado de un anónimo que circula por ahí en inglés)</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/rubengomez.wordpress.com/44/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/rubengomez.wordpress.com/44/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rubengomez.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rubengomez.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rubengomez.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rubengomez.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rubengomez.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rubengomez.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rubengomez.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rubengomez.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rubengomez.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rubengomez.wordpress.com/44/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=44&subd=rubengomez&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://rubengomez.wordpress.com/2008/05/29/10-razones-por-las-que-el-compilador-deberia-ser-la-compiladora/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/09d1c501aa9546690fcad7bbea22eacb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Rubén</media:title>
		</media:content>
	</item>
		<item>
		<title>Firefox 3.0b5 en español en Ubuntu Hardy Heron (microapunte)</title>
		<link>http://rubengomez.wordpress.com/2008/04/12/firefox-30b5-en-espanol-en-ubuntu-hardy-heron-microapunte/</link>
		<comments>http://rubengomez.wordpress.com/2008/04/12/firefox-30b5-en-espanol-en-ubuntu-hardy-heron-microapunte/#comments</comments>
		<pubDate>Sat, 12 Apr 2008 08:54:24 +0000</pubDate>
		<dc:creator>Rubén Gómez</dc:creator>
				<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[español]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[hardy heron]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://rubengomez.wordpress.com/?p=43</guid>
		<description><![CDATA[Llevaba unos días buscando donde estaba el dichoso .xpi por fin hoy lo he encontrado, abrirlo, instalarlo, reiniciar el explorador y listo.
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=43&subd=rubengomez&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Llevaba unos días buscando donde estaba el dichoso .xpi por fin <a href="http://releases.mozilla.org/pub/mozilla.org/firefox/releases/3.0b5/linux-i686/xpi/">hoy lo he encontrado</a>, abrirlo, instalarlo, reiniciar el explorador y listo.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/rubengomez.wordpress.com/43/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/rubengomez.wordpress.com/43/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rubengomez.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rubengomez.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rubengomez.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rubengomez.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rubengomez.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rubengomez.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rubengomez.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rubengomez.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rubengomez.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rubengomez.wordpress.com/43/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=43&subd=rubengomez&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://rubengomez.wordpress.com/2008/04/12/firefox-30b5-en-espanol-en-ubuntu-hardy-heron-microapunte/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/09d1c501aa9546690fcad7bbea22eacb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Rubén</media:title>
		</media:content>
	</item>
		<item>
		<title>Eclipse PDT+XDebug en Hardy Heron 64bits</title>
		<link>http://rubengomez.wordpress.com/2008/04/12/eclipse-pdtxdebug-en-hardy-heron-64bits/</link>
		<comments>http://rubengomez.wordpress.com/2008/04/12/eclipse-pdtxdebug-en-hardy-heron-64bits/#comments</comments>
		<pubDate>Sat, 12 Apr 2008 08:18:50 +0000</pubDate>
		<dc:creator>Rubén Gómez</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[amd64]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[ide]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[x64]]></category>
		<category><![CDATA[xdebug]]></category>

		<guid isPermaLink="false">http://rubengomez.wordpress.com/?p=41</guid>
		<description><![CDATA[Estos días he estado probando el sistema Eclipse, y la conclusión final es que es una plataforma interesante, eso sí me ha requerido pasar de 512MB de RAM a 2GB, algo que me parece completamente desmedido para un IDE, pero Java es un devorador de recursos. Bueno el motivo de este artículo es un curioso [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=41&subd=rubengomez&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Estos días he estado probando el sistema <a href="http://www.eclipse.org">Eclipse</a>, y la conclusión final es que es una plataforma interesante, eso sí me ha requerido pasar de 512MB de RAM a 2GB, algo que me parece completamente desmedido para un IDE, pero Java es un devorador de recursos. Bueno el motivo de este artículo es un curioso <em>quick-hack</em>, cómo usar Eclipse PDT (<em>PHP Developer Tools</em>) en sistemas de 64 bits (actualmente estoy usando Ubuntu Hardy Heron Beta). He probado a <a href="http://www.zend.com/en/community/pdt">instalarlo como <em>plugin</em></a>, pero la instalación siempre me fallaba al no encontrar algunas librerías en formato x64, el caso es que este método es aún más sencillo:</p>
<ol>
<li><a href="http://download.eclipse.org/tools/pdt/downloads/">Descargar Eclipse edición PDT<br />
</a> (sólo está para 32 bits)</li>
<li><a href="http://www.eclipse.org/downloads/">Descargar Eclipse edición Classic</a> (Nos llevará esta vez sí, a la versión para 64 bits. Debe ser la <a href="http://www.eclipse.org/downloads/moreinfo/custom.php">versión 3.3</a> [Europa], para la versión 1.0.3 de PDT; buscar la versión correspondiente de Eclipse Classic en caso de actualización de PDT)</li>
<li>Descomprimir ambas ediciones, y copiar sobreescribiendo los ficheros de la Classic sobre los de la edición PDT.</li>
<li><em>Voilà!</em></li>
</ol>
<p>Adicionalmente he instalado <a href="http://www.xdebug.org/">XDebug</a>, y funciona bastante bien, <em>breakpoints</em>, vistas de variables, etc, en Hardy por ser beta supongo el paquete venía sin el módulo dentro (había un <a href="https://bugs.launchpad.net/ubuntu/+source/php-xdebug/+bug/199236">bug </a><a href="https://bugs.launchpad.net/ubuntu/+source/php-xdebug/+bug/199236">al respecto</a>) por lo que lo he instalado a través de <a href="http://pecl.php.net">pecl</a> directamente con los siguientes comandos:</p>
<ul>
<li>sudo apt-get install php-dev</li>
<li>sudo pecl install xdebug</li>
</ul>
<p>Luego en /etc/php5/conf.d/xdebug.ini he puesto esta configuración (supongo que se deberá ajustar el path para otras distribuciones):</p>
<pre># XDEBUG
zend_extension=/usr/lib/php5/20060613/xdebug.so
zend_extension_ts=/usr/lib/php5/20060613/xdebug.so
zend_extension_debug=/usr/lib/php5/20060613/xdebug.so
#xdebug.auto_trace=on
xdebug.remote_enable=1
xdebug.remote_port=9000</pre>
<p>Tras comprobar con un fichero de prueba con phpinfo() que se estaba cargando bien el módulo, he seleccionado el perfil de XDebug en Eclipse y, hecho, funcionando.</p>
<p>Aquí una captura:</p>
<p style="text-align:center;"><a href="http://rubengomez.files.wordpress.com/2008/04/pantallazo-php-debug-usr-share-php-html-quickformphp-eclipse-sdk.png"><img class="size-medium wp-image-42" title="" src="http://rubengomez.files.wordpress.com/2008/04/pantallazo-php-debug-usr-share-php-html-quickformphp-eclipse-sdk.png?w=400&#038;h=304" alt="" width="400" height="304" /></a></p>
<p style="text-align:left;">
<p style="text-align:left;">PD. Aunque ha sido un experimento interesante, en los últimos días he estado muy activo com <a href="http://www.vim.org">Vim</a>, y he comprobado que prácticamente todo lo que puedo hacer en este entorno tan exigente de requerimientos, lo puedo hacer igual o mejor en este potentísimo (aunque quizás un poco críptico para novatos) editor, requiriendo tan sólo unos pocos megas de RAM, incluyendo el debugging en PHP, todo esto, ¡sin salir de la terminal!. Pronto una entrada hablando del tema&#8230;</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/rubengomez.wordpress.com/41/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/rubengomez.wordpress.com/41/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rubengomez.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rubengomez.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rubengomez.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rubengomez.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rubengomez.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rubengomez.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rubengomez.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rubengomez.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rubengomez.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rubengomez.wordpress.com/41/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=41&subd=rubengomez&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://rubengomez.wordpress.com/2008/04/12/eclipse-pdtxdebug-en-hardy-heron-64bits/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/09d1c501aa9546690fcad7bbea22eacb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Rubén</media:title>
		</media:content>

		<media:content url="http://rubengomez.files.wordpress.com/2008/04/pantallazo-php-debug-usr-share-php-html-quickformphp-eclipse-sdk.png?w=400" medium="image" />
	</item>
		<item>
		<title>&#8230;y el premio al editor para programación perfecto es&#8230;</title>
		<link>http://rubengomez.wordpress.com/2008/03/28/redoble-y-el-editor-para-programacion-perfecto-es/</link>
		<comments>http://rubengomez.wordpress.com/2008/03/28/redoble-y-el-editor-para-programacion-perfecto-es/#comments</comments>
		<pubDate>Fri, 28 Mar 2008 15:40:28 +0000</pubDate>
		<dc:creator>Rubén Gómez</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[editores]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[trucos]]></category>
		<category><![CDATA[vi]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://rubengomez.wordpress.com/?p=40</guid>
		<description><![CDATA[&#8230; ¡ para un terminal con Vim !
Quien me lo iba a decir, después de tantos años personalizando mi querido Emacs&#8230; Llevo unos días estudiando las funcionalidades del editor de moda, Textmate, e integrándolas en mi Emacs, que ya está prácticamente &#8220;mimetizado&#8221; con muchas nuevas funciones, que iba a explicar por aquí&#8230;
El tema es que, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=40&subd=rubengomez&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>&#8230; ¡ para un terminal con <a href="http://www.vim.org/">Vim</a> !</p>
<p>Quien me lo iba a decir, después de tantos años personalizando mi <i>querido</i> <a href="http://www.gnu.org/software/emacs/">Emacs</a>&#8230; Llevo unos días estudiando las funcionalidades del editor de moda, <a href="http://macromates.com/"><i>Textmate</i></a>, e integrándolas en mi Emacs, que ya está prácticamente &#8220;mimetizado&#8221; con muchas nuevas funciones, que iba a explicar por aquí&#8230;</p>
<p>El tema es que, a la hora de estudiar el Vi/Vim, me parecía un editor muy eficiente para cambios rápidos en ficheros, pero para emplearlo en sesiones de programación, siempre me había echado para atrás lo de la dualidad de modos y la navegación, que reconozco que esto último no la había terminado de entender hasta hace poco; tras estudiarlo más profundamente en las últimas semanas, y especialmente con un &#8220;truco&#8221; para este editor que he leído hoy (en realidad es casi una obviedad pero hasta que no te la cuentan no caes en ello como suele pasar),  me he terminado de convencer: al pulsar &lt;Alt&gt; + [tecla] se genera la secuencia &lt;ESC&gt; + [tecla] con lo que no hace falta pulsar &lt;ESC&gt; para pasar de un modo a otro, basta con acompañar con &lt;Alt&gt; el comando que queramos introducir <i>DIRECTAMENTE</i>.. funcionalidad que se pierde, si nos salimos del terminal eso sí&#8230;</p>
<p>En fin, nunca te acostarás sin saber una cosa más&#8230; fuera sombreros, este editor es una absoluta genialidad.</p>
<p>PD. Esta conclusión sólo es relativa al sistema de navegación y edición en Vim. Tengo que ver ahora si los complementos que existen y la documentación que los acompaña, para lo que yo necesito, están a la altura de Emacs, que en este sentido me parece aún lo mejor que conozco&#8230;</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/rubengomez.wordpress.com/40/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/rubengomez.wordpress.com/40/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rubengomez.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rubengomez.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rubengomez.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rubengomez.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rubengomez.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rubengomez.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rubengomez.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rubengomez.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rubengomez.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rubengomez.wordpress.com/40/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=40&subd=rubengomez&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://rubengomez.wordpress.com/2008/03/28/redoble-y-el-editor-para-programacion-perfecto-es/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/09d1c501aa9546690fcad7bbea22eacb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Rubén</media:title>
		</media:content>
	</item>
		<item>
		<title>Continuando con el sftp</title>
		<link>http://rubengomez.wordpress.com/2008/03/17/continuando-con-el-sftp/</link>
		<comments>http://rubengomez.wordpress.com/2008/03/17/continuando-con-el-sftp/#comments</comments>
		<pubDate>Mon, 17 Mar 2008 10:28:47 +0000</pubDate>
		<dc:creator>Rubén Gómez</dc:creator>
				<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[sftp]]></category>
		<category><![CDATA[slug]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://rubengomez.wordpress.com/?p=39</guid>
		<description><![CDATA[Desde hace un tiempo tengo un slug pegado a mi mesa, este mini-servidor con linux (una vez &#8220;unslugeado&#8220;) me viene estupendamente, por ejemplo (entre otros muchos usos) para dejar descargando durante días grandes backups de mis servidores, un problema que ha veces he tenido que afrontar es el corte de una transferencia sftp, para continuar [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=39&subd=rubengomez&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Desde hace un tiempo tengo un <em><a href="http://www.linksys.com/servlet/Satellite?c=L_Product_C2&amp;childpagename=US%2FLayout&amp;cid=1115416906769&amp;pagename=Linksys%2FCommon%2FVisitorWrapper">slug</a></em> pegado a mi mesa, este mini-servidor con linux (una vez <em>&#8220;<a href="http://www.nslu2-linux.org/">unslugeado</a>&#8220;</em>) me viene estupendamente, por ejemplo (entre otros muchos usos) para dejar descargando durante días grandes backups de mis servidores, un problema que ha veces he tenido que afrontar es el corte de una transferencia sftp, para continuar con la transferencia, ya que sftp no contempla retomar la descarga en un punto extacto, la utilidad rsync viene en nuestra ayuda (que debe estar instalada tanto en el servidor como en el cliente):</p>
<pre># nohup rsync --partial --progress \
  --rsh=ssh usuario@servidor:directorio/fichero_remoto fichero_local &amp; &gt; fichero_info_salida</pre>
<p>Notas:</p>
<ol>
<li>Se requiere especificar el fichero local</li>
<li><em>nohup</em> es una utilidad aparte que evita que un comando se corte al abandonar nuestra sesión en el <em>slug</em>.</li>
</ol>
<p>Si tenemos que introducir contraseña, para dejar el proceso en segundo plano no poner el <em>umpersand</em> (&amp;), tras escribir nuestra clave, pulsar <em>Control+Z</em> y luego introducir la orden:</p>
<p># bg %[número de trabajo, se ve el número con el comando <em>jobs</em>]</p>
<p>Fuente: <a href="http://ubuntuforums.org/showthread.php?t=424366">ubuntuforums.org</a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/rubengomez.wordpress.com/39/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/rubengomez.wordpress.com/39/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rubengomez.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rubengomez.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rubengomez.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rubengomez.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rubengomez.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rubengomez.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rubengomez.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rubengomez.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rubengomez.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rubengomez.wordpress.com/39/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=39&subd=rubengomez&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://rubengomez.wordpress.com/2008/03/17/continuando-con-el-sftp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/09d1c501aa9546690fcad7bbea22eacb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Rubén</media:title>
		</media:content>
	</item>
		<item>
		<title>nXhtml: Potencia web para Emacs</title>
		<link>http://rubengomez.wordpress.com/2008/02/26/nxhtml-potencia-web-para-emacs/</link>
		<comments>http://rubengomez.wordpress.com/2008/02/26/nxhtml-potencia-web-para-emacs/#comments</comments>
		<pubDate>Tue, 26 Feb 2008 08:07:53 +0000</pubDate>
		<dc:creator>Rubén Gómez</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://rubengomez.wordpress.com/?p=38</guid>
		<description><![CDATA[Ayer descubrí, enredando por del.icio.us, un software llamado nXhtml para la edición web en Emacs que parece un regalo caído del cielo. ¿Características? Integración perfecta de colorización, indentación de múltiples lenguajes (php, ruby, asp, etc), análisis en tiempo real de la sintaxis HTML, autocompletado de tags inteligente, contracción y expansión de bloques HTML por nivel, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=38&subd=rubengomez&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Ayer descubrí, enredando por <a href="http://del.icio.us">del.icio.us</a>, un software llamado <a href="http://ourcomments.org/Emacs/nXhtml/doc/nxhtml.html">nXhtml</a> para la edición web en Emacs que parece un regalo caído del cielo. ¿Características? Integración perfecta de colorización, indentación de múltiples lenguajes (php, ruby, asp, etc), análisis en tiempo real de la sintaxis HTML, autocompletado de <i>tags</i> inteligente, contracción y expansión de bloques HTML por nivel, generación automática de tablas de contenido, integración con <a href="http://tidy.sourceforge.net/">Tidy</a> para validación 100% W3C compatible de la sintaxis, y muchas más cosas que estoy descubriendo. Por fin un modo en desarrollo para Emacs, que parecían todos un poco olvidados. Más información también <a href="http://www.emacswiki.org/cgi-bin/wiki/NxhtmlMode">en la Wiki de Emacs</a>.</p>
<p>Aquí mi configuración personal en el fichero .emacs:</p>
<pre>
;; Carga librería, ajustar path según conveniencia
(load "nxhtml/autostart.el")
;; Extensiones para autocarga del modo
(add-to-list 'auto-mode-alist '("\.html$" . nxhtml-rga-mode))
(add-to-list 'auto-mode-alist '("\.htm$" . nxhtml-rga-mode))
;; Sólo fondo especial en submodos (php, javascript, etc)
(setq mumamo-chunk-coloring 'submode-colored)
;; Saltar pantalla de bienvenida
(setq nxhtml-skip-welcome t)
;; Por si queremos desactivar el modo de validación automático
;;(setq rng-nxml-auto-validate-flag nil)
 ;; Modo personalizado de inicio
(defun nxhtml-rga-mode ()
"Modo personal de Rubén"
(interactive)
(nxhtml-mumamo)) ;; Thanks to LeoB for his note with this change from 1.03 to 1.17  

;; Combinación teclado para forzar lanzado del modo
(global-set-key "C-cW" 'nxhtml-rga-mode)
</pre>
<p>Para los interesados en buscar alternativas, <a href="http://www.dzr-web.com/people/darren/projects/emacs-webdev/">cómo montar un entorno de desarrollo basado en PSGML y otros</a>.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/rubengomez.wordpress.com/38/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/rubengomez.wordpress.com/38/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rubengomez.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rubengomez.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rubengomez.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rubengomez.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rubengomez.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rubengomez.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rubengomez.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rubengomez.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rubengomez.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rubengomez.wordpress.com/38/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=38&subd=rubengomez&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://rubengomez.wordpress.com/2008/02/26/nxhtml-potencia-web-para-emacs/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/09d1c501aa9546690fcad7bbea22eacb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Rubén</media:title>
		</media:content>
	</item>
		<item>
		<title>Guerra a los &#8220;short tags&#8221;</title>
		<link>http://rubengomez.wordpress.com/2008/02/25/guerra-a-los-sort-tags/</link>
		<comments>http://rubengomez.wordpress.com/2008/02/25/guerra-a-los-sort-tags/#comments</comments>
		<pubDate>Mon, 25 Feb 2008 19:19:17 +0000</pubDate>
		<dc:creator>Rubén Gómez</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://rubengomez.wordpress.com/?p=37</guid>
		<description><![CDATA[Los short-tags en PHP (&#8220;&#60;?&#8221; frente a &#8220;&#60;?php&#8221;) son un invento maléfico, producen una ambigüedad con la cabecera de los ficheros XML (&#8220;&#60;?xml&#8221;) que le puede volver loco a uno sin comerlo ni beberlo ya que el parser de PHP en ese caso interpreta que lo que viene detrás es código PHP, y se para [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=37&subd=rubengomez&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Los <em>short-tags</em> en PHP (&#8220;&lt;?&#8221; frente a &#8220;&lt;?php&#8221;) son un invento maléfico, producen una ambigüedad con la cabecera de los ficheros XML (&#8220;&lt;?xml&#8221;) que le puede volver loco a uno sin comerlo ni beberlo ya que el <em>parser</em> de PHP en ese caso interpreta que lo que viene detrás es código PHP, y se para al detectar supuesto código erróneo.</p>
<p>Aquí va un <em>comando mágico </em>para pasar de una vez las cabeceras de un proyecto al formato extenso, lo que si hacemos en todos los proyectos nos permitirá poder desactivar esta opción en <em>php.ini</em> (Además de ser la opción recomendada para código distribuido, por compatiblidad). Requiere tener instalado Mysql, que viene con una cómoda utilidad para reemplazar cadenas en el interior de un fichero (<em>replace</em>):</p>
<pre>$ cd [proyecto]
$ for i in `find . -exec egrep -l "^[&lt;?]+$" {} \;`; do  \
 replace "&lt;?" "&lt;?php" -- $i; done</pre>
<p>Ojo sólo es válido para ficheros tipo bloque de código PHP (es decir que comienzan con el &#8220;&lt;?&#8221;, no para ficheros plantilla que la emplean en múltiples ocasiones dicho tag en mitad de líneas interseccionándolo con  HTML, para este último caso sólo haría falta modificar la expresión regular).</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/rubengomez.wordpress.com/37/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/rubengomez.wordpress.com/37/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rubengomez.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rubengomez.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rubengomez.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rubengomez.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rubengomez.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rubengomez.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rubengomez.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rubengomez.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rubengomez.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rubengomez.wordpress.com/37/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=37&subd=rubengomez&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://rubengomez.wordpress.com/2008/02/25/guerra-a-los-sort-tags/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/09d1c501aa9546690fcad7bbea22eacb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Rubén</media:title>
		</media:content>
	</item>
		<item>
		<title>Rhythmbox y los &#8220;podcast feeds&#8221;</title>
		<link>http://rubengomez.wordpress.com/2008/01/26/rhythmbox-y-los-podcast-feeds/</link>
		<comments>http://rubengomez.wordpress.com/2008/01/26/rhythmbox-y-los-podcast-feeds/#comments</comments>
		<pubDate>Sat, 26 Jan 2008 10:14:47 +0000</pubDate>
		<dc:creator>Rubén Gómez</dc:creator>
				<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[rhythmbox]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://rubengomez.wordpress.com/?p=35</guid>
		<description><![CDATA[Un comportamiento oscuro de un brillante programa. En la versión 0.11.2 de Rhythmbox no hay manera aparente de eliminar un podcast feed, (sólo se puede en principio borrar los episodios ya descargados).
En principio iba a tocar directamente el archivo de configuración xml del programa, pero he encontrado la solución: Marcando el recuadro de Ver &#62; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=35&subd=rubengomez&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Un comportamiento oscuro de un brillante programa. En la versión 0.11.2 de Rhythmbox no hay manera aparente de eliminar un <i>podcast feed</i>, (sólo se puede en principio borrar los episodios ya descargados).</p>
<p>En principio iba a tocar directamente el archivo de configuración xml del programa, pero he encontrado la solución: Marcando el recuadro de <i>Ver</i> &gt; <i>Examinar </i>aparece la lista de fuentes suscritas, allí es posible eliminarlas.</p>
<p>Fuente:  <a href="http://forums.fedoraforum.org/showthread.php?t=158401">forums.fedoraforum.org</a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/rubengomez.wordpress.com/35/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/rubengomez.wordpress.com/35/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rubengomez.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rubengomez.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rubengomez.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rubengomez.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rubengomez.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rubengomez.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rubengomez.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rubengomez.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rubengomez.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rubengomez.wordpress.com/35/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=35&subd=rubengomez&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://rubengomez.wordpress.com/2008/01/26/rhythmbox-y-los-podcast-feeds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/09d1c501aa9546690fcad7bbea22eacb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Rubén</media:title>
		</media:content>
	</item>
		<item>
		<title>Gnome y la asociación de ficheros</title>
		<link>http://rubengomez.wordpress.com/2008/01/20/gnome-y-la-asociacion-de-ficheros/</link>
		<comments>http://rubengomez.wordpress.com/2008/01/20/gnome-y-la-asociacion-de-ficheros/#comments</comments>
		<pubDate>Sun, 20 Jan 2008 08:47:33 +0000</pubDate>
		<dc:creator>Rubén Gómez</dc:creator>
				<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[fichero]]></category>
		<category><![CDATA[ficheros]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mime]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://rubengomez.wordpress.com/2008/01/20/gnome-y-la-asociacion-de-ficheros/</guid>
		<description><![CDATA[Gnome asocia  el último nuevo programa empleado para abrir un tipo de fichero, desde Nautilus, como la opción por defecto; sea este realmente compatible o no, lo que puede acabar generando un inconveniente, ya que en el entorno visual no hay donde deshacer esta asociación.
En caso de no serlo, para corregir el desaguisado se [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=34&subd=rubengomez&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Gnome asocia  el último <b>nuevo</b> programa empleado para abrir un tipo de fichero, desde Nautilus, como la opción por defecto; sea este realmente compatible o no, lo que puede acabar generando un inconveniente, ya que en el entorno visual no hay donde deshacer esta asociación.</p>
<p>En caso de no serlo, para corregir el desaguisado se debe ir a &#8220;<i>~/.local/share/applications/mimeinfo.cache</i>&#8220;,  donde se van tomando nota de todos los programas empleados por cada extensión. Eliminando de ahí la entrada errónea correspondiente, y reiniciando la sesión de Gnome, todo OK de nuevo.</p>
<p>Si deseamos cambiar la preferencia global para alguna aplicación, podemos tomar nota de su descripción por defecto en el sistema en &#8220;<i>/usr/share/applications/defaults.list</i>&#8220;.</p>
<p>Para finalizar, un &#8220;<i>killall nautilus</i>&#8221; hará el truco para que se reconozca nuestro cambio en la configuración (si no, reiniciar la sesión)</p>
<p>Más info: <a href="http://ubuntuforums.org/showthread.php?t=43586">http://ubuntuforums.org</a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/rubengomez.wordpress.com/34/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/rubengomez.wordpress.com/34/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rubengomez.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rubengomez.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rubengomez.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rubengomez.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rubengomez.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rubengomez.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rubengomez.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rubengomez.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rubengomez.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rubengomez.wordpress.com/34/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=34&subd=rubengomez&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://rubengomez.wordpress.com/2008/01/20/gnome-y-la-asociacion-de-ficheros/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/09d1c501aa9546690fcad7bbea22eacb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Rubén</media:title>
		</media:content>
	</item>
		<item>
		<title>Filosofía &#8220;kiss&#8221; en español</title>
		<link>http://rubengomez.wordpress.com/2008/01/15/filosofia-kiss-en-espanol/</link>
		<comments>http://rubengomez.wordpress.com/2008/01/15/filosofia-kiss-en-espanol/#comments</comments>
		<pubDate>Tue, 15 Jan 2008 23:12:09 +0000</pubDate>
		<dc:creator>Rubén Gómez</dc:creator>
				<category><![CDATA[Ciencia]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Relatos]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[filosofía]]></category>
		<category><![CDATA[kiss]]></category>
		<category><![CDATA[pff-mental]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://rubengomez.wordpress.com/2008/01/15/filosofia-kiss-en-espanol/</guid>
		<description><![CDATA[Kiss, ademas del consabido contacto labial es el nombre de una filosofía de desarrollo de software, que no sé si porque estoy peinando canas ya dedicado a esto de los ordenadores, cada vez me viene con más frecuencia a la mente. El tema es que en estos tiempos en los que vivimos, necesitamos lo simple. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=33&subd=rubengomez&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><em>Kiss</em>, ademas del consabido contacto labial es el nombre de <a href="http://es.wikipedia.org/wiki/Principio_KISS">una filosofía</a> de desarrollo de software, que no sé si porque estoy peinando canas ya dedicado a esto de los ordenadores, cada vez me viene con más frecuencia a la mente. El tema es que en estos tiempos en los que vivimos, <em>necesitamos</em> lo simple. La gente busca y paga religiosamente, cualquier servicio que facilite aquello de la ley del mínimo esfuerzo, en una sociedad cada día más y más compleja. Para esto esta filosofía es muy clara:</p>
<blockquote><p>KISS = &#8220;Keep It Simple Stupid&#8221;</p></blockquote>
<p>O más <em>polite</em>:</p>
<blockquote><p>KISS = &#8220;Keep It Short and Simple&#8221;</p></blockquote>
<p>Dándole vueltas el otro día a la idea, una traducción a la lengua de Cervantes, sería <strong>el principio BESOS</strong>:</p>
<h2>“Básate En lo Simple, O Sufre”</h2>
<p>Mucha simplicidad para todos.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/rubengomez.wordpress.com/33/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/rubengomez.wordpress.com/33/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rubengomez.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rubengomez.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rubengomez.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rubengomez.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rubengomez.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rubengomez.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rubengomez.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rubengomez.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rubengomez.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rubengomez.wordpress.com/33/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=33&subd=rubengomez&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://rubengomez.wordpress.com/2008/01/15/filosofia-kiss-en-espanol/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/09d1c501aa9546690fcad7bbea22eacb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Rubén</media:title>
		</media:content>
	</item>
		<item>
		<title>Alias para agilizar las operaciones más comunes con Apt</title>
		<link>http://rubengomez.wordpress.com/2008/01/15/alias-para-agilizar-las-operaciones-mas-comunes-con-apt/</link>
		<comments>http://rubengomez.wordpress.com/2008/01/15/alias-para-agilizar-las-operaciones-mas-comunes-con-apt/#comments</comments>
		<pubDate>Tue, 15 Jan 2008 08:16:54 +0000</pubDate>
		<dc:creator>Rubén Gómez</dc:creator>
				<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[alias]]></category>
		<category><![CDATA[aliases]]></category>
		<category><![CDATA[apt]]></category>
		<category><![CDATA[apt-cache]]></category>
		<category><![CDATA[apt-get]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://rubengomez.wordpress.com/2008/01/15/alias-para-agilizar-las-operaciones-mas-comunes-con-apt/</guid>
		<description><![CDATA[Estos alias me son tremendamente útiles para manejar Apt (y el software relacionado), a definir en ~/.bash_aliases:
alias apr="sudo apt-get autoremove"
alias apd="sudo apt-get autoremove"
alias apf="dpkg -L"
alias api="sudo apt-get install"
alias app="dpkg -l &#124; grep"
alias aps="apt-cache search"
alias apu="sudo apt-get upgrade"
Uso:

apr [paquete]: Remove; borrar un paquete (y relacionados sin más dependencias)
apd [paquete]: Delete; idem que anterior
apf [paquete]: Files; listar [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=31&subd=rubengomez&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Estos <em>alias</em> me son tremendamente útiles para manejar Apt (y el software relacionado), a definir en <em>~/.bash_aliases</em>:</p>
<pre>alias apr="sudo apt-get autoremove"
alias apd="sudo apt-get autoremove"
alias apf="dpkg -L"
alias api="sudo apt-get install"
alias app="dpkg -l | grep"
alias aps="apt-cache search"
alias apu="sudo apt-get upgrade"</pre>
<p>Uso:</p>
<ul>
<li><strong>apr </strong><strong>[paquete]</strong>: <em>Remove</em>; borrar un paquete (y relacionados sin más dependencias)</li>
<li><strong>apd [paquete]</strong>: <em>Delete</em>; idem que anterior</li>
<li><strong>apf [paquete]</strong>: <em>Files</em>; listar los archivos contenidos en paquete</li>
<li><strong>api [paquete]</strong>: <em>Install</em>; instalar un paquete (y dependencias)</li>
<li><strong>app [expresion]</strong>: <em>Packet</em>; listar paquetes instalados filtrados por expresión</li>
<li><strong>aps [expresion]</strong>: <em>Search</em>; buscar en los nombres o archivos de los paquetes disponibles en repositorio</li>
</ul>
<p><strong><em>Actualización 13/05/2009:</em></strong> <a href="http://rubengomez.wordpress.com/2009/05/06/script-para-interfaz-comun-a-sistemas-de-administracion-de-paquetes/">He creado un script</a> para hacer esta filosofía aún más sencilla, compatible con Ubuntu y FreeBSD</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/rubengomez.wordpress.com/31/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/rubengomez.wordpress.com/31/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rubengomez.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rubengomez.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rubengomez.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rubengomez.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rubengomez.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rubengomez.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rubengomez.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rubengomez.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rubengomez.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rubengomez.wordpress.com/31/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=31&subd=rubengomez&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://rubengomez.wordpress.com/2008/01/15/alias-para-agilizar-las-operaciones-mas-comunes-con-apt/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/09d1c501aa9546690fcad7bbea22eacb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Rubén</media:title>
		</media:content>
	</item>
		<item>
		<title>Añadiendo nuevas fuentes (.ttf) en Ubuntu</title>
		<link>http://rubengomez.wordpress.com/2008/01/09/anadiendo-nuevas-fuentes-ttf-en-ubuntu/</link>
		<comments>http://rubengomez.wordpress.com/2008/01/09/anadiendo-nuevas-fuentes-ttf-en-ubuntu/#comments</comments>
		<pubDate>Wed, 09 Jan 2008 15:49:22 +0000</pubDate>
		<dc:creator>Rubén Gómez</dc:creator>
				<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[font]]></category>
		<category><![CDATA[fonts]]></category>
		<category><![CDATA[fuente]]></category>
		<category><![CDATA[fuentes]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ttf]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://rubengomez.wordpress.com/2008/01/09/anadiendo-nuevas-fuentes-ttf-en-ubuntu/</guid>
		<description><![CDATA[A falta de una interfaz gráfica para hacerlo, un par de comandos para añadir nuevas fuentes, se pueden copiar en los siguientes directorios:
$ sudo cp [archivo].ttf /usr/share/fonts
o a (mejor opción en mi opinión):
$ cp [archivo].ttf ~/.fonts/
Después se debe ejecutar el siguiente comando para que el sistema las empiece a usar:
$ sudo fc-cache -f -v
Vía: ubuntuforums.org
 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=30&subd=rubengomez&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>A falta de una interfaz gráfica para hacerlo, un par de comandos para añadir nuevas fuentes, se pueden copiar en los siguientes directorios:</p>
<p><code>$ sudo cp [archivo].ttf /usr/share/fonts</code></p>
<p>o a (mejor opción en mi opinión):</p>
<p><code>$ cp [archivo].ttf ~/.fonts/</code></p>
<p>Después se debe ejecutar el siguiente comando para que el sistema las empiece a usar:</p>
<p><code>$ sudo fc-cache -f -v</code></p>
<p>Vía: <a href="http://ubuntuforums.org/showthread.php?t=241196">ubuntuforums.org</a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/rubengomez.wordpress.com/30/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/rubengomez.wordpress.com/30/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rubengomez.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rubengomez.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rubengomez.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rubengomez.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rubengomez.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rubengomez.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rubengomez.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rubengomez.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rubengomez.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rubengomez.wordpress.com/30/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=30&subd=rubengomez&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://rubengomez.wordpress.com/2008/01/09/anadiendo-nuevas-fuentes-ttf-en-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/09d1c501aa9546690fcad7bbea22eacb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Rubén</media:title>
		</media:content>
	</item>
		<item>
		<title>Reescalado rápido de un directorio de imágenes</title>
		<link>http://rubengomez.wordpress.com/2007/12/24/reescalado-rapido-de-un-directorio-de-imagenes/</link>
		<comments>http://rubengomez.wordpress.com/2007/12/24/reescalado-rapido-de-un-directorio-de-imagenes/#comments</comments>
		<pubDate>Mon, 24 Dec 2007 22:22:48 +0000</pubDate>
		<dc:creator>Rubén Gómez</dc:creator>
				<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[escalar]]></category>
		<category><![CDATA[fotos]]></category>
		<category><![CDATA[imagen]]></category>
		<category><![CDATA[imágenes]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[reescalar]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://rubengomez.wordpress.com/2007/12/24/reescalado-rapido-de-un-directorio-de-imagenes/</guid>
		<description><![CDATA[Una de las tareas que habitualmente hay que hacer para enviar fotos por correo electrónico o para colgarlas en una página web es reescalarlas. Para GNOME habrán muchísimas utilidades al respecto, pero que tomen un directorio o lista de fotos yo no he conseguido encontrar ninguna (creo recordar que con el GIMP se podía, pero [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=29&subd=rubengomez&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Una de las tareas que habitualmente hay que hacer para enviar fotos por correo electrónico o para colgarlas en una página web es reescalarlas. Para GNOME habrán muchísimas utilidades al respecto, pero que tomen un directorio o lista de fotos yo no he conseguido encontrar ninguna (creo recordar que con el GIMP se podía, pero buscaba algo más rápido o integrado con nautilus), en cualquier caso para hacer esto ultrarápidamente desde la socorrida línea de comandos solo necesitamos una utilidad instalada:</p>
<p><code>$ sudo apt-get install imagemagick<br />
</code><br />
Así para reescalar un directorio de imágenes (<strong>ojo que las sobreescribe, no genera salida a otros ficheros</strong>) podremos usar este comando, que las ajustará lo máximo posible a la resolución indicada, sin perder la proporción:</p>
<p><code>$ mogrify -resize 320x240 *.jpg<br />
</code></p>
<p>Para ajustarlas exactamente a la proporción indicada:</p>
<p><code>$ mogrify -resize 320x240! *.jpg<br />
</code><br />
Vía: <a href="http://www.novell.com/coolsolutions/tip/16524.html">www.novell.com</a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/rubengomez.wordpress.com/29/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/rubengomez.wordpress.com/29/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rubengomez.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rubengomez.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rubengomez.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rubengomez.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rubengomez.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rubengomez.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rubengomez.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rubengomez.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rubengomez.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rubengomez.wordpress.com/29/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=29&subd=rubengomez&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://rubengomez.wordpress.com/2007/12/24/reescalado-rapido-de-un-directorio-de-imagenes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/09d1c501aa9546690fcad7bbea22eacb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Rubén</media:title>
		</media:content>
	</item>
		<item>
		<title>Velocidad de datos en PHP: Serialize vs JSON vs XMLRPC</title>
		<link>http://rubengomez.wordpress.com/2007/12/14/velocidad-de-datos-en-php-serialize-vs-json-vs-xmlrpc/</link>
		<comments>http://rubengomez.wordpress.com/2007/12/14/velocidad-de-datos-en-php-serialize-vs-json-vs-xmlrpc/#comments</comments>
		<pubDate>Fri, 14 Dec 2007 13:43:51 +0000</pubDate>
		<dc:creator>Rubén Gómez</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[datos]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[serialize]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[xmlrpc]]></category>

		<guid isPermaLink="false">http://rubengomez.wordpress.com/2007/12/14/velocidad-de-datos-en-php-serialize-vs-json-vs-xmlrpc/</guid>
		<description><![CDATA[Hoy estaba estudiando, para un nuevo proyecto, las alternativas disponibles a la hora de serializar los datos. Es para uso interno de una aplicación, así que la decisión debía estar basada en la velocidad. He presupuesto que al ser serialize la función de toda la vida en PHP, sería lo más rápido, para probarlo he [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=28&subd=rubengomez&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Hoy estaba estudiando, para un nuevo proyecto, las alternativas disponibles a la hora de serializar los datos. Es para uso interno de una aplicación, así que la decisión debía estar basada en la velocidad. He presupuesto que al ser <em>serialize</em> la función de toda la vida en PHP, sería lo más rápido, para probarlo he empleado el siguiente test, que me ha sorprendido un poco.</p>
<p>NOTA 1: XMLRPC ya he presupuesto que sería la opción más lenta, pero está incluído para comparar diferencias.</p>
<p>NOTA 2: Ojo que consume <em>bastante</em> memoria</p>
<pre>$array = array("esto","es",array("una"=&gt;"simple","prueba"=&gt;"rapida"));
for($i = 0; $i &lt; 1024*16; $i++) {
    $a2[] = $array;
}

$tests = array(
    "serialize" =&gt; array("serialize", "unserialize"),
    "jason" =&gt; array("json_encode", "json_decode"),
    "xmlrpc" =&gt; array("xmlrpc_encode", "xmlrpc_decode")
);

foreach($tests as $test =&gt; $functions) {
    $tiempo_inicio = microtime_float();
    $encoded = $functions[0]($a2);
    $tiempo_final = microtime_float();
    $tiempo_enc = $tiempo_final - $tiempo_inicio;

    $tiempo_inicio = microtime_float();
    $decoded = $functions[1]($encoded);
    $tiempo_final = microtime_float();
    $tiempo_dec = $tiempo_final - $tiempo_inicio;

    print("Tiempo de ".$functions[0]."(): ".$tiempo_enc);
    print("&lt;[nueva-linea-que-quita-wordpress]&gt;");
    print("Tiempo de ".$functions[1]."(): ".$tiempo_dec);
    print("&lt;[nueva-linea-que-quita-wordpress]&gt;");
}

function microtime_float()
{
    list($useg, $seg) = explode(" ", microtime());
    return ((float)$useg + (float)$seg);
}</pre>
<p>Que ha dado como resultado esto:</p>
<blockquote><p> Tiempo de serialize(): 0.105422973633<br />
Tiempo de unserialize(): 0.118716001511<br />
<strong> Tiempo de json_encode(): 0.0492351055145<br />
Tiempo de json_decode(): 0.15966296196</strong><br />
Tiempo de xmlrpc_encode(): 0.87334895134<br />
Tiempo de xmlrpc_decode(): 2.80069494247</p></blockquote>
<p>Conclusión: <em>JSON</em> es bastante más rápido que <em>serialize</em> al codificar, y un poco más lento al descodificar (y sin duda infinitamente más rápido al tratarlo en Javascript). Una pista interesante, a evaluar según el uso que se le den a los datos codificados. Y lo de <em>XMLRPC</em>, bueno se veía venir, lógicamente tiene un tiempo de proceso muy superior a las otras dos opciones.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/rubengomez.wordpress.com/28/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/rubengomez.wordpress.com/28/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rubengomez.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rubengomez.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rubengomez.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rubengomez.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rubengomez.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rubengomez.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rubengomez.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rubengomez.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rubengomez.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rubengomez.wordpress.com/28/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=28&subd=rubengomez&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://rubengomez.wordpress.com/2007/12/14/velocidad-de-datos-en-php-serialize-vs-json-vs-xmlrpc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/09d1c501aa9546690fcad7bbea22eacb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Rubén</media:title>
		</media:content>
	</item>
		<item>
		<title>La cámara letal y el software milagroso</title>
		<link>http://rubengomez.wordpress.com/2007/12/02/la-camara-letal-y-el-software-milagroso/</link>
		<comments>http://rubengomez.wordpress.com/2007/12/02/la-camara-letal-y-el-software-milagroso/#comments</comments>
		<pubDate>Sun, 02 Dec 2007 15:42:59 +0000</pubDate>
		<dc:creator>Rubén Gómez</dc:creator>
				<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[dd]]></category>
		<category><![CDATA[dd_rescue]]></category>
		<category><![CDATA[fotos]]></category>
		<category><![CDATA[jpeg]]></category>
		<category><![CDATA[jpg]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[recuperación]]></category>
		<category><![CDATA[sd]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://rubengomez.wordpress.com/2007/12/02/la-camara-letal-y-el-software-milagroso/</guid>
		<description><![CDATA[Y van dos. Por segunda vez una tarjeta de fotos SD queda inutilizada tras pasar por el zócalo de mi cámara digital de fotos (una Nikon Coolpix 4100). Ya no sé si es casualidad o no, el caso es que en esta y en la anterior ocasión, si no recuerdo mal, la secuencia fue la [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=27&subd=rubengomez&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Y van dos. Por segunda vez una tarjeta de fotos SD queda inutilizada tras pasar por el zócalo de mi cámara digital de fotos (una Nikon Coolpix 4100). Ya no sé si es casualidad o no, el caso es que en esta y en la anterior ocasión, si no recuerdo mal, la secuencia fue la misma, la cámara se queda sin pilas en mitad de un disparo de foto, y luego la tarjeta no funciona. Ni formateo, ni historias, la tarjeta pasó a mejor vida.</p>
<p>En la anterior ocasión perdí la mitad de las fotos de unas vacaciones, pero esta vez era de un familiar que me la había prestado y ahí estaban las fotos íntegras de sus últimas vacaciones (el que corría peligro, después de la tarjeta, era yo en este caso). Total que aprovechando que mi ordenador tiene un lector de tarjetas SD, me he puesto manos a la obra y en una horita y pico  buscando  y probando opciones,  con la ayuda del amigo Ubuntu, he podido recuperar la mayoría de las fotos.</p>
<p>La clave son dos programitas que están en los repositorios <em>(# apt-get install [programa]</em>):</p>
<ul>
<li><a href="http://www.garloff.de/kurt/linux/ddrescue/">dd_rescue</a>: Extrae la imagen de un sistema de ficheros dañado, no me ha requerido ningún tipo de parámetros esotéricos, simplemente:
<ul>
<li>Dispositivo de entrada (en mi caso, <em>/dev/sda</em> lo he visto por la información que me daba el sistema tras meter la tarjeta con <em>dmesg | tail</em>)</li>
<li>Fichero de salida (el que sea)</li>
</ul>
</li>
<li><a href="http://www.rfc1149.net/devel/recoverjpeg">recoverjpeg</a>: Este programa después rastrea el fichero imagen obtenido de la tarjeta, buscando las cabeceras de las imágenes <em>jpg</em> que pudieran estar dentro. (Generando una lista de ficheros <em>imageNNNNN.jpg</em>).</li>
</ul>
<p><em>Et voilà!</em> Ficheros recuperados y misión cumplida.</p>
<p>ACTUALIZACION: Finalmente, he podido recuperar también la tarjeta SD, usando <em>fdisk</em> para crear de nuevo las particiones, y con <em>mkfs.vfat</em> para formatearla. De nuevo vivita y coleando. Conclusión, si tienes una cámara con tarjeta, mejor tener un zócalo correspondiente en el ordenador para estos casos.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/rubengomez.wordpress.com/27/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/rubengomez.wordpress.com/27/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rubengomez.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rubengomez.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rubengomez.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rubengomez.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rubengomez.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rubengomez.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rubengomez.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rubengomez.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rubengomez.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rubengomez.wordpress.com/27/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rubengomez.wordpress.com&blog=2197684&post=27&subd=rubengomez&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://rubengomez.wordpress.com/2007/12/02/la-camara-letal-y-el-software-milagroso/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/09d1c501aa9546690fcad7bbea22eacb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Rubén</media:title>
		</media:content>
	</item>
	</channel>
</rss>