Archive for noviembre, 2009

noviembre 12, 2009 0

Mejorando el rendimiento de JavaScript

By in JavaScript

Via anieto2k me encuentro con una presentación de Thomas Fuch, creador de Script.aculo.ous, llamada “Extreme JavaScript Performance”, donde da una serie de recomendaciones, que podemos y que no debemos,  para mejorar el rendimiento de nuestros scripts.

En la presentación se comparan los tiempos que se tarda, en distintos navegadores, en realizar diversas tareas comunes. También se presentan algunas curiosidades del lenguaje, como la evaluación de los operadores && (AND) y || (OR).  Una lectura más que recomendada para mejorar el tiempo de ejecución de los scripts.

Comparte esta entrada:
Delicious Digg Google Technorati Menéame Fresqui Reddit Facebook Twitter Yahoo! Buzz MySpace Email BarraPunto

Tags: , ,

noviembre 11, 2009 0

Consultas parametrizadas en PHP. Parte III.

By in PHP

En el anterior artículo vimos como parametrizar una consulta SQL usando el cierre de interrogante. En este vamos a usar el símbolo de dos puntos (:) seguido del nombre del parámetro para indicar estos. Al igual que en la entrada anterior vamos a ver primero el código y después una explicación del mismo:

<?php

function escapar($valor)
{
  // Retornamos la cadena escapada. Está solo como ejemplo.
  return mysql_escape_string($valor);
}

function prepararParametro($param)
{

  if(is_string($param))
  {
    // Si el parámetro es una cadena retornamos el valor
    // de la cadena escapado entre ' '.
    return "'".escapar($param)."'";
  }
  else if(is_array($param))
  {
    // Si es un array devolvemos una lista de los parametros
    // separados por comas. Cada elemento del array es procesado
    // por esta función para que tenga el formato correcto.
    $retorno = '';
    foreach($param as $p)
    {
      // Cuando retorno es vacio ('') quiere decir que no
      // Tenemos que añadir la coma.
      if($retorno == '')
      {
        $retorno .= prepararParametro($p);
      }
      else
      {
        $retorno .= ','.prepararParametro($p);
      }
    }

    return $retorno;
  }
  else if($param == NULL)
  {
    // Si es NULL devolvemos la cadena 'NULL'
    return 'NULL';
  }
  else
  {
    // Devolvemos el parametro.
    return $param;
  }
}

function prepararConsulta($consulta, $parametros = array())
{
  // Recorremos los parametros
  foreach($parametros as $nombre => $parametro)
  {
    // Juntamos cada parte con el parametro correspondiente preparado.
    $consulta = str_replace(":".$nombre, prepararParametro($parametro), $consulta);
  }

  // Devolvemos la consulta preparada
  return $consulta;
}
?>

Volvemos a tener las funciones escapar y prepararParametro, que funcionan exactamente igual que en la versión del interrogante (?). La novedad viene ahora en la función prepararConsulta, que se ha simplificado bastante. Ahora lo que hacemos es recorrer el array de parámetros con un bucle foreach, almacenando en la variable $nombre el nombre del párametro y en la variable $parametro el valor de este. Luego con la función str_replace reemplazamos las apariciones de :nombre por el parámetro preparado. Bastante sencillo.

Ahora, cuando llamemos a la función prepararConsulta, tendremos que pasarle un array con los valores indexados mediante un literal. Por ejemplo:

$parametros = array('user_id' => 'manuel', 'user_password => 'password');
$consultaPreparada = prepararConsulta($consulta, $parametros);

De nuevo, como en el artículo anterior, la función es mejorable pero es una buena aproximación al problema de las consultas parametrizadas.

Comparte esta entrada:
Delicious Digg Google Technorati Menéame Fresqui Reddit Facebook Twitter Yahoo! Buzz MySpace Email BarraPunto

Tags: , ,

noviembre 5, 2009 0

Desactivado Facebook Connect para WordPress

By in WordPress

Hace no mucho hablaba en este blog del plugin Facebook Connect para WordPress. Lo tuve activo en el blog durante un tiempo, pero me daba algunos problemas al entrar al administrador cuando estaba también en Facebook, por lo que al final he decidido desactivarlo. Aunque la funcionalidad es interesante tampoco es imprescindible.

Comparte esta entrada:
Delicious Digg Google Technorati Menéame Fresqui Reddit Facebook Twitter Yahoo! Buzz MySpace Email BarraPunto

Tags: , ,

noviembre 2, 2009 0

Google Sitemaps: informando a los buscadores de nuestras páginas

By in Herramientas, WordPress

Un Sitemap es un archivo XML donde informamos de las páginas que tenemos en nuestra web. Pero no solo podemos decir que páginas tenemos, si no que también podemos añadir algo más de información, como la fecha de la última modificación o la frecuencia de modificación.

Veamos a ver cual es la estructura de un archivo sitemap.xml:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

<url>
<loc>http://www.dominio.com/</loc>
<lastmod>2009-11-02</lastmod>
<changefreq>daily</changefreq>
<priority>1</priority>
</url>

<url>
<loc>http://www.dominio.com/archivo.php</loc>
<lastmod>2009-11-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>

<url>
<loc>http://www.dominio.com/enlaces.php</loc>
<lastmod>2009-01-01</lastmod>
<changefreq>yearly</changefreq>
<priority>0.4</priority>
</url>
</urlset>

Tenemos un archivo XML donde el elemento raíz es urlset. Dentro puede tener uno más elementos url. Cada elemento url puede contener varios elementos más, aunque el único obligatorio es loc. Veamos que son estos elementos:

  • loc: Índica la dirección de la página.
  • lastmod: Contiene la fecha de la última modificación de la página.
  • changefreq: Frecuencia con la que se modifica la página.
  • priority: Le indica la prioridad de la página. Puede tomar valores entre 0 y 1, pero cuidado con darle prioridad 1 a todos los elementos, ya que esto no nos servirá de nada.

El elemento lastmod tiene el formato aaaa-mm-dd y el elemento changefreq puede tomar los valores siguientes:

  • always (siempre)
  • hourly (cada hora)
  • daily (diariamente)
  • weekly (semanalmente)
  • monthly (mensualmente)
  • yearly (anualmente)
  • never (nunca)

Podemos crear nuestros Sitemaps de forma manual o de forma automática, si usamos algún gestor de contenidos. Para WordPress existe un plugin llamado Google (XML) Sitemaps generator bastante bueno para generar los sitemaps.

En otro artículo posterior veremos como dar de alta los Sitemaps con la herramienta de ayuda para wbmasters de Google.

P.D.: Durante esta semana y la que viene se publicarán algunas continuaciones de tutoriales que se han quedado a medias. Siento no poder publicar tan a menudo, pero el tiempo es algo que escasea ultimamente.

Comparte esta entrada:
Delicious Digg Google Technorati Menéame Fresqui Reddit Facebook Twitter Yahoo! Buzz MySpace Email BarraPunto

Tags: ,