martes, 24 de marzo de 2009

Internet Explorer 8: problemas en clase

El nuevo IE8 lleva unos días disponible en su versión definitiva, y, en la mejor tradición de los navegadores de Microsoft, ya nos está dando quebraderos de cabeza a los diseñadores y desarrolladores web.

Ésta es la página web de Público (www.publico.es) vista en algunos navegadores:





















firefox-homeopera-homesafari-home
Mozilla FirefoxOperaApple Safari
chrome-homekonqueror-homeie6-home
Google ChromeKonquerorMS Internet Explorer 6

Como pueden ver, la "cajita" con las previsiones metereológicas se ve bien, tres elementos que internamente son una lista que se crea dinámicamente con JavaScript y a los que se les ha dado estilo con CSS, alineándolos usando la propiedad float y eliminando el "bolo" que suelen tener las listas por defecto.

Todos los navegadores en los que hemos probado hasta ahora muestran este módulo correctamente, incluido el vetusto Internet Explorer 6.

Al probar la página en el nuevo IE8, nos hemos llevado una pequeña sorpresa:

ie8-sincompatibilidad.jpg La caja en las que se muestran las previsiones meteorológicas es como si no entendiese los estilos: los elementos de la lista no se muestran alineados horizontalmente y cada uno de ellos muestra el "bolo" típico de las listas. Podría pensarse que es un problema de los diseñadores, que no han sabido maquetar estos elementos correctamente, pero las reglas que han aplicado en este módulo son correctas.

ie8-concompatibilidad.jpgSin embargo, si activamos el botón de "Vista de compatibilidad", la página se muestra correctamente, como con los demás navegadores, incluido el predecesor, IE7.

Según la página web de Microsoft, "no todos los sitios web están preparados para IE8" -- el original es éste:
"Internet Explorer 8 is a new release and some websites may not yet be ready for Internet Explorer 8".

Tras una breve investigación, al final Rodrigo y Daniel encontraron el problema: IE8 parece que tiene algunas incompatibilidades con una de las librerías de JavaScript más usadas (Prototype), el atributo HTML "class" y la propiedad DOM "className".
Los demás navegadores trabajan bien con el mismo código JavaScript, IE8 no. ¿Quién lo está haciendo bien y quién lo está haciendo mal?

Hasta ahora teníamos que hacer los desarrollos y diseños con tres navegadores: IE6, IE7 y el  resto de navegadores. Ahora tendremos que incorporar otro. Por fortuna, ya hay trucos para forzar a IE8 para que se comporte como su antecesor.

martes, 3 de marzo de 2009

Las elecciones desde el punto de vista informático

Pasada la resaca electoral, les voy a contar un poco por encima cómo trabajamos y lo que hacemos cuando hay elecciones.

Lo habitual es contactar unas semanas antes con el organismo responsable y solicitar una acreditación. En las elecciones que hemos cubierto hasta ahora (Generales 2009, Galicia y País Vasco 2009) el mecanismo ha sido similar: el organismo nos facilita una página web de acceso restringido desde la cual podemos descargar los ficheros con los datos de los recuentos.

Por lo general, antes del día "D" se ofrece una simulación con datos de prueba para que los medios podamos comprobar que nuestros desarrollos funcionan.

El formato de los datos no es estándar, cada organismo ofrece el que mejor le parece. En las pasadas elecciones generales se nos ofrecían un fichero de texto (comprimido) con los datos del recuento a nivel estatal, autonómico y provincial y otro conjunto de ficheros (también comprimidos) con el desglose del recuento por municipios.

Con antelación se nos facilitó la documentación sobre el formato de estos ficheros (por ejemplo: campo 1, tres posiciones, código del municipio; campo 2, dos posiciones, provincia; ....; campo n, código del partido, campo n+1, votos, ...)

Por fortuna, en las elecciones gallegas han utilizado un sistema informático similar, que emitía ficheros de datos muy parecidos, así que gran parte del trabajo ya lo teníamos hecho. Variaba la forma de desglosar: a nivel autonómico, provincial, comarcal y por municipios.

El Gobierno Vasco facilitaba los datos en un fichero XML único, en el cual también se desglosaban los datos a nivel autonómico, provincial y por municipios.

Una vez que hemos escrito el programa o "script" que analiza estos ficheros de datos, lo más conveniente es guardarlos en una base de datos relacional y escribir las consultas contra esta base de datos.

Como los ficheros de datos se van actualizando cada poco tiempo, lo más práctico es dejar que la computadora haga ella sóla el trabajo. En el caso de los datos del País Vasco, la dirección y nombre del fichero de datos ha sido toda la noche la misma, con lo que pudimos dejar un "script" corriendo cada minuto mientras pedíamos una pizza.

Los ficheros de datos del recuento en Galicia cambiaban de nombre cada vez que se actualizaba el recuento. Esto nos obligó a hacer un poco de trabajo manual, aunque lo teníamos también "semi-automatizado": llamábamos a un "script" pasándole el nombre de fichero de datos y se disparaba la actualización.

Por otra parte, en la página web se iba mostrando una especie de "marcador" con los datos parciales, el porcentaje escrutado, etc. Obviamente, estos datos provenían de nuestra base de datos, pero no podíamos arriesgarnos a que cada página vista disparase una consulta a la base de datos: saturaríamos los (ya bastante congestionados) servidores rápidamente.

La solución que adoptamos fue la siguiente: un "script" generaba un fragmento de HTML (haciendo las pertinentes consultas) cada 30 segundos, lo escribía en un fichero y lo que la página web mostraba era este HTML "precompilado". Bueno, bonito y barato ;-)Por otra parte, el lunes por la mañana, previendo que íbamos a tener muchas consultas para buscar municipios, resultados por comarcas, etc, en las páginas de resultados, decidimos "cachear" o guardar los resultados de las consultas, ya que estaba todo escrutado. De esta forma nos ahorramos muchas consultas a la base de datos, que suele ser el cuello de botella de las aplicaciones web.

Si usted busca los resultados electorales de su pueblo y la página tarda un poco en mostrarle los resultados, está de enhorabuena: es usted la primera persona que busca los resultados de este municipio, y, además, los siguientes usuarios que busquen los resultados de este mismo sitio tendrán una respuesta mucho más rápida.

Espero que les haya interesado esta entrada. Si quieren que les cuente algo más, dejen un comentario. Contestaré lo que mejor pueda.

domingo, 1 de marzo de 2009

Links2

Links 2

Una agradable sorpresa: el navegador Links 2 es una pequeña maravilla que puede correr en ordenadores realmente antiguos. Vean mi Texas Instruments del año 1997 corriendo Debian Lenny y el navegador Links 2.

Por supuesto, nada de CSS, ni JavaScript, ni cosas así, pero para una emergencia, leer el Gmail en modo  HTML básico (funciona), consultar documentación, etc, es suficiente.

Tira nº 64: redes sociales



Ya que está tan de moda el asunto };->