Consulta sobre navegadores antiguos

Hace unos días recibí un correo en el que se me planteaban varias cosas, y una muy interesante era el soporte de los navegadores antiguos en las nuevas páginas web:

Otra cuestión, hubo un ejercicio que mi hermano me paso para que le revisara porque no no le  funcionaba en ie inferior a 9, el caso es que me he puesto a ver una solución al problema y he encontrado una solución que no se si daras por valida,basicamente es quitar los media screen de los link , añadir estas dos lineas de codigo
<!– html5.js for IE less than 9 –>
<!–[if lt IE 9]>
<script src=”http://html5shim.googlecode.com/svn/trunk/html5.js”></script>
<![endif]–>

<!– css3-mediaqueries.js for IE less than 9 –>
<!–[if lt IE 9]>
<script src=”http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js”></script>
<![endif]–>

Mi respuesta fue:

Lo que me has mandado es un “hack” para que un código funcione en navegadores antiguos. Aunque hay gente que defiende estas soluciones, para mí tienen sentido hasta un límite. El seguir dando soporte a navegadores antiguos lo único que hace es que la gente siga usando esos navegadores antiguos. Existiendo numerosas alternativas gratuitas, no encuentro ninguna razón de peso para que alguien siga usando Internet Explorer 6, 7, 8, o incluso 9. Son navegadores muy malos, que lo único que hacen es detener el avance de la Web.

Sólo se me ocurren dos situaciones en las que tiene sentido seguir usando esos navegadores, y en ambos casos, no creo que las razones sean de peso:

1. Un ordenador antiguo con un sistema operativo antiguo. Seguramente se podrá encontrar alguna alternativa a Internet Explorer que funcione en ese ordenador y que sea mejor que Internet Explorer. Por poner un ejemplo concreto, Mozilla Firefox 20, la última versión funciona en Windows XP. Alguien podría decir “yo es que tengo Windows 95”, pero entonces no vas a tener un problema sólo con Mozilla Firefox, tienes un problema con todo el software que quieras utilizar.

2. Un ordenador en un entorno corporativo (una empresa, la administración pública), donde está muy controlado el tipo de software que se puede instalar y se sigue usando Internet Explorer 6 (7, 8, 9) por razones de seguridad o de compatibilidad con aplicaciones internas. En primer lugar, lo de la “seguridad” es una falacia: cuanto más antiguo un navegador, más problemas de seguridad presenta. Por otro lado, el tema de la compatibilidad justo se origina por utilizar navegadores “malos”: las páginas están mal hechas para que funcionen bien con navegadores malos, por lo que con navegadores buenos funcionan mal. En algún momento se debe romper este círculo vicioso que sólo te lleva a seguir haciendo las cosas mal. Por otro lado, si es un ordenador de una empresa, ¿qué hace la gente navegando por Internet en su horario de trabajo? Pero si navegar por Internet es parte de su trabajo (yo lo hago, para mí Internet es una herramienta de trabajo), entonces que doten al ordenador con el software apropiado para navegar por la Web actual.

En cualquier caso, es bueno saber que existen esos “trucos”, pero es mejor no abusar de ellos.

Una introducción a los sistemas de tipado de los lenguajes de programación

Muy interesante el artículo que se publicó hace unos días en Smashing Magazine: An Introduction To Programming Type Systems.

El el artículo aparece la siguiente tabla resumen:

Weak with no typing Assembly languages don’t provide any way of specifying or checking types at all. Everything is just a number.
Weak static typing C lets you define object types as structures, but it doesn’t do much to enforce or remember them. C automatically convert between many types. C++ and Objective-C go further with the definitions but still don’t enforce the resulting types.
Strong static typing Java forces you to define all types and checks them with a virtual machine.
Strong dynamic typing Python, JavaScript and Ruby dynamically infer the types of objects, instead of forcing you to define them, and then enforce those types when the program runs in the interpreter. All dynamically typed languages need a strong typing system at runtime or else they won’t be able to resolve the object types.
Weak dynamic typing Dynamically inferred types don’t work in a weakly typed language because there aren’t any types to infer.

Sobre la navegación web

Navigation isn’t just a feature of a web site; it is the web site, in the same way that the building, the shelves, and the cash registers are Sears. Without it, there’s no there there.

Traducción:

La navegación no es sólo una característica de un sitio web, es el sitio web, de la misma manera que el edificio, los estantes, y las cajeras son Sears [Carrefour]. Sin ella, no hay allí allí.

Don’t Make Me Think! Second edition. Steve Krug. New Riders, 2006.

¿Qué esconde la web del Congreso?

Hace unos días, al intentar validar el HTML de la web del Congreso de España, me encontré con este error:

El error decía:

Sorry, I am unable to validate this document because on line 34 it contained one or more bytes that I cannot interpret as utf-8 (in other words, the bytes found are not valid values in the specified Character Encoding). Please check both the content of the file and the character encoding indication.

The error was: utf8 “\xF3” does not map to Unicode

¡Qué error más extraño, nunca había visto nada parecido!

Me pongo a analizar el tráfico HTTP y no consigo ver qué está pasando: hay una redirección, de http://www.congreso.es cambia a http://www.congreso.es/portal/page/portal/Congreso/Congreso, pero no aparece ninguna cabecera HTTP que haga la redirección. Además, en el validador del W3C la primera página es incapaz de validarla, la segunda sí que la valida, aunque tiene un montón de errores.

¿Qué está pasando?

Me hago un pequeño programa con la librería CURL para descubrir el misterio, lo primero que devuelve la web del Congreso es esto:

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”content-type” content=”text/html; charset=UTF-8″>
<title>Congreso de los Diputados</title>
<link href=”css/congreso.css” rel=”stylesheet” type=”text/css”>
<!– link href=”css/portada.css” rel=”stylesheet” type=”text/css” –>

</head>
<body>
<script type=”text/javascript”>
window.location=”/portal/page/portal/Congreso/Congreso”
</script>
<noscript>
<div id=”CONGRESO”>
<div id=”CABECERA”>
<h1><a href=”/portal/page/portal/Congreso/Congreso”><img src=”img/logo.gif” alt=”Congreso de los Diputados” border=”0″></a></h1>
<div class=”separador”></div>
<div class=”fincabecera”>&nbsp;</div>
</div>
<div id=”noscript_portada”>
<p>Estamos trabajando en la accesibilidad del sitio Web del Congreso. Actualmente es necesario tener activado javascript para poder acceder a alguno de nuestros contenidos.</p>
<p>Disculpe las molestias. </p>
<p><a href=”/portal/page/portal/Congreso/Congreso”>Entrar en congreso.es </a></p>
</div>
<div id=”PIE”>
<div class=”infoPie”>
<div class=”direccion”>
<p class=”txt_direccion”> <span lang=”es”>Congreso de los Diputados</span><br/>
C/Floridablanca s/n – 28071 – MADRID<br/>
Copyright 2007. Todos los derechos reservados </p>
</div>
<div class=”telefono”>
<p class=”sin_ico”>Información general:</p>
<p class=”ico_tel”>Tel: 91 390 60 00</p>
<p class=”ico_fax”>Fax: 91 429 87 07</p>
</div>
<div class=”visitas”>
<p class=”sin_ico”>Visitas guiadas de grupos:</p>
<p class=”ico_tel”>Tel: 91 390 65 25 / 26</p>
<p class=”ico_fax”>Fax: 91 390 64 35</p>
</div>
</div>
</div>
</div>
</noscript>
</body>
</html>

¿Qué es esto? Es la siguiente página:

Esta página aparece sólo si tienes JavaScript desactivado, si lo tienes activado, entonces se ejecuta lo siguiente, que es lo que realiza la redirección:

<script type=”text/javascript”>
window.location=”/portal/page/portal/Congreso/Congreso”
</script>

¡Qué locura!

Y por cierto, la línea 34, la línea que el validador dice que tiene un carácter erróneo, es esta:

<p>Información general:</p>

¿Cuál es el problema? El problema es que en el “meta charset” pone UTF-8, ¡pero el fichero no está codificado en UTF-8!

20 años de Mosaic

Hace 20 años, Marc Andreessen anunciaba la publicación de NCSA Mosaic 1.0 para X Window System. A partir de este momento, la Web empezó a hacerse muy popular, ya que Mosaic fue el primer navegador web gráfico que estuvo disponible para diferentes sistemas operativos.

En mis vídeos Historia de los navegadores web (parte 1):

[kml_flashembed movie=”http://www.youtube.com/v/v_466xI3bZ8″ width=”560″ height=”315″ wmode=”transparent” /]

e Historia de los navegadores web (parte 2):

[kml_flashembed movie=”http://www.youtube.com/v/L5kM3GKrPa4″ width=”560″ height=”315″ wmode=”transparent” /]

puedes aprender varias cosas sobre la historia de los navegadores web y sobre Mosaic.

También te recomiendo la lectura del artículo April 22, 1993: Mosaic Browser Lights Up Web With Color, Creativity, y si quieres, te lo puedes descargar y probar por ti mismo.

La universidad se hunde

Ayer se publicó en el periódico El País el editorial Parón universitario. A la universidad española le están apretando mucho el cinturón… y dentro de poco ya no podrá respirar.

Muchos gobiernos y empresas ven muchos gastos simplemente como GASTOS (por no llamarlo “pérdidas”), en vez de como inversiones. Por ejemplo, ya no ocurre tanto, pero todavía hay empresas que ven el gasto en informática (en todos los sentidos, en hardware y software, en equipamiento y en presencia en Internet, en formación en las nuevas tecnologías,  etc.) como un GASTO, más o menos inútil, que se tiene que hacer pero que no reporta muchos beneficios. Sin embargo, hay otras empresas que lo ven como una INVERSIÓN que va a mejorar la eficiencia en el trabajo y va a producir un retorno de inversión (ROI) y, por tanto, va a conducir a una mejora de los beneficios. Recuerdo a un empresario con el que trabajé que siempre estaba pensando en cómo mejorar el funcionamiento de su empresa gracias a la informática.

Muchos gobiernos ven la educación y la sanidad como un gasto, un gasto casi “inútil” que se tiene que hacer para tener contentos a los ciudadanos o para poder apelar a eso que llaman “el estado del bienestar”.

Respecto a la educación, su retorno de inversión está muy, pero que muy alejado en el tiempo, desde la perspectiva de un político, que sólo mide las cosas en plazos de cuatro años.

La educación obligatoria son 10 años, de los 6 a los 16 años. Pero si se incluye la educación infantil (pongamos a partir de los 3 años), y el bachillerato y la universidad, una persona necesita mínimo 20 años para formarse (y aún se podrían añadir los años de másteres y doctorado). Es decir, si ahora se aplicase una nueva política educativa, con su correspondiente “gasto”, hasta dentro de 20 años no tendríamos a la primera persona que ha completado todo el nuevo proceso educativo y no podríamos saber realmente cuál ha sido el resultado de esa nueva política.

La educación es un árbol que da sus frutos pasados muchos años. El gasto en educación en España no estaba situado entre los mejores antes de la crisis (Gasto público en educación según el Banco Mundial), así que el impacto del recorte actual va a ser mucho mayor de lo que se podría esperar. Sin embargo, hay gente que defiende todo lo contrario (Tres falsos mitos sobre el gasto educativo).

En unos años empezaremos a recoger lo que se está sembrando ahora.

El cambio del nombre de los ministerios

Hace unos días se publicó en el periódico El Mundo la noticia El Gobierno gastó más de 100.000 euros en cambiar los nombres de los ministerios.

Esto del cambio de los nombres de los ministerios es algo que siempre me ha llamado la atención, porque considero que es una completa estupidez. Lo importante no es cómo se llame un ministerio, sino lo que haga.

Por ejemplo, en Estados Unidos, tienen 15 departamentos (ministerios), que conservan a lo largo de muchos años. El último que se formó fue Homeland Security, en el año 2002, a raíz de los atentados del 11/S, y el anterior fue Veterans Affairs, en 1989. Sin embargo, en España, en nuestros poco más de 30 años de democracia, los cambios han sido constantes.

En un par de vídeos que tengo reflejo esta fascinación que me produce este cambio de nombres.

En el minuto 10:58 de El impreso de denuncia del Ministerio de Sanidad, de risa, comento los cambios de nombre de este ministerio:

[kml_flashembed movie=”http://www.youtube.com/v/P_2UlbHv42U” width=”560″ height=”315″ wmode=”transparent” /]

En el minuto 1:40 de Errores web: Formulario de búsqueda en dominios.es, comento los cambios de nombre del Ministerio de Industria (Energía y Turismo):

[kml_flashembed movie=”http://www.youtube.com/v/IZdq_nknfTQ” width=”560″ height=”315″ wmode=”transparent” /]

¡Viva la estupidez y el gasto inútil!

Las instrucciones deben morir

The other major source of needless words is instructions. The main thing you need to know about instructions is that no one is going to read them -at least not until after repeated attempts at “muddling through” have failed. And even then, if the instructions are wordy, the odds of users finding the information they need is pretty low.

Traducción:

La otra fuente importante de palabras innecesarias son las instrucciones. Lo más importante que necesitas saber acerca de las instrucciones es que nadie las va a leer -al menos no hasta después de que reiterados intentos de “salir del paso” hayan fracasado. Y aun así, si las instrucciones son muy prolijas, las posibilidades de que los usuarios encuentren la información que necesitan son bastante bajas.

Don’t Make Me Think! Second edition. Steve Krug. New Riders, 2006.