viernes, 20 de agosto de 2010

JQuery: Limitando la entrada de carácteres en los input[type=text]

Hay veces en la que queremos que en una caja de texto sólo podamos ingresar ciertos carácteres, por ejemplo una caja de texto donde sólo puedo escribir números.

Con este plugin de jquery, podemos realizar la tarea de manera sencilla: ver demo

Para usar el plugin usamos el método filter_input
$(function(){
//Limita la entrada en la caja de texto a los carácteres que pasen la expresión regular.
$('#numbers').filter_input({regex:'[02468]'});​
});
La url del plugin es: http://www.thimbleopensource.com/tutorials-snippets/jquery-plugin-filter-text-input

JQuery: Usando Máscaras en los input[type=text]

Las máscaras de texto limitan el contenido que puede ser entrado en una caja de texto y aplica formato al mismo tiempo al contenido.

El demo muestra una máscara que sólo permite incluir números seis números y dos números decimales.

El plugin usado para fectuar este demo es: http://digitalbush.com/projects/masked-input-plugin/

El código javascript para aplicar la máscara es sencillo:

$(function(){
//Uamos la función para seleccionar nodos de jquery y usamos el plugin mask.
$('#numero').mask('999999.99')​;
});
El formato de las máscara es sencillo:
  • a Representa carácteres alfabéticos
  • 9 Representa carácteres numéricos
  • * Representa carácteres alfabéticos y numéricos
Es posible configurar un evento con este plugin que se activa cuando la entrada de los datos ha completado la máscara configurada para la caja de texto:

$(function(){
//Uamos la función para seleccionar nodos de jquery y usamos el plugin mask.
$('#numero').mask('999999.99', {completed: function(){ alert("Mascara completada, valor ingreado: " + this.val()); }})​;
});

martes, 12 de mayo de 2009

Obteniendo los caracteres invalidos a partir de un RegExp

Hoy, tuve que hacer una función en Javascript que analiza una cadena y retorna que fragmentos de la cadena son inválidos o no son compatibles con la expresión regular dada.

Les comparto la función:


function extractBadCharsInRegexp(regexp, str, whiteSpaceLabel, errorLabel){
var splitResult = str.split(regexp);
var resultArray = [];

//limpio el array de cadenas vacias
for(var i = 0; i < splitResult.length; i++){
var tmp = splitResult[i];
if(tmp.length > 0){
resultArray.push(tmp);
}
}
//si el nuevo array tiene elementos hay un error
if(resultArray.length > 0){
var result = resultArray.join(",")
var nowhiteResult = result.replace(/\s/g, '');
if(nowhiteResult != result){
alert(whiteSpaceLabel);
}
//muestro mensaje si hay caracteres distintos a espacio
if(nowhiteResult.replace(',', '').length > 0){
alert([errorLabel, ' [', nowhiteResult, "]"].join(''));
}
}
return resultArray;
}

jueves, 16 de abril de 2009

Concejos para vencer la Procrastinación

La Procrastincación es la acción (o arte cultivada) de postergar actividades o situaciones que uno debe atender, por otras situaciones más irrelevantes y agradables.

Thinkwasabi nos comparte la siguiente lista para combatir la procrastinación:

  1. Valora lo que ganaras a terminar esa tarea
  2. Piensa en que retrasarlo va a ser peor
  3. Si es una tarea grande, divídela en pequeñas partes
  4. Míralo como un reto directo a tu fortaleza y determinación
  5. Corta las mentiras, no te engañes
  6. Piensa en los demás, a veces son quienes pagan cara tu Procrastinación
  7. Generalmente luego "no es para tanto"
  8. Aplica la regla hazlo ahora
  9. Si es una tarea compleja, no busques la perfección a la primera
  10. Si utilizas el GTD ojo con el "algún día"
  11. Piensa que si vences serás un "mejor profesional"
  12. Si te han asignado una tarea que otro debía hacer, no culpes al mensajero
  13. Si te vas a poner a ello, corta cualquier distracción
  14. "Es que es mucho, no se por donde empezar", divide la tarea en partes y hazlo
  15. Aplica la regla de los 2 minutos del GTD a las tareas que sabes que las puedes completar rápido
  16. Hazlo para evitar el estrés y la frustración
  17. Encuentra el lado positivo de esa tarea
  18. Elimina todo lo demás de tu cabeza, sólo cuenta eso
  19. Piensa que destruye tu Organización y Productividad
  20. Enfréntate a la Procrastinación que viene del miedo
  21. ¿Necesitas un estimulo?, recurre a tu canción favorita.
  22. Saborea el momento de la victoria

La confianza en los equipos de desarrollo

Les dejo este articulo sobre la confianza en los equipos de trabajo

Lo primero que se necesita en el entorno laboral es la confianza profesional. La confianza profesional nos dice "Yo confio que usted es competente para hacer el trabajo, que va a compatir información relevante, y que tiene buenas intenciones para el equipo". Es decir, estamos hablando de la comunicación, el compromiso, y la competencia.

5 formas para ganarse la confianza de un equipo

El articulo referencia cinco prácticas interesantes que nos ayudan a mantener confianza en un equipo de trabajo o a ganarla:

  1. Tratar los temas directamente
  2. Compartir información relevante
  3. Cumplir los compromisos o dar aviso temprano de que no se puede
  4. Decir "No" cuando queremos decir no
  5. Mostrar lo que sabemos y lo que no sabemos

jueves, 26 de febrero de 2009

Tip: Como extraer los caracteres de un archivo pdf

Les dejo este tipo acerca de como extraer los caracteres de un archivo pdf.

import com.lowagie.text.pdf.PRTokeniser;
import com.lowagie.text.pdf.PdfReader;
import java.io.InputStream;
...
InputStream stream = ...;
PdfReader pdfReader = new PdfReader(stream);
try{
int numberOfPages = pdfReader.getNumberOfPages();
for(int page = 1; page <= numberOfPages; page++){
PRTokeniser tokeniser = new PRTokeniser(pdfReader.getPageContent(page));
while(tokeniser.nextToken()){
if (tokeniser.getTokenType() == PRTokeniser.TK_STRING) {
System.out.println("Pagina: " + page);
System.out.println("Parrafo: " + tokeniser.getStringValue());
System.out.println("---------------------------------------");
}
}
}
}finally{
pdfReader.close();
}

viernes, 13 de febrero de 2009

El framework de aplicaciones Seam

Seams es un framework para construir aplicaciones de internet ricas en Java. Seam integra tecnologías tales como AJAX, JSF, JPA, EJB 3.0 y BPM dentro de una solución unificada y completa.

Seams ha sido diseñado desde el comienzo con el fin de eliminar complejidad en ambos nivels de arquitectura y APIs.

Algunas de las mejoras que Seam trae a la plataforma Java EE son:
  1. Eliminar los problemas de JSF que han sido el tema de incontables peleas
  2. Enmendar la comunicación entre JSF y componentes de negocio transaccionales
  3. Colapsar capas innecesarias
  4. Ofrece una solución para la administración de estado, desanimando el uso de arquitecturas sin estado.
  5. Administra el contexto de persistencia para evitar excepciones de inicialización peresoza en la vista y subsecuentes peticiones.
  6. Conecta varias vistas, con un flujo de páginas con estado
  7. Trae los procesos de negocio al mundo de las aplicaciones web
  8. Conecta mecanismos de autenticación y autorización basada en POJOs y soportados por JAAS.
  9. Provee un contenedor embebido para pruebas.