lunes, 23 de febrero de 2009

Batman, el superheroe más cutre de entre los "Clásicos"

Batman me cae mal, siempre me ha caido mal, es algo irracional, es como lo de Peter Pan, no lo soporto, pero si bien Peter Pan me cae mal porque es un pijo chungo, Batman me cae mal símplemente por ser un quiero y no puedo, entre otras cosas en las que no entraré.

Realmente Batman no tiene poder alguno, es todo a base de cachibaches y artilugios con ganchos, cables y demás ferralla. No es como Superman que te puede congelar con su super-aliento o hacerte una radiografía sólo com mirarte. Si tienes un RPG y pillas a Batman un poquillo despistado, te lo cargas sin problemas, y si no lo pillas despistado, siempre puedes poner 4 o 5 RPGs y será carne de cañón.

Spiderman puede envolverte con sus telas de araña, subirse por las paredes, tiene un oido privilegiado, pero ¿Batman? Como no se ponga un Whisper XL amplificado va de culo. Robin podría llamar a Corrupción de Menores estando en la misma sala que él y Batman no se enteraría.

¿Qué te puede hacer Batman realmente? ¿Darte de hostias? ¿tirarte cosas?, ¿insultarte?, vale, él está entrenado y yo no ¿y qué? Se soluciona con los 4 o 5 RPG. Intenta cargarte a Superman con un lanzacohetes, le puede dar la risa. Y luego evidentemente preparate que vas a ir para casa con el culo calentito. Y hablando de culos: ¿Es mayor de edad Robin?

Además, no ireis a comparar a los enemigos de Batman con los de Superman por no ir más lejos. El Joker no deja de ser un pirado, una especie de Emilio Aragón traumatizado por la cancelación de los Payasos de la Tele. ¿El Pinguino? Le pones la mno en la frente y no es capaz de tocarte, y así todos. Si Lex Luthor se metiera con Batman sí que iba a "cagar masilla".

Y ahora una selección de los mejores Batman de la red:



Y el grandioso y único disfráz de Batman, el que realmente nos dice: "Tú podrías ser Batman" es:

jueves, 19 de febrero de 2009

Evitar inicialización accidental de Informix

En mi opinión, una de las cosas que los señores de IBM debería corregir, cuando publiquen el esperado Infomix Cheetah, es el tema de la opción de inicialiación de las bases de datos con la opción -i del comando oninit.

Es relativamente fácil lanzar el comando oninit –i accidentalmente y perder las bases de datos, por lo que es recomendable enmascarar el programa oninit. Para esto renombraremos el comando oninit de $INFORMIXDIR/bin/oninit a $INFORMIXDIR/bin/oninit.cmd.

Luego creamos un script oninit que filtre el uso de la opción –i

# oninit
# Por CNG (www.trapallada.com).
#
# Script que enmascara el oninit de informix para
# evitar el oninit -i que inicializa la base de datos

ARGUMENTOS=""
LANZAR=1

while getopts ivyI opcion
do
case $opcion in
i) echo -e "\n   La opcion -i esta bloqueada para evitar inicializaciones"
echo "   accidentales de la base de datos. Utilice la opcion -I"
echo -e "   i mayuscula para inicializar la base de datos.\n"
LANZAR=0;;
v) ARGUMENTOS=v${ARGUMENTOS};;
y) ARGUMENTOS=y${ARGUMENTOS};;
I) ARGUMENTOS=i${ARGUMENTOS};;
esac
done

if ( test $LANZAR -eq 1 ) then
oninit.cmd -${ARGUMENTOS}
fi

Ordenar mis fotos por carpetas

Siempre he tenido un serio problema a la hora de organizar las fotografías en mi disco duro. Al principio volcaba todo en una misma carpeta, cosa que en cuestión de pocas descargas de la cámara, convertía la carpeta en algo totalmente invisitable. El segundo paso fue el crear carpetas con nombres descriptivos y guardar en ellas las fotografías, pero aún así la cosa era un infierno.

Las aplicaciones como Picasa, ACD See, PhotoMesa permiten gestionar bastante bien las fotografías, pero a mi, como buen usuario proviniente del MS-DOS al que le gusta saber dónde están las cosas en mi disco duro, y no perder el control sobre él, no acababan de convencerme.

Tras una breve incursión en el mundo del Linux, descubrí la aplicación f-Spot, que realizaba una clasificación en carpetas de las fotografías en función de los datos Exif de los archivos JPG.

Ya de vuelta al mundo Windows, y tras decantarme por Picasa, principalmente por su facilidad de uso (no para mi, sino para mi mujer), me encontré con mi eterno problema de clasificar las fotografías. Por lo que en ese momento me decidí a crear mi propio programita Java que clasifique en carpetas las fotografías a partir de sus datos Exif.

Lo primero de todo es obtener las fotografías de origen a partir de una ruta:

/*
* Por CNG (www.trapallada.com).
*/

/**
* Devuelve una colección con todos los ficheros JPG de una carpeta.
* Para obtener esa colección recorre recursivamente todo el árbol de
* directorios bajo la carpeta indicada.
* @param f File indicando la carpeta en la que realizar la búsqueda recursiva.
* @return Una Colección con todos los ficheros baja la carpeta pasada al método.
*/
private static Collection getFiles( File f ) {
Collection c = new ArrayList();
if ( f.isDirectory() ) {
File[] listOfFiles = f.listFiles();
for (int i = 0; i < listOfFiles.length; i++) {
c.addAll( getFiles( listOfFiles[i]) );
}
} else {
JFileChooser chooser = new JFileChooser();
if ( chooser.getTypeDescription(f).equals("Archivo JPG") ) c.add(f);
}
return c;
}

A partir de la colección de ficheros JPG, y mediante la librería metadata-extractor, yo he usado la versión 2.3.1, podemos generar un nuevo nombre de fichero y mover el archivo original de la colección obtenida a su destino definitivo.

// Por CNG (www.trapallada.com).
try {
String salida = "D:/Mis documentos/Mis imágenes/preImportado";
String entrada = "D:/CarpetaOrigen";

Collection files = getFiles( new File(entrada) );

Iterator itFiles = files.iterator();
while ( itFiles.hasNext() ) {
File ficheroJpg = (File) itFiles.next();
try {
Metadata metadata = JpegMetadataReader.readMetadata( ficheroJpg );
Directory exif = metadata.getDirectory( Class.forName("com.drew.metadata.exif.ExifDirectory") );

Calendar fecha = Calendar.getInstance();
try {
fecha.setTime( exif.getDate( ExifDirectory.TAG_DATETIME_ORIGINAL ) );
File toFile = new File( salida + "/" + fecha.get( Calendar.YEAR ) + "-" +
Formateador.fill( new Integer( fecha.get( Calendar.MONTH ) + 1 ).toString(),
'0', 2, Formateador.IZQUIERDA ) + "/" +
ficheroJpg.getName() );
Ficheros.moveFile( ficheroJpg, toFile);
}
catch ( MetadataException j ) {
System.out.println("ERROR: " + ficheroJpg.getName() );
}
} catch ( JpegProcessingException e ) {
e.printStackTrace();
}
}
}
catch ( Exception e )
{
e.printStackTrace();
}
}

Nota: El método Formateador.fill tiene el siguiente javadoc:
/**
* M&amp;amp;amp;amp;eacute;todo que devuelve la cadena rellena con el caracter "caracterRelleno", hasta
* ocupar "longitud" posiciones, desde el lado indicado.
*
* @param cadena: Cadena a ser formateada
* @param caracterRelleno: Caracter con el que se va a rellenar
* @param longitud: Indica la longitud de la cadena resultante
* @param lado: nos indica en que lado situar los caracteres de Relleno
* @return Cadena rellena
*/
Nota 2: No creo que haga falta explicar lo que hace el método Ficheros.moveFile.

miércoles, 18 de febrero de 2009

Cargador de móvil universal... ¡Por fin!

En un cajón de mi casa, almaceno un montón de cables de cargadores, ¿y por qué los almaceno? Pues no lo se. La verdad es que en contadas ocasiones he podido reutilizar un cargador de móviles. Que si los extraños conectores de Ericsson, los de patilla gorda de Nokia, los planos de Siemens, los de Motorola, similares a los de Nokia pero incompatibles, los de patilla fina de Nokia... y así hasta el infinito.

Pero por suerte, para todos los que sufren el mismo problema que sufro yo, parece que al podremos ver la luz al final de túnel. Al parecer una asociación de diferentes fabricantes de teléfonos móviles, ha decidido implantar un único modelo de conector de carga para todos sus productos. El conector elegido es el Micro-USB, aunque el artículo de la GSM Association no especifica si será el Micro-USB AB o el Micro-USB B. En cualquier caso la noticia es buena, ya que GSMA engloba el 84% del mercado de las comunicaciones móviles.

Curiosamente, una de las "estrellas" de los últimos tiempos en el mundo de la telefonía móvil el iPhone de Apple, en principio queda fuera de este acuerdo, y es que al parecer no tienen intención ninguna de unirse al grupo de empresas que implantarán el conector único. Otra razón más para incrementar la tiña que le tengo a empresa de la manzanita.

En cualquier caso la noticila la teneis en el portal de GSMA.

jueves, 12 de febrero de 2009

Obtener los campos SERIAL de Informix tras un INSERT



Problema:

Tras hacer un INSERT en una tabla de Informix que contiene campos del tipo SERIAL nos encontramos con que tras realizarlo, tenemos todos los datos del registro excepto los autogenerados por la base de dato.

Solución:

// Por CNG (www.trapallada.com).
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;

String queryString = "INSERT INTO " + TABLA + " (" + CAMPOS +
") VALUES ( ?,?,?,? )";
preparedStatement = conn.prepareStatement(queryString,
Statement.RETURN_GENERATED_KEYS);

int i = 1;
// El primer campo de la tabla es SERIAL
preparedStatement.setInt(i++, 0);
preparedStatement.setString( i++, vo.getCampo2() );
preparedStatement.setString(i++, vo.getCampo3() );
preparedStatement.setString(i++, vo.getCampo4() );

int insertedRows = preparedStatement.executeUpdate();
resultSet = preparedStatement.getGeneratedKeys();

resultSet.next();
vo.setCampo1( resultSet.getInt(1) );

En el momento de crear el PreparedStatement incluimos el parámetro Statement.RETURN_GENERATED_KEYS para indicarle a la aplicación que recupere los valores de los SERIAL generados por la base de datos.

Tras ejecutar el INSERT, se recupera un ResultSet con los campos SERIAL generados con el método getGeneratedKeys() del PreparedStatement.

Tras eso, accedemos al ResultSet para obtener los valores.

martes, 10 de febrero de 2009

Necesito un Traductor

Es es lo primero que he pensado ayer al hablar un rato con mi hija mayor, que va a cumplir dos años el próximo lunes.

La verdad es que me está bien, por preguntarle qué quería de regalo de cumple, cosa a la que ella contestó:

sanitos, ajules, coluto ajul y lalito



Bueno, realmente primero dijo sanitos, luego, tirandole un poco más de la lengua añadió ajules y así sucesivamente.

Actualizazación: La verdad es que no hay nada como dormir un poco para que se te acalaren las ideas. Ya he sido capaz de entender el mensaje:

  • Sanitos: Gusanitos

  • Ajules: Plastelina

  • Coluto ajul: Columpio azul

  • Lalito: Regalito


En cualquier caso ya tengo lista con la que "currarme" el regalo de cumple.

viernes, 6 de febrero de 2009

Historias incompletas



La verdad es que uno, a la hora ve ver los informativos en la tele, oir las noticias en la radio o leerlas en la prensa, en la mayoría de los casos no es capaz de imaginarse la magnitud de aquello que está viendo u oyendo. Todo esto, además, se ha acentuado en los últimos años por la efimeridad de las noticias, llegando al punto de que una cosa que es noticia a las nueve de la mañana, deja de serlo antes de la hora de comer.

Hoy me he visto involucrado indirectamente en una de esas que uno no es capaz de entender en su totalidad, ni de adivinar el alcance de todo lo que implica. Relataré lo que me ha sucedido:

A media tarde me llamó un amigo para acudir a la inaguración de un restaurante cerca de casa, y mientras preparaba a las dos niñas, para que la abuela sólo tuviera que acostarlas, me sonó el teléfono, al coger el mismo, me fijé que el número llamante era un número oculto, cosa a la que no di importancia y respondí. Al otro lado de la comunicación una voz se me identificó como de la Policía, y me preguntó el cómo llegar hasta mi domicilio, ya que se tenían que pasar por él, dos agentes de la Policía Judicial. El corazón me dió un brinco, cosa que mi interlocutor notó y se apresuró a tranquilizarme: Me explicó que recientemente en Málaga había aparecido un bebé abandonado, y que a partir de la única pista que tenían, que era la pinza del cordón umbilical, y a través de los datos del fabricante de la misma, estaban realizando un control exhaustivo de todos los bebés nacidos durante el pasado mes de diciembre, con el fin de encontrar a la persona que abandonó a la criatura.

Pasada media hora, dos agentes de la Policía Judicial se personaron en casa para realizar la comprobación, no sin antes volvernos a explicar el motivo de su visita, con algún detalle más, como puede ser que el control que están llevando a cabo lo hacen a nivel de toda España. El Policía se asomó al moisés donde dormía Reyes y nos informó de que ya estaba todo listo.

Pero volvamos a la noticia en sí: "Aparece en Málaga un bebé de 6 semanas abandonado" (por ejemplo). ¿Qué cantidad de cosas hay detrás de esa noticia? Una madre asustada y/o desalmada que abandona a su hijo, una persona que lo encuentra, todas las personas de los servicios sociales que se ocupan de la criatura, policías, pediatras, jueces, investigadores, padres investigados, persona de centros sanitarios "interrogados"... Una simple noticia de una columna en una página impar implica el despliegue y la interacción de decenas de personas... Imaginemos ahora una noticia de portada.

miércoles, 4 de febrero de 2009

Cuando ser pistolero molaba



No me parece bién que a los miembros de ETA le llamen pistoleros, de hecho estoy harto de que en la prensa se utilice este término para hablar de simples asesinos.

Ser un pistolero es muy guay. Yo quería haber sido pistolero, quería ponerme un sombrero como el de Clint Eastwood y un cinturón con dos pistolas, montar a caballo con mi pañuelo rojo al cuello, dirigiendo el ganado por las estensas planicies de Texas. Dormir sobre el suelo con mi cabeza sobre la silla de montar, enfrentarme con mis pistolas a los cuatreros, forajidos y alguna vez los indios.

Pero ¿un llamar a etarra pistolero? Pues no, un etarra es un asesino, una sabandija, con perdones para estos  entrañables animalitos, la ez de la sociedad.

Pistoleros que lo sean los chavales, montados a lomos de las escobas de sus padres y con un palo torcido en la mano a modo de pistola.

lunes, 2 de febrero de 2009

Los Goya



Un año más la "industria" "cinematográfica" española se ha mirado el ombligo y ha repartido premios a imágen y semejanza de los "satánicos" Oscar de Hollywood, de quienes, aunque sea por oposición beben (véase la alfombra verde).

Acabo de leer en algún periodico la respuesta del público: Sr. y Sra. Smith, líder de audiencia.

Tras las constantes referencias en la "gala" a las descargas P2P, me gustaría saber qué porcentaje de las descargas de películas que se producen en España son debidas a películas españolas, y qué porcentaje son de pelícuas extranjeras.

Es como para recapacitar ¿no?

A mi personalmente, del cine español, rescataría cinco o seis películas. El resto, son francamente prescindibles, pero claro, hay que seguir financiando la "cultura" de los estómagos agradecidos amigetes de la progresía gobernante. ¡¡¡Es espectáculo debe continuar!!! ¡¡¡Más madera!!!