10 errores en el diseño de aplicaciones

Un gran post en el que se nos explica diez errores que se cometen cuando se diseña una aplicación, un resumen sería el siguiente:

  • Controles no estándares: los enlaces, botones, radio buttons y demás controles tienen una utilidad específica y estándar. Cambiar el comportamiento no es lo correcto y no hace más que confundir al usuario.
  • Inconsistencia: diferentes cosas para una misma utilidad, usa lo mismo en el mismo lugar para la misma acción.
  • Acciones no perceptibles: se debe saber qué acción realiza un control a simple vista. Si hay que investigar para qué sirve algo no cumple su cometido.
  • Controles sin reacción: cada control debe indicar 3 cosas: mostrar a los usuarios el estado actual, cómo se interpretan los comandos y qué está pasando.
  • Malos mensajes de error: no basta con decir que hay un error, sino que es lo que ha pasado y que se puede hacer para solucionarlo.
  • Preguntar por lo mismo dos veces
  • No hay valores por defecto: os valores por defecto sirven para que haya más rapidez en las respuestas, para enseñar mediante el ejemplo y para dirigir a usuarios novatos.
  • No explicar cómo funciona la aplicación: en aplicaciones estándar eso no es muy problemático, pero en otras aplicaciones hay que explicar qué se puede conseguir y cómo y no únicamente acceder a la aplicación.
  • No indicar qué se hace con la información
  • Mostrar características internas: al usuario no le importa y no llegará a entender cosas internas de la aplicación, por lo que no es necesario que el usuario lea.

Top-10 Application-Design Mistakes

Vía / dzone

Inspekt: seguridad en PHP

Inspekt es una librería para PHP 4 y 5 que nos filtra la entrada de datos para evitar posibles ataques. Su uso es bastante sencillo y automático por lo que podemos añadir esta librería tranquilamente en nuestras aplicaciones. Basado originalmente en la librería Zend_Filter_Input del framework de Zend.

Mediante unos simples métodos podremos filtrar el contenido de las variables $_POST, $_GET, $_COOKIE, $_SERVER, $_FILES y $_ENV, o todas a la vez. Además ofrece métodos para validar los datos entrantes, por ejemplo saber si se trata de una IP, de un número, una URL y mucho más.

Inspekt

links for 2008-02-20

Domain Technologie Control: panel de control para hosting

Domain Technologie Control es una aplicación GPL para usar como panel de control para hosting. Mediante una aplicación web para la administración y todos los servicios de hosting.
dtc.png
Con DTC puedes delegar las tareas de creación de subdominios, email, cuentas FTP a los usuarios para los nombres de dominio. Puedes manejar bases de datos MySQL. Además soporta programas como MySQL, Apache 1.3, php4, qmail, postfix 2, courier, dovecot, proftpd, webalizer, mod-log-sql.
Domain Technologie Control

Render más rápido de las tablas con CSS

En el caso de que tengamos que usar tablas, cuando realmente se trate de una tabla, es conveniente tener en cuenta una propiedad CSS poco utilizada que nos podrá permitir mejorar la velocidad de render de las tablas.

La propiedad es table-layout y nos permite indicar si queremos que la tabla se dibuje con unos anchos fijos o dependientes del contenido:

.fixed_table {
table-layout: fixed;
}
.auto_table {
table-layout: auto;
}

El valor fixed nos permite dibujar la tabla de una forma más rápida, ya que el ancho de las celdas depende de las columnas y no del contenido de ellas. Por ello, al no tener que mirar toda la tabla para ajustar los anchos, el render se hace más rápido. Es bueno usarlo cuando se trata de tablas muy grandes y mejor si tienen un contenido muy parecido.

El valor auto es dependiente del contenido de las celdas, por lo que es necesario leer toda la tabla. Se recomienda usarlo cuando las tablas tiene contenido muy variable o cuando se trata de pocas filas.

Use the table-layout CSS property to speed up table rendering

Vía / Posh CSS

links for 2008-02-19

|

PHP Mini Admin para MySQL

phpminiadmin es una alternativa muy ligera y reducida de phpMyAdmin, en vez de instalar unos 10 megas solo sería cerca de 10k.
phpminiadmin.png
Inicialmente pide el login a la BD y una vez se ha accedido, se pueden realizar cualquier tipo de consulta (select, insert, update, delete, explain, …).
Lógicamente esta aplicación no tiene la capacidad que tiene phpMyAdmin, pero cada aplicación tiene su lugar y esta nos puede ser muy útil en determinadas circunstancias, como por ejemplo integrarla en una aplicación propia.
phpminiadmin

Guía para que el usuario pueda personalizar una web

Para las aplicaciones web es importante darle al usuario la posibilidad de personalizarla a su gusto.

El post que os pasamos a continuación explican muy bien los pasos que hay que dar para poder permitir que el usuario personalice la web a su gusto:

Existen varios tipos de personalización:

  • Recolocar contenido en la página
  • Añadir elementos (widgets)
  • Modificar preferencias
  • Personalizar los estilos (skins)

Eso sí, hay que tener en cuenta algunos aspectos a la hora de permitir personalizar la web:

  • Es necesario un botón de reset para volver a la configuración inicial.
  • Permitir bloquear la configuración para que el usuario borre o elimine algo accidentalmente.
  • Facilidad para desplazar los módulos.

Pero lógicamente existen pros y contras:

Pros

  • Personalizar hace que el usuario sienta que un pedazo de web le pertenece.
  • Hace la web más interesante, ya que el usuario la dispone a su gusto y quita cosas que le sobren.
  • Le da frescura ya que las modificaciones permiten hacer sentir que los contenidos se actualizan con mayor frecuencia.

Contras

  • No a todo el mundo le gusta la personalización, a parte requiere tiempo para realizarlo y eso puede hacer que no se haga.
  • Lo simple a veces es mejor, aunque claro, el diseño por defecto debe ser suficientemente bueno para que la personalización sea una opción, no una necesidad.
  • Requiere complejidad, que no suele ir muy bien con la usabilidad.
  • Un usuario puede querer añadir mucha información, perjudicando el rendimiento general.

Customisable websites – the definitive guide

Vía / Digg

Puntos a tener en cuenta a la hora de elegir framework de Javascript

Actualmente existen muchos framworks de Javascript, normalmente la gente tiene su favorito y es el que suele usar siempre, pero para aquellos que no sepan cual elegir estos consejos le pueden venir bien:

  • Rapidez: los usuarios esperan agilidad a la hora de mostrar la página, da igual lo bien diseñada que esté o los efectos que muestren. Por ello es muy importante que el framework tenga buen rendimiento y que sea rápido. Puedes comprobar las velocidades de 3 frameworks aquí.
  • Tamaño del js: el tamaño es imporante en dos aspectos: lo que tarda en cargarse en la página y el ancho de banda que consume. Yo añadiría que en los frameworks que te permiten seleccionar que componentes queremos añadir, solo seleccionemos los necesarios. A parte, siempre viene bien comprimir el js.
  • Documentación: es como aprender un lenguaje nuevo, da igual que sepas Javascript, no se parecerá demasiado a lo que hayas usado anteriormente. Cuanto mejor esté documentado mejor.
  • Comunidad: lo más importante de un proyecto open source es la comunidad que hay detrás de ella. Los miembros de la comunidad aportan ayuda, código, ejemplos y mucho más que nos facilitará el trabajo.
  • Módulos: como ya he dicho anteriormente, los módulos nos permiten incluir solo las funcionalidades que deseamos, ahorrando en rendimiento.
  • Quién lo usa: el hecho de que sitios importantes usen un framework es un reconocimiento a su calidad.

8 Considerations For Choosing Your Javascript Framework

|

Geocoding con PHP y Google Maps

Aunque parezca mentira cada vez es más frecuente la necesidad de usar geoposicionamiento en nuestras aplicaciones web, sobre todo si queremos darle este toque web2.0 tan de moda.
En el tutorial que hacemos referencia nos guía paso a paso por todo lo que necesitamos saber para usar Google Maps en nuestras aplicaciones.
Desde una pequeña introducción a lo que es el geocoding, pasando por el uso de Google Maps: obtener key, realizar llamadas al API de Google, explicación de la respuesta devuelta por el API; hasta la obtención de datos mediante PHP y la creación de una clase para tratar con el API.
Geocoding with PHP and the Google Maps API
Vía / PHPDeveloper.org