lunes, octubre 26, 2009

Balance del fin de semana

2 Muertos:
  • Un celular
  • Un chip de celular
3 Heridos graves:
  • 2 interruptores
  • 1 paciencia
2 Heridos con daños internos:
  • 2 corazones
Y la sensación de querer eliminar el registro de muchas redes sociales, más la correspondiente limpieza de listados de mensajería instantanea.

martes, octubre 06, 2009

Leyendas urbanas de la informática 2: La placa era muy grande

Episodio 2) La placa era muy grande

Cuenta la leyenda, tal como llegó a los oídos de este humilde transcriptor, que en sus años mozos, un famoso personaje de la informática chilena se enfrentó a un singular problema de hardware.
Requería instalar una tarjeta adicional en el computador que usaba, y el conector de esta era un poco más grande que las entradas disponibles en la placa madre del computador. Para que puedan conceptualizarlo aquellos menos entendidos en esta materia, el resultado era el mismo que querer meter un VHS en la cassetera de un auto.

Aprovechando sus conocimientos de electrónica, analizó la situación, tomó una sierra, cortó el trozo "sobrante" del conector, puenteó algunas conexiones con cautín, soldadura y cable, e instaló exitosamente la placa en su computador. Y lo mejor de todo ¡funcionó!

Niños, no lo intenten en casa :-D

Por mi culpa, por mi gran culpa...

"Si tu fuiste quien hizo girar la rueda, no reclames porque va demasiado rápido."
Yo (probablemente)

Los a crédito de que, me los reservo para proteger a los no-tan-inocentes (incluyo mi propia integridad mental, sobretodo mental).

lunes, octubre 05, 2009

Java y la pesadilla del encoding: Invalid byte 2 of 2-byte UTF-8 sequence

Advertencia: Nota sin relevancia para el lector casual. Acepto saludos, completos y cervezas.

Haciendo unas validaciones de Schema contra ciertos XML que estoy recibiendo me enfrenté a un error recurrente:
Invalid byte 2 of 2-byte UTF-8 sequence

Lo peor de todo es que a simple vista no había nada extraño o fuera de lugar en el XML. Después de realizar algunas pruebas y de buscar en Google, di con la respuesta. Lo que sucede es que se gatilla este error cuando la codificación del archivo no concuerda con lo especificado en la cabecera del XML, ie: si mi cabecera dice
< ?xml version="1.0" encoding="UTF-8"? >
se esperará que el archivo efectivamente este almacenado como UTF-8.

Dado eso sospeché que el archivo estaba en otra codificación, como por ejemplo WINDOWS-1252, o ISO-8859-1, cambié la definición a ISO, y funcionó sin problemas. El truco para asegurarse de ser consistente con los encodings es:
  • O pasar el parámetro -Dfile.encoding=UTF-8 (en mi caso era UTF-8) como parámetro del comando java
  • O rescatar los Strings especificando la codificación de caracteres, y guardando los archivos como ByteStreams especificando el encoding.
No en vano dicen que el encoding es uno de los monstruos y pesadillas de los desarrolladores de software.

Referencia: http://www.biglist.com/lists/xsl-list/archives/200702/msg00044.html