30 años de la World Wide Web

Se supone que el 12 de marzo de 2019 se cumplieron los 30 años de la World Wide Web. Eso podemos leer en La Red de Redes cumple 30 años: surfeamos por la historia de la autopista de la información y en otras páginas similares que se han publicado durante este mes de marzo:

Se cumplen 30 años de una de las creaciones llamadas a cambiar la civilización occidental tal y como la conocemos. Hablamos de la World Wide Web (WWW), un proyecto global de hipertexto que ha permitido por primera vez al mundo trabajar conjuntamente en la Red de Redes. ¿Y qué nos ha traído este avance tecnológico que se ha comparado, por su alcance, a la imprenta? ¡Encended vuestros módems, que vamos a surfear por la historia de la autopista de la información!

Bueno, realmente no nació entonces, más bien nació en 1990 o 1991. Lo que ocurrió el 12 de marzo de 1989 es que Tim Berners-Lee presentó un informe con una idea que luego dio lugar a la Web:

Se habló por primera vez de este protocolo para la transferencia de hipertextos hace 30 años, cuando, el 12 de marzo de 1989, el investigador británico Tim Berners-Lee lo describió en un informe para el CERN.

[…]

La propuesta original de Berners-Lee tenía solo 20 páginas, pero esas 20 páginas han creado un mundo interconectado en el que lo global es cada vez más local. A Berners-Lee le debemos, pues, herramientas como la URL, el protocolo HTTP y el formato HTML, avanzando la tendencia un poco WTF de hablar en siglas en Internet, que es algo muy LOL. Como veis, estoy al tanto de las últimas tendencias.

En los siguientes artículos podemos leer más cosas sobre este tema:

Cómo crear una hoja de estilo para impresión

En How to Create Printer-friendly Pages with CSS se proporciona un excelente análisis. Se indican estos escenarios en los que pueda ser necesario imprimir una página web:

  • printing travel or concert tickets
  • reproducing route directions or timetables
  • saving a PDF for offline reading
  • accessing information in an area with poor connectivity
  • using data in dangerous or dirty conditions — for example, a kitchen or factory
  • outputting draft content for pen annotations
  • printing web receipts for bookkeeping purposes
  • providing documents to those with disabilities who find it difficult to use a screen
  • printing a page for your colleague who refuses to use this newfangled t’internet nonsense.

El problema de todos los años

Todos los años planteo el mismo requisito a mis estudiantes, todos los años me encuentro que la mayoría lo hacen mal.

En una aplicación web, se tiene que realizar la comprobación de la credenciales (nombre de usuario, contraseña) para acceder al perfil del usuario. En una primera fase no hay base de datos, así que los datos de los usuarios están codificados en la propia página web.

Inicialmente les pedía que lo hicieran suponiendo que hay dos usuarios. Casi nadie almacenaba los datos de los usuarios en un array.

Después lo incrementé a tres usuarios, con la esperanza de que se dieran cuenta de que usando un array se escribe menos, el código es más legible y mantenible. La mayoría de los estudiantes lo seguían haciendo mal.

Después lo volví a incrementar a cuatro usuarios… todo seguía igual.

¿A cuántos usuarios lo tengo que incrementar para que piensen en utilizar un array?

Aquí dejo el fascinante código de uno de mis estudiantes:

 

if(!empty($_POST['usuario']) && !empty($_POST['pdw'])){



	$usuintro = ($_POST['usuario']);
	$contraintro = ($_POST['pdw']);

	$usu1 = "marcos111";
	$contra1= "marquitos111";

	$usu2 = "marcos222";
	$contra2= "marquitos222";

	$usu3 = "marcos333";
	$contra3= "marquitos333";

	$usu4 = "marcos444";
	$contra4= "marquitos444";


	if(strcmp($usuintro, $usu1) === 0){
		if(strcmp($contraintro, $contra1) === 0){
		
 	  		header('Location: usuario.php');	 
 	  		
 		}
 		else{
			
			echo'Usuario o contraseña incorrecto';
		}
	}
	
	if(strcmp($usuintro, $usu2) === 0){
		if(strcmp($contraintro, $contra2) === 0){
			
 			header('Location: usuario.php');
 		}
 		else{
			echo'Usuario o contraseña incorrecto';
		}
	}

	if(strcmp($usuintro, $usu3) === 0){
		if(strcmp($contraintro, $contra3) === 0){
		
			header('Location: usuario.php');
 		}
 		else{
			echo'Usuario o contraseña incorrecto';
		}
	}

	if(strcmp($usuintro, $usu4) === 0){
		if(strcmp($contraintro, $contra4) === 0){
		
			header('Location: usuario.php');
 		}
 		else{
			echo'Usuario o contraseña incorrecto';
		}
	}


	if(strcmp($usuintro, $usu1) !== 0){
		if(strcmp($usuintro, $usu2) !== 0){
			if(strcmp($usuintro, $usu3) !== 0){
				if(strcmp($usuintro, $usu4) !== 0){
			echo'Usuario o contraseña incorrecto';
				}
			}
		}
	}


}