Archivo para Agosto 2008
Subir fotos (gratis) a Flickr con el iPhone
Desgraciadamente hasta el momento no hay ninguna aplicación convincente en la AppStore para subir fotos a Flickr (existe Mobile Fotos, pero es de pago). Así que quizá lo más fácil sea hacerlo a través del correo electrónico, enviando las fotos a la dirección que aparece en http://flickr.com/account/uploadbyemail.
El asunto del correo será el título de la foto, el cuerpo la descripción, y para añadir las etiquetas podemos poner en el texto del mensaje: tags: tag1 "tag con espacios".
Rercarga de clases al vuelo con JavaRebel
Hace tiempo que tengo apuntado un echar un ojo a Java Rebel, un plugin con una pinta magnífica. Y es que permite la recarga de clases al vuelo, sin necesidad de reiniciar el servidor de aplicaciones. Como un vídeo vale más que mil palabras, mejor verlo.
En su recién lanzada versión 1.2, Java Rebel añade soporte para Spring, de forma que la configuración también se recargue en caliente.
Facilitando el mapeo en Hibernate utilizando NamingStrategy
Cuando se trabaja con una base de datos, lo normal es que ésta siga una serie de convenciones en los nombres de sus tablas, columnas, secuencias y otros elementos varios. Por ejemplo, suele ser bastante común utilizar prefijos para los nombres de las tablas.
Si usamos Hibernate se puede facilitar el mapeo de clases y atributos a tablas y columnas utilizando un objeto NamingStrategy que represente nuestras convenciones. Aquí explican cómo hacerlo con un ejemplo.
Para configurarlo con Spring:
[xml]
[...]
[...]
[/xml]
Correo electrónico 2.0
El correo electrónico sigue vigente tal y como se gestó hace más de 40 años, y es que a pesar de las debilidades que presenta es uno de los servicios más populares de la red. Eso sí, las aplicaciones de gestión de correo han añadido con el paso del tiempo funcionalidades como ficheros adjuntos, filtros, corrector ortográfico, carpetas, búsquedas, protección contra el spam…
En Lifehacker proponen algunas características interesantes:
- Posibilidad de cancelar un envío. Se podría conseguir estableciendo un ligero retraso en el envío de modo que nos dé tiempo a cancelarlo.
- Posponer un correo. Se trataría de archivar un email que automáticamente volviese a aparecer en la bandeja de entrada al día siguiente. Para correos importantes pero que no sean urgentes.
- Responder al texto seleccionado.
- Plantillas de respuesta rápida. Una serie de plantillas con respuestas estándar a diversas situaciones.
- Recordatorio de adjuntos. La aplicación “leería” el correo, y si encuentra palabras como te adjunto o te envío (por ejemplo) y no se adjunta ningún archivo, advertiría al usuario con un mensaje.
- Filtro de idioma. Para buscar, por ejemplo, en los correos recibidos en inglés.
- Estadísticas. Para saber en qué momento recibes o envías más correos.
- Búsqueda de mensajes relacionados.
Muchas de ellas ya están incorporadas en GMail o Mozilla Thunderbird, otras se pueden conseguir gracias a extensiones, y las demás son simples propuestas.
Si la Web 2.0 supuso una revolución al añadir nuevas funcionalidades insospechadas hasta el momento, ¿por qué no puede el correo electrónico reinventarse a sí mismo y vivir su propia época dos cero? GMail puede ser sólo el primer paso…
Configurando Huawei E220 con Simyo para OSX
Me había costado en su día encontrar la solución, y ahora que he tenido que repetir el proceso, otra vez lo mismo. Así que lo dejo aquí por escrito por si las moscas tengo que volver a hacerlo, y por si a alguien más le pueda servir.
Este método funciona para un módem 3G Huawei E220 libre, con SIM prepago de Simyo, para OSX 10.4 (Tiger) sobre un MacBook y/o iBook (es decir, tanto Intel como PPC).
Lo primero es descargar los drivers y el software desde la web de Huawei (el primer archivo). El cliente viene en una imagen ISO aunque sin extensión, por lo que si el Mac no reconoce el archivo debemos renombrarlo a E220.iso. Doble click para montar la imagen, y luego ejecutar el instalador.
Ahora ya tenemos el software en Aplicaciones, sólo nos queda configurarlo para su uso con Simyo:
Y a disfrutarlo. Cuidado con no pasarse de los 100MB diarios, a partir de ahí las tarifas son muy caras.
true == false
Una de las muchas diferencias entre PHP y Java es que el primero realiza las conversiones entre tipos de forma implícita durante la ejecución; no necesita que nadie le diga en qué debe convertir las variables.
Esto puede tener consecuencias curiosas:
$a = 'string';
$b = 0;
if ( $a == true && $b == false && $a == $b )
{
echo ( 'universe broken' );
}
Y es que, efectivamente, la condición anterior se cumple. Es decir, true == false.
sudo !!
Tonto-truco del día. ¿Quién no ha ejecutado como usuario normal un comando que necesitaba de privilegios de root? Algunos vuelven a escribir todo el comando, otros (como yo) utilizan el historial y simplemente le añaden el sudo al principio… pero lo más rápido:
$ sudo !!
lo cual ejecutará el último comando con privilegios de root.
Test coverage con Cobertura
Las pruebas unitarias son una parte fundamental en el desarrollo software; con ellas, básicamente, se confirma que las unidades individuales funcionan como deberían. En Java el estándar de facto para realizar este tipo de pruebas es JUnit.
Sin embargo, para que esto sea de utilidad los tests han de estar bien construidos y cubrir la mayor funcionalidad posible de la aplicación. Aquí entran en juego las herramientas de cobertura de tests o test coverage, como Cobertura.
Cobertura es una herramienta open source y gratuita. Al lanzar los tests, inserta su propio código en la aplicación de manera que pueda registrar qué líneas se ejecutan y cuáles no, entre otras cosas. Los resultados se pueden consultar vía HTML.
Una de sus grandes ventajas es su integración con Ant y Maven. Para utilizar Cobertura con este último sólo hemos de añadir las siguientes líneas al pom.xml:
[xml]
org.codehaus.mojo
cobertura-maven-plugin
2.2
**/*Test.class
[/xml]
y luego ejecutar con:
$ mvn cobertura:cobertura
Una herramienta útil para encontrar código sin testear, aunque pretender cubrir cada una de las líneas de la aplicación en las pruebas es algo bastante utópico.


