10 consejos para MySQL

Buenos consejos a tener en cuenta:

  • Ponle contraseña al usuario root y luego cámbiale de nombre: lo más normal es ponerle contraseña al usuario root, pero no nos sorprendamos si vemos un root sin password o con algo tan ridículo como root_1. Lo que si no se suele hacer mucho es cambiar el nombre al root y eso es una buena idea que habría que tener siempre en cuenta… pero que tampoco sea admin (como dice el artículo), sino algo más difícil de adivinar.
  • Oculta MySQL de Internet: MySQL no necesita estar accesible desde Internet, por lo que mejor evitar esa posibilidad.
  • Protege el directorio de instalación de MySQL de otros usuarios
  • No almacenes datos binarios: que MySQL lo permita no quiere decir que sea lo mejor hacerlo. MySQL envía los datos de una única vez, esto implica que hasta que no se envíe el campo completo, la aplicación no puede parsear la información. Es preferible almacenar los datos en el sistema de ficheros y almacenar en la BD un ruta hasta el fichero. Aunque yo casi recomendaría guardar en la BD una clave, para que mediante una lógica en la aplicación se pueda recuperar la ruta, así, si tenemos que modificar la ruta no tenemos que modificar todos los registros de la BD, tan solo la lógica del programa.
  • Usa SQL standard: MySQL ofrece posibilidades que no son del SQL estándar y que pueden aportarnos muchas ventajas, el problema es que nos limita a exportar nuestra aplicación a otras BD si en un futuro lo necesitamos. La solución es no ejecutar esas sentencias directamente, sino mediante una clase, que extienda de una clase genérica, así podremos simular esas funcionalidades de MySQL en otras BDs creando otras clases para cada motor de BD.
  • Crea tu propio generador de auto_increment: el auto_increment nos crea números consecutivos que podemos usar en nuestras tablas, pero con limitaciones, solo existe un auto_increment por tabla y son independientes de las tablas, por lo que distintas tablas pueden tener mismo id, lo cual puede no convenirnos en algunas circunstancias.
  • No mezcles código de presentación con el de acceso a BD: es el sistema MVC que siempre debemos usar.
  • Normalización y denormalización: la normalización nos permite tener una BD sin datos redundantes. Desafortunadamente, a veces esta pena el rendimiento, para lo cual, una vez normalizada la BD es conveniente denormalizarla.
  • Usa un pool de conexiones en el servidor Web o en el servidor de aplicaciones: la conexión a la BD es algo costoso, si compartimos conexión mediante un pool, ganaremos en rendimiento.
  • Mejoras tus queries con EXPLAIN SELECT: aunque es un comando difícil de seguir, nos puede ayudar mucho.

Ten MySQL Best Practices

Vía / Sheeri Kritzer Cabral

|

AsxJax: Ajax accesible

AsxJax es un framework que permite añadir accesibilidad a los desarrollos web que utilicen Ajax, así usuarios que utilicen screenreaders u otros dispositivos similares podrán disfrutar de las características que ofrece la web 2.0.

AxsJAX añade accesibilidad según lo definido por la W3C ARIA, siendo necesarios los siguientes requisitos:

  • Un navegador como Firefox 2.0 que soporte la W3C ARIA.
  • Tecnologías que respondan correctamente a las mejoras de accesibilidad añadidas por la W3C ARIA.
  • Alguna de las mejoras añadidas por AxsJAX dependen del soporte para las live regions, una característica que permite a las tecnologías como los screen readers tratar correctamente con actualizaciones asíncronas de partes de la página web.

El framework AxsJAX puede añadir accesibilidad a aplicaciones Web 2.0 existentes mediante las siguientes técnicas:

  • Como un bookmarklet.
  • Usando Greasemonkey.
  • Usando Fire Vox.

AsxJax

Guía rápida para desarrollar en Android: Hello World

Para aquellos que aún no lo sepan, Android es un conjunto de software para dispositivos móviles: sistema operativo, middleware y aplicaciones key mobile.

Tiene toda la pinta de que va a tener mucho éxito, quizás porque está realizado por Google, quizás porque los miembros de la alianza son muy importantes, quizás porque es open source, quizás porque es sencillo o quizás porque estamos hasta el gorro de Windows. Sea lo que sea, merece la pena empezar a desarrollar aplicaciones para Android, y si los motivos anteriores o el desarrollo como profesional no te estimula, quizás los 10 millones de dólares que ofrecen a la mejor aplicación si te puedan interesar.

Pues venga, a ponerse a picar que los pisos están muy caros.

Empezar a desarrollar para Android es muy sencillo, tan solo tienes que tener el SDK de Android, tener instalado Eclipse, por ejemplo la versión Classic y añadir un plugin para Eclipse que ofrecen, para lo cual hay que:

  • En Eclipse ir a Help > Software Updates > Find and Install.
  • Seleccionar Search for new features to install y pinchar en Next.
  • Seleccionar New Remote Site.
  • Añadir esta URL: https://dl-ssl.google.com/android/eclipse/.
  • Selecionar Android Plugin > Eclipse Integration > Android Development Tools.

Una vez instalado el plugin, debemos indicar la ruta del SDK, para lo cual iremos a Window > Preferences y en la opción de Android modificaremos la ruta del SDK.

Ya lo tenemos todo listo, ahora solo nos falta crear un nuevo proyecto Android (File > New > Project) y modificar el código base que nos ofrece.

En el ejemplo que vamos a hacer tan solo escribiremos una frase en el terminal, para lo cual editaremos el fichero principal del proyecto, en mi caso como he llamado al proyecto prueba el fichero es prueba.java:

package com.sentidoweb;
import android.app.Activity;
import android.widget.TextView;
import android.os.Bundle;
public class prueba extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
    TextView tv = new TextView(this);
tv.setText("Sentido Web");
setContentView(tv);
  }
}

He marcado en negrita el código que se ha de modificar, y como veréis no tiene mucha dificultad. El resultado es este:

android.png

Como véis el ejemplo se ejecuta en un emulador de Android, si jugáis un poco con este emulador podréis daros cuenta de las posibilidades que ofrece.

BOUML: aplicación UML

BOUML es una aplicación UML2 que permite definir y generar código en C++, Java, Idl y PHP. Es compatible con Unix/Linux/Solaris, MacOS X y Windows, es muy rápido y no requiere mucha memoria para manejar varios miles de clases.
bouml.png
Se le pueden añadir aplicaciones externas escritas en C++ o Java, siendo una de estas extensiones predefinidas la generación de código y la ingeniería inversa.
BOUML
Vía / OpenSourceCommunity.org

Clasificación de amenazas Web

Algo a tener en cuenta cuando realizamos una aplicación web son los ataques que podemos recibir, para así estar preparados contra ellos y tomar soluciones al respecto.
En Web Application Security Consortium han realizado un documento que pretende “desarrollar y promover una terminología estándar para la industria que describa estos aspectos. Desarrolladores de aplicaciones, profesionales de la seguridad, fabricantes de software y auditores, tendrán la capacidad de disponer de un lenguaje consistente para tratar los aspectos relacionados con la seguridad web“.
El documento, disponible en español, nos muestra los distintos tipos de ataques que nos podemos encontrar (autenticación, autorización, por parte del cliente, ejecución de comandos, revelación de información y ataques lógicos), y nos explica posibles soluciones y referencias para obtener más información.
Web Security Threat Classification (español) – PDF

Nueva version de SQLYog

Cuando SQLyog pasó de ser un producto únicamente comercial, a disponer de una versión gratuita, anunciamos esta gran noticia, y ahora un año después comentamos la salida de una nueva versión, la 6.12.
sqlyog.png
Desde entonces, esta aplicación es la que he estado usando para trabajar y he de decir que es la que más me ha gustado. Y a partir de la versión 6, mucho más, ya que uno de los inconvenientes que tenía era el uso de Unicode, no permitía escribir o mostrar texto en otros idiomas como el chino, japonés o árabe, por lo que aparecían las famosas interrogaciones cuando encontraba caracteres no reconocidos.
Además, ahora trata mucho mejor el encode y el collation, pudiendo elegirlos fácilmente en la creación de la base de datos y la creación / edición de tablas.
Un gran producto a tener en cuenta.
SQLYog 6.12

links for 2007-11-13