• Como NO Hacer Una Aplicación – Claro

    0

    Mis amigos de Claro Argentina tienen una aplicación que permite hacer varios tramites y consultas online. Uno de ellos es el supuesto registro de una tarjeta de crédito para poder cargar si algún equipo de tu cuenta está con factura fija y se quedó sin crédito.

    Veamos el menú, mas allá del diseño patético y poco práctico ubicamos la función que queremos. Registrar una tarjeta de crédito.

    Y teniendo en cuenta el servicio horrible que da Claro no nos podíamos encontrar otra cosa más que esta.

    Ni siquiera llamar ?. Son patéticos.

  • Geolocacion en Javascript

    0

    Hoy en dia es super importante localizar a nuestros visitors, por eso hay varias APIs que nos permiten a partir de la IP saber desde donde estan haciendo el request. MaxMind es una base de datos con una version open source la cual nos permite hacer llamados a sus funciones para poder determinar los datos de locación del request. Maxmind.

    Primero debemos referenciar al js file de Maxmind

    <script type="text/javascript" src="http://j.maxmind.com/app/geoip.js"></script>
    

    Ahora debajo de la inclusion de este script escribimos la llamada.

      var lat = geoip_latitude();
      var lon = geoip_longitude();
      var city = geoip_city();
      var country = geoip_country_name();
      var countryCode = geoip_country_code();
    // now you got the info, do whatever you want
    

    Geolocación en el client side es util relativamente, ya que de esta manera el contenido generado es probablemente que sea llamado usando ajax. Yo prefiero concretamente una solucion server side, que permita ya brindarle al usuario en el primer request contenido para su locación.

    En poco tiempo estamos implementando en Memudoya.com una base de Maxmind offline (local, actualizable) para poder brindar a los visitantes destacados de su zona.

    Have a good one.

  • Una Buena Razon Para No Usar Siempre La Misma Password

    0

    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.

    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.

    La técnica se basa en 1 password master y un 1 string random que puede perfectamente ser el nombre del servicio.

    Por ejemplo, yo elijo como password master “rodrigo” y por ejemplo el servicio de email de yahoo es simplemente “yahoo”. Entonces tenemos “rodrigo”+”yahoo”, en el caso de gmail seria, “rodrigo” +”google” and so on.

    Ahora, como combinar estas palabras para generar una password ? Usamos un algoritmo MD5 bien casero en Java. El código.

    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 & 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();
    }
    }
    

    Ahora, el uso seria algo asi:

    String master = "rodrigo";
    String service = "yahoo";
    String longMD5 = new MD5Generator().generate(master+service);
    

    La variable longMD5 va a ser un choclo como esto: “37b0227d88adcf07ddb469fa45ad2938″ per pueden hacer un substring para acortarla a por ejemplo 8 caracteres.

    String pass = new MD5Generator().generate(master+service).substring(0,8);
    

    Que lo disfruten.

  • Mas JQuery parte V

    0

    Unwrap elementos

    El método “.wrap()” existe hace rato, pero ahora John Resig ha agregado “.unwrap()” el cual remueve todos los tags exteriores al nodo JQuery seleccionado. Como funciona ?

    Supongamos el siguiente HTML:

    <div>
      <p>Some text here</p>
    </div>

    Queremos extraer el tag <p>, entonces usamos “.unwrap()”.

    $("p").unwrap();

    Este metodo quita el tag <div> que contiene a <p>. Elimina fácilmente el parent tag.

  • Como obtener la fecha de ayer con shell script

    0

    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 /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/*
    
Page 1 of 4512345»102030...Last »