Hace un tiempo tuvimos que cambiar la estructura de permalinks de wordpress del formato http://dominio/año/mes/contenido a http://dominio/contenido y decidimos hacer que el nginx hiciera un 301 del formato viejo al nuevo.

Es algo tan sencillo como esto:

rewrite "^/[\d]{4}/[\d]{2}/(.*)\/$" /$1/ permanent;

Espero que os sea útil.

Prestashop es uno de los CMS de comercio electrónico que más auge está teniendo últimamente. La documentación es bastante buena pero hay algunas cosas que sólo tratan de pasada y creo que son muy importantes para mejorar el funcionamiento de Prestashop.

Concretamente os quería enseñar la forma de mejorar el rendimiento de prestashop utilizando Amazon CloudFront para servir contenidos estáticos.

Amazon CloudFront es el servicio de Amazon AWS que permite distribuir contenidos más rápido y con menor latencia que si lo hicieras desde tu propio servidor. Amazon CloudFront tiene distribuidos a través del mundo varios puntos de salida de forma que entrega los archivos al usuario desde el punto más cercano a su ubicación. Otra ventaja de Amazon CloudFront es que liberas a tu servidor de la entrega de esos ficheros con lo que consigues liberar recursos que podrás utilizar para otras cosas.

Para crear tu distribución lo único que tienes que hacer es ir a tu consola de Amazon y en la pestaña de CloudFront pulsar en «Create Distribution».

Debes de seleccionar la opción de Custom Origin y en Origin DNS Name poner la página de tu tienda

En la siguiente pantalla debes de indicar un subdominio del dominio de tu tienda, aunque no es obligatorio. En mi caso lo suelo poner siempre por estética ya que si no cuando carga la página los clientes podrían ver que se cargan contenidos de otros sitios con nombres tan extraños como dlskfhxxxis3dhflk23shf.cloudfront.net. En el ejemplo he utilizado ccc1.mitiendac.com

En el último paso podréis ver como queda la distribución que acabáis de crear.

Una vez creada la distribución  podréis ver en el panel de control que hay una nueva distribución y que su estado es «InProgress». En mi caso permaneció en ese estado unos 10 minutos hasta que pasó al estado «Deployed»  que es cuando ya se puedo empezar a utilizar.

En esta imagen tenéis un ejemplo de como quedaría.


Si habéis decidido utilizar un subdominio de vuestra tienda, mientras que finaliza la creación, podeís ir al servidor dns de vuestro dominio y añadir el subdominio a los dns. Para ello hay que crear una entrada cname con el nombre ccc1.mitienda.com. que apunte al nombre de la distribución que acabamos de crear, por ejemplo xxxxxxxx.cloudfront.net

El último paso es ir al administrador de prestashop y configurar el apartado de CCC (). Para eso hay que ir a Preferencias -> Rendimiento. y activar CCC. añadiendo la distribución. Si habéis utilizado el subdominio hay que poner ccc1.mitienda.com y si no, introducir directamente la distribución, p.e. xxxxxxxx.cloudfront.net en el apartado Servidores de media.

Como veis en la imagen se pueden añadir hasta 3 servidores de media. Para poner otros dos sólo hay que repetir lo anterior otras dos veces.

Por último os quería comentar algo sobre el coste de este servicio pero es difícil ya que es muy variable por que se factura en función del uso así que lo mejor es que vosotros mismos echéis mano de la calculadora y revisando los precios de la página de amazon lo calculéis o que utilicéis la calculadora de Amazon.

Si no os aclaráis con los precios lo que os recomiendo es que lo hagáis y que diariamente reviséis lo que lleváis gastado. Probablemente con el gasto de un par de días «normales» os será mas que suficiente para poder calcular el coste mensual.

Enviar correos desde WordPress es muy sencillo utilizando la función wp_mail.

Lo mejor es que veáis un ejemplo.

$email="usuario@dominio.com";
$titulo="Subject del Email de prueba";
$mensaje="Email de prueba. bla bla bla";
$headers = 'From: Remitente ' . "\r\n";
wp_mail($email, $titulo, $mensaje, $headers);

En este ejemplo podemos ver los cuatro campos principales. Lo que hace es enviar un email en modo texto, si queremos enviarlo en html debemos añadir un filtro para indicar que el contenido se enviará en html.

add_filter('wp_mail_content_type',create_function('', 'return "text/html"; '));

En el ejemplo:

$email="usuario@dominio.com";
$titulo="Subject del Email de prueba";
$mensaje="Email de prueba. bla bla bla";
$headers = 'From: Remitente ' . "\r\n";
add_filter('wp_mail_content_type',create_function('', 'return "text/html"; '));
wp_mail($email, $titulo, $mensaje, $headers);

Si además queremos enviar un fichero adjunto al mensaje sólo tenemos que añadir un parámetro más a la función wp_mail.

$email="usuario@dominio.com";
$titulo="Subject del Email de prueba";
$mensaje="Email de prueba. bla bla bla";
$headers = 'From: Remitente ' . "\r\n";
$fichero="/home/rastreador/mi_fichero";
$atach= array($fichero);
add_filter('wp_mail_content_type',create_function('', 'return "text/html"; '));
wp_mail($email, $titulo, $mensaje, $headers,$atach);

WordPress muestra en las cabeceras de todos los blogs la versión que estás ejecutando. Si quieres añadir una pequeña capa más de seguridad a tu instalación de WordPress lo mejor es eliminar esa información.
Una forma sencilla y rápida de hacer esto es añadir al final de tu fichero functions.php del tema este código:

remove_action('wp_head', 'wp_generator');

Para el que no lo sepa es BIN de una tarjeta son las 6 primeras cifras de la tarjeta que identifica el tipo de tarjeta, entindad emisora, si es de crédito o débito y el país. Si tienes una tienda online y cruzas este dato con la ip de la compra, la dirección de envío y alguna otra cosa, te puede ayudar a decidir si una operación es buena o mala, p.e. si te pagan con una tarjeta de EEUU, una ip de Marruecos y una dirección de envío de Madrid el resultado es: lagarto, lagarto, esto huele mal.

Para saber el BIN de una tarjeta yo utilizo Binbase, un sitio donde puedes consultar el bin de una tarjeta. Está limitado a 10 consultas diarias, pero es suficiente para alguien que comienza, si no siempre puedes comprar la base de datos de bines.

En la wikipedia tienes una lista de bines, aunque no se si será muy completa y el algoritmo de Luhn, utilizado para calcular el dígito de control de la tarjeta.


Se espera que este mes salga a la luz la última versión de WordPress. Para mi va a ser también la versión de salida de mi nuevo proyecto, del que os hablaré en breve, por lo que es especialmente importante.
La lista de novedades de esta versión es bastante grande así que sólo os voy a comentar algunas de las que más me han llamado la atención.

  • Desaparece WordPress Mu y se integra en wordpress 3.0.
  • Ya no existirá el usuario admin. El administrador será un usuario con cualquier otro nombre.
  • Nuevos temas por defecto, ya iba siendo hora de que los renovaran.
  • Cambia el escritorio por defecto.
  • Menús personalizados.
  • BuddyPress incluido en WordPress, un paso lógico ya que hasta ahora sólo se podía instalar con WordPress MU.
  • Nuevos tipos de «páginas» definidos por el usuario además de las entradas del blog o las páginas, como por ejemplo una galería de imágenes.

Si quieres ver la lista completa puedes ir a codex.wordpress.org

Ya está disponible la versión 2.9 de WordPress y en Ayuda WordPress han publicado un lista con las novedades de esta versión.

  1. Deshacer/papelera, de manera que si borras una entrada o un comentario puedes recuperarlo..
  2. Editor de imágenes integrado con el que recortar, editar, rotar y escalar imágenes.
  3. Actualización en lote y comprobación de compatibilidad de plugins, con lo que podrás actualizar varios plugins a la vez y poder ver antes de actualizar si los plugins son compatibles con tu versión de WordPress.
  4. Incrustación sencilla de vídeos solo con pegar la URL, gracias a Oembed. Puedes incrustar contenido de YouTube, Daily Motion, Blip.tv, Flickr, Hulu, Viddler, Qik, Revision3, Scribd, Google Video, Photobucket, PollDaddy, y WordPress.tv (más próximamente).
  5. Soporte por defecto de rel=canonical para mejorar el SEO.
  6. Optimización automática de la base de datos desde el fichero wp-config.php solo con añadir define('WP_ALLOW_REPAIR', true);.
  7. Los temas pueden tener ?miniaturas de entrada? para tener una imagen asociada a la entrada.

  8. Nueva tabla commentmeta.
  9. Tipos de entrada personalizados, algo que estaba previsto para la versión 3.0.
  10. Carpetas de temas personalizadas, muy util para esos plugins que llevan temas incorporados.
  11. TinyMCE WYSIWYG y Simplepie actualizados.
  12. Las barras laterales ahora pueden tener descripciones para que sea más fácil identificarlas.
  13. Posibilidad de especificar plantillas de categoría no solo por ID, como antes, sino por URL, lo que facilitará a los desarrolladores de temas realizar personalizaciones con las categorías.
  14. Los registros y perfiles son extensibles, para que recojas más información (cuentas de Twitter, etc).
  15. La API XML-RPC se ha mejorado para poder cambiar la opción de registro de usuario.
  16. Creación de galerías a medida, con nuevos atributos con los que incluir o excluir adjuntos de cualquier otra entrada, no solo de la actual.
  17. Cuando estás editando archivos con el editor de plugins o temas este recuerda la posición y te lleva al sitio donde estabas cuando guardaste.
  18. El bookmarlet Publica esto se ha mejorado y es ahora mucho más rápido, para que puedas publicar allá donde te encuentres navegando en la red.
  19. Las taxonomías personalizadas se incluyen en el fichero de exportación WXR y también se importan correctamente.
  20. Mejores filtros y hooks para los extractos, emoticonos, peticiones HTTP, perfiles de usuario, enlaces a autor, taxonomías, soporte SSL,  nubes de etiqueras, query_posts y WP_Query

Colombia, the only risk is wanting to stay

Hoy he estado mirando varios sitios para comprar fruta de temporada por internet directamente a los productores y la verdad es que me he quedado bastante decepcionado con la experiencia en varias de las tiendas ya que no muestran el precio en ningún momento o por lo menos no lo he podido ver sin necesidad de registrarme y la verdad es que soy bastante reacio a registrarme si no tengo claro si voy a comprar o no.

Las tiendas online no son muy diferentes de las tiendas físicas en muchos aspectos. Imagínate una frutería donde en el escaparate sólo hubiera fotografías de la fruta. Lógicamente lo más probable es que ni entraras o como mucho lo hicieras por curiosidad, pero después de entrar encima antes de ver el producto ni saber el precio te obligaran a decir cuantos kilos quieres de cada cosa. No tiene lógica.

Por muy bonito que sea el producto si no se el precio o me pones muchas trabas para poder saber cuanto cuesta probablemente me iría a otro sitio donde pensaran más en lo que yo quiero.

Saludos.

P.D.: del tema de los precios y/o gastos de envío ya hablaremos más adelante.

Imagen compartida por luchilu en flickr

Ayer me dediqué a actualizar todos los blogs con wordpress que administro ya que tenía desde la versión 2.7 a la 2.8.1 y la verdad es que con todos los problemas de seguridad que están saliendo merecía la pena dedicarle un rato a la tarea.

Al intentar actualizar directamente desde el enlace que te aparece en el blog en alguno de ellos me dio el error: «Datos de conexión: Para realizar la acción solicitada se necesitan los datos de la conexión.»

datos_conexion_wordpress

La verdad es que como error me pareció bastante raro ya que nunca había tenido problemas para actualizar hasta hoy y no suelo utilizar servidor ftp ya que accedo directamente por ssh a la máquina y trabajo directamente en ella por shell. Curiosamente en esos blogs tampoco me dejaba actualizar los plugins.

Después de buscar información en foros especializados la mayor parte de los sitios comentaban que podría ser por la traducción, pero tampoco me cuadraba ya que me pasaba lo mismo en alguno que tenía sin la traducción al español.

Al final me puse a actualizarlo «a mano» y me di cuenta de que en todos los que fallaban no tenía correctamente puestos los permisos de algunos ficheros y directorios, por lo que con un simple sudo chown -R www-data.www-data * en cada home de la instalación de los blogs y problema solucionado. A veces las cosas mas sencillas y estupidas te parecen cosa de magia.

Espero que si alguno de vosotros le pasa esto mismo se acuerde de este pequeño post.

Saludos.

Guy Kawassaki es uno de los mayores especialistas mundiales en el ámbito de las nuevas tecnologías y el marketing online. Uno de sus libros, El arte de empezar, es uno de los libros que cualquier emprendedor debería de leer.
La gente de alt1040 ha publicado una traducción de una entrevista que le hicieron acerca de twitter. En esta entrevista nos aclara su forma de trabajar en twitter y como lo utiliza para sus campañas de marketing. La verdad es que merece la pena.

La verdad es que cada día me parece más útil Twitter. Había abierto una cuenta (@rastreador) cuando empezó pero después de escribir unos pocos tweeds dejó de interesarme, pero hace unos meses empecé otra vez a utilizarlo, primero como herramienta para estar al día en ciertos temas, luego por que varios amigos solían utilizarlo y después como herramienta de comunicación y de marketing online y la verdad es que no me ha decepcionado. Dentro de poco os comentaré un pequeño experimento que estoy realizando con twitter.