viernes, 28 de marzo de 2008

La pesadilla de los programadores y diseñadores

Nos contaba hace un par de días Blanca Salvatierra en un artículo la existencia de una página web que instaba a los usuarios del navegador Internet Explorer 6 a actualizarse o cambiar de navegador.

Realmente es un dolor tener que desarrollar páginas web que se vean bien en todos los navegadores. Aunque la mayoría de los diseñadores y programadores ya se saben los "trucos" para conseguirlo, no deja de ser una gran pérdida de tiempo y esfuerzo.

A día de hoy, los lectores de Público.es utilizan cinco navegadores principalmente (porcentajes aproximados): Internet Explorer 7 (~ 30 % de los usuarios) , Internte Explorer 6 (~ 30%), Mozilla Firefox (~ 30%), Apple Safari (~ 2%) y Opera (~1%).

De estos cinco navegadores, el Internet Explorer 6 (abreviado como IE6) es el menos compatible, para que una página que se ve bien en el resto se vea en IE6 muchas veces hay que recurrir a trucos y "chapucillas".

¿Cómo puede ser ésto? Las páginas web actualmente se basan (principalmente) en tres "lenguajes" con funciones diferenciadas, todos ellos estandarizados por organizaciones de internacionales: HTML, CSS y JavaScript.
El lenguaje HTML es el que contiene el texto o contenido significativo de una página web, el CSS se encarga de formatear y dar estilo a este texto. Finalmente, con JavaScript podemos hacer que el usuario interaccione con una página web de diferentes formas.

El problema es que en teoría todos los navegadores soportan estos tres lenguajes, pero en la práctica, cada uno lo hace a su manera, y de todos ellos, el IE6 es el que más extraño se comporta.

Supongamos que tenemos el siguiente fragmento de HTML (simplificado):

Prueba con HTML





Título del documento





Listado de palabras



  • Palabra 1

  • Palabra 2

  • Palabra 3

  • Palabra 4

  • Palabra 5




Esto es un párrafo de texto, párrafo de texto,
párrafo de texto,párrafo de texto, párrafo de texto,
párrafo de texto, párrafo de texto.
Esto es otro párrafo de texto, párrafo de texto,
párrafo de texto, párrafo de texto, párrafo de texto,
párrafo de texto, párrafo de texto.



Esto es un texto en el pie de la página.





Este documento se vería así en los distintos navegadores (pulsar para ampliar):

Captura navegadores sin estilos

No hemos especificado ningún estilo, así que los navegadores formatean el texto como les parece, aunque el resultado es muy parecido en todos los casos.

Ahora establecemos que este HTML utilice el siguiente CSS que lo formateará. Este CSS es bastante ingenuo, ya que no tiene en cuenta las peculiaridades de los distintos navegadores. Lo que pretende es establecer una página centrada, con una cabecera gris, un cuerpo azul con dos columnas, verde y amarilla y un pie de página rojo:
#contenedor {
border: solid 1px black;
padding: 10px;
width: 750px;
margin: 0 auto;
}
#cabecera {
background-color: gray;
width: 730px;
}
#cuerpo {
background-color: blue;
width: 730px;
}
#pie {
background-color: red;
width: 730px;
}
#colizda {
width: 180px;
background-color: green;
float: left;
padding: 10px;
}
#coldcha {
width: 510px;
background-color: yellow;
float: left;
padding: 10px;
}

Las diferencias entre navegadores son notorias:





















ff-antes.pngMozilla Firefox
opera-antes.pngOpera
safari-antes.pngSafari
ie7-antes.pngExplorer 7
ie6-antes.pngExplorer 6

Hacemos algunos ajustes adicionales conseguimos al fin que en todos se vea igual:
body {
/* Para centrar en IE6 */
text-align: center;
}
p, ul {
margin: 0;
padding: 0;
}
ul {
list-style: none;
}
#contenedor {
margin: 0 auto;
width: 770px;
}
#contenido {
border: solid 1px black;
padding: 10px;
width: 750px;
/* Para expandir la capa hacia abajo en
Safari, Opera y Firefox */
float: left;
/* Para compensar el apaño de IE6 en body */
text-align: left;
}
#cabecera {
background-color: gray;
float: left;
width: 750px;
}
#cuerpo {
background-color: blue;
float: left;
width: 750px;
}
#pie {
background-color: red;
float: left;
width: 750px;
}

Y éste es el resultado:





















ff-despues.pngMozilla Firefox
opera-despues.pngOpera
safari-despues.pngSafari
ie7-despues.pngExplorer 7
ie6-despues.pngExplorer 6

Lo más chocante es que para que en IE6 se vea la página centrada tenemos que establecer una propiedad ilógica: que el texto en la etiqueta "body" esté centrado (text-align: center;)
Por otra parte, los dos Internet Explorer expanden y muestran la capa contenedora de las columnas (fondo azul), mientras que en los demás hay que hacerla visible explícitamente.

En general el comportamiento de IE7, Firefox, Opera y Safari es muy similar, los problemas siempre los suele dar el IE6.

Se comprende entonces que los diseñadores de páginas web estén hartos del Explorer 6 y su peculiar forma de interpretar los estándares.

Créditos: gracias a Daniel Solana Tacón, diseñador web de Público por ayudarme con estos CSS.

lunes, 24 de marzo de 2008

La máquina del tiempo

¿Cómo eran las páginas web más conocidas hace unos años? ¿Es posible recuperar el contenido de un sitio web ya desaparecido?

Existe un sitio web que se dedica a "archivar" páginas web a lo largo del tiempo. Se trata de archive.org y su herramienta "WayBack Machine" (o máquina del tiempo).
Es muy curioso ver cómo ha ido evolucionando el diseño de las páginas web (anchos de pantalla, tipografías, maquetación, ...) a lo largo de los años.

Les dejo algunas muestras:











Yahoo, 1997Google, 1998El Pais - El Mundo, 1996
Yahoo, 1997Google, 1998El País y El Mundo, 1996

lunes, 10 de marzo de 2008

La lacra del “spam”

spam-en-el-blog.pngTras una semana con el "blog" prácticamente desatendido, me he encontrado hoy con bastantes comentarios "spam". Hasta ahora no tenía un sistema de validación en los comentarios, pero me veo obligado a habilitarlo para remediar en lo posible la aparición de estos comentarios basura.

El "spam" se ha convertido en una pesadilla para los administradores de sistemas y desarrolladores de "software". Satura servidores de correo y servidores web, resta valor y legibilidad a la información que se puede leer en una página web, inunda nuestros buzones de correo, ...

Cada vez que se inventa una solución, al poco tiempo los "spammers" encuentran una forma de saltársela.
El ejemplo más claro son las CAPTCHAs (esas letras aleatorias deformadas que hay que rellenar para hacer comentarios). Hasta hace poco era uno de los métodos más seguros para evitar el envío automatizado de comentarios o de registrarse en un sitio web. Recientemente hemos podido leer que ya este método ha sido vulnerado para algunos de los sitios que generaban las CAPTCHAs más eficientes (Gmail, Windows Live Mail y otros).

Parece que el "spam" es un negocio muy rentable, si no, no se entiende el esfuerzo y las horas de programación que conlleva el desarrollo de técnicas para evitar los sistemas "anti-spam". A algunos/as nos parece bastante increíble, pero todavía hay personas que deben pinchar en los enlaces que vienen en el correo basura.

lunes, 3 de marzo de 2008

Microsoft nos hace un regalo envenenado

En las pasadas semanas Microsoft nos ha sorprendido con dos noticias bastante inusuales en ellos: la publicación de las especificaciones técnicas de los formatos de archivo de Office y la apertura del código fuente de sus programas.

A primera vista puede sorprender este cambio de rumbo, pero pensándolo un poco más, en mi opinión, se ve claramente la intención de Microsoft: evitar más sanciones por prácticas monopolísticas y conseguir que su nuevo formato de documento, Open XML, sea aprobado por la ISO* (a finales de marzo de 2008 se tomará una decisión).

¿Qué puede suponer para los usuarios finales esta decisión de Microsoft? En principio, son buenas noticias, puesto que los programas competidores de Microsoft Office pueden mejorar mucho conociendo exactamente cómo es el formato de los archivos de Office. Hasta ahora este conocimiento se hacía por ingeniería inversa, generalmente, es decir, adivinando o suponiendo cómo era este formato.
Si los programas ofimáticos mejoran su capacidad de tratar con los archivos de Office será algo bueno para los usuarios: no tendremos que estar "atados" a los productos de Microsoft.

En la práctica puede que este regalo no sea tan bueno: ahora Microsoft tiene la excusa perfecta para embrollar a voluntad sus especificaciones sin poder ser acusada de monopolista, puesto que, a pesar de ser públicas, estas especificaciones son tan complejas y extensas que pocos desarrolladores o companías podrán implementarlas con la rapidez necesaria para no perder usuarios. Por otra parte, si todos los productos ofimáticos fuesen capaz de tratar con el formato de Microsoft, esto supondría la desaparición total de otros formatos (en realidad esto ya es casi así: pocas personas conocen otros formatos que no sean los omnipresentes .doc, .xsl, .ppt y familia).

En un mundo ideal, todas las compañías de software tratarían de desarrollar productos compatibles, y antes del Open XML de Microsoft ya teníamos el Open Document Format, un formato de archivos ofimáticos libre, estandarizado y apoyado por multitud de compañías y organizaciones.

*: Organización Internacional para la Estandarización