martes, 30 de junio de 2009

No quiero arreglar tu computador.

Siempre he querido tener esta polera, más que por monería nerd, es por necesidad.


El domigo recién pasado fuí a buscar a mi mujer y mi hijo a una fiesta de cumpleaños de un amiguitó de este último. Los padres amablemente me invitaron a quedarme un momento a tomar algo, me sirvieron ron-cola y conversamos un buen rato, había otra pareja amiga de los anfitriones. Todo iba bastante bien hasta que salió la pregunta de rigor: ¿En qué trabajas?.

El diálogo fue más o menos así:
-Fulana: ¿en qué trabajas?
-Yo: soy desarrollador de software
-Fulana: ahh, entonces tienes que ser seco con los computadores

-Yo: (silencio)

-Fulana: es que hace unos días mi computador está con problemas. ¿tú sabes por qué (...)?
-Yo: (más silencio)
Necesito la polera urgentemente (y en español para que quede absolutamente claro).

La imagen es de la genial tienda ThinkGeek.

sábado, 27 de junio de 2009

Validador de Rut en Spry

A propósito de una consulta en el mmug, recordé que tenía en el tintero una "extensión" del validador para campos de textos de Spry. Dicha extensión agrega un nuevo validador a los ya existentes.

La modificación la deben aplicar en el objeto, del archivo SpryValidationTextField.js,
Spry.Widget.ValidationTextField.ValidationDescriptors.

El código agregado es:
    'rut':{
   //expresión regular que valida el formato
   regExpFilter: /^([0-9])+\-([kK0-9])+$/,
   validation: function(value){
       if(value == ''){
           return false;
       }
       var rexp = new RegExp(/^([0-9])+\-([kK0-9])+$/);
       if(!value.match(rexp)){
           return false;
       }
       var RUT  = value.split("-");
       var elRut = RUT[0];
       var factor = 2;
       var suma = 0;
       var dv;
       for(i=(elRut.length-1); i>=0; i--){
           factor = factor > 7 ? 2 : factor;
           suma += parseInt(elRut[i])*parseInt(factor++);
       }
       var ret = value;
       dv = 11 -(suma % 11);
       if(dv == 11){
           dv = 0;
       }else if (dv == 10){
           dv = "k";
       }
       if(dv != RUT[1].toLowerCase()){
           ret= false;
       }
       return ret
   }
}
Lo que hice fue reutilizar la función javascript para validar rut que publiqué hace unos días. Para utlizarla basta con instanciar todos los elementos propios de los objetos de validación Spry, pero en el tipo de validación indicar el tipo "rut":
var rut = new Spry.Widget.ValidationTextField("idDelContenedor","rut",{validateOn:["blur","change"]});

Por supuesto, pueden probarlo acá y descargar el archivo SpryValidationTextField.js modificado acá.

Actualización: Lester me indicó que no funcionaba en Internet Explorer, aquí está la versión corregida.

viernes, 19 de junio de 2009

Validador de Rut (Javascript)

En un post anterior publiqué un validador de RUT hecho con PHP y ahora es el turno de Javascript.

Es similar al anterior con PHP:
function validaRut(rut){
 var rexp = new RegExp(/^([0-9])+\-([kK0-9])+$/);
 if(rut.match(rexp)){
     var RUT = rut.split("-");
     var elRut = RUT[0].toArray();
     var factor = 2;
     var suma = 0;
     var dv;
     for(i=(elRut.length-1); i>=0; i--){
         factor = factor > 7 ? 2 : factor;
         suma += parseInt(elRut[i])*parseInt(factor++);
     }
     dv = 11 -(suma % 11);
     if(dv == 11){
         dv = 0;
     }else if (dv == 10){
         dv = "k";
     }

     if(dv == RUT[1].toLowerCase()){
         alert("El rut es válido!!");
         return true;
     }else{         
         alert("El rut es incorrecto");
         return false;
     }
 }else{     
     alert("Formato incorrecto");
     return false;
 }
}

Pueden ver un demo aquí

Para más información sobre el RUT y el algoritmo de creación y validación pueden consultar la wikipedia: http://es.wikipedia.org/wiki/RUT.

lunes, 8 de junio de 2009

Erotomanía

Este año le he dado duro a Dream Theather, es buena música para trabajar :).

Uno de los buenos discos es Awake del cual rescato "Erotomania". La erotomanía es la ilusión que tiene una persona de que alguien "mejor" que ella está enamorado de si. Es, según mi opinión, una fantasía erótica más que recurrente.

Dream Theather lo define de una mejor forma con música :D.