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

En McDonald’s no conocen el juego de caracteres

Visto en los tickets de un McDonald’s, podemos ver que palabras como “Rapidos” o “Despues” las escriben sin tilde:

img_20161208_161928

Las escriben sin tilde porque seguramente les saldrían mal impresas. Eso lo podemos comprobar en otro ticket de la misma máquina, donde palabras como “más”, “Válido” o “sólo” aparecen escritas como “m?s”, “V?lido” o “s?lo”:

img_20161208_161959

McDonald’s es una gran multinacional que sufre la pesadilla de los informáticos.

Ejemplo de que usar el placeholder es una mala idea

El siguiente formulario se encuentra en Mejor con lentillas:

placeholder-01

El aviso “* Campos obligatorios” al final del formulario en vez de al principio no es muy adecuado, pero ese no es el problema más grave de este formulario.

Para indicar el contenido de cada campo del formulario se emplea el atributo placeholder en vez de una etiqueta con <label>:

placeholder-02

 

Lo podemos comprobar viendo el código fuente:

placeholder-codigo

¿Por qué es una mala idea usar el placeholder? Imaginemos que me equivoco y en el campo para el teléfono escribo el DNI y en el campo para el DNI escribo el teléfono. El resultado será el siguiente:

placeholder-03

¿Qué está pasando? ¿Cuál es mi error? Si no me he fijado bien al rellenar el formulario, no recordaré qué debo introducir en cada campo. Para saberlo deberé ¡¡borrar lo he escrito!!

Además, desde un punto de vista de la accesibilidad web, algunos lectores de pantalla no reconocen el atributo placeholder, así que los usuarios que dependen de su uso para poder navegar por la Web no podrán rellenar este formulario de forma autónoma.

Google no aplica bien el cotejamiento

El cotejamiento es un concepto muy importante en la utilización de las bases de datos que, ¡oh, sorpresa!, la mayoría de las personas que gestionan o utilizan bases de datos desconocen por completo.

Me ha sorprendido descubrir que en Google, en el grupo de Gmail, trabajan algunas personas con ese mismo desconocimiento.

En Gmail tengo creadas unas etiquetas para las personas con las que más me comunico:

cotejamiento-01

En la imagen anterior podemos ver a “Ángel Jaramillo”, que correctamente está ordenado entre “Andrés” y “Antonio”.

Sin embargo, en el mismo Gmail, al crear un filtro, en la opción de asignar una etiqueta me encuentro con esto:

cotejamiento-02

¿Dónde está el pobre “Ángel Jaramillo”? ¿Qué le ha pasado?

A Ángel lo han movido al final de la lista:

cotejamiento-03

¿Por qué, qué ha pasado?

Además de que no están utilizando correctamente el cotejamiento, esto muestra que en Google no usan el mismo modelo (del patrón MVC) para recuperar los datos, porque ambas listas son idénticas y, sin embargo, no se obtienen de la misma forma.

Lo que pasa cuando se copia y se pega sin saber lo que se copia y se pega

Corrijo una práctica de uno de mis alumnos.

Sólo tienen que usar HTML y CSS. Me encuentro lo siguiente al visualizar la página web del alumno en un navegador:

html-php-01

¿Cómo?

¿Qué es eso de <?php echo date(?

Veo el código fuente y me encuentro esto:

<input type=”date” name=”cumpleanios” step=”1″ min=”1900-01-01″ max=”2050-12-31″ value=”<?php echo date(” Y-m-d”);?>

¡Código PHP!

¿Y por qué los alumnos no se habían dado cuenta de ello antes?

La primera captura es con Mozilla Firefox, la siguiente es con Google Chrome, lo que los alumnos estaban usando:

html-php-02

No aparece porque se está usando el tipo date: Firefox no lo interpreta y lo muestra como un cuadro de texto; Chrome sí lo interpreta y queda oculto el error.

¿Y todo esto de dónde salió? Según mis alumnos, lo copiaron y pegaron de algo que habían encontrado por Internet…