Busca en simplementeJava

miércoles, 26 de enero de 2011

¡Malditos encodings!

No creo que haya ningún desarrollador que lleve un mínimo tiempo en esto que no se haya topado alguna vez con los encodings de los ficheros. ISO-8859-1, UTF-8, ...son nombres que nos ponen los pelos de punta cuando empiezan a dar problemas: páginas web que no se ven correctamente, nombres o direcciones que no se graban bien en la base de datos, ... ninguna de las tres capas de una aplicación se libra de esta plaga.

Como todo esto me lleva un tiempo dándome vueltas a la cabeza y además estas semanas he vuelto a toparme de bruces con la cruda realidad de los encodigs he decidido investigar un poco y descubrir la historia de estos queridos enemigos nuestros.

Así que armado de un buscador decidí descubrir a quién se le había ocurrido por primera vez la 'fantástica' idea. La realidad es que el primer resultado de google me convenció de que sería inútil buscar al autor primigenio, pero al menos me permitió localizar al primero que lo aplicó a gran escala.

A pesar de lo que el nombre del código Morse indica este no fue inventado por Samuel Morse, aunque sí patentado, si no por Alfred Vail mientras desarrollaban conjuntamente el telégrafo en 1840, un claro ejemplo de lo injusta que es la historia. Es fácil visualizar como ambas mentes pensantes le daban vueltas a la cabeza para imaginar una posible utilidad de los rudimentarios telégrafos de los que disponían. La idea de Alfred fue aprovechada por Samuel, se ve que tenía una mejor visión comercial que su compañero.

El alfabeto morse codifica los caracteres del alfabeto latino y las cifras del 0 al 9 y durante un tiempo fue la principal forma de comunicación a larga distancia tanto a través de cables como usando la radio. De hecho hasta hace relativamente poco tiempo era obligatorio pasar un exámen de código morse para conseguir la licencia de radioaficionado.

El primer alfabeto digital fue el código Baudot propuesto en 1870 y [se ve que Émile
era más avispado que Alfred] patentado cuatro años más tarde. Se trata de un código de cinco bits que además añadía innovaciones tan importantes como códigos para valores nulos, espacios, retornos de carro, fin de línea... ¿a que os va sonando? Si os fijáis además los caracteres del código están organizados según un teclado tipo qwerty como a los que estamos acostumbrados hoy en día. Esta y otras innovaciones dejaron obsoleto el telégrafo y pasaron a lo que sería el último grito en comunicaciones, el teletipo.

El teletipo aportaba muchas innovaciones: alfabeto digital, comunicación no-atendida,
gran volumen de comunicación, ... de hecho fue el gran líder en comunicaciones durante buena parte del pasado siglo XX. Otra de las innovaciones curiosas fue el uso de impresoras de cintas perforadas que además permitían ser leídas por otras máquinas, un primitivo precedente de nuestros dispositivos de almacenamiento masivo.

Estos son sólo los primeros, no he incluído algunos interesantes como el "night writing" de Barbier, predecesor del alfabeto Braille porque no han tenido impacto en la computación.

En otra entrada contaré el lío que se montó en los años sesenta del siglo pasado y cómo no se ha resuelto [y sólo parcialmente] hasta hace bastante poco.

domingo, 23 de enero de 2011

Presentación

Una de las cosas que creo que tienen en común todos los desarrolladores del mundo es que acabas desarrollando una especie de Síndrome de Estocolmo con el lenguaje en el que trabajas. A pesar de todos los quebraderos de cabeza que te puede provocar Java, .NET, Delphy o Haskell cualquier desarrollador de estos lenguajes defenderá las características del suyo frente a todos los demás como si le fuera la vida en ello.

En estas entradas espero plasmar el día a día de todos nosotros, habrá cosa muy javeras y otras que se puede aplicar a cualquiera que viva en este mundo. Entradas en las que expondremos soluciones a algunos problemas y otras en las que simplemente expresemos opiniones o las usemos para liberar un poco de la tensión que acumulamos todos los días.

Espero que sirva sobre todo para mi salud mental, pero si en algún momento esto ayuda a alguien o, al menos, alguien se siente identificado, estaré más que satisfecho de haber comenzado esta pequeñísima aventura.