Consejos para maquetar un formulario

En la maquetación de un sitio web, la maquetación de los formularios suele ser lo más complejo y a la vez lo más importante, ya que una mala maquetación de un formulario hará que el formulario sea muy difícil de utilizar. Guidelines for form layouts es una guía de Microsoft para maquetar formularios con un buen diseño. Algunos de los consejos más importantes son:

  • Sitúa las etiquetas de los controles (<label>) siempre de la misma forma en un formulario.
  • No coloques las etiquetas de los controles a la izquierda cuando haya una gran variación en la longitud de las etiquetas.
  • Coloca las etiquetas encima de los controles cuando el formulario tenga dos o más columnas.
  • Cuando un formulario sea muy largo, considera agrupar los controles en una misma página o incluso dividir el formulario en una secuencia de formularios.
  • Deja suficiente margen entre los controles de un formulario y entre los controles y los límites de la página web.

Mucha gente aprende MAL a hacer páginas web

En Obsolete practices to avoid podemos leer:

Many people learned HTML, CSS, and JavaScript by viewing the source of pages and then copying and pasting them, without considering whether or not the original site was well implemented. This means that they have perpetuated coding practices that might have been necessary in the past, but are irrelevant now.

Traducido al español:

Muchas personas aprendieron HTML, CSS y JavaScript mediante la visualización del código fuente de las páginas y luego copiaban y pegaban el código, sin tener en cuenta si el sitio web original estaba bien implementado. Esto significa que se han perpetuado prácticas de codificación que podrían haber sido necesarias en el pasado, pero que son irrelevantes ahora.

Juego de caracteres erróneo ¡en un mapa!

El juego de caracteres, la pesallida de los informáticos, me fascina. Claro, yo no nací sabiendo lo que era, pero una tarde, hace ya muchos años, después de haber sufrido esta pesadilla yo mismo tomé una decisión:

A Dios pongo por testigo… A Dios pongo por testigo de que no lograrán aplastarme. Viviré por encima de todo esto y cuando haya terminado nunca volveré a saber lo que es tener pesadillas por el juego de caracteres. No, ni yo ni ninguno de los míos, aunque tenga que estafar, que ser ladrona o asesina. A Dios pongo por testigo de que jamás volveré a tener pesadillas por el juego de caracteres.

Dicho y hecho, esa tarde me puse a buscar información sobre el juego de caracteres, me la estudié y… problema resuelto. Desde entonces me fascina descubrir que otros sigan sufriendo este problema.

Un amigo me ha mandado el plano de pistas de la estación de esquí de Sierra Nevada:

sierra-nevada-plano-01

El mapa pequeño de la esquina inferior derecha:

sierra-nevada-plano-02

Un detalle del mapa pequeño:

sierra-nevada-plano-03

“Piñata 1, Piñata 2, Panorámica 2, Peñones, La Peña”, todo mal escrito por culpa de un juego de caracteres erróneo.

Y así en miles de planos impresos que deben haber costado unos cuantos miles de euros.

Y bueno, del cotejamiento en la bases de datos, mejor ni preguntar.

¿Qué está fallando?

Lo siguiente es la fotografía de un fragmento de código de un estudiante:

ejemplo-codigo-alumnos

La asignatura que imparto es “Programación Hipermedia I”, asignatura obligatoria en el tercer curso del grado de ingeniería multimedia. Se supone que los estudiantes ya han tenido varias asignaturas sobre programación en primer y segundo curso. Se supone que cuando llegan a tercero ya saben programar. Sin embargo, en el código anterior podemos ver:

  1. Tienen tres sentencias if($_COOKIE && $_COOKIE) que claramente se podrían haber puesto como if-else-if.
  2. Emplean la función strtolower() para pasar a minúsculas algo que claramente ya está en minúsculas.
  3. En vez de almacenar los datos de los usuarios en un array y emplear un bucle para comprobar si los datos son correctos, los datos están mezclados con el código y se escribe una sentencia if de comprobación por cada usuario. ¿Qué pasaría si hubiese mil usuarios?

Y en realidad, este código, programado por dos estudiantes (cuatro ojos ven más que dos), pertenece a una práctica que me sorprendió porque estos estudiantes habían sido los únicos que habían comprobado que los datos recuperados de la cookie eran válidos a la hora de restituir la sesión de un usuario (la típica opción “recordar en este equipo”).

¿Cómo puede explicar conceptos avanzados de programación web si la mayoría de mis estudiantes no son capaces de escribir correctamente unas sentencias básicas?

Cómo crear una contraseña segura y recordarla siempre

El artículo Cómo crear una contraseña segura y recordarla siempre propone:

MÉTODO 1: Una frase hecha contraseña

Allá por 2008, el experto en seguridad Bruce Schneier recomendó un sencillo método para conseguir una contraseña segura y que se pueda recordar: crear una clave a partir de una frase. Aún recomienda este método.Nada como coger algo memorable sobre nosotros, algo que sepamos de memoria desde hace décadas, y mezclarlo de una forma que vamos a recordar por narices, incluso si al principio cuesta un poco. Por ejemplo, “¡El Madrid ganó la Undécima el 28 de mayo de 2016!” se puede convertir fácilmente en “¡ElMagalaUnel28demade2016!”. El patrón es fácil: añadir exclamaciones al principio y al final, coger las dos primeras letras de cada palabra, respetar las mayúsculas y usar números para la fecha. Si no eres futbolero, piensa en otra combinación con este estilo. A ver si ‘descubrís’ de qué trata esta contraseña: “CrCodeAmel12deocde1492”.

MÉTODO 2: Palabras inconexas, pero graciosas

Otro método efectivo consiste, directamente, en utilizar palabras sin conexión alguna entre sí en cuanto a significado o sintaxis, pero que podamos recordar fácilmente porque nos hacen gracia o porque suena gracioso.’FistroAstronautaCorrección’ se recuerda fácilmente, aunque sería recomendable ponerle un número por alguna parte.Las palabras inconexas están muy bien, pero se pueden olvidar si no se tiene buena memoria. Por eso el método ‘PAO’ puede ser más efectivo. Fue creado por los ingenieros de la Carnegie Mallon University, sus siglas significan ‘persona, acción y objeto’ y quizá es el truco nemotécnico más sencillos de todos los de esta lista. “BeyonceconduceunFordporLugo?” no tiene ningún sentido, pero mezcla los tres elementos y es fácil de recordar si eres fan de la cantante. O de Lugo. Se puede ser más extremo con este método y usar símbolos y números para hacerla más segura todavía: “MigatoEnrique17_gobierna_Angola”.Es importante utilizar palabras que no estén relacionadas entre sí. Cuidado con usar nombres de películas o citas célebres, pues, de nuevo, las herramientas de los hackers son cada día más sofisticadas y encuentran lo primero de todo estas expresiones que se han usado juntas a menudo.

MÉTODO 3: Método avanzado para la memoria

Todos estos sistemas pueden funcionar muy bien tal y como son, pero hay un problema de fondo: no es nada recomendable usar la misma contraseña siempre. Por muy segura que sea, si te la roban, podrán acceder a todo lo que tengas en Internet con un solo hackeo. Por ello, una recomendación para crear contraseñas similares, pero diferentes, es utilizar grupos de significado, por llamarlo de algún modo, y crear variantes de una misma idea con varias contraseñas.Cojamos el ejemplo de Beyoncé al volante. Si usáramos dicha cuenta en Gmail, a lo mejor podríamos emplear “BritneySpearspilotaunRenaultporGerona”. Puede parecer rebuscado visto así, pero las categorías están ahí: cantante famosa, acción, marca de coche y ciudad. Si te gustan los animales, puedes hacer algo similar con razas de perro. Si te gusta la música, con instrumentos. ¿La comida? Con recetas. Lo importante, casi tanto como que la contraseña sea segura, es recordarla al instante.

Cómo Internet afecta a mis estudiantes

“Cada vez que mira Internet, muere un sabio” es el clásico artículo pesimista sobre Internet:

El investigador no censura la lectura on line, “nueva y liberadora”, con grandes estímulos de imagen, vídeo, sonidos e hipervínculos; pero sí asegura que este modo de consumir información está haciendo mella en nuestro cerebro. “Somos incapaces de atender a algo durante más de dos minutos”, sentencia.

Este nuevo comportamiento tiene consecuencias neurológicas debido a la plasticidad de nuestros cerebros. Una investigación publicada en Science, en 2009, llegó a la conclusión de que “todo medio desarrolla ciertas habilidades cognitivas en detrimento de otras”. Como escribe James Flynn, profesor emérito de Estudios Políticos en la Universidad de Otago (Nueva Zelanda) en su libro ¿Qué es la inteligencia? (Tea Ediciones), cada vez somos más expertos en resolver pruebas abstractas y visuales, pero nuestra capacidad para comunicar ideas profundas, explorar nuestros propios pensamientos o enfrentarnos a lecturas complejas ha caído en picado: “No somos más listos ni tontos que nuestros abuelos: tenemos cerebros diferentes”.

Relacionado con este artículo, este curso me ha pasado algo “muy extraño”. En una de las prácticas de programación web pido (Práctica 11: PHP 6 (tratamiento de imágenes)):

Página principal
Muestra un diagrama de barras con el número de fotografías subidas durante los últimos siete días.

No voy a comentar las fantásticas sentencias SELECT que escribieron para obtener el resultado (creo que sólo uno se acordó de que existía BETWEEN, mientras que unos cuantos hizo alguna consulta que se componía de siete UNION o hizo siete sentencias SELECT separadas, una para cada uno de los últimos siete días). Lo que me sorprendió porque no recuerdo que hubiese ocurrido en años anteriores es que un porcentaje significativo de estudiantes consideró “durante los últimos siete días” como la semana actual. Es decir, calculaban las fotos subidas para la semana a la que pertenece el día actual. En el caso de hoy lunes, calcularían para hoy lunes, para mañana martes (cero fotos) y así hasta el próximo domingo (cero fotos)… ¡Qué cojones!

Sin duda alguna, por lo que puedo leer, el próximo curso será… mejor:

Niños de 12-13 años razonando (o no) un problema de matemáticas:

En un rebaño hay 125 ovejas y 5 perros. ¿Cuál es la edad del pastor?

Algunos estudiantes responden 125 – 5 = 120 años, otros responden 125/5 = 25 años, otros responden…

Trabajar con milénicos

“Muchos de ellos provienen de una estrategia educativa fallida, en la que se les consentía todo, se les explicaba que «todo el mundo es especial» y se premiaba cualquier comportamiento, incluso sin merecerlo. El resultado es que al llegar al mercado de trabajo se encuentran con que la vida no es tan fácil, mamá no va a conseguirte un ascenso y es difícil prosperar en la jungla corporativa”.

“[…] se premiaba cualquier comportamiento, incluso sin merecerlo”. Este curso también se ha dado una situación “muy extraña”, algunos estudiantes han apelado al “esfuerzo” para justificar que debían aprobar la asignatura. Ante esta situación creo que voy a cambiar de estrategia cuando tenga que discutir con ellos: les recomendaré la lectura de El secreto, famoso “best seller basura” en el que se defiende que si se desea algo con mucha intensidad, se logrará. “Desea aprobar, a ver si lo logras”.

El clásico de todos los años

El alumno que lee un fichero, lo almacena en un array, luego utiliza un bucle para contar las posiciones del array, luego otro bucle para llegar a la posición seleccionada en el array y como “guinda del pastel”, una vez llegada a la posición… ¡continúa el bucle en vez de finalizarlo!

Lo aceptaría si fuera un alumno de primero pero… es un alumno de tercero 🙁

bucle-inutil