Cómo cambiar las URLs en la base de datos cuando la web en wordpress es migrada a otro servidor

Si migramos nuestra web a otro servidor podemos encontrarnos con el problema en la base de datos de que sigue apuntando a las urls de la web antigua. Para solucionarlo podemos usar el phpmyadmin y ejecutar las siguientes sentencias:

UPDATE wp_options SET option_value = replace(option_value, 'http://www.oldurl', 'http://www.newurl') WHERE option_name = 'home' OR option_name = 'siteurl';

UPDATE wp_posts SET guid = replace(guid, 'http://www.oldurl','http://www.newurl');

UPDATE wp_posts SET post_content = replace(post_content, 'http://www.oldurl', 'http://www.newurl');

UPDATE wp_postmeta SET meta_value = replace(meta_value,'http://www.oldurl','http://www.newurl');

En nuestro caso esto nos ha funcionado siempre, pero quizás en determinadas circunstancias de un error o tengas que modificar más tablas para cambiar todas las URLs.

Cómo solucionar error utf8mb4_unicode_520_ci

Cuando migramos una web de wordpress a otro servidor, en el proceso de importar la base de datos en archivo .sql o comprimido en el nuevo servidor por phpmyadmin podemos encontrarnos un error como utf8mb4_unicode_520_ci, que si tenemos la web en inglés sería: Unknown collation: ‘utf8mb4_unicode_520_ci’.

Para solucionarlo tenemos que editar el archivo .sql con el editor Notepad++ y remplazando todas las palabras utf8mb4_unicode_520_ci a utf8mb4_unicode_ci, entonces salvamos el archivo y lo volvemos a importar. Ya no nos dará ese error.

Cómo solucionar El plugin ha provocado una salida inesperada de caracteres durante la activación

Si estamos creando plugin para wordpress puede que cuando lo activemos nos encontremos con el siguiente mensaje:

“El plugin ha provocado una salida inesperada de x caracteres durante la activación”, sustituyendo x por el valor que nos de.

Este problema lo genera la codificación no adecuada del plugin.

Para solucionarlo es muy sencillo, tenemos que Codificar en ANSI los archivos del plugin. Utilizando Notepad ++ podemos hacer clic en el menú Formato y después pulsamos en Codificar en ANSI.

Cuidado con los fanboys tecnológicos

Quizás por haber llegado a este mundo desde otro campo (la Ingeniería Agrónoma) tengo la impresión de poder ver el mundo de la programación con otra perspectiva. El fenómeno de los fanboys tecnológicos es curioso y podría ser algo hasta gracioso si los emprendedores no se estuvieran jugando su dinero y su proyecto.

El fanboy va a querer que sea cual sea el proyecto se haga con su tecnología. Es verdad que hay tecnologías muy versátiles, por ejemplo, en el desarrollo web el gestor de contenidos Drupal puede servir para una tienda virtual, para un gran sitio web o para una aplicación a medida. Pero esto puede llevar a comprar un hosting más caro por una simple web corporativa o un ecommerce sencillo. En mi caso por mucho que me guste Drupal no puedo llevar al cliente a gastar más y soportar en la web una sobreprogramación para algo que no lo necesita.

El fanboy querrá que el proyecto se adapte a su tecnología y no va a tener interés en buscar los medios más óptimos para satisfacer las necesidades del emprendedor. Tengo bastantes experiencias en este sentido, desde programadores que desprecian woocommerce en wordpress para hacer tiendas virtuales cuando está demostrado su éxito, sencillez de uso y hosting asequibles hasta otros que desprecian hacer aplicaciones a medida en Drupal para hacerlo con Symfony u otro frameworks.

El emprendedor no debería quedarse con una sola opinión en la red o en persona y preguntar a otros emprendedores qué gestor o programación web utilizan, qué hosting tienen contratado, en definitiva, qué es lo que les está funcionando en sus proyectos.

Saber delegar siendo autónomo o emprendedor

Un error que todos hemos cometido es querer acaparar todas las tareas en nuestra empresa o emprendimiento. Al principio puede ser inevitable, ya que no tenemos experiencia y queremos hacerlo todo nosotros. Además hacer esto puede servir para ver cuanto tiempo lleva cada cosa.

Si las cosas van mejor, tendremos más clientes y menos tiempo. Seguiremos acaparando todo el trabajo, quitando horas de descanso, horas de ocio, horas de familia, es decir, horas de vida. Estas horas son imprescindibles para no quemarnos y para ver con perspectiva los problemas y oportunidades. De hecho algunas grandes ideas surgen paseando, corriendo o incluso durmiendo.

Llegará un momento en que tendremos que elegir: o vamos delegando o no tendremos tiempo para nada más. Podemos pensar que si no lo hacemos nosotros no se hará como queremos, por miedo o responsabilidad. Quizás una buena idea sea delegar poco a poco.

Podemos dividir las tareas en compartimentos estancos. Ver en que tareas es imprescindible nuestra participación y cuales no tanto. Una vez sepamos que tareas las puedes llevar otras personas sin un gran riesgo podemos contactar con freelances en diferentes páginas como Domestika, Infojobs Freelancer, Freelancer, etc. para seleccionar el candidato que más se ajuste a nuestras necesidades. Con esto delegaremos ese pequeño trabajo que puede ser un logo, una landing page, repartir flyers o algo más serio y ver como sale.

El siguiente paso es analizar los resultados, ver si ha sido útil, si nos ha reportado beneficios, qué mejorar, qué otras áreas delegar o qué áreas tendremos que volver a realizarlas nosotros. Es decir, formar un ciclo de prueba, análisis y corrección constante para buscar la mejora continua.

Dar permisos proyecto Drupal 7 en Linux (Ubuntu 14.04)

Cuando importamos un proyecto de Drupal 7 en linux (en mi caso ubuntu 14.04) nos podemos encontrar con problemas en los permisos y en el autor de los archivos.

Si tenemos algún problema podemos hacer lo siguiente:

1. Revisar el autor situándonos en la raíz de la web y escribiendo en la consola

ls -la

Ahí podemos ver que usuario es el autor de los archivos, si no esta www-data tenemos que cambiarlo para que esté sea el autor ya que es el usuario por defecto de la web, nos situamos en un nivel por encima de nuestra web y ponemos:

chown victor:www-data directorio-web/ -R

Con esto hemos cambiado el usuario en todos los archivos de la carpeta donde está drupal: directorio-web

2. Permisos en toda la web (después afinamos)

chmod 755 directorio-web/ -R

3. Permisos en settings.php

chmod 444 sites/default/settings.php

4. Permisos en la carpeta /files

chmod 775 sites/default/files/ -R

En el punto 4 también puede valer en algunos tutoriales 777

Ocultar intercambiar idiomas debajo del contenido en Drupal 7

Si estamos utilizando i18n con Drupal 7 puede que tengamos el intercambio de idiomas debajo del contenido. Por ejemplo, si tenemos los idiomas español, inglés y francés y estamos en un nodo con idioma español puede que veamos abajo: inglés francés, con hipervínculo a su traducción.

Si queremos ocultarlo o esconderlo se comentan en la red diferentes opciones como ocultarla por CSS o cambiar la plantilla, pero al final son parches. La solución es mucho más sencilla:

  1. Vamos a admin/config/regional/i18n/node
  2. Marcamos el check Esconder enlaces de traducción de contenido y guardamos

Con esto habremos eliminado el intercambiador de idiomas en la parte inferior de los nodos.

Cómo solucionar nil is not compatible with expected agrument type ‘() -> Void’ en Swift 2.0

Cuando estamos trabajando con Swift 2.0 puede que nos encontremos con este mensaje cuando queramos ejecutar el código:

nil is not compatible with expected agrument type '() -> Void'

Para solucionarlo tenemos que ir a la línea que nos marca

SKAction.group([moveToAction, SKAction.fadeAlphaTo(1.0, duration: 0.2)]), completion:nil)

Falla porque ()->Void no es opcional, así que no puede tener el valor nil. Para corregirlo tenemos que eliminar nil y poner en su lugar las llaves de apertura y cierre:

SKAction.group([moveToAction, SKAction.fadeAlphaTo(1.0, duration: 0.2)]), completion:{})

Salto de línea en texto sin formato con Drupal 7

Cuando tenemos un campo Área de texto y elegimos texto sin formato vemos que al crear líneas pulsando en el enter en el editor nos lo guarda pero en el frontend no. Es decir, no vemos en el frontend saltos de línea por cada vez que hemos dado al enter cuando escribimos.

Para solucionarlo tenemos que editar el archivo css de la plantilla que utilizamos y añadir lo siguiente:

.field-type-text-long .field-item.even {
    white-space: pre-line;
}

Borramos cache si fuera necesario y al recargar la página vemos que si muestra saltos de línea.

Cómo quitar título en la página principal con Drupal 7

Si con Drupal 7 utilizamos una plantilla que estamos creando a medida como un subtheme de Zen puede que nos encontremos algunos problemas de configuración. Uno de ellos puede ser que nos muestre el título de la página en la página de inicio. Eliminarlo es muy sencillo:

.front h1#page-title {
  display: none;
}