$(‘#id’).onInterval(); Nuevo plugin JQuery v0.1 en beta.

Un nuevo plugin para el stack, lo comparto por acá aunque fue escrito hoy día así es que está en Beta, no ha sido probado exigentemente aún.

Sirve para ejecutar una función de callback pasado un intervalo de tiempo en milisegundos sobre un evento que se defina en un elemento.

“Puede ser usado o modificado a voluntad.”

Can be used to execute any callback function on an event after some interval in milliseconds.

(Lo coloque en español e ingles [my so so english :p ]) para que después de indexada en google, búsquedas en español o ingles llegen al post.

Fuente:

Update (02-04-2009): aquí (http://downloads.continuum.cl/downloads/projects/jquery-plugins/oninterval.jquery.js) está el código fuente.

Opciones:

Las opciones que pueden ser pasadas como objeto literal de javascript son:

  1. event. El evento en la forma jQuery. blur, focus, load, resize, scroll, unload, beforeunload, click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, error. Solo ha sido probado con los eventos ‘change’ y ‘keyup’.
  2. interval. El intervalo en milisegundos que demorará la ejecución de la función de callback pasada.
  3. callback: Función que será invocada cuando pase le intervalo de tiempo. A la función le es pasada como argumento el valor del elemento (val() de jQuery) y el objeto evento del DOM. En una versión inicial se pasaba como primer elemento el objeto jQuery que representa el elemento al que se le ejecuta el evento, pero por una razón de fuerza mayor (que solo explicaré si me lo piden porque es extensa) tuve que dejar de hacerlo pasando el valor, no obstante se puede acceder al objeto jQuery en la función de callback.
  4. doNotExecOnRegexp. Expresión reglar que sera testeada contra el valor del elemento, si el test retorna true la funcion de callback no será invocada.
  5. onlyExecOnRegexp: Lo contrario a lo anterior, expresión regular contra la que se testea el valor, solo si el test retorna true entonces, se ejecuta la función de callback.
  6. charNum: Update (02-04-2009). Número de caracteres que deben digitarse antes de gatillar la funcion de callback. Valor default (1).

Nota: Si se especifican las dos expresiones regulares, se hacen ambos chequos, si alguno da false no se ejecuta la función de callback.

Ejemplo del uso:

En cuanto tenga un tiempo escribiré alguna página con ejemplos, por ahora solo la forma de uso.

En este caso se trata de un input text, en el que cuando se escribe texto y se deja de escribir por 2 segundos, se ejecuta la función de callback que en el ejemplo solo escribe en la consola del firebug, pero que puede ejecutar un request Ajax para hacer búsqueda, o lo que se les ocurra. Si el texto del input es ‘Ingrese el nombre’, o se escriben menos de 4 caracteres entonces no se ejecuta la función.

$('#filtro-nombre').onInterval({
    event: 'keyup',
    interval: 2000,
    charNum: 4,
    callback: function (value, ev) {
        console.log(value);
        // do some Ajax here...
    },
    doNotExecOnRegexp: /^Ingrese el nombre$/
});

Nota: No ha sido probado aún para Internet Explorer.

¿ Como convencer a un cliente que es hora de innovar ?

Innovar no significa siempre crear algo nuevo, significa hacer algo distinto, o sea cambiar.

No se exactamente cuantos, pero deben ser más de 10 años ya con Java y la sopa de letras J2EE en los servidores de producción de los clientes.

Java es buen lenguaje, tiene una comunidad gigante (y por tanto un soporte envidiable), y la JVM está muy madura, y muestra los mejores graficos de performance, estabilidad y portabilidad en comparación con las demás (un ejemplo es el modelo de Thread que Java mejoró con respecto al lenguaje C, hay varios blogs y papers que hablan al respecto). Considero entonces que la falencia no está en Java. La falencia está en los modelos encima de Java, como el  J2EE, y no voy a repetir lo que todos ya conocen.

En otro mundo, lenguajes como Ruby, Python, Scala, y frameworks como Rails, Django, Pylons, o Lift están ganandole en popularidad a Java y J2EE por el pragmatismo y la proactividad que imponen a los desarrollos. Por ejemplo en nuestro caso es muy común ya crear prototipos semi-funcionales usando RoR, y luego re-escribir la lógica de parte del server en Java.

Y finalmente, proyectos como JRuby, Groovy, Grails, Jython, Scala, (y más), todos salidos de las comunidades Java llegaron para suplir dichas falencias, reusando lo mejor del mundo Java y J2EE y agregandole agilidad, pragmatismo y porque no, entretensión al desarrollo en Java.

No obstante la pregunta es: “Como convencer a los clientes que ya es hora de innovar en este tema ?”.

Leo Soto & su presentación Django on Jython (PyCon 2009).

Leo Soto nos visitó el pasado viernes respondiendo a una invitación nuestra.

Debo confesar que somos afortunados, pues ensayó la charla ( en versión extendida ) de la presentación que hará en la PyCon 2009 ( en Chicago del 27 al 29 de Marzo ) sobre el trabajo que ha estado haciendo en soportar django sobre jython.

Particularmente resumo la presentación (excelente por demás) en “Usemos lo mejor de los mundos Python & Java y por ende de Django & ( parte del J2EE )“.

Leo ejecutó ejemplos del uso de la consola de jython (equivalente a la consola de cpython) mostrando la invocación de clases java desde python para dar agilidad al desarrollo en Java (por ejemplo probar fragmentos de códigos que en otro caso hubiera sido necesario escribir métodos main o pruebas unitarias).

Por otro lado mostró el desarrollo de aplicaciones web usando django sobre jython y reusando librerías de Java como el proyecto POI de Apache para la manipulación de archivos en formato M$ (excel, doc, etc), y finalmente como generar un .WAR y deployarlo en Tomcat.

Probando el soporte de los IDE mostró el plugin pydev más una extensión que él mismo escribió para dar soporte django al plugin, donde vimos todo lo anterior pero desde el mismo eclipse, entre lo más significativo estuvó el wizard para crear proyectos django y la automatización de tareas como generar el WAR, o iniciar el servidor de desarrollo desde el IDE.

La presentación fue grabada (en modalidad amateur :) ) en su casi totalidad (lo que cupo en el mini DVD en modalidad baja calidad, no obstante se ve bien).

Voy a esperar el regreso de Leo de la PyCon para pedir autorización y permitir publicar el video.

Conócenos

Tel: +56 2 9341951

e-mail: info@continuum.cl

Copyright © 2010 Continuum Ltda.
Coronel Pereira 72. Oficina 903. Las Condes. Santiago. Chile