<?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>Rodrigo Asensio</title>
	<atom:link href="http://www.rodrigoasensio.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.rodrigoasensio.com</link>
	<description></description>
	<lastBuildDate>Wed, 03 Feb 2010 17:45:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Una Buena Razon Para No Usar Siempre La Misma Password</title>
		<link>http://www.rodrigoasensio.com/2010/02/una-buena-razon-para-no-usar-siempre-la-misma-password/</link>
		<comments>http://www.rodrigoasensio.com/2010/02/una-buena-razon-para-no-usar-siempre-la-misma-password/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 17:44:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[hacking]]></category>

		<guid isPermaLink="false">http://www.rodrigoasensio.com/?p=450</guid>
		<description><![CDATA[Días atrás twitter puso en alerta a algunos usuarios para que cambien las passwords porque estaban siendo victimas de prishing. Pasa y pasa que muchos developers hacen herramientas open source, como por ejemplo foros open source PHP los cuales tienen exploits. Trackean sus instalaciones y cuando el foro se hace un poco popular ingresan con [...]]]></description>
			<content:encoded><![CDATA[<p>Días atrás twitter puso en alerta a algunos usuarios para que cambien las passwords porque estaban siendo victimas de prishing. Pasa y pasa que muchos developers hacen herramientas open source, como por ejemplo foros open source PHP los cuales tienen exploits. Trackean sus instalaciones y cuando el foro se hace un poco popular ingresan con un master password (por ejemplo) y se roban todas las passwords y emails. Este es el típico caso donde te chorean la password. Viste que facil es que sepan tu password ? Bueno, ahora perfectamente saben que no deben poner la misma password para todos los sites.</p>
<p>Ahora, es muy molesto estar acordandose passwords y demas, para eso, hoy les acerco una tecnica para aquellos Java Boys que quieran tener un poco de complicacion en sus vidas.</p>
<p>La técnica se basa en 1 password master y un 1 string random que puede perfectamente ser el nombre del servicio.</p>
<p>Por ejemplo, yo elijo como password master &#8220;rodrigo&#8221; y por ejemplo el servicio de email de yahoo es simplemente &#8220;yahoo&#8221;. Entonces tenemos &#8220;rodrigo&#8221;+&#8221;yahoo&#8221;, en el caso de gmail seria, &#8220;rodrigo&#8221; +&#8221;google&#8221; and so on.</p>
<p>Ahora, como combinar estas palabras para generar una password ? Usamos un algoritmo MD5 bien casero en Java. El código.</p>
<pre name="code" class="java">
public class MD5Generator() {
private MessageDigest messageDigest;

private MessageDigest getMessageDigestMD5() throws NoSuchAlgorithmException {
	if (this.messageDigest == null) {
		this.messageDigest = MessageDigest.getInstance("MD5");
	}
	return this.messageDigest;
}

public String generate(String key) throws Exception {
	// start fresh
	this.getMessageDigestMD5().reset();
	this.getMessageDigestMD5().update(key.getBytes());
	byte[] bytes = this.getMessageDigestMD5().digest();
	// buffer to write the md5 hash to
	StringBuffer buff = new StringBuffer();
	for (int l = 0; l < bytes.length; l++) {
		String hx = Integer.toHexString(0xFF &#038; bytes[l]);
		// make sure the hex string is correct if 1 character
		if (hx.length() == 1) buff.append("0");
		buff.append(hx);
	}
	return buff.toString().trim();
}
}
</pre>
<p>Ahora, el uso seria algo asi:</p>
</pre>
<pre name="code" class="java">
String master = "rodrigo";
String service = "yahoo";
String longMD5 = new MD5Generator().generate(master+service);
</pre>
<p>La variable longMD5 va a ser un choclo como esto: &#8220;37b0227d88adcf07ddb469fa45ad2938&#8243; per pueden hacer un substring para acortarla a por ejemplo 8 caracteres.</p>
<pre name="code" class="java">
String pass = new MD5Generator().generate(master+service).substring(0,8);
</pre>
<p>Que lo disfruten.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rodrigoasensio.com/2010/02/una-buena-razon-para-no-usar-siempre-la-misma-password/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mas JQuery parte V</title>
		<link>http://www.rodrigoasensio.com/2010/02/mas-jquery-parte-v/</link>
		<comments>http://www.rodrigoasensio.com/2010/02/mas-jquery-parte-v/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 10:59:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.rodrigoasensio.com/?p=433</guid>
		<description><![CDATA[Unwrap elementos
El método &#8220;.wrap()&#8221; existe hace rato, pero ahora John Resig ha agregado &#8220;.unwrap()&#8221; el cual remueve todos los tags exteriores al nodo JQuery seleccionado. Como funciona ?
Supongamos el siguiente HTML:
&#60;div&#62;
  &#60;p&#62;Some text here&#60;/p&#62;
&#60;/div&#62;
Queremos extraer el tag &#60;p&#62;, entonces usamos &#8220;.unwrap()&#8221;.
$("p").unwrap();
Este metodo quita el tag &#60;div&#62; que contiene a &#60;p&#62;. Elimina fácilmente el parent tag.

]]></description>
			<content:encoded><![CDATA[<p>Unwrap elementos</p>
<p>El método &#8220;.wrap()&#8221; existe hace rato, pero ahora John Resig ha agregado &#8220;.unwrap()&#8221; el cual remueve todos los tags exteriores al nodo JQuery seleccionado. Como funciona ?</p>
<p>Supongamos el siguiente HTML:</p>
<pre name="code" class="html">&lt;div&gt;
  &lt;p&gt;Some text here&lt;/p&gt;
&lt;/div&gt;</pre>
<p>Queremos extraer el tag &lt;p&gt;, entonces usamos &#8220;.unwrap()&#8221;.</p>
<pre name="code" class="html">$("p").unwrap();</pre>
<p>Este metodo quita el tag &lt;div&gt; que contiene a &lt;p&gt;. Elimina fácilmente el parent tag.</p>
<div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.rodrigoasensio.com/2010/02/mas-jquery-parte-v/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como obtener la fecha de ayer con shell script</title>
		<link>http://www.rodrigoasensio.com/2010/01/como-obtener-la-fecha-de-ayer-con-shell-script/</link>
		<comments>http://www.rodrigoasensio.com/2010/01/como-obtener-la-fecha-de-ayer-con-shell-script/#comments</comments>
		<pubDate>Sat, 30 Jan 2010 12:10:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[shell script]]></category>
		<category><![CDATA[zip]]></category>

		<guid isPermaLink="false">http://www.rodrigoasensio.com/?p=445</guid>
		<description><![CDATA[Estuve necesitando obtener la fecha de ayer para poder hacer un cron backup diario de los logs de los servidores, por ende hice un shell script para poder obtener los archivos de ayer, zipearlos y mandarlos a otro folder.

#!/bin/sh

#get the date from yesteday
DATE=$(date --date='1 day ago' +%Y-%m-%d)

mv /var/log/tomcat/site1.$DATE* old
mv /var/log/tomcat/site2.$DATE* old
mv /var/log/tomcat/localhost.$DATE* old
mv /var/log/tomcat/catalina.$DATE* old
mv [...]]]></description>
			<content:encoded><![CDATA[<p>Estuve necesitando obtener la fecha de ayer para poder hacer un cron backup diario de los logs de los servidores, por ende hice un shell script para poder obtener los archivos de ayer, zipearlos y mandarlos a otro folder.</p>
<pre>
#!/bin/sh

#get the date from yesteday
DATE=$(date --date='1 day ago' +%Y-%m-%d)

mv /var/log/tomcat/site1.$DATE* old
mv /var/log/tomcat/site2.$DATE* old
mv /var/log/tomcat/localhost.$DATE* old
mv /var/log/tomcat/catalina.$DATE* old
mv /var/log/tomcat/site2.com_access_log.$DATE* old
mv /var/log/tomcat/site1.com_access_log.$DATE* old

zip -m9 /usr/share/store/log/$DATE-log-backup.zip /var/log/old/*
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.rodrigoasensio.com/2010/01/como-obtener-la-fecha-de-ayer-con-shell-script/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mas JQuery 1.4 Parte IV</title>
		<link>http://www.rodrigoasensio.com/2010/01/mas-jquery-1-4-parte-iv/</link>
		<comments>http://www.rodrigoasensio.com/2010/01/mas-jquery-1-4-parte-iv/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 10:30:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.rodrigoasensio.com/?p=429</guid>
		<description><![CDATA[Este feature esta muy bueno ya que podes agregar un delay al animation queue. Permite pausar los ciclos entre las animaciones sin estar llamando a setTimeout entre medio. Aca el ejemplo:

$("#mydiv")
    .slideDown() // slide down
    .delay(200) // just wait 200 milliseconds, this is the delay
    .fadeIn(); [...]]]></description>
			<content:encoded><![CDATA[<p>Este feature esta muy bueno ya que podes agregar un delay al animation queue. Permite pausar los ciclos entre las animaciones sin estar llamando a setTimeout entre medio. Aca el ejemplo:</p>
<pre name="code" class="js">
$("#mydiv")
    .slideDown() // slide down
    .delay(200) // just wait 200 milliseconds, this is the delay
    .fadeIn(); // fade in effect
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.rodrigoasensio.com/2010/01/mas-jquery-1-4-parte-iv/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mas JQuery 1.4 Parte III</title>
		<link>http://www.rodrigoasensio.com/2010/01/mas-jquery-1-4-parte-iii/</link>
		<comments>http://www.rodrigoasensio.com/2010/01/mas-jquery-1-4-parte-iii/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 11:18:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.rodrigoasensio.com/?p=427</guid>
		<description><![CDATA[Con la llegada de JQuery 1.4 John Resig agregó nuevos eventos. Focus in y focus out ahora estan disponibles y son realmente útiles.

$("#myinput").focusin(function() {
  //some code
});

$("#myinput").focusout(function() {
  //some code
});

]]></description>
			<content:encoded><![CDATA[<p>Con la llegada de JQuery 1.4 John Resig agregó nuevos eventos. Focus in y focus out ahora estan disponibles y son realmente útiles.</p>
<pre name="code" class="js">
$("#myinput").focusin(function() {
  //some code
});

$("#myinput").focusout(function() {
  //some code
});
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.rodrigoasensio.com/2010/01/mas-jquery-1-4-parte-iii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
