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

<channel>
	<title>Nos pasa algo lo mismo &#187; trucos</title>
	<atom:link href="http://www.tatai.es/category/trucos/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tatai.es</link>
	<description>...está claro...</description>
	<lastBuildDate>Tue, 20 Jul 2010 21:09:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Múltiples cuentas en github.com</title>
		<link>http://www.tatai.es/2010/05/18/multiples-cuentas-en-github-com/</link>
		<comments>http://www.tatai.es/2010/05/18/multiples-cuentas-en-github-com/#comments</comments>
		<pubDate>Tue, 18 May 2010 19:11:34 +0000</pubDate>
		<dc:creator>tatai</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[trucos]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[truco]]></category>

		<guid isPermaLink="false">http://www.tatai.es/?p=750</guid>
		<description><![CDATA[Al hilo del último post sobre cómo &#8220;tunear&#8221; un poco nuestro ssh, podemos usarlo por ejemplo si tenemos varias cuentas en github.com. Cuando ocurre esto, por cada cuenta que tienes en github, tienes que añadir una clave pública; esto no es ningún problema ya que podemos crear tantas claves como queramos, pero lo que no [...]]]></description>
			<content:encoded><![CDATA[<p>Al hilo del último post sobre cómo <a href="http://www.tatai.es/2010/05/06/tunear-un-poco-nuestro-ssh/">&#8220;tunear&#8221; un poco nuestro ssh</a>, podemos usarlo por ejemplo si tenemos varias cuentas en <a href="http://www.github.com">github.com</a>. Cuando ocurre esto, por cada cuenta que tienes en github, tienes que añadir una clave pública; esto no es ningún problema ya que podemos crear <a href="http://www.tatai.es/2010/05/06/tunear-un-poco-nuestro-ssh/">tantas claves como queramos</a>, pero lo que no es tan fácil es cambiar la cuenta ssh con la que debe conectarse el cliente de git a github. No es muy común, pero te puede ocurrir como a mi, que tienes tu cuenta personal y la del trabajo.</p>
<p>Para poder conseguir esto, supongamos que tienes estos datos:</p>
<ul>
<li>Cuenta personal
<ul>
<li>Usuario: usuario_casa</li>
<li>Fichero de clave: ~/.ssh/casa</li>
</ul>
</li>
<li>Cuenta trabajo
<ul>
<li>Usuario: usuario_trabajo</li>
<li>Fichero de clave: ~/.ssh/trabajo</li>
</ul>
</li>
</ul>
<p>Lo que habría que hacer es tener un fichero de configuración ssh (recordemos que está en ~/.ssh/config) de la siguiente forma:</p>
<pre><code>Host github
    HostName github.com
    User usuario_casa
    IdentityFile ~/.ssh/casa

Host github-trabajo
    HostName github.com
    User usuario_trabajo
    IdentityFile ~/.ssh/trabajo
</code></pre>
<p>La diferencia es sutil: cambia el valor que ponemos en Host (los espacios o tabulaciones son opcionales, yo los uso para dar un poco más de orden).</p>
<p>Con esto, tenemos que cambiar la dirección con la que nos conectaremos con la cuenta de trabajo. Si por ejemplo, para añadir el repositorio remoto usamos:</p>
<pre><code>git remote add origin git@github.com:usuario_trabajo/proyecto.git</code></pre>
<p>Ahora deberemos poner:</p>
<pre><code>git remote add origin git@github-trabajo:usuario_trabajo/proyecto.git</code></pre>
<p>Es decir, ssh se encargará automáticamente de hacer el cambio por nosotros y, de esta forma, no tendremos problemas decidiendo con qué usuario debe conectar o no, está todo en el fichero de configuración <img src='http://www.tatai.es/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.tatai.es/2010/05/18/multiples-cuentas-en-github-com/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Tunear&#8221; un poco nuestro ssh</title>
		<link>http://www.tatai.es/2010/05/06/tunear-un-poco-nuestro-ssh/</link>
		<comments>http://www.tatai.es/2010/05/06/tunear-un-poco-nuestro-ssh/#comments</comments>
		<pubDate>Thu, 06 May 2010 21:44:04 +0000</pubDate>
		<dc:creator>tatai</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[trucos]]></category>
		<category><![CDATA[console]]></category>
		<category><![CDATA[optimización]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[truco]]></category>

		<guid isPermaLink="false">http://www.tatai.es/?p=746</guid>
		<description><![CDATA[Este es un sencillo truco que a mi me descubrió hace ya un tiempo mi buen amigo Iñigo, que os abrirá (si no lo ha hecho ya) una puerta hacía una mayor rapidez con el comando ssh. Empezaré directamente poniendo un ejemplo: supongamos que para acceder a un servidor con los siguientes parámetros (lo sé, están [...]]]></description>
			<content:encoded><![CDATA[<p>Este es un sencillo truco que a mi me descubrió hace ya un tiempo mi buen amigo <a href="http://poisonbit.wordpress.com/">Iñigo</a>, que os abrirá (si no lo ha hecho ya) una puerta hacía una mayor rapidez con el comando ssh. Empezaré directamente poniendo un ejemplo: supongamos que para acceder a un servidor con los siguientes parámetros (lo sé, están un poco exagerados, pero creo que se entenderá el ejemplo):</p>
<ul>
<li>Dirección: punto.de.entrada.al.servidor.com</li>
<li>Usuario: miusuario</li>
<li>Puerto 12345</li>
<li><a href="http://www.tatai.es/2009/10/20/usar-pares-de-claves-para-acceder-a-los-servidores-de-forma-sencilla-comoda-y-segura/">Fichero de clave</a>: /home/user/.ssh/fichero.clave</li>
</ul>
<p>El <strike>chorizo</strike> comando que nos hace falta es:</p>
<pre><code>ssh punto.de.entrada.al.servidor.com -l miusuario -p 12345 -i /home/user/.ssh/fichero.clave</code></pre>
<p>Casi nada</p>
<p>Bien, hay una forma de acortarlo un poco. El truco está en configurar todos estos parámetros en un fichero. Este fichero lo podemos encontrar en nuestra cuenta de usuario, concretamente en ~/.ssh/config. Este fichero por defecto viene vacío pero, siguiendo con el ejemplo escribimos estas líneas en su interior:</p>
<pre><code>
Host     miservidor
HostName punto.de.entrada.al.servidor.com
User     miusuario
Port     1234
IdentityFile /home/user/.ssh/fichero.clave
</code></pre>
<p>Con este simple gesto, ahora podemos cambiar el comando ssh anterior por:</p>
<pre><code>ssh miservidor</code></pre>
<p>Casi nada la diferencia <img src='http://www.tatai.es/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Si investigas un poco el man de ssh_config seguro que encuentras muchas cosas de utilidad. Más adelante daré otro truco relacionado con este.</p>
<p><acronym title="Post Post ;)">P. P</acronym>: y como bien te recomendaría un administrador de sistemas, si encima añades el hostname a tu /etc/hosts, irá &#8220;volado&#8221;! Se ahorrará la resolución DNS</p>
<p>Enlaces:</p>
<ul>
<li><a href="http://www.tatai.es/2009/10/20/usar-pares-de-claves-para-acceder-a-los-servidores-de-forma-sencilla-comoda-y-segura/">Usar pares de claves para acceder a los servidores de forma sencilla, cómoda y… segura</a></li>
<li><a href="http://www.openbsd.org/cgi-bin/man.cgi?query=ssh_config">man ssh_config</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.tatai.es/2010/05/06/tunear-un-poco-nuestro-ssh/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Creando un &#8220;export&#8221; con git</title>
		<link>http://www.tatai.es/2010/05/04/creando-un-export-con-git/</link>
		<comments>http://www.tatai.es/2010/05/04/creando-un-export-con-git/#comments</comments>
		<pubDate>Tue, 04 May 2010 19:38:57 +0000</pubDate>
		<dc:creator>tatai</dc:creator>
				<category><![CDATA[trucos]]></category>
		<category><![CDATA[export]]></category>
		<category><![CDATA[git]]></category>

		<guid isPermaLink="false">http://www.tatai.es/?p=743</guid>
		<description><![CDATA[Si estás trabajando con git, seguro que alguna vez has querido hacer un &#8220;export&#8221; (usando terminología de subversion: un svn export), es decir, obtener todos los ficheros sin los datos de #git. La opción más fácil sería copiar todos los datos y borrar la carpeta .git, pero si quieres evitarte crear el script, aquí tienes [...]]]></description>
			<content:encoded><![CDATA[<p>Si estás trabajando con git, seguro que alguna vez has querido hacer un &#8220;export&#8221; (usando terminología de subversion: un svn export), es decir, obtener todos los ficheros sin los datos de #git. La opción más fácil sería copiar todos los datos y borrar la carpeta .git, pero si quieres evitarte crear el script, aquí tienes una sencilla solución, usar checkout-index. El comando sería más o menos así:</p>
<pre><code>git checkout-index -a -f --prefix=/path/export/</code></pre>
<p><strong>Importante: no olvides la última barra (slash).</strong></p>
<p>Y ahora la breve explicación. checkout-index crea una copia de los fichero en el index a donde le indiques, pero sin sobreescribir, algo que evitaremos con la opción -f. Con la opción -a le indicamos que copie todos los ficheros en el index y con &#8211;prefix indicamos un prefijo que queremos que añada a todos los ficheros que extraiga (es decir, poniendo un path, es un truco para decirle que lo extraiga en otro lugar y con el mismo nombre, de aquí que tengamos que poner la última barra).</p>
<p>Es una forma sencilla y necesitas de tu copia local en el mismo servidor, algo que me gustaría evitar, pero de momento, tiraremos con esta opción.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tatai.es/2010/05/04/creando-un-export-con-git/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Generar passwords aleatorios desde la consola</title>
		<link>http://www.tatai.es/2010/02/24/generar-passwords-aleatorios-desde-la-consola/</link>
		<comments>http://www.tatai.es/2010/02/24/generar-passwords-aleatorios-desde-la-consola/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 18:00:20 +0000</pubDate>
		<dc:creator>tatai</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[trucos]]></category>
		<category><![CDATA[console]]></category>
		<category><![CDATA[password]]></category>

		<guid isPermaLink="false">http://www.tatai.es/?p=704</guid>
		<description><![CDATA[Seguro que alguna vez has necesitado una contraseña de estas complicadas y no sabías que poner. Pues bien, de las millones de posibilidades que tienes para generar una, yo tengo esta que la verdad, me parece sencilla y rápida: cat /dev/urandom &#124; tr -dc "a-zA-Z0-9-_\.\!\$\?" &#124; fold -w 10 &#124; head -n 1 Ok, explicación: [...]]]></description>
			<content:encoded><![CDATA[<p>Seguro que alguna vez has necesitado una contraseña de estas complicadas y no sabías que poner. Pues bien, de las millones de posibilidades que tienes para generar una, yo tengo esta que la verdad, me parece sencilla y rápida:</p>
<pre><code>cat /dev/urandom | tr -dc "a-zA-Z0-9-_\.\!\$\?" | fold -w 10 | head -n 1</code></pre>
<p>Ok, explicación:</p>
<ul>
<li><strong>/dev/urandom</strong>: fuente aleatorio de información</li>
<li><strong>tr -dc &#8220;a-zA-Z0-9-_\.\!\$\?&#8221;</strong>: elimina cualquier caracter que no sea una letra, un dígito o alguno de los símbolos &#8211; _ . ! $ ?</li>
<li><strong>fold -w 10</strong>: obliga a que el tamaño sea de 10 caracteres</li>
<li><strong>head -n 1</strong>: mostrar una contraseña</li>
</ul>
<p>Así pues, si quieres que tu contraseña tenga x caracteres, cambia el 10 del comando fold por ese valor y si quieres obtener más de una contraseña, indicalo cambiando el 1 de head por tantas como quieras. Por supuesto, si quieres cambiar los caracteres válidos, modifica la expresión de tr.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tatai.es/2010/02/24/generar-passwords-aleatorios-desde-la-consola/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Crear un DOMDocument de un DOMNode en PHP5</title>
		<link>http://www.tatai.es/2010/02/23/crear-un-domdocument-de-un-domnode-en-php5/</link>
		<comments>http://www.tatai.es/2010/02/23/crear-un-domdocument-de-un-domnode-en-php5/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 09:00:53 +0000</pubDate>
		<dc:creator>tatai</dc:creator>
				<category><![CDATA[Mundo web]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[trucos]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[DOMDocument]]></category>
		<category><![CDATA[DOMNode]]></category>

		<guid isPermaLink="false">http://www.tatai.es/?p=699</guid>
		<description><![CDATA[Tengo que reconocer que DOMDocument (del Document Object Model de PHP) me gusta muy muy poco. Lo he usado por necesidad un par de veces en versiones tempranas de PHP5 donde SimpleXML todavía no tenía tanta potencia y con el problema de no poder usar por ejemplo YAML u otro tipo de formatos que no [...]]]></description>
			<content:encoded><![CDATA[<p>Tengo que reconocer que DOMDocument (del <a href="http://es.php.net/manual/en/book.dom.php">Document Object Model de PHP</a>) me gusta muy muy poco. Lo he usado por necesidad un par de veces en versiones tempranas de PHP5 donde SimpleXML todavía no tenía tanta potencia y con el problema de no poder usar por ejemplo YAML u otro tipo de formatos que no me daban la potencia y flexibilidad de XML para ciertos casos.</p>
<p>Bueno, una de los últimos problemas que me he encontrado ha sido cómo obtener un DOMDocument de un DOMNode ya que quería usar XPath a partir de dicho DOMNode, algo que no es posible si no es DOMDocument.</p>
<p>La verdad es que no he encontrado mucha información ni algo bonito para presentar. Sólo tengo esto, que por lo menos me ha servido (he preferido no pararme a medir el consumo de memoria o de proceso por miedo a querer descartar la idea y perder todavía más tiempo, jeje):</p>
<pre><code>$doc = new DOMDocument();
$doc-&gt;loadXML($node-&gt;ownerDocument-&gt;saveXML($node))</code></pre>
<p>El &#8220;truco&#8221; es tan sencillo como como crear un nuevo DOMDocument en el que importamos (vía método loadXML) el nodo a través del código XML que genera. Este código se obtiene con la propiedad ownerDocument del DOMNode (que nos retorna el DOMDocument) y sobre el que podemos llamar a saveXML, método que expulsa el XML del elemento que le indiquemos, en este caso, nuestro DOMNode.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tatai.es/2010/02/23/crear-un-domdocument-de-un-domnode-en-php5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Buscando ejecutables en el path</title>
		<link>http://www.tatai.es/2010/02/23/buscando-ejecutables-en-el-path/</link>
		<comments>http://www.tatai.es/2010/02/23/buscando-ejecutables-en-el-path/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 08:00:01 +0000</pubDate>
		<dc:creator>tatai</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[trucos]]></category>
		<category><![CDATA[consola]]></category>

		<guid isPermaLink="false">http://www.tatai.es/?p=693</guid>
		<description><![CDATA[No es la primera vez que me encuentro con una cara de alegría cuando enseño uno de estos comandos con lo que lo voy a dejar por aquí escrito, por si puedo alegrar unas cuantas caras más. Básicamente consiste en sacar el path completo donde se encuentra un ejecutable en nuestro sistema. Si queremos, por [...]]]></description>
			<content:encoded><![CDATA[<p>No es la primera vez que me encuentro con una cara de alegría cuando enseño uno de estos comandos con lo que lo voy a dejar por aquí escrito, por si puedo alegrar unas cuantas caras más.</p>
<p>Básicamente consiste en sacar el path completo donde se encuentra un ejecutable en nuestro sistema. Si queremos, por ejemplo, buscar donde está el comando ls, escribimos:</p>
<pre><code>$ which ls</code></pre>
<p>o bien</p>
<pre><code>$ whereis ls</code></pre>
<p>El resultado de ambos es muy parecido: /bin/ls</p>
<p>¿Dónde está la diferencia? Pues which acepta por ejemplo el parámetro -a con el que se muestran todas las coincidencias (no únicamente la primera) o el parámetro -p que retorna 1 si ha encontrado el ejecutable o 0 si no (útil para scripts).</p>
<p>Mucho ojo, <strong>estos dos comandos únicamente buscan en aquellos paths definidos en $PATH</strong>. Si necesitas buscar fuera de los paths las dos opciones más comunes son:</p>
<pre><code>$ locate ls</code></pre>
<p>O más &#8220;a lo bruto&#8221;:</p>
<pre><code>$ find / -name 'ls' -type f</code></pre>
<p>Hay que tener en cuenta que locate requiere que se haya indexado el contenido en el disco duro. Por esto, es posible que alguna vez os haya ocurrido que el ejecutable no aparecía, quizás ejecutásteis el comando demasiado pronto.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tatai.es/2010/02/23/buscando-ejecutables-en-el-path/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trabajar con ficheros a partir de una fecha y hora</title>
		<link>http://www.tatai.es/2010/01/03/trabajar-con-ficheros-a-partir-de-una-fecha-y-hora/</link>
		<comments>http://www.tatai.es/2010/01/03/trabajar-con-ficheros-a-partir-de-una-fecha-y-hora/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 22:14:07 +0000</pubDate>
		<dc:creator>tatai</dc:creator>
				<category><![CDATA[trucos]]></category>
		<category><![CDATA[consola]]></category>
		<category><![CDATA[date]]></category>
		<category><![CDATA[find]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[touch]]></category>

		<guid isPermaLink="false">http://www.tatai.es/?p=654</guid>
		<description><![CDATA[Al hilo del post de ayer sobre date, hace poco tuve que realizar un sencillo script que borrase todos aquellos ficheros más viejos que una determinada fecha (en particular, ayer a las 6.30h). Seguramente habrás pensado que la mejor opción es un find con -atime (o -mtime o -amin o -cmin, etc) y posteriormente con [...]]]></description>
			<content:encoded><![CDATA[<p>Al hilo del <a href="http://www.tatai.es/2010/01/02/ir-a-una-fecha-mediante-texto/">post de ayer sobre date</a>, hace poco tuve que realizar un sencillo script que borrase todos aquellos ficheros más viejos que una determinada fecha (en particular, ayer a las 6.30h).</p>
<p>Seguramente habrás pensado que la mejor opción es un find con -atime (o -mtime o -amin o -cmin, etc) y posteriormente con un -exec. Bien, es una buena idea aunque yo quería que fuese a partir de un determinado momento exactamente, sin calcular. Para esto, también usé find, pero me apoyé en date y en touch y quedó algo así:</p>
<p><code>#!/bin/bash<br />
# La fecha y hora de ayer a las 6.30h<br />
FECHA=$( date +-d "06:30 yesterday" +"%Y/%m/%d %H:%M:%S" )<br />
# Fichero temporal<br />
POINT=$( tempfile -p "point" )<br />
# Cambiamos la fecha del fichero temporal<br />
touch -d "${FECHA}" ${POINT}<br />
# Buscamos ficheros más viejos que ${POINT} y los borramos<br />
find /path/al/destino -not -newer ${POINT} -exec rm {} \;<br />
# Borramos basura<br />
rm ${POINT}</code></p>
<p>Es posible que sea algo más lioso, pero sin tener que calcular nada (por ejemplo la diferencia de tiempo entre cuando ejecutemos el fichero y nuestra hora objetivo), hacemos el trabajo rápidamente. Y también podemos cambiar la hora de una forma muy cómoda.</p>
<h2>Más info</h2>
<p>Este &#8220;más info&#8221; va a ser un claro RTFM <img src='http://www.tatai.es/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<ul>
<li>man find</li>
<li>man date</li>
<li>man touch</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.tatai.es/2010/01/03/trabajar-con-ficheros-a-partir-de-una-fecha-y-hora/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ir a una fecha mediante texto</title>
		<link>http://www.tatai.es/2010/01/02/ir-a-una-fecha-mediante-texto/</link>
		<comments>http://www.tatai.es/2010/01/02/ir-a-una-fecha-mediante-texto/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 22:14:26 +0000</pubDate>
		<dc:creator>tatai</dc:creator>
				<category><![CDATA[trucos]]></category>
		<category><![CDATA[consola]]></category>
		<category><![CDATA[date]]></category>
		<category><![CDATA[truco]]></category>

		<guid isPermaLink="false">http://www.tatai.es/?p=649</guid>
		<description><![CDATA[Seguramente os habrá pasado alguna vez que os interesa cierta fecha, digamos por ejemplo &#8220;ahora mismo pero hace 3 días&#8221; y queréis usarlo en un comando de consola. Pues bien, esto es realmente sencillo gracias a date. Antes de entrar en detalle, un par de comentarios sobre el comando date. Lo primero es que si [...]]]></description>
			<content:encoded><![CDATA[<p>Seguramente os habrá pasado alguna vez que os interesa cierta fecha, digamos por ejemplo &#8220;ahora mismo pero hace 3 días&#8221; y queréis usarlo en un comando de consola. Pues bien, esto es realmente sencillo gracias a date.</p>
<p>Antes de entrar en detalle, un par de comentarios sobre el comando date. Lo primero es que si escribimos directamente date tendremos algo parecido a esto:<br />
<code>$&gt; date<br />
Sat Jan  2 22:47:41 CET 2010</code><br />
Ahora bien, si queremos que muestre la fecha y hora en formato numérico (con guiones y dos puntos), tenemos:</p>
<p><code>$&gt; date +"%Y-%m-%d %H:%M:%S"<br />
2010-01-02 22:50:06</code></p>
<p>La otra opción interesante, que es la central de este post, es la opción -d. Con esta opción podemos definir el momento que queremos que date muestre y que sea distinto de &#8216;ahora&#8217;. Lo que seguramente no sabías es que se puede definir este momento en &#8220;modo texto&#8221; (en inglés, claro está).</p>
<p>Por ejemplo, si queremos la hora actual, pero hace tres días usaremos:</p>
<p><code>$&gt; date -d "3 days ago"<br />
Wed Dec 30 22:54:44 CET 2009</code></p>
<p>¿Y si queremos las 6.30h de la mañana de hace 5 días? Fácil:</p>
<p><code>$&gt; date -d "06:00:00 3 days ago"<br />
Wed Dec 30 06:00:00 CET 2009</code></p>
<p>Venga, juguemos un poco más!</p>
<p>¿Qué día de la semana fue hace 1 año, 2 meses y 23 días?</p>
<p><code>$&gt; date +%a -d "1 year ago 2 months ago 23 days ago"<br />
Fri</code></p>
<p>¿Es el mismo que hace 449 días?</p>
<p><code>$&gt; date -d "449 days ago"<br />
Fri</code></p>
<p>Pues sí xDD</p>
<p>¿Las 7.30h de la mañana del pasado lunes?</p>
<p><code>$&gt; date -d "07:30:00 last monday"<br />
Mon Dec 28 07:30:00 CET 2009</code></p>
<p>También funciona para fechas futuras.Las 8.00h de la mañana de dentro de dos lunes (cuando se acaban las vacaciones :p):</p>
<p><code>$&gt; date -d "08:00:00 2 monday"<br />
Mon Jan 11 08:00:00 CET 2010</code></p>
<p>¿Qué día de la semana será hoy el año que viene?</p>
<p><code>$&gt; date +%a -d "year 2011"<br />
Sun</code></p>
<p>En fin, ahora es sólo cuestión de echarle imaginación y tirar de manual y de timespec. ¡Ánimo y suerte!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tatai.es/2010/01/02/ir-a-una-fecha-mediante-texto/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Eliminar entradas en el autocompletado de formularios en Firefox</title>
		<link>http://www.tatai.es/2009/12/29/eliminar-entradas-en-el-autocompletado-de-formularios-en-firefox/</link>
		<comments>http://www.tatai.es/2009/12/29/eliminar-entradas-en-el-autocompletado-de-formularios-en-firefox/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 19:43:30 +0000</pubDate>
		<dc:creator>tatai</dc:creator>
				<category><![CDATA[Mundo web]]></category>
		<category><![CDATA[trucos]]></category>
		<category><![CDATA[autocompletar]]></category>
		<category><![CDATA[borrar]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[formulario]]></category>
		<category><![CDATA[truco]]></category>

		<guid isPermaLink="false">http://www.tatai.es/?p=635</guid>
		<description><![CDATA[Seguro que os ha pasado alguna vez que por error habéis metido un texto en un campo de un formulario web que no debía estar ahí. Por ejemplo, la contraseña (o parte de ella) en el campo destinado para el nombre del usuario. Y luego es un problema porque cada vez que escribimos algo en [...]]]></description>
			<content:encoded><![CDATA[<p>Seguro que os ha pasado alguna vez que por error habéis metido un texto en un campo de un formulario web que no debía estar ahí. Por ejemplo, la contraseña (o parte de ella) en el campo destinado para el nombre del usuario. Y luego es un problema porque cada vez que escribimos algo en ese campo, aparece ese texto que no queremos como posibilidad (ayuda de autocompletado).</p>
<p>Pues bien, en Firefox es muy fácil de solucionar.</p>
<p>Tan sólo tienes que estar en ese formulario y hacer que aparezcan las opciones, incluída la que no quieres. Entonces <strong>te pones encima de la opción</strong> que quieres borrar <strong>con el ratón (sin hacer click) y pulsas</strong> la combinación de teclas <strong>Shift + Supr</strong> (suprimir, tecla que generalmente está encima de los cursores, a la izquierda del teclado numérico).</p>
<p>Por ejemplo, aquí vemos el login de Twitter y queremos eliminar la segunda entrada, que está mal.</p>
<div id="attachment_636" class="wp-caption aligncenter" style="width: 423px"><a href="http://www.tatai.es/wp-content/uploads/2009/12/Login.twitter.error_.png"><img class="size-full wp-image-636" title="Debemos ponernos encima con el ratón, pero sin hacer click y entonces pulsar Shift + Supr" src="http://www.tatai.es/wp-content/uploads/2009/12/Login.twitter.error_.png" alt="Debemos ponernos encima con el ratón, pero sin hacer click y entonces pulsar Shift + Supr" width="413" height="338" /></a><p class="wp-caption-text">Debemos ponernos encima con el ratón, pero sin hacer click y entonces pulsar Shift + Supr</p></div>
<p>Tras esto, la opción desaparecerá y no tendrás que preocuparte más (hasta que metamos la pata de nuevo, jeje)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tatai.es/2009/12/29/eliminar-entradas-en-el-autocompletado-de-formularios-en-firefox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
