Guía para desarrollar Javascript accesible

Interesante tutorial que nos enseña que problemas pueden encontrarse las personas con alguna discapacidad que le obligue a prescindir de Javascript (o usuarios con dispositivos móviles), y cómo solucionarlo.
Los mayores problemas con el que se encuentran las personas que no ejecutan javascript en sus navegadores son en la navegación (menús dinámicos), contenido oculto (accesible mediante Ajax), controles dinámicos (eventos de ratón, drag&drop, …) y confusión (la web está pensada para el uso de Javascript y no usarlo conlleva un contenido inicial deficiente).
Como resumen diría que hay que ofrecer los contenidos sin necesidad de javascript, éste sólo debe ser un apoyo, y que para comprobar si tu web es accesible lo mejor es probarlo inhabilitando el javascript en tu navegador.
Creating Accessible JavaScript
Vía / @maxkuri

|

Comentarios anidados con PHP y MySQL

Los comentarios anidados es algo muy común entre los foros o blogs. Realizarlo es bastante sencillo, aunque quizás hacerlo de la forma más eficiente puede tener su dificultad.
En el post que referencio, nos explican paso a paso cómo hacerlo: estructura de la BD, formulario, consultas, …
La solución es de las sencillas, se trata de que cada comentario tenga un campo que enlace con el comentario padre, y luego a la hora de recuperar los comentarios, hay que ir realizando consultas de obtención de comentarios por cada comentario padre, salvo en el primer caso que se buscan los comentarios iniciales.
HOW-TO: Multi-level Comments In PHP

jQuery Masonry: encaja capas HTML

Supongo que lo de “encajar capas HTML” no es algo que se entienda muy bien, pero realmente se trata de eso. Este plugin de jQuery coloca las capas HTHL de tal forma que no queden espacios en blanco entre ellas (algo normal cuando se usa el css float).
jquery-layout.png
Hay que tener cuidado, porque aunque nos devuelve un layout sin espacios en blanco, también nos lo da con un orden no muy usable, por lo que es importante no usar este plugin cuando el orden de colocación importa.
jQuery Masonry
Vía / WebAppers

Ejecutar dumps extensos con phpMyAdmin

Un truco que no conocía y que me puede venir muy bien (y espero que a vosotros). Se trata de ejecutar scripts de MySQL muy extensos (provenientes de un dump, por ejemplo) sin que nos dé el problema del tamaño máximo del fichero a subir.
El truco es sencillo, nos creamos una carpeta donde subimos el fichero con los scripts, y a la hora de importar, seleccionamos el “Web server upload directory”, para lo que habrá que modificar el fichero de configuración (config.inc.php) para indicar el directorio de uploads (UploadDir).
Execute large MySQL scripts through phpMyAdmin

Parche para indexar Drizzle con Sphinx

La verdad es que se trata de algo poco usado, son dos opciones a tener en cuenta en el futuro: Sphinx y Drizzle, aunque Sphinx cada vez se usa más en proyectos con gran volumen de datos, y Drizzle también es algo que debemos tener en mente con todo lo que pueda pasar con MySQL y Oracle o simplemente porque está enfocado a web.
Pues para quien trate con ambas tecnologías le puede venir muy bien este parche para poder usar ambas a la vez.
Drizzle patch for Sphinx 0.9.9-rc2

Meter trazas en tus consultas SQL

En muchas ocasiones nos encontramos con que alguna query va lenta y tenemos que mirar el SHOW PROCESS LIST para localizar la query lenta, y luego buscarla en el código, algo que suele ser bastante pesado y a veces complicado.

Mi compañero David ha tenido hoy una brillante idea que nos va a facilitar a los dos la tarea de encontrar queries lentas en el código, para ello se trata de añadir un comentario en la query indicando la clase, el método y la línea:

select /* clase, metodo, linea */ campo from tabla

Sencillo pero muy efectivo

Cómo “tracear” consultas SQL

Consejos para optimizar tu base de datos

Interesantes consejos para optimizar nuestra base de datos en nuestras aplicaciones:

  • Aunque parezca mentira, no siempre es necesario una base de datos relacional. Existen alternativas como memcache, base de datos documentales o de clave-valor.
  • No uses la BD para almacenar contenidos: imágenes o documentos en BLOB.
  • Usa campos numéricos y autoincrementales para los índices primarios, para así tener un acceso rápido al registro, ya que inserts, updates y selects dependen mucho de este índice.
  • Analiza correctamente el uso de índices al igual que haces un análisis detallado de la estructura de la BD.
  • Realiza queries sencillas, en las que solo debes recuperar los campos que necesites y evitar el uso de LIKE y NOT IN

Una lectura interesante y más detallada.

Database Optimize patterns

Plugin jQuery para validar contraseñas

Aquellos que necesiten que en su aplicación web los usuarios introduzcan contraseñas seguras, podrán añadir este plugin jQuery que comprobará si las contraseñas tienen ciertas carácterísticas que las hacen seguras:

  • Uso de mayúsculas y minúsculas
  • Uso de números
  • Uso de caracteres especiales
  • Longitud de la contraseña
  • U opcionalmente similar a un username

El plugin mostrará un mensaje indicando la calidad de la contraseña y un color acorde a ésta.

jQuery plugin: Password Validation

Vía / Script & Style